台语中的双连字符具有语法功能

台语中的双连字符具有语法功能

在台灣語中,雙連字號具有文法功能,使用很频繁。例如:

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

相关内容