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