
在輸入上運行xelatex
(或)lualatex
\documentclass{standalone}
\usepackage{unicode-math}
\setmathfont[Ligatures=TeX]{texgyretermes-math.otf}
\begin{document}
\(\{f\}\)
\end{document}
應該產生某種形式的
{F}
在 PDF 的文本層中。但它產生
{F }
f 和 } 之間有一個空格。這個空間不應該存在。如何擺脫它?
至於可見輸出,這裡是:
如您所見,左大括號和 f 在 PDF 中重疊。但是,當您使用 fontforge 打開字體,並將帶有弗羅林的左大括號放入度量視窗時,它們不會重疊!輸出不一致。我缺什麼?如何一勞永逸地適當增加出現「{F「在我的大文檔(不是 MWE)中?我試圖自己改進字體(開發人員過去沒有對類似的請求做出反應),但到目前為止沒有任何結果...
答案1
PDF 的「文字圖層」中的空格是透過 PDF 檢視器的啟發式插入的,因為f
和之間存在著一定距離}
。從長遠來看,帶有標籤的 PDF 文件應該可以解決這個問題,但特別是對於數學公式,我不會保持我的廣度。因此,從短期來看,您要么使用 例如 為每個數學公式指定替換文本,repltext
要么就接受這個空間。
關於 FontForge 中的「不一致」:弗羅林符號 (U+0192) 和數學斜體小寫字母 f (U+1D453) 不是相同的字形。在 FontForge 中比較兩者顯示出與 TeX 相同的外觀:
(數學斜體小寫 F 第一個,弗羅林第二個)
但一般來說,我不會推薦 FontForge 的公制視窗用於數學輸出,因為數學的格式與普通文字不同。特別是像這種情況下的「經典字距調整」實際上並不存在,因為{
和f
是單獨的對象,也不屬於單字的一部分。
當然,如果您更喜歡弗羅林符號而不是數學 f,您可以使用
\Umathcode`\f 7 0 "192
之後\begin{document}
,LaTeX 在數學模式下將弗羅林符號插入 U+1D453 中,表示「f」。一個缺點是文字圖層也會包含弗羅林符號。您也可以U+1D453
直接在 FontForge 中修改。