Latexident 和尾隨註釋

Latexident 和尾隨註釋

在巨集中,在行尾放置百分號是有意義的,以避免在巨集定義中出現任何換行符號。例如,具有多行定義的巨集可能如下所示:

\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
}

相關內容