
LaTeX 中的字型編碼有參考清單嗎?人們可以在其中搜尋特定字體並獲取代表該字體的相關程式碼的地方。其中一些甚至不符合邏輯,例如TeX 陀螺英雄我會想像「」這樣的程式碼tgh
,但程式碼是「qhv
」:
{\usefont{T1}{qhv}{b}{n}\selectfont\huge} %"qhv" - TeX Gyre Heros, "b" - bold
{\usefont{T2A}{qcr}{m}{n}qcr\selectfont} % Another font
我正在尋找等效的家庭代碼阿萊格雷亞和阿萊格雷亞無體但我找不到它。我想,它一定存在,因為我的邏輯告訴我世界上的每個字體都有一個與之相關的程式碼?或者可能不是?人們會在哪裡搜尋這樣的程式碼?我還在字體檢視器中打開了字體,但沒有成功。
乾杯!
答案1
.sty
尋找系列名稱的更通用方法是使用字體定義文件的名稱 ( .fd
),這種方法不需要開啟文件,也不依賴文件是否存在。這適用於任何設定為與 LaTeX 一起使用的字體,無論是否.sty
提供文件。
假設您想使用 Zapf Chancery。這是由zapfchan
軟體包提供的,並且包含在標準 TeX 發行版中。檢查texmf-dist/tex/latex/zapfchan/
(TeX Live)的內容:
8ruzc.fd omluzc.fd omsuzc.fd ot1uzc.fd t1uzc.fd ts1uzc.fd
.sty
在這種情況下沒有文件。這使得能夠找出姓氏變得更加重要,因為這是在 LaTeX 中使用字體的唯一方法。
此時了解一些有關字體編碼的知識會有所幫助。8r
、oml
、oms
、ot1
和t1
是ts1
TeX 使用的不同字體編碼的小寫版本:8r、OML、OMS、OT1、T1 和 TS1。要弄清楚姓氏,這些是什麼並不重要。重要的是你知道它們是編碼。
- 取任意檔案的名稱
.fd
。 -> 例如t1uzc.fd
。 - 刪除
.fd
後綴。 -> 例如t1uzc
。 - 刪除編碼前綴。 -> 例如
uzc
。 - 剩下的就是字體系列的名稱。例如
uzc
。
除了不同的編碼之外,某些字體可能還有多種不同的字體系列。在這些情況下,您需要進一步調查以確定您想要使用哪個系列。然而,對於 Zapf Chancery,只有一個系列uzc
,您可以用它來選擇 LaTeX 中的字體。
字體定義檔的名稱告訴您另一件重要的事情:它們告訴您字體可用於哪些編碼。
- 8r:這是一個「原始」編碼 - 你可以忘記這一點,除非你有興趣自己創建字體包;
- OML/OMS:支援數學的編碼;
- OT1:預設的 TeX 文字編碼,也用於數學;
- T1:一種增強的文本編碼,比 OT1 更好地支援重音字符,特別是;
- TS1:補充文字編碼,提供各種符號,例如版權符號、舊式數字等。
此時您可能會感到困惑地發現
\fontencoding{T1}\fontfamily{uzc}\selectfont Is this Zapf Chancery?
仍然生產 Computer Modern Roman 而不是 Zapf Chancery。 LaTeX 將警告您它已取代控制台和日誌中的字體,並且(對於 pdfTeX)您的 PDF 檢視器將顯示您仍在使用 CMR。為什麼字體選擇失敗?
要弄清楚這一點,你必須看看裡面字體定義檔。 (我只是說你不必打開文件來找出家庭 - 我並沒有說你能夠使用它!)
閱讀t1uzc.fd
,我們發現以下行:
\DeclareFontShape{T1}{uzc}{mb}{it}{
<-> uzcmi8t
}{}
這表明該系列包括該系列中的字體mb
(中粗體)和形狀it
(斜體)。
接下來的兩個形狀宣告:
\DeclareFontShape{T1}{uzc}{m}{it}{<->ssub * uzc/mb/it}{}
\DeclareFontShape{T1}{uzc}{mb}{sl}{<->ssub * uzc/mb/it}{}
告訴我們,uzc/mb/it
如果要求中等粗細的斜體形狀(系列)或中等粗體系列的m
傾斜形狀( ),則該單一字體()將被默默地替換(即沒有警告)。sl
最終形狀聲明:
\DeclareFontShape{T1}{uzc}{m}{sl}{<->ssub * uzc/mb/sl}{}
告訴我們,uzc/mb/sl
如果需要中等系列中的傾斜形狀,則會默默地替換 。由於斜體、中粗體uzc/mb/sl
無論如何都會被替換,這實際上意味著無論要求斜體和傾斜中的哪一種,也無論中體和中粗體中的哪一種,我們總是會得到斜體、中粗體的形狀。
然而,對於標準的直立形狀並沒有任何定義。因此,要實際使用 Zapf Chancery,我們還需要更改為斜體或傾斜形狀。為了安全起見,最好也註明重量。這樣,如果粗體處於活動狀態,我們就不會得到意外的結果(例如粗體的 CMR)。
\fontencoding{T1}\fontfamily{uzc}\fontshape{it}\fontseries{mb}\selectfont Is this Zapf Chancery?
請注意,無論字體名稱是否遵循 Berry 方案,這種尋找姓氏的方法都有效。例如,
texmf-dist/tex/latex/ebgaramond/T1EBGaramond-OsF.fd
告訴我們 T1 編碼中有一個可用的字體系列EBGaramond-OsF
,我們可以在\fontfamily{}
適當的情況下進行類似的選擇。 [儘管在這種情況下,使用.sty
包提供的文件通常會更好。
答案2
Alegreya(襯線和 Sans)字體不使用 Berry 方案,其中家族名稱是三個(或四個)字母的縮寫。
Alegreya.sty
您可以在和中找到姓氏AlegreyaSans.sty
。
阿萊格雷亞
220 \else % type1
221
222 \def\Alegreyafamily{Alegreya-\Alegreya@figurealign \Alegreya@figurestyle}
223 \def\Alegreya{\fontfamily{\Alegreyafamily}\selectfont}
224 \def\AlegreyaLF{\fontfamily{Alegreya-LF}\selectfont}
225 \def\AlegreyaOsF{\fontfamily{Alegreya-OsF}\selectfont}
226 \def\AlegreyaTLF{\fontfamily{Alegreya-TLF}\selectfont}
227 \def\AlegreyaTOsF{\fontfamily{Alegreya-TOsF}\selectfont}
阿萊格雷亞桑斯
235 \else % type1
236
237 \def\AlegreyaSansfamily{AlegreyaSans-\AlegreyaSans@figurealign \AlegreyaSans@figurestyle}
238 \def\AlegreyaSans{\fontfamily{\AlegreyaSansfamily}\selectfont}
239 \def\AlegreyaSansLF{\fontfamily{AlegreyaSans-LF}\selectfont}
240 \def\AlegreyaSansOsF{\fontfamily{AlegreyaSans-OsF}\selectfont}
241 \def\AlegreyaSansTLF{\fontfamily{AlegreyaSans-TLF}\selectfont}
242 \def\AlegreyaSansTOsF{\fontfamily{AlegreyaSans-TOsF}\selectfont}
我添加了行號以供參考。每個程式碼片段中的最後四行告訴您要使用什麼作為 的參數\fontfamily
。
縮寫LF
、OsF
、TLF
和TOsF
分別代表「襯裡數字」、「舊式數字」、「表格襯裡數字」和「表格舊式數字」。
對於 XeLaTeX 或 LuaLaTeX 更容易:輸入
\newfontfamily{\alegreyasans}[
<options>
]{AlegreyaSans}
\alegreyasans
並在需要此字體時使用。