Wie erhält man die Zahl einer Länge ohne die Einheit?

Wie erhält man die Zahl einer Länge ohne die Einheit?

Ich versuche, eine Box zu zeichnen, deren Abmessungen mit der Seitengröße zusammenhängen. Ich kann die Höhe und Breite der Box in \lengthTermen berechnen (die die Längeneinheit enthalten, z. B. 55,5 pt). Wenn ich jedoch versuche, die Box in der pictureUmgebung zu zeichnen, sind die Größenterme nur Zahlen (z. B. 55,5). Wie konvertiere ich eine Länge mit Einheit in eine einfache Zahl? Unten sehen Sie ein Beispiel für das, was ich versuche, aber mit Makros wie \textwidthdem \frameboxMakro im \putArgument fehlschlägt.

% borderprob.tex  SE 559677
\documentclass{memoir}
\usepackage{lipsum}

\newlength{\bmargin}
\setlength{\bmargin}{2cm}

\newlength{\bwidth} \setlength{\bwidth}{\paperwidth} 
  \addtolength{\bwidth}{-\bmargin}
\newlength{\bheight} \setlength{\bheight}{\paperheight} 
  \addtolength{\bheight}{-\bmargin}


\newcommand{\borderbox}{\put(0,0){\framebox(\textwidth,-\textheight)}{}}
%\renewcommand{\borderbox}{\put(0,0){BORDERBOX}}
%\renewcommand{\borderbox}{\put(0,0){\framebox(20,30)}{}}
%\renewcommand{\borderbox}{\put(0,0){\framebox({\bwidth},{\bheight})}{}}
%\renewcommand{\borderbox}{\put(0,0){\framebox(20,\bheight)}{}}
%\renewcommand{\borderbox}{\put(0,0){\framebox(\bwidth,30)}{}}
%\renewcommand{\borderbox}{\put(0,0){\framebox(20,30)}{}}

\begin{document}

% length values
\verb!\bmargin = ! \the\bmargin

\verb!\paperwidth = ! \the\paperwidth{}
\verb!\bwidth = ! \the\bwidth

\verb!\paperheight = ! \the\paperheight{}
\verb!\bheight = ! \the\bheight

% draw a box
\begin{picture}(0,0) \borderbox \end{picture}

\lipsum

\lipsum

\end{document}

Antwort1

In der nächsten Version (LaTeX2e 2020-10-01) können Sie Längen in der Bildumgebung verwenden, aber fügen Sie vorerst „und“ hinzu, \usepackage{picture}und Sie können \put(\bmargin,10cm)die Längen verwenden, die Sie benötigen.

verwandte Informationen