我注意到 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}