
所以這是我遇到的問題:我正在使用 fontspec,而我的許多字體僅在小型大寫字母字體中具有襯裡圖形。所以我的問題是如何告訴 XeLaTeX 當涉及到數字(章節編號、腳註等)時從這些文件中獲取它?而不是它用於其他所有內容的常規字體文件?有類似的命令嗎\setfigurefont
?
答案1
最好修補輸出數字(以及標點符號和大寫字母)的命令。不過,將它們全部列出可能會變得乏味,所以也許您應該直接選擇\arabic
:
\newfontfamily\myLFfont[Numbers=Lining]{fontLF.otf}
\let\arabicnumber\arabic
\def\arabic{\myLFfont\arabicnumber}
答案2
將其發佈在這裡,以便我可以包含程式碼。
做這個問題(尤其是第二個答案)有幫助嗎?如果你有 LaTeX 的設置,看起來你可以使用建議的程式碼將其與 fontspec 結合起來這裡:
\documentclass{article}
\usepackage{fontspec}
\newfontfamily\unicodefont{Lucida Grande}
\usepackage{mathpazo}
\usepackage[T1]{fontenc}
\begin{document}
A legacy \TeX\ font. {\unicodefont A unicode font.}
\end{document}
如果許可證允許,將字體轉換為type1 格式並產生LaTeX 或pdfLaTeX 的支援檔案可能是最簡單的,因為在這種情況下使用opentype 字體和XeLaTeX 沒有真正的優勢,而且這樣做只會使事情變得複雜。
無論您是否可以將字體本身轉換為 type1,您都可以執行以下操作:
- 為字體產生 .afm 檔案。這會給你一些東西,例如字體設定知道如何應對。
- 使用中的說明Philipp Lehman 的字體安裝指南但創建虛擬字體,它採用小型大寫字母字體的襯裡(而不是舊式)數字,因為這就是文件的組織方式。教程 3 解釋如何執行此操作,但如果您不熟悉 fontinst,則需要通讀前面的教程。
- 這將允許您建立使用包含襯裡數字的虛擬字體所需的文件,然後您可以在排版文件時簡單地使用適當的系列。
- 您需要為 TeX 正確安裝字體,儘管為了測試您可以將所有內容放在工作目錄中並且它應該可以工作。
我假設如果您使用 XeLaTeX,這將允許您使用 opentype sc 字體中的襯裡數字以及標準直立 opentype 字體中的常規大寫和小寫字母。如果您被允許轉換它們,創建 type1 字體將為您提供更大的靈活性,因為您也可以將它們與常規 LaTeX 一起使用。
我知道 LuaTeX 可以動態建立虛擬字體,因此您也可以研究這種可能性,儘管我不知道它是如何運作的,或者在這種特殊情況下它是否會為您提供更簡單的解決方案。
您將無法存取您所擁有的字體的任何 opentype 功能。然而,從你對字體的描述來看,我懷疑這不會對你造成任何損失。聽起來好像字體沒有被配置為使用 opentype 提供的功能,並且您在任何情況下都不能使用字體所沒有的功能。 (如果它們是在考慮到opentype 的情況下構建的,我希望不同樣式的圖形包含在相同的字體中並作為opentype 功能啟用。這將使事情變得更容易,但不幸的是,這並不是您實際擁有的。