%% %% This is file `settobox-example.tex', %% generated with the docstrip utility. %% %% The original source files were: %% %% settobox.dtx (with options: `example') %% %% This is a generated file. %% %% Project: settobox %% Version: 2016/05/16 v1.5 %% %% Copyright (C) %% 2000, 2006-2008 Heiko Oberdiek %% 2016-2019 Oberdiek Package Support Group %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either %% version 1.3c of this license or (at your option) any later %% version. This version of this license is in %% https://www.latex-project.org/lppl/lppl-1-3c.txt %% and the latest version of this license is in %% https://www.latex-project.org/lppl.txt %% and version 1.3 or later is part of all distributions of %% LaTeX version 2005/12/01 or later. %% %% This work has the LPPL maintenance status "maintained". %% %% The Current Maintainers of this work are %% Heiko Oberdiek and the Oberdiek Package Support Group %% https://github.com/ho-tex/oberdiek/issues %% %% %% This work consists of the main source file settobox.dtx %% and the derived files %% settobox.sty, settobox.pdf, settobox.ins, settobox.drv, %% settobox-example.tex. %% \documentclass{article} \usepackage{settobox} \usepackage{calc} \newsavebox{\mybox} \setlength{\fboxsep}{0pt} \setlength{\parindent}{20pt} \setlength{\parskip}{10pt} \pagestyle{empty} % \test{#1} % The macro is called with commands in #1 that manipulates % the box \mybox. These commands along with the result of % the manipulation is shown. Thus the essence of the % macro is: % % a) \sbox{\mybox}{The cracy fox.} % b) #1 % manipulates \mybox % c) Print #1 commands. % d) Print box with frame % % The implemenation looks more weird: \makeatletter \newcommand*{\test}[1]{% \par \begingroup \raggedright \edef\x{\detokenize{#1}}% \let\do\@makeother \dospecials \catcode`\~\active \catcode`\ =10\relax \def~{\\}% \noindent \texttt{\scantokens\expandafter{\x}}% \par \endgroup \begingroup \let~\relax \sbox{\mybox}{The cracy fox.}% #1% A---\fbox{\usebox\mybox}---B% \endgroup \par } \makeatother \begin{document} \test{\setboxwidth{\mybox}{1.25\width}} \test{\setboxheight{\mybox}{0pt}} \test{\setboxheight{\mybox}{2\height}} \test{\setboxdepth{\mybox}{\height}} \test{\setboxmoveleft{\mybox}{5pt}} \test{% \setboxmoveleft{\mybox}{5pt}~% \setboxwidth{\mybox}{\width + 5pt}% } \test{\setboxmoveright{\mybox}{0.5\width}} \test{\setboxlower{\mybox}{\height}} \test{\setboxraise{\mybox}{\depth}} \test{% \setboxmoveright{\mybox}{5pt}~% \setboxwidth{\mybox}{\width + 5pt}~% \setboxheight{\mybox}{\height + 5pt}~% \setboxdepth{\mybox}{\depth + 5pt}% } \end{document} \endinput %% %% End of file `settobox-example.tex'.