
Estou tentando desenhar uma caixa cujas dimensões estão relacionadas ao tamanho da página. Posso calcular a altura e a largura da caixa em \length
termos (que incluem a unidade de comprimento; por exemplo, 55,5pt). No entanto, ao tentar desenhar a caixa no picture
ambiente, os termos de tamanho são apenas números (por exemplo, 55,5). Como faço para converter um comprimento com unidade em um número simples? Abaixo está um exemplo do que estou tentando fazer, mas falhando com macros como \textwidth
na \framebox
macro do \put
argumento.
% 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}
Responder1
Na próxima versão (LaTeX2e 2020-10-01) você poderá usar comprimentos no ambiente de imagem, mas por enquanto adicione \usepackage{picture}
e você pode usar \put(\bmargin,10cm)
qualquer comprimento que precisar.