
我在 Linux 上使用 TexLive 2016 和 LuaTeX,但我相信我的問題通常適用於任何平台上的 LaTeX。我無法切換到 XeTeX。來這裡之前我發現有沒有辦法從套件內部偵測是否使用了 MiKTeX? 但這並沒有讓我放心。
使用fontspec
並且unicode-math
我有\setmathfont{Asana Math}
.這有效。那裡沒問題。我的問題:
我的 TeX 系統只安裝了我當時需要的軟體包。所以我常常tlmgr
去爭取別人。事實證明,正確的包既不是asana
也不asana-math
是Asana-math
。它只是Asana-Math
,大寫的 A 和 M。
根據 CTAN 的說法,在 MiKTeX 中,包名稱是asana-math
.小寫 a 和 m。這是否意味著如果我將文件傳輸到 MiKTeX 系統,他們將無法找到我需要的內容?或者,MiKTeX 在檢測套件名稱並自動取得它們時是否不區分大小寫?
如果發行版之間存在區分大小寫的問題,那麼是否有一種可靠的方法可以從 TeX 文件中了解正在使用哪個發行版?因此,shell 命令將不起作用。查看完整的橫幅可能不起作用,因為它似乎會不時變更。
理想的解決方案看起來像這樣的偽代碼:
\IfPackageExists{Asana-Math} % not necessarily installed
\usepackage{Asana-Math} % if not installed, get it or error message
\else
\IfPackageExists{asana-math} % not necessarily installed
\usepackage{asana-math} % if not installed, get it or error message
\else
% some suitable error message
\fi\fi
答案1
miktex 和 TeXLive(以及經常以不同方式重新打包 texlive 的 Linux 發行版)使用的「套件名稱」會影響安裝和更新選項期間的選擇,但完全不會影響 TeX 中使用的標記。在 TeXlive 中,如果缺少字體或包,tex 將不會有任何資訊表明該字體或包可以安裝在 texlive 的已卸載部分中,您只會收到文件未找到錯誤。 (miktex 確實可以按需下載內容,但即使如此,它也不會影響文件標記)。