Diferentes alturas de cabeza en un documento (memorias)

Diferentes alturas de cabeza en un documento (memorias)

Estoy trabajando en un documento que debería contener dos encabezados diferentes. Los encabezados se generan especificando pagestyles. 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 headheightde 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 memoiry 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".

Imagen de ejemplo

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:

ingrese la descripción de la imagen aquí

\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 \afterpagepara 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}

información relacionada