
我注意到 LuaTeX 似乎錯誤地渲染了希臘字母後面的連續字符(如揚抑符,U+0302)。我特別感興趣的是讓它與等寬字體一起使用(因為它出現在程式碼區塊中):
\documentclass{article}
\usepackage{fontspec}
\setmonofont{DejaVu Sans Mono}
\begin{document}
\texttt{â \quad b̂ \quad ĉ \quad α̂ \quad β̂ \quad γ̂ \quad α̇ \quad β̇ \quad γ̇}
\end{document}
我嘗試了幾種字體,但沒能找到一種有效的字體,我想知道這是一般字體問題還是 TeX 特有的問題。
答案1
答案2
這是與字體相關的:在 Unicode 字體中,重音大多使用所謂的錨點放置:每個字元在字體檔案中都有一個標記的特殊位置,使得重音的標記位置與該「錨點」對齊。字體設計者沒有將這些錨點添加到希臘字母中。
當然,您可以透過自行添加錨點來解決此問題,但如果您只在極少數情況下需要此功能並且僅使用小字符,則可以手動定位重音。大多數時候,您只需要將\llap
重音放在下一個字元上,有時您\raise
也必須這樣做。例如:
\documentclass{article}
\usepackage{fontspec}
\setmonofont{DejaVuSansMono.ttf}
\begin{document}
\texttt{â \quad b̂ \quad ĉ \quad \llap{̂}α \quad \raisebox{2pt}{\llap{̂}}β \quad \llap{̂}γ \quad \llap{̇}α \quad \raisebox{2pt}{\llap{̇}}β \quad \llap{̇}γ}
\end{document}