
在巨集中,在行尾放置百分號是有意義的,以避免在巨集定義中出現任何換行符號。例如,具有多行定義的巨集可能如下所示:
\newcommand{\provideName}[3]{%
\providecommand{#1}{#2}%
\addto\captionsenglish{\renewcommand{#1}{#2}}%
\addto\captionsngerman{\renewcommand{#1}{#3}}%
}
現在我使用該latexindent
工具自動格式化我的程式碼。通常,這工作得很好,但在這種情況下,格式化的程式碼如下所示:
\newcommand{\provideName}[3]{%
\providecommand{#1}{#2}%
\addto\captionsenglish{\renewcommand{#1}{#2}}%
\addto\captionsngerman{\renewcommand{#1}{#3}}%
}
為什麼會產生這些額外的換行符號?我怎麼才能關閉這種行為? (百分號是常見做法,對嗎?或者我可以安全地刪除它們嗎?)
本地設定.yaml
defaultIndent: ' '
onlyOneBackUp: 1
modifyLineBreaks:
textWrapOptions:
columns: 78
後期識別參數
latexindent -w -m --cruft=build --local=./localSettings.yaml myfile.sty
更新了 localSettings.yaml
根據 cmhughes 的建議,我添加了perCodeBlockBasis
以下選項:
defaultIndent: ' '
onlyOneBackUp: 1
modifyLineBreaks:
textWrapOptions:
columns: 78
perCodeBlockBasis: 1
這會在 texlive-2017 下產生以下程式碼:
\newcommand{\provideName}[3]{%
\providecommand{#1}{#2}%
\addto\captionsenglish{\renewcommand{#1}{#2}}%latexindenttrailingcomment36-EN
D
\addto\captionsngerman{\renewcommand{#1}{#3}}%latexindenttrailingcomment37-EN
D
}