如何使边距相对于实际内容而不是基线?

如何使边距相对于实际内容而不是基线?

我的文档需要较小的边距。边距似乎是相对于基线而不是内容而言的。

请参见此示例,其中的内容是从页面中剪切出来的:

在此处输入图片描述

\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}

提升箱解决方案

相关内容