横向模式下的 fancyhdr:如何正确对齐页眉和页脚

横向模式下的 fancyhdr:如何正确对齐页眉和页脚

我的文档有以下2个特点:

  1. 部分页面以横向模式和多列显示,其余页面则以纵向显示
  2. 每个页面都有一个“精美的”页眉/页脚

我在一篇相关文章中找到了一个很好的解决方案来解决第一个问题这里,这涉及更改页面尺寸以使其变为横向。但是,问题是,考虑到我的页面的几何形状,横向页面上的页眉/页脚看起来不对(即页脚不在中心并且超出页面,页眉不在右上角)。而且无论我如何摆弄\setlength\vsize\hsize我的横向页面仍然看起来像这样(见下文)。

我如何确保我的多列居中、页脚位于底部中央以及页眉位于右上角?

在此处输入图片描述

\documentclass{article}
\usepackage{fancyhdr}
\usepackage{lipsum}
\usepackage{multicol}
\usepackage{geometry}
 \geometry{
 left=0.5in, right=0.5in, top=0.6in, bottom=1.25in
 }
\begin{document}

\pagestyle{fancy}
\fancyfoot[C]{my footer}
\fancyhead[R]{my header\\ \\ Page \thepage}


\lipsum[1]
\newpage

\newlength{\mtL}
\setlength{\mtL}{.8\paperheight}% the next hsize
\addtolength\mtL{-\headwidth}
\newpage
\addtolength\headwidth{\mtL}

\paperwidth=\pdfpageheight
\paperheight=\pdfpagewidth
\pdfpageheight=\paperheight
\pdfpagewidth=\paperwidth
\headwidth=\textheight
\begingroup 
\vsize=.8\pdfpageheight % do what you like
\hsize=.8\pdfpagewidth  % do what you like
\textwidth=\hsize
\textheight=\vsize
\begin{multicols}{2}
\lipsum[1-10]
\end{multicols}
\endgroup



\newpage
\paperwidth=\pdfpageheight
\paperheight=\pdfpagewidth
\pdfpageheight=\paperheight
\pdfpagewidth=\paperwidth
\headwidth=\textwidth

\lipsum[3]
\end{document}

答案1

typearea以下是使用包和组合的建议geometry

\documentclass{article}
\usepackage{fancyhdr}
\usepackage{lipsum}
\usepackage{multicol}

\usepackage[usegeometry]{typearea}% before geometry!
\usepackage{geometry}
\geometry{
  left=0.5in, right=0.5in, top=0.6in, bottom=1.25in,headheight=23pt,includehead
}
\newcommand*{\useportrait}{%
  \clearpage
  \KOMAoptions{paper=portrait,DIV=current}%switch to portrait
  \newgeometry{% geometry settings for portrait
    left=0.5in, right=0.5in, top=0.6in, bottom=1.25in,headheight=23pt,includehead
  }%
  \fancyhfoffset{0pt}% <- recalculate head and foot width for fancyhdr
}
\newcommand*{\uselandscape}{%
  \clearpage
  \KOMAoptions{paper=landscape,DIV=current}%switch to landscape
  \newgeometry{% geometry settings for landscap
    left=0.5in, right=0.5in, top=0.6in, bottom=1.25in,headheight=23pt,includehead
  }%
  \fancyhfoffset{0pt}% recalculate head and foot width for fancyhdr
}

\pagestyle{fancy}
\fancyfoot[C]{my footer}
\fancyhead[R]{my header\\ Page \thepage}

\begin{document}
\lipsum[1]

\uselandscape
\begin{multicols}{2}
\lipsum[1-10]
\end{multicols}

\useportrait
\lipsum[3]
\end{document}

结果:

在此处输入图片描述

相关内容