我正在玩一種字體(發現這裡),它為數字定義了升/降,但沒有為字母定義。如果我不啟用它們,我就不會得到它們:
但如果我\usepackage{realscripts}
啟用它們,我將完全失去使用字母作為下標/上標的能力:
有沒有辦法讓我獲得下標/上標數字,同時保留在下標/上標中使用字母的能力?這是我的程式碼:
\documentclass{standalone}
\usepackage{fontspec}
\setmainfont{OFLGoudyStM}[
Extension = .otf,
Ligatures = {Common, TeX},
ItalicFont = OFLGoudyStM-Italic]
\usepackage{realscripts}
\begin{document}
\begin{tabular}{l}
M\textsuperscript{abc0123456789def} \\
M\textsubscript{abc0123456789def}
\end{tabular}
\end{document}
答案1
不,realscripts
只有在以下情況才有用:全部您需要上標或下標的字形是在字體中專門繪製的。 XeTeX 中無法偵測給定的字體功能是否會影響特定的字形(或一系列字形),因此您甚至無法知道,直到您排版文件並檢查輸出。
好吧,在某些情況下,您可以製作一個盒子並在設定字體功能之前和之後比較其大小,但該方法可能存在邊緣情況,導致它偶爾不可靠。
另一種選擇可能是檢查參數的內容\textsuperscript
並根據輸入進行分支。 IE,
\textsuperscript{a1} ->
\textsuperscript{a}\textsuperscript{1} ->
\fakesuperscript{a}\realsuperscript{1}
但這看起來很糟糕,因為a
和看起來非常不同,所以在這種情況下1
最好使用\fakesuperscript
(即不喜歡)。realscripts