Reference Documentation: PDF Publishing with GNU Troff
リビジョン | 4ac0a01f640d9b0ff178d97e50e5d5bdd9f0994d (tree) |
---|---|
日時 | 2024-08-16 04:24:08 |
作者 | Keith Marshall <keith@user...> |
コミッター | Keith Marshall |
Add groff_opmode.7 manual page source file.
* man/groff_opmode.7.man: New file.
* tmac/opmode.tmac (.OP): Update "usage" comment; make it consistent
with actual behaviour, as it is documented in the manual page.
* Makefile.in (manpages): Add groff_opmode.7 to build goals.
@@ -238,7 +238,8 @@ | ||
238 | 238 | vpath %.man ${srcdir}/man |
239 | 239 | vpath manpdf-fallbacks.in ${srcdir}/man |
240 | 240 | all-inclusive: all all-manpages all-pdf-manpages |
241 | -override manpages := pdfroff.1 pdfroff.7 groff_omit.7 groff_toc.7 | |
241 | +override manpages := pdfroff.1 pdfroff.7 groff_omit.7 | |
242 | +override manpages += groff_opmode.7 groff_toc.7 | |
242 | 243 | override pdf-manpages := $(addsuffix .pdf,$(manpages)) |
243 | 244 | all-pdf-manpages: $(pdf-manpages) |
244 | 245 | all-manpages: $(manpages) |
@@ -0,0 +1,403 @@ | ||
1 | +.TH groff_opmode @MAN7EXT@ "@MDATE@" "groff-pdfmark @VERSION@" | |
2 | +. | |
3 | +.SH Name | |
4 | +groff_opmode \- control GNU roff \(lqpen state\(rq | |
5 | +. | |
6 | +.\" ==================================================================== | |
7 | +.\" Legal Terms | |
8 | +.\" ==================================================================== | |
9 | +.\" | |
10 | +.\" Copyright (C) 2024, Free Software Foundation, Inc. | |
11 | +.\" | |
12 | +.\" This file is part of groff-pdfmark, an independently maintained | |
13 | +.\" add-on for the GNU roff type-setting system. | |
14 | +.\" | |
15 | +.\" Permission is granted to copy, distribute and/or modify this | |
16 | +.\" document under the terms of the GNU Free Documentation License, | |
17 | +.\" Version 1.3 or any later version published by the Free Software | |
18 | +.\" Foundation; with no Invariant Sections, no Front-Cover Texts, | |
19 | +.\" and no Back-Cover Texts. | |
20 | +.\" | |
21 | +.\" A copy of the Free Documentation License is included as a file | |
22 | +.\" called fdl-v1.3.txt, in the fdl directory of the groff-pdfmark | |
23 | +.\" source package, whence it is programmatically marked up, to be | |
24 | +.\" processed by groff -m pdfmark, for inclusion as an appendix to | |
25 | +.\" the pdfmark.pdf document. | |
26 | +.\" | |
27 | +.\" ==================================================================== | |
28 | +. | |
29 | +.\" Save and disable compatibility mode (e.g., for Solaris 10/11). | |
30 | +.nr _? \n(.C | |
31 | +.do rnn _? *groff_opmode_7_man_C | |
32 | +.cp 0 | |
33 | +. | |
34 | +.\" ==================================================================== | |
35 | +.\" Local macro definitions | |
36 | +.\" ==================================================================== | |
37 | +. | |
38 | +.\" @IMPORT_LOCAL_FALLBACK_MACROS@ | |
39 | +. | |
40 | +. | |
41 | +.\" ==================================================================== | |
42 | +.SH Description | |
43 | +.\" ==================================================================== | |
44 | +. | |
45 | +Primarily intended to support the operation of | |
46 | +.MR pdfroff @MAN1EXT@ , | |
47 | +but also potentially useful in other, similar contexts, | |
48 | +the | |
49 | +.B \%groff_opmode | |
50 | +supplementary macro package offers a mechanism | |
51 | +for synchronization of the typesetter's \%\(lqpen-up\(rq | |
52 | +and \%\(lqpen-down\(rq states, | |
53 | +as appropriate to particular phases of document production. | |
54 | +. | |
55 | +In the case of | |
56 | +.MR pdfroff @MAN1EXT@ , | |
57 | +it is used to suppress the output of the document body content, | |
58 | +when processing the phase for production of a table of contents, | |
59 | +(when this is output | |
60 | +.I following | |
61 | +processing of the body content), | |
62 | +and vice-versa. | |
63 | +. | |
64 | +. | |
65 | +.\" ==================================================================== | |
66 | +.SH Usage | |
67 | +.\" ==================================================================== | |
68 | +. | |
69 | +Typically loaded from within | |
70 | +.MR groff @MAN7EXT@ | |
71 | +document source, | |
72 | +or by another dependent macro package, | |
73 | +using the | |
74 | +.MR groff @MAN7EXT@ | |
75 | +request: | |
76 | +.RS 3n | |
77 | +.SY .\^mso\ opmode | |
78 | +.YS | |
79 | +.RE | |
80 | +. | |
81 | +.P | |
82 | +the | |
83 | +.B \%groff_opmode | |
84 | +macro package provides the | |
85 | +.B \%.\^OP | |
86 | +macro, | |
87 | +which exhibits the invocation syntax: | |
88 | +. | |
89 | +.RS 3n | |
90 | +.SY .\^OP | |
91 | +.RI \%[< output-phase >\ .\|.\|.\&] | |
92 | +.YS | |
93 | +.RE | |
94 | +. | |
95 | +.P | |
96 | +A call of the | |
97 | +.B \%.\^OP | |
98 | +macro should be placed at the beginning of any section of the | |
99 | +.MR groff @MAN7EXT@ | |
100 | +input file, | |
101 | +for which the content is designated for processing | |
102 | +in a different phase from that which has gone before; | |
103 | +for example, | |
104 | +when using the emulated | |
105 | +classical table of contents relocation feature of | |
106 | +.MR pdfroff @MAN7EXT@ , | |
107 | +the call: | |
108 | +.P | |
109 | +.RS 3n | |
110 | +.EX | |
111 | +\%.OP 2 | |
112 | +.EE | |
113 | +.RE | |
114 | +.P | |
115 | +would be placed at the beginning of the document body content, | |
116 | +(normally the beginning of the input file), | |
117 | +indicating that the following content should be output during | |
118 | +.MR pdfroff @MAN7EXT@ 's | |
119 | +document body processing phase, | |
120 | +whereas the complementary call: | |
121 | +.P | |
122 | +.RS 3n | |
123 | +.EX | |
124 | +\%.OP 1 | |
125 | +.EE | |
126 | +.RE | |
127 | +.P | |
128 | +would be placed after the document body content, | |
129 | +to prepare for output of the collected table of contents, in | |
130 | +.MR pdfroff @MAN7EXT@ 's | |
131 | +table of contents processing phase. | |
132 | +. | |
133 | +.P | |
134 | +The behaviour of the | |
135 | +.B \%.\^OP | |
136 | +macro is determined according to the setting of the | |
137 | +.B \%PHASE | |
138 | +register, | |
139 | +which is expected to have been set, | |
140 | +usually as a command line assignment for an individual invocation of | |
141 | +.MR groff @MAN1EXT@ , | |
142 | +depending on the particular phase of output file processing | |
143 | +to which the invocation \%relates\|\(em\|\c | |
144 | +.MR pdfroff @MAN1EXT@ | |
145 | +sets it to | |
146 | +.I \%one | |
147 | +when initiating its table of contents output phase, and to | |
148 | +.I \%two | |
149 | +for its document body output phase. | |
150 | +. | |
151 | +This behaviour may be described as follows: | |
152 | +.RS 3n | |
153 | +.ll -3n | |
154 | +.IP \(bu 2n | |
155 | +If the | |
156 | +.B \%PHASE | |
157 | +register is | |
158 | +.I \%not | |
159 | +defined, | |
160 | +(as is the case during | |
161 | +.MR pdfroff @MAN1EXT@ 's | |
162 | +initial document analysis phase\|\(em\|which | |
163 | +produces no physical output), | |
164 | +.B \%.\^OP | |
165 | +sets the | |
166 | +.B \%OPMODE | |
167 | +register to | |
168 | +.IR one , | |
169 | +but has no effect on | |
170 | +.MR groff @MAN7EXT@ 's | |
171 | +.RI \(lq "pen state" \(rq; | |
172 | +this effectively indicates that | |
173 | +.MR groff @MAN7EXT@ | |
174 | +is expected to be operating in its default | |
175 | +.RI \(lq "pen-down" \(rq | |
176 | +state, | |
177 | +.I without | |
178 | +actually enforcing this. | |
179 | +. | |
180 | +.IP \(bu 2n | |
181 | +When the | |
182 | +.B \%PHASE | |
183 | +register | |
184 | +.I is | |
185 | +defined, | |
186 | +then each specified | |
187 | +.RI \%\(lq< output-phase >\(rq | |
188 | +argument is compared, in turn, with | |
189 | +.BR \%PHASE , | |
190 | +until one compares as equal, | |
191 | +or no more remain; | |
192 | +if an equal match is found, | |
193 | +then the | |
194 | +.B \%OPMODE | |
195 | +register is set to | |
196 | +.IR one , | |
197 | +and | |
198 | +.MR groff @MAN7EXT@ 's | |
199 | +.RI \%\(lq pen-down \(rq | |
200 | +state is activated; | |
201 | +otherwise, | |
202 | +when no equal match is found, the | |
203 | +.B \%OPMODE | |
204 | +register is set to | |
205 | +.IR \%zero , | |
206 | +and | |
207 | +.MR groff @MAN7EXT@ 's | |
208 | +.RI \%\(lq pen-up \(rq | |
209 | +state is activated. | |
210 | +. | |
211 | +.IP \(bu 2n | |
212 | +If the | |
213 | +.B \%PHASE | |
214 | +register | |
215 | +.I is | |
216 | +defined, | |
217 | +but no | |
218 | +.RI \%\(lq< output-phase >\(rq | |
219 | +arguments have been specified, | |
220 | +then the | |
221 | +.B \%OPMODE | |
222 | +register is | |
223 | +.I immediately | |
224 | +set to | |
225 | +.IR one , | |
226 | +and | |
227 | +.MR groff @MAN7EXT@ 's | |
228 | +.RI \%\(lq pen-down \(rq | |
229 | +state is activated. | |
230 | +.ll +3n | |
231 | +.RE | |
232 | +.P | |
233 | +This provides a mechanism for tracking the anticipated | |
234 | +.MR groff @MAN7EXT@ | |
235 | +\(lqpen state\(rq, | |
236 | +when performing multiple phase | |
237 | +.MR groff @MAN1EXT@ | |
238 | +document formatting, | |
239 | +supporting modification of the formatter's behaviour | |
240 | +on the basis of the indicated \(lqpen state\(rq; | |
241 | +for example, the | |
242 | +.MR groff_pdfmark @MAN7EXT@ | |
243 | +macros, | |
244 | +and associated macro packages such as | |
245 | +.MR groff_mspdf @MAN7EXT@ , | |
246 | +may use the information conveyed by | |
247 | +.B \%OPMODE | |
248 | +to suppress generation of | |
249 | +.I \%pdfmark | |
250 | +code, | |
251 | +while processing document sections in which the | |
252 | +.RI \%\(lq pen-up \(rq | |
253 | +state has been activated. | |
254 | +.br | |
255 | +. | |
256 | +. | |
257 | +.ne 5v | |
258 | +.\" ==================================================================== | |
259 | +.SH Control Registers | |
260 | +.\" ==================================================================== | |
261 | +. | |
262 | +The following two numeric registers | |
263 | +are associated with the operation of the | |
264 | +.B \%.\^OP | |
265 | +macro: | |
266 | +.TP | |
267 | +.B \%PHASE | |
268 | +Defined by | |
269 | +.MR pdfroff @MAN1EXT@ , | |
270 | +this numeric register is assigned a value of | |
271 | +.IR one , | |
272 | +when the processing objective is to produce | |
273 | +a table of contents, | |
274 | +and a value of | |
275 | +.IR two , | |
276 | +for production of the document body content. | |
277 | +. | |
278 | +.TP | |
279 | +.B \%OPMODE | |
280 | +Assigned on execution of the | |
281 | +.B \%.\^OP | |
282 | +macro, | |
283 | +this numeric register assumes a value of | |
284 | +.IR \%zero , | |
285 | +when the typesetter is switched to its | |
286 | +.RI \%\(lq pen-up \(rq | |
287 | +state, | |
288 | +and a value of | |
289 | +.IR one , | |
290 | +following a switch to the | |
291 | +.RI \%\(lq pen-down \(rq | |
292 | +state. | |
293 | +. | |
294 | +.IP | |
295 | +When used in conjunction with the | |
296 | +.MR groff_pdfmark @MAN7EXT@ | |
297 | +macros, | |
298 | +the | |
299 | +.B \%OPMODE | |
300 | +register is aliased to that package's | |
301 | +.B \%PDFOPMODE | |
302 | +register. | |
303 | +. | |
304 | +. | |
305 | +.\" ==================================================================== | |
306 | +.SH Files | |
307 | +.\" ==================================================================== | |
308 | +. | |
309 | +.TP | |
310 | +.I \%@SITE_TMACDIR@/opmode.tmac | |
311 | +Provides the implementation of the | |
312 | +.B \%.\^OP | |
313 | +macro. | |
314 | +. | |
315 | +. | |
316 | +.\" ==================================================================== | |
317 | +.SH Caveats\" and Bugs | |
318 | +.\" ==================================================================== | |
319 | +. | |
320 | +Assignment of the | |
321 | +.B \%PHASE | |
322 | +register lies firmly within the purview | |
323 | +of whatever process is responsible for driving multiple phase | |
324 | +.MR groff @MAN1EXT@ | |
325 | +document formatting. | |
326 | +It should neither be defined, | |
327 | +nor reassigned within any document source file; | |
328 | +doing so may result in undefined behaviour. | |
329 | +. | |
330 | +. | |
331 | +.\" ==================================================================== | |
332 | +.\" SH Examples | |
333 | +.\" ==================================================================== | |
334 | +. | |
335 | +. | |
336 | +. | |
337 | +.\" ==================================================================== | |
338 | +.SH Authors | |
339 | +.\" ==================================================================== | |
340 | +. | |
341 | +The | |
342 | +.B \%groff_opmode | |
343 | +supplementary macro implementation is provided by the | |
344 | +.I \%groff-pdfmark | |
345 | +package, | |
346 | +which was written by | |
347 | +.MT keith\:.d\:.marshall@\:ntlworld\:.com | |
348 | +Keith Marshall | |
349 | +.ME ; | |
350 | +originally developed as a complement to the GNU Troff Project, | |
351 | +it is now independently maintained at | |
352 | +.UR https://\:osdn\:.net/\:users/\:keith/\:pf/\:groff-pdfmark/\ | |
353 | +\:wiki/\:\%FrontPage | |
354 | +Keith's | |
355 | +.I \%groff-pdfmark | |
356 | +\%web-site | |
357 | +.UE , | |
358 | +on OSDN, | |
359 | +whence the most recently published version may | |
360 | +.I always | |
361 | +be obtained. | |
362 | +. | |
363 | +.\" ==================================================================== | |
364 | +.SH See Also | |
365 | +.\" ==================================================================== | |
366 | +. | |
367 | +.\" @ENUMERATE_MR_REFERENCES@ | |
368 | +. | |
369 | +.P | |
370 | +More comprehensive documentation on the use of | |
371 | +.MR pdfroff @MAN1EXT@ , | |
372 | +(support of which is the primary function of | |
373 | +.BR \%groff_opmode ), | |
374 | +and of the | |
375 | +.I \%groff-pdfmark | |
376 | +macro suite in general, may be found, | |
377 | +in PDF format, | |
378 | +in the reference guide | |
379 | +.RI \[lq] "Portable Document Format Publishing with GNU Troff" \[rq], | |
380 | +which has also been written by Keith Marshall; | |
381 | +the most recently published version of this guide may be read online, | |
382 | +at | |
383 | +.UR https://\:osdn\:.net/\:users/\:keith/\:pf/\:groff-pdfmark/\ | |
384 | +\:wiki/\:\%FrontPage | |
385 | +the | |
386 | +.I \%groff-pdfmark | |
387 | +OSDN \%web-site | |
388 | +.UE , | |
389 | +whence a copy may also be downloaded. | |
390 | +. | |
391 | +.\" ==================================================================== | |
392 | +. | |
393 | +.\" Restore compatibility mode (for, e.g., Solaris 10/11). | |
394 | +.cp \n[*groff_opmode_7_man_C] | |
395 | +.do rr *groff_opmode_7_man_C | |
396 | +. | |
397 | +.\" ==================================================================== | |
398 | +.\" | |
399 | +.\" Local Variables: | |
400 | +.\" fill-column: 72 | |
401 | +.\" mode: nroff | |
402 | +.\" End: | |
403 | +.\" vim: set filetype=groff textwidth=72: |
@@ -7,20 +7,20 @@ | ||
7 | 7 | |
8 | 8 | $Id$ |
9 | 9 | |
10 | -Copyright (C) 2023 Free Software Foundation, Inc. | |
10 | +Copyright (C) 2023, 2024, Free Software Foundation, Inc. | |
11 | 11 | Written by Keith Marshall (keith.d.marshall@ntlworld.com) |
12 | 12 | |
13 | 13 | |
14 | -This file is part of groff. | |
14 | +This file is part of groff-pdfmark. | |
15 | 15 | |
16 | -groff is free software; you can redistribute it and/or modify it under | |
17 | -the terms of the GNU General Public License as published by the Free | |
18 | -Software Foundation, either version 3 of the License, or | |
19 | -(at your option) any later version. | |
16 | +groff-pdfmark is free software; you can redistribute it and/or modify | |
17 | +it under the terms of the GNU General Public License as published by the | |
18 | +Free Software Foundation, either version 3 of the License, or (at your | |
19 | +option) any later version. | |
20 | 20 | |
21 | -groff is distributed in the hope that it will be useful, but WITHOUT ANY | |
22 | -WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
23 | -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
21 | +groff-pdfmark is distributed in the hope that it will be useful, but | |
22 | +WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY | |
23 | +or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
24 | 24 | for more details. |
25 | 25 | |
26 | 26 | You should have received a copy of the GNU General Public License |
@@ -39,7 +39,7 @@ | ||
39 | 39 | .ie r PDFOPMODE .aln OPMODE PDFOPMODE |
40 | 40 | .el .nr OPMODE 1 |
41 | 41 | . |
42 | -.\" .OP [<output-phase>] | |
42 | +.\" .OP [<output-phase> ...] | |
43 | 43 | .\" |
44 | 44 | .\" If the user-specified PHASE numeric register has been defined, |
45 | 45 | .\" and its value matches the <output-phase> argument value, (or if |