我正在寻找一个 LaTeX 代码嗅探器和/或代码美化器,因为我正在为我的 LaTeX 书籍创建一个 CI 服务器,我想要一些东西。:D
答案1
latexindent.pl
可在ctan
并且是texlive
github
您可以在以下位置找到(并关注)该项目
https://github.com/cmhughes/latexindent.pl
基本用法
您可以latexindent
通过键入以下命令之一从命令行运行,具体取决于您的操作系统和 tex 发行版
latexindent myfile.tex
latexindent.pl myfile.tex
latexindent.exe myfile.tex
您还可以使用arara
规则,indent.yaml
。
示例 1:入门
默认情况下,每次遇到脚本时\begin{<something>}...end{<something>}
它都会增加缩进。
从以下内容开始mwe.tex
mwe.tex
\begin{figure}[!htb]
\centering
\begin{tikzpicture}
\begin{axis}[
framed,
width=\figurewidth,
xmin=-5,xmax=5,
ymin=-1,ymax=5,
xtick={-6},
ytick={-6},
]
\addplot expression[domain=-4.5:2.2]{2^x};
\end{axis}
\end{tikzpicture}
\end{figure}
并运行
latexindent mwe.tex
输出结果如下:
\begin{figure}[!htb]
\centering
\begin{tikzpicture}
\begin{axis}[
framed,
width=\figurewidth,
xmin=-5,xmax=5,
ymin=-1,ymax=5,
xtick={-6},
ytick={-6},
]
\addplot expression[domain=-4.5:2.2]{2^x};
\end{axis}
\end{tikzpicture}
\end{figure}
示例 2:对齐分隔符
latexindent.pl
将致力于对齐基于分隔符的环境;例如,从以下内容开始mwe.tex
\begin{align*}
F(-x) & =-(-x)^2 & G(-x) & =-(-x)^4 & H(-x) & =-(-x)^6 \\
& =-x^2 & & =-x^4 & & =-x^6\\
& =F(x) & & =G(x) & & =H(x)
\end{align*}
并运行
latexindent.pl mwe.tex
给出
\begin{align*}
F(-x) & =-(-x)^2 & G(-x) & =-(-x)^4 & H(-x) & =-(-x)^6 \\
& =-x^2 & & =-x^4 & & =-x^6 \\
& =F(x) & & =G(x) & & =H(x)
\end{align*}
自定义缩进
所有自定义操作均通过YAML
界面完成。首先,您可以尝试创建以下小文件
localSettings.yaml
defaultIndent: " "
然后运行
latexindent.pl -l mwe.tex
如果你希望将YAML
文件命名为其他名称(例如myfile.yaml
),那么你可以运行
latexindent.pl -l=myfile.yaml mwe.tex
还有更多值得探索的事情
文档pdf
或者html
包含完整详细信息。您可能想探索以下一些内容:
verbatimEnvironments
适用于逐字记录环境specialBeginEnd
为您自己的图案-m
允许你修改换行符的开关
在任何重要的事情上使用它之前......
我建议同时使用以下方法:
- 目视检查
- 使用检查
latexdiff inputfile.tex outputfile.tex
答案2
我创建了一个网站,可以重新格式化乳胶代码以使缩进保持一致。这使用乳胶压痕在后端。这是一个非常基本的系统,但会对括号内的项目进行简单的缩进,以便它们处于同一级别。
它不进行任何代码嗅探,也无法检测您是否缺少结束标签。
答案3
答案4
VSCode 有一个名为Prettier它会自动格式化您的 (latex) 代码。在 VSCode IDE 中安装后,可以.tex
通过按以下方式自动格式化文件:
Ctrl+Shift+P
、Format Document
、<Press enter>
。(在 Mac 上替换Ctrl
为CMD
)。
您可以尝试在以下.tex
文件上进行在线测试他们的网站在安装之前。
笔记
我很想看一个例子.yml
来说明如何将 Prettier 纳入(到 GitLab)CI,作为检查/测试.tex
。基本上确保如果存储库中的文件并非全部符合要求,则抛出构建错误,如果文件格式符合要求prettier
,则获得构建通过。请分享此类解释的链接,或将其作为新答案包含在内,因为我认为这可能仍在问题范围内。.tex
prettier