![选项 1:使用文件重新加载的半自动化方式](https://linux22.com/image/272924/%E9%80%89%E9%A1%B9%201%EF%BC%9A%E4%BD%BF%E7%94%A8%E6%96%87%E4%BB%B6%E9%87%8D%E6%96%B0%E5%8A%A0%E8%BD%BD%E7%9A%84%E5%8D%8A%E8%87%AA%E5%8A%A8%E5%8C%96%E6%96%B9%E5%BC%8F.png)
我已经使用 Texmaker 大约 5 年了,由于它的灵活性,我更喜欢它而不是其他编辑器。
有没有办法在 TeXmaker 中自动缩进 LaTeX 代码,以便代码变得更易于管理?
答案1
答案2
我建议 pat-s 对选项 1) 稍作修改。
至少在 TeXstudio 中,
选项 -> 配置 TeXstudio -> 构建
您可以选择添加“用户命令”。定义命令latexindent -w %.tex
。保存并返回到您的文档,您现在可以单击
工具 -> 用户 -> 您的命令
这也可以通过快捷方式调用,即我用来alt + shift + F1
自动缩进整个文档。
答案3
这个答案应该为您提供两个选项,以便快速缩进您的.tex
文件,而无需阅读两本手册。
选项 1:使用文件重新加载的半自动化方式
使用latexindent
命令行可以完美缩进您的 .tex 文件。如果您使用latexindent -w yourfile.tex
然后单击,File -> Reload document from file
您的 .tex 文件就会缩进。
latexindent
本身随 Tex* 安装一起提供。如果您在使用命令行perl
输入时收到警告,则应使用以下方法解决latexindent -version
cpan
install YAML::Tiny
install Getopt::Long
install File::HomeDir
q
信用:如何配置 TexLive 2015 以使用 latexindent.pl 脚本和 Kile
选项 2:使用‘arara’的自动化方式(推荐)
arara
也随您的 Tex* 安装一起提供。
什么是arara
?
基本上,它只是自动执行各种 LaTeX 调用。Texmaker
您可以在 中设置自定义命令Users -> own commands
。命令应该是arara %.tex
。这将.tex
在您目录中的所有文件上应用 arara。
然后可以在文件中指定要arara
对文件执行的操作。对我来说,我需要使用 2x 、 1x (用于)和再次 1x来编译我的文件。随后,我将以下几行添加到我的文件中:.tex
XeLaTex
Biber
bibtex
XeLaTeX
.tex
% arara: xelatex
% arara: xelatex
% arara: biber
% arara: xelatex
然后,您只需在 Texmaker 中执行自定义命令,您的文件就会按照您想要的方式进行编译。
要检查arara
您的系统上是否正确安装,只需输入arara
命令行,您就会看到一些概述选项。
arara 和 latexindent
latexindent
也可以在每次编译时从文件arara
内部调用。要将两者结合起来,请遵循以下指南:.tex
如何配置 TexLive 2015 以使用 latexindent.pl 脚本和 Kile
编辑[2017年11月]:arara
v4 带有一个latexindent
在后台使用的“缩进”规则。目前还没有安装程序,但您可以按照自述。
然后,您只需将其添加% arara: indent: {some.options.here}
到 .tex 文件中即可。
我目前使用% arara: indent: {overwrite: yes}
。
此规则将.tex
使用创建的缩进版本覆盖您的文件latexindent
,并(可选)保存备份。请参阅第 3.2 节latexindent
手动的用于选项。
笔记:
但是,这种方式仍然会导致我使用 Texmaker 时出现编译错误。使用 时,
arara
从命令行运行效果很好latexindent
。随后,我建议使用选项 1 或从命令行运行arara
(我当前的方法),直到我弄清楚是什么导致了使用 Texmaker 的错误。latexindent
(版本 2.1R)在写这个答案时已经两年没有更新了(https://github.com/cmhughes/latexindent.pl) 并在从命令行执行时导致几个perl
相关的语法警告 ( )。它们似乎不会影响其使用,并且软件包维护者表示这些问题已在开发版本 (2.2R) 中得到修复。您可以从Unescaped left brace in regex is deprecated, passed through in regex
这里.latexindent
版本3正在准备中。latexindent
目前版本为 3.3,运行顺畅。祝您缩进愉快 :) [2017 年 11 月]