\\ 内部センター環境の動作

\\ 内部センター環境の動作

論文のタイトルページを作成しようとしていたときに、 の動作を理解していないことに気付きました\\。次の MWE を考えてみましょう。

\documentclass{memoir}
\begin{document}
\begin{center}
  {\Huge\bfseries%
    Eat fresh tires to\\[0.25\baselineskip]
    Get Ready to the Ultimate\\[0.25\baselineskip]
    Victory Against the\\[0.25\baselineskip]
    Dragons
  }% Title
\end{center}
\end{document}

最後の行の前に不適切なスペースが生じます。次のいずれかのようです:

{\Huge\bfseries%
  Eat fresh tires to\\[0.25\baselineskip]
  Get Ready to the Ultimate\\[0.25\baselineskip]
  Victory Against the\\[0.5\baselineskip]
  Dragons
}% Title

または

{\Huge\bfseries%
  Eat fresh tires to\\[0.25\baselineskip]
  Get Ready to the Ultimate\\[0.25\baselineskip]
  Victory Against the\\[0.25\baselineskip]
  Dragons\\
}% Title

回避策として役立ちます。どちらも私にとっては直感的ではありません。

  • ここで改行を処理する正しい方法は何ですか (手動で調整された垂直間隔を使用)?
  • なぜそんなことが起きるのでしょうか?魚釣りの仕方を教えてください。 なぜ\\このような行動をとるのか?それはどこにあるか文書化された?

答え1

以下はトピック別TeX(セクション17.2.1 段落とグループを同時に終了する、p 167):

\par段落がグループ内に設定されている場合は、段落の終了がグループ内で行われるようにする必要があります。段落の組版に影響を与えるパラメータ、たとえば\leftskipや は\baselineskip、段落が終了したときにのみ考慮されます。したがって、段落を

... last words.}\par

グループ内の値ではなく、グループ外の値が優先されるようになります。

段落を終わらせるより良い方法は

... last words.\par}

または

... last words.\medskip}

2 番目の例では、垂直コマンド\medskip によって\parトークンが挿入されます。

このことから、グループが終了する前に段落を終わらせるべきであることは明らかです。しかし、centerそれ自体がグループを形成するので、

\begin{center}
  \Huge\bfseries%
    Eat fresh tires to\\[0.25\baselineskip]
    Get Ready to the Ultimate\\[0.25\baselineskip]
    Victory Against the\\[0.25\baselineskip]
    Dragons
\end{center}

グループ/\par問題を回避します。


もう一つの認識すべきことは、center環境が仕事のやり方を再定義するということです\\。以下はlatex.ltx(どれのmemoirそのまま使用) - いくつかコメントを追加しました:

\message{center,}
\def\@centercr{\ifhmode \unskip\else \@nolnerr\fi
       \par\@ifstar{\nobreak\@xcentercr}\@xcentercr}% \@centercr is \par (with more stuff)
\def\@xcentercr{\addvspace{-\parskip}\@ifnextchar
    [\@icentercr\ignorespaces}
\def\@icentercr[#1]{\vskip #1\ignorespaces}
\def\center{\trivlist \centering\item\relax}% \begin{center}
\def\endcenter{\endtrivlist}% \end{center}
\def\centering{% Called when using \begin{center}
  \let\\\@centercr% \\ is redefined to be \@centercr
  \rightskip\@flushglue\leftskip\@flushglue
  \parindent\z@\parfillskip\z@skip}

\\centerに似ていることは明らかであり\par、あなたが言及した回避策の1つが生じます。

{
  ...
  Dragons\\
}% Title

答え2

{..}環境の内部は使用しないでくださいcenter。すでにローカルになっています。そして、環境\parの最後に適切なものが表示されますcenter(環境自体によって実行されます)。

\documentclass{memoir}
\begin{document}
\begin{center}
  \Huge\bfseries%
    Eat fresh tires to\\[0.25\baselineskip]
    Get Ready to the Ultimate\\[0.25\baselineskip]
    Victory Against the\\[0.25\baselineskip]
    Dragons
\end{center}

default font size and shape
\end{document}

ここに画像の説明を入力してください

答え3

他の全員がすでに明白な正解を出したので、グループは で終了する必要があります\par

しかし、ベースラインを均一に開くことも望まれるため、例は簡略化できます。

\documentclass{memoir}
\begin{document}
\begin{center}
  {\Huge\bfseries
   \baselineskip=1.25\baselineskip
    Eat fresh tires to\\
    Get Ready to the Ultimate\\
    Victory Against the\\
    Dragons
    \par
  }% Title
\end{center}
\end{document}

答え4

これは、環境内の段落が終了していないためです。次の(同等の)解決策のいずれかが直感的にわかることを願っています。

\documentclass{memoir}
\begin{document}

\begin{center}
  {\Huge\bfseries%
    Eat fresh tires to\\[0.25\baselineskip]
    Get Ready to the Ultimate\\[0.25\baselineskip]
    Victory Against the\\[0.25\baselineskip]
    Dragons

  }% Title
\end{center}

\begin{center}
  {\Huge\bfseries%
    Eat fresh tires to\\[0.25\baselineskip]
    Get Ready to the Ultimate\\[0.25\baselineskip]
    Victory Against the\\[0.25\baselineskip]
    Dragons\par
  }% Title
\end{center}

ここに画像の説明を入力してください

関連情報