
Mientras intentaba compilar una página de título para mi tesis, me di cuenta de que no entiendo el comportamiento de \\
. Considere el siguiente 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}
lo que produce un mal espaciado antes de la última línea. Parece:
{\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
o
{\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
puede servir como solución. Ninguno de ellos es intuitivo para mí.
- ¿Cuál es la forma correcta de manejar los saltos de línea aquí (con un espaciado vertical ajustado manualmente)?
- ¿Por qué está sucediendo?Enséñame a pescar. Por qué
\\
se comporta de esta manera? Dónde estádocumentado?
Respuesta1
Lo siguiente está tomado deTeX por tema(sección17.2.1 Finalizar un párrafo y un grupo al mismo tiempo, pág. 167):
Si un párrafo está incluido en un grupo, puede ser necesario asegurarse de que el
\par
final del párrafo se produzca dentro del grupo. Los parámetros que influyen en la composición tipográfica del párrafo, como\leftskip
y\baselineskip
, sólo se examinan cuando el párrafo está terminado. Terminando así un párrafo con... last words.}\par
hace que se utilicen los valores que prevalecen fuera del grupo, en lugar de los de dentro.
Mejores formas de terminar el párrafo son
... last words.\par}
o
... last words.\medskip}
En el segundo ejemplo, el comando vertical hace que se inserte
\medskip
el token.\par
De esto queda claro que debes terminar un párrafo antes de que termine el grupo. Sin embargo, dado que center
forma un grupo en sí mismo, es más sencillo de usar.
\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}
y evitar el grupo/ \par
problema.
Otra cosa a tener en cuenta es que el center
entorno redefine la forma \\
de trabajar. Lo siguiente está tomado delatex.ltx
(cualmemoir
se usa tal cual) - Agregué algunos comentarios:
\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}
Está claro que \\
es center
similar a \par
, lo que da lugar a una solución alternativa que mencionas
{
...
Dragons\\
}% Title
Respuesta2
No utilice el {..}
interior del center
ambiente, ya es local. Y luego obtendrás un resultado adecuado \par
al final del center
entorno (realizado por el propio entorno):
\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}
Respuesta3
todos los demás ya han dado la respuesta obvia y correcta: es necesario acabar con el grupo \par
.
pero como también se desea abrir la línea base de manera uniforme, el ejemplo se puede simplificar:
\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}
Respuesta4
Esto se debe a que el párrafo dentro del entorno no finaliza. Espero que una de las siguientes soluciones (equivalentes) le resulte intuitiva.
\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}