不久前,我一直在为 JavaScript 寻找这个,但我想知道是否存在一个适用于所有或大多数语言的通用方法。
例如,对于 LaTeX,我会在文本框中输入以下内容
$f_i^k+10=x$
然后它就会输出格式更好的版本
%%%
%% Insert comment describing function here
%%%
$ f_{i}^{k} + 10 = x $
我不可能成为这个星球上唯一一个不想通过庞大的 .tex 文件来解决这些繁琐问题的人。
答案1
我创建了一个网站,格式化乳胶代码,使缩进看起来正确。
该网站的总体思路是确保您可以阅读代码。它还提供表格缩进。我仍在寻找是否可以为公式添加空注释块。
答案2
看一眼特普雷蒂。我曾用它几次来清理混乱的代码,效果不错。
答案3
从 3.7 版开始,latexindent.pl
可以帮助解决这个问题。
警告:使用如下正则表达式时一定要小心,始终检查它们的行为是否符合您的要求,并在将其用于任何重要的事情之前进行测试。
从以下示例代码开始
\begin{env}
$f_i^k+10=x$
\end{env}
$g_ij^12-3=x$
和YAML
文件,比如puk1.yaml
replacements:
-
substitution: |-
s/\$(.*?)\$/%%
%% Insert comment describing function here
%%
\$$1\$/sxg
并运行命令
latexindent.pl -r myfile.tex -l=puk1.yaml
给出输出:
\begin{env}
%%
%% Insert comment describing function here
%%
$f_i^k+10=x$
\end{env}
%%
%% Insert comment describing function here
%%
$g_ij^12-3=x$
这不包含您要求的所有内容。我们可以在以下文件中纳入更多替换内容,例如puk2.yaml
replacements:
-
substitution: |-
s/\$\h*(.*?)\h*\$/#
my $comment = "%%\n%% Insert comment describing function here\n%%\n";
my $body = $1;
# add braces to superscripts and subscripts
$body =~ s@(\^|\_)([a-zA-Z0-9]+)@$1\{$2\}@sg;
# add a single space around + - =
$body =~ s@\h*([+\-=])\h*@ $1 @sg;
# put it all together
$comment."\$ ".$body." \$";/sxge
并运行
latexindent.pl -r myfile.tex -l=puk2.yaml
给出
\begin{env}
%%
%% Insert comment describing function here
%%
$ f_{i}^{k} + 10 = x $
\end{env}
%%
%% Insert comment describing function here
%%
$ g_{ij}^{12} - 3 = x $
答案4
这个在线格式化程序可以帮助你。