我想使用 LaTeX 排版一份多页合同;在这种合同中,双方通常会签署所有页面,但最后一页除外,因为最后一页有“主要”签名。
但是,签署长合同的每一页(例如,详细描述协议下工作技术细节的合同)很困难;可以双面打印合同,让双方签署每一张纸床单反而。
所以,问题本身是:我如何为奇数页和偶数页设置不同的页脚高度?我希望我的偶数页有更多的自由空间用于签名和印章。此外,如果主签名的页面恰好是奇数,则其页脚应该较窄,而不是较宽。
有没有办法实现这种布局?
答案1
您可以使用包everyshi
。在下一个示例中,每个偶数页的文本高度减少 1cm。
\documentclass[twoside]{article}
\usepackage{everyshi}
\makeatletter
\if@twoside
\EveryShipout{\ifodd\c@page\enlargethispage{-1cm}\fi}
\fi
\makeatother
\pagestyle{empty}
\begin{document}
...
\end{document}
答案2
本质上与@user94293的答案相同,但稍微“轻松”一些,因为它没有重新定义\shipout
原语(通过everyshi
包),而只是在末尾添加了必要的代码\@outputpage
:
\documentclass[a4paper,twoside]{article}
\usepackage[T1]{fontenc}
\usepackage{lipsum}
% \usepackage{showframe}
\makeatletter
\if@twoside
\g@addto@macro\@outputpage{%
\ifodd\c@page \else % now \c@page has already been incremented
\enlargethispage{-5\baselineskip}% adjust value as needed
\fi
}
\fi
% % Uncomment the following lines to see what actually happens:
% \newtoks\my@OutPut
% \my@OutPut = \output
% \output = {%
% \the\my@OutPut
% \showboxbreadth = \@m
% \showboxdepth = \sixt@@n
% \showlists
% }
\makeatother
\begin{document}
\lipsum[1-64]
\end{document}
答案3
我设法通过使用更改页面包。我的解决方案如下:
\documentclass[a4paper]{article}
\usepackage{lipsum}
\usepackage[strict]{changepage}
\usepackage{fancyhdr}
\fancypagestyle{pagesnormal}{%
\changepage{3cm}{}{}{}{}{}{}{}{3cm}%
}
\fancypagestyle{signaturepage}{%
\changepage{1cm}{}{}{}{}{}{}{}{1cm}%
}
\fancypagestyle{plain}{%
\checkoddpage
\ifoddpage
\thispagestyle{pagesnormal}
\else
\thispagestyle{signaturepage}
\fi%
}
\begin{document}
\pagestyle{plain}
\lipsum
\newpage
\pagestyle{plain}
\lipsum
\end{document}
我的解决方案唯一的问题是你必须\pagestyle{plain}
每隔一页执行一次,因为我的奇偶页检查似乎需要改进。如果你想让最后一页成为签名页,你可以发出命令\thispagestyle{signaturepage}
。
我希望这将指导您找到最终的解决方案。