如何在不使用 \newgeometry 或 \restoregeometry 的情况下更改一个页面的几何形状

如何在不使用 \newgeometry 或 \restoregeometry 的情况下更改一个页面的几何形状

我正在尝试为第一页(不是标题页)建立一个几何图形,并为文档的其余部分使用另一个几何图形。但是,因为我正在尝试制作一个模板,因此不想依赖用户在文档文本中输入 \newgeometry 或 \restoregeometry,所以我想在序言中建立这些几何图形。有什么办法吗?

最小工作示例

\documentclass{article}
\usepackage{lecturenotes}

\usepackage{afterpage}

\thispagestyle{plain}


\begin{lecture}{01}{Sample Lecture Notes}{John Sam}{01/01/2000}{Mark John}{PHYSICS 124: Physics of Energy}

\afterpage{\newgeometry{top=2cm, bottom=2.5cm, outer=5.5cm, inner=2cm, heightrounded, marginparwidth=3.5cm, marginparsep=0.4cm, includeheadfoot}}


\end{lecture}
\theend

“讲义”风格

    \def\fileversion{1.0}
\def\filedate{2014/02/05}
\NeedsTeXFormat{LaTeX2e}


\usepackage{graphicx}
\usepackage{amsmath,amssymb,amsthm,amsfonts}
\usepackage[top=0.5cm, bottom=2.5cm, outer=5.5cm, inner=2cm, heightrounded, marginparwidth=3.5cm, marginparsep=0.4cm, includeheadfoot]{geometry}
\usepackage{fancyhdr}
\pagestyle{fancy}

\newcommand{\handout}{
   \noindent
   \begin{center}
   \framebox{ \vbox{ \hbox to 13.5cm { {\bf {\course}} \hfill {Lecture \lecturenum\ -- \lecturedate} }
       \vspace{4mm}
       \hbox to 13.5cm { {\Large \hfill {\lecturetitle}  \hfill} }
       \vspace{2mm}
       \hbox to 13.5cm { {\it {Lecturer: \lecturer} \hfill {Notes by: \lecturescribe}} }
     }
   }
   \end{center}
   \vspace*{4mm}
}

\newenvironment{lecture}[6]{
    \begin{document}
    \global \def \lecturenum {#1}
    \global \def \lecturetitle {#2}
    \global \def \lecturescribe {#3}
    \global \def \lecturedate {#4}
    \global \def \lecturer {#5}
    \global \def \course {#6}
    \handout
}


\lhead{\lecturedate}
\chead{\lecturetitle}
\rhead{Lecture \lecturenum}
\lfoot{}
\cfoot{\thepage}
\rfoot{}

\newcommand{\theend}{\end{document}}

答案1

如果您只想更改第一页的顶部边距,那么您的方法就很困难。只需使用负片将文本移动到您想要的任何位置即可。和的\vspace使用让我怀疑这是否是更复杂的设置的一部分,但原则上,您可以执行如下操作:handoutlecture

\newlength\toplen  
\newlength\fplen   
\newlength\fpgap    
\setlength{\fplen}{0.5cm}  
\setlength{\toplen}{\dimexpr2cm + \fplen\relax}   
\setlength{\fpgap}{\dimexpr\fplen - \toplen - \headheight - \headsep - \topsep  
- \partopsep\relax}

然后插入\toplengeometry插入\vspace*{\fpgap}您的\handout命令。注意:这实际上是为了在物理页面顶部和顶部之间留出 0.5 厘米的空间而设计的framebox。您的原始geometry命令将留下更多空间。

这是一个完整的示例,与上面的示例略有不同。(主要是关于不建议隐藏\begin{document}\end{document};但我还\lecture从环境中发出了[命令] lecture。)

\documentclass{article}
\usepackage{filecontents}
% --------------------------------------------------------------------
\begin{filecontents*}{lecturenotes.sty}
\def\fileversion{1.0}
\def\filedate{2014/02/05}
\NeedsTeXFormat{LaTeX2e}

\RequirePackage{graphicx}
\RequirePackage{amsmath,amssymb,amsthm,amsfonts}

% Some lengths
\newlength\toplen
\newlength\fplen
\newlength\fpgap
\setlength{\fplen}{0.5cm}
\setlength{\toplen}{\dimexpr2cm + \fplen\relax}
\setlength{\fpgap}{\dimexpr\fplen - \toplen - \headheight - \headsep - \topsep - \partopsep\relax}

\RequirePackage[showframe, top=\toplen, %
bottom=2.5cm, outer=5.5cm, inner=2cm, heightrounded,
marginparwidth=3.5cm, marginparsep=0.4cm, includeheadfoot]{geometry}

\RequirePackage{fancyhdr}
\pagestyle{fancy}
\lhead{\lecturedate}
\chead{\lecturetitle}
\rhead{Lecture \lecturenum}
\lfoot{}
\cfoot{\thepage}
\rfoot{}

\newcommand{\handout}{%
  \noindent
  \vspace*{\fpgap}%
  \begingroup
  \par
  \centering
  \framebox{ \vbox{ \hbox to 13.5cm { {\bf {\course}}
        \hfill {Lecture \lecturenum\ -- \lecturedate} }
      \vspace{4mm}
      \hbox to 13.5cm { {\Large \hfill {\lecturetitle}  \hfill} }
      \vspace{2mm}
      \hbox to 13.5cm { {\it {Lecturer: \lecturer} \hfill
          {Notes by: \lecturescribe}} }
    }
  }
  \par
  \endgroup
  \vspace*{4mm}%
  \par\ignorespacesafterend
}

\newcommand{\lecture}[6]{%
%   \begin{document}  <-- why ?
  \thispagestyle{plain}
  \global \def \lecturenum {#1}
  \global \def \lecturetitle {#2}
  \global \def \lecturescribe {#3}
  \global \def \lecturedate {#4}
  \global \def \lecturer {#5}
  \global \def \course {#6}
  \handout
}


\newcommand{\theend}{\end{document}}% <-- why?
\end{filecontents*}
% --------------------------------------------------------------------

\usepackage{lecturenotes}
\usepackage{lipsum}

\begin{document}

\lecture{01}{Sample Lecture Notes}{John Sam}{01/01/2000}{Mark
    John}{PHYSICS 124: Physics of Energy}

\lipsum[1]
\newpage
\lipsum[1-10]

\theend % <-- why?
\end{document}

相关内容