
Na língua taiwanesa, o hífen duplo tem função gramatical e é usado com frequência. Exemplo:
Āu--ji̍t chiah koh lâi. (Volte depois de amanhã.)
Āu-ji̍t chiah koh lâi. (Volte novamente no futuro.)
O problema é que o hífen duplo é convertido em n-traço. Eu sei que -{}- pode interromper a conversão. No entanto, a quebra de linha acontecerá entre os dois hífens e isso também deve ser evitado. Portanto, torna-se
Āu\mbox{-{}-}{\allowbreak}ji̍t chiah koh lâi.
Isso parece complicado. Como estou usando xelatex, acho que posso definir um comando para a sequência e, enquanto isso, fazer com que pareça mais um hífen duplo, mesmo no código-fonte.
\newcommand{\‐‐}{\mbox{‐‐}{\allowbreak}}
Aqueles ‐ em \‐‐ não são U+002D, mas U+2010. Igual aos do \mbox, para evitar a ligadura. E supostamente eu posso escrever
Āu\‐‐ji̍t chiah koh lâi.
É muito mais fácil saber que é um hífen duplo.
No entanto, recebi uma mensagem de erro. ! Erro LaTeX: \begin{document} ausente.
O que é intrigante é que
\newcommand{\‐}{\mbox{‐‐}{\allowbreak}}
funciona bem. Mas não é o ideal, pois não se parece com um hífen duplo.
Se não houver uma boa solução para isso, preciso esquecer o \allowbreak
e apenas escrever dois U+2010 consecutivos. Mas as palavras com hífen duplo são longas e a composição fica feia.
Responder1
Se você conseguir digitar U+2010, a combinação ‐‐
(U+2010 U+2010) não produzirá uma ligadura.
Você podede alguma formadefine \--
(com hífens, mas isso apagaria a definição de \-
).
Uma alternativa possível seria usar \0--
(com dois hífens):
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Libertinus Serif}
\def\0--{‐‐\allowbreak}% two U+2010 in the body
\begin{document}
Āu--ji̍t chiah koh lâi. (Come again the day after tomorrow.) % two hyphens
Āu‐‐ji̍t chiah koh lâi. (Come again the day after tomorrow.) % two U+2010
Āu\0--ji̍t chiah koh lâi. (Come again the day after tomorrow.) % the command
Āu-ji̍t chiah koh lâi. (Come again in the future.)
\parbox[t]{0pt}{\hspace{0pt}Āu\0--ji̍t chiah koh lâi.}
\end{document}