请大家帮我写一个脚本,把texstudio里的所有数学公式$$...$$都替换成\ [...] 。谢谢!
答案1
以下几种方法或许可以帮助您入门。
我们将从以下文件开始,例如myfile.tex
:
myfile.tex
before text $$a^2+b^2=4$$ and $$c^2$$
$$
d^2+e^2 = f^2
$$
and also $$ g^2
$$ and some inline math: $h^2$
在以下每个命令中,输出为:
output.tex
before text \[a^2+b^2=4\] and \[c^2\]
\[
d^2+e^2 = f^2
\]
and also \[ g^2
\] and some inline math: $h^2$
选项 1:perl 单行代码
perl -p0 -e 's/\$\$(.*?)\$\$/\\\[$1\\\]/sg' myfile.tex > output.tex
看https://perldoc.perl.org/perlrun.html例如,有关 perl 开关的详细信息。
选项 2:使用 perl 脚本
使用以下脚本和命令
perl replace.pl myfile.tex > output.tex
replace.pl
#!/usr/bin/env perl
use strict;
use warnings;
# read the file into the Document body
my @lines;
my $fileName = $ARGV[0];
# if the file exists, read it into an array
if(-e $fileName){
open(MAINFILE, $fileName) or die "Could not open input file, $fileName";
push(@lines,$_) while(<MAINFILE>);
close(MAINFILE);
}
# join the lines up
my $body = join("",@lines);
# make the substitution
$body =~ s/\$\$
(.*?)
\$\$/\\\[$1\\\]/sgx;
# output the body
print $body;
exit(0);
选项 3:使用latexindent
使用latexindent
它应该作为您的LaTeX
发行版的一部分提供,您可以使用以下 YAML 设置文件:
Anh.yaml
replacements:
-
substitution: |-
s/\$\$
(.*?)
\$\$/\\\[$1\\\]/sgx
然后调用它
latexindent.pl -rr -l=Anh.yaml myfile.tex -o=output.tex