PageRenderTime 144ms CodeModel.GetById 19ms RepoModel.GetById 1ms app.codeStats 1ms

/contrib/groff/man/groff.man

https://bitbucket.org/freebsd/freebsd-head/
Unknown | 3564 lines | 3559 code | 5 blank | 0 comment | 0 complexity | 654730c758ce818da6b15e673ea49876 MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception, BSD-3-Clause, LGPL-2.0, LGPL-2.1, BSD-2-Clause, 0BSD, JSON, AGPL-1.0, GPL-2.0
  1. '\" t
  2. .ig
  3. groff.man
  4. Last update: 17 Feb 2005
  5. This file is part of groff, the GNU roff type-setting system.
  6. Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005
  7. Free Software Foundation, Inc.
  8. written by Bernd Warken <bwarken@mayn.de>
  9. maintained by Werner Lemberg <wl@gnu.org>
  10. Permission is granted to copy, distribute and/or modify this document
  11. under the terms of the GNU Free Documentation License, Version 1.1 or
  12. any later version published by the Free Software Foundation; with the
  13. Invariant Sections being this .ig-section and AUTHORS, with no
  14. Front-Cover Texts, and with no Back-Cover Texts.
  15. A copy of the Free Documentation License is included as a file called
  16. FDL in the main directory of the groff source package.
  17. ..
  18. .
  19. .\" --------------------------------------------------------------------
  20. .\" Setup
  21. .\" --------------------------------------------------------------------
  22. .
  23. .do nr groff_C \n[.C]
  24. .cp 0
  25. .
  26. .mso www.tmac
  27. .
  28. .if n \{\
  29. . mso tty-char.tmac
  30. . ftr CR R
  31. . ftr CI I
  32. . ftr CB B
  33. .\}
  34. .
  35. .if '\*[.T]'dvi' \{\
  36. . ftr CB CW
  37. .\}
  38. .
  39. .
  40. .\" --------------------------------------------------------------------
  41. .\" start of macro definitions
  42. .eo
  43. .
  44. .de c
  45. ..
  46. .
  47. .de TPx
  48. . TP 10n
  49. ..
  50. .c ---------------------------------------------------------------------
  51. .c .Text anything ...
  52. .c
  53. .c All arguments are printed as text.
  54. .c
  55. .de Text
  56. . nop \)\$*
  57. ..
  58. .c ---------------------------------------------------------------------
  59. .c .ExecFF macro font1 font2 text1 text2 text1 text2 ...
  60. .c
  61. .c Concat text arguments using alternating fonts and feed into macro.
  62. .c For a trailing punctuation, terminate the call with \c.
  63. .c
  64. .de ExecFF
  65. . if (\n[.$] < 4) \
  66. . return
  67. . ds @a\"
  68. . ds @m \$1\"
  69. . ds @f1 \$2\"
  70. . ds @f2 \$3\"
  71. . shift 3
  72. . ds @s\"
  73. . while 1 \{\
  74. . if (\n[.$] = 0) \
  75. . break
  76. . ds @a \$1\"
  77. . as @s \f[\*[@f1]]\*[@a]\f[]\"
  78. . shift
  79. . if (\n[.$] = 0) \
  80. . break
  81. . ds @a \$1\"
  82. . as @s \f[\*[@f2]]\*[@a]\f[]\"
  83. . shift
  84. . \}
  85. . \*[@m] "\*[@s]\f[R]"
  86. . ft P \" to make \c happy
  87. . rm @m
  88. . rm @s
  89. . rm @a
  90. . rm @f1
  91. . rm @f2
  92. ..
  93. .
  94. .c --------- command line option ---------
  95. .
  96. .de option
  97. . Text \f[CB]\$*
  98. . ft P
  99. ..
  100. .
  101. .c --------- characters ---------
  102. .
  103. .de character
  104. . ExecFF Text CB R \$*
  105. ..
  106. .de squoted_char
  107. . ds @1 \$1\"
  108. . shift
  109. . ExecFF Text R CB \[oq] \*[@1] "\[cq]\$*"
  110. . rm @1
  111. ..
  112. .de dquoted_char
  113. . ds @1 \$1\"
  114. . shift
  115. . ExecFF Text R CB \[lq] \*[@1] "\[rq]\$*"
  116. . rm @1
  117. ..
  118. .c --------- requests ---------
  119. .
  120. .c synopsis of a request
  121. .de REQ
  122. . if (\n[.$] = 0) \
  123. . return
  124. . ds @1 \$1\"
  125. . shift 1
  126. . ie (\n[.$] = 0) \{\
  127. . TP 10n
  128. . Text \f[CB]\*[@1]\f[]
  129. . \}
  130. . el \{\
  131. . TP 10n
  132. . Text \f[CB]\*[@1]\~\f[]\f[I]\$*\f[]
  133. . \}
  134. . rm @1
  135. ..
  136. .c reference of a request
  137. .de request
  138. . BR \$*
  139. ..
  140. .
  141. .c --------- numerical elements ---------
  142. .
  143. .c number with a trailing unit
  144. .de scalednumber
  145. . Text \$1\^\f[CB]\$2\f[]\$3\f[R]
  146. . ft P
  147. ..
  148. .
  149. .c representation of units within the text
  150. .de scaleindicator
  151. . Text \f[CB]\$1\f[]\$2\f[R]
  152. . ft P
  153. ..
  154. .
  155. .c representation of mathematical operators within the text
  156. .de operator
  157. . squoted_char \$@
  158. ..
  159. .
  160. .
  161. .c --------- escape sequences ---------
  162. .
  163. .c ---------------------------------------------------------------------
  164. .c .ESC name [arg]
  165. .c
  166. .c Synopsis of an escape sequence, optionally with argument
  167. .c Args : 1 or 2; `name' obligatory, `arg' optional
  168. .c name : suitable name for an escape sequence (c, (xy, [long])
  169. .c arg : arbitrary word
  170. .c Result : prints \namearg, where `name' is in CB, `arg' in I
  171. .c
  172. .de ESC
  173. . if (\n[.$] < 1)
  174. . ab .ESC needs 1 or 2 arguments.
  175. . ExecFF IP CB I "\[rs]\$1" "\,\$2\/"
  176. ..
  177. .c ---------------------------------------------------------------------
  178. .c .ESC[] name arg
  179. .c
  180. .c Synopsis for escape sequence with a bracketed long argument
  181. .c Args : 2 obligatory
  182. .c name : suitable name for an escape sequence (c, (xy, [long])
  183. .c arg : arbitrary text
  184. .c Result : prints \name[arg], where `name' is in CB, `arg' in I
  185. .c
  186. .de ESC[]
  187. . if !(\n[.$] = 2) \
  188. . ab .ESC[] needs exactly 2 arguments.
  189. . ExecFF IP CB I "\[rs]\$1\[lB]" "\h'-0.2m'\$2\h'-0.15m'" \[rB]
  190. ..
  191. .c ---------------------------------------------------------------------
  192. .c .ESCq name arg
  193. .c
  194. .c Synopsis for escape sequence with a bracketed long argument
  195. .c Args : 2 obligatory
  196. .c name : suitable name for an escape sequence (c, (xy, [long])
  197. .c arg : arbitrary text
  198. .c Result : prints \name'arg', where `name' is in CB, `arg' in I
  199. .c
  200. .de ESCq
  201. . if !(\n[.$] = 2) \
  202. . ab .ESCq needs exactly 2 argument.
  203. . ExecFF IP CB I "\[rs]\$1\[cq]" "\h'-0.3m'\$2" \[cq]
  204. ..
  205. .c ---------------------------------------------------------------------
  206. .c .ESC? arg
  207. .c
  208. .c Synopsis for escape sequence with a bracketed long argument
  209. .c Args : 1 obligatory
  210. .c arg : arbitrary text
  211. .c Result : prints `\?arg?', where the `?' are in CB, `arg' in I
  212. .c
  213. .de ESC?
  214. . if !(\n[.$] = 1) \
  215. . ab .ESC? needs exactly 1 arguments.
  216. . ExecFF IP CB I \[rs]? "\$1" ?
  217. ..
  218. .c ---------------------------------------------------------------------
  219. .c .esc name [punct]
  220. .c
  221. .c Reference of an escape sequence (no args), possibly punctuation
  222. .c Args : 1 obligatory
  223. .c name : suitable name for an escape sequence (c, (xy, [long])
  224. .c punct : arbitrary
  225. .c Result : prints \name, where `name' is in B, `punct' in R
  226. .c
  227. .de esc
  228. . if (\n[.$] < 1) \
  229. . ab .esc needs 1 or 2 arguments.
  230. . BR "\[rs]\$1" \$2
  231. ..
  232. .c ---------------------------------------------------------------------
  233. .c .escarg name arg [punct]
  234. .c
  235. .c Reference of an escape sequence (no args)
  236. .c Args : 1 obligatory, 1 optional
  237. .c name : suitable name for an escape sequence (c, (xy, [long])
  238. .c arg : arbitrary word
  239. .c Result : prints \namearg, where
  240. .c `name' is in B, `arg' in I
  241. .c
  242. .de escarg
  243. . if (\n[.$] < 2) \
  244. . ab .esc needs 2 or 3 arguments.
  245. . Text \f[B]\[rs]\$1\f[]\f[I]\$2\f[]\$3
  246. ..
  247. .c ---------------------------------------------------------------------
  248. .c .esc[] name arg [punct]
  249. .c
  250. .c Reference for escape sequence with a bracketed long argument
  251. .c Args : 2 obligatory
  252. .c name : suitable name for an escape sequence (c, (xy, [long])
  253. .c arg : arbitrary text
  254. .c Result : prints \name[arg], where `name' is in CB, `arg' in CI
  255. .c
  256. .de esc[]
  257. . if (\n[.$] < 2) \
  258. . ab .esc[] needs 2 or 3 arguments.
  259. . Text \f[B]\[rs]\$1\[lB]\f[]\f[I]\$2\f[]\f[B]\[rB]\f[]\$3
  260. ..
  261. .
  262. .c ---------------------------------------------------------------------
  263. .c .escq name arg
  264. .c
  265. .c Reference for escape sequence with a bracketed long argument
  266. .c Args : 2 obligatory
  267. .c name : suitable name for an escape sequence (c, (xy, [long])
  268. .c arg : arbitrary text
  269. .c Result : prints \name'arg', where `name' is in CB, `arg' in CI
  270. .c
  271. .de escq
  272. . if (\n[.$] < 2) \
  273. . ab .escq needs 2 arguments.
  274. . Text \f[B]\[rs]\$1\[cq]\f[]\f[I]\$2\f[]\f[B]\[cq]\f[]\$3
  275. ..
  276. .
  277. .c --------- strings ---------
  278. .
  279. .c synopsis for string, with \*[]
  280. .de STRING
  281. . ds @1 \$1\"
  282. . shift 1
  283. . TP 10n
  284. . ExecFF Text R CB \[rs]*[ \*[@1]\f[]\f[R]] \$*
  285. . rm @1
  286. ..
  287. .c synopsis for a long string
  288. .de string
  289. . if (\n[.$] = 0) \
  290. . return
  291. . Text \f[CB]\[rs]*\[lB]\$1\[rB]\f[]\$2
  292. ..
  293. .
  294. .
  295. .c --------- registers ---------
  296. .
  297. .c synopsis for registers, with \n[]
  298. .de REG
  299. . ds @1 \$1\"
  300. . shift 1
  301. . TP 10n
  302. . ExecFF Text R CB \[rs]n[ \*[@1]\f[]\f[R]] \$*
  303. . rm @1
  304. ..
  305. .c reference of a register, without decoration
  306. .de register
  307. . Text register
  308. . BR \$*
  309. ..
  310. .
  311. .ec
  312. .\" end of macro definitions
  313. .
  314. .
  315. .\" --------------------------------------------------------------------
  316. .\" Title
  317. .\" --------------------------------------------------------------------
  318. .
  319. .TH GROFF @MAN7EXT@ "@MDATE@" "Groff Version @VERSION@"
  320. .SH NAME
  321. groff \- a short reference for the GNU roff language
  322. .
  323. .
  324. .\" --------------------------------------------------------------------
  325. .SH DESCRIPTION
  326. .\" --------------------------------------------------------------------
  327. .
  328. The name
  329. .I groff
  330. stands for
  331. .I GNU roff
  332. and is the free implementation of the roff type-setting system.
  333. .
  334. See
  335. .BR roff (@MAN7EXT@)
  336. for a survey and the background of the groff system.
  337. .
  338. .P
  339. This document gives only short descriptions of the predefined roff
  340. language elements as used in groff.
  341. .
  342. Both the classical features and the groff extensions are provided.
  343. .
  344. .P
  345. Historically, the
  346. .I roff language
  347. was called
  348. .IR troff .
  349. .I groff
  350. is compatible with the classical system and provides proper
  351. extensions.
  352. .
  353. So in GNU, the terms
  354. .IR roff ,
  355. .IR troff ,
  356. and
  357. .I groff language
  358. could be used as synonyms.
  359. .
  360. However
  361. .I troff
  362. slightly tends to refer more to the classical aspects, whereas
  363. .I groff
  364. emphasizes the GNU extensions, and
  365. .I roff
  366. is the general term for the language.
  367. .
  368. .P
  369. This file is only a short version of the complete documentation that
  370. is found in the
  371. .I groff
  372. .BR info (1)
  373. file, which contains more detailed, actual, and concise information.
  374. .
  375. .P
  376. The general syntax for writing groff documents is relatively easy, but
  377. writing extensions to the roff language can be a bit harder.
  378. .
  379. .P
  380. The roff language is line-oriented.
  381. .
  382. There are only two kinds of lines, control lines and text lines.
  383. .
  384. The control lines start with a control character, by default a period
  385. .dquoted_char .
  386. or a single quote
  387. .dquoted_char ' ;
  388. all other lines are text lines.
  389. .
  390. .P
  391. .B Control lines
  392. represent commands, optionally with arguments.
  393. .
  394. They have the following syntax.
  395. .
  396. The leading control character can be followed by a command name;
  397. arguments, if any, are separated by blanks from the command name and
  398. among themselves, for example,
  399. .RS
  400. .
  401. .P
  402. .Text .command_name arg1 arg2
  403. .RE
  404. .
  405. .P
  406. For indentation, any number of space or tab characters can be inserted
  407. between the leading control character and the command name, but the
  408. control character must be on the first position of the line.
  409. .
  410. .P
  411. .B Text lines
  412. represent the parts that will be printed.
  413. They can be modified by escape sequences, which are recognized by a
  414. leading backslash
  415. .squoted_char \[rs] .
  416. These are in-line or even in-word formatting elements or functions.
  417. .
  418. Some of these take arguments separated by single quotes
  419. .dquoted_char ' ,
  420. others are regulated by a length encoding introduced by an open
  421. parenthesis
  422. .squoted_char (
  423. or enclosed in brackets
  424. .squoted_char [
  425. and
  426. .squoted_char ] .
  427. .
  428. .P
  429. The roff language provides flexible instruments for writing language
  430. extension, such as macros.
  431. .
  432. When interpreting macro definitions, the roff system enters a special
  433. operating mode, called the
  434. .BR "copy mode" .
  435. .
  436. .P
  437. The copy mode behavior can be quite tricky, but there are some rules
  438. that ensure a safe usage.
  439. .
  440. .IP 1.
  441. Printable backslashes must be denoted as
  442. .esc e .
  443. To be more precise,
  444. .esc e
  445. represents the current escape character.
  446. .
  447. To get a backslash glyph, use
  448. .esc (rs
  449. or
  450. .esc [rs] .
  451. .IP 2.
  452. Double all backslashes.
  453. .IP 3.
  454. Begin all text lines with the special non-spacing character
  455. .esc & .
  456. .
  457. .P
  458. This does not produce the most efficient code, but it should work as a
  459. first measure.
  460. .
  461. For better strategies, see the groff info file and
  462. .BR groff_tmac (@MAN5EXT@).
  463. .
  464. .P
  465. Reading roff source files is easier, just reduce all double backslashes
  466. to a single one in all macro definitions.
  467. .
  468. .
  469. .\" --------------------------------------------------------------------
  470. .SH "GROFF ELEMENTS"
  471. .\" --------------------------------------------------------------------
  472. .
  473. The roff language elements add formatting information to a text file.
  474. .
  475. The fundamental elements are predefined commands and variables that
  476. make roff a full-blown programming language.
  477. .
  478. .P
  479. There are two kinds of roff commands, possibly with arguments.
  480. .B Requests
  481. are written on a line of their own starting with a dot
  482. .squoted_char .
  483. or a
  484. .dquoted_char ' ,
  485. whereas
  486. .B Escape sequences
  487. are in-line functions and in-word formatting elements starting with a
  488. backslash
  489. .squoted_char \[rs] .
  490. .
  491. .P
  492. The user can define her own formatting commands using the
  493. .request de
  494. request.
  495. .
  496. These commands are called
  497. .BR macros ,
  498. but they are used exactly like requests.
  499. .
  500. Macro packages are pre-defined sets of macros written in the groff
  501. language.
  502. .
  503. A user's possibilities to create escape sequences herself is very
  504. limited, only special characters can be mapped.
  505. .
  506. .P
  507. The groff language provides several kinds of variables with
  508. different interfaces.
  509. .
  510. There are pre-defined variables, but the user can define her own
  511. variables as well.
  512. .
  513. .P
  514. .B String
  515. variables store character sequences.
  516. .
  517. They are set with the
  518. .request ds
  519. request and retrieved by the
  520. .esc *
  521. escape sequences.
  522. .
  523. Strings can have variables.
  524. .
  525. .P
  526. .B Register
  527. variables can store numerical values, numbers with a scale unit, and
  528. occasionally string-like objects.
  529. .
  530. They are set with the
  531. .request nr
  532. request and retrieved by the
  533. .esc n
  534. escape sequences.
  535. .
  536. .P
  537. .B Environments
  538. allow the user to temporarily store global formatting parameters like
  539. line length, font size, etc.\& for later reuse.
  540. .
  541. This is done by the
  542. .request ev
  543. request.
  544. .
  545. .P
  546. .B Fonts
  547. are identified either by a name or by an internal number.
  548. .
  549. The current font is chosen by the
  550. .request ft
  551. request or by the
  552. .esc f
  553. escape sequences.
  554. .
  555. Each device has special fonts, but the following fonts are available
  556. for all devices.
  557. .B R
  558. is the standard font Roman.
  559. .B B
  560. is its
  561. .B bold
  562. counterpart.
  563. .
  564. The
  565. .I italic
  566. font is called
  567. .B I
  568. and is available everywhere, but on text devices it is displayed as an
  569. underlined Roman font.
  570. .
  571. For the graphical output devices, there exist constant-width pendants
  572. of these fonts,
  573. .BR CR ,
  574. .BR CI ,
  575. and
  576. .BR CB .
  577. On text devices, all characters have a constant width anyway.
  578. .
  579. .P
  580. Moreover, there are some advanced roff elements.
  581. .
  582. A
  583. .B diversion
  584. stores information into a macro for later usage.
  585. .
  586. A
  587. .B trap
  588. is a positional condition like a certain number of lines from page top
  589. or in a diversion or in the input.
  590. .
  591. Some action can be prescribed to be run automatically when the
  592. condition is met.
  593. .
  594. .P
  595. More detailed information and examples can be found in the groff info
  596. file.
  597. .
  598. .
  599. .\" --------------------------------------------------------------------
  600. .SH "CONTROL CHARACTERS"
  601. .\" --------------------------------------------------------------------
  602. .
  603. There is a small set of characters that have a special controlling
  604. task in certain conditions.
  605. .
  606. .TP
  607. .character .
  608. A dot is only special at the beginning of a line or after the
  609. condition in the requests
  610. .request if ,
  611. .request ie ,
  612. .request el ,
  613. and
  614. .request while .
  615. There it is the control character that introduces a request (or macro).
  616. .
  617. The special behavior can be delayed by using the
  618. .esc .
  619. escape.
  620. .
  621. By using the
  622. .request cc
  623. request, the control character can be set to a different character,
  624. making the dot
  625. .squoted_char .
  626. a non-special character.
  627. .IP ""
  628. In all other positions, it just means a dot character.
  629. .
  630. In text paragraphs, it is advantageous to start each sentence at a
  631. line of its own.
  632. .
  633. .TP
  634. .character '
  635. The single quote has two controlling tasks.
  636. .
  637. At the beginning of a line and in the conditional requests it is the
  638. non-breaking control character.
  639. .
  640. That means that it introduces a request like the dot, but with the
  641. additional property that this request doesn't cause a linebreak.
  642. .
  643. By using the
  644. .request c2
  645. request, the non-break control character can be set to a different
  646. character.
  647. .
  648. .IP ""
  649. As a second task, it is the most commonly used argument separator in
  650. some functional escape sequences (but any pair of characters not part
  651. of the argument will work).
  652. .
  653. In all other positions, it denotes the single quote or apostrophe
  654. character.
  655. .
  656. Groff provides a printable representation with the
  657. .esc (cq
  658. escape sequence.
  659. .
  660. .TP
  661. .character \[dq]
  662. The double quote is used to enclose arguments in requests, macros, and
  663. strings.
  664. .
  665. In the
  666. .request ds
  667. and
  668. .request as
  669. requests, a leading double quote in the argument will be stripped off,
  670. making everything else afterwards the string to be defined (enabling
  671. leading whitespace).
  672. .
  673. The escaped double quote
  674. .esc \[dq]
  675. introduces a comment.
  676. .
  677. Otherwise, it is not special.
  678. .
  679. Groff provides a printable representation with the
  680. .esc (dq
  681. escape sequence.
  682. .
  683. .TP
  684. .character \[rs]
  685. The backslash usually introduces an escape sequence (this can be
  686. changed with the
  687. .request ec
  688. request).
  689. .
  690. A printed version of the escape character is the
  691. .esc e
  692. escape; a backslash glyph can be obtained by
  693. .esc (rs .
  694. .TP
  695. .character (
  696. The open parenthesis is only special in escape sequences when
  697. introducing an escape name or argument consisting of exactly two
  698. characters.
  699. .
  700. In groff, this behavior can be replaced by the \f[CB][]\f[] construct.
  701. .TP
  702. .character [
  703. The opening bracket is only special in groff escape sequences; there
  704. it is used to introduce a long escape name or long escape argument.
  705. .
  706. Otherwise, it is non-special, e.g.\& in macro calls.
  707. .TP
  708. .character ]
  709. The closing bracket is only special in groff escape sequences; there
  710. it terminates a long escape name or long escape argument.
  711. .
  712. Otherwise, it is non-special.
  713. .TP
  714. \f[CI]space\f[]
  715. Space characters are only functional characters.
  716. .
  717. They separate the arguments in requests, macros, and strings, and the words
  718. in text lines.
  719. .
  720. They are subject to groff's horizontal spacing calculations.
  721. .
  722. To get a defined space width, escape sequences like
  723. .squoted_char "\[rs]\ "
  724. (this is the escape character followed by a space),
  725. .esc | ,
  726. .esc ^ ,
  727. or
  728. .esc h
  729. should be used.
  730. .
  731. .IP \f[CI]newline\f[]
  732. In text paragraphs, newlines mostly behave like space characters.
  733. .
  734. Continuation lines can be specified by an escaped newline, i.e., by
  735. specifying a backslash
  736. .squoted_char \[rs]
  737. as the last character of a line.
  738. .IP \f[CI]tab\f[]
  739. If a tab character occurs during text the interpreter makes a
  740. horizontal jump to the next pre-defined tab position.
  741. .
  742. There is a sophisticated interface for handling tab positions.
  743. .
  744. .
  745. .\" --------------------------------------------------------------------
  746. .SH "NUMERICAL EXPRESSIONS"
  747. .\" --------------------------------------------------------------------
  748. .
  749. A
  750. .B numerical value
  751. is a signed or unsigned integer or float with or without an appended
  752. scaling indicator.
  753. .
  754. A
  755. .B scaling indicator
  756. is a one-character abbreviation for a unit of measurement.
  757. .
  758. A number followed by a scaling indicator signifies a size value.
  759. .
  760. By default, numerical values do not have a scaling indicator, i.e., they
  761. are normal numbers.
  762. .
  763. .P
  764. The
  765. .I roff
  766. language defines the following scaling indicators.
  767. .
  768. .
  769. .P
  770. .PD 0
  771. .RS
  772. .
  773. .TPx
  774. .B c
  775. Centimeter
  776. .
  777. .TPx
  778. .B i
  779. Inch
  780. .
  781. .TPx
  782. .B P
  783. Pica\ \[eq]\ 1/6\ inch
  784. .
  785. .TPx
  786. .B p
  787. Point\ \[eq]\ 1/72\ inch
  788. .
  789. .TPx
  790. .B m
  791. Em\ \[eq]\ \f[R]the font size in points (width of letter `\f[CR]m\f[R]')
  792. .
  793. .TPx
  794. .B M
  795. 100\^th \f[R]of an \f[CR]Em
  796. .
  797. .TPx
  798. .B n
  799. En\ \[eq]\ Em/2
  800. .
  801. .TPx
  802. .B u
  803. Basic unit for actual output device
  804. .
  805. .TPx
  806. .B v
  807. Vertical line space in basic units
  808. scaled point\ \[eq]\ 1/\f[CI]sizescale\f[R] of a point (defined in
  809. font \f[I]DESC\f[] file)
  810. .
  811. .TPx
  812. .B f
  813. Scale by 65536.
  814. .RE
  815. .PD
  816. .
  817. .P
  818. .B Numerical expressions
  819. are combinations of the numerical values defined above with the
  820. following arithmetical operators already defined in classical troff.
  821. .
  822. .P
  823. .PD 0
  824. .RS
  825. .
  826. .TPx
  827. .B +
  828. Addition
  829. .
  830. .TPx
  831. .B \-
  832. Subtraction
  833. .
  834. .TPx
  835. .B *
  836. Multiplication
  837. .
  838. .TPx
  839. .B /
  840. Division
  841. .
  842. .TPx
  843. .B %
  844. Modulo
  845. .
  846. .TPx
  847. .B =
  848. Equals
  849. .
  850. .TPx
  851. .B ==
  852. Equals
  853. .
  854. .TPx
  855. .B <
  856. Less than
  857. .
  858. .TPx
  859. .B >
  860. Greater than
  861. .
  862. .TPx
  863. .B <=
  864. Less or equal
  865. .
  866. .TPx
  867. .B >=
  868. Greater or equal
  869. .
  870. .TPx
  871. .B &
  872. Logical and
  873. .
  874. .TPx
  875. .B :
  876. Logical or
  877. .
  878. .TPx
  879. .B !
  880. Logical not
  881. .
  882. .TPx
  883. .B (
  884. Grouping of expressions
  885. .
  886. .TPx
  887. .B )
  888. Close current grouping
  889. .
  890. .RE
  891. .PD
  892. .
  893. .P
  894. Moreover,
  895. .I groff
  896. added the following operators for numerical expressions:
  897. .
  898. .P
  899. .PD 0
  900. .RS
  901. .
  902. .TPx
  903. .ExecFF Text I CB e1 >? e2
  904. The maximum of
  905. .I e1
  906. and
  907. .IR e2 .
  908. .
  909. .TPx
  910. .ExecFF Text I CB e1 <? e2
  911. The minimum of
  912. .I e1
  913. and
  914. .IR e2 .
  915. .
  916. .TPx
  917. .ExecFF Text CB I ( c ; e )
  918. Evaluate
  919. .I e
  920. using
  921. .I c
  922. as the default scaling indicator.
  923. .
  924. .RE
  925. .PD
  926. .
  927. .P
  928. For details see the groff info file.
  929. .
  930. .
  931. .\" --------------------------------------------------------------------
  932. .SH CONDITIONS
  933. .\" --------------------------------------------------------------------
  934. .
  935. .B Conditions
  936. occur in tests raised by the
  937. .request if ,
  938. .request ie ,
  939. and the
  940. .request while
  941. requests.
  942. .
  943. The following table characterizes the different types of conditions.
  944. .
  945. .P
  946. .PD 0
  947. .RS
  948. .
  949. .TPx
  950. .I N
  951. A numerical expression
  952. .I N
  953. yields true if its value is greater than\~0.
  954. .
  955. .TPx
  956. .BI ! N
  957. True if the value of
  958. .I I
  959. is\~0.
  960. .
  961. .TPx
  962. .BI ' s1 ' s2 '
  963. True if string\~\c
  964. .I s1
  965. is identical to string\~\c
  966. .IR s2 .
  967. .
  968. .TPx
  969. .BI !' s1 ' s2 '
  970. True if string\~\c
  971. .I s1
  972. is not identical to string\~\c
  973. .IR s2 .
  974. .
  975. .TPx
  976. .BI c ch
  977. True if there is a character\~\c
  978. .I ch
  979. available.
  980. .
  981. .TPx
  982. .BI d name
  983. True if there is a string, macro, diversion, or request called
  984. .IR name .
  985. .
  986. .TPx
  987. .B e
  988. Current page number is even.
  989. .
  990. .TPx
  991. .B o
  992. Current page number is odd.
  993. .
  994. .TPx
  995. .BI m name
  996. True if there is a color called
  997. .IR name .
  998. .
  999. .TPx
  1000. .B n
  1001. Formatter is
  1002. .BR nroff .
  1003. .
  1004. .TPx
  1005. .BI r reg
  1006. True if there is a register named
  1007. .IR reg .
  1008. .
  1009. .TPx
  1010. .B t
  1011. Formatter is
  1012. .BR troff .
  1013. .
  1014. .TPx
  1015. .BI F font
  1016. True if there exists a font named
  1017. .IR font .
  1018. .
  1019. .TPx
  1020. .BI S style
  1021. True if a style named
  1022. .I style
  1023. has been registered.
  1024. .
  1025. .RE
  1026. .PD
  1027. .
  1028. .
  1029. .\" --------------------------------------------------------------------
  1030. .SH REQUESTS
  1031. .\" --------------------------------------------------------------------
  1032. .
  1033. This section provides a short reference for the predefined requests.
  1034. .
  1035. In groff, request and macro names can be arbitrarily long.
  1036. .
  1037. No bracketing or marking of long names is needed.
  1038. .
  1039. .P
  1040. Most requests take one or more arguments.
  1041. .
  1042. The arguments are separated by space characters (no tabs!); there is
  1043. no inherent limit for their length or number.
  1044. .
  1045. An argument can be enclosed by a pair of double quotes.
  1046. .
  1047. This is very handy if an argument contains space characters, e.g.,
  1048. .RI \[dq] "arg with space" \[dq]
  1049. denotes a single argument.
  1050. .
  1051. .P
  1052. Some requests have optional arguments with a different behaviour.
  1053. .
  1054. Not all of these details are outlined here.
  1055. .
  1056. Refer to the groff info file and
  1057. .BR groff_diff (@MAN7EXT@)
  1058. for all details.
  1059. .
  1060. .P
  1061. In the following request specifications, most argument names were
  1062. chosen to be descriptive.
  1063. .
  1064. Only the following denotations need clarification.
  1065. .
  1066. .P
  1067. .PD 0
  1068. .RS
  1069. .
  1070. .TPx
  1071. .I c
  1072. denotes a single character.
  1073. .
  1074. .TPx
  1075. .I font
  1076. a font either specified as a font name or a font number.
  1077. .
  1078. .TPx
  1079. .I anything
  1080. all characters up to the end of the line or within
  1081. .esc {
  1082. and
  1083. .esc } .
  1084. .
  1085. .TPx
  1086. .I n
  1087. is a numerical expression that evaluates to an integer value.
  1088. .
  1089. .TPx
  1090. .I N
  1091. is an arbitrary numerical expression, signed or unsigned.
  1092. .
  1093. .TPx
  1094. .I \[+-]N
  1095. has three meanings depending on its sign, described below.
  1096. .
  1097. .RE
  1098. .PD
  1099. .
  1100. .P
  1101. If an expression defined as
  1102. .I \[+-]N
  1103. starts with a
  1104. .squoted_char +
  1105. sign the resulting value of the expression will be added to an already
  1106. existing value inherent to the related request, e.g.\& adding to a number
  1107. register.
  1108. .
  1109. If the expression starts with a
  1110. .squoted_char -
  1111. the value of the expression will be subtracted from the request value.
  1112. .
  1113. .P
  1114. Without a sign,
  1115. .I N
  1116. replaces the existing value directly.
  1117. .
  1118. To assign a negative number either prepend\~0 or enclose the negative
  1119. number in parentheses.
  1120. .
  1121. .
  1122. .\" --------------------------------------------------------------------
  1123. .SS "Request Short Reference"
  1124. .\" --------------------------------------------------------------------
  1125. .
  1126. .PD 0
  1127. .
  1128. .REQ .
  1129. Empty line, ignored.
  1130. .
  1131. Useful for structuring documents.
  1132. .
  1133. .REQ .\[rs]\[dq] anything
  1134. Complete line is a comment.
  1135. .
  1136. .REQ .ab string
  1137. Print
  1138. .I string
  1139. on standard error, exit program.
  1140. .
  1141. .REQ .ad
  1142. Begin line adjustment for output lines in current adjust mode.
  1143. .
  1144. .REQ .ad c
  1145. Start line adjustment in mode
  1146. .I c
  1147. (\f[CI]c\f[]\f[CR]\|\^\[eq]\|l,r,b,n\f[]).
  1148. .
  1149. .REQ .af register c
  1150. Assign format
  1151. .I c
  1152. to
  1153. .I register
  1154. (\f[CI]c\f[]\f[CR]\|\^\[eq]\|l,i,I,a,A\f[]).
  1155. .
  1156. .REQ .aln alias register
  1157. Create alias name for
  1158. .IR register .
  1159. .
  1160. .REQ .als alias object
  1161. Create alias name for request, string, macro, or diversion
  1162. .IR object .
  1163. .
  1164. .REQ .am macro
  1165. Append to
  1166. .I macro
  1167. until
  1168. .B ..\&
  1169. is encountered.
  1170. .
  1171. .REQ .am macro end
  1172. Append to
  1173. .I macro
  1174. until
  1175. .request .end
  1176. is called.
  1177. .
  1178. .REQ .am1 macro
  1179. Same as
  1180. .request .am
  1181. but with compatibility mode switched off during macro expansion.
  1182. .
  1183. .REQ .am1 macro end
  1184. Same as
  1185. .request .am
  1186. but with compatibility mode switched off during macro expansion.
  1187. .
  1188. .REQ .ami macro
  1189. Append to a macro whose name is contained in the string register
  1190. .I macro
  1191. until
  1192. .B ..\&
  1193. is encountered.
  1194. .
  1195. .REQ .ami macro end
  1196. Append to a macro indirectly.
  1197. .I macro
  1198. and
  1199. .I end
  1200. are string registers whose contents are interpolated for the macro name
  1201. and the end macro, respectively.
  1202. .
  1203. .REQ .ami1 macro
  1204. Same as
  1205. .request .ami
  1206. but with compatibility mode switched off during macro expansion.
  1207. .
  1208. .REQ .ami1 macro end
  1209. Same as
  1210. .request .ami
  1211. but with compatibility mode switched off during macro expansion.
  1212. .
  1213. .REQ .as stringvar anything
  1214. Append
  1215. .I anything
  1216. to
  1217. .IR stringvar .
  1218. .
  1219. .REQ .as1 stringvar anything
  1220. Same as
  1221. .request .as
  1222. but with compatibility mode switched off during string expansion.
  1223. .
  1224. .REQ .asciify diversion
  1225. Unformat ASCII characters, spaces, and some escape sequences in
  1226. .IR diversion .
  1227. .
  1228. .REQ .backtrace
  1229. Print a backtrace of the input on stderr.
  1230. .
  1231. .REQ .bd font N
  1232. Embolden
  1233. .I font
  1234. by
  1235. .IR N -1
  1236. units.
  1237. .
  1238. .REQ .bd S font N
  1239. Embolden Special Font
  1240. .I S
  1241. when current font is
  1242. .IR font .
  1243. .
  1244. .REQ .blm
  1245. Unset the blank line macro.
  1246. .
  1247. .REQ .blm macro
  1248. Set the blank line macro to
  1249. .IR macro .
  1250. .
  1251. .REQ .box
  1252. End current diversion.
  1253. .
  1254. .REQ .box macro
  1255. Divert to
  1256. .IR macro ,
  1257. omitting a partially filled line.
  1258. .
  1259. .REQ .boxa
  1260. End current diversion.
  1261. .
  1262. .REQ .boxa macro
  1263. Divert and append to
  1264. .IR macro ,
  1265. omitting a partially filled line.
  1266. .
  1267. .REQ .bp
  1268. Eject current page and begin new page.
  1269. .
  1270. .REQ .bp \[+-]N
  1271. Eject current page; next page number
  1272. .IR \[+-]N .
  1273. .
  1274. .REQ .br
  1275. Line break.
  1276. .
  1277. .REQ .brp
  1278. Break and spread output line.
  1279. Same as
  1280. .esc p .
  1281. .
  1282. .REQ .break
  1283. Break out of a while loop.
  1284. .
  1285. .REQ .c2
  1286. Reset no-break control character to
  1287. .dquoted_char ' .
  1288. .
  1289. .REQ .c2 c
  1290. Set no-break control character to
  1291. .IR c .
  1292. .
  1293. .REQ .cc
  1294. Reset control character to
  1295. .squoted_char . .
  1296. .
  1297. .REQ .cc c
  1298. Set control character to
  1299. .IR c .
  1300. .
  1301. .REQ .ce
  1302. Center the next input line.
  1303. .
  1304. .REQ .ce N
  1305. Center following
  1306. .I N
  1307. input lines.
  1308. .
  1309. .REQ .cf filename
  1310. Copy contents of file
  1311. .I filename
  1312. unprocessed to stdout or to the diversion.
  1313. .
  1314. .REQ .cflags mode c1 c2 .\|.\|.\&
  1315. Treat characters
  1316. .IR c1 ,
  1317. .IR c2 ,
  1318. .I .\|.\|.\&
  1319. according to
  1320. .I mode
  1321. number.
  1322. .
  1323. .REQ .ch trap N
  1324. Change
  1325. .I trap
  1326. location
  1327. to
  1328. .I N .
  1329. .
  1330. .REQ .char c anything
  1331. Define character
  1332. .I c
  1333. as string
  1334. .IR anything .
  1335. .
  1336. .REQ .chop object
  1337. Chop the last character off macro, string, or diversion
  1338. .IR object .
  1339. .
  1340. .REQ .close stream
  1341. Close the
  1342. .IR stream .
  1343. .
  1344. .REQ .color
  1345. Enable colors.
  1346. .
  1347. .REQ .color N
  1348. If
  1349. .I N
  1350. is zero disable colors, otherwise enable them.
  1351. .
  1352. .REQ .composite from to
  1353. Map glyph name
  1354. .I from
  1355. to glyph name
  1356. .I to
  1357. while constructing a composite glyph name.
  1358. .
  1359. .REQ .continue
  1360. Finish the current iteration of a while loop.
  1361. .
  1362. .REQ .cp
  1363. Enable compatibility mode.
  1364. .
  1365. .REQ .cp N
  1366. If
  1367. .I N
  1368. is zero disable compatibility mode, otherwise enable it.
  1369. .
  1370. .REQ .cs font N M
  1371. Set constant character width mode for
  1372. .I font
  1373. to
  1374. .IR N /36
  1375. ems with em
  1376. .IR M .
  1377. .
  1378. .REQ .cu N
  1379. Continuous underline in nroff, like
  1380. .request .ul
  1381. in troff.
  1382. .
  1383. .REQ .da
  1384. End current diversion.
  1385. .
  1386. .REQ .da macro
  1387. Divert and append to
  1388. .IR macro .
  1389. .
  1390. .REQ .de macro
  1391. Define or redefine
  1392. .I macro
  1393. until
  1394. .B ..\&
  1395. is encountered.
  1396. .
  1397. .REQ .de macro end
  1398. Define or redefine
  1399. .I macro
  1400. until
  1401. .request .end
  1402. is called.
  1403. .
  1404. .REQ .de1 macro
  1405. Same as
  1406. .request .de
  1407. but with compatibility mode switched off during macro expansion.
  1408. .
  1409. .REQ .de1 macro end
  1410. Same as
  1411. .request .de
  1412. but with compatibility mode switched off during macro expansion.
  1413. .
  1414. .REQ .defcolor color scheme component
  1415. Define or redefine a color with name
  1416. .IR color .
  1417. .I scheme
  1418. can be
  1419. .BR rgb ,
  1420. .BR cym ,
  1421. .BR cymk ,
  1422. .BR gray ,
  1423. or
  1424. .BR grey .
  1425. .I component
  1426. can be single components specified as fractions in the range 0 to 1
  1427. (default scaling indicator\~\c
  1428. .scaleindicator f ),
  1429. as a string of two-digit hexadecimal color components with a leading
  1430. .BR # ,
  1431. or as a string of four-digit hexadecimal components with two leading
  1432. .BR # .
  1433. The color
  1434. .B default
  1435. can't be redefined.
  1436. .
  1437. .REQ .dei macro
  1438. Define or redefine a macro whose name is contained in the string register
  1439. .I macro
  1440. until
  1441. .B ..\&
  1442. is encountered.
  1443. .
  1444. .REQ .dei macro end
  1445. Define or redefine a macro indirectly.
  1446. .I macro
  1447. and
  1448. .I end
  1449. are string registers whose contents are interpolated for the macro name
  1450. and the end macro, respectively.
  1451. .
  1452. .REQ .dei1 macro
  1453. Same as
  1454. .request .dei
  1455. but with compatibility mode switched off during macro expansion.
  1456. .
  1457. .REQ .dei1 macro end
  1458. Same as
  1459. .request .dei
  1460. but with compatibility mode switched off during macro expansion.
  1461. .
  1462. .REQ .di
  1463. End current diversion.
  1464. .
  1465. .REQ .di macro
  1466. Divert to
  1467. .I macro .
  1468. .
  1469. .REQ .do name
  1470. Interpret
  1471. .request .name
  1472. with compatibility mode disabled.
  1473. .
  1474. .REQ .ds stringvar anything
  1475. Set
  1476. .I stringvar
  1477. to
  1478. .IR anything .
  1479. .
  1480. .REQ .ds1 stringvar anything
  1481. Same as
  1482. .request .ds
  1483. but with compatibility mode switched off during string expansion.
  1484. .
  1485. .REQ .dt N trap
  1486. Set diversion trap to position
  1487. .I N
  1488. (default scaling indicator\~\c
  1489. .scaleindicator v ).
  1490. .
  1491. .REQ .ec
  1492. Reset escape character to
  1493. .squoted_char \[rs] .
  1494. .
  1495. .REQ .ec c
  1496. Set escape character to
  1497. .IR c .
  1498. .
  1499. .REQ .ecr
  1500. Restore escape character saved with
  1501. .request .ecs .
  1502. .
  1503. .REQ .ecs
  1504. Save current escape character.
  1505. .
  1506. .REQ .el anything
  1507. Else part for if-else (\c
  1508. .request ie )
  1509. request.
  1510. .
  1511. .REQ .em macro
  1512. The
  1513. .I macro
  1514. will be run after the end of input.
  1515. .
  1516. .REQ .eo
  1517. Turn off escape character mechanism.
  1518. .
  1519. .REQ .ev
  1520. Switch to previous environment.
  1521. .
  1522. .REQ .ev env
  1523. Push down environment number or name
  1524. .I env
  1525. and switch to it.
  1526. .
  1527. .REQ .evc env
  1528. Copy the contents of environment
  1529. .I env
  1530. to the current environment.
  1531. No pushing or popping.
  1532. .
  1533. .REQ .ex
  1534. Exit from roff processing.
  1535. .
  1536. .REQ .fam
  1537. Return to previous font family.
  1538. .
  1539. .REQ .fam name
  1540. Set the current font family to
  1541. .IR name .
  1542. .
  1543. .REQ .fc
  1544. Disable field mechanism.
  1545. .
  1546. .REQ .fc a
  1547. Set field delimiter to
  1548. .I a
  1549. and pad character to space.
  1550. .
  1551. .REQ .fc a b
  1552. Set field delimiter to
  1553. .I a
  1554. and pad character to
  1555. .IR b .
  1556. .
  1557. .REQ .fchar c anything
  1558. Define fallback character
  1559. .I c
  1560. as string
  1561. .IR anything .
  1562. .
  1563. .REQ .fcolor
  1564. Set fill color to previous fill color.
  1565. .
  1566. .REQ .fcolor c
  1567. Set fill color to
  1568. .IR c .
  1569. .
  1570. .REQ .fi
  1571. Fill output lines.
  1572. .
  1573. .REQ .fl
  1574. Flush output buffer.
  1575. .
  1576. .REQ .fp n font
  1577. Mount
  1578. .I font
  1579. on position
  1580. .IR n .
  1581. .
  1582. .REQ .fp n internal external
  1583. Mount font with long
  1584. .I external
  1585. name to short
  1586. .I internal
  1587. name on position
  1588. .IR n .
  1589. .
  1590. .REQ .fschar f c anything
  1591. Define fallback character
  1592. .I c
  1593. for font
  1594. .I f
  1595. as string
  1596. .IR anything .
  1597. .
  1598. .REQ .fspecial font
  1599. Reset list of special fonts for
  1600. .I font
  1601. to be empty.
  1602. .
  1603. .REQ .fspecial font s1 s2 .\|.\|.\&
  1604. When the current font is
  1605. .IR font ,
  1606. then the fonts
  1607. .IR s1 ,
  1608. .IR s2 ,
  1609. .I .\|.\|.\&
  1610. will be special.
  1611. .
  1612. .REQ .ft
  1613. Return to previous font.
  1614. Same as
  1615. .request \[rs]f[]
  1616. or
  1617. .request \[rs]fP .
  1618. .
  1619. .REQ .ft font
  1620. Change to font name or number
  1621. .IR font ;
  1622. same as
  1623. .esc[] f font
  1624. escape sequence.
  1625. .
  1626. .REQ .ftr font1 font2
  1627. Translate
  1628. .I font1
  1629. to
  1630. .IR font2 .
  1631. .
  1632. .REQ .gcolor
  1633. Set glyph color to previous glyph color.
  1634. .
  1635. .REQ .gcolor c
  1636. Set glyph color to
  1637. .IR c .
  1638. .
  1639. .REQ .hc
  1640. Remove additional hyphenation indicator character.
  1641. .
  1642. .REQ .hc c
  1643. Set up additional hyphenation indicator character\~\c
  1644. .IR c .
  1645. .
  1646. .REQ .hcode c1 code1 c2 code2 .\|.\|.\&
  1647. Set the hyphenation code of character
  1648. .I c1
  1649. to
  1650. .IR code1 ,
  1651. that of
  1652. .I c2
  1653. to
  1654. .IR code2 ,
  1655. etc.
  1656. .
  1657. .REQ .hla lang
  1658. Set the current hyphenation language to
  1659. .IR lang .
  1660. .
  1661. .REQ .hlm n
  1662. Set the maximum number of consecutive hyphenated lines to
  1663. .IR n .
  1664. .
  1665. .REQ .hpf file
  1666. Read hyphenation patterns from
  1667. .IR file .
  1668. .
  1669. .REQ .hpfa file
  1670. Append hyphenation patterns from
  1671. .IR file .
  1672. .
  1673. .REQ .hpfcode file
  1674. Set input mapping for
  1675. .request .hpf .
  1676. .
  1677. .REQ .hw words
  1678. List of
  1679. .I words
  1680. with exceptional hyphenation.
  1681. .
  1682. .REQ .hy N
  1683. Switch to hyphenation mode
  1684. .IR N .
  1685. .
  1686. .REQ .hym n
  1687. Set the hyphenation margin to
  1688. .I n
  1689. (default scaling indicator\~\c
  1690. .scaleindicator m ).
  1691. .
  1692. .REQ .hys n
  1693. Set the hyphenation space to
  1694. .IR n .
  1695. .
  1696. .REQ .ie cond anything
  1697. If
  1698. .I cond
  1699. then
  1700. .I anything
  1701. else goto
  1702. .request .el .
  1703. .
  1704. .REQ .if cond anything
  1705. If
  1706. .I cond
  1707. then
  1708. .IR anything ;
  1709. otherwise do nothing.
  1710. .
  1711. .REQ .ig
  1712. Ignore text until
  1713. .B ..\&
  1714. is encountered.
  1715. .
  1716. .REQ .ig end
  1717. Ignore text until
  1718. .request .end .
  1719. .
  1720. .REQ .in
  1721. Change to previous indent value.
  1722. .
  1723. .REQ .in \[+-]N
  1724. Change indent according to
  1725. .I \[+-]N
  1726. (default scaling indicator\~\c
  1727. .scaleindicator m ).
  1728. .
  1729. .REQ .it N trap
  1730. Set an input-line count trap for the next
  1731. .I N
  1732. lines.
  1733. .
  1734. .REQ .itc N trap
  1735. Same as
  1736. .request .it
  1737. but count lines interrupted with
  1738. .esc c
  1739. as one line.
  1740. .
  1741. .REQ .kern
  1742. Enable pairwise kerning.
  1743. .
  1744. .REQ .kern n
  1745. If
  1746. .I n
  1747. is zero, disable pairwise kerning, otherwise enable it.
  1748. .
  1749. .REQ .lc
  1750. Remove leader repetition character.
  1751. .
  1752. .REQ .lc c
  1753. Set leader repetition character to\~\c
  1754. .IR c .
  1755. .
  1756. .REQ .length register anything
  1757. Write the length of the string
  1758. .I anything
  1759. in
  1760. .IR register .
  1761. .
  1762. .REQ .linetabs
  1763. Enable line-tabs mode (i.e., calculate tab positions relative to output
  1764. line).
  1765. .
  1766. .REQ .linetabs n
  1767. If
  1768. .I n
  1769. is zero, disable line-tabs mode, otherwise enable it.
  1770. .
  1771. .REQ .lf N
  1772. Set input line number to
  1773. .IR N .
  1774. .
  1775. .REQ .lf N file
  1776. Set input line number to
  1777. .I N
  1778. and filename to
  1779. .IR file .
  1780. .
  1781. .REQ .lg N
  1782. Ligature mode on if
  1783. .IR N >0.
  1784. .
  1785. .REQ .ll
  1786. Change to previous line length.
  1787. .
  1788. .REQ .ll \[+-]N
  1789. Set line length according to
  1790. .I \[+-]N
  1791. (default size
  1792. .scalednumber 6.5 i ,
  1793. default scaling indicator\~\c
  1794. .scaleindicator m ).
  1795. .
  1796. .REQ .ls
  1797. Change to the previous value of additional intra-line skip.
  1798. .
  1799. .REQ .ls N
  1800. Set additional intra-line skip value to
  1801. .IR N ,
  1802. i.e.,
  1803. .IR N -1
  1804. blank lines are inserted after each text output line.
  1805. .
  1806. .REQ .lt \[+-]N
  1807. Length of title (default scaling indicator\~\c
  1808. .scaleindicator m ).
  1809. .
  1810. .REQ .mc
  1811. Margin character off.
  1812. .
  1813. .REQ .mc c
  1814. Print character
  1815. .I c
  1816. after each text line at actual distance from right margin.
  1817. .
  1818. .REQ .mc c N
  1819. Set margin character to
  1820. .I c
  1821. and distance to
  1822. .I N
  1823. from right margin (default scaling indicator\~\c
  1824. .scaleindicator m ).
  1825. .
  1826. .REQ .mk register
  1827. Mark current vertical position in
  1828. .IR register .
  1829. .
  1830. .REQ .mso file
  1831. The same as the .so request except that
  1832. .I file
  1833. is searched in the tmac directories.
  1834. .
  1835. .REQ .na
  1836. No output-line adjusting.
  1837. .
  1838. .REQ .ne
  1839. Need a one-line vertical space.
  1840. .
  1841. .REQ .ne N
  1842. Need
  1843. .I N
  1844. vertical space (default scaling indicator\~\c
  1845. .scaleindicator v ).
  1846. .
  1847. .REQ .nf
  1848. No filling or adjusting of output-lines.
  1849. .
  1850. .REQ .nh
  1851. No hyphenation.
  1852. .
  1853. .REQ .nm
  1854. Number mode off.
  1855. .
  1856. .REQ .nm \[+-]N \fR[\fPM \fR[\fPS \fR[\fPI\fR]]]\fP
  1857. In line number mode, set number, multiple, spacing, and indent.
  1858. .
  1859. .REQ .nn
  1860. Do not number next line.
  1861. .
  1862. .REQ .nn N
  1863. Do not number next
  1864. .I N
  1865. lines.
  1866. .
  1867. .REQ .nop anything
  1868. Always execute
  1869. .IR anything .
  1870. .
  1871. .REQ .nr register \[+-]N M
  1872. Define or modify
  1873. .I register
  1874. using
  1875. .I \[+-]N
  1876. with auto-increment
  1877. .IR M .
  1878. .
  1879. .REQ .nroff
  1880. Make the built-in condition
  1881. .B n
  1882. true and
  1883. .B t
  1884. false.
  1885. .
  1886. .REQ .ns
  1887. Turn no-space mode on.
  1888. .
  1889. .REQ .nx
  1890. Immediately jump to end of current file.
  1891. .
  1892. .REQ .nx filename
  1893. Next file.
  1894. .
  1895. .REQ .open stream filename
  1896. Open
  1897. .register filename
  1898. for writing and associate the stream named
  1899. .register stream
  1900. with it.
  1901. .
  1902. .REQ .opena stream filename
  1903. Like
  1904. .request .open
  1905. but append to it.
  1906. .
  1907. .REQ .os
  1908. Output vertical distance that was saved by the
  1909. .request sv
  1910. request.
  1911. .
  1912. .REQ .output string
  1913. Emit
  1914. .I string
  1915. directly to intermediate output, allowing leading whitespace if
  1916. .I string
  1917. starts with
  1918. .character \[dq]
  1919. (which will be stripped off).
  1920. .
  1921. .REQ .pc
  1922. Reset page number character to\~\c
  1923. .squoted_char % .
  1924. .
  1925. .REQ .pc c
  1926. Page number character.
  1927. .
  1928. .REQ .pi program
  1929. Pipe output to
  1930. .I program
  1931. (nroff only).
  1932. .
  1933. .REQ .pl
  1934. Set page length to default
  1935. .scalednumber 11 i .
  1936. The current page length is stored in
  1937. .register .p .
  1938. .
  1939. .REQ .pl \[+-]N
  1940. Change page length to
  1941. .I \[+-]N
  1942. (default scaling indicator\~\c
  1943. .scaleindicator v ).
  1944. .
  1945. .REQ .pm
  1946. Print macro names and sizes (number of blocks of 128 bytes).
  1947. .
  1948. .REQ ".pm t"
  1949. Print only total of sizes of macros (number of 128 bytes blocks).
  1950. .
  1951. .REQ .pn \[+-]N
  1952. Next page number
  1953. .IR N .
  1954. .
  1955. .REQ .pnr
  1956. Print the names and contents of all currently defined number registers
  1957. on stderr.
  1958. .
  1959. .REQ .po
  1960. Change to previous page offset.
  1961. .
  1962. The current page offset is available in
  1963. .register .o .
  1964. .
  1965. .REQ .po \[+-]N
  1966. Page offset
  1967. .IR N .
  1968. .
  1969. .REQ .ps
  1970. Return to previous point-size.
  1971. .REQ .ps \[+-]N
  1972. Point size; same as
  1973. .esc[] s \[+-]N .
  1974. .
  1975. .REQ .psbb filename
  1976. Get the bounding box of a PostScript image
  1977. .IR filename .
  1978. .
  1979. .REQ .pso command
  1980. This behaves like the
  1981. .request so
  1982. request except that input comes from the standard output of
  1983. .IR command .
  1984. .
  1985. .REQ .ptr
  1986. Print the names and positions of all traps (not including input line
  1987. traps and diversion traps) on stderr.
  1988. .
  1989. .REQ .pvs
  1990. Change to previous post-vertical line spacing.
  1991. .
  1992. .REQ .pvs \[+-]N
  1993. Change post-vertical line spacing according to
  1994. .I \[+-]N
  1995. (default scaling indicator\~\c
  1996. .scaleindicator p ).
  1997. .
  1998. .REQ .rchar c1 c2 .\|.\|.\&
  1999. Remove the definitions of characters
  2000. .IR c1 ,
  2001. .IR c2 ,
  2002. .I .\|.\|.\&
  2003. .
  2004. .REQ .rd prompt
  2005. Read insertion.
  2006. .
  2007. .REQ .return
  2008. Return from a macro.
  2009. .
  2010. .REQ .return anything
  2011. Return twice, namely from the macro at the current level and from the macro
  2012. one level higher.
  2013. .
  2014. .REQ .rfschar f c1 c2 .\|.\|.\&
  2015. Remove the definitions of characters
  2016. .IR c1 ,
  2017. .IR c2 ,
  2018. .I .\|.\|.\&
  2019. for font
  2020. .IR f .
  2021. .
  2022. .REQ .rj n
  2023. Right justify the next
  2024. .I n
  2025. input lines.
  2026. .
  2027. .REQ .rm name
  2028. Remove request, macro, or string
  2029. .IR name .
  2030. .
  2031. .REQ .rn old new
  2032. Rename request, macro, or string
  2033. .I old
  2034. to
  2035. .IR new .
  2036. .
  2037. .REQ .rnn reg1 reg2
  2038. Rename register
  2039. .I reg1
  2040. to
  2041. .IR reg2 .
  2042. .
  2043. .REQ .rr register
  2044. Remove
  2045. .IR register .
  2046. .
  2047. .REQ .rs
  2048. Restore spacing; turn no-space mode off.
  2049. .
  2050. .REQ .rt \[+-]N
  2051. Return
  2052. .I (upward only)
  2053. to marked vertical place (default scaling indicator\~\c
  2054. .scaleindicator v ).
  2055. .
  2056. .REQ .schar c anything
  2057. Define global fallback character
  2058. .I c
  2059. as string
  2060. .IR anything .
  2061. .
  2062. .REQ .shc
  2063. Reset soft hyphen character to
  2064. .esc (hy .
  2065. .
  2066. .REQ .shc c
  2067. Set the soft hyphen character to
  2068. .IR c .
  2069. .
  2070. .REQ .shift n
  2071. In a macro, shift the arguments by
  2072. .IR n \~\c
  2073. positions.
  2074. .
  2075. .REQ .sizes s1 s2 .\|.\|.\& sn \fB[0]\fP
  2076. Set available font sizes similar to the
  2077. .B sizes
  2078. command in a
  2079. .B DESC
  2080. file.
  2081. .
  2082. .REQ .so filename
  2083. Include source file.
  2084. .
  2085. .REQ .sp
  2086. Skip one line vertically.
  2087. .
  2088. .REQ .sp N
  2089. Space vertical distance
  2090. .I N
  2091. up or down according to sign of
  2092. .I N
  2093. (default scaling indicator\~\c
  2094. .scaleindicator v ).
  2095. .
  2096. .REQ .special
  2097. Reset global list of special fonts to be empty.
  2098. .
  2099. .REQ .special s1 s2 .\|.\|.\&
  2100. Fonts
  2101. .IR s1 ,
  2102. .IR s2 ,
  2103. etc.\& are special and will be searched for characters not in the
  2104. current font.
  2105. .
  2106. .REQ .spreadwarn
  2107. Toggle the spread warning on and off without changing its value.
  2108. .
  2109. .REQ .spreadwarn limit
  2110. Emit a warning if each space in an output line is widened by
  2111. .I limit
  2112. or more (default scaling indicator\~\c
  2113. .scaleindicator m ).
  2114. .
  2115. .REQ .ss N
  2116. Space-character size set to
  2117. .IR N /12
  2118. of the spacewidth in the current font.
  2119. .
  2120. .REQ .ss N M
  2121. Space-character size set to
  2122. .IR N /12
  2123. and sentence space size set to
  2124. .IR M /12
  2125. of the spacewidth in the current font (\f[CR]\[eq]1/3 em\f[]).
  2126. .
  2127. .REQ .sty n style
  2128. Associate
  2129. .I style
  2130. with font position
  2131. .IR n .
  2132. .
  2133. .REQ .substring xx n1 n2
  2134. Replace the string named
  2135. .I xx
  2136. with the substring defined by the indices
  2137. .I n1
  2138. and
  2139. .IR n2 .
  2140. .
  2141. .REQ .sv
  2142. Save
  2143. .scalednumber 1 v
  2144. of vertical space.
  2145. .
  2146. .REQ .sv N
  2147. Save the vertical distance
  2148. .I N
  2149. for later output with
  2150. .request os
  2151. request.
  2152. .
  2153. .REQ .sy command-line
  2154. Execute program
  2155. .IR command-line .
  2156. .
  2157. .REQ ".ta T" N
  2158. Set tabs after every position that is a multiple of
  2159. .I N
  2160. (default scaling indicator\~\c
  2161. .scaleindicator m ).
  2162. .REQ .ta n1 n2 .\|.\|.\& nn \f[CB]T\f[] r1 r2 .\|.\|.\& rn
  2163. Set tabs at positions
  2164. .IR n1 ,
  2165. .IR n2 ,
  2166. .Text .\|.\|.,
  2167. .IR nn ,
  2168. then set tabs at
  2169. .IR nn + r1 ,
  2170. .IR nn + r2 ,
  2171. .Text .\|.\|.,
  2172. .IR nn + rn ,
  2173. then at
  2174. .IR nn + rn + r1 ,
  2175. .IR nn + rn + r2 ,
  2176. .Text .\|.\|.,
  2177. .IR nn + rn + rn ,
  2178. and so on.
  2179. .
  2180. .\".REQ .tar
  2181. .\"Restore internally saved tab positions.
  2182. .\".
  2183. .\".REQ .tas
  2184. .\"Save tab positions internally.
  2185. .
  2186. .REQ .tc
  2187. Remove tab repition character.
  2188. .REQ .tc c
  2189. Set tab repetition character to\~\c
  2190. .IR c .
  2191. .
  2192. .REQ .ti \[+-]N
  2193. Temporary indent next line (default scaling indicator\~\c
  2194. .scaleindicator m ).
  2195. .
  2196. .REQ .tkf font s1 n1 s2 n2
  2197. Enable track kerning for
  2198. .IR font .
  2199. .
  2200. .REQ .tl \f[CB]\[cq]\f[]left\f[CB]\[cq]\f[]center\f[CB]\[cq]\f[]right\f[CB]\[cq]\f[]
  2201. Three-part title.
  2202. .
  2203. .REQ .tm anything
  2204. Print
  2205. .I anything
  2206. on terminal (UNIX standard message output).
  2207. .
  2208. .REQ .tm1 anything
  2209. Print
  2210. .I anything
  2211. on terminal (UNIX standard message output), allowing leading
  2212. whitespace if
  2213. .I anything
  2214. starts with
  2215. .character \[dq]
  2216. (which will be stripped off).
  2217. .
  2218. .REQ .tmc anything
  2219. Similar to
  2220. .request .tm1
  2221. without emitting a final newline.
  2222. .
  2223. .REQ .tr abcd.\|.\|.\&
  2224. Translate
  2225. .I a
  2226. to
  2227. .IR b ,
  2228. .I c
  2229. to
  2230. .IR d ,
  2231. etc.\& on output.
  2232. .
  2233. .REQ .trf filename
  2234. Transparently output the contents of file
  2235. .IR filename .
  2236. .
  2237. .REQ .trin abcd.\|.\|.\&
  2238. This is the same as the
  2239. .request tr
  2240. request except that the
  2241. .B asciify
  2242. request will use the character code (if any) before the character
  2243. translation.
  2244. .
  2245. .REQ .trnt abcd.\|.\|.\&
  2246. This is the same as the
  2247. .request tr
  2248. request except that the translations do not apply to text that is
  2249. transparently throughput into a diversion with
  2250. .esc ! .
  2251. .
  2252. .REQ .troff
  2253. Make the built-in condition
  2254. .B t
  2255. true and
  2256. .B n
  2257. false.
  2258. .
  2259. .REQ .uf font
  2260. Underline font set to
  2261. .I font
  2262. (to be switched to by
  2263. .request .ul ).
  2264. .
  2265. .REQ .ul N
  2266. Underline (italicize in troff)
  2267. .I N
  2268. input lines.
  2269. .
  2270. .REQ .unformat diversion
  2271. Unformat space characters and tabs, preserving font information in
  2272. .IR diversion .
  2273. .REQ .vpt n
  2274. Enable vertical position traps if
  2275. .I n
  2276. is non-zero, disable them otherwise.
  2277. .
  2278. .REQ .vs
  2279. Change to previous vertical base line spacing.
  2280. .
  2281. .REQ .vs \[+-]N
  2282. Set vertical base line spacing according to
  2283. .I \[+-]N
  2284. (default scaling indicator\~\c
  2285. .scaleindicator p ).
  2286. Default value is
  2287. .scalednumber 12 p .
  2288. .
  2289. .REQ .warn n
  2290. Set warnings code to
  2291. .IR n .
  2292. .
  2293. .REQ .warnscale si
  2294. Set scaling indicator used in warnings to
  2295. .IR si .
  2296. .
  2297. .REQ .wh N
  2298. Remove (first) trap at position
  2299. .IR N .
  2300. .
  2301. .REQ .wh N trap
  2302. Set location trap; negative means from page bottom.
  2303. .
  2304. .REQ .while cond anything
  2305. While condition
  2306. .I cond
  2307. is true, accept
  2308. .I anything
  2309. as input.
  2310. .
  2311. .REQ .write stream anything
  2312. Write
  2313. .I anything
  2314. to the stream named
  2315. .IR stream .
  2316. .
  2317. .REQ .writec stream anything
  2318. Similar to
  2319. .request .write
  2320. without emitting a final newline.
  2321. .
  2322. .REQ .writem stream xx
  2323. Write contents of macro or string
  2324. .I xx
  2325. to the stream named
  2326. .IR stream .
  2327. .
  2328. .PD
  2329. .
  2330. .P
  2331. Besides these standard groff requests, there might be further macro
  2332. calls.
  2333. They can originate from a macro package (see
  2334. .BR roff (@MAN7EXT@)
  2335. for an overview) or from a preprocessor.
  2336. .
  2337. .P
  2338. Preprocessor macros are easy to be recognized.
  2339. .
  2340. They enclose their code into a pair of characteristic macros.
  2341. .
  2342. .P
  2343. .TS
  2344. box, center, tab (@);
  2345. c | c | c
  2346. CfCB | CfCB | CfCB.
  2347. preprocessor@start macro@ end macro
  2348. =
  2349. eqn@.PS@.PE
  2350. grap@.G1@.G2
  2351. grn@.GS@.GE
  2352. pic@.PS@.PE
  2353. refer@.R1@.R2
  2354. soelim@\f[I]none@\f[I]none
  2355. tbl@.TS@.TE
  2356. .TE
  2357. .P
  2358. .
  2359. .
  2360. .\" --------------------------------------------------------------------
  2361. .SH "ESCAPE SEQUENCES"
  2362. .\" --------------------------------------------------------------------
  2363. .
  2364. Escape sequences are in-line language elements usually introduced by a
  2365. backslash
  2366. .squoted_char \[rs]
  2367. and followed by an escape name and sometimes by a required argument.
  2368. .
  2369. Input processing is continued directly after the escaped character or
  2370. the argument resp.\& without an intervening separation character.
  2371. .
  2372. So there must be a way to determine the end of the escape name and the
  2373. end of the argument.
  2374. .
  2375. .P
  2376. This is done by enclosing names (escape name and arguments consisting
  2377. of a variable name) by a pair of brackets
  2378. .BI \[lB] name \[rB]
  2379. and constant arguments (number expressions and characters) by
  2380. apostrophes (ASCII 0x27) like
  2381. .BI \[cq] constant \[cq] \f[R].
  2382. .
  2383. .P
  2384. There are abbreviations for short names.
  2385. .
  2386. Two character escape names can be specified by an opening parenthesis
  2387. like
  2388. .esc ( xy
  2389. without a closing counterpart.
  2390. .
  2391. And all one-character names different from the special characters
  2392. .squoted_char [
  2393. and
  2394. .squoted_char (
  2395. can even be specified without a marker in the form
  2396. .esc c .
  2397. .
  2398. .P
  2399. Constant arguments of length\~1 can omit the marker apostrophes, too,
  2400. but there is no two-character analogue.
  2401. .
  2402. .P
  2403. While 1-character escape sequences are mainly used for in-line
  2404. functions and system related tasks, the 2-letter names following the
  2405. .esc (
  2406. construct are used for special characters predefined by the roff system.
  2407. .
  2408. Escapes sequences with names of more than two characters
  2409. .esc[] "" name
  2410. denote user defined named characters (see the
  2411. .request char
  2412. request).
  2413. .
  2414. .
  2415. .\" --------------------------------------------------------------------
  2416. .SS "Single Character Escapes"
  2417. .\" --------------------------------------------------------------------
  2418. .
  2419. .PD 0
  2420. .
  2421. .\" --------- comments ---------
  2422. .
  2423. .ESC \[dq]
  2424. Beginning of a comment.
  2425. .
  2426. Everything up to the end of the line is ignored.
  2427. .
  2428. .ESC #
  2429. Everything up to and including the next newline is ignored.
  2430. .
  2431. This is interpreted in copy mode.
  2432. .
  2433. This is like
  2434. .esc \[dq]
  2435. except that the terminating newline is ignored as well.
  2436. .
  2437. .\" --------- strings ---------
  2438. .
  2439. .ESC *\f[I]s\f[]
  2440. The string stored in the string variable with 1-character name
  2441. .IR s .
  2442. .
  2443. .ESC *(\f[I]st\f[]
  2444. The string stored in the string variable with 2-character name
  2445. .IR st .
  2446. .
  2447. .ESC[] * "stringvar arg1 arg2 .\|.\|."
  2448. The string stored in the string variable with arbitrary length name
  2449. .IR stringvar ,
  2450. taking
  2451. .IR arg1 ,
  2452. .IR arg2 ,
  2453. .I .\|.\|.\&
  2454. as arguments.
  2455. .
  2456. .\" --------- macro arguments ---------
  2457. .
  2458. .ESC $0
  2459. The name by which the current macro was invoked.
  2460. .
  2461. The
  2462. .request als
  2463. request can make a macro have more than one name.
  2464. .
  2465. .ESC $ x
  2466. Macro or string argument with 1-place number
  2467. .IR x ,
  2468. where
  2469. .I x
  2470. is a digit between 1 and 9.
  2471. .
  2472. .ESC $( xy
  2473. Macro or string argument with 2-digit number
  2474. .IR xy .
  2475. .
  2476. .ESC[] $ nexp
  2477. Macro or string argument with number
  2478. .IR nexp ,
  2479. where
  2480. .I nexp
  2481. is a numerical expression evaluating to an integer \[>=]1.
  2482. .
  2483. .ESC $*
  2484. In a macro or string, the concatenation of all the arguments separated
  2485. by spaces.
  2486. .
  2487. .ESC $@
  2488. In a macro or string, the concatenation of all the arguments with each
  2489. surrounded by double quotes, and separated by spaces.
  2490. .
  2491. .\" --------- escaped characters ---------
  2492. .
  2493. .ESC \[rs]
  2494. reduces to a single backslash; useful to delay its interpretation as
  2495. escape character in copy mode.
  2496. .
  2497. For a printable backslash, use
  2498. .esc e ,
  2499. or even better
  2500. .esc [rs] ,
  2501. to be independent from the current escape character.
  2502. .
  2503. .ESC \[cq]
  2504. The acute accent \[aa]; same as
  2505. .esc (aa .
  2506. Unescaped: apostrophe, right quotation mark, single quote (ASCII 0x27).
  2507. .
  2508. .ESC `
  2509. The grave accent \[ga]; same as
  2510. .esc (ga .
  2511. Unescaped: left quote, backquote (ASCII 0x60).
  2512. .
  2513. .ESC \-
  2514. The \- sign in the current font.
  2515. .
  2516. .ESC .
  2517. An uninterpreted dot (period), even at start of line.
  2518. .
  2519. .ESC %
  2520. Default optional hyphenation character.
  2521. .
  2522. .ESC !
  2523. Transparent line indicator.
  2524. .
  2525. .ESC? anything
  2526. In a diversion, this will transparently embed
  2527. .I anything
  2528. in the diversion.
  2529. .I anything
  2530. is read in copy mode.
  2531. .
  2532. See also the escape sequences
  2533. .esc !
  2534. and
  2535. .esc ? .
  2536. .
  2537. .
  2538. .\" --------- spacing ---------
  2539. .
  2540. .ESC \& space
  2541. Unpaddable space-size space character (no line break).
  2542. .
  2543. .ESC 0
  2544. Digit width.
  2545. .
  2546. .ESC |
  2547. 1/6\ em narrow space character; zero width in nroff.
  2548. .
  2549. .ESC ^
  2550. 1/12\ em half-narrow space character; zero width in nroff.
  2551. .
  2552. .ESC &
  2553. Non-printable, zero width character.
  2554. .
  2555. .ESC )
  2556. Like
  2557. .esc &
  2558. except that it behaves like a character declared with the cflags
  2559. request to be transparent for the purposes of end of sentence
  2560. recognition.
  2561. .
  2562. .ESC /
  2563. Increases the width of the preceding character so that the spacing
  2564. between that character and the following character will be correct if
  2565. the following character is a roman character.
  2566. .
  2567. .ESC ,
  2568. Modifies the spacing of the following character so that the spacing
  2569. between that character and the preceding character will correct if the
  2570. preceding character is a roman character.
  2571. .
  2572. .ESC ~
  2573. Unbreakable space that stretches like a normal inter-word space when a
  2574. line is adjusted.
  2575. .
  2576. .ESC :
  2577. Inserts a zero-width break point (similar to
  2578. .esc %
  2579. but without a soft hyphen character).
  2580. .
  2581. .ESC "" newline
  2582. Ignored newline, for continuation lines.
  2583. .
  2584. .\" --------- structuring ---------
  2585. .
  2586. .ESC {
  2587. Begin conditional input.
  2588. .
  2589. .ESC }
  2590. End conditional input.
  2591. .
  2592. .\" --------- longer escape names ---------
  2593. .
  2594. .ESC ( sc
  2595. The special character with 2-character name
  2596. .IR sc ,
  2597. see section
  2598. .BR "Special Characters" .
  2599. .
  2600. .ESC[] "" name
  2601. The named character (or rather glyph) with arbitrary length name
  2602. .IR name .
  2603. .
  2604. .ESC[] "" "comp1 comp2 .\|.\|."
  2605. A composite glyph with components
  2606. .IR comp1 ,
  2607. .IR comp2 ,
  2608. .I .\|.\|.
  2609. .
  2610. .\" --------- alphabetical escapes ---------
  2611. .
  2612. .ESC a
  2613. Non-interpreted leader character.
  2614. .
  2615. .ESCq A anything
  2616. If
  2617. .I anything
  2618. is acceptable as a name of a string, macro, diversion, register,
  2619. environment or font it expands to\~1, and to\~0 otherwise.
  2620. .
  2621. .ESCq b abc.\|.\|.\&
  2622. Bracket building function.
  2623. .
  2624. .ESCq B anything
  2625. If
  2626. .I anything
  2627. is acceptable as a valid numeric expression it expands to\~1, and
  2628. to\~0 otherwise.
  2629. .
  2630. .ESC c
  2631. Interrupt text processing.
  2632. .
  2633. .ESCq C char
  2634. The character called
  2635. .IR char ;
  2636. same as
  2637. .esc[] "" char ,
  2638. but compatible to other roff versions.
  2639. .
  2640. .ESC d
  2641. Forward (down) 1/2 em vertical unit (1/2 line in nroff).
  2642. .
  2643. .ESCq D charseq
  2644. Draw a graphical element defined by the characters in
  2645. .IR charseq ;
  2646. see groff info file for details.
  2647. .
  2648. .ESC e
  2649. Printable version of the current escape character.
  2650. .
  2651. .ESC E
  2652. Equivalent to an escape character, but is not interpreted in copy-mode.
  2653. .
  2654. .ESC f F
  2655. Change to font with 1-character name or 1-digit number
  2656. .IR F .
  2657. .
  2658. .ESC fP
  2659. Switch back to previous font.
  2660. .
  2661. .ESC f( fo
  2662. Change to font with 2-character name or 2-digit number
  2663. .IR fo .
  2664. .
  2665. .ESC[] f font
  2666. Change to font with arbitrary length name or number expression
  2667. .IR font .
  2668. .
  2669. .ESC[] f ""
  2670. Switch back to previous font.
  2671. .
  2672. .ESC F f
  2673. Change to font family with 1-character name
  2674. .IR f .
  2675. .
  2676. .ESC F( fm
  2677. Change to font family with 2-character name
  2678. .IR fm .
  2679. .
  2680. .ESC[] F fam
  2681. Change to font family with arbitrary length name
  2682. .IR fam .
  2683. .
  2684. .ESC[] F ""
  2685. Switch back to previous font family.
  2686. .
  2687. .ESC[] g reg
  2688. Return format of register with name
  2689. .I reg
  2690. suitable for
  2691. .request .af .
  2692. .
  2693. Alternative forms
  2694. .escarg g( xy
  2695. and
  2696. .escarg g x .
  2697. .
  2698. .ESCq h N
  2699. Local horizontal motion; move right
  2700. .I N
  2701. (left if negative).
  2702. .
  2703. .ESCq H N
  2704. Set height of current font to
  2705. .IR N .
  2706. .
  2707. .ESC[] k reg
  2708. Mark horizontal input place in register with arbitrary length name
  2709. .IR reg .
  2710. Alternative forms
  2711. .escarg k( xy
  2712. and
  2713. .escarg k x .
  2714. .
  2715. .ESCq l Nc
  2716. Horizontal line drawing function (optionally using character
  2717. .IR c ).
  2718. .
  2719. .ESCq L Nc
  2720. Vertical line drawing function (optionally using character
  2721. .IR c ).
  2722. .
  2723. .ESC[] m color
  2724. Change to color
  2725. .IR color .
  2726. .
  2727. Alternative forms
  2728. .escarg m( co
  2729. and
  2730. .escarg m c .
  2731. .
  2732. .ESC[] m ""
  2733. Switch back to previous color.
  2734. .
  2735. .ESC[] M color
  2736. Change filling color for closed drawn objects to color
  2737. .IR color .
  2738. .
  2739. Alternative forms
  2740. .escarg M( co
  2741. and
  2742. .escarg M c .
  2743. .
  2744. .ESC[] M ""
  2745. Switch to previous fill color.
  2746. .
  2747. .ESC n r
  2748. The numerical value stored in the register variable with the
  2749. 1-character name
  2750. .IR r .
  2751. .
  2752. .ESC n( re
  2753. The numerical value stored in the register variable with the
  2754. 2-character name
  2755. .IR re .
  2756. .
  2757. .ESC[] n reg
  2758. The numerical value stored in the register variable with arbitrary
  2759. length name
  2760. .IR reg .
  2761. .
  2762. .ESCq N n
  2763. Typeset the character with code
  2764. .I n
  2765. in the current font, no special fonts are searched.
  2766. .
  2767. Useful for adding characters to a font using the
  2768. .request char
  2769. request.
  2770. .
  2771. .ESCq o abc.\|.\|.\&
  2772. Overstrike characters
  2773. .IR a ,
  2774. .IR b ,
  2775. .IR c ,
  2776. etc.
  2777. .
  2778. .ESC O 0
  2779. Disable glyph output.
  2780. .
  2781. Mainly for internal use.
  2782. .
  2783. .ESC O 1
  2784. Enable glyph output.
  2785. .
  2786. Mainly for internal use.
  2787. .
  2788. .ESC p
  2789. Break and spread output line.
  2790. .
  2791. .ESC r
  2792. Reverse 1\ em vertical motion (reverse line in nroff).
  2793. .
  2794. .ESCq R "name\~\[+-]n"
  2795. The same as
  2796. .request .nr
  2797. .I name
  2798. .IR \[+-]n .
  2799. .
  2800. .ESC[] s \[+-]N
  2801. Set the point size to
  2802. .I N
  2803. scaled points.
  2804. .
  2805. Note the alternative forms
  2806. .BI \[rs]s \[+-] [ N ]\c
  2807. ,
  2808. .BI \[rs]s' \[+-]N '\c
  2809. .Text ,
  2810. .BI \[rs]s \[+-] ' N '\c
  2811. .Text ,
  2812. .escarg s( \[+-]xy\c
  2813. .Text ,
  2814. .BI \[rs]s \[+-] ( xy\c
  2815. .Text ,
  2816. .escarg s \[+-]x .
  2817. Same as
  2818. .request ps
  2819. request.
  2820. .
  2821. .ESCq S N
  2822. Slant output
  2823. .I N
  2824. degrees.
  2825. .
  2826. .ESC t
  2827. Non-interpreted horizontal tab.
  2828. .
  2829. .ESC u
  2830. Reverse (up) 1/2 em vertical motion (1/2 line in nroff).
  2831. .
  2832. .ESCq v N
  2833. Local vertical motion; move down
  2834. .I N
  2835. (up if negative).
  2836. .
  2837. .ESC[] V env
  2838. The contents of the environment variable
  2839. .IR env .
  2840. .
  2841. Alternative forms
  2842. .escarg V( xy
  2843. and
  2844. .escarg V x .
  2845. .
  2846. .ESCq w string
  2847. The width of the character sequence
  2848. .IR string .
  2849. .
  2850. .ESCq x N
  2851. Extra line-space function (negative before, positive after).
  2852. .
  2853. .ESCq X string
  2854. Output
  2855. .I string
  2856. as device control function.
  2857. .
  2858. .ESC[] Y name
  2859. Output string variable or macro
  2860. .I name
  2861. uninterpreted as device control function.
  2862. .
  2863. Alternative forms
  2864. .escarg Y( xy
  2865. and
  2866. .escarg Y x .
  2867. .
  2868. .ESC z c
  2869. Print
  2870. .I c
  2871. with zero width (without spacing).
  2872. .
  2873. .ESCq Z anything
  2874. Print
  2875. .I anything
  2876. and then restore the horizontal and vertical position;
  2877. .I anything
  2878. may not contain tabs or leaders.
  2879. .
  2880. .PD
  2881. .P
  2882. The escape sequences
  2883. .esc e ,
  2884. .esc . ,
  2885. .esc \[dq] ,
  2886. .esc $ ,
  2887. .esc * ,
  2888. .esc a ,
  2889. .esc n ,
  2890. .esc t ,
  2891. .esc g ,
  2892. and
  2893. .escarg \& newline
  2894. are interpreted in copy mode.
  2895. .
  2896. .P
  2897. Escape sequences starting with
  2898. .esc (
  2899. or
  2900. .esc [
  2901. do not represent single character escape sequences, but introduce escape
  2902. names with two or more characters.
  2903. .
  2904. .P
  2905. If a backslash is followed by a character that does not constitute a
  2906. defined escape sequence the backslash is silently ignored and the
  2907. character maps to itself.
  2908. .
  2909. .
  2910. .\" --------------------------------------------------------------------
  2911. .SS "Special Characters"
  2912. .\" --------------------------------------------------------------------
  2913. .
  2914. Common special characters are predefined by escape sequences of the
  2915. form
  2916. .BI \[rs]( xy
  2917. with characters
  2918. .I x
  2919. and
  2920. .IR y .
  2921. .
  2922. Some of these exist in the usual font while most of them are only
  2923. available in the special font.
  2924. .
  2925. Below you'll find a selection of the most important glyphs; a complete
  2926. list can be found in
  2927. .BR groff_char (@MAN7EXT@).
  2928. .RS
  2929. .P
  2930. .PD 0
  2931. .
  2932. .ESC (bu
  2933. Bullet sign
  2934. .ESC (co
  2935. Copyright
  2936. .ESC (ct
  2937. Cent
  2938. .ESC (dd
  2939. Double dagger
  2940. .ESC (de
  2941. Degree
  2942. .ESC (dg
  2943. Dagger
  2944. .ESC (rs
  2945. Printable double quote
  2946. .ESC (em
  2947. Em-dash
  2948. .ESC (hy
  2949. Hyphen
  2950. .ESC (rg
  2951. Registered sign
  2952. .ESC (rs
  2953. Printable backslash character
  2954. .ESC (sc
  2955. Section sign
  2956. .ESC (ul
  2957. Underline character
  2958. .ESC (==
  2959. Identical
  2960. .ESC (>=
  2961. Larger or equal
  2962. .ESC (<=
  2963. Less or equal
  2964. .ESC (!=
  2965. Not equal
  2966. .ESC (->
  2967. Right arrow
  2968. .ESC (<-
  2969. Left arrow
  2970. .ESC (+-
  2971. Plus-minus sign
  2972. .PD
  2973. .RE
  2974. .
  2975. .
  2976. .\" --------------------------------------------------------------------
  2977. .SS "Strings"
  2978. .\" --------------------------------------------------------------------
  2979. .
  2980. Strings are defined by the
  2981. .request ds
  2982. request and can be retrieved by the
  2983. .esc *
  2984. escape sequence.
  2985. .
  2986. .P
  2987. Strings share their name space with macros.
  2988. .
  2989. So strings and macros without arguments are roughly equivalent; it is
  2990. possible to call a string like a macro and vice-versa, but this often
  2991. leads to unpredictable results.
  2992. .
  2993. The following strings are predefined in groff.
  2994. .
  2995. .STRING .T
  2996. The name of the current output device as specified by the
  2997. .option -T
  2998. command line option.
  2999. .
  3000. .
  3001. .\" --------------------------------------------------------------------
  3002. .SH REGISTERS
  3003. .\" --------------------------------------------------------------------
  3004. .
  3005. Registers are variables that store a value.
  3006. In groff, most registers store numerical values (see section
  3007. .B NUMERICAL EXPRESSIONS
  3008. above), but some can also hold a string value.
  3009. .
  3010. .P
  3011. Each register is given a name.
  3012. Arbitrary registers can be defined and set with the request
  3013. .request nr
  3014. .IR register .
  3015. .
  3016. .P
  3017. The value stored in a register can be retrieved by the escape sequences
  3018. introduced by
  3019. .esc n .
  3020. .
  3021. .P
  3022. Most useful are predefined registers.
  3023. .
  3024. In the following the notation
  3025. .I name
  3026. is used to refer to a register called
  3027. .register name
  3028. to make clear that we speak about registers.
  3029. .
  3030. Please keep in mind that the
  3031. .esc[] n ""
  3032. decoration is not part of the register name.
  3033. .
  3034. .
  3035. .\" --------------------------------------------------------------------
  3036. .SS "Read-only Registers"
  3037. .\" --------------------------------------------------------------------
  3038. .
  3039. The following registers have predefined values that should not be
  3040. modified by the user (usually, registers starting with a dot a
  3041. read-only).
  3042. .
  3043. Mostly, they provide information on the current settings or store
  3044. results from request calls.
  3045. .
  3046. .P
  3047. .PD 0
  3048. .
  3049. .REG .$
  3050. Number of arguments in the current macro or string.
  3051. .
  3052. .REG .a
  3053. Post-line extra line-space most recently utilized using
  3054. .escq x N .
  3055. .
  3056. .REG .A
  3057. Set to\~1 in
  3058. .B troff
  3059. if option
  3060. .B \-A
  3061. is used; always\~1 in
  3062. .BR nroff .
  3063. .
  3064. .REG .c
  3065. Current input line number.
  3066. .
  3067. .REG .C
  3068. 1\~if compatibility mode is in effect, 0\~otherwise.
  3069. .
  3070. .REG .cdp
  3071. The depth of the last character added to the current environment.
  3072. It is positive if the character extends below the baseline.
  3073. .
  3074. .REG .ce
  3075. The number of lines remaining to be centered, as set by the
  3076. .request ce
  3077. request.
  3078. .
  3079. .REG .cht
  3080. The height of the last character added to the current environment.
  3081. It is positive if the character extends above the baseline.
  3082. .
  3083. .REG .color
  3084. 1\~if colors are enabled, 0\~otherwise.
  3085. .
  3086. .REG .csk
  3087. The skew of the last character added to the current environment.
  3088. The skew of a character is how far to the right of the center of a character
  3089. the center of an accent over that character should be placed.
  3090. .
  3091. .REG .d
  3092. Current vertical place in current diversion; equal to
  3093. .register nl .
  3094. .
  3095. .REG .ev
  3096. The name or number of the current environment (string-valued).
  3097. .
  3098. .REG .f
  3099. Current font number.
  3100. .
  3101. .REG .fam
  3102. The current font family (string-valued).
  3103. .
  3104. .REG .fn
  3105. The current (internal) real font name (string-valued).
  3106. .
  3107. .REG .fp
  3108. The number of the next free font position.
  3109. .
  3110. .REG .g
  3111. Always 1 in GNU troff.
  3112. .
  3113. Macros should use it to test if running under groff.
  3114. .
  3115. .REG .h
  3116. Text base-line high-water mark on current page or diversion.
  3117. .
  3118. .REG .H
  3119. Available horizontal resolution in basic units.
  3120. .
  3121. .REG .height
  3122. The current font height as set with
  3123. .request \[rs]H .
  3124. .
  3125. .REG .hla
  3126. The current hyphenation language as set by the
  3127. .B .hla
  3128. request.
  3129. .
  3130. .REG .hlc
  3131. The number of immediately preceding consecutive hyphenated lines.
  3132. .
  3133. .REG .hlm
  3134. The maximum allowed number of consecutive hyphenated lines, as set by
  3135. the
  3136. .request hlm
  3137. request.
  3138. .
  3139. .REG .hy
  3140. The current hyphenation flags (as set by the
  3141. .request hy
  3142. request).
  3143. .
  3144. .REG .hym
  3145. The current hyphenation margin (as set by the
  3146. .request hym
  3147. request).
  3148. .
  3149. .REG .hys
  3150. The current hyphenation space (as set by the
  3151. .request hys
  3152. request).
  3153. .
  3154. .REG .i
  3155. Current ident.
  3156. .
  3157. .REG .in
  3158. The indent that applies to the current output line.
  3159. .
  3160. .REG .int
  3161. Positive if last output line contains
  3162. .esc c .
  3163. .
  3164. .REG .kern
  3165. 1\~if pairwise kerning is enabled, 0\~otherwise.
  3166. .
  3167. .REG .l
  3168. Current line length.
  3169. .
  3170. .REG .lg
  3171. The current ligature mode (as set by the
  3172. .request lg
  3173. request).
  3174. .
  3175. .REG .linetabs
  3176. The current line-tabs mode (as set by the
  3177. .request linetabs
  3178. request).
  3179. .
  3180. .REG .ll
  3181. The line length that applies to the current output line.
  3182. .
  3183. .REG .lt
  3184. The title length (as set by the
  3185. .request lt
  3186. request).
  3187. .
  3188. .REG .m
  3189. The current drawing color (string-valued).
  3190. .
  3191. .REG .M
  3192. The current background color (string-valued).
  3193. .
  3194. .REG .n
  3195. Length of text portion on previous output line.
  3196. .
  3197. .REG .ne
  3198. The amount of space that was needed in the last
  3199. .request ne
  3200. request that caused a trap to be sprung.
  3201. .
  3202. Useful in conjunction with
  3203. .register .trunc .
  3204. .
  3205. .REG .ns
  3206. 1\~if in no-space mode, 0\~otherwise.
  3207. .
  3208. .REG .o
  3209. Current page offset.
  3210. .
  3211. .REG .p
  3212. Current page length.
  3213. .
  3214. .REG .pe
  3215. 1\~during page ejection, 0\~otherwise.
  3216. .
  3217. .REG .pn
  3218. The number of the next page: either the value set by a
  3219. .request pn
  3220. request, or the number of the current page plus\ 1.
  3221. .
  3222. .REG .ps
  3223. The current pointsize in scaled points.
  3224. .
  3225. .REG .psr
  3226. The last-requested pointsize in scaled points.
  3227. .
  3228. .REG .pvs
  3229. The current post-vertical line spacing.
  3230. .
  3231. .REG .rj
  3232. The number of lines to be right-justified as set by the rj request.
  3233. .
  3234. .REG .s
  3235. Current point size as a decimal fraction.
  3236. .
  3237. .REG .slant
  3238. The slant of the current font as set with
  3239. .request \[rs]S .
  3240. .
  3241. .REG .sr
  3242. The last requested pointsize in points as a decimal fraction
  3243. (string-valued).
  3244. .
  3245. .REG .ss
  3246. The value of the parameters set by the first argument of the
  3247. .request ss
  3248. request.
  3249. .
  3250. .REG .sss
  3251. The value of the parameters set by the second argument of the
  3252. .request ss
  3253. request.
  3254. .
  3255. .REG .sty
  3256. The current font style (string-valued).
  3257. .
  3258. .REG .t
  3259. Distance to the next trap.
  3260. .
  3261. .REG .T
  3262. Set to\~1
  3263. if option
  3264. .B \-T
  3265. is used.
  3266. .
  3267. .REG .tabs
  3268. A string representation of the current tab settings suitable for use
  3269. as an argument to the
  3270. .request ta
  3271. request.
  3272. .
  3273. .REG .trunc
  3274. The amount of vertical space truncated by the most recently sprung
  3275. vertical position trap, or, if the trap was sprung by a
  3276. .request ne
  3277. request, minus the amount of vertical motion produced by
  3278. .request .ne .
  3279. .
  3280. In other words, at the point a trap is sprung, it represents
  3281. the difference of what the vertical position would have been but for
  3282. the trap, and what the vertical position actually is.
  3283. .
  3284. Useful in conjunction with the
  3285. .register .ne .
  3286. .
  3287. .REG .u
  3288. Equal to 1 in fill mode and 0 in nofill mode.
  3289. .
  3290. .REG .U
  3291. Equal to 1 in safer mode and 0 in unsafe mode.
  3292. .
  3293. .REG .v
  3294. Current vertical line spacing.
  3295. .
  3296. .REG .V
  3297. Available vertical resolution in basic units.
  3298. .
  3299. .REG .vpt
  3300. 1\~ if vertical position traps are enabled, 0\~otherwise.
  3301. .
  3302. .REG .w
  3303. Width of previous character.
  3304. .
  3305. .REG .warn
  3306. The sum of the number codes of the currently enabled warnings.
  3307. .
  3308. .REG .x
  3309. The major version number.
  3310. .
  3311. .REG .y
  3312. The minor version number.
  3313. .
  3314. .REG .Y
  3315. The revision number of groff.
  3316. .
  3317. .REG .z
  3318. Name of current diversion.
  3319. .PD
  3320. .
  3321. .
  3322. .\" --------------------------------------------------------------------
  3323. .SS "Writable Registers"
  3324. .\" --------------------------------------------------------------------
  3325. .
  3326. The following registers can be read and written by the user.
  3327. They have predefined default values, but these can be modified for
  3328. customizing a document.
  3329. .
  3330. .P
  3331. .PD 0
  3332. .REG %
  3333. Current page number.
  3334. .
  3335. .REG c.
  3336. Current input line number.
  3337. .
  3338. .REG ct
  3339. Character type (set by width function
  3340. .esc w ).
  3341. .
  3342. .REG dl
  3343. Maximal width of last completed diversion.
  3344. .
  3345. .REG dn
  3346. Height of last completed diversion.
  3347. .
  3348. .REG dw
  3349. Current day of week (1-7).
  3350. .
  3351. .REG dy
  3352. Current day of month (1-31).
  3353. .
  3354. .REG hours
  3355. The number of hours past midnight.
  3356. .
  3357. Initialized at start-up.
  3358. .
  3359. .REG hp
  3360. Current horizontal position at input line.
  3361. .
  3362. .REG llx
  3363. Lower left x-coordinate (in PostScript units) of a given PostScript
  3364. image (set by
  3365. .request .psbb ).
  3366. .
  3367. .REG lly
  3368. Lower left y-coordinate (in PostScript units) of a given PostScript
  3369. image (set by
  3370. .request .psbb ).
  3371. .
  3372. .REG ln
  3373. Output line number.
  3374. .
  3375. .REG minutes
  3376. The number of minutes after the hour.
  3377. .
  3378. Initialized at start-up.
  3379. .
  3380. .REG mo
  3381. Current month (1-12).
  3382. .
  3383. .REG nl
  3384. Vertical position of last printed text base-line.
  3385. .
  3386. .REG rsb
  3387. Like
  3388. .register sb ,
  3389. but takes account of the heights and depths of characters.
  3390. .
  3391. .REG rst
  3392. Like
  3393. .register st ,
  3394. but takes account of the heights and depths of characters.
  3395. .
  3396. .REG sb
  3397. Depth of string below base line (generated by width function
  3398. .esc w ).
  3399. .
  3400. .REG seconds
  3401. The number of seconds after the minute.
  3402. .
  3403. Initialized at start-up.
  3404. .
  3405. .REG skw
  3406. Right skip width from the center of the last character in the
  3407. .esc w
  3408. argument.
  3409. .
  3410. .REG slimit
  3411. If greater than 0, the maximum number of objects on the input stack.
  3412. .
  3413. If \[<=]0 there is no limit, i.e., recursion can continue until virtual
  3414. memory is exhausted.
  3415. .
  3416. .REG ssc
  3417. The amount of horizontal space (possibly negative) that should be
  3418. added to the last character before a subscript (generated by width
  3419. function
  3420. .esc w ).
  3421. .
  3422. .REG st
  3423. Height of string above base line (generated by width function
  3424. .esc w ).
  3425. .
  3426. .REG systat
  3427. The return value of the
  3428. .I system()
  3429. function executed by the last
  3430. .request sy
  3431. request.
  3432. .
  3433. .REG urx
  3434. Upper right x-coordinate (in PostScript units) of a given PostScript
  3435. image (set by
  3436. .request .psbb ).
  3437. .
  3438. .REG ury
  3439. Upper right y-coordinate (in PostScript units) of a given PostScript
  3440. image (set by
  3441. .request .psbb ).
  3442. .
  3443. .REG year
  3444. The current year (year 2000 compliant).
  3445. .
  3446. .REG yr
  3447. Current year minus 1900.
  3448. .
  3449. For Y2K compliance use
  3450. .register year
  3451. instead.
  3452. .
  3453. .PD
  3454. .
  3455. .
  3456. .\" --------------------------------------------------------------------
  3457. .SH COMPATIBILITY
  3458. .\" --------------------------------------------------------------------
  3459. .
  3460. The differences of the groff language in comparison to classical troff
  3461. as defined by
  3462. .I [CSTR\~#54]
  3463. are documented in
  3464. .BR groff_diff (@MAN7EXT@).
  3465. .
  3466. .P
  3467. The groff system provides a compatibility mode, see
  3468. .BR groff (@MAN1EXT@)
  3469. on how to invoke this.
  3470. .
  3471. .
  3472. .\" --------------------------------------------------------------------
  3473. .SH BUGS
  3474. .\" --------------------------------------------------------------------
  3475. .
  3476. Report bugs to the
  3477. .MTO bug-groff@gnu.org "groff bug mailing list" .
  3478. Include a complete, self-contained example that will allow the bug to
  3479. be reproduced, and say which version of groff you are using.
  3480. .
  3481. .
  3482. .\" --------------------------------------------------------------------
  3483. .SH AUTHORS
  3484. .\" --------------------------------------------------------------------
  3485. .
  3486. Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005
  3487. Free Software Foundation, Inc.
  3488. .
  3489. .P
  3490. This document is distributed under the terms of the FDL (GNU Free
  3491. Documentation License) version 1.1 or later.
  3492. .
  3493. You should have received a copy of the FDL on your system, it is also
  3494. available on-line at the
  3495. .URL http://\:www.gnu.org/\:copyleft/\:fdl.html "GNU copyleft site" .
  3496. .
  3497. .P
  3498. This document is part of
  3499. .IR groff ,
  3500. the GNU roff distribution.
  3501. .
  3502. It was written by
  3503. .MTO bwarken@mayn.de "Bernd Warken" ;
  3504. it is maintained by
  3505. .MTO wl@gnu.org "Werner Lemberg" .
  3506. .
  3507. .
  3508. .\" --------------------------------------------------------------------
  3509. .SH "SEE ALSO"
  3510. .\" --------------------------------------------------------------------
  3511. .
  3512. .P
  3513. The main source of information for the groff language is the
  3514. .B groff
  3515. .BR info (1)
  3516. file.
  3517. .
  3518. Besides the gory details, it contains many examples.
  3519. .
  3520. .TP
  3521. .BR groff (@MAN1EXT@)
  3522. the usage of the groff program and pointers to the documentation and
  3523. availability of the groff system.
  3524. .
  3525. .TP
  3526. .BR groff_diff (@MAN7EXT@)
  3527. the differences of the groff language as compared to classical roff.
  3528. .
  3529. This is the authoritative document for the predefined language
  3530. elements that are specific to groff.
  3531. .
  3532. .TP
  3533. .BR groff_char (@MAN7EXT@)
  3534. the predefined groff characters (glyphs).
  3535. .
  3536. .TP
  3537. .BR groff_font (@MAN5EXT@)
  3538. the specification of fonts and the DESC file.
  3539. .
  3540. .TP
  3541. .BR roff (@MAN7EXT@)
  3542. the history of roff, the common parts shared by all roff systems, and
  3543. pointers to further documentation.
  3544. .
  3545. .TP
  3546. .I [CSTR\~#54]
  3547. .URL http://\:cm.bell-labs.com/\:cm/\:cs/\:54.ps \
  3548. "Nroff/\:Troff User's Manual by Osanna & Kernighan"
  3549. \[em] the bible for classical troff.
  3550. .
  3551. .cp \n[groff_C]
  3552. .
  3553. .\" --------------------------------------------------------------------
  3554. .\" Emacs Setup
  3555. .\" --------------------------------------------------------------------
  3556. .
  3557. .\" Local Variables:
  3558. .\" mode: nroff
  3559. .\" End: