假设我有以下代码清单:
font/lm/.code={
\RequirePackage{fix-cm}
\RequirePackage[rm={lining=true}]{cfr-lm}
\RequirePackage{amsfonts, amssymb}
% Define tabular-lining figures and oldstyle windows
\providerobustcmd{\tablining}{\tlstyle}
\providerobustcmd{\propold}{\postyle}
% Define bold small caps for AC and other header labels
\providerobustcmd{\labelstyle}[#1]{}
% Define title style
\providerobustcmd{}[]{}
\RequirePackage{inconsolata}
},
latexindent.pl
使用指定的默认选项运行此文件defaultSettings.yaml
将得到以下结果:
font/lm/.code={
\RequirePackage{fix-cm}
\RequirePackage[rm={lining=true}]{cfr-lm}
\RequirePackage{amsfonts, amssymb}
% Define tabular-lining figures and oldstyle windows
\providerobustcmd{\tablining}{\tlstyle}
\providerobustcmd{\propold}{\postyle}
% Define bold small caps for AC and other header labels
\providerobustcmd{\labelstyle}[#1]{}
% Define title style
\providerobustcmd{}[]{}
\RequirePackage{inconsolata}
},
理想情况下,我希望右括号的缩进}
位于同一水平作为font/lm/...
行,以及括号内的参数,即各个\RequirePackage
s 和providerobustcmd{}...
要缩进四个空格,类似于 C 风格语言的函数体:
int main() {
// code
}
tikzpicture
当然,我也想将其扩展到可选参数——这在排版/环境时特别有用pgfplots
,因为方括号内很容易有数十个参数。
答案1
在摆弄了设置的不同排列之后defaultSettings.yaml
,我得到了以下代码段,它完全按照预期工作:大括号不缩进,正文代码按规定缩进(预期缩进的文字游戏并非预期)。
# set noAdditionalIndent globally for codeblocks
noAdditionalIndentGlobal:
environments: 0
commands: 1
optionalArguments: 0
mandatoryArguments: 0
ifElseFi: 0
items: 0
keyEqualsValuesBracesBrackets: 1
namedGroupingBracesBrackets: 1
UnNamedGroupingBracesBrackets: 1
specialBeginEnd: 0
afterHeading: 0
filecontents: 0
说实话,我不太确定为什么这有效,但确实如此。我会查阅手册并在可以的时候发布更新。