如何获取换行后的第一个单词并在必要时进行更改

如何获取换行后的第一个单词并在必要时进行更改

我想获取自动换行后的第一个单词,然后检查它并在需要时进行更改。这在传统的阿拉伯语拼写中对于某些单词是必需的。

例如,当foo自动换行符之后(在新行的开头)我想将其更改为FOO

答案1

如果您准备标记特殊单词,则可以使用\discretionary(与 TeX 添加连字符的机制相同)一个缺点是您不能在自由选择符中使用可拉伸空格,因此单词前的空格固定在其自然长度(在框中)

在此处输入图片描述

\documentclass{article}

\def\foo{\unskip\discretionary{}{FOO}{\hbox{ foo}}}

\begin{document}

one two three \foo\ four one two three \foo\ four
one two three \foo\ four one two three \foo\ four
\foo\ one two three \foo\ four one two three \foo\ four
one two three \foo\ four one two three \foo\ four
one two three \foo\ four one two three \foo\ four
one two three \foo\ four \foo\ one two three \foo\ four
\foo\ one two three \foo\ four \foo\ one two three \foo\ four
one two three \foo\ four one two three \foo\ four
one two \foo\ \foo\ three \foo\ four one two three \foo\ four
one two three \foo\ four one two three \foo\ four
\end{document}

三个参数分别\discretionary是:如果有换行符(空),则显示第一行末尾的部分文本;如果有换行符(FOO),则显示第二行开头的部分文本;如果没有换行符,则显示要使用的文本(空格 foo)

相关内容