我的文档需要较小的边距。边距似乎是相对于基线而不是内容而言的。
请参见此示例,其中的内容是从页面中剪切出来的:
\documentclass{article}
\usepackage[paperwidth=10cm,
paperheight=3.2cm,
margin=0mm]{geometry}
\begin{document}
We have
\[ A= 2^{N-2} \]
\[ B= 2^{N-1} \]
\[ C= 2^{N-2}-\frac{(1+i)^N+(1-i)^N}{4} \]
\[ D= 2^{N-2}+\frac{(1+i)^N+(1-i)^N}{4} \]
\end{document}
如何使边距相对于实际内容而不是基线?这可能吗?
答案1
不清楚你想要得到什么,但关于裁剪部分的解释很简单:由于 ,最后一条基线位于纸张底部;margin=0pt
然而,在采取对策之前,LaTeX 允许最后一行的深度最多为 5pt。相关参数是\maxdepth
。
\documentclass{article}
\usepackage[paperwidth=10cm,
paperheight=3.2cm,
margin=0mm]{geometry}
\setlength{\maxdepth}{0pt}
\begin{document}
We have
\[ A= 2^{N-2} \]
\[ B= 2^{N-1} \]
\[ C= 2^{N-2}-\frac{(1+i)^N+(1-i)^N}{4} \]
\[ D= 2^{N-2}+\frac{(1+i)^N+(1-i)^N}{4} \]
\end{document}
答案2
就排版而言,这是不好的做法,但我怀疑这正是你想要的。
\documentclass{article}
\usepackage[paperwidth=10cm,showframe,
paperheight=3.2cm,
margin=0mm,bottom=5pt]{geometry}
\lineskip 1pt plus 1pt minus 1pt
\begin{document}
We have
\[ A= 2^{N-2} \]
\[ B= 2^{N-1} \]
\[ C= 2^{N-2}-\frac{(1+i)^N+(1-i)^N}{4} \]
\[ D= 2^{N-2}+\frac{(1+i)^N+(1-i)^N}{4} \]
\end{document}
即使使用默认值,底部边距5pt
对于任何降部(任何字体大小)来说似乎都是一个神奇的数字\lineskip
。
使用以下方法可以获得更显著的效果:
\lineskip=0pt plus 1fil
\begin{document}
\baselineskip=0pt
缺点是只有下降部分(基线以下的任何内容)会低于下边距。
另一种方法是使用 将基线放在每个方程的最底部\raisebox
,但您不能将显示模式数学放在 a 内\raisebox
(至少在不使用 a 的情况下不能这样做\parbox
,因为这会导致太多的垂直空间)。无论如何,以下内容伪造了显示模式数学(没有方程编号)。
\documentclass{article}
\usepackage[paperwidth=10cm,
paperheight=3.2cm,
margin=0pt]{geometry}
\newcommand{\mybox}[1]% #1 = contents
{\ifvmode\vskip\lineskip\else\newline\fi
\centerline{\raisebox{\depth}{$\displaystyle #1$}}%
\vskip\lineskip}
\lineskip=1pt plus 1fil
\begin{document}
We have
\mybox{ A= 2^{N-2} }
\mybox{ B= 2^{N-1} }
\mybox{ C= 2^{N-2}-\frac{(1+i)^N+(1-i)^N}{4} }
\mybox{ D= 2^{N-2}+\frac{(1+i)^N+(1-i)^N}{4} }
\end{document}