कैसे जांचें कि वर्तमान फ़ॉन्ट एक विशेष परिवार और आकार का है?
(यह वास्तव में LaTeX मैक्रो नामों के बारे में एक प्रश्न हो सकता है? या \ifx सिंटैक्स के बारे में?)
मैं जांचना चाहूंगा कि क्या वर्तमान फ़ॉन्ट ब्रिल इटैलिक है, और यदि हां, तो कुछ करें।
>मैंने कुछ इस तरह की कोशिश की है:
अधिक जानकारी: ब्रिल में इटैलिकाइज़्ड थीटा "घुंघराले" दिखता है, जो हम नहीं चाहते हैं। मैं स्वचालित रूप से किसी भी इटैलिकाइज़्ड ब्रिल थीटा को तिरछी थीटा से बदलने का प्रयास कर रहा हूँ। मैंने इस उत्तर से कोड उधार लिया है। यदि मैं नीचे दी गई \ifx लाइन पर टिप्पणी करता हूं तो यह काम करता है।
LaTeX कई अलग-अलग आयामों का उपयोग करके परिभाषित फ़ॉन्ट की कल्पना करता है:
विशिष्ट फ़ॉन्ट चयन आदेश वर्तमान में सक्रिय के एक आयाम को बदलने का प्रयास करते हैं फ़ॉन्ट. उदाहरण के लिए, \small केवल आकार बदलता है, \bfseries श्रृंखला बदलता है, \scshape आकार बदलता है इत्यादि।
आपका कोड तीन अलग-अलग फ़ॉन्ट परिवार बनाता है: ब्रिल(0) (मुख्य फ़ॉन्ट परिवार), ब्रिल(1) (नकली तिरछापन वाला एक अलग परिवार) और ब्रिलइटैलिक(0)। इनमें से प्रत्येक परिवार में फ़ॉन्ट आकार की एक श्रृंखला होती है: अपराइट, इटैलिक, स्मॉल-कैप और प्रत्येक मीडियम और बोल्ड में स्मॉल-कैप इटैलिक।
इटैलिक एक फ़ॉन्ट आकार है, एक अलग परिवार के विपरीत, इसलिए \textit ब्रिल इटैलिक का उपयोग करके आपके द्वारा परिभाषित परिवार में नहीं बदलता है। यह आपके द्वारा ब्रिल का उपयोग करके स्थापित किए गए मुख्य परिवार के इटैलिक आकार में बदल जाता है। इसलिए, आपके परीक्षण में \ifx हमेशा गलत लौटेगा जब तक कि आप स्पष्ट रूप से नए परिवार में नहीं बदल जाते।
यदि आप नकली तिरछा का उपयोग करके मुख्य फ़ॉन्ट परिवार के लिए एक तिरछा आकार सेट करते हैं, तो आप बस इस पर स्विच कर सकते हैं प्रासंगिक चरित्र के लिए आकार, चरित्र वर्ग बनाने के लिए अपने उदाहरण में कोड का उपयोग करें।
1 यह वास्तव में इससे थोड़ा (बहुत) अधिक जटिल है, लेकिन सौभाग्य से विवरण के बारे में चिंता करने की आवश्यकता नहीं है हम यहां हैं।
मुझे विश्वास है कि यह है सरल (और LuaLaTeX के लिए भी अच्छा): बस जांचें कि क्या फ़ॉन्ट तिरछा है (अर्थात्, इसका \fontdimen1 सकारात्मक है) और, इस मामले में, \slshape जारी करें।
यदि आप यदि आप प्रभाव को ब्रिल फ़ॉन्ट तक सीमित करना चाहते हैं, तो आप परिवार का नाम जांच सकते हैं (अनुमान लगाने की आवश्यकता के बिना)।
ध्यान दें कि आजकल xltxtra लोड करने की अनुशंसा नहीं की जाती है। इसके अलावा Mapping=tex-text Ligatures=TeX होना बेहतर है और इसकी आवश्यकता नहीं है, क्योंकि यह \setmainfont और \setsansfont के लिए डिफ़ॉल्ट रूप से चुना गया है।