格式化 LaTeX 源代码的标准样式有哪些?

格式化 LaTeX 源代码的标准样式有哪些?

在任何其他编程语言中,我们都有几种方法来格式化源代码。例如,一些标准样式是:

  1. 奥尔曼(ANSI)
  2. 韓國
  3. GNU
    ....

在 LaTeX 中,我找不到一种简洁的方法来清理我的代码。大多数时候,我通常会让它们像这样相互对齐:

来自 TikZ Automaton 的一个例子

\begin{tikzpicture}[shorten >=1pt, node distance=3cm,auto,on grid,initial text=, every state/.style={minimum size=3mm,draw=blue!50,very thick,fill=blue!20}]
            \node[state]            (q_1)                           {$q_1$}; 
            \node[state]            (q_2)   [right=of q_1]          {$q_2$}; 
            \node[state,accepting]  (q_3)   [right=of q_2]          {$q_3$};

            \path[->]
            (q_1) edge                      node             {a}        (q_2)
            (q_1) edge  [loop left]         node             {b}        (q_1)

            (q_2) edge  [bend right]        node[yshift=4mm] {a}        (q_1)
            (q_2) edge                      node             {b}        (q_3)

            (q_3) edge  [bend left]         node             {a}        (q_1)
            (q_3) edge  [loop right]        node             {b}        (q_3)
            ;       
\end{tikzpicture}

不用说,手动执行此操作非常耗时且繁琐。此外,由于它不遵循任何规则,格式不一致,并且可能因文件而异。所以我的问题是,格式化源.tex代码是否有标准样式?

答案1

我认为除了 C/C++ 和具有类似 C 语法的语言之外,没有太多标准的编码风格。事实上,你在问题中提到的风格都是 C 风格。我不记得有任何命名样式适用于 lua、PHP、Lisp 等。当然,许多语言都有广泛使用的风格,但除了 C/C++ 之外,你几乎找不到任何“风格指南”。

TeX 的语法非常独特,但它实际上并没有一种风格。在我看来,定义一种风格甚至是不可能的。例如,在 C 语言中,有人(我认为是 Linus)曾经说过,如果你的代码有三层或更多的嵌套层,那么你应该重新设计它。然而,对于 TeX 来说,数学公式有很多层括号的情况并不罕见,人们需要处理这些长公式,即如何将它们分成几行,在哪里对齐它们,等等。在 TeX 世界中,很难定义适用于所有情况的明确规则。

可读性代码的对齐仍然非常重要:这就是样式被发明的原因。根据我的经验,对齐可能是提高 TeX 代码可读性的最重要工具。事实上,有一些工具,例如 Vim 的 Align 插件,可以使这项任务更容易。缩进对 TeX 和其他语言一样重要。我只是不认为为所有 TeX 代码定义一致的规则更好。相反,我认为 TeX 更接近人类语言,需要我们根据上下文来提高其可读性。

相关内容