![unicode-math 套件:預設將數學模式下的字母對應到正常的 ASCII 範圍](https://rvso.com/image/420750/unicode-math%20%E5%A5%97%E4%BB%B6%EF%BC%9A%E9%A0%90%E8%A8%AD%E5%B0%87%E6%95%B8%E5%AD%B8%E6%A8%A1%E5%BC%8F%E4%B8%8B%E7%9A%84%E5%AD%97%E6%AF%8D%E5%B0%8D%E6%87%89%E5%88%B0%E6%AD%A3%E5%B8%B8%E7%9A%84%20ASCII%20%E7%AF%84%E5%9C%8D.png)
對於 XeLaTeX,我使用 fontspec 和 unicode-math 來產生 pdf,無需其他選項,並且在大多數情況下按預期工作。然而,在某些情況下(在這個問題的末尾指定)我希望數學模式下的(拉丁)字母直接映射到其正常的ASCII 對應項,並僅使用正確的字體(斜體、粗體等... )來產生正確的視覺輸出作為預設行為。
對於特定命令,我可以實現這一點,例如$\mathit{x}$ 可以使用以下程式碼正確執行此操作(我假設),但$x$ 仍然將來源中的ASCII 字母x 映射到輸出中的U+ 1D465 代碼點。
\documentclass{article}
\usepackage{fontspec}
\usepackage{unicode-math}
\unimathsetup{
mathrm=text,
mathit=text,
mathsf=text,
mathbf=text,
mathtt=text,
math-style=ISO,
}
\begin{document}
$\mathit{x}$ <-- maps to ASCII x
$x$ <-- still maps to U+1D465
\end{document}
那麼,如何讓 unicode-math 預設在輸出中使用 ASCII 字母?
原因是:
1:視覺外觀大致一致,對於某些字體,普通斜體和數學斜體字體彼此之間存在顯著差異。
2:(最重要的)我試著從一些文件片段產生 svgs,先產生 pdf(透過導入片段的模板),然後使用 inkscape 轉換為 svg。到目前為止,這已經產生了最好的結果,但 inkscape 無法正確渲染數學字母,而且我還擔心網路相容性。