
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}