几何包参数中的算术

几何包参数中的算术

我想使用geometry软件包可以自动裁剪我的 LaTeX 输出(这样我在编辑时它在屏幕上看起来更大)。我找到了一种彻底彻底地去除边距的方法:

\geometry{paperwidth=\textwidth,  paperheight = \textheight, margin=0cm}

但是,我希望更温和一些。我尝试了以下方法,但没有效果:

\geometry{paperwidth=\textwidth + 1cm,  paperheight = \textheight+1cm, margin=1cm}

原因是这些参数中的算术不起作用。(LaTeX 似乎不够智能,无法进行加法)。

达到这个效果的正确方法是什么?

答案1

如果你加载calc包裹。

\documentclass{article}

\usepackage{calc}

\usepackage{geometry}

\geometry{paperwidth=\textwidth+1cm,paperheight=\textheight+1cm, margin=1cm}

\usepackage{lipsum}

\begin{document}

\lipsum[1]

\end{document}

答案2

\dimexpr允许像表达式一样增加/减少维度:

\usepackage{geometry}% http://ctan.org/pkg/geometry
\geometry{
  paperwidth=\dimexpr\textwidth + 1cm\relax,
  paperheight=\dimexpr\textheight+1cm\relax, 
  margin=1cm}

calc通过重新定义与长度/尺寸相关的宏(\setlength\addtolength等)来自动执行此过程。

答案3

\dimexpr...\relax不够灵活,因为您不能用浮点数进行除法。\dimexpr\textwidth/3.141592654\relax例如,这是不可能的!

这就是为什么我更喜欢使用fp包,因为它可以进行任何计算。

\documentclass{article}
\usepackage[nomessages]{fp}

\FPeval{Width}{round(pow(0.5,2)*10*sin(pi/2):3)}% $10\sqrt(2)$ in 3 digits
%     after decimal point
\FPeval{Height}{round(pow(0.5,3)*10+cos(pi/2):3)}% $10\sqrt(3)$ in 3 digits
%    after decimal point

\usepackage
[
    paperwidth=\Width cm,
    paperheight=\Height cm,
]
{geometry}

\usepackage{lipsum}

\begin{document}

\lipsum[1]

\end{document}

相关内容