可能重复:
将数学区域中经常使用的 Tex-Literals ($ 和 $$) 替换为 \( 或 \) 和 \[ 或 \]
当我开始使用 latex 时,我使用 将数学公式与连续文本分开来编写$$...$$
。我已阅读文档中的建议l2tabuen
替换:
$$...$$
由\[...\]
。
因为在我的项目中,这是一个由许多文件组成的大型项目,所以无法手动完成。我认为这样的 Python 脚本非常合适。也许有人解决了类似的问题。
答案1
这是一个简单的脚本,perl
是我在许多场合使用过的脚本的精简版。它不会对\begin{document}
行前的内容进行任何更改,然后$$
交替替换\[
并\]
放置在自己的行上。
#! /usr/bin/env perl
use warnings;
use strict;
my $indoc = 0;
my $indisplaymath = 0;
my @dsubs;
$dsubs[0] = '\\[';
$dsubs[1] = '\\]';
while (<>) {
if (/\\begin{document}/) {
$indoc = 1;
}
if ($indoc == 1) {
while (/\s*\${2}\s*/p) {
my $pre = '';
my $post = '';
if (${^PREMATCH} ne '') { $pre = "\n"; }
$_ =~ s/\s*\${2}\s*/$pre$dsubs[$indisplaymath]\n/;
$indisplaymath = 1 - $indisplaymath;
}
}
print;
}
将其保存为脚本,例如latexdisp.pl
,赋予其执行权限并以chmod +x latexdisp.pl
身份运行latexdisp.pl file.tex >out.tex
。最后,仔细检查输出。
例如
\documentclass[12pt]{article}
\begin{document}
Test
$$ x = \int_0^3 y(t)\, dt $$ testing
$ p/q $
$$
e = t
$$
\end{document}
输出是
\documentclass[12pt]{article}
\begin{document}
Test
\[
x = \int_0^3 y(t)\, dt
\]
testing
$ p/q $
\[
e = t
\]
\end{document}
修改中的字符串$dsubs[0]
,$dsubs[1]
您可以更改替换以获得例如\begin / \end{equation*}
对。记得引用反斜杠。