我想将一张 A4 纸嵌入一张 A3 纸中,这样 A4 纸就可以水平居中放置在 A3 纸中。(相对垂直对齐无关紧要。)
我尝试使用以下计算来确定 A4 纸与 A3 纸左边缘的偏移量。将 A4 纸偏移以下长度的一半:\paperwidth
减去\oddsidemargin+\textwidth+\marginparsep+\marginparwidth
。但是,这并没有达到预期的效果,如下所示。
为什么我的计算没有将 A4 纸置于 A3 纸的中心?我该如何修正我的代码?
\documentclass{article}
\usepackage{lipsum}
\usepackage[a3paper,portrait,showframe]{geometry}
\geometry{layout=a4paper}
\newlength{\layouthoffset}
\setlength{\layouthoffset}{.5\paperwidth}
\addtolength\layouthoffset{-.5\oddsidemargin}
\addtolength\layouthoffset{-.5\textwidth}
\addtolength{\layouthoffset}{-.5\marginparsep}
\addtolength{\layouthoffset}{-.5\marginparwidth}
\geometry{layouthoffset=\layouthoffset}
\begin{document}
\lipsum[1-6]
\end{document}
答案1
您可以使用包的(内部)布局宽度geometry
:
\documentclass{article}
\usepackage{lipsum}
\usepackage[a3paper,layout=a4paper,portrait,showframe]{geometry}
\makeatletter
\geometry{layouthoffset=\dimexpr(\paperwidth-\Gm@layoutwidth)/2\relax}
\makeatother
\begin{document}
\lipsum[1-6]
\end{document}
或者如果您想要水平和垂直居中,只需使用包crop
:
\documentclass{article}
\usepackage{lipsum}
\usepackage[a4paper,showframe]{geometry}
\usepackage[a3,center]{crop}
\begin{document}
\lipsum[1-6]
\end{document}