我希望LaTeX能够自动将“a”,“s”,“z”等字符串替换为“a~”,“s~”,“z~”,因为它们不能在行尾。有什么建议吗?
答案 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
(或类似名称),然后执行此操作。