我正在编写一份个人预算报告,以帮助我跟踪我在各个类别上的支出以及具体花在了哪里。我试图让这些报告占用更少的页面空间,这样我就可以为每个月制作一页。此外,我会自动生成这些报告,因此如您所见,为每一行生成额外的代码并不是什么大问题,但如果有更好的方法,我愿意接受。
我目前使用制表环境来排列每个类别的月度和 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
单位,这样当改变字体或字体大小时结果也会随之改变。