1. 程式人生 > 實用技巧 >$\TeX$ Gyre 字型安裝過程與問題解決

$\TeX$ Gyre 字型安裝過程與問題解決

目錄

本文地址
https://www.cnblogs.com/oberon-zjt0806/p/13672426.html

本文只是一個小記錄,不會採用比較嚴格的行文格式,見諒。

昨天剛剛通過HIT的映象安裝TeX Live,然後準備安裝我比較喜歡的TeX Gyre Math系列的字型,用於\(\TeX\)的數學字型使用。

安裝過程

1. 下載字型包

GUST e-Foundry上下載需要的字型包。比如,以Pagella為例,下載之後的包為texgyrepagella-math-1632.zip

與普通字型包不一樣,數學字型包只有兩個資料夾組成——opentype

doc,其中opentype內是一個單獨的otf字型檔案,這個就是字型的本體,我們一會可以先直接在Windows內安裝到系統中以供Office等程式使用。而另外一個doc資料夾內包含的就是一些範例檔案和許可資訊

然而我們是要在TeX Live環境下給\(\TeX\)安裝這個字型,雖然有說法是像XeLaTeX這類編譯器是通吃系統字型和\(\TeX\)字型。不過保險起見我還是在\(\TeX\)環境下安裝一個。

2. 安裝字型

解壓上面的壓縮包到你能找到的任意一個位置(除了回收站)。

\(\TeX\)環境下安裝字型比想象中要麻煩一些,不過好在doc資料夾裡附帶了一個安裝說明INSTALL.TXT

,裡面是這麼描述的安裝過程:

2. INSTALLING FONTS IN TEX LIVE

To install fonts in the TeX Live system you have to copy it to the
appropriate directory: (TEXMF root)/texmf-local/fonts/opentype/public/
(you may have to create this directory). When you want install fonts
for only one user, you can use the ~/texmf/fonts/opentype directory
(this directory also may be nonexistent). After coping the font file,
you have to run mktexlsr command to refresh the kpathsea caches.

Most of the typesetting engines can use fonts installed either in OS or
in TeX Live. Microsoft Office (Word) uses, of course, only system fonts.
XeLaTeX can use both of them. LuaLaTeX and ConTeXt uses TeX Live fonts
by default, but if the OSFONTDIR environment variable is set, the
system fonts also can be found.

For typesetting math using an OpenType font with (Lua|Xe)LaTeX, an up
to date version of the unicode-math package (and related LaTeX3
packages) is crucial.

大概意思是把otf字型要丟到(TEXMF root)/texmf-local/fonts/opentype/public/這個資料夾裡,不過TEXMF root在哪找呢??

網上找了一下,大概找到了MikTEX的一個關於texmf root的說明網頁,不過我這裡安裝的並不是MikTEX而是TeX Live(當然我估計過段時間可能要轉用MikTeX,因為在Win上比較好用,但是暫時先不動……)

那麼TeX Live怎麼找他的root目錄呢,我最後在tex的stackexchange上找到了解決方案

You could type at the command prompt:

kpsewhich -var-value TEXMFHOME 

Alternatively:

kpsewhich -expand-var '$TEXMFHOME'

While on my Linux system, it returns /home/stefan/texmf, on Windows it may return something like C:/Users/Gablin/texmf depending on where your Windows user profile is.

The syntax of kpsewhich may vary depending on the system, for example regarding the quotes or dashes. Type kpsewhich --help.

通過這個我們得到了我們的root目錄(通常情況下一般為%USERPROFILE\texmf%),不過這個資料夾一般不存在,因此我們需要建立這個目錄,為了方便起見,我們連帶下面的幾個目錄都創建出來,直接用bat指令:

cd %USERPROFILE%
mkdir texmf/texmf-local/fonts/opentype/public
cd texmf/texmf-local/fonts/opentype/public
start .

然後我們就把解壓出來的字型(在opentype/下)丟到開啟的目錄裡就可以了。

3. 測試範例檔案

字型安裝完成後,我們就考慮執行doc/資料夾下test-*-texgyre_pagella_math.tex檔案即可,用VSCode或者TeXworks editor開啟這個檔案都可以,然後選擇對應的TeX編譯器(取決於*部分是什麼,如果是xelatex則需要使用XeLaTeX編譯器(推薦),如果是lua的則需要選擇LuaLaTeX編譯器,總之不要使用pdfLaTeX編譯器)。

注意
務必使用test-*.tex的檔案而不要開啟math-test.tex之類的檔案,因為後者是不完全的,只是供前者輸入的。
此外,doc資料夾中一般附帶pdf檔案,是tex編譯之後的結果,然而,我們這裡需要自己手動編譯來看看結果,一般情況下TeXworks editor會連帶開啟與之相關聯的pdf檔案,我們需要把他關掉重新編譯。
另外,如果使用VSCode,需要安裝LaTeX Workshop外掛,如果這個外掛先於TeX環境安裝,則需要在TeX環境安裝完成後解除安裝並重新安裝該外掛。

基本上準備就緒,我們編譯執行範例tex,然後……前方高能……

! LaTeX3 Error: The key 'fontspec-opentype/vargreek-shape' is unknown and is
(LaTeX3)        being ignored.

出錯了!!

我把錯誤文字複製下來全網找,結果找到的結果完全不相干,於是只能不斷的縮減關鍵詞,最後把關鍵詞聚焦到vargreek-shape上,找到了兩種說法:

  1. https://tex.stackexchange.com/questions/509605/tex-gyre-schola-math-gives-error-when-compiling-the-example-given-in-the-gust
  2. https://tex.stackexchange.com/questions/351955/compilation-error-option-unknown-can-anyone-help-me/352094#352094

大概意思是說vargreek-shape這個內容只在舊版本的TeX中存在,新版本中已經統一了這些規則,因此這個東西不再需要了。

所謂的這個“vargreek”指的是希臘字母的變體,有些希臘字母存在兩種寫法,例如:

\[\begin{array} \\ &\mathrm{phi} &\phi \\ &\mathrm{varphi} &\varphi \\ \\ &\mathrm{sigma} &\sigma\\ &\mathrm{varomega} &\varsigma \\ \\ &\mathrm{epsilon} &\epsilon\\ &\mathrm{varepsilon} &\varepsilon\\ \end{array} \]

然後新版本已經對這些變體統一處理了,所以不再需要這個選項了,於是我們就把第10行中的vargreek-shape=TeX選項刪掉,改完應該是這個樣子:

% 省略號裡應當是你的字型,那裡不需要作改動
\setmathfont[math-style=ISO,bold-style=ISO]{...}

然後我們再次執行編譯就不再出錯了,並編譯出pdf文件,顯示下面的內容: