¿Cómo obtener el número de una longitud sin la unidad?

¿Cómo obtener el número de una longitud sin la unidad?

Estoy intentando dibujar un cuadro cuyas dimensiones estén relacionadas con el tamaño de la página. Puedo calcular la altura y el ancho de la caja en \lengthtérminos (que incluyen la unidad de longitud; por ejemplo, 55,5 puntos). Sin embargo, cuando se intenta dibujar el cuadro en el pictureentorno, los términos de tamaño son solo números (por ejemplo, 55,5). ¿Cómo convierto una longitud con unidad en un número simple? A continuación se muestra un ejemplo de lo que estoy intentando hacer, pero fallo con macros como \textwidthen la \frameboxmacro del \putargumento.

% 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}

Respuesta1

En la próxima versión (LaTeX2e 2020-10-01), podrá usar longitudes en el entorno de imagen, pero por ahora agregue \usepackage{picture}y podrá usar \put(\bmargin,10cm)las longitudes que necesite.

información relacionada