
Percebi que LuaTeX parece renderizar incorretamente caracteres contínuos (como um circunflexo, U+0302) quando eles seguem letras gregas. Estou particularmente interessado em fazer isso funcionar com uma fonte monoespaçada (porque aparece em blocos de código):
\documentclass{article}
\usepackage{fontspec}
\setmonofont{DejaVu Sans Mono}
\begin{document}
\texttt{â \quad b̂ \quad ĉ \quad α̂ \quad β̂ \quad γ̂ \quad α̇ \quad β̇ \quad γ̇}
\end{document}
Eu tentei várias fontes e não consegui encontrar uma que funcionasse, e estou me perguntando se é um problema geral de fonte ou mais específico do TeX.
Responder1
Acho que isso está relacionado à fonte.DejaVu Sans Mononão funciona em TeX ou LibreOffice.
MasNoto Sans Monofunciona bem. Tentar:
\documentclass{article}
\usepackage{fontspec}
\setmonofont{Noto Sans Mono}
\begin{document}
\texttt{â \quad b̂ \quad ĉ \quad α̂ \quad β̂ \quad γ̂ \quad α̇ \quad β̇ \quad γ̇}
\end{document}
Responder2
Isso está relacionado à fonte: Em fontes Unicode, os acentos são colocados principalmente usando as chamadas âncoras: Cada caractere tem uma posição especial marcada no arquivo de fonte, de modo que uma posição marcada do acento esteja alinhada com esta "âncora". Os designers de fontes não adicionaram essas âncoras às letras gregas.
É claro que você mesmo pode corrigir isso adicionando as âncoras, mas se precisar disso apenas em situações raras e apenas com caracteres pequenos, basta posicionar o acento manualmente. Na maioria das vezes você só precisa \llap
colocar o acento no próximo caractere e às vezes você \raise
também precisa fazer isso. Por exemplo:
\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}