Как получить числовое значение длины без указания единицы измерения?

Как получить числовое значение длины без указания единицы измерения?

Я пытаюсь нарисовать блок, размеры которого связаны с размером страницы. Я могу вычислить высоту и ширину блока в \lengthтерминах (включая единицу длины; например, 55,5pt). Однако при попытке нарисовать блок в pictureсреде термины размера представляют собой просто числа (например, 55,5). Как преобразовать длину с единицей в простое число? Ниже приведен пример того, что я пытаюсь сделать, но не могу с макросами, как \textwidthв \frameboxмакросе в \putаргументе.

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

решение1

В следующем выпуске (LaTeX2e 2020-10-01) вы сможете использовать длины в среде изображений, но на данный момент \usepackage{picture}вы можете добавить и использовать \put(\bmargin,10cm)или любые другие длины, которые вам нужны.

Связанный контент