Comportamiento del entorno \\ dentro del centro.

Comportamiento del entorno \\ dentro del centro.

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 \parfinal del párrafo se produzca dentro del grupo. Los parámetros que influyen en la composición tipográfica del párrafo, como \leftskipy \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 centerforma 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/ \parproblema.


Otra cosa a tener en cuenta es que el centerentorno redefine la forma \\de trabajar. Lo siguiente está tomado delatex.ltx(cualmemoirse 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 centersimilar a \par, lo que da lugar a una solución alternativa que mencionas

{
  ...
  Dragons\\
}% Title

Respuesta2

No utilice el {..}interior del centerambiente, ya es local. Y luego obtendrás un resultado adecuado \paral final del centerentorno (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}

ingrese la descripción de la imagen aquí

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}

ingrese la descripción de la imagen aquí

información relacionada