Двойной дефис в тайваньском языке несет грамматическую функцию

Двойной дефис в тайваньском языке несет грамматическую функцию

В тайваньском языке двойной дефис выполняет грамматическую функцию и используется часто. Пример:

Āu--ji̍t chiah koh lâi. (Приходите снова послезавтра.)

Ау-джи̍т чиа ко лай. (Приходите снова в будущем.)

Проблема в том, что двойной дефис преобразуется в n-dash. Я знаю, что -{}- может остановить преобразование. Однако, разрыв строки произойдет между двумя дефисами, и это тоже нужно предотвратить. Поэтому это становится

Āu\mbox{-{}-}{\allowbreak}ji̍t chiah koh lâi.

Это выглядит запутанно. Поскольку я использую xelatex, я думаю, что я мог бы определить команду для последовательности, и в то же время сделать ее больше похожей на двойной дефис даже в исходном коде.

\newcommand{\‐‐}{\mbox{‐‐}{\allowbreak}}

Те ‐ в \‐‐ не U+002D, а U+2010. Такие же, как в \mbox, чтобы избежать лигатуры. И, предположительно, я могу написать

Āu\‐‐ji̍t chiah koh lâi.

Гораздо легче понять, что это двойной дефис.

Однако я получил сообщение об ошибке. ! Ошибка LaTeX: отсутствует \begin{document}.

Что озадачивает, так это то, что

\newcommand{\‐}{\mbox{‐‐}{\allowbreak}}

работает нормально. Но это не идеально, так как не похоже на двойной дефис.

Если нет хорошего решения, мне нужно забыть о \allowbreak, и просто написать два U+2010 подряд. Но слова с двойным дефисом длинные, и набор становится уродливым.

решение1

Если вы можете ввести U+2010, то комбинация ‐‐(U+2010 U+2010) не создаст лигатуру.

Ты можешьв некотором родеопределить \--(с дефисами, но это сотрет определение \-).

Возможной альтернативой было бы использование \0--(с двумя дефисами):

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

введите описание изображения здесь

решение2

Вы можете отключить классические лигатуры TeX, --которые не нужны в xelatex, вы можете просто ввести короткое тире, чтобы получить тире.

введите описание изображения здесь

\documentclass{article}

\usepackage{fontspec}
\setmainfont[Ligatures=TeXOff]{Arial}

\begin{document}

Āu--ji̍t chiah koh lâi dash–dash.

\end{document}

Связанный контент