Diferentes alturas de cabeça em um documento (livro de memórias)

Diferentes alturas de cabeça em um documento (livro de memórias)

Estou trabalhando em um documento que deve conter dois cabeçalhos diferentes. Os cabeçalhos são gerados especificando pagestyles. Infelizmente, os cabeçalhos têm alturas muito diferentes, o que faz com que o espaçamento em torno do conteúdo do cabeçalho pareça ruim.

Como altero headheightpara páginas específicas que contêm um cabeçalho diferente? Fiz um MWE para mostrar a versão defeituosa com apenas um 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 esclarecer: eu gostaria de algo como \setheadfoot{\baselineskip}{\footskip}for pagestyle1.

Observe que estou usando e memoiré por isso que não estou seguindo a resposta dada aqui:Diferente \headheight em um documento

EDITAR:

Conforme solicitado por daleif, estou tentando visualizar um "exemplo do mundo real". Veja a imagem abaixo. A imagem faz parte do cabeçalho, enquanto as tabelas abaixo do cabeçalho têm alturas diferentes. Neste momento só preciso que a primeira página contenha "informações especiais", pois o resto das páginas seriam idênticas à página 2. A pergunta acima é feita para generalizar o problema/solução e assim obter um documento menos "hacky".

Imagem de exemplo

Responder1

Eu definiria o estilo da página do documento como padrão e ajustaria a primeira página para atender às suas necessidades.

O exemplo mínimo abaixo move o texto da primeira página para cimaemo cabeçalho, fazendo parecer que as dimensões do bloco de texto são diferentes. Você pode alterar alguns dos comprimentos para atender às suas necessidades:

insira a descrição da imagem aqui

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

Uma técnica semelhante pode ser usada se a primeira construção do cabeçalho for mais alta/maior que os cabeçalhos subsequentes; defina o estilo de página padrão para corresponder ao volume do seu documento e ajuste a primeira página com um positivo \vspace*para empurrar o texto para baixo o suficiente. Talvez seja necessário remover o espaço vertical ocupado pela construção do cabeçalho maior.

Responder2

Não é exatamente uma solução para a questão dada, mas uma alternativa. Isso está usando um método recursivo \afterpagepara adicionar informações no topo da página até que peçamos para parar. Há uma leve sutileza no final se não houver parada no texto, mas este é apenas um exemplo.

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

informação relacionada