%% %% 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. %% %% Copyright (C) 2000, 2006 by Heiko Oberdiek %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either %% version 1.3 of this license or (at your option) any later %% version. The latest version of this license is in %% http://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". %% %% This Current Maintainer of this work is Heiko Oberdiek. %% %% 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'.