連續抑揚符的希臘字母

連續抑揚符的希臘字母

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

Noto Sans Mono工作正常。嘗試:

\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}

在此輸入影像描述

相關內容