複数行で定義された新しいコマンドは余分な空白を作成します

複数行で定義された新しいコマンドは余分な空白を作成します

複数行にわたってを定義すると\newcommand、出力に不要な空白が入ります。

長いコマンドを記述し、余分な空白を入れずに読みやすくするにはどうすればよいでしょうか?

私の現在の解決策は、すべてを改行せずに書くことですが、これはあまり持続可能ではありません。

この動作の MWE は次のとおりです。

\documentclass{memoir}
\begin{document}

\newcommand{\lraA}{B}

\newcommand{\lraB}{
%lots of latex logic
%so this command is on multiple lines
B
}

\ \\
A\lraA{}C\\
A\lraB{}C
\end{document}

これにより、次のものが生成されます。

ABC

ABC

答え1

改行はスペースとして扱われます。そのため、コードでは

\newcommand{\lraB}{     %  <--  you are putting a space here!
%lots of latex logic
%so this command is on multiple lines
B     %  <--  you are putting a space here!
}

不要なスペースを避けたい場合は、行末にコメント文字を置く必要があります%

\newcommand{\lraB}{%  <--  HERE
%lots of latex logic
%so this command is on multiple lines
B%  <--  HERE
}

詳細はこちらをご覧ください。

関連情報