使用 Sublime Text 缩进 LaTeX 文件的样式

使用 Sublime Text 缩进 LaTeX 文件的样式

这是我的 LaTeX 代码的一部分以及我想要的效果:

...
\begin{table}
    \begin{tabularx}{\textwidth}{|l|l|l|X|X|X|X|}
... 

但是,如果我在 Sublime Text 3 中重新缩进它,它就变成:

...
\begin{table}
\begin{tabularx}{\textwidth}{|l|l|l|X|X|X|X|}
...

那么折叠功能也无效,我该如何解决这个问题?我正在使用LaTeXTools

答案1

您应该使用插件latexindent。请参阅这里用于文档和下载。

这里有一个例子,说明如何使用它arara以及缩进后代码的样子。

% arara: pdflatex
% arara: indent: { overwrite : yes }

\documentclass{article}
\usepackage{tabularx}
\usepackage{booktabs}

\begin{document}
\begin{table}
    \centering
    \begin{tabularx}{\textwidth}{lllXXXX}
        \toprule
        l & l & l & X & X & X & X \\ 
        \bottomrule
    \end{tabularx}
\end{table}
\end{document}

答案2

我找到albertxing 的要点在 ST3 中对我有用。总结一下,粘贴并保存为 LaTeX/Indentation Rules.tmPreferences 到您的用户配置文件文件夹(Sublime 的 Preferences > Browse Packages > LatexTools)。重新启动 Sublime,突出显示所有内容,然后编辑 > 行 > 重新缩进。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>name</key>
        <string>Indentation Rules</string>
        <key>scope</key>
        <string>text.tex, sources.bib</string>
        <key>settings</key>
        <dict>
            <key>decreaseIndentPattern</key>
            <string>(?x)
                ^\s*\\end\{[^\{\}]+\}.*$
            |   ^\s*\\\].*$
            |   ^\s*\}.*
            |   ^\s*\%.*\(end\).*$
            </string>
            <key>increaseIndentPattern</key>
            <string>(?x)
                ^\s*\\begin\{[^\{\}]+\}(\{.*\}|\[.*\])*$
            |   ^.*\\\[\s*$
            |   ^.*\\(.+)\{$
            |   ^\s*\\((sub)[0,2])?section(\*)?\{.*\}.*$
            </string>
        </dict>
        <key>uuid</key>
        <string>02EB44C6-9203-4F4C-BFCB-7E3360B12842</string>
    </dict>
</plist>

相关内容