我正在为学生准备一套材料包,为他们的作业(家庭作业、报告、论文等)提供统一的标准标题页。
我已经按要求布局了标题页。但是,我在设置页边距时遇到了问题。我希望只将标题页居中,而不影响学生可能已经为文档其余部分设置的页边距设置。
我见过其他解决方案比如这个,但它们总是使用一些包,如geometry
etc。我正在寻找一种仅适用于纯 LaTeX 的解决方案。原因是我不知道标题页包最终属于哪个类(book
、report
、memoir
、classicthesis
......),我需要提供最大兼容性的东西。
答案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}
结果: