diff options
Diffstat (limited to 'doc/groff.html.node/Page-Motions.html')
-rw-r--r-- | doc/groff.html.node/Page-Motions.html | 454 |
1 files changed, 454 insertions, 0 deletions
diff --git a/doc/groff.html.node/Page-Motions.html b/doc/groff.html.node/Page-Motions.html new file mode 100644 index 0000000..bb94bdb --- /dev/null +++ b/doc/groff.html.node/Page-Motions.html @@ -0,0 +1,454 @@ +<!DOCTYPE html> +<html> +<!-- Created by GNU Texinfo 7.0.3, https://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<!-- This manual documents GNU troff version 1.23.0. + +Copyright © 1994-2023 Free Software Foundation, Inc. + +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.3 or +any later version published by the Free Software Foundation; with no +Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A +copy of the license is included in the section entitled "GNU Free +Documentation License". --> +<title>Page Motions (The GNU Troff Manual)</title> + +<meta name="description" content="Page Motions (The GNU Troff Manual)"> +<meta name="keywords" content="Page Motions (The GNU Troff Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta name="viewport" content="width=device-width,initial-scale=1"> + +<link href="index.html" rel="start" title="Top"> +<link href="Request-Index.html" rel="index" title="Request Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="GNU-troff-Reference.html" rel="up" title="GNU troff Reference"> +<link href="Drawing-Geometric-Objects.html" rel="next" title="Drawing Geometric Objects"> +<link href="Writing-Macros.html" rel="prev" title="Writing Macros"> +<style type="text/css"> +<!-- +a.copiable-link {visibility: hidden; text-decoration: none; line-height: 0em} +div.example {margin-left: 3.2em} +kbd.key {font-style: normal} +span.r {font-family: initial; font-weight: normal; font-style: normal} +span:hover a.copiable-link {visibility: visible} +strong.def-name {font-family: monospace; font-weight: bold; font-size: larger} +--> +</style> + + +</head> + +<body lang="en"> +<div class="section-level-extent" id="Page-Motions"> +<div class="nav-panel"> +<p> +Next: <a href="Drawing-Geometric-Objects.html" accesskey="n" rel="next">Drawing Geometric Objects</a>, Previous: <a href="Writing-Macros.html" accesskey="p" rel="prev">Writing Macros</a>, Up: <a href="GNU-troff-Reference.html" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Request-Index.html" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<h3 class="section" id="Page-Motions-1">5.25 Page Motions</h3> +<a class="index-entry-id" id="index-page-motions"></a> +<a class="index-entry-id" id="index-motions_002c-page"></a> + +<p>See <a class="xref" href="Manipulating-Spacing.html">Manipulating Spacing</a>, for a discussion of the most commonly used +request for vertical motion, <code class="code">sp</code>, which spaces downward by one +vee. +</p> +<dl class="first-deffn"> +<dt class="deffn" id="index-_002emk"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.mk</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">reg</i></span>]</var><a class="copiable-link" href='#index-_002emk'> ¶</a></span></dt> +<dd><a class="index-entry-id" id="index-mk"></a> +</dd><dt class="deffnx def-cmd-deffn" id="index-_002ert"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.rt</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">dist</i></span>]</var><a class="copiable-link" href='#index-_002ert'> ¶</a></span></dt> +<dd><a class="index-entry-id" id="index-rt"></a> +<a class="index-entry-id" id="index-marking-vertical-page-location-_0028mk_0029"></a> +<a class="index-entry-id" id="index-page-location_002c-vertical_002c-marking-_0028mk_0029"></a> +<a class="index-entry-id" id="index-location_002c-vertical_002c-page_002c-marking-_0028mk_0029"></a> +<a class="index-entry-id" id="index-vertical-page-location_002c-marking-_0028mk_0029"></a> +<a class="index-entry-id" id="index-returning-to-marked-vertical-page-location-_0028rt_0029"></a> +<a class="index-entry-id" id="index-page-location_002c-vertical_002c-returning-to-marked-_0028rt_0029"></a> +<a class="index-entry-id" id="index-location_002c-vertical_002c-page_002c-returning-to-marked-_0028rt_0029"></a> +<a class="index-entry-id" id="index-vertical-page-location_002c-returning-to-marked-_0028rt_0029"></a> +<p>You can <em class="dfn">mark</em> a location on a page for subsequent <em class="dfn">return</em>. +<code class="code">mk</code> takes an argument, a register name in which to store the +current page location. If given no argument, it stores the location in +an internal register. This location can be used later by the <code class="code">rt</code> +or the <code class="code">sp</code> requests (or the <code class="code">\v</code> escape). +</p> +<p>The <code class="code">rt</code> request returns <em class="emph">upward</em> to the location marked with +the last <code class="code">mk</code> request. If used with an argument, it returns to a +vertical position <var class="var">dist</var> from the top of the page (no previous +call to <code class="code">mk</code> is necessary in this case). The default scaling +unit is ‘<samp class="samp">v</samp>’. +</p> +<p>If a page break occurs between a <code class="code">mk</code> request and its matching +<code class="code">rt</code> request, the <code class="code">rt</code> request is silently ignored. +</p> +<p>A simple implementation of a macro to set text in two columns follows. +</p> +<div class="example"> +<div class="group"><pre class="example-preformatted">.nr column-length 1.5i +.nr column-gap 4m +.nr bottom-margin 1m +. +.de 2c +. br +. mk +. ll \\n[column-length]u +. wh -\\n[bottom-margin]u 2c-trap +. nr right-side 0 +.. +. +.de 2c-trap +. ie \\n[right-side] \{\ +. nr right-side 0 +. po -(\\n[column-length]u + \\n[column-gap]u) +. \" remove trap +. wh -\\n[bottom-margin]u +. \} +. el \{\ +. \" switch to right side +. nr right-side 1 +. po +(\\n[column-length]u + \\n[column-gap]u) +. rt +. \} +.. +</pre></div></div> + +<p>Now let us apply our two-column macro. +</p> +<div class="example"> +<div class="group"><pre class="example-preformatted">.pl 1.5i +.ll 4i +This is a small test that shows how the +rt request works in combination with mk. + +.2c +Starting here, text is typeset in two columns. +Note that this implementation isn't robust +and thus not suited for a real two-column +macro. + ⇒ This is a small test that shows how the + ⇒ rt request works in combination with mk. + ⇒ + ⇒ Starting here, isn't robust + ⇒ text is typeset and thus not + ⇒ in two columns. suited for a + ⇒ Note that this real two-column + ⇒ implementation macro. +</pre></div></div> +</dd></dl> + +<p>Several escape sequences enable fine control of movement about the page. +</p> +<dl class="first-deffn"> +<dt class="deffn" id="index-_005cv_0027expr_0027"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\v<code class="code">'</code></code><span class="r"><i class="slanted">expr</i></span><code class="t"><code class="code">'</code></code></strong><a class="copiable-link" href='#index-_005cv_0027expr_0027'> ¶</a></span></dt> +<dd><a class="index-entry-id" id="index-_005cv"></a> +<a class="index-entry-id" id="index-vertical-motion-_0028_005cv_0029"></a> +<a class="index-entry-id" id="index-motion_002c-vertical-_0028_005cv_0029"></a> +<p>Vertically move the drawing position. <var class="var">expr</var> indicates the +magnitude of motion: positive is downward and and negative upward. The +default scaling unit is ‘<samp class="samp">v</samp>’. The motion is relative to the current +drawing position unless <var class="var">expr</var> begins with the boundary-relative +motion operator ‘<samp class="samp">|</samp>’. See <a class="xref" href="Numeric-Expressions.html">Numeric Expressions</a>. +</p> +<p>Text processing continues at the new drawing position; usually, vertical +motions should be in balanced pairs to avoid a confusing page layout. +</p> +<p><code class="code">\v</code> will not spring a vertical position trap. This can be useful; +for example, consider a page bottom trap macro that prints a marker in +the margin to indicate continuation of a footnote. See <a class="xref" href="Traps.html">Traps</a>. +</p></dd></dl> + +<p>A few escape sequences that produce vertical motion are unusual. They +are thought to originate early in AT&T <code class="code">nroff</code> history to achieve +super- and subscripting by half-line motions on line printers and +teletypewriters before the phototypesetter made more precise positioning +available. They are reckoned in ems—not vees—to maintain continuity +with their original purpose of moving relative to the size of the type +rather than the distance between text baselines (vees).<a class="footnote" id="DOCF103" href="groff.html_fot.html#FOOT103"><sup>103</sup></a> +</p> +<dl class="first-deffn"> +<dt class="deffn" id="index-_005cr-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\r</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cr-1'> ¶</a></span></dt> +<dd><a class="index-entry-id" id="index-_005cr"></a> +</dd><dt class="deffnx def-cmd-deffn" id="index-_005cu-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\u</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cu-1'> ¶</a></span></dt> +<dd><a class="index-entry-id" id="index-_005cu"></a> +</dd><dt class="deffnx def-cmd-deffn" id="index-_005cd-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\d</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cd-1'> ¶</a></span></dt> +<dd><a class="index-entry-id" id="index-_005cd"></a> +<p>Move upward 1<span class="dmn">m</span>, upward .5<span class="dmn">m</span>, and +downward .5<span class="dmn">m</span>, respectively. +</p></dd></dl> + +<p>Let us see these escape sequences in use. +</p> +<div class="example"> +<div class="group"><pre class="example-preformatted">Obtain 100 cm\u3\d of \ka\d\092\h'|\nau'\r233\dU. +</pre></div></div> + +<p>In the foregoing we have paired <code class="code">\u</code> and <code class="code">\d</code> to typeset a +superscript, and later a full em negative (“reverse”) motion to place +a superscript above a subscript. A numeral-width horizontal motion +escape sequence aligns the proton and nucleon numbers, while <code class="code">\k</code> +marks a horizontal position to which <code class="code">\h</code> returns so that we could +stack them. (We shall discuss these horizontal motion escape sequences +presently.) In serious applications, we often want to alter the type +size of the -scripts and to fine-tune the vertical motions, as the +<code class="code">groff</code> <samp class="file">ms</samp> package does with its super- and subscripting +string definitions. +</p> +<dl class="first-deffn"> +<dt class="deffn" id="index-_005ch_0027expr_0027"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\h<code class="code">'</code></code><span class="r"><i class="slanted">expr</i></span><code class="t"><code class="code">'</code></code></strong><a class="copiable-link" href='#index-_005ch_0027expr_0027'> ¶</a></span></dt> +<dd><a class="index-entry-id" id="index-_005ch"></a> +<a class="index-entry-id" id="index-inserting-horizontal-space-_0028_005ch_0029"></a> +<a class="index-entry-id" id="index-horizontal-space-_0028_005ch_0029"></a> +<a class="index-entry-id" id="index-space_002c-horizontal-_0028_005ch_0029"></a> +<a class="index-entry-id" id="index-horizontal-motion-_0028_005ch_0029"></a> +<a class="index-entry-id" id="index-motion_002c-horizontal-_0028_005ch_0029"></a> +<p>Horizontally move the drawing position. <var class="var">expr</var> indicates the +magnitude of motion: positive is rightward and negative leftward. The +default scaling unit is ‘<samp class="samp">m</samp>’. The motion is relative to the current +drawing position unless <var class="var">expr</var> begins with the boundary-relative +motion operator ‘<samp class="samp">|</samp>’. See <a class="xref" href="Numeric-Expressions.html">Numeric Expressions</a>. +</p></dd></dl> + +<p>The following string definition sets the TeX +logo.<a class="footnote" id="DOCF104" href="groff.html_fot.html#FOOT104"><sup>104</sup></a> +</p> +<div class="example"> +<div class="group"><pre class="example-preformatted">.ds TeX T\h'-.1667m'\v'.224m'E\v'-.224m'\h'-.125m'X\" +</pre></div></div> + +<p>There are a number of special-case escape sequences for horizontal +motion. +</p> +<dl class="first-deffn"> +<dt class="deffn" id="index-_005cSP-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\<kbd class="key">SP</kbd></code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cSP-1'> ¶</a></span></dt> +<dd><a class="index-entry-id" id="index-_005cSP"></a> +<a class="index-entry-id" id="index-space_002c-unbreakable-and-unadjustable-_0028_005cSP_0029"></a> +<a class="index-entry-id" id="index-unbreakable-and-unadjustable-space-_0028_005cSP_0029"></a> +<a class="index-entry-id" id="index-unadjustable-and-unbreakable-space-_0028_005cSP_0029"></a> +<a class="index-entry-id" id="index-_005cspace"></a> +<p>Move right one word space. (The input is a backslash followed by a +space.) This escape sequence can be thought of as a non-adjustable, +unbreakable space. Usually you want <code class="code">\~</code> instead; see +<a class="ref" href="Manipulating-Filling-and-Adjustment.html">Manipulating Filling and Adjustment</a>. +</p></dd></dl> + +<a class="index-entry-id" id="index-thin-space-_0028_005c_007c_0029"></a> +<a class="index-entry-id" id="index-space_002c-thin-_0028_005c_007c_0029"></a> +<dl class="first-deffn"> +<dt class="deffn" id="index-_005c_007c-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\|</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_007c-1'> ¶</a></span></dt> +<dd><a class="index-entry-id" id="index-_005c_007c"></a> +<p>Move one-sixth <span class="dmn">em</span> to the right on typesetting output devices. If +a glyph named ‘<samp class="samp">\|</samp>’ is defined in the current font, its width is +used instead, even on terminal output devices. +</p></dd></dl> + +<a class="index-entry-id" id="index-hair-space-_0028_005c_005e_0029"></a> +<a class="index-entry-id" id="index-space_002c-hair-_0028_005c_005e_0029"></a> +<dl class="first-deffn"> +<dt class="deffn" id="index-_005c_005e-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\^</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_005e-1'> ¶</a></span></dt> +<dd><a class="index-entry-id" id="index-_005c_005e"></a> +<p>Move one-twelfth <span class="dmn">em</span> to the right on typesetting output devices. +If a glyph named ‘<samp class="samp">\^</samp>’ is defined in the current font, its width is +used instead, even on terminal output devices. +</p></dd></dl> + +<dl class="first-deffn"> +<dt class="deffn" id="index-_005c0-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\0</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c0-1'> ¶</a></span></dt> +<dd><a class="index-entry-id" id="index-_005c0"></a> +<a class="index-entry-id" id="index-space_002c-width-of-a-digit-_0028numeral_0029-_0028_005c0_0029"></a> +<a class="index-entry-id" id="index-digit_002dwidth-space-_0028_005c0_0029"></a> +<a class="index-entry-id" id="index-figure-space-_0028_005c0_0029"></a> +<a class="index-entry-id" id="index-numeral_002dwidth-space-_0028_005c0_0029"></a> +<p>Move right by the width of a numeral in the current font. +</p></dd></dl> + +<p>Horizontal motions are not discarded at the end of an output line as +word spaces are. See <a class="xref" href="Breaking.html">Breaking</a>. +</p> +<dl class="first-deffn"> +<dt class="deffn" id="index-_005cw_0027anything_0027"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\w<code class="code">'</code></code><span class="r"><i class="slanted">anything</i></span><code class="t"><code class="code">'</code></code></strong><a class="copiable-link" href='#index-_005cw_0027anything_0027'> ¶</a></span></dt> +<dd><a class="index-entry-id" id="index-_005cw"></a> +</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005bst_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[st]</code></strong><a class="copiable-link" href='#index-_005cn_005bst_005d'> ¶</a></span></dt> +<dd><a class="index-entry-id" id="index-st"></a> +</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005bsb_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[sb]</code></strong><a class="copiable-link" href='#index-_005cn_005bsb_005d'> ¶</a></span></dt> +<dd><a class="index-entry-id" id="index-sb"></a> +</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005brst_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[rst]</code></strong><a class="copiable-link" href='#index-_005cn_005brst_005d'> ¶</a></span></dt> +<dd><a class="index-entry-id" id="index-rst"></a> +</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005brsb_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[rsb]</code></strong><a class="copiable-link" href='#index-_005cn_005brsb_005d'> ¶</a></span></dt> +<dd><a class="index-entry-id" id="index-rsb"></a> +</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005bct_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[ct]</code></strong><a class="copiable-link" href='#index-_005cn_005bct_005d'> ¶</a></span></dt> +<dd><a class="index-entry-id" id="index-ct"></a> +</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005bssc_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[ssc]</code></strong><a class="copiable-link" href='#index-_005cn_005bssc_005d'> ¶</a></span></dt> +<dd><a class="index-entry-id" id="index-ssc"></a> +</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005bskw_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[skw]</code></strong><a class="copiable-link" href='#index-_005cn_005bskw_005d'> ¶</a></span></dt> +<dd><a class="index-entry-id" id="index-skw"></a> +<a class="index-entry-id" id="index-width-escape-_0028_005cw_0029"></a> +<p>Interpolate the width of <var class="var">anything</var> in basic units. This escape +sequence allows several properties of formatted output to be measured +without writing it out. +</p> +<div class="example"> +<div class="group"><pre class="example-preformatted">The length of the string 'abc' is \w'abc'u. + ⇒ The length of the string 'abc' is 72u. +</pre></div></div> + +<a class="index-entry-id" id="index-dummy-environment_002c-used-by-_005cw-escape-sequence"></a> +<a class="index-entry-id" id="index-environment_002c-dummy_002c-used-by-_005cw-escape-sequence"></a> +<p><var class="var">anything</var> is processed in a dummy environment: this means that +font and type size changes, for example, may occur within it without +affecting subsequent output. +</p> +<p>After each use, <code class="code">\w</code> sets several registers. +</p> +<a class="index-entry-id" id="index-CSTR-_002354-errata-5"></a> +<a class="index-entry-id" id="index-CSTR-_002354-erratum_002c-sb-register"></a> +<a class="index-entry-id" id="index-CSTR-_002354-erratum_002c-st-register"></a> +<dl class="table"> +<dt><code class="code">st</code></dt> +<dt><code class="code">sb</code></dt> +<dd><p>The maximum vertical displacements of the text baseline above and below, +respectively. The sign convention is opposite that of relative vertical +motions; that is, depth below the (original) baseline is negative. +These registers are incorrectly documented in the <abbr class="acronym">AT&T</abbr> +<code class="code">troff</code> manual as “the highest and lowest extent of [the argument +to <code class="code">\w</code>] relative to the baseline”. +</p> +</dd> +<dt><code class="code">rst</code></dt> +<dt><code class="code">rsb</code></dt> +<dd><p>Like <code class="code">st</code> and <code class="code">sb</code>, but taking account of the heights and +depths of glyphs. In other words, these registers store the highest and +lowest vertical positions attained by <var class="var">anything</var>, doing what +<abbr class="acronym">AT&T</abbr> <code class="code">troff</code> documented <code class="code">st</code> and <code class="code">sb</code> as doing. +</p> +</dd> +<dt><code class="code">ct</code></dt> +<dd><p>Characterizes the geometry of glyphs occurring in <var class="var">anything</var>. +</p> +<dl class="table"> +<dt>0</dt> +<dd><p>only short glyphs, no descenders or tall glyphs +</p> +</dd> +<dt>1</dt> +<dd><p>at least one descender +</p> +</dd> +<dt>2</dt> +<dd><p>at least one tall glyph +</p> +</dd> +<dt>3</dt> +<dd><p>at least one each of a descender and a tall glyph +</p></dd> +</dl> + +</dd> +<dt><code class="code">ssc</code></dt> +<dd><p>The amount of horizontal space (possibly negative) that should be added +to the last glyph before a subscript. +</p> +</dd> +<dt><code class="code">skw</code></dt> +<dd><p>How far to right of the center of the last glyph in the <code class="code">\w</code> +argument, the center of an accent from a roman font should be placed +over that glyph. +</p></dd> +</dl> +</dd></dl> + +<dl class="first-deffn"> +<dt class="deffn" id="index-_005ckp"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\k</code><span class="r"><i class="slanted">p</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005ckp'> ¶</a></span></dt> +<dd><a class="index-entry-id" id="index-_005ck"></a> +</dd><dt class="deffnx def-cmd-deffn" id="index-_005ck_0028ps"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\k(</code><span class="r"><i class="slanted">ps</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005ck_0028ps'> ¶</a></span></dt> +<dt class="deffnx def-cmd-deffn" id="index-_005ck_005bposition_005d"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\k[</code><span class="r"><i class="slanted">position</i></span><code class="t">]</code></strong><a class="copiable-link" href='#index-_005ck_005bposition_005d'> ¶</a></span></dt> +<dd><a class="index-entry-id" id="index-saving-horizontal-input-line-position-_0028_005ck_0029"></a> +<a class="index-entry-id" id="index-horizontal-input-line-position_002c-saving-_0028_005ck_0029"></a> +<a class="index-entry-id" id="index-input-line-position_002c-horizontal_002c-saving-_0028_005ck_0029"></a> +<a class="index-entry-id" id="index-position_002c-horizontal-input-line_002c-saving-_0028_005ck_0029"></a> +<a class="index-entry-id" id="index-line_002c-input_002c-horizontal-position_002c-saving-_0028_005ck_0029"></a> +<p>Store the current horizontal position in the <em class="emph">input</em> line in a +register with the name <var class="var">position</var> (one-character name <var class="var">p</var>, +two-character name <var class="var">ps</var>). Use this, for example, to return to the +beginning of a string for highlighting or other decoration. +</p></dd></dl> + +<dl class="first-deffn"> +<dt class="deffn" id="index-_005cn_005bhp_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[hp]</code></strong><a class="copiable-link" href='#index-_005cn_005bhp_005d'> ¶</a></span></dt> +<dd><a class="index-entry-id" id="index-hp"></a> +<a class="index-entry-id" id="index-horizontal-input-line-position-register-_0028hp_0029"></a> +<a class="index-entry-id" id="index-input-line_002c-horizontal-position_002c-register-_0028hp_0029"></a> +<a class="index-entry-id" id="index-position_002c-horizontal_002c-in-input-line_002c-register-_0028hp_0029"></a> +<a class="index-entry-id" id="index-line_002c-input_002c-horizontal-position_002c-register-_0028hp_0029"></a> +<p>The current horizontal position at the input line. +</p></dd></dl> + +<dl class="first-deffn"> +<dt class="deffn" id="index-_005cn_005b_002ek_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.k]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ek_005d'> ¶</a></span></dt> +<dd><a class="index-entry-id" id="index-_002ek"></a> +<a class="index-entry-id" id="index-horizontal-output-line-position-register-_0028_002ek_0029"></a> +<a class="index-entry-id" id="index-output-line_002c-horizontal-position_002c-register-_0028_002ek_0029"></a> +<a class="index-entry-id" id="index-position_002c-horizontal_002c-in-output-line_002c-register-_0028_002ek_0029"></a> +<a class="index-entry-id" id="index-line_002c-output_002c-horizontal-position_002c-register-_0028_002ek_0029"></a> +<p>A read-only register containing the current horizontal output position +(relative to the current indentation). +</p></dd></dl> + +<dl class="first-deffn"> +<dt class="deffn" id="index-_005co_0027abc_2026_0027"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\o<code class="code">'</code></code><span class="r"><i class="slanted">abc…</i></span><code class="t"><code class="code">'</code></code></strong><a class="copiable-link" href='#index-_005co_0027abc_2026_0027'> ¶</a></span></dt> +<dd><a class="index-entry-id" id="index-_005co"></a> +<a class="index-entry-id" id="index-overstriking-glyphs-_0028_005co_0029"></a> +<a class="index-entry-id" id="index-glyphs_002c-overstriking-_0028_005co_0029"></a> +<p>Overstrike the glyphs of characters <var class="var">a</var>, <var class="var">b</var>, <var class="var">c</var>, …; +the glyphs are centered, written, and the drawing position advanced by +the widest of the glyphs. +</p></dd></dl> + +<dl class="first-deffn"> +<dt class="deffn" id="index-_005czc"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\z</code><span class="r"><i class="slanted">c</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005czc'> ¶</a></span></dt> +<dd><a class="index-entry-id" id="index-_005cz"></a> +<a class="index-entry-id" id="index-zero_002dwidth-printing-_0028_005cz_002c-_005cZ_0029"></a> +<a class="index-entry-id" id="index-printing_002c-zero_002dwidth-_0028_005cz_002c-_005cZ_0029"></a> +<p>Format the character <var class="var">c</var> with zero width; that is, without advancing +the drawing position. Use <code class="code">\z</code> to overstrike glyphs aligned to +their left edges, in contrast to <code class="code">\o</code>’s centering. +</p></dd></dl> + +<dl class="first-deffn"> +<dt class="deffn" id="index-_005cZ_0027anything_0027"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\Z<code class="code">'</code></code><span class="r"><i class="slanted">anything</i></span><code class="t"><code class="code">'</code></code></strong><a class="copiable-link" href='#index-_005cZ_0027anything_0027'> ¶</a></span></dt> +<dd><a class="index-entry-id" id="index-_005cZ"></a> +<a class="index-entry-id" id="index-zero_002dwidth-printing-_0028_005cz_002c-_005cZ_0029-1"></a> +<a class="index-entry-id" id="index-printing_002c-zero_002dwidth-_0028_005cz_002c-_005cZ_0029-1"></a> +<p>Save the drawing position, format <var class="var">anything</var>, then restore it. Tabs +and leaders in the argument are ignored with an error diagnostic. +</p> +<p>We might implement a strike-through macro thus. +</p> +<div class="example"> +<div class="group"><pre class="example-preformatted">.de ST +.nr width \w'\\$1' +\Z@\v'-.25m'\l'\\n[width]u'@\\$1 +.. +. +This is +.ST "a test" +an actual emergency! +</pre></div></div> +</dd></dl> + + + +</div> +<hr> +<div class="nav-panel"> +<p> +Next: <a href="Drawing-Geometric-Objects.html">Drawing Geometric Objects</a>, Previous: <a href="Writing-Macros.html">Writing Macros</a>, Up: <a href="GNU-troff-Reference.html">GNU <code class="code">troff</code> Reference</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Request-Index.html" title="Index" rel="index">Index</a>]</p> +</div> + + + +</body> +</html> |