
На первой странице статьи я хочу создать заголовок намного выше, чем на остальных страницах. Проблема в том, что первая страница переполняется внизу, если я использую решение ниже. Как решить эту проблему?
\documentclass[11pt,a4paper]{article}
\usepackage{fancyhdr}
\usepackage{lipsum}
\pagestyle{fancy}
\fancypagestyle{plain}{%
\renewcommand{\headrulewidth}{3pt}%
\fancyhf{}%
\setlength{\headheight}{190pt}
\fancyhead[C]{
\hrule\hspace{0pt}\\
\vspace{3cm}
\hrule\hspace{0pt}\\
\vspace{3cm}
\hrule\hspace{0pt}\\
}
}
\begin{document}
\title{Lipsum ...}
\author{Me, Myself}
\date{}
\maketitle
\thispagestyle{plain}
\lipsum
\lipsum
\lipsum
\lipsum
\end{document}
решение1
Я бы использовал блок нулевой высоты (здесь представленный изображением) для заголовка на первой странице и пакета, titling
чтобы сместить заголовок вниз.
\documentclass[11pt,a4paper]{article}
\usepackage{fancyhdr,graphicx}
\usepackage{titling}
\usepackage{lipsum}
\setlength{\headheight}{13.6pt}
\pagestyle{fancy}
\fancypagestyle{firstpage}{%
\renewcommand{\headrulewidth}{0pt}%
\fancyhf{}%
\fancyhead[C]{%
\raisebox{-\height}[0pt][0pt]{\includegraphics[width=\textwidth,height=6cm]{example-image}}%
}%
}
\pretitle{\vspace*{5cm}\begin{center}\LARGE}
\begin{document}
\title{Lipsum ...}
\author{Me, Myself}
\date{}
\maketitle
\thispagestyle{firstpage}
\lipsum
\lipsum
\lipsum
\lipsum
\end{document}
решение2
Я бы посоветовал вам установить стиль страницы, чтобы он охватывал большую часть документа (страницы 2+), и установить заголовок для первой страницы как часть основного документа, перемещая его по мере необходимости. Таким образом, текст будет по-прежнему естественно перетекать со страницы 1-2.
\documentclass{article}
\usepackage{fancyhdr,graphicx}
\usepackage{lipsum}
\pagestyle{fancy}% Main document page style
\title{A title}
\author{An author}
\date{}
\begin{document}
\thispagestyle{plain}% Page style of first page only
\vspace*{\dimexpr-\headheight-\headsep}%
\noindent
\includegraphics[width=\linewidth,height=7cm]{example-image}% Your first page header
{\let\newpage\relax % Avoid page break due to \maketitle
\maketitle}
\sloppy\lipsum[1-50]
\end{document}
"Заголовок" первой страницы смещен вверх на \headsep+\headheight
, но может быть скорректирован для выравнивания с заголовками последующих страниц, в зависимости от того, как на самом деле выглядит "заголовок" вашей первой страницы. Конечно, вы также можете определить другой нижний колонтитул для первой страницы.
Так как \maketitle
обычно заголовок устанавливается в верхней части страницы, он выдает \newpage
. Чтобы избежать этого (и, следовательно, связать «заголовок» первой страницы с заголовком), мы на мгновение устанавливаем \newpage
на \relax
- пустую операцию...
решение3
Вы можете использовать geometry
пакет для изменения \textheight
первой страницы. geometry
имеет \newgeometry
команду, которая позволяет изменять геометрию (поля, высоту и ширину текста и т. д.) от точки, где \newgeometry
используется команда, до точки, где \restoregeometry
используется команда. Обратите внимание, что \restoregeometry
команда вызывает разрыв страницы, поэтому ее следует использовать в конце последней страницы, где \newgeometry
предполагается, что будет .
Кроме того, я не уверен, уместно ли переопределять plain
здесь стиль страницы, поскольку можно определить другой стиль страницы. Здесь я определил стиль firstpage
и использовал его для первой страницы, где я также переопределил его \textheight
на 320pt с помощью \newgeometry
. Значение 320pt может быть не лучшим, его, вероятно, можно настроить точнее.
\documentclass[11pt,a4paper]{article}
\usepackage{fancyhdr}
\usepackage{lipsum}
\usepackage{geometry}
\pagestyle{fancy}
\setlength{\headheight}{13.6pt}
\fancypagestyle{firstpage}{%
\fancyhf{}%
\renewcommand{\headrulewidth}{3pt}%
\renewcommand{\headheight}{190pt}%
\fancyhead[C]{%
\hrule\hspace{0pt}\\[3cm]
\hrule\hspace{0pt}\\[3cm]
\hrule\hspace{0pt}\\
}
\fancyfoot[C]{\thepage}
}
\title{Lipsum ...}
\author{Me, Myself}
\date{}
\begin{document}
\newgeometry{textheight=320pt}
\maketitle
\thispagestyle{firstpage}
\lipsum*[13]
\lipsum*[2]
\restoregeometry
\lipsum*[3]
\lipsum*[4]
\end{document}