[latexrefman-commits] [SCM] latexrefman updated: r631 - trunk
jimhefferon at gnu.org.ua
jimhefferon at gnu.org.ua
Mon May 28 22:44:46 CEST 2018
Author: jimhefferon
Date: 2018-05-28 23:44:46 +0300 (Mon, 28 May 2018)
New Revision: 631
Modified:
trunk/ChangeLog
trunk/latex2e.html
trunk/latex2e.info
trunk/latex2e.pdf
trunk/latex2e.texi
Log:
Add many examples to picture environment and its sub-items. Adjust wording.
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2018-05-25 12:57:27 UTC (rev 630)
+++ trunk/ChangeLog 2018-05-28 20:44:46 UTC (rev 631)
@@ -1,3 +1,9 @@
+2018-05-28 Jim Hefferon <jhefferon at smcvt.edu>
+
+ * latex2e.texi (picture) Add examples. Adjust wording.
+ Add menu items, readjust menu order. Add examples for many
+ menu subjects and adjust wording.
+
2018-05-24 Jim Hefferon <jhefferon at smcvt.edu>
* latex2e.texi (verbatim) Expand on problems putting
Modified: trunk/latex2e.html
===================================================================
--- trunk/latex2e.html 2018-05-25 12:57:27 UTC (rev 630)
+++ trunk/latex2e.html 2018-05-28 20:44:46 UTC (rev 631)
@@ -225,20 +225,22 @@
<li><a name="toc-minipage-1" href="#minipage">8.18 <code>minipage</code></a></li>
<li><a name="toc-picture-1" href="#picture">8.19 <code>picture</code></a>
<ul class="no-bullet">
- <li><a name="toc-_005ccircle-1" href="#g_t_005ccircle">8.19.1 <code>\circle</code></a></li>
- <li><a name="toc-_005cmakebox-1" href="#g_t_005cmakebox-_0028picture_0029">8.19.2 <code>\makebox</code></a></li>
- <li><a name="toc-_005cframebox" href="#g_t_005cframebox-_0028picture_0029">8.19.3 <code>\framebox</code></a></li>
- <li><a name="toc-_005cdashbox-1" href="#g_t_005cdashbox">8.19.4 <code>\dashbox</code></a></li>
- <li><a name="toc-_005cframe-1" href="#g_t_005cframe">8.19.5 <code>\frame</code></a></li>
- <li><a name="toc-_005cline-1" href="#g_t_005cline">8.19.6 <code>\line</code></a></li>
- <li><a name="toc-_005clinethickness-1" href="#g_t_005clinethickness">8.19.7 <code>\linethickness</code></a></li>
+ <li><a name="toc-_005cput-1" href="#g_t_005cput">8.19.1 <code>\put</code></a></li>
+ <li><a name="toc-_005cmultiput-1" href="#g_t_005cmultiput">8.19.2 <code>\multiput</code></a></li>
+ <li><a name="toc-_005cqbezier-1" href="#g_t_005cqbezier">8.19.3 <code>\qbezier</code></a></li>
+ <li><a name="toc-_005cgraphpaper-1" href="#g_t_005cgraphpaper">8.19.4 <code>\graphpaper</code></a></li>
+ <li><a name="toc-_005cline-1" href="#g_t_005cline">8.19.5 <code>\line</code></a></li>
+ <li><a name="toc-_005clinethickness-1" href="#g_t_005clinethickness">8.19.6 <code>\linethickness</code></a></li>
+ <li><a name="toc-_005cthinlines-1" href="#g_t_005cthinlines">8.19.7 <code>\thinlines</code></a></li>
<li><a name="toc-_005cthicklines-1" href="#g_t_005cthicklines">8.19.8 <code>\thicklines</code></a></li>
- <li><a name="toc-_005cthinlines-1" href="#g_t_005cthinlines">8.19.9 <code>\thinlines</code></a></li>
- <li><a name="toc-_005cmultiput-1" href="#g_t_005cmultiput">8.19.10 <code>\multiput</code></a></li>
- <li><a name="toc-_005coval-1" href="#g_t_005coval">8.19.11 <code>\oval</code></a></li>
- <li><a name="toc-_005cput-1" href="#g_t_005cput">8.19.12 <code>\put</code></a></li>
- <li><a name="toc-_005cshortstack-1" href="#g_t_005cshortstack">8.19.13 <code>\shortstack</code></a></li>
- <li><a name="toc-_005cvector-1" href="#g_t_005cvector">8.19.14 <code>\vector</code></a></li>
+ <li><a name="toc-_005ccircle-1" href="#g_t_005ccircle">8.19.9 <code>\circle</code></a></li>
+ <li><a name="toc-_005coval-1" href="#g_t_005coval">8.19.10 <code>\oval</code></a></li>
+ <li><a name="toc-_005cshortstack-1" href="#g_t_005cshortstack">8.19.11 <code>\shortstack</code></a></li>
+ <li><a name="toc-_005cvector-1" href="#g_t_005cvector">8.19.12 <code>\vector</code></a></li>
+ <li><a name="toc-_005cmakebox-_0028picture_0029-1" href="#g_t_005cmakebox-_0028picture_0029">8.19.13 <code>\makebox</code> (picture)</a></li>
+ <li><a name="toc-_005cframebox-_0028picture_0029-1" href="#g_t_005cframebox-_0028picture_0029">8.19.14 <code>\framebox</code> (picture)</a></li>
+ <li><a name="toc-_005cframe-1" href="#g_t_005cframe">8.19.15 <code>\frame</code></a></li>
+ <li><a name="toc-_005cdashbox-1" href="#g_t_005cdashbox">8.19.16 <code>\dashbox</code></a></li>
</ul></li>
<li><a name="toc-quotation-_0026-quote-1" href="#quotation-_0026-quote">8.20 <code>quotation</code> & <code>quote</code></a></li>
<li><a name="toc-tabbing-1" href="#tabbing">8.21 <code>tabbing</code></a></li>
@@ -381,7 +383,7 @@
<li><a name="toc-_005cmbox_007btext_007d" href="#g_t_005cmbox">20.1 <code>\mbox{<var>text}</var></code></a></li>
<li><a name="toc-_005cfbox-and-_005cframebox-1" href="#g_t_005cfbox-and-_005cframebox">20.2 <code>\fbox</code> and <code>\framebox</code></a></li>
<li><a name="toc-lrbox-1" href="#lrbox">20.3 <code>lrbox</code></a></li>
- <li><a name="toc-_005cmakebox-2" href="#g_t_005cmakebox">20.4 <code>\makebox</code></a></li>
+ <li><a name="toc-_005cmakebox-1" href="#g_t_005cmakebox">20.4 <code>\makebox</code></a></li>
<li><a name="toc-_005cparbox-1" href="#g_t_005cparbox">20.5 <code>\parbox</code></a></li>
<li><a name="toc-_005craisebox-1" href="#g_t_005craisebox">20.6 <code>\raisebox</code></a></li>
<li><a name="toc-_005csavebox-1" href="#g_t_005csavebox">20.7 <code>\savebox</code></a></li>
@@ -5743,7 +5745,7 @@
<p>Synopses:
</p><div class="example">
<pre class="example">\begin{picture}(<var>width</var>,<var>height</var>)
-… <var>picture commands</var> …
+ <var>picture commands</var>
\end{picture}
</pre></div>
@@ -5751,15 +5753,19 @@
</p>
<div class="example">
<pre class="example">\begin{picture}(<var>width</var>,<var>height</var>)(<var>xoffset</var>,<var>yoffset</var>)
-… <var>picture commands</var> …
+ <var>picture commands</var>
\end{picture}
</pre></div>
+<p>An environment to create simple pictures containing lines, arrows,
+boxes, circles, and text. (While this environment is not obsolete, new
+documents typically use much more powerful graphics creation systems,
+such as <code>TikZ</code>, <code>PSTricks</code>, <code>MetaPost</code>, or
+<code>Asymptote</code>. These are not covered in this document; see CTAN.)
+</p>
+<p>This shows the parallelogram law for adding vectors.
+</p>
<a name="index-_005cunitlength"></a>
-<p>The <code>picture</code> environment allows you to create simple pictures
-containing lines, arrows, boxes, circles, and text. This illustrates
-the parallelogram law for adding vectors.
-</p>
<div class="example">
<pre class="example">\setlength{\unitlength}{1cm}
\begin{picture}(6,6) % picture box will be 6cm wide by 6cm tall
@@ -5780,13 +5786,18 @@
...
\begin{center}
\setlength{\unitlength}{\textwidth}
-\begin{picture}(1,1) % picture put in box textwidth wide and tall
+\begin{picture}(1,1) % leave space for picture, \textwidth wide and tall
\put(0,0){\includegraphics[width=\textwidth]{desertedisland.jpg}}
\put(0.25,0.35){\textcolor{red}{X Treasure here}}
\end{picture}
\end{center}
</pre></div>
+<p>The red X will be precisely a quarter of the <code>\linewidth</code> from
+the left margin, and <code>0.35\linewidth</code> up from the bottom. Another
+example of this usage is to put similar code in the page header to get
+repeat material on each of a document’s pages.
+</p>
<p>The <code>picture</code> environment has one required argument, a pair of
numbers (<var>width</var>,<var>height</var>). Multiply these by the value
<code>\unitlength</code> to get the size of the box that LaTeX places on
@@ -5817,7 +5828,7 @@
add the appropriate optional argument.
</p>
<a name="index-position_002c-in-picture"></a>
-<p>The <var>picture commands</var> tell LaTeX where to put something by
+<p>Each <var>picture command</var> tells LaTeX where to put something by
naming its position. A <em>position</em> is a pair such as <code>(2.4,-5)</code>
giving the x- and y-coordinates. A <em>coordinate</em> is a not a length,
it is a real number (it may have a decimal point or a minus sign). It
@@ -5837,436 +5848,679 @@
unlike in some compute graphics settings, larger y-coordinates are
further up the page.
</p>
-<p>The most often used way to put things in a picture is the <code>\put</code>
-command. The command
+<p>There are four ways to put things in a picture: <code>\put</code>,
+<code>\multiput</code>, <code>qbezier</code>, and <code>graphpaper</code>. The most often
+used is <code>\put</code>. This
</p>
<div class="example">
-<pre class="example">\put(11.3,-.3){...}
+<pre class="example">\put(11.3,-0.3){...}
</pre></div>
-<p>places the object in the picture with its reference point at
-coordinates <em>(11.3,-.3)</em>. The reference points for various objects
-will be described below.
-<a name="index-lR-box"></a>
+<p>places the object with its reference point at
+coordinates <em>(11.3,-0.3)</em>. The reference points for various
+objects will be described below.
+<a name="index-LR-box"></a>
The <code>\put</code> command creates an <em>LR box</em>. Anything that can go
in an <code>\mbox</code> (see <a href="#g_t_005cmbox">\mbox</a>) can go in the text argument of the
-<code>\put</code> command. When you do this, the reference point will be the
-lower left corner of the box.
+<code>\put</code> command. The reference point will be the lower left corner
+of the box. In this picture
</p>
-<a name="index-package_002c-picture"></a>
-<a name="index-picture-package"></a>
+<div class="example">
+<pre class="example">\setlength{\unitlength}{1cm}
+...\begin{picture}(1,1)
+ \put(0,0){\line(1,0){1}}
+ \put(0,0){\line(1,1){1}}
+\end{picture}
+</pre></div>
-<p>The <code>picture</code> package redefines the <code>picture</code> environment so
-that everywhere a number is used in <var>picture commands</var> to specify
-a coordinate, one can use alternatively a length. Be aware however that
-this will prevent scaling those lengths by changing <code>\unitlength</code>.
+<p>the three dots are just slightly left of the point of the angle formed
+by the two lines. (Also, <code>\line(1,1){1}</code> does not call for a
+line of length one; rather the line has a change in the x coordinate of
+1.)
</p>
-<p>The <code>picture</code> commands are described in the following sections.
+<p>The <code>\multiput</code>, <code>qbezier</code>, and <code>graphpaper</code> commands are
+described below.
</p>
+<p>This draws a rectangle with a wavy top, using <code>\qbezier</code> for
+that curve.
+</p>
+<div class="example">
+<pre class="example">\begin{picture}(3,1.5)
+ \put(0,0){\vector(1,0){8}} % x axis
+ \put(0,0){\vector(0,1){4}} % y axis
+ \put(2,0){\line(0,1){3}} % left side rectangle
+ \put(4,0){\line(0,1){3.5}} % right side
+ \qbezier(2,3)(2.5,2.9)(3,3.25)
+ \qbezier(3,3.25)(3.5,3.6)(4,3.5)
+ \thicklines % below here, lines are twice as thick
+ \put(2,3){\line(4,1){2}}
+ \put(4.5,2.5){\framebox{Trapezoidal Rule}}
+\end{picture}
+</pre></div>
+
+
<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">• <a href="#g_t_005ccircle" accesskey="1">\circle</a>:</td><td> </td><td align="left" valign="top">Draw a circle.
+<tr><td align="left" valign="top">• <a href="#g_t_005cput" accesskey="1">\put</a>:</td><td> </td><td align="left" valign="top">Place an object at a specified place.
</td></tr>
-<tr><td align="left" valign="top">• <a href="#g_t_005cmakebox-_0028picture_0029" accesskey="2">\makebox (picture)</a>:</td><td> </td><td align="left" valign="top">Draw a box of the specified size.
+<tr><td align="left" valign="top">• <a href="#g_t_005cmultiput" accesskey="2">\multiput</a>:</td><td> </td><td align="left" valign="top">Draw multiple instances of an object.
</td></tr>
-<tr><td align="left" valign="top">• <a href="#g_t_005cframebox-_0028picture_0029" accesskey="3">\framebox (picture)</a>:</td><td> </td><td align="left" valign="top">Draw a box with a frame around it.
+<tr><td align="left" valign="top">• <a href="#g_t_005cqbezier" accesskey="3">\qbezier</a>:</td><td> </td><td align="left" valign="top">Draw a quadratic Bezier curve.
</td></tr>
-<tr><td align="left" valign="top">• <a href="#g_t_005cdashbox" accesskey="4">\dashbox</a>:</td><td> </td><td align="left" valign="top">Draw a dashed box.
+<tr><td align="left" valign="top">• <a href="#g_t_005cgraphpaper" accesskey="4">\graphpaper</a>:</td><td> </td><td align="left" valign="top">Draw graph paper.
</td></tr>
-<tr><td align="left" valign="top">• <a href="#g_t_005cframe" accesskey="5">\frame</a>:</td><td> </td><td align="left" valign="top">Draw a frame around an object.
+<tr><td align="left" valign="top">• <a href="#g_t_005cline" accesskey="5">\line</a>:</td><td> </td><td align="left" valign="top">Draw a straight line.
</td></tr>
-<tr><td align="left" valign="top">• <a href="#g_t_005cline" accesskey="6">\line</a>:</td><td> </td><td align="left" valign="top">Draw a straight line.
+<tr><td align="left" valign="top">• <a href="#g_t_005clinethickness" accesskey="6">\linethickness</a>:</td><td> </td><td align="left" valign="top">Set thickness of horizontal and vertical lines.
</td></tr>
-<tr><td align="left" valign="top">• <a href="#g_t_005clinethickness" accesskey="7">\linethickness</a>:</td><td> </td><td align="left" valign="top">Set the line thickness.
+<tr><td align="left" valign="top">• <a href="#g_t_005cthinlines" accesskey="7">\thinlines</a>:</td><td> </td><td align="left" valign="top">The default line thickness.
</td></tr>
<tr><td align="left" valign="top">• <a href="#g_t_005cthicklines" accesskey="8">\thicklines</a>:</td><td> </td><td align="left" valign="top">A heavier line thickness.
</td></tr>
-<tr><td align="left" valign="top">• <a href="#g_t_005cthinlines" accesskey="9">\thinlines</a>:</td><td> </td><td align="left" valign="top">The default line thickness.
+<tr><td align="left" valign="top">• <a href="#g_t_005ccircle" accesskey="9">\circle</a>:</td><td> </td><td align="left" valign="top">Draw a circle.
</td></tr>
-<tr><td align="left" valign="top">• <a href="#g_t_005cmultiput">\multiput</a>:</td><td> </td><td align="left" valign="top">Draw multiple instances of an object.
+<tr><td align="left" valign="top">• <a href="#g_t_005coval">\oval</a>:</td><td> </td><td align="left" valign="top">Draw an oval.
</td></tr>
-<tr><td align="left" valign="top">• <a href="#g_t_005coval">\oval</a>:</td><td> </td><td align="left" valign="top">Draw an ellipse.
+<tr><td align="left" valign="top">• <a href="#g_t_005cshortstack">\shortstack</a>:</td><td> </td><td align="left" valign="top">Make a stack of objects.
</td></tr>
-<tr><td align="left" valign="top">• <a href="#g_t_005cput">\put</a>:</td><td> </td><td align="left" valign="top">Place an object at a specified place.
+<tr><td align="left" valign="top">• <a href="#g_t_005cvector">\vector</a>:</td><td> </td><td align="left" valign="top">Draw a line with an arrow.
</td></tr>
-<tr><td align="left" valign="top">• <a href="#g_t_005cshortstack">\shortstack</a>:</td><td> </td><td align="left" valign="top">Make a pile of objects.
+<tr><td align="left" valign="top">• <a href="#g_t_005cmakebox-_0028picture_0029">\makebox (picture)</a>:</td><td> </td><td align="left" valign="top">Draw a box of the specified size.
</td></tr>
-<tr><td align="left" valign="top">• <a href="#g_t_005cvector">\vector</a>:</td><td> </td><td align="left" valign="top">Draw a line with an arrow.
+<tr><td align="left" valign="top">• <a href="#g_t_005cframebox-_0028picture_0029">\framebox (picture)</a>:</td><td> </td><td align="left" valign="top">Draw a box with a frame around it.
</td></tr>
+<tr><td align="left" valign="top">• <a href="#g_t_005cframe">\frame</a>:</td><td> </td><td align="left" valign="top">Draw a frame around an object.
+</td></tr>
+<tr><td align="left" valign="top">• <a href="#g_t_005cdashbox">\dashbox</a>:</td><td> </td><td align="left" valign="top">Draw a dashed box.
+</td></tr>
</table>
<hr>
-<a name="g_t_005ccircle"></a>
+<a name="g_t_005cput"></a>
<div class="header">
<p>
-Next: <a href="#g_t_005cmakebox-_0028picture_0029" accesskey="n" rel="next">\makebox (picture)</a>, Up: <a href="#picture" accesskey="u" rel="up">picture</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#g_t_005cmultiput" accesskey="n" rel="next">\multiput</a>, Up: <a href="#picture" accesskey="u" rel="up">picture</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="g_t_005ccircle-1"></a>
-<h4 class="subsection">8.19.1 <code>\circle</code></h4>
+<a name="g_t_005cput-1"></a>
+<h4 class="subsection">8.19.1 <code>\put</code></h4>
-<a name="index-_005ccircle"></a>
+<a name="index-_005cput"></a>
<p>Synopsis:
</p>
<div class="example">
-<pre class="example">\circle{<var>diameter</var>}
-\circle*{<var>diameter</var>}
+<pre class="example">\put(<var>xcoord</var>,<var>ycoord</var>){<var>content</var>}
</pre></div>
-<p>Produces a circle with a diameter as close to the specified one as
-possible. The <code>*</code>-form of the command draws a filled-in circle.
+<p>Place <var>content</var> at the coordinate (<var>xcoord</var>,<var>ycoord</var>). See
+the discussion of coordinates and <code>\unitlength</code> in <a href="#picture">picture</a>.
</p>
-<p>Circles up to 40pt can be drawn.
+<p>This includes the text into the <code>picture</code>.
</p>
+<div class="example">
+<pre class="example">\put(4.5,2.5){Apply the \textit{unpoke} move}
+</pre></div>
+<p>The reference point, the location (4.5,2.5), is the lower left of the
+text, at the bottom left of the ‘<samp>A</samp>’.
+</p>
+
<hr>
-<a name="g_t_005cmakebox-_0028picture_0029"></a>
+<a name="g_t_005cmultiput"></a>
<div class="header">
<p>
-Next: <a href="#g_t_005cframebox-_0028picture_0029" accesskey="n" rel="next">\framebox (picture)</a>, Previous: <a href="#g_t_005ccircle" accesskey="p" rel="prev">\circle</a>, Up: <a href="#picture" accesskey="u" rel="up">picture</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#g_t_005cqbezier" accesskey="n" rel="next">\qbezier</a>, Previous: <a href="#g_t_005cput" accesskey="p" rel="prev">\put</a>, Up: <a href="#picture" accesskey="u" rel="up">picture</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="g_t_005cmakebox-1"></a>
-<h4 class="subsection">8.19.2 <code>\makebox</code></h4>
+<a name="g_t_005cmultiput-1"></a>
+<h4 class="subsection">8.19.2 <code>\multiput</code></h4>
-<a name="index-_005cmakebox-_0028for-picture_0029"></a>
+<a name="index-_005cmultiput"></a>
<p>Synopsis:
</p>
<div class="example">
-<pre class="example">\makebox(<var>width</var>,<var>height</var>)[<var>position</var>]{<var>text</var>}
+<pre class="example">\multiput(<var>x</var>,<var>y</var>)(<var>delta_x</var>,<var>delta_y</var>){<var>n</var>}{<var>obj</var>}
</pre></div>
-<p>The <code>\makebox</code> command for the picture environment is similar to
-the normal <code>\makebox</code> command except that you must specify a
-<var>width</var> and <var>height</var> in multiples of <code>\unitlength</code>.
+<p>Copy <var>obj</var> a total of <var>n</var> times, with an increment of
+<var>delta_x,delta_y</var>. The <var>obj</var> first appears at position
+<em>(x,y)</em>, then at <em>(x+\delta_x,y+\delta_y)</em>, and so on.
</p>
-<p>The optional argument, <code>[<var>position</var>]</code>, specifies the quadrant that
-your <var>text</var> appears in. You may select up to two of the following:
+<p>This draws a simple grid with every fifth line bolded (see also
+<a href="#g_t_005cgraphpaper">\graphpaper</a>).
</p>
-<dl compact="compact">
-<dt><code>t</code></dt>
-<dd><p>Moves the item to the top of the rectangle.
-</p>
-</dd>
-<dt><code>b</code></dt>
-<dd><p>Moves the item to the bottom.
-</p>
-</dd>
-<dt><code>l</code></dt>
-<dd><p>Moves the item to the left.
-</p>
-</dd>
-<dt><code>r</code></dt>
-<dd><p>Moves the item to the right.
-</p>
-</dd>
-</dl>
+<div class="example">
+<pre class="example">\begin{picture}(10,10)
+ \linethickness{0.05mm}
+ \multiput(0,0)(1,0){10}{\line(0,1){10}}
+ \multiput(0,0)(0,1){10}{\line(1,0){10}}
+ \linethickness{0.5mm}
+ \multiput(0,0)(5,0){3}{\line(0,1){10}}
+ \multiput(0,0)(0,5){3}{\line(1,0){10}}
+\end{picture}
+</pre></div>
-<p>See <a href="#g_t_005cmakebox">\makebox</a>.
-</p>
<hr>
-<a name="g_t_005cframebox-_0028picture_0029"></a>
+<a name="g_t_005cqbezier"></a>
<div class="header">
<p>
-Next: <a href="#g_t_005cdashbox" accesskey="n" rel="next">\dashbox</a>, Previous: <a href="#g_t_005cmakebox-_0028picture_0029" accesskey="p" rel="prev">\makebox (picture)</a>, Up: <a href="#picture" accesskey="u" rel="up">picture</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#g_t_005cgraphpaper" accesskey="n" rel="next">\graphpaper</a>, Previous: <a href="#g_t_005cmultiput" accesskey="p" rel="prev">\multiput</a>, Up: <a href="#picture" accesskey="u" rel="up">picture</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="g_t_005cframebox"></a>
-<h4 class="subsection">8.19.3 <code>\framebox</code></h4>
+<a name="g_t_005cqbezier-1"></a>
+<h4 class="subsection">8.19.3 <code>\qbezier</code></h4>
-<a name="index-_005cframebox"></a>
+<a name="index-_005cqbezier"></a>
<p>Synopsis:
</p>
<div class="example">
-<pre class="example">\framebox(<var>width</var>,<var>height</var>)[<var>pos</var>]{...}
+<pre class="example">\qbezier(<var>x1</var>,<var>y1</var>)(<var>x2</var>,<var>y2</var>)(<var>x3</var>,<var>y3</var>)
+\qbezier[<var>num</var>](<var>x1</var>,<var>y1</var>)(<var>x2</var>,<var>y2</var>)(<var>x3</var>,<var>y3</var>)
</pre></div>
-<p>The <code>\framebox</code> command is like <code>\makebox</code> (see previous
-section), except that it puts a frame around the outside of the box
-that it creates.
+<p>Draw a quadratic Bezier curve whose control points are given by the
+three required arguments <code>(<var>x1</var>,<var>y1</var>)</code>,
+<code>(<var>x2</var>,<var>y2</var>)</code>, and <code>(<var>x3</var>,<var>y3</var>)</code>. That is,
+the curve runs from <var>(x1,y1)</var> to <var>(x3,y3)</var>, is quadratic, and is
+such that the tangent line at <var>(x1,y1)</var> passes through
+<var>(x2,y2)</var>, as does the tangent line at <var>(x3,y3)</var>.
</p>
-<a name="index-_005cfboxrule"></a>
-<a name="index-_005cfboxsep"></a>
-<p>The <code>\framebox</code> command produces a rule of thickness
-<code>\fboxrule</code>, and leaves a space <code>\fboxsep</code> between the rule
-and the contents of the box.
+<p>This draws a curve from the coordinate (1,1) to (1,0).
</p>
-
-<hr>
-<a name="g_t_005cdashbox"></a>
-<div class="header">
-<p>
-Next: <a href="#g_t_005cframe" accesskey="n" rel="next">\frame</a>, Previous: <a href="#g_t_005cframebox-_0028picture_0029" accesskey="p" rel="prev">\framebox (picture)</a>, Up: <a href="#picture" accesskey="u" rel="up">picture</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
-</div>
-<a name="g_t_005cdashbox-1"></a>
-<h4 class="subsection">8.19.4 <code>\dashbox</code></h4>
-
-<a name="index-_005cdashbox"></a>
-
-<p>Draws a box with a dashed line. Synopsis:
-</p>
<div class="example">
-<pre class="example">\dashbox{<var>dlen</var>}(<var>rwidth</var>,<var>rheight</var>)[<var>pos</var>]{<var>text</var>}
+<pre class="example">\qbezier(1,1)(1.25,0.75)(1,0)
</pre></div>
-<p><code>\dashbox</code> creates a dashed rectangle around <var>text</var> in a
-<code>picture</code> environment. Dashes are <var>dlen</var> units long, and the
-rectangle has overall width <var>rwidth</var> and height <var>rheight</var>.
-The <var>text</var> is positioned at optional <var>pos</var>. </p>
-<p>A dashed box looks best when the <var>rwidth</var> and <var>rheight</var> are
-multiples of the <var>dlen</var>.
+<p>The curve’s tangent line at (1,1) contains (1.25,0.75), as does the
+curve’s tangent line at (1,0).
</p>
+<p>The optional argument <var>num</var> gives the number of calculated
+intermediate points. The default is to draw a smooth curve whose
+maximum number of points is <code>\qbeziermax</code> (change this value with
+<code>\renewcommand</code>).
+</p>
<hr>
-<a name="g_t_005cframe"></a>
+<a name="g_t_005cgraphpaper"></a>
<div class="header">
<p>
-Next: <a href="#g_t_005cline" accesskey="n" rel="next">\line</a>, Previous: <a href="#g_t_005cdashbox" accesskey="p" rel="prev">\dashbox</a>, Up: <a href="#picture" accesskey="u" rel="up">picture</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#g_t_005cline" accesskey="n" rel="next">\line</a>, Previous: <a href="#g_t_005cqbezier" accesskey="p" rel="prev">\qbezier</a>, Up: <a href="#picture" accesskey="u" rel="up">picture</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="g_t_005cframe-1"></a>
-<h4 class="subsection">8.19.5 <code>\frame</code></h4>
+<a name="g_t_005cgraphpaper-1"></a>
+<h4 class="subsection">8.19.4 <code>\graphpaper</code></h4>
-<a name="index-_005cframe"></a>
-
+<a name="index-_005cgraphpaper"></a>
<p>Synopsis:
</p>
<div class="example">
-<pre class="example">\frame{<var>text</var>}
+<pre class="example">\graphpaper(<var>x_init</var>,<var>y_init</var>)(<var>x_dimen</var>,<var>y_dimen</var>)
+\graphpaper[<var>spacing</var>](<var>x_init</var>,<var>y_init</var>)(<var>x_dimen</var>,<var>y_dimen</var>)
</pre></div>
-<p>The <code>\frame</code> command puts a rectangular frame around <var>text</var>.
-The reference point is the bottom left corner of the frame. No extra
-space is put between the frame and the object.
+<p>Draw a coordinate grid. Requires the <code>graphpap</code> package.
+The grid’s origin is <code>(<var>x_init</var>,<var>y_init</var>)</code>.
+Grid lines come every <var>spacing</var> units (the default is 10).
+The grid extends <var>x_dimen</var> units to the right and <var>y_dimen</var> units up.
+All arguments must be positive integers.
</p>
+<p>This make a grid with seven vertical lines and eleven horizontal lines.
+</p>
+<div class="example">
+<pre class="example">\usepackage{graphpap} % in preamble
+ ...
+\begin{picture}(6,20) % in document body
+ \graphpaper[2](0,0)(12,20)
+\end{picture}
+</pre></div>
+<p>The lines are numbered every ten units.
+</p>
+
<hr>
<a name="g_t_005cline"></a>
<div class="header">
<p>
-Next: <a href="#g_t_005clinethickness" accesskey="n" rel="next">\linethickness</a>, Previous: <a href="#g_t_005cframe" accesskey="p" rel="prev">\frame</a>, Up: <a href="#picture" accesskey="u" rel="up">picture</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#g_t_005clinethickness" accesskey="n" rel="next">\linethickness</a>, Previous: <a href="#g_t_005cgraphpaper" accesskey="p" rel="prev">\graphpaper</a>, Up: <a href="#picture" accesskey="u" rel="up">picture</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
<a name="g_t_005cline-1"></a>
-<h4 class="subsection">8.19.6 <code>\line</code></h4>
+<h4 class="subsection">8.19.5 <code>\line</code></h4>
<a name="index-_005cline"></a>
<p>Synopsis:
</p>
<div class="example">
-<pre class="example">\line(<var>xslope</var>,<var>yslope</var>){<var>length</var>}
+<pre class="example">\line(<var>x_run</var>,<var>y_rise</var>){<var>travel</var>}
</pre></div>
-<p>The <code>\line</code> command draws a line with the given <var>length</var> and
-slope <var>xslope</var>/<var>yslope</var>.
+<p>Draw a line. It slopes such that it vertically rises <var>y_rise</var> for
+every horizontal <var>x_run</var>, and such that the total horizontal change
+is <var>travel</var>. In the special case of vertical lines, if
+(<var>x_run</var>,<var>y_rise</var>)=(0,1), then <var>travel</var> gives the change in
+<em>y</em>.
</p>
+<p>This draws a line starting at coordinates (1,3).
+</p>
+<div class="example">
+<pre class="example">\put(1,3){\line(2,5){4}}
+</pre></div>
+
+<p>For every over 2, this line will go up 5. Because <var>travel</var>
+specifies that this goes over 4, it must go up 10. Thus its
+endpoint is <em>(1,3)+(4,10)=(5,13)</em>. In particular, note that
+<em><var>travel</var>=4</em> is not the length of the line, it is the change in
+<em>x</em>.
+</p>
+<p>The arguments <var>x_run</var> and <var>y_rise</var> are integers that can be
+positive, negative, or zero. (If both are 0 then LaTeX treats the
+second as 1.) With
+<code>\put(<var>x_init</var>,<var>y_init</var>){\line(<var>x_run</var>,<var>y_rise</var>){<var>travel</var>}}</code>,
+if <var>x_run</var> is negative then the line’s ending point has a first
+coordinate that is less than <var>x_init</var>. If <var>y_rise</var> is negative
+then the line’s ending point has a second coordinate that is less than
+<var>y_init</var>.
+</p>
+<p>If <var>travel</var> is negative then you get <code>LaTeX Error: Bad \line or
+\vector argument.</code>
+</p>
<a name="index-pict2e-package"></a>
<a name="index-graphics-packages"></a>
-<p>Standard LaTeX can only draw lines with <em><var>slope</var> = x/y</em>,
-where <em>x</em> and <em>y</em> have integer values from -6
-through 6. For lines of any slope, and plenty of other shapes,
-see <code>pict2e</code> and many other packages on CTAN.
+<a name="index-package_002c-pict2e"></a>
+<a name="index-pict2e-package-1"></a>
+
+<p>Standard LaTeX can only draw lines with a limited range of slopes
+because these lines are made by putting together line segments from
+pre-made fonts. The two numbers <var>x_run</var> and <var>y_rise</var> must have
+integer values from -6 through 6. Also, they must be
+relatively prime, so that <var>(x_run,y_rise)</var> can be (2,1) but not
+(4,2) (if you choose the latter then instead of lines you get sequences
+of arrowheads; the solution is to switch to the former). To get lines
+of arbitrary slope, and plenty of other shapes, see <code>pict2e</code> and
+many other packages on CTAN.
</p>
<hr>
<a name="g_t_005clinethickness"></a>
<div class="header">
<p>
-Next: <a href="#g_t_005cthicklines" accesskey="n" rel="next">\thicklines</a>, Previous: <a href="#g_t_005cline" accesskey="p" rel="prev">\line</a>, Up: <a href="#picture" accesskey="u" rel="up">picture</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#g_t_005cthinlines" accesskey="n" rel="next">\thinlines</a>, Previous: <a href="#g_t_005cline" accesskey="p" rel="prev">\line</a>, Up: <a href="#picture" accesskey="u" rel="up">picture</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
<a name="g_t_005clinethickness-1"></a>
-<h4 class="subsection">8.19.7 <code>\linethickness</code></h4>
+<h4 class="subsection">8.19.6 <code>\linethickness</code></h4>
<a name="index-_005clinethickness"></a>
-<p>The <code>\linethickness{<var>dim</var>}</code> command declares the thickness
-of horizontal and vertical lines in a picture environment to be
-<var>dim</var>, which must be a positive length.
+<p>Synopsis:
</p>
-<p><code>\linethickness</code> does not affect the thickness of slanted lines,
-circles, or the quarter circles drawn by <code>\oval</code>.
+<div class="example">
+<pre class="example">\linethickness{<var>dim</var>}
+</pre></div>
+
+<p>Declares the thickness of subsequent horizontal and vertical lines in a
+picture to be <var>dim</var>, which must be a positive length
+(see <a href="#Lengths">Lengths</a>). It differs from <code>\thinlines</code> and
+<code>\thicklines</code> in that it does not affect the thickness of slanted
+lines, circles, or ovals.
</p>
<hr>
-<a name="g_t_005cthicklines"></a>
+<a name="g_t_005cthinlines"></a>
<div class="header">
<p>
-Next: <a href="#g_t_005cthinlines" accesskey="n" rel="next">\thinlines</a>, Previous: <a href="#g_t_005clinethickness" accesskey="p" rel="prev">\linethickness</a>, Up: <a href="#picture" accesskey="u" rel="up">picture</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#g_t_005cthicklines" accesskey="n" rel="next">\thicklines</a>, Previous: <a href="#g_t_005clinethickness" accesskey="p" rel="prev">\linethickness</a>, Up: <a href="#picture" accesskey="u" rel="up">picture</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="g_t_005cthicklines-1"></a>
-<h4 class="subsection">8.19.8 <code>\thicklines</code></h4>
+<a name="g_t_005cthinlines-1"></a>
+<h4 class="subsection">8.19.7 <code>\thinlines</code></h4>
-<a name="index-_005cthicklines"></a>
+<a name="index-_005cthinlines"></a>
-<p>The <code>\thicklines</code> command is an alternate line thickness for
-horizontal and vertical lines in a picture environment;
-cf. <a href="#g_t_005clinethickness">\linethickness</a> and <a href="#g_t_005cthinlines">\thinlines</a>.
+<p>Declaration to set the thickness of subsequent lines, circles, and ovals
+in a picture environment to be 0.4pt. This is the default
+thickness, so this command is unnecessary unless the thickness has been
+changed with either <a href="#g_t_005clinethickness">\linethickness</a> or <a href="#g_t_005cthicklines">\thicklines</a>.
</p>
<hr>
-<a name="g_t_005cthinlines"></a>
+<a name="g_t_005cthicklines"></a>
<div class="header">
<p>
-Next: <a href="#g_t_005cmultiput" accesskey="n" rel="next">\multiput</a>, Previous: <a href="#g_t_005cthicklines" accesskey="p" rel="prev">\thicklines</a>, Up: <a href="#picture" accesskey="u" rel="up">picture</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#g_t_005ccircle" accesskey="n" rel="next">\circle</a>, Previous: <a href="#g_t_005cthinlines" accesskey="p" rel="prev">\thinlines</a>, Up: <a href="#picture" accesskey="u" rel="up">picture</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="g_t_005cthinlines-1"></a>
-<h4 class="subsection">8.19.9 <code>\thinlines</code></h4>
+<a name="g_t_005cthicklines-1"></a>
+<h4 class="subsection">8.19.8 <code>\thicklines</code></h4>
-<a name="index-_005cthinlines"></a>
+<a name="index-_005cthicklines"></a>
-<p>The <code>\thinlines</code> command is the default line thickness for
-horizontal and vertical lines in a picture environment;
-cf. <a href="#g_t_005clinethickness">\linethickness</a> and <a href="#g_t_005cthicklines">\thicklines</a>.
+<p>Declaration to set the thickness of subsequent lines, circles, and ovals
+in a picture environment to be 0.8pt. See also
+<a href="#g_t_005clinethickness">\linethickness</a> and <a href="#g_t_005cthinlines">\thinlines</a>. This command is illustrated
+in the Trapezoidal Rule example of <a href="#picture">picture</a>.
</p>
<hr>
-<a name="g_t_005cmultiput"></a>
+<a name="g_t_005ccircle"></a>
<div class="header">
<p>
-Next: <a href="#g_t_005coval" accesskey="n" rel="next">\oval</a>, Previous: <a href="#g_t_005cthinlines" accesskey="p" rel="prev">\thinlines</a>, Up: <a href="#picture" accesskey="u" rel="up">picture</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#g_t_005coval" accesskey="n" rel="next">\oval</a>, Previous: <a href="#g_t_005cthicklines" accesskey="p" rel="prev">\thicklines</a>, Up: <a href="#picture" accesskey="u" rel="up">picture</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="g_t_005cmultiput-1"></a>
-<h4 class="subsection">8.19.10 <code>\multiput</code></h4>
+<a name="g_t_005ccircle-1"></a>
+<h4 class="subsection">8.19.9 <code>\circle</code></h4>
-<a name="index-_005cmultiput"></a>
+<a name="index-_005ccircle"></a>
<p>Synopsis:
</p>
<div class="example">
-<pre class="example">\multiput(<var>x</var>,<var>y</var>)(<var>delta_x</var>,<var>delta_y</var>){<var>n</var>}{<var>obj</var>}
+<pre class="example">\circle{<var>diameter</var>}
+\circle*{<var>diameter</var>}
</pre></div>
-<p>The <code>\multiput</code> command copies the object <var>obj</var> in a regular
-pattern across a picture. <var>obj</var> is first placed at position
-<em>(x,y)</em>, then at <em>(x+\delta x,y+\delta y)</em>, and so on,
-<var>n</var> times.
+<p>Produces a circle with a diameter as close as possible to the specified
+one. The <code>*</code> form produces a filled-in circle.
</p>
+<p>This draws a circle of radius 6, centered at <code>(5,7)</code>.
+</p>
+<div class="example">
+<pre class="example">\put(5,7){\circle{6}}
+</pre></div>
+<p>The available radiuses for <code>circle</code> are, in points, the even
+numbers from 2 to 20, inclusive. For <code>circle*</code> they are all the
+integers from 1 to 15.
+</p>
+
<hr>
<a name="g_t_005coval"></a>
<div class="header">
<p>
-Next: <a href="#g_t_005cput" accesskey="n" rel="next">\put</a>, Previous: <a href="#g_t_005cmultiput" accesskey="p" rel="prev">\multiput</a>, Up: <a href="#picture" accesskey="u" rel="up">picture</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#g_t_005cshortstack" accesskey="n" rel="next">\shortstack</a>, Previous: <a href="#g_t_005ccircle" accesskey="p" rel="prev">\circle</a>, Up: <a href="#picture" accesskey="u" rel="up">picture</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
<a name="g_t_005coval-1"></a>
-<h4 class="subsection">8.19.11 <code>\oval</code></h4>
+<h4 class="subsection">8.19.10 <code>\oval</code></h4>
<a name="index-_005coval"></a>
<p>Synopsis:
</p>
<div class="example">
-<pre class="example">\oval(<var>width</var>,<var>height</var>)[<var>portion</var>]
+<pre class="example">\oval(<var>width</var>,<var>height</var>)
+\oval(<var>width</var>,<var>height</var>)[<var>portion</var>]
</pre></div>
-<p>The <code>\oval</code> command produces a rectangle with rounded corners. The
-optional argument <var>portion</var> allows you to produce only half of the
-oval via the following:
+<p>Produce a rectangle with rounded corners. The optional argument
+<var>portion</var> allows you to produce only half or a quarter of the oval.
+For half an oval take <var>portion</var> to be one of these.
</p>
<dl compact="compact">
<dt><code>t</code></dt>
-<dd><p>selects the top half;
+<dd><p>top half
</p></dd>
<dt><code>b</code></dt>
-<dd><p>selects the bottom half;
+<dd><p>bottom half
</p></dd>
<dt><code>r</code></dt>
-<dd><p>selects the right half;
+<dd><p>right half
</p></dd>
<dt><code>l</code></dt>
-<dd><p>selects the left half.
+<dd><p>left half
</p></dd>
</dl>
-<p>It is also possible to produce only one quarter of the oval by setting
-<var>portion</var> to <code>tr</code>, <code>br</code>, <code>bl</code>, or <code>tl</code>.
+<p>Produce only one quarter of the oval by setting <var>portion</var> to
+<code>tr</code>, <code>br</code>, <code>bl</code>, or <code>tl</code>.
</p>
-<p>The “corners” of the oval are made with quarter circles with a
-maximum radius of 20pt, so large “ovals” will look more like
-boxes with rounded corners.
+<p>This draws the top half of an oval that is 3 wide and 7 tall.
</p>
-
-<hr>
-<a name="g_t_005cput"></a>
-<div class="header">
-<p>
-Next: <a href="#g_t_005cshortstack" accesskey="n" rel="next">\shortstack</a>, Previous: <a href="#g_t_005coval" accesskey="p" rel="prev">\oval</a>, Up: <a href="#picture" accesskey="u" rel="up">picture</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
-</div>
-<a name="g_t_005cput-1"></a>
-<h4 class="subsection">8.19.12 <code>\put</code></h4>
-
-<a name="index-_005cput"></a>
-
-<p>Synopsis:
-</p>
<div class="example">
-<pre class="example">\put(<var>xcoord</var>,<var>ycoord</var>){ ... }
+<pre class="example">\put(5,7){\oval(3,7)[t]}
</pre></div>
-<p>The <code>\put</code> command places the material specified by the
-(mandatory) argument in braces at the given coordinate,
-(<var>xcoord</var>,<var>ycoord</var>).
+<p>The (5,7) is the center of the entire oval, not just the center of the
+top half.
</p>
+<p>These shapes are not ellipses. They are rectangles whose corners are
+made with quarter circles. These circles have a maximum radius of
+20pt (see <a href="#g_t_005ccircle">\circle</a> for the sizes). Thus large ovals are just
+boxes with a small amount of corner rounding.
+</p>
<hr>
<a name="g_t_005cshortstack"></a>
<div class="header">
<p>
-Next: <a href="#g_t_005cvector" accesskey="n" rel="next">\vector</a>, Previous: <a href="#g_t_005cput" accesskey="p" rel="prev">\put</a>, Up: <a href="#picture" accesskey="u" rel="up">picture</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#g_t_005cvector" accesskey="n" rel="next">\vector</a>, Previous: <a href="#g_t_005coval" accesskey="p" rel="prev">\oval</a>, Up: <a href="#picture" accesskey="u" rel="up">picture</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
<a name="g_t_005cshortstack-1"></a>
-<h4 class="subsection">8.19.13 <code>\shortstack</code></h4>
+<h4 class="subsection">8.19.11 <code>\shortstack</code></h4>
<a name="index-_005cshortstack"></a>
<p>Synopsis:
</p>
<div class="example">
-<pre class="example">\shortstack[<var>position</var>]{...\\...\\...}
+<pre class="example">\shortstack[<var>position</var>]{<var>line 1</var> \\ <var>line 2</var> \\ ... }
</pre></div>
-<p>The <code>\shortstack</code> command produces a stack of objects. The valid
-positions are:
+<p>Produce a vertical stack of objects.
</p>
+<p>This labels the <em>y</em> axis.
+</p>
+<div class="example">
+<pre class="example">\put(0,0){\vector(1,0){4}} % x axis
+\put(0,0){\vector(0,1){2}} % y
+\put(-0.25,2){\makebox[0][r]{\shortstack[r]{$y$\\ axis}}}
+</pre></div>
+
+<p>For a short stack, the reference point is the lower left of the stack.
+In this example the <a href="#g_t_005cmakebox">\makebox</a> puts the stack flush right in a zero
+width box so in total the short stack sits slightly to the left of the
+<em>y</em> axis.
+</p>
+<p>The valid positions are:
+</p>
<dl compact="compact">
<dt><code>r</code></dt>
-<dd><p>Move the objects to the right of the stack.
+<dd><p>Make objects flush right
</p></dd>
<dt><code>l</code></dt>
-<dd><p>Move the objects to the left of the stack
+<dd><p>Make objects flush left
</p></dd>
<dt><code>c</code></dt>
-<dd><p>Move the objects to the centre of the stack (default)
+<dd><p>Center objects (default)
</p></dd>
</dl>
<a name="index-_005c_005c-_0028for-_005cshortstack-objects_0029"></a>
-<p>Objects are separated with <code>\\</code>.
+<p>Separate objects into lines with <code>\\</code>. These stacks are short in
+that, unlike in a <code>tabular</code> or <code>array</code> environment, here the
+rows are not spaced out to be of even heights. Thus, in
+<code>\shortstack{X\\o\\o\\X}</code> the first and last rows are taller than
+the middle two. You can adjust row heights either by putting in the
+usual interline spacing with <code>\shortstack{X\\ \strut o\\o\\X}</code>,
+or by hand, via an explicit zero-width box <code>\shortstack{X \\
+\rule{0pt}{12pt} o\\o\\X}</code> or by using <code>\\</code>’s optional
+argument <code>\shortstack{X\\[2pt] o\\o\\X}</code>.
</p>
+<p>The <code>\shortstack</code> command is also available outside the
+<code>picture</code> environment.
+</p>
<hr>
<a name="g_t_005cvector"></a>
<div class="header">
<p>
-Previous: <a href="#g_t_005cshortstack" accesskey="p" rel="prev">\shortstack</a>, Up: <a href="#picture" accesskey="u" rel="up">picture</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#g_t_005cmakebox-_0028picture_0029" accesskey="n" rel="next">\makebox (picture)</a>, Previous: <a href="#g_t_005cshortstack" accesskey="p" rel="prev">\shortstack</a>, Up: <a href="#picture" accesskey="u" rel="up">picture</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
<a name="g_t_005cvector-1"></a>
-<h4 class="subsection">8.19.14 <code>\vector</code></h4>
+<h4 class="subsection">8.19.12 <code>\vector</code></h4>
<a name="index-_005cvector"></a>
<p>Synopsis:
</p>
<div class="example">
-<pre class="example">\vector(<var>xslope</var>,<var>yslope</var>){<var>length</var>}
+<pre class="example">\vector(<var>x_run</var>,<var>y_rise</var>){<var>travel</var>}
</pre></div>
-<p>The <code>\vector</code> command draws a line with an arrow of the specified
-length and slope. The <em><var>xslope</var></em> and <em><var>yslope</var></em>
-values must lie between -4 and +4, inclusive.
+<p>Draw a line ending in an arrow. It slopes such that it vertically rises
+<var>y_rise</var> for every horizontal <var>x_run</var>, and such that the total
+horizontal change is <var>travel</var>. In the special case of vertical
+vectors, if (<var>x_run</var>,<var>y_rise</var>)=(0,1), then <var>travel</var> gives
+the change in <em>y</em>.
</p>
+<p>For an example see <a href="#picture">picture</a>.
+</p>
+<p>For elaboration on <var>x_run</var> and <var>y_rise</var> see <a href="#g_t_005cline">\line</a>. As
+there, the values of <var>x_run</var> and <var>y_rise</var> are limited. You must
+chooses integers between -4 and 4, inclusive. Also, the two you
+choose must be relatively prime. Thus, <code>\vector(2,1){4}</code> is
+acceptable but <code>\vector(4,2){4}</code> is not (if you use the latter
+then you get a sequence of arrowheads).
+</p>
<hr>
+<a name="g_t_005cmakebox-_0028picture_0029"></a>
+<div class="header">
+<p>
+Next: <a href="#g_t_005cframebox-_0028picture_0029" accesskey="n" rel="next">\framebox (picture)</a>, Previous: <a href="#g_t_005cvector" accesskey="p" rel="prev">\vector</a>, Up: <a href="#picture" accesskey="u" rel="up">picture</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="g_t_005cmakebox-_0028picture_0029-1"></a>
+<h4 class="subsection">8.19.13 <code>\makebox</code> (picture)</h4>
+
+<a name="index-_005cmakebox-_0028for-picture_0029"></a>
+
+<p>Synopsis:
+</p>
+<div class="example">
+<pre class="example">\makebox(<var>width</var>,<var>height</var>){<var>text</var>}
+\makebox(<var>width</var>,<var>height</var>)[<var>position</var>]{<var>text</var>}
+</pre></div>
+
+<p>Similar to the normal <code>\makebox</code> command (see <a href="#g_t_005cmakebox">\makebox</a>) except
+that you must specify a <var>width</var> and <var>height</var>, which you give in
+multiples of <code>\unitlength</code>. See <a href="#picture">picture</a> for the discussion of
+<code>\unitlength</code>.
+</p>
+<p>This makes a box of length 3 times <code>\unitlength</code> and height 4
+times <code>\unitlength</code>.
+</p>
+<div class="example">
+<pre class="example">\put(1,2){\makebox(3,4){...}}
+</pre></div>
+
+<p>Its contents will be right justified in that box.
+</p>
+<p>The optional <code><var>position</var></code> specifies the quadrant in which your
+<var>text</var> appears. Use up to two of these:
+</p>
+<dl compact="compact">
+<dt><code>t</code></dt>
+<dd><p>Moves the item to the top of the rectangle.
+</p>
+</dd>
+<dt><code>b</code></dt>
+<dd><p>Moves the item to the bottom.
+</p>
+</dd>
+<dt><code>l</code></dt>
+<dd><p>Moves the item to the left.
+</p>
+</dd>
+<dt><code>r</code></dt>
+<dd><p>Moves the item to the right.
+</p>
+</dd>
+</dl>
+
+
+<hr>
+<a name="g_t_005cframebox-_0028picture_0029"></a>
+<div class="header">
+<p>
+Next: <a href="#g_t_005cframe" accesskey="n" rel="next">\frame</a>, Previous: <a href="#g_t_005cmakebox-_0028picture_0029" accesskey="p" rel="prev">\makebox (picture)</a>, Up: <a href="#picture" accesskey="u" rel="up">picture</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="g_t_005cframebox-_0028picture_0029-1"></a>
+<h4 class="subsection">8.19.14 <code>\framebox</code> (picture)</h4>
+
+<a name="index-_005cframebox"></a>
+
+<p>Synopsis:
+</p>
+<div class="example">
+<pre class="example">\framebox(<var>width</var>,<var>height</var>){...}
+\framebox(<var>width</var>,<var>height</var>)[<var>position</var>]{...}
+</pre></div>
+
+<p>Like <a href="#g_t_005cmakebox-_0028picture_0029">\makebox (picture)</a> except that it puts a frame
+around the outside of the box that it creates.
+The reference point is the bottom left corner of the frame.
+<a name="index-_005cfboxrule"></a>
+<a name="index-_005cfboxsep"></a>
+The rule has thickness <code>\fboxrule</code> and there is a blank space
+<code>\fboxsep</code> between the frame and the contents of the box.
+</p>
+<p>For this command, you must specify the <var>width</var> and <var>height</var>. If
+you want to just put a frame around some contents whose dimenstion is
+determined in some other way then either use <code>\fbox</code> (see <a href="#g_t_005cfbox-and-_005cframebox">\fbox and \framebox</a>) or <code>\frame</code> (see <a href="#g_t_005cframe">\frame</a>).
+</p>
+<hr>
+<a name="g_t_005cframe"></a>
+<div class="header">
+<p>
+Next: <a href="#g_t_005cdashbox" accesskey="n" rel="next">\dashbox</a>, Previous: <a href="#g_t_005cframebox-_0028picture_0029" accesskey="p" rel="prev">\framebox (picture)</a>, Up: <a href="#picture" accesskey="u" rel="up">picture</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="g_t_005cframe-1"></a>
+<h4 class="subsection">8.19.15 <code>\frame</code></h4>
+
+<a name="index-_005cframe"></a>
+
+<p>Synopsis:
+</p>
+<div class="example">
+<pre class="example">\frame{<var>contents</var>}
+</pre></div>
+
+<p>Puts a rectangular frame around <var>contents</var>. The reference point is
+the bottom left corner of the frame. In contrast to <code>\fbox</code>
+(see <a href="#g_t_005cfbox-and-_005cframebox">\fbox and \framebox</a>), this command puts no extra space is put
+between the frame and the object.
+</p>
+
+<hr>
+<a name="g_t_005cdashbox"></a>
+<div class="header">
+<p>
+Previous: <a href="#g_t_005cframe" accesskey="p" rel="prev">\frame</a>, Up: <a href="#picture" accesskey="u" rel="up">picture</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="g_t_005cdashbox-1"></a>
+<h4 class="subsection">8.19.16 <code>\dashbox</code></h4>
+
+<a name="index-_005cdashbox"></a>
+
+<p>Synopsis:
+</p>
+<div class="example">
+<pre class="example">\dashbox{<var>dlen</var>}(<var>rwidth</var>,<var>rheight</var>){<var>text</var>}
+\dashbox{<var>dlen</var>}(<var>rwidth</var>,<var>rheight</var>)[<var>position</var>]{<var>text</var>}
+</pre></div>
+
+<p>Create a dashed rectangle around <var>text</var> in a <code>picture</code>
+environment. Dashes are <var>dlen</var> units long and the rectangle has
+overall width <var>rwidth</var> and height <var>rheight</var>. The <var>text</var> is
+positioned according to the optional <var>position</var>; see <a href="#g_t_005cmakebox-_0028picture_0029">\makebox (picture)</a> for the values that <var>position</var> can take.
+</p>
+<p>This shows that you can use non-integer <var>dlen</var>.
+</p>
+<div class="example">
+<pre class="example">\put(0,0){\dashbox{0.1}(5,0.5){My hovercraft is full of eels.}}
+</pre></div>
+
+<p>As in that example, a dashed box looks best when the <var>rwidth</var> and
+<var>rheight</var> are multiples of the <var>dlen</var>.
+</p>
+
+<hr>
<a name="quotation-_0026-quote"></a>
<div class="header">
<p>
@@ -8117,7 +8371,8 @@
<p>LaTeX’s default puts many restrictions on where you can use a
<code>\footnote</code>; for instance, you cannot use it in an argument to a
sectioning command such as <code>\chapter</code> (it can only be used in outer
-paragraph mode). There are some workarounds; see following sections.
+paragraph mode; see <a href="#Modes">Modes</a>). There are some workarounds; see
+following sections.
</p>
<a name="index-Footnotes_002c-in-a-minipage"></a>
<a name="index-mpfootnote-counter"></a>
@@ -13262,7 +13517,7 @@
<p>
Next: <a href="#g_t_005cparbox" accesskey="n" rel="next">\parbox</a>, Previous: <a href="#lrbox" accesskey="p" rel="prev">lrbox</a>, Up: <a href="#Boxes" accesskey="u" rel="up">Boxes</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
-<a name="g_t_005cmakebox-2"></a>
+<a name="g_t_005cmakebox-1"></a>
<h3 class="section">20.4 <code>\makebox</code></h3>
<a name="index-_005cmakebox"></a>
@@ -13926,7 +14181,7 @@
commands of this chapter. Two that use a programming language are
Asymptote and MetaPost. One that uses a graphical interface is Xfig.
Full description of these systems is outside the scope of this document;
-see their documentation.
+see their documentation on CTAN.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">• <a href="#Graphics-package-options" accesskey="1">Graphics package options</a>:</td><td> </td><td align="left" valign="top">Options when you load the package.
@@ -14521,7 +14776,7 @@
</p>
</dd>
<dt><code>angle</code></dt>
-<dd><p>Rotate the picture. The angle is taken in degrees and counterclockwise.
+<dd><p>Rotate the graphic. The angle is taken in degrees and counterclockwise.
The graphic is rotated about its <code>origin</code>; see that option. For a
complete description of how rotated material is typeset,
see <a href="#g_t_005crotatebox">\rotatebox</a>.
@@ -17812,7 +18067,7 @@
<tr><td></td><td valign="top"><a href="#index-package_002c-minted"><span class="roman">package</span>, <code>minted</code></a>:</td><td> </td><td valign="top"><a href="#tabbing">tabbing</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-package_002c-minted-1"><span class="roman">package</span>, <code>minted</code></a>:</td><td> </td><td valign="top"><a href="#verbatim">verbatim</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-package_002c-multind"><span class="roman">package</span>, <code>multind</code></a>:</td><td> </td><td valign="top"><a href="#Indexes">Indexes</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-package_002c-picture"><span class="roman">package</span>, <code>picture</code></a>:</td><td> </td><td valign="top"><a href="#picture">picture</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-package_002c-pict2e"><span class="roman">package</span>, <code>pict2e</code></a>:</td><td> </td><td valign="top"><a href="#g_t_005cline">\line</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-package_002c-setspace"><span class="roman">package</span>, <code>setspace</code></a>:</td><td> </td><td valign="top"><a href="#Low_002dlevel-font-commands">Low-level font commands</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-package_002c-showidx"><span class="roman">package</span>, <code>showidx</code></a>:</td><td> </td><td valign="top"><a href="#Indexes">Indexes</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-package_002c-textcase"><span class="roman">package</span>, <code>textcase</code></a>:</td><td> </td><td valign="top"><a href="#Upper-and-lower-case">Upper and lower case</a></td></tr>
@@ -17845,7 +18100,7 @@
<tr><td></td><td valign="top"><a href="#index-period_002c-centered_002c-in-text">period, centered, in text</a>:</td><td> </td><td valign="top"><a href="#Text-symbols">Text symbols</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-pica">pica</a>:</td><td> </td><td valign="top"><a href="#Units-of-length">Units of length</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-pict2e-package"><code>pict2e</code> package</a>:</td><td> </td><td valign="top"><a href="#g_t_005cline">\line</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-picture-package"><code>picture</code> <span class="roman">package</span></a>:</td><td> </td><td valign="top"><a href="#picture">picture</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-pict2e-package-1"><code>pict2e</code> <span class="roman">package</span></a>:</td><td> </td><td valign="top"><a href="#g_t_005cline">\line</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-pictures_002c-creating">pictures, creating</a>:</td><td> </td><td valign="top"><a href="#picture">picture</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-pilcrow">pilcrow</a>:</td><td> </td><td valign="top"><a href="#Text-symbols">Text symbols</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-placement-of-floats">placement of floats</a>:</td><td> </td><td valign="top"><a href="#Floats">Floats</a></td></tr>
@@ -18511,6 +18766,7 @@
<tr><td></td><td valign="top"><a href="#index-_005cglossary"><code>\glossary</code></a>:</td><td> </td><td valign="top"><a href="#Glossaries">Glossaries</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-_005cglossaryentry"><code>\glossaryentry</code></a>:</td><td> </td><td valign="top"><a href="#Glossaries">Glossaries</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-_005cgraphicspath"><code>\graphicspath</code></a>:</td><td> </td><td valign="top"><a href="#g_t_005cgraphicspath">\graphicspath</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-_005cgraphpaper"><code>\graphpaper</code></a>:</td><td> </td><td valign="top"><a href="#g_t_005cgraphpaper">\graphpaper</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-_005cgrave"><code>\grave</code></a>:</td><td> </td><td valign="top"><a href="#Math-accents">Math accents</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-_005cguillemotleft-_0028_00ab_0029"><code>\guillemotleft <span class="roman">(«)</span></code></a>:</td><td> </td><td valign="top"><a href="#Text-symbols">Text symbols</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-_005cguillemotright-_0028_00bb_0029"><code>\guillemotright <span class="roman">(»)</span></code></a>:</td><td> </td><td valign="top"><a href="#Text-symbols">Text symbols</a></td></tr>
@@ -18820,6 +19076,7 @@
<tr><td></td><td valign="top"><a href="#index-_005cpsi"><code>\psi</code></a>:</td><td> </td><td valign="top"><a href="#Math-symbols">Math symbols</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-_005cpushtabs"><code>\pushtabs</code></a>:</td><td> </td><td valign="top"><a href="#tabbing">tabbing</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-_005cput"><code>\put</code></a>:</td><td> </td><td valign="top"><a href="#g_t_005cput">\put</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-_005cqbezier"><code>\qbezier</code></a>:</td><td> </td><td valign="top"><a href="#g_t_005cqbezier">\qbezier</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-_005cqquad"><code>\qquad</code></a>:</td><td> </td><td valign="top"><a href="#Spacing-in-math-mode">Spacing in math mode</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-_005cquad"><code>\quad</code></a>:</td><td> </td><td valign="top"><a href="#Spacing-in-math-mode">Spacing in math mode</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-_005cquotedblbase-_0028_201e_0029"><code>\quotedblbase <span class="roman">(„)</span></code></a>:</td><td> </td><td valign="top"><a href="#Text-symbols">Text symbols</a></td></tr>
@@ -19228,7 +19485,7 @@
<tr><td></td><td valign="top"><a href="#index-letter-environment"><code><code>letter</code> <span class="roman">environment</span></code></a>:</td><td> </td><td valign="top"><a href="#letter">letter</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-letterpaper-option"><code>letterpaper <span class="roman">option</span></code></a>:</td><td> </td><td valign="top"><a href="#Document-class-options">Document class options</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-list-environment"><code><code>list</code> <span class="roman">environment</span></code></a>:</td><td> </td><td valign="top"><a href="#list">list</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-lR-box"><code>lR box</code></a>:</td><td> </td><td valign="top"><a href="#picture">picture</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-LR-box"><code>LR box</code></a>:</td><td> </td><td valign="top"><a href="#picture">picture</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-lrbox"><code>lrbox</code></a>:</td><td> </td><td valign="top"><a href="#lrbox">lrbox</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-lshort-document"><code>lshort <span class="roman">document</span></code></a>:</td><td> </td><td valign="top"><a href="#About-this-document">About this document</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-lualatex-command"><code>lualatex <span class="roman">command</span></code></a>:</td><td> </td><td valign="top"><a href="#TeX-engines">TeX engines</a></td></tr>
Modified: trunk/latex2e.info
===================================================================
--- trunk/latex2e.info 2018-05-25 12:57:27 UTC (rev 630)
+++ trunk/latex2e.info 2018-05-28 20:44:46 UTC (rev 631)
@@ -3733,19 +3733,23 @@
Synopses:
\begin{picture}(WIDTH,HEIGHT)
- ... PICTURE COMMANDS ...
+ PICTURE COMMANDS
\end{picture}
or
\begin{picture}(WIDTH,HEIGHT)(XOFFSET,YOFFSET)
- ... PICTURE COMMANDS ...
+ PICTURE COMMANDS
\end{picture}
- The 'picture' environment allows you to create simple pictures
-containing lines, arrows, boxes, circles, and text. This illustrates
-the parallelogram law for adding vectors.
+ An environment to create simple pictures containing lines, arrows,
+boxes, circles, and text. (While this environment is not obsolete, new
+documents typically use much more powerful graphics creation systems,
+such as 'TikZ', 'PSTricks', 'MetaPost', or 'Asymptote'. These are not
+covered in this document; see CTAN.)
+ This shows the parallelogram law for adding vectors.
+
\setlength{\unitlength}{1cm}
\begin{picture}(6,6) % picture box will be 6cm wide by 6cm tall
\put(0,0){\vector(2,1){4}} % for every 2 over this vector goes 1 up
@@ -3763,12 +3767,17 @@
...
\begin{center}
\setlength{\unitlength}{\textwidth}
- \begin{picture}(1,1) % picture put in box textwidth wide and tall
+ \begin{picture}(1,1) % leave space for picture, \textwidth wide and tall
\put(0,0){\includegraphics[width=\textwidth]{desertedisland.jpg}}
\put(0.25,0.35){\textcolor{red}{X Treasure here}}
\end{picture}
\end{center}
+ The red X will be precisely a quarter of the '\linewidth' from the
+left margin, and '0.35\linewidth' up from the bottom. Another example
+of this usage is to put similar code in the page header to get repeat
+material on each of a document's pages.
+
The 'picture' environment has one required argument, a pair of
numbers (WIDTH,HEIGHT). Multiply these by the value '\unitlength' to
get the size of the box that LaTeX places on the output page. This box
@@ -3793,7 +3802,7 @@
picture by shifting everything, you can just add the appropriate
optional argument.
- The PICTURE COMMANDS tell LaTeX where to put something by naming its
+ Each PICTURE COMMAND tells LaTeX where to put something by naming its
position. A "position" is a pair such as '(2.4,-5)' giving the x- and
y-coordinates. A "coordinate" is a not a length, it is a real number
(it may have a decimal point or a minus sign). It specifies a length in
@@ -3813,282 +3822,476 @@
some compute graphics settings, larger y-coordinates are further up the
page.
- The most often used way to put things in a picture is the '\put'
-command. The command
+ There are four ways to put things in a picture: '\put', '\multiput',
+'qbezier', and 'graphpaper'. The most often used is '\put'. This
- \put(11.3,-.3){...}
+ \put(11.3,-0.3){...}
-places the object in the picture with its reference point at coordinates
-(11.3,-.3). The reference points for various objects will be described
-below. The '\put' command creates an "LR box". Anything that can go in
-an '\mbox' (*note \mbox::) can go in the text argument of the '\put'
-command. When you do this, the reference point will be the lower left
-corner of the box.
+places the object with its reference point at coordinates (11.3,-0.3).
+The reference points for various objects will be described below. The
+'\put' command creates an "LR box". Anything that can go in an '\mbox'
+(*note \mbox::) can go in the text argument of the '\put' command. The
+reference point will be the lower left corner of the box. In this
+picture
- The 'picture' package redefines the 'picture' environment so that
-everywhere a number is used in PICTURE COMMANDS to specify a coordinate,
-one can use alternatively a length. Be aware however that this will
-prevent scaling those lengths by changing '\unitlength'.
+ \setlength{\unitlength}{1cm}
+ ...\begin{picture}(1,1)
+ \put(0,0){\line(1,0){1}}
+ \put(0,0){\line(1,1){1}}
+ \end{picture}
- The 'picture' commands are described in the following sections.
+ the three dots are just slightly left of the point of the angle
+formed by the two lines. (Also, '\line(1,1){1}' does not call for a
+line of length one; rather the line has a change in the x coordinate of
+1.)
+ The '\multiput', 'qbezier', and 'graphpaper' commands are described
+below.
+
+ This draws a rectangle with a wavy top, using '\qbezier' for that
+curve.
+
+ \begin{picture}(3,1.5)
+ \put(0,0){\vector(1,0){8}} % x axis
+ \put(0,0){\vector(0,1){4}} % y axis
+ \put(2,0){\line(0,1){3}} % left side rectangle
+ \put(4,0){\line(0,1){3.5}} % right side
+ \qbezier(2,3)(2.5,2.9)(3,3.25)
+ \qbezier(3,3.25)(3.5,3.6)(4,3.5)
+ \thicklines % below here, lines are twice as thick
+ \put(2,3){\line(4,1){2}}
+ \put(4.5,2.5){\framebox{Trapezoidal Rule}}
+ \end{picture}
+
* Menu:
+* \put:: Place an object at a specified place.
+* \multiput:: Draw multiple instances of an object.
+* \qbezier:: Draw a quadratic Bezier curve.
+* \graphpaper:: Draw graph paper.
+* \line:: Draw a straight line.
+* \linethickness:: Set thickness of horizontal and vertical lines.
+* \thinlines:: The default line thickness.
+* \thicklines:: A heavier line thickness.
* \circle:: Draw a circle.
+* \oval:: Draw an oval.
+* \shortstack:: Make a stack of objects.
+* \vector:: Draw a line with an arrow.
* \makebox (picture):: Draw a box of the specified size.
* \framebox (picture):: Draw a box with a frame around it.
+* \frame:: Draw a frame around an object.
* \dashbox:: Draw a dashed box.
-* \frame:: Draw a frame around an object.
-* \line:: Draw a straight line.
-* \linethickness:: Set the line thickness.
-* \thicklines:: A heavier line thickness.
-* \thinlines:: The default line thickness.
-* \multiput:: Draw multiple instances of an object.
-* \oval:: Draw an ellipse.
-* \put:: Place an object at a specified place.
-* \shortstack:: Make a pile of objects.
-* \vector:: Draw a line with an arrow.
-File: latex2e.info, Node: \circle, Next: \makebox (picture), Up: picture
+File: latex2e.info, Node: \put, Next: \multiput, Up: picture
-8.19.1 '\circle'
-----------------
+8.19.1 '\put'
+-------------
Synopsis:
- \circle{DIAMETER}
- \circle*{DIAMETER}
+ \put(XCOORD,YCOORD){CONTENT}
- Produces a circle with a diameter as close to the specified one as
-possible. The '*'-form of the command draws a filled-in circle.
+ Place CONTENT at the coordinate (XCOORD,YCOORD). See the discussion
+of coordinates and '\unitlength' in *note picture::.
- Circles up to 40pt can be drawn.
+ This includes the text into the 'picture'.
+ \put(4.5,2.5){Apply the \textit{unpoke} move}
+
+ The reference point, the location (4.5,2.5), is the lower left of the
+text, at the bottom left of the 'A'.
+
-File: latex2e.info, Node: \makebox (picture), Next: \framebox (picture), Prev: \circle, Up: picture
+File: latex2e.info, Node: \multiput, Next: \qbezier, Prev: \put, Up: picture
-8.19.2 '\makebox'
------------------
+8.19.2 '\multiput'
+------------------
Synopsis:
- \makebox(WIDTH,HEIGHT)[POSITION]{TEXT}
+ \multiput(X,Y)(DELTA_X,DELTA_Y){N}{OBJ}
- The '\makebox' command for the picture environment is similar to the
-normal '\makebox' command except that you must specify a WIDTH and
-HEIGHT in multiples of '\unitlength'.
+ Copy OBJ a total of N times, with an increment of DELTA_X,DELTA_Y.
+The OBJ first appears at position (x,y), then at
+(x+\delta_x,y+\delta_y), and so on.
- The optional argument, '[POSITION]', specifies the quadrant that your
-TEXT appears in. You may select up to two of the following:
+ This draws a simple grid with every fifth line bolded (see also *note
+\graphpaper::).
-'t'
- Moves the item to the top of the rectangle.
+ \begin{picture}(10,10)
+ \linethickness{0.05mm}
+ \multiput(0,0)(1,0){10}{\line(0,1){10}}
+ \multiput(0,0)(0,1){10}{\line(1,0){10}}
+ \linethickness{0.5mm}
+ \multiput(0,0)(5,0){3}{\line(0,1){10}}
+ \multiput(0,0)(0,5){3}{\line(1,0){10}}
+ \end{picture}
-'b'
- Moves the item to the bottom.
+
+File: latex2e.info, Node: \qbezier, Next: \graphpaper, Prev: \multiput, Up: picture
-'l'
- Moves the item to the left.
+8.19.3 '\qbezier'
+-----------------
-'r'
- Moves the item to the right.
+Synopsis:
- *Note \makebox::.
+ \qbezier(X1,Y1)(X2,Y2)(X3,Y3)
+ \qbezier[NUM](X1,Y1)(X2,Y2)(X3,Y3)
-
-File: latex2e.info, Node: \framebox (picture), Next: \dashbox, Prev: \makebox (picture), Up: picture
+ Draw a quadratic Bezier curve whose control points are given by the
+three required arguments '(X1,Y1)', '(X2,Y2)', and '(X3,Y3)'. That is,
+the curve runs from (X1,Y1) to (X3,Y3), is quadratic, and is such that
+the tangent line at (X1,Y1) passes through (X2,Y2), as does the tangent
+line at (X3,Y3).
-8.19.3 '\framebox'
-------------------
+ This draws a curve from the coordinate (1,1) to (1,0).
-Synopsis:
+ \qbezier(1,1)(1.25,0.75)(1,0)
- \framebox(WIDTH,HEIGHT)[POS]{...}
+ The curve's tangent line at (1,1) contains (1.25,0.75), as does the
+curve's tangent line at (1,0).
- The '\framebox' command is like '\makebox' (see previous section),
-except that it puts a frame around the outside of the box that it
-creates.
+ The optional argument NUM gives the number of calculated intermediate
+points. The default is to draw a smooth curve whose maximum number of
+points is '\qbeziermax' (change this value with '\renewcommand').
- The '\framebox' command produces a rule of thickness '\fboxrule', and
-leaves a space '\fboxsep' between the rule and the contents of the box.
-
-File: latex2e.info, Node: \dashbox, Next: \frame, Prev: \framebox (picture), Up: picture
+File: latex2e.info, Node: \graphpaper, Next: \line, Prev: \qbezier, Up: picture
-8.19.4 '\dashbox'
------------------
+8.19.4 '\graphpaper'
+--------------------
-Draws a box with a dashed line. Synopsis:
+Synopsis:
- \dashbox{DLEN}(RWIDTH,RHEIGHT)[POS]{TEXT}
+ \graphpaper(X_INIT,Y_INIT)(X_DIMEN,Y_DIMEN)
+ \graphpaper[SPACING](X_INIT,Y_INIT)(X_DIMEN,Y_DIMEN)
- '\dashbox' creates a dashed rectangle around TEXT in a 'picture'
-environment. Dashes are DLEN units long, and the rectangle has overall
-width RWIDTH and height RHEIGHT. The TEXT is positioned at optional
-POS.
+ Draw a coordinate grid. Requires the 'graphpap' package. The grid's
+origin is '(X_INIT,Y_INIT)'. Grid lines come every SPACING units (the
+default is 10). The grid extends X_DIMEN units to the right and Y_DIMEN
+units up. All arguments must be positive integers.
- A dashed box looks best when the RWIDTH and RHEIGHT are multiples of
-the DLEN.
+ This make a grid with seven vertical lines and eleven horizontal
+lines.
+ \usepackage{graphpap} % in preamble
+ ...
+ \begin{picture}(6,20) % in document body
+ \graphpaper[2](0,0)(12,20)
+ \end{picture}
+
+ The lines are numbered every ten units.
+
-File: latex2e.info, Node: \frame, Next: \line, Prev: \dashbox, Up: picture
+File: latex2e.info, Node: \line, Next: \linethickness, Prev: \graphpaper, Up: picture
-8.19.5 '\frame'
----------------
+8.19.5 '\line'
+--------------
Synopsis:
- \frame{TEXT}
+ \line(X_RUN,Y_RISE){TRAVEL}
- The '\frame' command puts a rectangular frame around TEXT. The
-reference point is the bottom left corner of the frame. No extra space
-is put between the frame and the object.
+ Draw a line. It slopes such that it vertically rises Y_RISE for
+every horizontal X_RUN, and such that the total horizontal change is
+TRAVEL. In the special case of vertical lines, if (X_RUN,Y_RISE)=(0,1),
+then TRAVEL gives the change in y.
-
-File: latex2e.info, Node: \line, Next: \linethickness, Prev: \frame, Up: picture
+ This draws a line starting at coordinates (1,3).
-8.19.6 '\line'
---------------
+ \put(1,3){\line(2,5){4}}
-Synopsis:
+ For every over 2, this line will go up 5. Because TRAVEL specifies
+that this goes over 4, it must go up 10. Thus its endpoint is
+(1,3)+(4,10)=(5,13). In particular, note that TRAVEL=4 is not the
+length of the line, it is the change in x.
- \line(XSLOPE,YSLOPE){LENGTH}
+ The arguments X_RUN and Y_RISE are integers that can be positive,
+negative, or zero. (If both are 0 then LaTeX treats the second as 1.)
+With '\put(X_INIT,Y_INIT){\line(X_RUN,Y_RISE){TRAVEL}}', if X_RUN is
+negative then the line's ending point has a first coordinate that is
+less than X_INIT. If Y_RISE is negative then the line's ending point
+has a second coordinate that is less than Y_INIT.
- The '\line' command draws a line with the given LENGTH and slope
-XSLOPE/YSLOPE.
+ If TRAVEL is negative then you get 'LaTeX Error: Bad \line or \vector
+argument.'
- Standard LaTeX can only draw lines with SLOPE = x/y, where x and y
-have integer values from -6 through 6. For lines of any slope, and
-plenty of other shapes, see 'pict2e' and many other packages on CTAN.
+ Standard LaTeX can only draw lines with a limited range of slopes
+because these lines are made by putting together line segments from
+pre-made fonts. The two numbers X_RUN and Y_RISE must have integer
+values from -6 through 6. Also, they must be relatively prime, so that
+(X_RUN,Y_RISE) can be (2,1) but not (4,2) (if you choose the latter then
+instead of lines you get sequences of arrowheads; the solution is to
+switch to the former). To get lines of arbitrary slope, and plenty of
+other shapes, see 'pict2e' and many other packages on CTAN.
-File: latex2e.info, Node: \linethickness, Next: \thicklines, Prev: \line, Up: picture
+File: latex2e.info, Node: \linethickness, Next: \thinlines, Prev: \line, Up: picture
-8.19.7 '\linethickness'
+8.19.6 '\linethickness'
-----------------------
-The '\linethickness{DIM}' command declares the thickness of horizontal
-and vertical lines in a picture environment to be DIM, which must be a
-positive length.
+Synopsis:
- '\linethickness' does not affect the thickness of slanted lines,
-circles, or the quarter circles drawn by '\oval'.
+ \linethickness{DIM}
+ Declares the thickness of subsequent horizontal and vertical lines in
+a picture to be DIM, which must be a positive length (*note Lengths::).
+It differs from '\thinlines' and '\thicklines' in that it does not
+affect the thickness of slanted lines, circles, or ovals.
+
-File: latex2e.info, Node: \thicklines, Next: \thinlines, Prev: \linethickness, Up: picture
+File: latex2e.info, Node: \thinlines, Next: \thicklines, Prev: \linethickness, Up: picture
-8.19.8 '\thicklines'
---------------------
+8.19.7 '\thinlines'
+-------------------
-The '\thicklines' command is an alternate line thickness for horizontal
-and vertical lines in a picture environment; cf. *note \linethickness::
-and *note \thinlines::.
+Declaration to set the thickness of subsequent lines, circles, and ovals
+in a picture environment to be 0.4pt. This is the default thickness, so
+this command is unnecessary unless the thickness has been changed with
+either *note \linethickness:: or *note \thicklines::.
-File: latex2e.info, Node: \thinlines, Next: \multiput, Prev: \thicklines, Up: picture
+File: latex2e.info, Node: \thicklines, Next: \circle, Prev: \thinlines, Up: picture
-8.19.9 '\thinlines'
--------------------
+8.19.8 '\thicklines'
+--------------------
-The '\thinlines' command is the default line thickness for horizontal
-and vertical lines in a picture environment; cf. *note \linethickness::
-and *note \thicklines::.
+Declaration to set the thickness of subsequent lines, circles, and ovals
+in a picture environment to be 0.8pt. See also *note \linethickness::
+and *note \thinlines::. This command is illustrated in the Trapezoidal
+Rule example of *note picture::.
-File: latex2e.info, Node: \multiput, Next: \oval, Prev: \thinlines, Up: picture
+File: latex2e.info, Node: \circle, Next: \oval, Prev: \thicklines, Up: picture
-8.19.10 '\multiput'
--------------------
+8.19.9 '\circle'
+----------------
Synopsis:
- \multiput(X,Y)(DELTA_X,DELTA_Y){N}{OBJ}
+ \circle{DIAMETER}
+ \circle*{DIAMETER}
- The '\multiput' command copies the object OBJ in a regular pattern
-across a picture. OBJ is first placed at position (x,y), then at
-(x+\delta x,y+\delta y), and so on, N times.
+ Produces a circle with a diameter as close as possible to the
+specified one. The '*' form produces a filled-in circle.
+ This draws a circle of radius 6, centered at '(5,7)'.
+
+ \put(5,7){\circle{6}}
+
+ The available radiuses for 'circle' are, in points, the even numbers
+from 2 to 20, inclusive. For 'circle*' they are all the integers from 1
+to 15.
+
-File: latex2e.info, Node: \oval, Next: \put, Prev: \multiput, Up: picture
+File: latex2e.info, Node: \oval, Next: \shortstack, Prev: \circle, Up: picture
-8.19.11 '\oval'
+8.19.10 '\oval'
---------------
Synopsis:
+ \oval(WIDTH,HEIGHT)
\oval(WIDTH,HEIGHT)[PORTION]
- The '\oval' command produces a rectangle with rounded corners. The
-optional argument PORTION allows you to produce only half of the oval
-via the following:
+ Produce a rectangle with rounded corners. The optional argument
+PORTION allows you to produce only half or a quarter of the oval. For
+half an oval take PORTION to be one of these.
't'
- selects the top half;
+ top half
'b'
- selects the bottom half;
+ bottom half
'r'
- selects the right half;
+ right half
'l'
- selects the left half.
+ left half
- It is also possible to produce only one quarter of the oval by
-setting PORTION to 'tr', 'br', 'bl', or 'tl'.
+ Produce only one quarter of the oval by setting PORTION to 'tr',
+'br', 'bl', or 'tl'.
- The "corners" of the oval are made with quarter circles with a
-maximum radius of 20pt, so large "ovals" will look more like boxes with
-rounded corners.
+ This draws the top half of an oval that is 3 wide and 7 tall.
+ \put(5,7){\oval(3,7)[t]}
+
+ The (5,7) is the center of the entire oval, not just the center of
+the top half.
+
+ These shapes are not ellipses. They are rectangles whose corners are
+made with quarter circles. These circles have a maximum radius of 20pt
+(*note \circle:: for the sizes). Thus large ovals are just boxes with a
+small amount of corner rounding.
+
-File: latex2e.info, Node: \put, Next: \shortstack, Prev: \oval, Up: picture
+File: latex2e.info, Node: \shortstack, Next: \vector, Prev: \oval, Up: picture
-8.19.12 '\put'
---------------
+8.19.11 '\shortstack'
+---------------------
Synopsis:
- \put(XCOORD,YCOORD){ ... }
+ \shortstack[POSITION]{LINE 1 \\ LINE 2 \\ ... }
- The '\put' command places the material specified by the (mandatory)
-argument in braces at the given coordinate, (XCOORD,YCOORD).
+ Produce a vertical stack of objects.
-
-File: latex2e.info, Node: \shortstack, Next: \vector, Prev: \put, Up: picture
+ This labels the y axis.
-8.19.13 '\shortstack'
----------------------
+ \put(0,0){\vector(1,0){4}} % x axis
+ \put(0,0){\vector(0,1){2}} % y
+ \put(-0.25,2){\makebox[0][r]{\shortstack[r]{$y$\\ axis}}}
-Synopsis:
+For a short stack, the reference point is the lower left of the stack.
+In this example the *note \makebox:: puts the stack flush right in a
+zero width box so in total the short stack sits slightly to the left of
+the y axis.
- \shortstack[POSITION]{...\\...\\...}
+ The valid positions are:
- The '\shortstack' command produces a stack of objects. The valid
-positions are:
-
'r'
- Move the objects to the right of the stack.
+ Make objects flush right
'l'
- Move the objects to the left of the stack
+ Make objects flush left
'c'
- Move the objects to the centre of the stack (default)
+ Center objects (default)
- Objects are separated with '\\'.
+ Separate objects into lines with '\\'. These stacks are short in
+that, unlike in a 'tabular' or 'array' environment, here the rows are
+not spaced out to be of even heights. Thus, in
+'\shortstack{X\\o\\o\\X}' the first and last rows are taller than the
+middle two. You can adjust row heights either by putting in the usual
+interline spacing with '\shortstack{X\\ \strut o\\o\\X}', or by hand,
+via an explicit zero-width box '\shortstack{X \\ \rule{0pt}{12pt}
+o\\o\\X}' or by using '\\''s optional argument '\shortstack{X\\[2pt]
+o\\o\\X}'.
+ The '\shortstack' command is also available outside the 'picture'
+environment.
+
-File: latex2e.info, Node: \vector, Prev: \shortstack, Up: picture
+File: latex2e.info, Node: \vector, Next: \makebox (picture), Prev: \shortstack, Up: picture
-8.19.14 '\vector'
+8.19.12 '\vector'
-----------------
Synopsis:
- \vector(XSLOPE,YSLOPE){LENGTH}
+ \vector(X_RUN,Y_RISE){TRAVEL}
- The '\vector' command draws a line with an arrow of the specified
-length and slope. The XSLOPE and YSLOPE values must lie between -4 and
-+4, inclusive.
+ Draw a line ending in an arrow. It slopes such that it vertically
+rises Y_RISE for every horizontal X_RUN, and such that the total
+horizontal change is TRAVEL. In the special case of vertical vectors,
+if (X_RUN,Y_RISE)=(0,1), then TRAVEL gives the change in y.
+ For an example see *note picture::.
+
+ For elaboration on X_RUN and Y_RISE see *note \line::. As there, the
+values of X_RUN and Y_RISE are limited. You must chooses integers
+between -4 and 4, inclusive. Also, the two you choose must be
+relatively prime. Thus, '\vector(2,1){4}' is acceptable but
+'\vector(4,2){4}' is not (if you use the latter then you get a sequence
+of arrowheads).
+
+File: latex2e.info, Node: \makebox (picture), Next: \framebox (picture), Prev: \vector, Up: picture
+
+8.19.13 '\makebox' (picture)
+----------------------------
+
+Synopsis:
+
+ \makebox(WIDTH,HEIGHT){TEXT}
+ \makebox(WIDTH,HEIGHT)[POSITION]{TEXT}
+
+ Similar to the normal '\makebox' command (*note \makebox::) except
+that you must specify a WIDTH and HEIGHT, which you give in multiples of
+'\unitlength'. *Note picture:: for the discussion of '\unitlength'.
+
+ This makes a box of length 3 times '\unitlength' and height 4 times
+'\unitlength'.
+
+ \put(1,2){\makebox(3,4){...}}
+
+ Its contents will be right justified in that box.
+
+ The optional 'POSITION' specifies the quadrant in which your TEXT
+appears. Use up to two of these:
+
+'t'
+ Moves the item to the top of the rectangle.
+
+'b'
+ Moves the item to the bottom.
+
+'l'
+ Moves the item to the left.
+
+'r'
+ Moves the item to the right.
+
+
+File: latex2e.info, Node: \framebox (picture), Next: \frame, Prev: \makebox (picture), Up: picture
+
+8.19.14 '\framebox' (picture)
+-----------------------------
+
+Synopsis:
+
+ \framebox(WIDTH,HEIGHT){...}
+ \framebox(WIDTH,HEIGHT)[POSITION]{...}
+
+ Like *note \makebox (picture):: except that it puts a frame around
+the outside of the box that it creates. The reference point is the
+bottom left corner of the frame. The rule has thickness '\fboxrule' and
+there is a blank space '\fboxsep' between the frame and the contents of
+the box.
+
+ For this command, you must specify the WIDTH and HEIGHT. If you want
+to just put a frame around some contents whose dimenstion is determined
+in some other way then either use '\fbox' (*note \fbox and \framebox::)
+or '\frame' (*note \frame::).
+
+
+File: latex2e.info, Node: \frame, Next: \dashbox, Prev: \framebox (picture), Up: picture
+
+8.19.15 '\frame'
+----------------
+
+Synopsis:
+
+ \frame{CONTENTS}
+
+ Puts a rectangular frame around CONTENTS. The reference point is the
+bottom left corner of the frame. In contrast to '\fbox' (*note \fbox
+and \framebox::), this command puts no extra space is put between the
+frame and the object.
+
+
+File: latex2e.info, Node: \dashbox, Prev: \frame, Up: picture
+
+8.19.16 '\dashbox'
+------------------
+
+Synopsis:
+
+ \dashbox{DLEN}(RWIDTH,RHEIGHT){TEXT}
+ \dashbox{DLEN}(RWIDTH,RHEIGHT)[POSITION]{TEXT}
+
+ Create a dashed rectangle around TEXT in a 'picture' environment.
+Dashes are DLEN units long and the rectangle has overall width RWIDTH
+and height RHEIGHT. The TEXT is positioned according to the optional
+POSITION; see *note \makebox (picture):: for the values that POSITION
+can take.
+
+ This shows that you can use non-integer DLEN.
+
+ \put(0,0){\dashbox{0.1}(5,0.5){My hovercraft is full of eels.}}
+
+ As in that example, a dashed box looks best when the RWIDTH and
+RHEIGHT are multiples of the DLEN.
+
+
File: latex2e.info, Node: quotation & quote, Next: tabbing, Prev: picture, Up: Environments
8.20 'quotation' & 'quote'
@@ -5352,7 +5555,8 @@
LaTeX's default puts many restrictions on where you can use a
'\footnote'; for instance, you cannot use it in an argument to a
sectioning command such as '\chapter' (it can only be used in outer
-paragraph mode). There are some workarounds; see following sections.
+paragraph mode; *note Modes::). There are some workarounds; see
+following sections.
In a 'minipage' environment the '\footnote' command uses the
'mpfootnote' counter instead of the 'footnote' counter, so they are
@@ -9065,7 +9269,7 @@
commands of this chapter. Two that use a programming language are
Asymptote and MetaPost. One that uses a graphical interface is Xfig.
Full description of these systems is outside the scope of this document;
-see their documentation.
+see their documentation on CTAN.
* Menu:
@@ -9528,7 +9732,7 @@
it.
'angle'
- Rotate the picture. The angle is taken in degrees and
+ Rotate the graphic. The angle is taken in degrees and
counterclockwise. The graphic is rotated about its 'origin'; see
that option. For a complete description of how rotated material is
typeset, *note \rotatebox::.
@@ -11539,7 +11743,7 @@
* footnote parameters: Footnote parameters. (line 6)
* footnotes in figures: minipage. (line 112)
* footnotes, creating: Footnotes. (line 6)
-* Footnotes, in a minipage: \footnote. (line 35)
+* Footnotes, in a minipage: \footnote. (line 36)
* Footnotes, in a table: Footnotes in a table.
(line 6)
* footnotes, in section headings: Footnotes in section headings.
@@ -11574,7 +11778,7 @@
(line 6)
* graphics package options: Graphics package options.
(line 6)
-* graphics packages: \line. (line 13)
+* graphics packages: \line. (line 35)
* graphics, resizing: \scalebox. (line 6)
* graphics, resizing <1>: \resizebox. (line 6)
* graphics, scaling: \scalebox. (line 6)
@@ -11736,7 +11940,7 @@
* modes: Modes. (line 6)
* monospace font: Font styles. (line 92)
* moving arguments: \protect. (line 19)
-* mpfootnote counter: \footnote. (line 35)
+* mpfootnote counter: \footnote. (line 36)
* mu, math unit: Units of length. (line 49)
* multicolumn text: \twocolumn. (line 6)
* multilingual support: Accents. (line 6)
@@ -11834,7 +12038,7 @@
* package, minted: tabbing. (line 145)
* package, minted <1>: verbatim. (line 31)
* package, multind: Indexes. (line 39)
-* package, picture: picture. (line 100)
+* package, pict2e: \line. (line 35)
* package, setspace: Low-level font commands.
(line 118)
* package, showidx: Indexes. (line 35)
@@ -11875,8 +12079,8 @@
* pdfTeX engine: TeX engines. (line 12)
* period, centered, in text: Text symbols. (line 138)
* pica: Units of length. (line 14)
-* pict2e package: \line. (line 13)
-* picture package: picture. (line 100)
+* pict2e package: \line. (line 35)
+* pict2e package <1>: \line. (line 35)
* pictures, creating: picture. (line 6)
* pilcrow: Text symbols. (line 44)
* placement of floats: Floats. (line 31)
@@ -11889,7 +12093,7 @@
(line 36)
* portrait orientation: Document class options.
(line 60)
-* position, in picture: picture. (line 68)
+* position, in picture: picture. (line 77)
* positional parameter: \newcommand & \renewcommand.
(line 41)
* postscript, in letters: \ps. (line 6)
@@ -12427,9 +12631,9 @@
* \exp: Math functions. (line 48)
* \extracolsep: tabular. (line 115)
* \fbox: \fbox and \framebox. (line 6)
-* \fboxrule: \framebox (picture). (line 14)
+* \fboxrule: \framebox (picture). (line 13)
* \fboxrule <1>: \fbox and \framebox. (line 18)
-* \fboxsep: \framebox (picture). (line 14)
+* \fboxsep: \framebox (picture). (line 13)
* \fboxsep <1>: \fbox and \framebox. (line 18)
* \fill: \hfill. (line 9)
* \flat: Math symbols. (line 216)
@@ -12480,6 +12684,7 @@
* \glossary: Glossaries. (line 8)
* \glossaryentry: Glossaries. (line 11)
* \graphicspath: \graphicspath. (line 6)
+* \graphpaper: \graphpaper. (line 6)
* \grave: Math accents. (line 28)
* \guillemotleft (<<): Text symbols. (line 26)
* \guillemotright (>>): Text symbols. (line 27)
@@ -12855,6 +13060,7 @@
* \psi: Math symbols. (line 553)
* \pushtabs: tabbing. (line 116)
* \put: \put. (line 6)
+* \qbezier: \qbezier. (line 6)
* \qquad: Spacing in math mode.
(line 38)
* \quad: Spacing in math mode.
@@ -13102,7 +13308,7 @@
* \underbar: Accents. (line 89)
* \underbrace{MATH}: Math miscellany. (line 75)
* \underline{TEXT}: Math miscellany. (line 79)
-* \unitlength: picture. (line 17)
+* \unitlength: picture. (line 25)
* \unlhd: Math symbols. (line 756)
* \unrhd: Math symbols. (line 763)
* \Uparrow: Math symbols. (line 770)
@@ -13153,7 +13359,7 @@
* \\ (for center): center. (line 22)
* \\ (for eqnarray): eqnarray. (line 29)
* \\ (for flushright): flushright. (line 12)
-* \\ (for \shortstack objects): \shortstack. (line 20)
+* \\ (for \shortstack objects): \shortstack. (line 32)
* \\ (tabbing): tabbing. (line 66)
* \\ for flushleft: flushleft. (line 14)
* \\ for letters: Letters. (line 50)
@@ -13281,7 +13487,7 @@
* letterpaper option: Document class options.
(line 19)
* list environment: list. (line 6)
-* lR box: picture. (line 95)
+* LR box: picture. (line 103)
* lrbox: lrbox. (line 6)
* lshort document: About this document. (line 41)
* lualatex command: TeX engines. (line 29)
@@ -13411,196 +13617,198 @@
Node: math141603
Node: minipage141909
Node: picture146770
-Node: \circle151936
-Node: \makebox (picture)152282
-Node: \framebox (picture)152988
-Node: \dashbox153478
-Node: \frame154001
-Node: \line154327
-Node: \linethickness154785
-Node: \thicklines155206
-Node: \thinlines155516
-Node: \multiput155818
-Node: \oval156185
-Node: \put156906
-Node: \shortstack157197
-Node: \vector157671
-Node: quotation & quote157985
-Node: tabbing158884
-Node: table164889
-Node: tabular166913
-Node: \multicolumn174163
-Node: \vline178048
-Node: \cline179393
-Node: \hline180077
-Node: thebibliography180759
-Node: \bibitem182259
-Node: \cite183042
-Node: \nocite183577
-Node: Using BibTeX183843
-Node: theorem185352
-Node: titlepage186274
-Node: verbatim187547
-Node: \verb189058
-Node: verse190528
-Node: Line breaking191256
-Node: \\192353
-Node: \obeycr & \restorecr193391
-Node: \newline193793
-Node: \- (hyphenation)194627
-Node: \discretionary195242
-Node: \fussy195534
-Node: \sloppy195924
-Node: \hyphenation196251
-Node: \linebreak & \nolinebreak196876
-Node: Page breaking197528
-Node: \cleardoublepage198136
-Node: \clearpage198565
-Node: \newpage198862
-Node: \enlargethispage199093
-Node: \pagebreak & \nopagebreak199620
-Node: Footnotes200314
-Node: \footnote201568
-Node: \footnotemark203364
-Node: \footnotetext204608
-Node: Footnotes in a table205098
-Node: Footnotes in section headings206955
-Node: Footnotes of footnotes207811
-Node: Multiple reference to footnotes208578
-Node: Footnote parameters209436
-Node: Definitions210186
-Node: \newcommand & \renewcommand211063
-Node: \providecommand215309
-Node: \newcounter215970
-Node: \newlength217121
-Node: \newsavebox217767
-Node: \newenvironment & \renewenvironment218377
-Node: \newtheorem223108
-Node: \newfont226581
-Node: \protect227876
-Node: \ignorespaces & \ignorespacesafterend230262
-Node: Counters233011
-Node: \alph \Alph \arabic \roman \Roman \fnsymbol234684
-Node: \usecounter237513
-Node: \value238376
-Node: \setcounter239305
-Node: \addtocounter239907
-Node: \refstepcounter240372
-Node: \stepcounter241030
-Node: \day \month \year241372
-Node: Lengths241917
-Node: Units of length243707
-Node: \setlength245201
-Node: \addtolength245605
-Node: \settodepth245923
-Node: \settoheight246214
-Node: \settowidth246511
-Node: Predefined lengths246819
-Node: Making paragraphs247334
-Node: \indent247906
-Node: \noindent248368
-Node: \parskip248877
-Node: Marginal notes249135
-Node: Math formulas250947
-Node: Subscripts & superscripts252731
-Node: Math symbols254069
-Node: Math functions279398
-Node: Math accents280341
-Node: Spacing in math mode281313
-Node: Math miscellany282780
-Node: Modes285330
-Node: \ensuremath287170
-Node: Page styles288086
-Node: \maketitle288580
-Node: \pagenumbering289650
-Node: \pagestyle290146
-Node: \thispagestyle291287
-Node: Spaces291593
-Node: \hspace292463
-Node: \hfill293418
-Node: \spacefactor293810
-Node: \(SPACE) and \@296522
-Ref: \AT296665
-Node: \frenchspacing298142
-Node: \normalsfcodes298758
-Node: \(SPACE) after control sequence298947
-Node: \thinspace299858
-Node: \/300178
-Node: \hrulefill \dotfill301360
-Node: \addvspace302353
-Node: \bigskip \medskip \smallskip303399
-Node: \vfill304291
-Node: \vspace305160
-Node: Boxes306153
-Node: \mbox306865
-Node: \fbox and \framebox307152
-Node: lrbox307956
-Node: \makebox308314
-Node: \parbox309034
-Node: \raisebox311145
-Node: \savebox311758
-Node: \sbox312173
-Node: \usebox312622
-Node: Color312883
-Node: Color package options313727
-Node: Color models315373
-Node: Commands for color317682
-Node: Define colors318097
-Node: Colored text318812
-Node: Colored boxes321187
-Node: Colored pages322626
-Node: Graphics323319
-Node: Graphics package options325438
-Node: Graphics package configuration328194
-Node: \graphicspath328996
-Node: \DeclareGraphicsExtensions331919
-Node: \DeclareGraphicsRule333716
-Node: Commands for graphics336905
-Node: \includegraphics337410
-Node: \rotatebox350379
-Node: \scalebox353174
-Node: \resizebox354226
-Node: Special insertions355418
-Node: Reserved characters356222
-Node: Upper and lower case357423
-Node: Symbols by font position359338
-Node: Text symbols359958
-Node: Accents363406
-Node: Additional Latin letters365948
-Ref: Non-English characters366119
-Node: \rule367136
-Node: \today367565
-Node: Splitting the input368319
-Node: \endinput369696
-Node: \include & \includeonly370963
-Node: \input374980
-Node: Front/back matter375688
-Node: Tables of contents375893
-Node: \addcontentsline376954
-Node: \addtocontents377972
-Node: Glossaries378505
-Node: Indexes379024
-Node: Letters380657
-Node: \address384335
-Node: \cc385205
-Node: \closing385623
-Node: \encl385934
-Node: \location386349
-Node: \makelabels386618
-Node: \name387619
-Node: \opening387849
-Node: \ps388189
-Node: \signature388478
-Node: \telephone389570
-Node: Terminal input/output389935
-Node: \typein390200
-Node: \typeout390785
-Node: Command line391408
-Node: Document templates392360
-Node: beamer template392767
-Node: book template393418
-Node: tugboat template393786
-Node: Concept Index396150
-Node: Command Index460437
+Node: \put153197
+Node: \multiput153675
+Node: \qbezier154394
+Node: \graphpaper155322
+Node: \line156119
+Node: \linethickness157898
+Node: \thinlines158347
+Node: \thicklines158758
+Node: \circle159142
+Node: \oval159685
+Node: \shortstack160664
+Node: \vector162058
+Node: \makebox (picture)162901
+Node: \framebox (picture)163822
+Node: \frame164620
+Node: \dashbox165021
+Node: quotation & quote165747
+Node: tabbing166646
+Node: table172651
+Node: tabular174675
+Node: \multicolumn181925
+Node: \vline185810
+Node: \cline187155
+Node: \hline187839
+Node: thebibliography188521
+Node: \bibitem190021
+Node: \cite190804
+Node: \nocite191339
+Node: Using BibTeX191605
+Node: theorem193114
+Node: titlepage194036
+Node: verbatim195309
+Node: \verb196820
+Node: verse198290
+Node: Line breaking199018
+Node: \\200115
+Node: \obeycr & \restorecr201153
+Node: \newline201555
+Node: \- (hyphenation)202389
+Node: \discretionary203004
+Node: \fussy203296
+Node: \sloppy203686
+Node: \hyphenation204013
+Node: \linebreak & \nolinebreak204638
+Node: Page breaking205290
+Node: \cleardoublepage205898
+Node: \clearpage206327
+Node: \newpage206624
+Node: \enlargethispage206855
+Node: \pagebreak & \nopagebreak207382
+Node: Footnotes208076
+Node: \footnote209330
+Node: \footnotemark211141
+Node: \footnotetext212385
+Node: Footnotes in a table212875
+Node: Footnotes in section headings214732
+Node: Footnotes of footnotes215588
+Node: Multiple reference to footnotes216355
+Node: Footnote parameters217213
+Node: Definitions217963
+Node: \newcommand & \renewcommand218840
+Node: \providecommand223086
+Node: \newcounter223747
+Node: \newlength224898
+Node: \newsavebox225544
+Node: \newenvironment & \renewenvironment226154
+Node: \newtheorem230885
+Node: \newfont234358
+Node: \protect235653
+Node: \ignorespaces & \ignorespacesafterend238039
+Node: Counters240788
+Node: \alph \Alph \arabic \roman \Roman \fnsymbol242461
+Node: \usecounter245290
+Node: \value246153
+Node: \setcounter247082
+Node: \addtocounter247684
+Node: \refstepcounter248149
+Node: \stepcounter248807
+Node: \day \month \year249149
+Node: Lengths249694
+Node: Units of length251484
+Node: \setlength252978
+Node: \addtolength253382
+Node: \settodepth253700
+Node: \settoheight253991
+Node: \settowidth254288
+Node: Predefined lengths254596
+Node: Making paragraphs255111
+Node: \indent255683
+Node: \noindent256145
+Node: \parskip256654
+Node: Marginal notes256912
+Node: Math formulas258724
+Node: Subscripts & superscripts260508
+Node: Math symbols261846
+Node: Math functions287175
+Node: Math accents288118
+Node: Spacing in math mode289090
+Node: Math miscellany290557
+Node: Modes293107
+Node: \ensuremath294947
+Node: Page styles295863
+Node: \maketitle296357
+Node: \pagenumbering297427
+Node: \pagestyle297923
+Node: \thispagestyle299064
+Node: Spaces299370
+Node: \hspace300240
+Node: \hfill301195
+Node: \spacefactor301587
+Node: \(SPACE) and \@304299
+Ref: \AT304442
+Node: \frenchspacing305919
+Node: \normalsfcodes306535
+Node: \(SPACE) after control sequence306724
+Node: \thinspace307635
+Node: \/307955
+Node: \hrulefill \dotfill309137
+Node: \addvspace310130
+Node: \bigskip \medskip \smallskip311176
+Node: \vfill312068
+Node: \vspace312937
+Node: Boxes313930
+Node: \mbox314642
+Node: \fbox and \framebox314929
+Node: lrbox315733
+Node: \makebox316091
+Node: \parbox316811
+Node: \raisebox318922
+Node: \savebox319535
+Node: \sbox319950
+Node: \usebox320399
+Node: Color320660
+Node: Color package options321504
+Node: Color models323150
+Node: Commands for color325459
+Node: Define colors325874
+Node: Colored text326589
+Node: Colored boxes328964
+Node: Colored pages330403
+Node: Graphics331096
+Node: Graphics package options333223
+Node: Graphics package configuration335979
+Node: \graphicspath336781
+Node: \DeclareGraphicsExtensions339704
+Node: \DeclareGraphicsRule341501
+Node: Commands for graphics344690
+Node: \includegraphics345195
+Node: \rotatebox358164
+Node: \scalebox360959
+Node: \resizebox362011
+Node: Special insertions363203
+Node: Reserved characters364007
+Node: Upper and lower case365208
+Node: Symbols by font position367123
+Node: Text symbols367743
+Node: Accents371191
+Node: Additional Latin letters373733
+Ref: Non-English characters373904
+Node: \rule374921
+Node: \today375350
+Node: Splitting the input376104
+Node: \endinput377481
+Node: \include & \includeonly378748
+Node: \input382765
+Node: Front/back matter383473
+Node: Tables of contents383678
+Node: \addcontentsline384739
+Node: \addtocontents385757
+Node: Glossaries386290
+Node: Indexes386809
+Node: Letters388442
+Node: \address392120
+Node: \cc392990
+Node: \closing393408
+Node: \encl393719
+Node: \location394134
+Node: \makelabels394403
+Node: \name395404
+Node: \opening395634
+Node: \ps395974
+Node: \signature396263
+Node: \telephone397355
+Node: Terminal input/output397720
+Node: \typein397985
+Node: \typeout398570
+Node: Command line399193
+Node: Document templates400145
+Node: beamer template400552
+Node: book template401203
+Node: tugboat template401571
+Node: Concept Index403935
+Node: Command Index468222
End Tag Table
Modified: trunk/latex2e.pdf
===================================================================
(Binary files differ)
Modified: trunk/latex2e.texi
===================================================================
--- trunk/latex2e.texi 2018-05-25 12:57:27 UTC (rev 630)
+++ trunk/latex2e.texi 2018-05-28 20:44:46 UTC (rev 631)
@@ -27,6 +27,7 @@
@c xx JH expand BiBTeX
@c xx JH expand theorem, AMS math
@c xx JH add something on code listings
+ at c xx JH \strut
@c
@c xx The typeset source2e has an index with all kernel
@c xx commands, though some are internal and shouldn't be included.
@@ -4705,7 +4706,7 @@
Synopses:
@example
\begin@{picture@}(@var{width}, at var{height})
- at dots{} @var{picture commands} @dots{}
+ @var{picture commands}
\end@{picture@}
@end example
@@ -4713,15 +4714,19 @@
@example
\begin@{picture@}(@var{width}, at var{height})(@var{xoffset}, at var{yoffset})
- at dots{} @var{picture commands} @dots{}
+ @var{picture commands}
\end@{picture@}
@end example
+An environment to create simple pictures containing lines, arrows,
+boxes, circles, and text. (While this environment is not obsolete, new
+documents typically use much more powerful graphics creation systems,
+such as @code{TikZ}, @code{PSTricks}, @code{MetaPost}, or
+ at code{Asymptote}. These are not covered in this document; see CTAN.)
+
+This shows the parallelogram law for adding vectors.
+
@findex \unitlength
-The @code{picture} environment allows you to create simple pictures
-containing lines, arrows, boxes, circles, and text. This illustrates
-the parallelogram law for adding vectors.
-
@example
\setlength@{\unitlength@}@{1cm@}
\begin@{picture@}(6,6) % picture box will be 6cm wide by 6cm tall
@@ -4742,13 +4747,18 @@
...
\begin@{center@}
\setlength@{\unitlength@}@{\textwidth@}
-\begin@{picture@}(1,1) % picture put in box textwidth wide and tall
+\begin@{picture@}(1,1) % leave space for picture, \textwidth wide and tall
\put(0,0)@{\includegraphics[width=\textwidth]@{desertedisland.jpg@}@}
\put(0.25,0.35)@{\textcolor@{red@}@{X Treasure here@}@}
\end@{picture@}
\end@{center@}
@end example
+The red at tie{}X will be precisely a quarter of the @code{\linewidth} from
+the left margin, and @code{0.35\linewidth} up from the bottom. Another
+example of this usage is to put similar code in the page header to get
+repeat material on each of a document's pages.
+
The @code{picture} environment has one required argument, a pair of
numbers (@var{width}, at var{height}). Multiply these by the value
@code{\unitlength} to get the size of the box that @LaTeX{} places on
@@ -4779,7 +4789,7 @@
add the appropriate optional argument.
@cindex position, in picture
-The @var{picture commands} tell @LaTeX{} where to put something by
+Each @var{picture command} tells @LaTeX{} where to put something by
naming its position. A @dfn{position} is a pair such as @code{(2.4,-5)}
giving the x- and y-coordinates. A @dfn{coordinate} is a not a length,
it is a real number (it may have a decimal point or a minus sign). It
@@ -4799,159 +4809,198 @@
unlike in some compute graphics settings, larger y-coordinates are
further up the page.
-The most often used way to put things in a picture is the @code{\put}
-command. The command
+There are four ways to put things in a picture: @code{\put},
+ at code{\multiput}, @code{qbezier}, and @code{graphpaper}. The most often
+used is @code{\put}. This
@example
-\put(11.3,-.3)@{...@}
+\put(11.3,-0.3)@{...@}
@end example
- at c xx JH wrong: multiput, qbezier
- at noindent places the object in the picture with its reference point at
-coordinates @math{(11.3,-.3)}. The reference points for various objects
-will be described below.
- at findex lR box
+ at noindent places the object with its reference point at
+coordinates @math{(11.3,-0.3)}. The reference points for various
+objects will be described below.
+ at findex LR box
The @code{\put} command creates an @dfn{LR box}. Anything that can go
in an @code{\mbox} (@pxref{\mbox}) can go in the text argument of the
- at code{\put} command. When you do this, the reference point will be the
-lower left corner of the box.
+ at code{\put} command. The reference point will be the lower left corner
+of the box. In this picture
- at PkgIndex{picture}
-The @code{picture} package redefines the @code{picture} environment so
-that everywhere a number is used in @var{picture commands} to specify
-a coordinate, one can use alternatively a length. Be aware however that
-this will prevent scaling those lengths by changing @code{\unitlength}.
+ at example
+\setlength@{\unitlength@}@{1cm@}
+...\begin@{picture@}(1,1)
+ \put(0,0)@{\line(1,0)@{1@}@}
+ \put(0,0)@{\line(1,1)@{1@}@}
+\end@{picture@}
+ at end example
-The @code{picture} commands are described in the following sections.
+the three dots are just slightly left of the point of the angle formed
+by the two lines. (Also, @code{\line(1,1)@{1@}} does not call for a
+line of length one; rather the line has a change in the x coordinate of
+1.)
+The @code{\multiput}, @code{qbezier}, and @code{graphpaper} commands are
+described below.
+
+This draws a rectangle with a wavy top, using @code{\qbezier} for
+that curve.
+
+ at example
+\begin@{picture@}(3,1.5)
+ \put(0,0)@{\vector(1,0)@{8@}@} % x axis
+ \put(0,0)@{\vector(0,1)@{4@}@} % y axis
+ \put(2,0)@{\line(0,1)@{3@}@} % left side rectangle
+ \put(4,0)@{\line(0,1)@{3.5@}@} % right side
+ \qbezier(2,3)(2.5,2.9)(3,3.25)
+ \qbezier(3,3.25)(3.5,3.6)(4,3.5)
+ \thicklines % below here, lines are twice as thick
+ \put(2,3)@{\line(4,1)@{2@}@}
+ \put(4.5,2.5)@{\framebox@{Trapezoidal Rule@}@}
+\end@{picture@}
+ at end example
+
+ at c @PkgIndex{picture}
+ at c (The @code{picture} package redefines the @code{picture} environment so
+ at c that everywhere a number is used in @var{picture commands} to specify
+ at c a coordinate, one can use alternatively a length. Be aware however that
+ at c this will prevent scaling those lengths by changing @code{\unitlength}.)
+
@menu
+* \put:: Place an object at a specified place.
+* \multiput:: Draw multiple instances of an object.
+* \qbezier:: Draw a quadratic Bezier curve.
+* \graphpaper:: Draw graph paper.
+* \line:: Draw a straight line.
+* \linethickness:: Set thickness of horizontal and vertical lines.
+* \thinlines:: The default line thickness.
+* \thicklines:: A heavier line thickness.
* \circle:: Draw a circle.
+* \oval:: Draw an oval.
+* \shortstack:: Make a stack of objects.
+* \vector:: Draw a line with an arrow.
* \makebox (picture):: Draw a box of the specified size.
* \framebox (picture):: Draw a box with a frame around it.
+* \frame:: Draw a frame around an object.
* \dashbox:: Draw a dashed box.
-* \frame:: Draw a frame around an object.
-* \line:: Draw a straight line.
-* \linethickness:: Set the line thickness.
-* \thicklines:: A heavier line thickness.
-* \thinlines:: The default line thickness.
-* \multiput:: Draw multiple instances of an object.
-* \oval:: Draw an ellipse.
-* \put:: Place an object at a specified place.
-* \shortstack:: Make a pile of objects.
-* \vector:: Draw a line with an arrow.
@end menu
- at node \circle
- at subsection @code{\circle}
+ at node \put
+ at subsection @code{\put}
- at findex \circle
+ at findex \put
Synopsis:
@example
-\circle@{@var{diameter}@}
-\circle*@{@var{diameter}@}
+\put(@var{xcoord}, at var{ycoord})@{@var{content}@}
@end example
-Produces a circle with a diameter as close to the specified one as
-possible. The @code{*}-form of the command draws a filled-in circle.
+Place @var{content} at the coordinate (@var{xcoord}, at var{ycoord}). See
+the discussion of coordinates and @code{\unitlength} in @ref{picture}.
-Circles up to 40 at dmn{pt} can be drawn.
+This includes the text into the @code{picture}.
+ at example
+\put(4.5,2.5)@{Apply the \textit@{unpoke@} move@}
+ at end example
- at node \makebox (picture)
- at subsection @code{\makebox}
+The reference point, the location (4.5,2.5), is the lower left of the
+text, at the bottom left of the @samp{A}.
- at findex \makebox @r{(for @code{picture})}
+ at node \multiput
+ at subsection @code{\multiput}
+
+ at findex \multiput
+
Synopsis:
@example
-\makebox(@var{width}, at var{height})[@var{position}]@{@var{text}@}
+\multiput(@var{x}, at var{y})(@var{delta_x}, at var{delta_y})@{@var{n}@}@{@var{obj}@}
@end example
-The @code{\makebox} command for the picture environment is similar to
-the normal @code{\makebox} command except that you must specify a
- at var{width} and @var{height} in multiples of @code{\unitlength}.
+Copy @var{obj} a total of @var{n} times, with an increment of
+ at var{delta_x,delta_y}. The @var{obj} first appears at position
+ at math{(x,y)}, then at @math{(x+\delta_x,y+\delta_y)}, and so on.
-The optional argument, @code{[@var{position}]}, specifies the quadrant that
-your @var{text} appears in. You may select up to two of the following:
+This draws a simple grid with every fifth line bolded (see also
+ at ref{\graphpaper}).
- at table @code
- at item t
-Moves the item to the top of the rectangle.
+ at example
+\begin@{picture@}(10,10)
+ \linethickness@{0.05mm@}
+ \multiput(0,0)(1,0)@{10@}@{\line(0,1)@{10@}@}
+ \multiput(0,0)(0,1)@{10@}@{\line(1,0)@{10@}@}
+ \linethickness@{0.5mm@}
+ \multiput(0,0)(5,0)@{3@}@{\line(0,1)@{10@}@}
+ \multiput(0,0)(0,5)@{3@}@{\line(1,0)@{10@}@}
+\end@{picture@}
+ at end example
- at item b
-Moves the item to the bottom.
- at item l
-Moves the item to the left.
+ at node \qbezier
+ at subsection @code{\qbezier}
- at item r
-Moves the item to the right.
+ at findex \qbezier
- at end table
+Synopsis:
- at xref{\makebox}.
+ at example
+\qbezier(@var{x1}, at var{y1})(@var{x2}, at var{y2})(@var{x3}, at var{y3})
+\qbezier[@var{num}](@var{x1}, at var{y1})(@var{x2}, at var{y2})(@var{x3}, at var{y3})
+ at end example
+Draw a quadratic Bezier curve whose control points are given by the
+three required arguments @code{(@var{x1}, at var{y1})},
+ at code{(@var{x2}, at var{y2})}, and @code{(@var{x3}, at var{y3})}. That is,
+the curve runs from @var{(x1,y1)} to @var{(x3,y3)}, is quadratic, and is
+such that the tangent line at @var{(x1,y1)} passes through
+ at var{(x2,y2)}, as does the tangent line at @var{(x3,y3)}.
- at node \framebox (picture)
- at subsection @code{\framebox}
+This draws a curve from the coordinate (1,1) to (1,0).
- at findex \framebox
-
-Synopsis:
-
@example
-\framebox(@var{width}, at var{height})[@var{pos}]@{...@}
+\qbezier(1,1)(1.25,0.75)(1,0)
@end example
-The @code{\framebox} command is like @code{\makebox} (see previous
-section), except that it puts a frame around the outside of the box
-that it creates.
+The curve's tangent line at (1,1) contains (1.25,0.75), as does the
+curve's tangent line at (1,0).
- at findex \fboxrule
- at findex \fboxsep
-The @code{\framebox} command produces a rule of thickness
- at code{\fboxrule}, and leaves a space @code{\fboxsep} between the rule
-and the contents of the box.
+The optional argument @var{num} gives the number of calculated
+intermediate points. The default is to draw a smooth curve whose
+maximum number of points is @code{\qbeziermax} (change this value with
+ at code{\renewcommand}).
- at node \dashbox
- at subsection @code{\dashbox}
+ at node \graphpaper
+ at subsection @code{\graphpaper}
- at findex \dashbox
+ at findex \graphpaper
+Synopsis:
-Draws a box with a dashed line. Synopsis:
-
@example
-\dashbox@{@var{dlen}@}(@var{rwidth}, at var{rheight})[@var{pos}]@{@var{text}@}
+\graphpaper(@var{x_init}, at var{y_init})(@var{x_dimen}, at var{y_dimen})
+\graphpaper[@var{spacing}](@var{x_init}, at var{y_init})(@var{x_dimen}, at var{y_dimen})
@end example
- at code{\dashbox} creates a dashed rectangle around @var{text} in a
- at code{picture} environment. Dashes are @var{dlen} units long, and the
-rectangle has overall width @var{rwidth} and height @var{rheight}.
-The @var{text} is positioned at optional @var{pos}. @c xxref positions.
+Draw a coordinate grid. Requires the @code{graphpap} package.
+The grid's origin is @code{(@var{x_init}, at var{y_init})}.
+Grid lines come every @var{spacing} units (the default is 10).
+The grid extends @var{x_dimen} units to the right and @var{y_dimen} units up.
+All arguments must be positive integers.
-A dashed box looks best when the @var{rwidth} and @var{rheight} are
-multiples of the @var{dlen}.
+This make a grid with seven vertical lines and eleven horizontal lines.
-
- at node \frame
- at subsection @code{\frame}
-
- at findex \frame
-
-Synopsis:
-
@example
-\frame@{@var{text}@}
+\usepackage@{graphpap@} % in preamble
+ ...
+\begin@{picture@}(6,20) % in document body
+ \graphpaper[2](0,0)(12,20)
+\end@{picture@}
@end example
-The @code{\frame} command puts a rectangular frame around @var{text}.
-The reference point is the bottom left corner of the frame. No extra
-space is put between the frame and the object.
+The lines are numbered every ten units.
@node \line
@@ -4962,18 +5011,51 @@
Synopsis:
@example
-\line(@var{xslope}, at var{yslope})@{@var{length}@}
+\line(@var{x_run}, at var{y_rise})@{@var{travel}@}
@end example
-The @code{\line} command draws a line with the given @var{length} and
-slope @var{xslope}/@var{yslope}.
+Draw a line. It slopes such that it vertically rises @var{y_rise} for
+every horizontal @var{x_run}, and such that the total horizontal change
+is @var{travel}. In the special case of vertical lines, if
+(@var{x_run}, at var{y_rise})=(0,1), then @var{travel} gives the change in
+ at math{y}.
+This draws a line starting at coordinates (1,3).
+
+ at example
+\put(1,3)@{\line(2,5)@{4@}@}
+ at end example
+
+For every over 2, this line will go up 5. Because @var{travel}
+specifies that this goes over 4, it must go up at tie{}10. Thus its
+endpoint is @math{(1,3)+(4,10)=(5,13)}. In particular, note that
+ at math{@var{travel}=4} is not the length of the line, it is the change in
+ at math{x}.
+
+The arguments @var{x_run} and @var{y_rise} are integers that can be
+positive, negative, or zero. (If both are 0 then @LaTeX{} treats the
+second as 1.) With
+ at code{\put(@var{x_init}, at var{y_init})@{\line(@var{x_run}, at var{y_rise})@{@var{travel}@}@}},
+if @var{x_run} is negative then the line's ending point has a first
+coordinate that is less than @var{x_init}. If @var{y_rise} is negative
+then the line's ending point has a second coordinate that is less than
+ at var{y_init}.
+
+If @var{travel} is negative then you get @code{LaTeX Error: Bad \line or
+\vector argument.}
+
@cindex @code{pict2e} package
@cindex graphics packages
-Standard @LaTeX{} can only draw lines with @math{@var{slope} = x/y},
-where @math{x} and @math{y} have integer values from @minus{}6
-through at tie{}6. For lines of any slope, and plenty of other shapes,
-see @code{pict2e} and many other packages on CTAN.
+ at PkgIndex{pict2e}
+Standard @LaTeX{} can only draw lines with a limited range of slopes
+because these lines are made by putting together line segments from
+pre-made fonts. The two numbers @var{x_run} and @var{y_rise} must have
+integer values from @minus{}6 through at tie{}6. Also, they must be
+relatively prime, so that @var{(x_run,y_rise)} can be (2,1) but not
+(4,2) (if you choose the latter then instead of lines you get sequences
+of arrowheads; the solution is to switch to the former). To get lines
+of arbitrary slope, and plenty of other shapes, see @code{pict2e} and
+many other packages on CTAN.
@node \linethickness
@@ -4981,49 +5063,65 @@
@findex \linethickness
-The @code{\linethickness@{@var{dim}@}} command declares the thickness
-of horizontal and vertical lines in a picture environment to be
- at var{dim}, which must be a positive length.
+Synopsis:
- at code{\linethickness} does not affect the thickness of slanted lines,
-circles, or the quarter circles drawn by @code{\oval}.
+ at example
+\linethickness@{@var{dim}@}
+ at end example
+Declares the thickness of subsequent horizontal and vertical lines in a
+picture to be @var{dim}, which must be a positive length
+(@pxref{Lengths}). It differs from @code{\thinlines} and
+ at code{\thicklines} in that it does not affect the thickness of slanted
+lines, circles, or ovals.
+
+ at node \thinlines
+ at subsection @code{\thinlines}
+
+ at findex \thinlines
+
+Declaration to set the thickness of subsequent lines, circles, and ovals
+in a picture environment to be 0.4 at dmn{pt}. This is the default
+thickness, so this command is unnecessary unless the thickness has been
+changed with either @ref{\linethickness} or @ref{\thicklines}.
+
+
@node \thicklines
@subsection @code{\thicklines}
@findex \thicklines
-The @code{\thicklines} command is an alternate line thickness for
-horizontal and vertical lines in a picture environment;
-cf. at tie{}@ref{\linethickness} and @ref{\thinlines}.
+Declaration to set the thickness of subsequent lines, circles, and ovals
+in a picture environment to be 0.8 at dmn{pt}. See also
+ at ref{\linethickness} and @ref{\thinlines}. This command is illustrated
+in the Trapezoidal Rule example of @ref{picture}.
- at node \thinlines
- at subsection @code{\thinlines}
+ at node \circle
+ at subsection @code{\circle}
- at findex \thinlines
+ at findex \circle
-The @code{\thinlines} command is the default line thickness for
-horizontal and vertical lines in a picture environment;
-cf. at tie{}@ref{\linethickness} and @ref{\thicklines}.
+Synopsis:
+ at example
+\circle@{@var{diameter}@}
+\circle*@{@var{diameter}@}
+ at end example
- at node \multiput
- at subsection @code{\multiput}
+Produces a circle with a diameter as close as possible to the specified
+one. The @code{*}@tie{}form produces a filled-in circle.
- at findex \multiput
+This draws a circle of radius 6, centered at @code{(5,7)}.
-Synopsis:
-
@example
-\multiput(@var{x}, at var{y})(@var{delta_x}, at var{delta_y})@{@var{n}@}@{@var{obj}@}
+\put(5,7)@{\circle@{6@}@}
@end example
-The @code{\multiput} command copies the object @var{obj} in a regular
-pattern across a picture. @var{obj} is first placed at position
- at math{(x,y)}, then at @math{(x+\delta x,y+\delta y)}, and so on,
- at var{n} times.
+The available radiuses for @code{circle} are, in points, the even
+numbers from 2 to 20, inclusive. For @code{circle*} they are all the
+integers from 1 to 15.
@node \oval
@@ -5034,48 +5132,43 @@
Synopsis:
@example
+\oval(@var{width}, at var{height})
\oval(@var{width}, at var{height})[@var{portion}]
@end example
-The @code{\oval} command produces a rectangle with rounded corners. The
-optional argument @var{portion} allows you to produce only half of the
-oval via the following:
+Produce a rectangle with rounded corners. The optional argument
+ at var{portion} allows you to produce only half or a quarter of the oval.
+For half an oval take @var{portion} to be one of these.
@table @code
@item t
-selects the top half;
+top half
@item b
-selects the bottom half;
+bottom half
@item r
-selects the right half;
+right half
@item l
-selects the left half.
+left half
@end table
-It is also possible to produce only one quarter of the oval by setting
- at var{portion} to @code{tr}, @code{br}, @code{bl}, or @code{tl}.
+Produce only one quarter of the oval by setting @var{portion} to
+ at code{tr}, @code{br}, @code{bl}, or @code{tl}.
-The ``corners'' of the oval are made with quarter circles with a
-maximum radius of 20 at dmn{pt}, so large ``ovals'' will look more like
-boxes with rounded corners.
+This draws the top half of an oval that is 3 wide and 7 tall.
-
- at node \put
- at subsection @code{\put}
-
- at findex \put
-
-Synopsis:
-
@example
-\put(@var{xcoord}, at var{ycoord})@{ ... @}
+\put(5,7)@{\oval(3,7)[t]@}
@end example
-The @code{\put} command places the material specified by the
-(mandatory) argument in braces at the given coordinate,
-(@var{xcoord}, at var{ycoord}).
+The (5,7) is the center of the entire oval, not just the center of the
+top half.
+These shapes are not ellipses. They are rectangles whose corners are
+made with quarter circles. These circles have a maximum radius of
+20 at dmn{pt} (@pxref{\circle} for the sizes). Thus large ovals are just
+boxes with a small amount of corner rounding.
+
@node \shortstack
@subsection @code{\shortstack}
@@ -5084,25 +5177,50 @@
Synopsis:
@example
-\shortstack[@var{position}]@{...\\...\\...@}
+\shortstack[@var{position}]@{@var{line 1} \\ @var{line 2} \\ ... @}
@end example
-The @code{\shortstack} command produces a stack of objects. The valid
-positions are:
+Produce a vertical stack of objects.
+This labels the @math{y} axis.
+
+ at example
+\put(0,0)@{\vector(1,0)@{4@}@} % x axis
+\put(0,0)@{\vector(0,1)@{2@}@} % y
+\put(-0.25,2)@{\makebox[0][r]@{\shortstack[r]@{$y$\\ axis@}@}@}
+ at end example
+
+ at noindent For a short stack, the reference point is the lower left of the stack.
+In this example the @ref{\makebox} puts the stack flush right in a zero
+width box so in total the short stack sits slightly to the left of the
+ at math{y}@tie{}axis.
+
+The valid positions are:
+
@table @code
@item r
-Move the objects to the right of the stack.
+Make objects flush right
@item l
-Move the objects to the left of the stack
+Make objects flush left
@item c
-Move the objects to the centre of the stack (default)
+Center objects (default)
@end table
@findex \\ @r{(for @code{\shortstack} objects)}
-Objects are separated with @code{\\}.
+Separate objects into lines with @code{\\}. These stacks are short in
+that, unlike in a @code{tabular} or @code{array} environment, here the
+rows are not spaced out to be of even heights. Thus, in
+ at code{\shortstack@{X\\o\\o\\X@}} the first and last rows are taller than
+the middle two. You can adjust row heights either by putting in the
+usual interline spacing with @code{\shortstack@{X\\ \strut o\\o\\X@}},
+or by hand, via an explicit zero-width box @code{\shortstack@{X \\
+\rule@{0pt@}@{12pt@} o\\o\\X@}} or by using @code{\\}'s optional
+argument @code{\shortstack@{X\\[2pt] o\\o\\X@}}.
+The @code{\shortstack} command is also available outside the
+ at code{picture} environment.
+
@node \vector
@subsection @code{\vector}
@@ -5111,14 +5229,140 @@
Synopsis:
@example
-\vector(@var{xslope}, at var{yslope})@{@var{length}@}
+\vector(@var{x_run}, at var{y_rise})@{@var{travel}@}
@end example
-The @code{\vector} command draws a line with an arrow of the specified
-length and slope. The @math{@var{xslope}} and @math{@var{yslope}}
-values must lie between @minus{}4 and +4, inclusive.
+Draw a line ending in an arrow. It slopes such that it vertically rises
+ at var{y_rise} for every horizontal @var{x_run}, and such that the total
+horizontal change is @var{travel}. In the special case of vertical
+vectors, if (@var{x_run}, at var{y_rise})=(0,1), then @var{travel} gives
+the change in @math{y}.
+For an example see @ref{picture}.
+For elaboration on @var{x_run} and @var{y_rise} see @ref{\line}. As
+there, the values of @var{x_run} and @var{y_rise} are limited. You must
+chooses integers between @minus{}4 and 4, inclusive. Also, the two you
+choose must be relatively prime. Thus, @code{\vector(2,1)@{4@}} is
+acceptable but @code{\vector(4,2)@{4@}} is not (if you use the latter
+then you get a sequence of arrowheads).
+
+
+ at node \makebox (picture)
+ at subsection @code{\makebox} (picture)
+
+ at findex \makebox @r{(for @code{picture})}
+
+Synopsis:
+
+ at example
+\makebox(@var{width}, at var{height})@{@var{text}@}
+\makebox(@var{width}, at var{height})[@var{position}]@{@var{text}@}
+ at end example
+
+Similar to the normal @code{\makebox} command (@pxref{\makebox}) except
+that you must specify a @var{width} and @var{height}, which you give in
+multiples of @code{\unitlength}. @xref{picture} for the discussion of
+ at code{\unitlength}.
+
+This makes a box of length 3 times @code{\unitlength} and height 4
+times @code{\unitlength}.
+
+ at example
+\put(1,2)@{\makebox(3,4)@{...@}@}
+ at end example
+
+Its contents will be right justified in that box.
+
+The optional @code{@var{position}} specifies the quadrant in which your
+ at var{text} appears. Use up to two of these:
+
+ at table @code
+ at item t
+Moves the item to the top of the rectangle.
+
+ at item b
+Moves the item to the bottom.
+
+ at item l
+Moves the item to the left.
+
+ at item r
+Moves the item to the right.
+
+ at end table
+
+
+ at node \framebox (picture)
+ at subsection @code{\framebox} (picture)
+
+ at findex \framebox
+
+Synopsis:
+
+ at example
+\framebox(@var{width}, at var{height})@{...@}
+\framebox(@var{width}, at var{height})[@var{position}]@{...@}
+ at end example
+
+Like @ref{\makebox (picture)} except that it puts a frame
+around the outside of the box that it creates.
+The reference point is the bottom left corner of the frame.
+ at findex \fboxrule
+ at findex \fboxsep
+The rule has thickness @code{\fboxrule} and there is a blank space
+ at code{\fboxsep} between the frame and the contents of the box.
+
+For this command, you must specify the @var{width} and @var{height}. If
+you want to just put a frame around some contents whose dimenstion is
+determined in some other way then either use @code{\fbox} (@pxref{\fbox
+and \framebox}) or @code{\frame} (@pxref{\frame}).
+
+ at node \frame
+ at subsection @code{\frame}
+
+ at findex \frame
+
+Synopsis:
+
+ at example
+\frame@{@var{contents}@}
+ at end example
+
+Puts a rectangular frame around @var{contents}. The reference point is
+the bottom left corner of the frame. In contrast to @code{\fbox}
+(@pxref{\fbox and \framebox}), this command puts no extra space is put
+between the frame and the object.
+
+
+ at node \dashbox
+ at subsection @code{\dashbox}
+
+ at findex \dashbox
+
+Synopsis:
+
+ at example
+\dashbox@{@var{dlen}@}(@var{rwidth}, at var{rheight})@{@var{text}@}
+\dashbox@{@var{dlen}@}(@var{rwidth}, at var{rheight})[@var{position}]@{@var{text}@}
+ at end example
+
+Create a dashed rectangle around @var{text} in a @code{picture}
+environment. Dashes are @var{dlen} units long and the rectangle has
+overall width @var{rwidth} and height @var{rheight}. The @var{text} is
+positioned according to the optional @var{position}; see @ref{\makebox
+(picture)} for the values that @var{position} can take.
+
+This shows that you can use non-integer @var{dlen}.
+
+ at example
+\put(0,0)@{\dashbox@{0.1@}(5,0.5)@{My hovercraft is full of eels.@}@}
+ at end example
+
+As in that example, a dashed box looks best when the @var{rwidth} and
+ at var{rheight} are multiples of the @var{dlen}.
+
+
@node quotation & quote
@section @code{quotation} & @code{quote}
@@ -6621,7 +6865,8 @@
@LaTeX{}'s default puts many restrictions on where you can use a
@code{\footnote}; for instance, you cannot use it in an argument to a
sectioning command such as @code{\chapter} (it can only be used in outer
-paragraph mode). There are some workarounds; see following sections.
+paragraph mode; @pxref{Modes}). There are some workarounds; see
+following sections.
@c xx mention packages that fix this
@cindex Footnotes, in a minipage
@@ -10964,7 +11209,7 @@
commands of this chapter. Two that use a programming language are
Asymptote and MetaPost. One that uses a graphical interface is Xfig.
Full description of these systems is outside the scope of this document;
-see their documentation.
+see their documentation on CTAN.
@menu
* Graphics package options:: Options when you load the package.
@@ -11496,7 +11741,7 @@
it.
@item angle
-Rotate the picture. The angle is taken in degrees and counterclockwise.
+Rotate the graphic. The angle is taken in degrees and counterclockwise.
The graphic is rotated about its @code{origin}; see that option. For a
complete description of how rotated material is typeset,
@pxref{\rotatebox}.
More information about the latexrefman-commits
mailing list