
Mir ist aufgefallen, dass LuaTeX fortlaufende Zeichen (wie einen Zirkumflex, U+0302) falsch darzustellen scheint, wenn sie auf griechische Buchstaben folgen. Ich bin besonders daran interessiert, dies mit einer monospaced Schriftart zum Laufen zu bringen (weil es in Codeblöcken auftaucht):
\documentclass{article}
\usepackage{fontspec}
\setmonofont{DejaVu Sans Mono}
\begin{document}
\texttt{â \quad b̂ \quad ĉ \quad α̂ \quad β̂ \quad γ̂ \quad α̇ \quad β̇ \quad γ̇}
\end{document}
Ich habe mehrere Schriftarten ausprobiert und konnte keine finden, die funktioniert, und ich frage mich, ob es sich um ein allgemeines Schriftartenproblem handelt oder ob es eher TeX-spezifisch ist.
Antwort1
Ich denke, das hängt mit der Schriftart zusammen.DejaVu Sans Monofunktioniert nicht in TeX oder LibreOffice.
AberNoto Sans Monofunktioniert einwandfrei. Versuchen Sie:
\documentclass{article}
\usepackage{fontspec}
\setmonofont{Noto Sans Mono}
\begin{document}
\texttt{â \quad b̂ \quad ĉ \quad α̂ \quad β̂ \quad γ̂ \quad α̇ \quad β̇ \quad γ̇}
\end{document}
Antwort2
Das hängt mit der Schriftart zusammen: In Unicode-Schriften werden die Akzente meist mit sogenannten Ankern gesetzt: Jedes Zeichen hat eine spezielle Position, die in der Schriftdatei markiert ist, so dass eine markierte Stelle des Akzents auf diesen "Anker" ausgerichtet ist. Bei griechischen Buchstaben haben die Schriftdesigner diese Anker nicht hinzugefügt.
Natürlich können Sie dies beheben, indem Sie die Anker selbst hinzufügen, aber wenn Sie dies nur in seltenen Fällen und nur bei kleinen Buchstaben benötigen, können Sie den Akzent auch manuell positionieren. In den meisten Fällen müssen Sie den \llap
Akzent nur über den nächsten Buchstaben setzen und manchmal ist \raise
dies auch erforderlich. Beispiel:
\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}