summaryrefslogtreecommitdiffstats
path: root/doc/groff.html.node/DESC-File-Format.html
blob: 11e1b734d7a9ca971590e556fc8614e7a9f61518 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
<!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>DESC File Format (The GNU Troff Manual)</title>

<meta name="description" content="DESC File Format (The GNU Troff Manual)">
<meta name="keywords" content="DESC File Format (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="Device-and-Font-Description-Files.html" rel="up" title="Device and Font Description Files">
<link href="Font-Description-File-Format.html" rel="next" title="Font Description File Format">
<link href="Device-and-Font-Description-Files.html" rel="prev" title="Device and Font Description Files">
<style type="text/css">
<!--
a.copiable-link {visibility: hidden; text-decoration: none; line-height: 0em}
span.r {font-family: initial; font-weight: normal; font-style: normal}
span:hover a.copiable-link {visibility: visible}
-->
</style>


</head>

<body lang="en">
<div class="subsection-level-extent" id="DESC-File-Format">
<div class="nav-panel">
<p>
Next: <a href="Font-Description-File-Format.html" accesskey="n" rel="next">Font Description File Format</a>, Previous: <a href="Device-and-Font-Description-Files.html" accesskey="p" rel="prev">Device and Font Description Files</a>, Up: <a href="Device-and-Font-Description-Files.html" accesskey="u" rel="up">Device and Font Description Files</a> &nbsp; [<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="DESC-File-Format-1">6.2.1 <samp class="file">DESC</samp> File Format</h4>
<a class="index-entry-id" id="index-DESC-file-format"></a>
<a class="index-entry-id" id="index-font-description-file-format"></a>
<a class="index-entry-id" id="index-format-of-font-description-file"></a>

<p>The <samp class="file">DESC</samp> file contains a series of directives; each begins a
line.  Their order is not important, with two exceptions: (1) the
<code class="code">res</code> directive must precede any <code class="code">papersize</code> directive; and
(2) the <code class="code">charset</code> directive must come last (if at all).  If a
directive name is repeated, later entries in the file override previous
ones (except that the paper dimensions are computed based on the
<code class="code">res</code> directive last seen when <code class="code">papersize</code> is encountered).
Spaces and/or tabs separate words and are ignored at line boundaries.
<a class="index-entry-id" id="index-comments-in-device-description-files"></a>
<a class="index-entry-id" id="index-device-description-files_002c-comments"></a>
<a class="index-entry-id" id="index-_0023"></a>
Comments start with the &lsquo;<samp class="samp">#</samp>&rsquo; character and extend to the end of a
line.  Empty lines are ignored.
</p>
<dl class="table">
<dt id='index-family-1'><span><code class="code">family <var class="var">fam</var></code><a class="copiable-link" href='#index-family-1'> &para;</a></span></dt>
<dd><p>The default font family is <var class="var">fam</var>.
</p>
</dd>
<dt id='index-fonts-2'><span><code class="code">fonts <var class="var">n</var> <var class="var">F1</var> <span class="r">&hellip;</span> <var class="var">Fn</var></code><a class="copiable-link" href='#index-fonts-2'> &para;</a></span></dt>
<dd><p>Fonts <var class="var">F1</var>, &hellip;, <var class="var">Fn</var> are mounted at font positions
<var class="var">m</var>+1, &hellip;, <var class="var">m</var>+<var class="var">n</var> where <var class="var">m</var> is the number of
<code class="code">styles</code> (see below).  This directive may extend over more than one
line.  A font name of&nbsp;<code class="code">0</code> causes no font to be mounted at the
corresponding position.
</p>
</dd>
<dt id='index-hor'><span><code class="code">hor <var class="var">n</var></code><a class="copiable-link" href='#index-hor'> &para;</a></span></dt>
<dd><a class="index-entry-id" id="index-horizontal-motion-quantum"></a>
<a class="index-entry-id" id="index-motion-quantum_002c-horizontal"></a>
<a class="index-entry-id" id="index-quantum_002c-horizontal-motion"></a>
<a class="index-entry-id" id="index-horizontal-resolution"></a>
<a class="index-entry-id" id="index-resolution_002c-horizontal"></a>
<p>The horizontal motion quantum is <var class="var">n</var>&nbsp;basic units.  All
horizontal quantities are rounded to multiples of&nbsp;<var class="var">n</var>.
</p>
</dd>
<dt id='index-image_005fgenerator'><span><code class="code">image_generator <var class="var">program</var></code><a class="copiable-link" href='#index-image_005fgenerator'> &para;</a></span></dt>
<dd><a class="index-entry-id" id="index-PostScript_002c-PNG-image-generation"></a>
<a class="index-entry-id" id="index-PNG-image-generation-from-PostScript"></a>
<p>Use <var class="var">program</var> to generate PNG images from PostScript input.  Under
GNU/Linux, this is usually <code class="code">gs</code>, but under other systems (notably
Cygwin) it might be set to another name.  The <code class="code">grohtml</code> driver uses
this directive.
</p>
</dd>
<dt id='index-paperlength'><span><code class="code">paperlength <var class="var">n</var></code><a class="copiable-link" href='#index-paperlength'> &para;</a></span></dt>
<dd><p>The vertical dimension of the output medium is <var class="var">n</var>&nbsp;basic units
(deprecated: use <code class="code">papersize</code> instead).
</p>
</dd>
<dt id='index-papersize'><span><code class="code">papersize <var class="var">format-or-dimension-pair-or-file-name</var> <span class="r">&hellip;</span></code><a class="copiable-link" href='#index-papersize'> &para;</a></span></dt>
<dd><p>The dimensions of the output medium are as according to the
argument, which is either a standard paper format, a pair of dimensions,
or the name of a plain text file containing either of the foregoing.
</p>
<p>Recognized paper formats are the ISO and DIN formats
<code class="code">A0</code>&ndash;<code class="code">A7</code>, <code class="code">B0</code>&ndash;<code class="code">B7</code>, <code class="code">C0</code>&ndash;<code class="code">C7</code>,
<code class="code">D0</code>&ndash;<code class="code">D7</code>; the U.S. paper types <code class="code">letter</code>,
<code class="code">legal</code>, <code class="code">tabloid</code>, <code class="code">ledger</code>, <code class="code">statement</code>, and
<code class="code">executive</code>; and the envelope formats <code class="code">com10</code>, <code class="code">monarch</code>,
and <code class="code">DL</code>.  Matching is performed without regard for lettercase.
</p>
<p>Alternatively, the argument can be a custom paper format in the format
<code class="code"><var class="var">length</var>,<var class="var">width</var></code> (with no spaces before or after the
comma).  Both <var class="var">length</var> and <var class="var">width</var> must have a unit appended;
valid units are &lsquo;<samp class="samp">i</samp>&rsquo; for inches, &lsquo;<samp class="samp">c</samp>&rsquo; for centimeters, &lsquo;<samp class="samp">p</samp>&rsquo;
for points, and &lsquo;<samp class="samp">P</samp>&rsquo; for picas.  Example: &lsquo;<samp class="samp">12c,235p</samp>&rsquo;.  An
argument that starts with a digit is always treated as a custom paper
format.
</p>
<p>Finally, the argument can be a file name (e.g., <samp class="file">/etc/papersize</samp>);
if the file can be opened, the first line is read and a match attempted
against each of the other forms.  No comment syntax is supported.
</p>
<p>More than one argument can be specified;
each is scanned in turn and the first valid paper specification used.
</p>
</dd>
<dt id='index-paperwidth'><span><code class="code">paperwidth <var class="var">n</var></code><a class="copiable-link" href='#index-paperwidth'> &para;</a></span></dt>
<dd><p>The horizontal dimension of the output medium is <var class="var">n</var>&nbsp;basic
units (deprecated: use <code class="code">papersize</code> instead).
</p>
</dd>
<dt id='index-pass_005ffilenames'><span><code class="code">pass_filenames</code><a class="copiable-link" href='#index-pass_005ffilenames'> &para;</a></span></dt>
<dd><p>Direct GNU <code class="code">troff</code> to emit the name of the source file being
processed.  This is achieved with the intermediate output command
&lsquo;<samp class="samp">x F</samp>&rsquo;, which <code class="code">grohtml</code> interprets.
</p>
</dd>
<dt id='index-postpro'><span><code class="code">postpro <var class="var">program</var></code><a class="copiable-link" href='#index-postpro'> &para;</a></span></dt>
<dd><p>Use <var class="var">program</var> as the postprocessor.
</p>
</dd>
<dt id='index-prepro'><span><code class="code">prepro <var class="var">program</var></code><a class="copiable-link" href='#index-prepro'> &para;</a></span></dt>
<dd><p>Use <var class="var">program</var> as a preprocessor.  The <code class="code">html</code> and <code class="code">xhtml</code>
output devices use this directive.
</p>
</dd>
<dt id='index-print'><span><code class="code">print <var class="var">program</var></code><a class="copiable-link" href='#index-print'> &para;</a></span></dt>
<dd><p>Use <var class="var">program</var> as a spooler program for printing.  If omitted, the
<samp class="option">-l</samp> and <samp class="option">-L</samp> options of <code class="code">groff</code> are ignored.
</p>
</dd>
<dt id='index-res'><span><code class="code">res <var class="var">n</var></code><a class="copiable-link" href='#index-res'> &para;</a></span></dt>
<dd><a class="index-entry-id" id="index-device-resolution-1"></a>
<a class="index-entry-id" id="index-resolution_002c-device-1"></a>
<p>The device resolution is <var class="var">n</var>&nbsp;basic units per inch.
</p>
</dd>
<dt id='index-sizes'><span><code class="code">sizes <var class="var">s1</var> <span class="r">&hellip;</span> <var class="var">sn</var> 0</code><a class="copiable-link" href='#index-sizes'> &para;</a></span></dt>
<dd><p>The device has fonts at <var class="var">s1</var>, &hellip;, <var class="var">sn</var> scaled points (see
below).  The list of sizes must be terminated by&nbsp;<code class="code">0</code>.  Each
<var class="var">si</var> can also be a range of sizes <var class="var">m</var>&ndash;<var class="var">n</var>.  The list can
extend over more than one line.
</p>
</dd>
<dt id='index-sizescale'><span><code class="code">sizescale <var class="var">n</var></code><a class="copiable-link" href='#index-sizescale'> &para;</a></span></dt>
<dd><p>A typographical point is subdivided into <var class="var">n</var>&nbsp;scaled points.
The default is&nbsp;<code class="code">1</code>.  See <a class="xref" href="Using-Fractional-Type-Sizes.html">Using Fractional Type Sizes</a>.
</p>
</dd>
<dt id='index-styles-2'><span><code class="code">styles <var class="var">S1</var> <span class="r">&hellip;</span> <var class="var">Sm</var></code><a class="copiable-link" href='#index-styles-2'> &para;</a></span></dt>
<dd><p>The first&nbsp;<var class="var">m</var> mounting positions are associated with styles
<var class="var">S1</var>, &hellip;, <var class="var">Sm</var>.
</p>
</dd>
<dt id='index-tcommand'><span><code class="code">tcommand</code><a class="copiable-link" href='#index-tcommand'> &para;</a></span></dt>
<dd><p>The postprocessor can handle the &lsquo;<samp class="samp">t</samp>&rsquo; and &lsquo;<samp class="samp">u</samp>&rsquo; intermediate
output commands.
</p>
</dd>
<dt id='index-unicode'><span><code class="code">unicode</code><a class="copiable-link" href='#index-unicode'> &para;</a></span></dt>
<dd><p>The output device supports the complete Unicode repertoire.  This
directive is useful only for devices that produce character entities
instead of glyphs.
</p>
<p>If <code class="code">unicode</code> is present, no <code class="code">charset</code> section is required in
the font description files since the Unicode handling built into
<code class="code">groff</code> is used.  However, if there are entries in a font
description file&rsquo;s <code class="code">charset</code> section, they either override the
default mappings for those particular characters or add new mappings
(normally for composite characters).
</p>
<p>The <code class="code">utf8</code>, <code class="code">html</code>, and <code class="code">xhtml</code> output devices use this
directive.
</p>
</dd>
<dt id='index-unitwidth'><span><code class="code">unitwidth <var class="var">n</var></code><a class="copiable-link" href='#index-unitwidth'> &para;</a></span></dt>
<dd><p>Quantities in the font description files are in basic units for fonts
whose type size is <var class="var">n</var>&nbsp;scaled points.
</p>
</dd>
<dt id='index-unscaled_005fcharwidths'><span><code class="code">unscaled_charwidths</code><a class="copiable-link" href='#index-unscaled_005fcharwidths'> &para;</a></span></dt>
<dd><p>Make the font handling module always return unscaled character widths.
The <code class="code">grohtml</code> driver uses this directive.
</p>
</dd>
<dt id='index-use_005fcharnames_005fin_005fspecial-1'><span><code class="code">use_charnames_in_special</code><a class="copiable-link" href='#index-use_005fcharnames_005fin_005fspecial-1'> &para;</a></span></dt>
<dd><p>GNU <code class="code">troff</code> should encode special characters inside device control
commands; see <a class="ref" href="Postprocessor-Access.html">Postprocessor Access</a>.  The <code class="code">grohtml</code> driver
uses this directive.
</p>
</dd>
<dt id='index-vert'><span><code class="code">vert <var class="var">n</var></code><a class="copiable-link" href='#index-vert'> &para;</a></span></dt>
<dd><a class="index-entry-id" id="index-vertical-motion-quantum"></a>
<a class="index-entry-id" id="index-motion-quantum_002c-vertical"></a>
<a class="index-entry-id" id="index-quantum_002c-vertical-motion"></a>
<a class="index-entry-id" id="index-vertical-resolution"></a>
<a class="index-entry-id" id="index-resolution_002c-vertical"></a>
<p>The vertical motion quantum is <var class="var">n</var>&nbsp;basic units.  All vertical
quantities are rounded to multiples of&nbsp;<var class="var">n</var>.
</p>
</dd>
<dt id='index-charset'><span><code class="code">charset</code><a class="copiable-link" href='#index-charset'> &para;</a></span></dt>
<dd><p>This line and everything following it in the file are ignored.  It is
recognized for compatibility with other <code class="code">troff</code> implementations.
In GNU <code class="code">troff</code>, character set repertoire is described on a
per-font basis.
</p></dd>
</dl>

<a class="index-entry-id" id="index-spare1"></a>
<a class="index-entry-id" id="index-spare2"></a>
<a class="index-entry-id" id="index-biggestfont"></a>
<p>GNU <code class="code">troff</code> recognizes but ignores the directives <code class="code">spare1</code>,
<code class="code">spare2</code>, and <code class="code">biggestfont</code>.
</p>
<p>The <code class="code">res</code>, <code class="code">unitwidth</code>, <code class="code">fonts</code>, and <code class="code">sizes</code> lines
are mandatory.  Directives not listed above are ignored by GNU
<code class="code">troff</code> but may be used by postprocessors to obtain further
information about the device.
</p>

</div>
<hr>
<div class="nav-panel">
<p>
Next: <a href="Font-Description-File-Format.html">Font Description File Format</a>, Previous: <a href="Device-and-Font-Description-Files.html">Device and Font Description Files</a>, Up: <a href="Device-and-Font-Description-Files.html">Device and Font Description Files</a> &nbsp; [<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>