带有连续抑扬符的希腊字母

带有连续抑扬符的希腊字母

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

我认为这与字体有关。DejaVu Sans Mono在 TeX 或 LibreOffice 中不起作用。

诺托无单色效果很好。尝试:

\documentclass{article}
\usepackage{fontspec} 
\setmonofont{Noto Sans Mono}
\begin{document}
\texttt{â \quad b̂ \quad ĉ \quad α̂ \quad β̂ \quad γ̂ \quad α̇ \quad β̇ \quad γ̇}
\end{document}

输出

答案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}

在此处输入图片描述

相关内容