間隔を変更するには、段落を `\par` で閉じる必要があります

間隔を変更するには、段落を `\par` で閉じる必要があります

簡単なクラスを定義しました

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{mycustom}[2019/03/06 My custom class]
\LoadClass{article}
\RequirePackage{setspace}

\newcommand{\summary}{
    \begingroup
    \setlength{\parindent}{0cm}
    \onehalfspacing
}

\newcommand{\ensummary}{
    \endgroup
}

\endinput

次のように定義された単純な LaTeX ファイルを作成したとします。

\documentclass{mycustom}

\usepackage{lipsum}

\begin{document}

        \lipsum[1][1-3]

        \summary
        \lipsum[1][1-4]\par
        \ensummary

        \lipsum[1][1-3]

\end{document}

parの内側にを追加しないと、\summary1.5 間隔が機能しないことに気づきました。この動作がどのように発生するのか、また、削除して\par同じ動作 ( の内側に 1.5 間隔\summary) を維持する方法があるかどうかを知りたいです。改善のためのヒントがあれば大歓迎です。

これは私が追加した段落です\par

パー付き

これは、\par

パーなし

段落の中央の行間スペースに注意してください。

答え1

環境定義は行\par間隔の変更のスコープ内となるように次のように終了する必要があります。逆に、始めるそうでない場合、前のテキストが影響を受ける可能性があります (定義の\par最初の部分を除いた以下の例を試してください)。\par

コメントに記載されているように、これは環境である必要があります (LaTeX は通常、 で始まる名前でコマンドが定義されるのを防ぎます\end...)。その場合、明示的な\begingroupは必要ありません。また、\newline段落が終了することはなく、改行を強制するだけです。

\documentclass{article}

\usepackage{setspace,lipsum}

\newenvironment{summary}
{\par\setlength{\parindent}{0cm}\onehalfspacing}
{\par}

\begin{document}

        \lipsum[1][1-3]
        \begin{summary}
        \lipsum[1][1-4]
        \end{summary}

        \lipsum[1][1-3]

\end{document}

関連情報