替换LaTeX中的字符串

时间:2009-11-28 16:16:48

标签: latex replace

我希望LaTeX能够自动将“a”,“s”,“z”等字符串替换为“a~”,“s~”,“z~”,因为它们不能在行尾。有什么建议吗?

7 个答案:

答案 0 :(得分:3)

对于捷克印刷规则,有一个名为Vlna" by Petr Olšák - download的预处理器。这组(通常是捷克语中的介词)是可定制的 - 所以它也可以用于其他语言。

答案 1 :(得分:1)

我害怕(据我所知)这对于LaTeX来说基本上是不可能的。但是,基于LuaTeX的解决方案可能是可行的。

然而,我并不清楚,“a”,例如,不应该出现在一个结尾处 线。虽然我可能会习惯不同的排版规则。

(最后一段中的换行符有什么问题吗?:)

答案 2 :(得分:1)

您可以使用\StrSubstitute包中的xstring

例如

\StrSubstitute{change ME}{ ME}{d}

会将change ME转换为changed。 尽管嵌套是不可能的,但是要进行另一种替换,您必须以这种方式使用中间变量

\StrSubstitute{change ME}{ ME}{d}[\mystring]
\StrSubstitute{\mystring}{ed}{ing}

最后,您的解决方案将是

\usepackage{xstring}
\def\mystring{...source string here...}
\begin{document}
\StrSubstitute{\mystring}{ a }{a~{}}[\mystring]
\StrSubstitute{\mystring}{ s }{s~{}}[\mystring]
\StrSubstitute{\mystring}{ z }{z~{}}[\mystring]
\mystring
\end{document}
  • 请注意使用空字符串{}来避免序列~}

答案 3 :(得分:0)

据我所知,在LaTeX本身无法做到这一点。我会使用一些外部工具来自动执行此操作,因为我的典型设置涉及Makefile自己处理LaTeX运行。这使得在源上运行sed之类的工具变得相当容易,并使用正则表达式进行一些替换,并且一个简单的规则可以针对您的情况执行此操作。

如果您使用一些LaTeX编辑器为您完成所有工作,您应该检查编辑器正则表达式搜索和替换功能。

答案 4 :(得分:0)

是的,这是数据处理与数据组合的古老争论。我们总是在预处理器环境中完成这些工作,负责从源环境,SQL或纯文本中提取信息,并创建\ input(file.tex)的内容。

但是,有可能(TeX毕竟是一种编程语言),但你必须成为一名巫师。获得Stephan von Bechtolsheim的4卷实践TeX in Practice。

方法是开始一个环境(执行一个宏),其''参数''是文本直到环境的末尾。然后只是通过令牌修复你想要的那些。

尽管如此,我认为我们中的任何人都没有提倡这种做法。

答案 5 :(得分:0)

如果您使用TeXmaker编写LaTeX文件,则可以单击工具栏上的Edit按钮,然后单击Replace

会出现一个对话框,您可以一个接一个地输入字符串。

您可以在Find文本输入中添加要更改的字符串,以及在Replace文本输入中将其更改为的内容。

您还可以指定替换的起始位置。

答案 6 :(得分:-3)

点击文字编辑器菜单中的Find and Replace(或类似名称),然后执行此操作。