使用制表符和 parbox 时行间距不同

使用制表符和 parbox 时行间距不同

我正在编写一份个人预算报告,以帮助我跟踪我在各个类别上的支出以及具体花在了哪里。我试图让这些报告占用更少的页面空间,这样我就可以为每个月制作一页。此外,我会自动生成这些报告,因此如您所见,为每一行生成额外的代码并不是什么大问题,但如果有更好的方法,我愿意接受。

我目前使用制表环境来排列每个类别的月度和 YTD(年初至今)数字(示例代码和输出如下),并使用下面的缩进 parbox 来保存我在该类别中花钱的具体位置。我使用 parbox 是为了使文本不会低于数字,否则会使数字难以阅读。

我的问题:当 parbox 中只有一行时,行与行之间的间距会比有多行时小。在下面的示例中,您可以看到“Groceries”下面的行比“Out To Eat”下面的行更紧凑。我想将其收紧,以便更适合一页。

此外,不同的间距分散了我的注意力,所以我花时间思考如何解决这个问题,而不是考虑如何花钱。

我已lineskip=0pt按照此答案中的建议进行尝试:https://tex.stackexchange.com/a/44497/2823但它没有我能看到的任何视觉效果,并且\strut按照这个答案中的建议添加:https://tex.stackexchange.com/a/45044/2823,虽然\strut似乎是为了增加降部的空间,它确实如此(但这不是我需要的。)我也尝试\par在我能想到的每个地方添加,因为我知道不同大小的行的行距取决于段落开始或结束时的大小,但这也没有效果。

这是我所拥有的;关于这个特定问题的任何建议,或者更好的解决方法,都非常欢迎。

\documentclass{article}
\begin{document}
\begin{tabbing}
\hspace*{2.5in} \= \hspace{0.75in} \=.\kill
Groceries\>579.60\'\>1756.34\' \\ 
\hspace{10pt}\parbox{2in}{\scriptsize\raggedright Trader~Joe's,~216.71; Cub,~216.34; Whole~Foods,~101.40; Wuollet,~7.95} \\ 
Out To Eat\>36.30\'\>129.22\' \\ 
\hspace{10pt}\parbox{2in}{\scriptsize\raggedright Davanni's,~36.30} \\ 
Car\>7.00\'\>21.00\'\\
\hspace{10pt}\parbox{2in}{\raggedright\scriptsize Wash,~7.00}
\end{tabbing}
\end{document}

在此处输入图片描述

答案1

的默认设置\parbox是制作一个框,其参考点位于从顶部到底部的一半(不精确,但细节并不重要)。这使得很难将它们放置在环境中tabbing

一个可能的解决方案是将 parbox 与“顶部”对齐,并在其底部添加固定的垂直空间。

\documentclass{article}

\newcommand{\goods}[1]{%
  \hspace{10pt}\parbox[t]{2in}{\scriptsize\raggedright#1\par
  \vspace{-\prevdepth} % remove the depth of the last line
  \vspace{2ex} % add a fixed vertical space
  }%
}

\begin{document}

\begin{tabbing}
\hspace*{2.5in} \= \hspace{0.75in} \=.\kill\showthe\lineskiplimit
Groceries\>579.60\'\>1756.34\' \\
\goods{Trader~Joe's,~216.71; Cub,~216.34; Whole~Foods,~101.40; Wuolletp,~7.95} \\
Groceries\>579.60\'\>1756.34\' \\
\goods{Trader~Joe's,~216.71; Cub,~216.34; Whole~Foods,~101.40; Wuollet,~7.95} \\
Groceries\>579.60\'\>1756.34\' \\
\goods{Trader~Joe's,~216.71; Cub,~216.34; Whole~Foods,~101.40; Wuollet,~7.95} \\
Out To Eat\>36.30\'\>129.22\' \\
\goods{Davanni's,~36.30} \\
Car\>7.00\'\>21.00\'\\
\goods{Wash,~7.00}
\end{tabbing}

\end{document}

为小条目定义个人命令,可以以统一的方式对每个条目进行操作。这样\parbox[t]可以确保与上方行之间的距离恒定;对于底部,我首先删除最后一行的深度(我在第一个块中添加了一个带有降部的字母,只是为了显示效果),并在底部添加垂直跳跃。

进行调整以适应。

在此处输入图片描述

为了减少主线和副线之间的间距\goods,只需进行一点修改即可:

\newcommand{\goods}[1]{%
  \hspace{10pt}\parbox[t]{2in}{
    \vspace{0pt} % sets the reference point to the top of the box
    \scriptsize\raggedright#1\par
    \vspace{-\prevdepth} % remove the depth of the last line
    \vspace{2ex} % add a fixed vertical space
  }%
}

你也可以将第一个改为\vspace\vspace{-.2ex}\vspace{2ex}不同的长度;实验一下。最好使用ex单位,这样当改变字体或字体大小时结果也会随之改变。

相关内容