如何更改没有页眉的页面的页眉高度

如何更改没有页眉的页面的页眉高度

在下面的这个 MWE 示例中,我为第一页创建了一个略大的页眉(使用thispagestyle),但在下一页中,即使不绘制页眉,LaTeX 仍会考虑headheight。大约是 12 pt(据我所知)。

此外,它还会触发有关页眉长度的警告,该长度至少应为 ~ 77pt。如果我设置, \setlength{\headheight}{77pt}情况在下一页会更糟,当然,因为它使用的是默认的 12 pt,所以它对所有页眉都使用 77pt,即使是第 2 页及以后的空白页也是如此。我的问题是:

  1. 如何将 headerheight 仅设置为第 1 页;以及
  2. 当没有显示标题时,如何完全删除标题高度?
    \documentclass{文章}
    \usepackage[utf8]{输入框}
    \usepackage{fancyhdr}
    \usepackage{lipsum}
    \usepackage{graphicx}
    
    \fancypagestyle{页眉页}{%
    \fancyhf{}
    \renewcommand{\headrulewidth}{0pt}
    \fancyhead[l]{%
    \hspace{-1厘米}%
    \includegraphics[高度=5\baselineskip,宽度=5\baselineskip]{示例图像-a}
    \hspace{\baselineskip}%
    \begin{minipage}[b][5\baselineskip][c]{.5\textwidth}\sffamily
    \LaTeX \\ 大学
    印刷术研究所
    人文计算系
    教授:真是个好人
    乳胶的历史 101
    \结束{迷你页面}}
    \fancyfoot[c]{\thepage}
    }
    
    \title{MWE}
    \author{某学生}
    \date{2020 年 12 月}
    
    \开始{文档}
    
    \maketitle
    
    \thispagestyle{页眉页}
    
    \lipsum
    
    \lipsum
    
    \结束{文档}

PS:此外,设置\headheight为 77pts 会将文本向下推,从而将页脚(和 \thepage)向下推,在底部边缘几乎没有留下任何喘息空间,因此我需要用以下方法进行平衡:

\addtolength{\textheight}{-65pt}

自从77-12 = 65

对这个问题有更好的解决方案吗?(如果这是一个问题的话)。

答案1

由于您只想在第一页的顶部插入徽标和一些附加文本,所以最好只这样做。

使用该xcoffin包,您可以将内容放入框(Set),组装框(Join),然后将结果(Typeset)写入当前插入点加上一些 XY 偏移量。\Framex收集徽标和文本框并将它们放在页面的上角。

\maketitle发布一个新页面,所以我们需要避免这种情况。还使用普通样式,这很好。

然后,您可以根据您的要求,对文档的其余部分使用花式样式。

请注意,框的内容与布局设计是分开的。因此,如果您以后想将组件放在右侧或将文本与徽标放在一起,则只需修改\JoinCoffins 和/或偏移量。

关于工作原理的更详细的解释xcoffins在这个答案中

https://tex.stackexchange.com/a/572407/161015

当然还有包装文档中介绍的。

https://ctan.org/pkg/xcoffins?lang=en

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr}
\usepackage{lipsum}
\usepackage{graphicx}
    
\usepackage{showframe}  %added
\renewcommand*\ShowFrameColor{\color{red}}    %added
\usepackage{xcoffins}     %added

 %\pagestyle{fancy}
\fancyhf{}
\fancyhead[L]{\thepage}
\fancyhead[R]{\textit\leftmark}

\NewCoffin\Framex
\NewCoffin\Logox
\NewCoffin\Affilx

\title{MWE}
\author{Some student}
\date{December 2020}

\begin{document}

\SetHorizontalCoffin\Logox{% the logo
\includegraphics[height=5\baselineskip,width=5\baselineskip]{example-image-a}
}

\SetVerticalCoffin\Affilx{.5\textwidth}{% the text
\sffamily\noindent
University of \LaTeX \\
Institute of Typography \\
Department of Humanistic Computing \\
Professor: A good fellow \\
History of Latex 101
}  

\JoinCoffins*\Framex[hc,vc]\Logox[l,t](-30pt, 80pt) % XY offset to put on the left top corner of the page
\JoinCoffins*\Framex[\Logox-r,\Logox-vc]\Affilx[l,vc](15pt,0pt) %X offset between logo and text
\noindent \TypesetCoffin\Framex 

{\let\newpage\relax\maketitle} % to avoid \newpage from \maketitle. The page is in style plain    

\pagestyle{fancy}    
\section{One}

\lipsum

\lipsum

\section{Two}

\lipsum

\end{document}

出去

我不完全理解你的第二个问题。

如果您使用该geometry包,您可以减少文档所有页面的页眉空间,最大化文本区域,如下所示。

或者,仅使用fancyhdr样式plain,则不会打印页眉(页码必须位于某处),但页眉空间将保留。由于\maketitle使用普通样式,因此文档的其余部分不需要其他样式。

\thispagestyle{empty}可以使用after来抑制第一页的页码\maketitle

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr}
\usepackage{lipsum}
\usepackage{graphicx}
    
\usepackage{showframe}  %added
\renewcommand*\ShowFrameColor{\color{red}}    %added
\usepackage{xcoffins}     %added    

\usepackage[top=0cm,bottom=0.5cm,left=1.5cm,right=2.5cm,includeheadfoot, headheight=0cm]{geometry}   %added

\NewCoffin\Framex
\NewCoffin\Logox
\NewCoffin\Affilx

\title{MWE}
\author{Some student}
\date{December 2020}

\begin{document}
    
\SetHorizontalCoffin\Logox{% the logo
\includegraphics[height=5\baselineskip,width=5\baselineskip]{example-image-a}
}

\SetVerticalCoffin\Affilx{.5\textwidth}{% the text
\sffamily\noindent
University of \LaTeX \\
Institute of Typography \\
Department of Humanistic Computing \\
Professor: A good fellow \\
History of Latex 101
}  

\JoinCoffins*\Framex[hc,vc]\Logox[l,t](-10pt, 20pt) % XY offset to put on the left top corner of the page
\JoinCoffins*\Framex[\Logox-r,\Logox-vc]\Affilx[l,vc](15pt,0pt) %X offset between logo and text
\noindent \TypesetCoffin\Framex 

\vspace{4\baselineskip}

{\let\newpage\relax\maketitle} % to avoid \newpage from \maketitle. The page is in style plain    

%\thispagestyle{empty}     % no headers or footers, only this page

\section{One}

\lipsum

\lipsum

\section{Two}

\lipsum

\end{document}

输出4

相关内容