Estou trabalhando em um documento que deve conter dois cabeçalhos diferentes. Os cabeçalhos são gerados especificando pagestyle
s. 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 headheight
para 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".
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:
\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 \afterpage
para 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}