File indexing completed on 2024-11-24 04:34:43

0001 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
0002 <html>
0003 <!-- This document is an unofficial reference manual for LaTeX, a
0004 document preparation system, version of November 2018.
0005 
0006 This manual was originally translated from LATEX.HLP v1.0a in the
0007 VMS Help Library.  The pre-translation version was written by
0008 George D. Greenwade of Sam Houston State University.  The
0009 LaTeX 2.09 version was written by Stephen Gilmore.  The
0010 LaTeX2e version was adapted from this by Torsten Martinsen.  Karl
0011 Berry made further updates and additions, and gratefully acknowledges
0012 using Hypertext Help with LaTeX, by Sheldon Green, and
0013 LaTeX Command Summary (for LaTeX 2.09) by
0014 L. Botway and C. Biemesderfer (published by the TeX Users
0015 Group as TeXniques number 10), as reference material.  We also
0016 gratefully acknowledge additional material appearing in
0017 latex2e-reference by Martin Herbert Dietze.  (From these references no
0018 text was directly copied.)
0019 
0020 Copyright 2007, 2008, 2009, 2010, 2011, 2012, 2013,
0021 2014, 2015, 2016, 2017, 2018 Karl Berry.
0022 
0023 Copyright 1988, 1994, 2007 Stephen Gilmore.
0024 
0025 Copyright 1994, 1995, 1996 Torsten Martinsen.
0026 
0027 Permission is granted to make and distribute verbatim copies of
0028 this manual provided the copyright notice and this permission notice
0029 are preserved on all copies.
0030 
0031 
0032 Permission is granted to copy and distribute modified versions of this
0033 manual under the conditions for verbatim copying, provided that the entire
0034 resulting derived work is distributed under the terms of a permission
0035 notice identical to this one.
0036 
0037 Permission is granted to copy and distribute translations of this manual
0038 into another language, under the above conditions for modified versions. -->
0039 <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
0040 <head>
0041 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
0042 <title>\sbox &amp; \savebox (LaTeX2e unofficial reference manual (November 2018))</title>
0043 
0044 <meta name="description" content="\sbox &amp; \savebox (LaTeX2e unofficial reference manual (November 2018))">
0045 <meta name="keywords" content="\sbox &amp; \savebox (LaTeX2e unofficial reference manual (November 2018))">
0046 <meta name="resource-type" content="document">
0047 <meta name="distribution" content="global">
0048 <meta name="Generator" content="makeinfo">
0049 <link href="index.html#Top" rel="start" title="Top">
0050 <link href="IndexDocument.html#Index" rel="index" title="Index">
0051 <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
0052 <link href="Boxes.html#Boxes" rel="up" title="Boxes">
0053 <link href="lrbox.html#lrbox" rel="next" title="lrbox">
0054 <link href="_005craisebox.html#g_t_005craisebox" rel="prev" title="\raisebox">
0055 <style type="text/css">
0056 <!--
0057 /* $Id: latex2e.css 690 2018-09-15 15:20:19Z jimhefferon $
0058    Minor css for latexrefman. Public domain.
0059    Originally written by Jim Hefferon and Karl Berry, 2018. */
0060 
0061 /* So you can style for yourself */
0062 @import url("/css/latexreflocal.css");
0063 
0064 
0065 
0066 a.summary-letter {text-decoration: none}
0067 blockquote.indentedblock {margin-right: 0em}
0068 blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
0069 blockquote.smallquotation {font-size: smaller}
0070 div.display {margin-left: 3.2em}
0071 div.example {margin-left: 3.2em}
0072 div.lisp {margin-left: 3.2em}
0073 div.smalldisplay {margin-left: 3.2em}
0074 div.smallexample {margin-left: 3.2em}
0075 div.smalllisp {margin-left: 3.2em}
0076 kbd {font-style: oblique}
0077 pre.display {font-family: inherit}
0078 pre.format {font-family: inherit}
0079 pre.menu-comment {font-family: serif}
0080 pre.menu-preformatted {font-family: serif}
0081 pre.smalldisplay {font-family: inherit; font-size: smaller}
0082 pre.smallexample {font-size: smaller}
0083 pre.smallformat {font-family: inherit; font-size: smaller}
0084 pre.smalllisp {font-size: smaller}
0085 span.nolinebreak {white-space: nowrap}
0086 span.roman {font-family: initial; font-weight: normal}
0087 span.sansserif {font-family: sans-serif; font-weight: normal}
0088 ul.no-bullet {list-style: none}
0089 BODY {
0090   margin-top: 1em;
0091   margin-left: 1em; /* auto results in two-digit <ol> lost off left */
0092   margin-right: 1em;
0093   margin-bottom: 1em;
0094   /* the idea is to use the whole window, unless it is ridiculously
0095      wide, probably with too-small fonts, too.  */
0096   max-width: 64em;
0097 }
0098 
0099 /* Because we want @math{... @code ...} to be upright, not slanted,
0100    and Texinfo won't fix it. */
0101 code {font-style:normal; font-family:monospace; }
0102 
0103 /* We put a link to our own home page at the bottom. */
0104 div.referenceinfo {font-size:small;}
0105 
0106 -->
0107 </style>
0108 
0109 
0110 </head>
0111 
0112 <body lang="en">
0113 <a name="g_t_005csbox-_0026-_005csavebox"></a>
0114 <div class="header">
0115 <p>
0116 Next: <a href="lrbox.html#lrbox" accesskey="n" rel="next">lrbox</a>, Previous: <a href="_005craisebox.html#g_t_005craisebox" accesskey="p" rel="prev">\raisebox</a>, Up: <a href="Boxes.html#Boxes" accesskey="u" rel="up">Boxes</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="IndexDocument.html#Index" title="Index" rel="index">Index</a>]</p>
0117 </div>
0118 <hr>
0119 <a name="g_t_005csbox-_0026-_005csavebox-1"></a>
0120 <h3 class="section">20.5 <code>\sbox</code> &amp; <code>\savebox</code></h3>
0121 
0122 <a name="index-_005csbox"></a>
0123 <a name="index-_005csavebox"></a>
0124 <a name="index-box_002c-save"></a>
0125 
0126 <p>Synopsis, one of:
0127 </p>
0128 <div class="example">
0129 <pre class="example">\sbox{<var>box-cmd</var>}{<var>text</var>}
0130 \savebox{<var>box-cmd</var>}{<var>text</var>}
0131 \savebox{<var>box-cmd</var>}[<var>width</var>]{<var>text</var>}
0132 \savebox{<var>box-cmd</var>}[<var>width</var>][<var>pos</var>]{<var>text</var>}
0133 </pre></div>
0134 
0135 <p>Typeset <var>text</var> just as with <code>\makebox</code> (see <a href="_005cmbox-_0026-_005cmakebox.html#g_t_005cmbox-_0026-_005cmakebox">\mbox &amp; \makebox</a>) except that LaTeX does not output it but instead saves it
0136 in a storage bin named <var>box-cmd</var>.  The bin name <var>box-cmd</var> begins
0137 with a backslash, <code>\</code>.  You must have previously allocated the bin
0138 <var>box-cmd</var> with <code>\newsavebox</code> (see <a href="_005cnewsavebox.html#g_t_005cnewsavebox">\newsavebox</a>).The
0139 <code>\sbox</code> command is robust while <code>\savebox</code> is fragile
0140 (see <a href="_005cprotect.html#g_t_005cprotect">\protect</a>).
0141 </p>
0142 <p>This creates and uses a bin.
0143 </p>
0144 <div class="example">
0145 <pre class="example">\newsavebox{\fullname}
0146 \sbox{\fullname}{John Jacob Jingleheimer Schmidt}
0147   ...
0148 \usebox{\fullname}! His name is my name, too!
0149 Whenever we go out, the people always shout!
0150 There goes \\usebox{\fullname}!  Ya da da da da da da.
0151 </pre></div>
0152 
0153 <p>One advantage of using and reusing a bin over a <code>\newcommand</code> is
0154 efficiency, that LaTeX need not repeatedly retypeset the contents.
0155 See the example below.
0156 </p>
0157 <p>The first two command invocations,
0158 <code>\sbox{<var>box-cmd</var>}{<var>text</var>}</code> and
0159 <code>\savebox{<var>box-cmd</var>}{<var>text</var>}</code>, are roughly equivalent.
0160 As to the third and fourth, the optional arguments allow you to specify
0161 the box width as <var>width</var>, and the position of the text inside that
0162 box as <var>position</var>.  See <a href="_005cmbox-_0026-_005cmakebox.html#g_t_005cmbox-_0026-_005cmakebox">\mbox &amp; \makebox</a> for the full
0163 description.
0164 </p>
0165 <p>In the <code>\sbox</code> and <code>\savebox</code> commands the <var>text</var> is
0166 typeset in LR mode so it does not have line breaks (see <a href="Modes.html#Modes">Modes</a>).  If
0167 you use these then LaTeX doesn&rsquo;t give you an error but it ignores
0168 what you want: if you enter <code>\sbox{\newbin}{test \\ test}</code> and
0169 <code>\usebox{\newbin}</code> then you get &lsquo;<samp>testtest</samp>&rsquo;, while if you
0170 enter <code>\sbox{\newbin}{test \par test}</code> and
0171 <code>\usebox{\newbin}</code> then you get &lsquo;<samp>test test</samp>&rsquo;, but no error or
0172 warning.  To fix this use a <code>\parbox</code> or <code>minipage</code> as here.
0173 </p>
0174 <div class="example">
0175 <pre class="example">\savebox{\abin}{%
0176   \begin{minipage}{\linewidth}
0177     \begin{enumerate}
0178       \item First item
0179       \item Second item
0180     \end{enumerate}
0181   \end{minipage}}
0182   ...
0183 \usebox{\abin}
0184 </pre></div>
0185 
0186 <p>As an example of the efficiency of reusing a bin&rsquo;s contents, this puts
0187 the same picture on each page of the document by putting it in the
0188 header.  LaTeX only typesets it once.
0189 </p>
0190 <div class="example">
0191 <pre class="example">\usepackage{graphicx}  % all this in the preamble
0192 \newsavebox{\sealbin}
0193 \savebox{\sealbin}{%
0194   \setlength{\unitlength}{1in}%
0195   \begin{picture}(0,0)%
0196      \put(1.5,-2.5){%
0197        \begin{tabular}{c}
0198           \includegraphics[height=2in]{companylogo.png} \\
0199           Office of the President
0200        \end{tabular}}
0201   \end{picture}%
0202 }
0203 \markright{\usebox{\sealbin}}
0204 \pagestyle{headings}
0205 </pre></div>
0206 
0207 <p>The <code>picture</code> environment is good for fine-tuning the placement.
0208 </p>
0209 <p>If the bin has not already been defined then you get something like
0210 &lsquo;<samp>Undefined control sequence. &lt;argument&gt; \nobin</samp>&rsquo;.
0211 </p>
0212 
0213 
0214 
0215 <hr/><div class='referenceinfo'> <a href='https://latexref.xyz/'> <i>Unofficial LaTeX2e reference manual</i></a></div>
0216 </body>
0217 </html>