如何在计算中使用边距?

如何在计算中使用边距?

我想要一个规则,例如,其宽度为\paperwidth-\leftmargin-\rightmargin。我尝试使用\dimexpr,但显然我做错了,因为它不起作用。

\documentclass[t]{beamer}

%\usepackage{geometry}
\geometry{paperwidth=250mm,paperheight=190.5mm,left=0mm,right=0mm,top=0mm,bottom=0mm} 
\setbeamersize{text margin left=10mm,text margin right=60mm}

  \begin{document}
    \begin{frame}
        \rule{\dimexpr\paperwidth-\leftmargin-\rightmargin\relax}{50mm}% 180mm = 250mm - 10mm - 60mm
    \end{frame}
  \end{document}

在此处输入图片描述

答案1

您要查找的长度存储在宏\Gm@lmargin(纸张左边距与文本区域左边框之间的距离) 和\Gm@rmargin(文本区域右边框与纸张右边距之间的距离) 中,因此\paperwidth=\Gm@lmargin+\textwidth+\Gm@rmargin。由于\Gm@...是宏,您可以先定义一些长度以便轻松使用它们\dimexpr(请参阅最后的注释):

\documentclass[t]{beamer}
\usepackage{lipsum}
\usepackage{geometry}
\geometry{paperwidth=250mm,paperheight=190.5mm,left=0mm,right=0mm,top=0mm,bottom=0mm} 
\setbeamersize{text margin left=10mm,text margin right=60mm}

\makeatletter
\newlength\beamerleftmargin
\newlength\beamerrightmargin
\setlength\beamerleftmargin{\Gm@lmargin}
\setlength\beamerrightmargin{\Gm@rmargin}
\makeatother   

\begin{document}

\begin{frame}
\textcolor{blue}{\rule{\textwidth}{3pt}}

\textcolor{red}{\rule{\dimexpr\paperwidth-\beamerleftmargin-\beamerrightmargin\relax}{3pt}}% 180mm = 250mm - 10mm - 60mm
\end{frame}

\end{document}

在此处输入图片描述

如果主题使用侧边栏,则必须考虑一些其他水平长度:\beamer@leftsidebar存储\beamer@rightsidebar侧边栏的(水平)尺寸,以及\beamer@leftmargin存储 \beamer@rightmargin侧边栏和文本之间的距离。

作为吉富布已经注意到his comment定义两个新的长度寄存器不是强制性的,可以这样做

\def\beamerleftmargin{\dimexpr\Gm@lmargin\relax}
\def\beamerrightmargin{\dimexpr\Gm@rmargin\relax}

相关内容