
Пытаясь составить титульный лист для своей диссертации, я понял, что не понимаю поведение \\
. Рассмотрим следующий 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 Одновременное завершение абзаца и группы, стр. 167):
Если абзац находится в группе, может потребоваться обеспечить, чтобы
\par
окончание абзаца происходило внутри группы. Параметры, влияющие на набор текста абзаца, такие как\leftskip
и\baselineskip
, рассматриваются только после завершения абзаца. Таким образом, завершая абзац с... last words.}\par
приводит к использованию ценностей, преобладающих за пределами группы, а не внутренних.
Лучшие способы закончить абзац:
... last words.\par}
или
... last words.\medskip}
Во втором примере вертикальная команда
\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}
Очевидно, что \\
in center
похож на \par
, что приводит к одному обходному пути, о котором вы упомянули
{
...
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}