Estoy trabajando en un documento que debería contener dos encabezados diferentes. Los encabezados se generan especificando pagestyle
s. Desafortunadamente, los encabezados tienen alturas muy diferentes, lo que hace que el espacio alrededor del contenido del encabezado se vea mal.
¿Cómo cambio el headheight
de páginas específicas que contienen un encabezado diferente? Hice un MWE para mostrar la versión defectuosa con solo uno headheight
:
\documentclass[oneside]{memoir}
\usepackage{lipsum}
% Margin measures
\setulmarginsandblock{140pt}{\lowermargin}{*} % {upper margin}{lower margin}{ratio}
\setheadfoot{5\baselineskip}{\footskip} % {headheight}{footskip}
\setheaderspaces{72pt}{*}{*} % {headdrop}{headsep}{ratio}
\checkandfixthelayout[nearest]
% Header #1
\makepagestyle{pagestyle1}
\makeoddhead{pagestyle1}{}{Short header info}{}
\makeevenhead{pagestyle1}{}{Short header info}{}
% Header #2
\makepagestyle{pagestyle2}
\makeoddhead{pagestyle2}{}{Way\\way\\longer\\header\\info}{}
\makeevenhead{pagestyle2}{}{Way\\way\\longer\\header\\info}{}
\pagestyle{pagestyle2}
\begin{document}
\thispagestyle{pagestyle1}
\lipsum
\end{document}
Para aclarar: me gustaría algo como \setheadfoot{\baselineskip}{\footskip}
para pagestyle1
.
Tenga en cuenta que estoy usando memoir
y es por eso que no sigo la respuesta dada aquí:Diferente \headheight en un documento
EDITAR:
Según lo solicitado por Daleif, estoy tratando de visualizar un "ejemplo del mundo real". Vea la imagen a continuación. La imagen es parte del encabezado, mientras que las tablas debajo del encabezado tienen diferentes alturas. En este momento sólo necesito que la primera página contenga "información especial", ya que el resto de las páginas serían idénticas a la página 2. La pregunta anterior se hace para generalizar el problema/solución y así obtener un documento menos "hacky".
Respuesta1
Establecería el estilo de página del documento como predeterminado y ajustaría la primera página para adaptarla a sus necesidades.
El ejemplo mínimo siguiente mueve el texto de la primera página hacia arriba.enel encabezado, haciendo que parezca que las dimensiones del bloque de texto difieren. Puedes jugar con algunas de las longitudes que se adapten a tus necesidades:
\documentclass[oneside]{memoir}
\usepackage{lipsum}
% Margin measures
\setulmarginsandblock{140pt}{\lowermargin}{*} % {upper margin}{lower margin}{ratio}
\setheadfoot{5\baselineskip}{\footskip} % {headheight}{footskip}
\setheaderspaces{72pt}{*}{*} % {headdrop}{headsep}{ratio}
\checkandfixthelayout[nearest]
% Header #1
\newcommand{\shortheadertext}{\begin{tabular}[t]{c} Short header \\ info \end{tabular}}
\makepagestyle{pagestyle1}
\makeoddhead{pagestyle1}{}{\vphantom{\longheadertext}\shortheadertext}{}
\makeevenhead{pagestyle1}{}{\vphantom{\longheadertext}\shortheadertext}{}
% Header #2
\newcommand{\longheadertext}{\begin{tabular}[t]{c} Way \\ way \\ longer \\ header \\ info \end{tabular}}
\makepagestyle{pagestyle2}
\makeoddhead{pagestyle2}{}{\longheadertext}{}
\makeevenhead{pagestyle2}{}{\longheadertext}{}
\pagestyle{pagestyle2}% Default page style
\AtBeginDocument{% First page is different
\thispagestyle{pagestyle1}% Uses a smaller header...
\vspace*{-4\baselineskip}% ...and moves the text up by 4 baselines
}
\begin{document}
\lipsum
\end{document}
Se puede utilizar una técnica similar si la primera construcción del encabezado es más alta/más grande que los encabezados posteriores; establezca el estilo de página predeterminado para que coincida con la mayor parte de su documento y ajuste la primera página con un positivo \vspace*
para empujar el texto hacia abajo lo suficiente. Es posible que tengas que eliminar el espacio vertical que ocupa la construcción del encabezado más grande.
Respuesta2
No es del todo una solución a la pregunta planteada, sino una alternativa. Se trata de utilizar un recurso recursivo \afterpage
para agregar información en la parte superior de la página hasta que le indiquemos que se detenga. Hay una ligera sutileza al final si no hay ninguna parada en el texto, pero esto es sólo un ejemplo.
\documentclass[a4paper,oneside]{memoir}
\usepackage{afterpage,kantlipsum,etoolbox}
\newcommand\LongInfo{
\begin{center}
\rule{5cm}{5cm}
\bigskip
\begin{tabular}{ll}
Text & Text \\
Text & Text \\
Text & Text \\
Text & Text
\end{tabular}
\end{center}
}
\newcommand\ShortInfo{
\begin{center}
\rule{5cm}{5cm}
\begin{tabular}{ll}
Text & Text
\end{tabular}
\end{center}
}
\newtoggle{FIRST}
\toggletrue{FIRST}
\newcommand\RunSmallInfo{
\ifdef\STOP{}{
\iftoggle{FIRST}{
\global\togglefalse{FIRST}
}{
\ShortInfo
}
\afterpage{
\RunSmallInfo
}
}
}
\AtEndDocument{\def\STOP}
\begin{document}
\LongInfo
\RunSmallInfo
\kant[1-15]
STOP
\def\STOP{}
\kant[1-15]
\end{document}