仅更改标题页边距,无需软件包

仅更改标题页边距,无需软件包

我正在为学生准备一套材料包,为他们的作业(家庭作业、报告、论文等)提供统一的标准标题页。

我已经按要求布局了标题页。但是,我在设置页边距时遇到了问题。我希望只将标题页居中,而不影响学生可能已经为文档其余部分设置的页边距设置。

我见过其他解决方案比如这个,但它们总是使用一些包,如geometryetc。我正在寻找一种仅适用于纯 LaTeX 的解决方案。原因是我不知道标题页包最终属于哪个类(bookreportmemoirclassicthesis......),我需要提供最大兼容性的东西。

答案1

\changepage一个选择是借用changepage包裹:

\documentclass{article}
\usepackage{lipsum}

\makeatletter
% Definitions taken from changepage.sty
\begingroup
\catcode`\Q=3
\long\gdef\@ifmtarg#1{\@xifmtarg#1QQ\@secondoftwo\@firstoftwo\@nil}
\long\gdef\@xifmtarg#1#2Q#3#4#5\@nil{#4}
\endgroup

% Set the page output parameters
\DeclareRobustCommand{\ch@ngetext}{%
  \setlength{\@colht}{\textheight}\setlength{\@colroom}{\textheight}%
  \setlength{\vsize}{\textheight}\setlength{\columnwidth}{\textwidth}%
  \if@twocolumn%
    \advance\columnwidth-\columnsep \divide\columnwidth\tw@%
    \@firstcolumntrue%
  \fi%
  \setlength{\hsize}{\columnwidth}%
  \setlength{\linewidth}{\hsize}}

\DeclareRobustCommand{\changepage}[9]{%
  \@ifmtarg{#1}{}{\addtolength{\textheight}{#1}}%
  \@ifmtarg{#2}{}{\addtolength{\textwidth}{#2}}%
  \@ifmtarg{#3}{}{\addtolength{\evensidemargin}{#3}}%
  \@ifmtarg{#4}{}{\addtolength{\oddsidemargin}{#4}}%
  \@ifmtarg{#5}{}{\addtolength{\columnsep}{#5}}%
  \ch@ngetext%
  \@ifmtarg{#6}{}{\addtolength{\topmargin}{#6}}%
  \@ifmtarg{#7}{}{\addtolength{\headheight}{#7}}%
  \@ifmtarg{#8}{}{\addtolength{\headsep}{#8}}%
  \@ifmtarg{#9}{}{\addtolength{\footskip}{#9}}}
\makeatother
%
%\changepage{<textheight>}{<textwidth>}{<even-side-margin>}{<odd-side-margin>}{<columnsep>}{<topmargin>}{<headheight>}{<headsep>}{<footskip>}  

\begin{document}

\changepage{7cm}{6cm}{-3cm}{-3cm}{}{-3cm}{}{}{}
\lipsum[1-10]
\clearpage
\changepage{-7cm}{-6cm}{3cm}{3cm}{}{3cm}{}{}{}
\lipsum[1-5]
\end{document}

结果:

在此处输入图片描述

相关内容