latexindent と末尾のコメント

latexindent と末尾のコメント

マクロでは、マクロ定義内の改行文字を避けるために、行末にパーセント記号を置くのが合理的です。たとえば、複数行の定義を持つマクロは次のようになります。

\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 パラメータ

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
}

関連情報