diff options
Diffstat (limited to 'doc/groff.html.node/Using-Fractional-Type-Sizes.html')
-rw-r--r-- | doc/groff.html.node/Using-Fractional-Type-Sizes.html | 172 |
1 files changed, 172 insertions, 0 deletions
diff --git a/doc/groff.html.node/Using-Fractional-Type-Sizes.html b/doc/groff.html.node/Using-Fractional-Type-Sizes.html new file mode 100644 index 0000000..7445fc5 --- /dev/null +++ b/doc/groff.html.node/Using-Fractional-Type-Sizes.html @@ -0,0 +1,172 @@ +<!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>Using Fractional Type Sizes (The GNU Troff Manual)</title> + +<meta name="description" content="Using Fractional Type Sizes (The GNU Troff Manual)"> +<meta name="keywords" content="Using Fractional Type Sizes (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="Manipulating-Type-Size-and-Vertical-Spacing.html" rel="up" title="Manipulating Type Size and Vertical Spacing"> +<link href="Changing-the-Type-Size.html" rel="prev" title="Changing the Type Size"> +<style type="text/css"> +<!-- +a.copiable-link {visibility: hidden; text-decoration: none; line-height: 0em} +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="subsection-level-extent" id="Using-Fractional-Type-Sizes"> +<div class="nav-panel"> +<p> +Previous: <a href="Changing-the-Type-Size.html" accesskey="p" rel="prev">Changing the Type Size</a>, Up: <a href="Manipulating-Type-Size-and-Vertical-Spacing.html" accesskey="u" rel="up">Manipulating Type Size and Vertical Spacing</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> +<h4 class="subsection" id="Using-Fractional-Type-Sizes-1">5.20.3 Using Fractional Type Sizes</h4> +<a class="index-entry-id" id="index-fractional-type-sizes"></a> +<a class="index-entry-id" id="index-fractional-point-sizes"></a> +<a class="index-entry-id" id="index-type-sizes_002c-fractional"></a> +<a class="index-entry-id" id="index-point-sizes_002c-fractional"></a> +<a class="index-entry-id" id="index-sizes_002c-fractional-type"></a> + +<p>AT&T <code class="code">troff</code> interpreted all type size measurements in points. +Combined with integer arithmetic, this design choice made it impossible +to support, for instance, ten and a half-point type. In GNU +<code class="code">troff</code>, an output device can select a scaling factor that +subdivides a point into “scaled points”. A type size expressed in +scaled points can thus represent a non-integral type size. +</p> +<a class="index-entry-id" id="index-s-scaling-unit"></a> +<a class="index-entry-id" id="index-unit_002c-scaling_002c-s"></a> +<a class="index-entry-id" id="index-scaling-unit-s"></a> +<a class="index-entry-id" id="index-z-scaling-unit"></a> +<a class="index-entry-id" id="index-unit_002c-scaling_002c-z"></a> +<a class="index-entry-id" id="index-scaling-unit-z"></a> +<a class="index-entry-id" id="index-ps-request_002c-with-fractional-type-sizes"></a> +<a class="index-entry-id" id="index-cs-request_002c-with-fractional-type-sizes"></a> +<a class="index-entry-id" id="index-tkf-request_002c-with-fractional-type-sizes"></a> +<a class="index-entry-id" id="index-_005cH_002c-with-fractional-type-sizes"></a> +<a class="index-entry-id" id="index-_005cs_002c-with-fractional-type-sizes"></a> +<p>A <em class="dfn">scaled point</em> is equal to <em class="math">1/<var class="var">sizescale</var></em> points, where +<var class="var">sizescale</var> is specified in the device description file <samp class="file">DESC</samp>, +and defaults to 1.<a class="footnote" id="DOCF85" href="groff.html_fot.html#FOOT85"><sup>85</sup></a> Requests and escape sequences in GNU <code class="code">troff</code> interpret +arguments that represent a type size in scaled points, which the +formatter multiplies by <var class="var">sizescale</var> and converts to an integer. +Arguments treated in this way comprise those to the escape sequences +<code class="code">\H</code> and <code class="code">\s</code>, to the request <code class="code">ps</code>, the third argument to +the <code class="code">cs</code> request, and the second and fourth arguments to the +<code class="code">tkf</code> request. Scaled points may be specified explicitly with the +<code class="code">z</code> scaling unit. +</p> +<p>For example, if <var class="var">sizescale</var> is 1000, then a scaled point is one +thousandth of a point. The request ‘<samp class="samp">.ps 10.5</samp>’ is synonymous with +‘<samp class="samp">.ps 10.5z</samp>’ and sets the type size to 10,500 scaled points, or +10.5 points. Consequently, in GNU <code class="code">troff</code>, the register +<code class="code">.s</code> can interpolate a non-integral type size. +</p> +<dl class="first-deffn"> +<dt class="deffn" id="index-_005cn_005b_002eps_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.ps]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002eps_005d'> ¶</a></span></dt> +<dd><a class="index-entry-id" id="index-_002eps-3"></a> +<p>This read-only register interpolates the type size in scaled points; it +is associated with the environment (see <a class="pxref" href="Environments.html">Environments</a>). +</p></dd></dl> + +<p>It makes no sense to use the ‘<samp class="samp">z</samp>’ scaling unit in a numeric +expression whose default scaling unit is neither ‘<samp class="samp">u</samp>’ nor ‘<samp class="samp">z</samp>’, +so GNU <code class="code">troff</code> disallows this. Similarly, it is nonsensical to use +a scaling unit other than ‘<samp class="samp">z</samp>’ or ‘<samp class="samp">u</samp>’ in a numeric expression +whose default scaling unit is ‘<samp class="samp">z</samp>’, and so GNU <code class="code">troff</code> +disallows this as well. +</p> +<p>Another GNU <code class="code">troff</code> scaling unit, ‘<samp class="samp">s</samp>’, multiplies by the +number of basic units in a scaled point. Thus, ‘<samp class="samp">\n[.ps]s</samp>’ is equal +to ‘<samp class="samp">1m</samp>’ by definition. Do not confuse the ‘<samp class="samp">s</samp>’ and ‘<samp class="samp">z</samp>’ +scaling units. +</p> +<dl class="first-deffn"> +<dt class="deffn" id="index-_005cn_005b_002epsr_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.psr]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002epsr_005d'> ¶</a></span></dt> +<dd><a class="index-entry-id" id="index-_002epsr"></a> +</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002esr_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.sr]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002esr_005d'> ¶</a></span></dt> +<dd><a class="index-entry-id" id="index-_002esr"></a> +<a class="index-entry-id" id="index-last_002drequested-type-size-registers-_0028_002epsr_002c-_002esr_0029"></a> +<a class="index-entry-id" id="index-type-size-registers_002c-last_002drequested-_0028_002epsr_002c-_002esr_0029"></a> +<a class="index-entry-id" id="index-last_002drequested-point-size-registers-_0028_002epsr_002c-_002esr_0029"></a> +<a class="index-entry-id" id="index-point-size-registers_002c-last_002drequested-_0028_002epsr_002c-_002esr_0029"></a> +<a class="index-entry-id" id="index-_002eps-register_002c-in-comparison-with-_002epsr"></a> +<a class="index-entry-id" id="index-_002es-register_002c-in-comparison-with-_002esr"></a> +<p>Output devices may be limited in the type sizes they can employ. The +<code class="code">.s</code> and <code class="code">.ps</code> registers represent the type size selected by +the output driver as it understands a device’s capability. The last +<em class="emph">requested</em> type size is interpolated in scaled points by the +read-only register <code class="code">.psr</code> and in points as a decimal fraction by +the read-only string-valued register <code class="code">.sr</code>. Both are associated +with the environment (see <a class="pxref" href="Environments.html">Environments</a>). +</p> +<p>For example, if a type size of 10.95 points is requested, and the +nearest size permitted by a <code class="code">sizes</code> request (or by the <code class="code">sizes</code> +or <code class="code">sizescale</code> directives in the device’s <samp class="file">DESC</samp> file) is 11 +points, the output driver uses the latter value. +</p></dd></dl> + +<p>The <code class="code">\s</code> escape sequence offers the following syntax forms that +work with fractional type sizes and accept scaling units. You may of +course give them integral arguments. The delimited forms need not use +the neutral apostrophe; see <a class="ref" href="Delimiters.html">Delimiters</a>. +</p> +<dl class="table"> +<dt><code class="code">\s[<var class="var">n</var>]</code></dt> +<dt><code class="code">\s'<var class="var">n</var>'</code></dt> +<dd><p>Set the type size to <var class="var">n</var> scaled points; <var class="var">n</var> is a +numeric expression with a default scaling unit of ‘<samp class="samp">z</samp>’. +</p> +</dd> +<dt><code class="code">\s[+<var class="var">n</var>]</code></dt> +<dt><code class="code">\s[-<var class="var">n</var>]</code></dt> +<dt><code class="code">\s+[<var class="var">n</var>]</code></dt> +<dt><code class="code">\s-[<var class="var">n</var>]</code></dt> +<dt><code class="code">\s'+<var class="var">n</var>'</code></dt> +<dt><code class="code">\s'-<var class="var">n</var>'</code></dt> +<dt><code class="code">\s+'<var class="var">n</var>'</code></dt> +<dt><code class="code">\s-'<var class="var">n</var>'</code></dt> +<dd><p>Increase or decrease the type size by <var class="var">n</var> scaled points; +<var class="var">n</var> is a numeric expression (which may start with a minus sign) +with a default scaling unit of ‘<samp class="samp">z</samp>’. +</p></dd> +</dl> + + + +</div> +<hr> +<div class="nav-panel"> +<p> +Previous: <a href="Changing-the-Type-Size.html">Changing the Type Size</a>, Up: <a href="Manipulating-Type-Size-and-Vertical-Spacing.html">Manipulating Type Size and Vertical Spacing</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> |