选项 1:使用文件重新加载的半自动化方式

选项 1:使用文件重新加载的半自动化方式

我已经使用 Texmaker 大约 5 年了,由于它的灵活性,我更喜欢它而不是其他编辑器。

有没有办法在 TeXmaker 中自动缩进 LaTeX 代码,以便代码变得更易于管理?

答案1

将赞同的评论转换为答案,以从未答案列表中清除 Q。

这种缩进和代码美化是通过乳胶压痕工具休斯可以通过用户命令集成到 TeXmaker 中,并通过阿拉拉. 因此 TeXmaker 没有任何完整承诺的缩进。

另外,可能需要更改 TeXmaker 的设置才能注意到外部所做的缩进更改araralatexindent如下所示

打开 TeXmaker:Options--> Configure--> -->可能需要Editor勾选。check for external changes

答案2

我建议 pat-s 对选项 1) 稍作修改。

至少在 TeXstudio 中,

选项 -> 配置 TeXstudio -> 构建

您可以选择添加“用户命令”。定义命令latexindent -w %.tex。保存并返回到您的文档,您现在可以单击

工具 -> 用户 -> 您的命令

这也可以通过快捷方式调用,即我用来alt + shift + F1自动缩进整个文档。

答案3

这个答案应该为您提供两个选项,以便快速缩进您的.tex文件,而无需阅读两本手册。

arara手动的:关联
latexindent手动的:关联

选项 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来编译我的文件。随后,我将以下几行添加到我的文件中:.texXeLaTexBiberbibtexXeLaTeX.tex

% arara: xelatex
% arara: xelatex
% arara: biber
% arara: xelatex

然后,您只需在 Texmaker 中执行自定义命令,您的文件就会按照您想要的方式进行编译。

要检查arara您的系统上是否正确安装,只需输入arara命令行,您就会看到一些概述选项。

arara 和 latexindent

latexindent也可以在每次编译时从文件arara内部调用。要将两者结合起来,请遵循以下指南:.tex如何配置 TexLive 2015 以使用 latexindent.pl 脚本和 Kile

编辑[2017年11月]ararav4 带有一个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 月]

相关内容