我想使用纯 TeX 排版边距中的连字符(如果这对您很重要,我正在使用 XeTeX 引擎)。例如:
Lorem ipsum dolor sit amet, consecte-
tuer adipiscing elit. Aenean commodo
ligula eget dolor. Aenean massa. Cum
sociis natoque penatibus et magnis
dis parturient montes, nascetur ridi-
culus mus. Donec quam felis, ultrici-
es nec, pellentesque eu, pretium
quis, sem. Nulla consequat massa
quis enim. Donec pede justo, fringil-
la vel, aliquet nec, vulputate eget,
arcu.
这个网站上有一个类似的问题将连字符放在边距上,而不是文本中,但仅涵盖 LaTeX 和 ConTeXt。
我认为要走的路是重新定义\hypenchar
以便产生\discretionary{\rlap-}{}{}
。
答案1
就像在 latex 或 context 中一样,你可以启用内置的突起
\XeTeXprotrudechars=2
\font\rm=[lmroman10-regular.otf] \rm
\rpcode\font\XeTeXcharglyph\hyphenchar\font=350
\hsize=6.5cm
\parindent=0pt
Lorem ipsum dolor sit amet, consectetuer
adipiscing elit. Aenean commodo
ligula eget dolor. Aenean massa. Cum
sociis natoque penatibus et magnis
dis parturient montes, nascetur rididculus mus.
Donec quam felis, ultricies nec, pellentesque eu, pretium
quis, sem. Nulla consequat massa
quis enim. Donec pede justo, fringilla vel,
aliquet nec, vulputate eget,
arcu.
\bye
答案2
来自XeTeX 手册 §7:
\XeTeXprotrudechars ⟨integer⟩
相当于
\pdfprotrudechars
pdfTeX 中用于控制字符突出或“边距字距调整”的选项。设置为零(默认)时,字符突出关闭。设置为一时,字符突出被激活但不会影响换行。设置为二时,换行决策将因字符突出而改变。例子:
\XeTeXprotrudechars=2 \font\rm="[texgyrepagella-regular.otf]"\relax \rm \rpcode\font\XeTeXcharglyph\hyphenchar\font=250 \hsize=20mm a a a a a a a a a a abbabbabb aabbabbabb abbabb
有关更多详细信息,请参阅 pdfTeX 文档。
\rpcode ⟨font⟩ ⟨char slot⟩ (integer,