1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307 5308 5309 5310 5311 5312 5313 5314 5315 5316 5317 5318 5319 5320 5321 5322 5323 5324 5325 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379 5380 5381 5382 5383 5384 5385 5386 5387 5388 5389 5390 5391 5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423 5424 5425 5426 5427 5428 5429 5430 5431 5432 5433 5434 5435 5436 5437 5438 5439 5440 5441 5442 5443 5444 5445 5446 5447 5448 5449 5450 5451 5452 5453 5454 5455 5456 5457 5458 5459 5460 5461 5462 5463 5464 5465 5466 5467 5468 5469 5470 5471 5472 5473 5474 5475 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619 5620 5621 5622 5623 5624 5625 5626 5627 5628 5629 5630 5631 5632 5633 5634 5635 5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 5650 5651 5652 5653 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 5679 5680 5681 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782 5783 5784 5785 5786 5787 5788 5789 5790 5791 5792 5793 5794 5795 5796 5797 5798 5799 5800 5801 5802 5803 5804 5805 5806 5807 5808 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 5888 5889 5890 5891 5892 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 5903 5904 5905 5906 5907 5908 5909 5910 5911 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 5948 5949 5950 5951 5952 5953 5954 5955 5956 5957 5958 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 6020 6021 6022 6023 6024 6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 6056 6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 6079 6080 6081 6082 6083 6084 6085 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 6097 6098 6099 6100 6101 6102 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6145 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 6159 6160 6161 6162 6163 6164 6165 6166 6167 6168 6169 6170 6171 6172 6173 6174 6175 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205 6206 6207 6208 6209 6210 6211 6212 6213 6214 6215 6216 6217 6218 6219 6220 6221 6222 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 6235 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249 6250 6251 6252 6253 6254 6255 6256 6257 6258 6259 6260 6261 6262 6263 6264 6265 6266 6267 6268 6269 6270 6271 6272 6273 6274 6275 6276 6277 6278 6279 6280 6281 6282 6283 6284 6285 6286 6287 6288 6289 6290 6291 6292 6293 6294 6295 6296 6297 6298 6299 6300 6301 6302 6303 6304 6305 6306 6307 6308 6309 6310 6311 6312 6313 6314 6315 6316 6317 6318 6319 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6331 6332 6333 6334 6335 6336 6337 6338 6339 6340 6341 6342 6343 6344 6345 6346 6347 6348 6349 6350 6351 6352 6353 6354 6355 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 6367 6368 6369 6370 6371 6372 6373 6374 6375 6376 6377 6378 6379 6380 6381 6382 6383 6384 6385 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 6397 6398 6399 6400 6401 6402 6403 6404 6405 6406 6407 6408 6409 6410 6411 6412 6413 6414 6415 6416 6417 6418 6419 6420 6421 6422 6423 6424 6425 6426 6427 6428 6429 6430 6431 6432 6433 6434 6435 6436 6437 6438 6439 6440 6441 6442 6443 6444 6445 6446 6447 6448 6449 6450 6451 6452 6453 6454 6455 6456 6457 6458 6459 6460 6461 6462 6463 6464 6465 6466 6467 6468 6469 6470 6471 6472 6473 6474 6475 6476 6477 6478 6479 6480 6481 6482 6483 6484 6485 6486 6487 6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 6522 6523 6524 6525 6526 6527 6528 6529 6530 6531 6532 6533 6534 6535 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 6558 6559 6560 6561 6562 6563 6564 6565 6566 6567 6568 6569 6570 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 6581 6582 6583 6584 6585 6586 6587 6588 6589 6590 6591 6592 6593 6594 6595 6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 6607 6608 6609 6610 6611 6612 6613 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637 6638 6639 6640 6641 6642 6643 6644 6645 6646 6647 6648 6649 6650 6651 6652 6653 6654 6655 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665 6666 6667 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678 6679 6680 6681 6682 6683 6684 6685 6686 6687 6688 6689 6690 6691 6692 6693 6694 6695 6696 6697 6698 6699 6700 6701 6702 6703 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6715 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 6728 6729 6730 6731 6732 6733 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 6762 6763 6764 6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6775 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 6793 6794 6795 6796 6797 6798 6799 6800 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810 6811 6812 6813 6814 6815 6816 6817 6818 6819 6820 6821 6822 6823 6824 6825 6826 6827 6828 6829 6830 6831 6832 6833 6834 6835 6836 6837 6838 6839 6840 6841 6842 6843 6844 6845 6846 6847 6848 6849 6850 6851 6852 6853 6854 6855 6856 6857 6858 6859 6860 6861 6862 6863 6864 6865 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 6878 6879 6880 6881 6882 6883 6884 6885 6886 6887 6888 6889 6890 6891 6892 6893 6894 6895 6896 6897 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 6908 6909 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 6921 6922 6923 6924 6925 6926 6927 6928 6929 6930 6931 6932 6933 6934 6935 6936 6937 6938 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 6968 6969 6970 6971 6972 6973 6974 6975 6976 6977 6978 6979 6980 6981 6982 6983 6984 6985 6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 6997 6998 6999 7000 7001 7002 7003 7004 7005 7006 7007 7008 7009 7010 7011 7012 7013 7014 7015 7016 7017 7018 7019 7020 7021 7022 7023 7024 7025 7026 7027 7028 7029 7030 7031 7032 7033 7034 7035 7036 7037 7038 7039 7040 7041 7042 7043 7044 7045 7046 7047 7048 7049 7050 7051 7052 7053 7054 7055 7056 7057 7058 7059 7060 7061 7062 7063 7064 7065 7066 7067 7068 7069 7070 7071 7072 7073 7074 7075 7076 7077 7078 7079 7080 7081 7082 7083 7084 7085 7086 7087 7088 7089 7090 7091 7092 7093 7094 7095 7096 7097 7098 7099 7100 7101 7102 7103 7104 7105 7106 7107 7108 7109 7110 7111 7112 7113 7114 7115 7116 7117 7118 7119 7120 7121 7122 7123 7124 7125 7126 7127 7128 7129 7130 7131 7132 7133 7134 7135 7136 7137 7138 7139 7140 7141 7142 7143 7144 7145 7146 7147 7148 7149 7150 7151 7152 7153 7154 7155 7156 7157 7158 7159 7160 7161 7162 7163 7164 7165 7166 7167 7168 7169 7170 7171 7172 7173 7174 7175 7176 7177 7178 7179 7180 7181 7182 7183 7184 7185 7186 7187 7188 7189 7190 7191 7192 7193 7194 7195 7196 7197 7198 7199 7200 7201 7202 7203 7204 7205 7206 7207 7208 7209 7210 7211 7212 7213 7214 7215 7216 7217 7218 7219 7220 7221 7222 7223 7224 7225 7226 7227 7228 7229 7230 7231 7232 7233 7234 7235 7236 7237 7238 7239 7240 7241 7242 7243 7244 7245 7246 7247 7248 7249 7250 7251 7252 7253 7254 7255 7256 7257 7258 7259 7260 7261 7262 7263 7264 7265 7266 7267 7268 7269 7270 7271 7272 7273 7274 7275 7276 7277 7278 7279 7280 7281 7282 7283 7284 7285 7286 7287 7288 7289 7290 7291 7292 7293 7294 7295 7296 7297 7298 7299 7300 7301 7302 7303 7304 7305 7306 7307 7308 7309 7310 7311 7312 7313 7314 7315 7316 7317 7318 7319 7320 7321 7322 7323 7324 7325 7326 7327 7328 7329 7330 7331 7332 7333 7334 7335 7336 7337 7338 7339 7340 7341 7342 7343 7344 7345 7346 7347 7348 7349 7350 7351 7352 7353 7354 7355 7356 7357 7358 7359 7360 7361 7362 7363 7364 7365 7366 7367 7368 7369 7370 7371 7372 7373 7374 7375 7376 7377 7378 7379 7380 7381 7382 7383 7384 7385 7386 7387 7388 7389 7390 7391 7392 7393 7394 7395 7396 7397 7398 7399 7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 7410 7411 7412 7413 7414 7415 7416 7417 7418 7419 7420 7421 7422 7423 7424 7425 7426 7427 7428 7429 7430 7431 7432 7433 7434 7435 7436 7437 7438 7439 7440 7441 7442 7443 7444 7445 7446 7447 7448 7449 7450 7451 7452 7453 7454 7455 7456 7457 7458 7459 7460 7461 7462 7463 7464 7465 7466 7467 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7481 7482 7483 7484 7485 7486 7487 7488 7489 7490 7491 7492 7493 7494 7495 7496 7497 7498 7499 7500 7501 7502 7503 7504 7505 7506 7507 7508 7509 7510 7511 7512 7513 7514 7515 7516 7517 7518 7519 7520 7521 7522 7523 7524 7525 7526 7527 7528 7529 7530 7531 7532 7533 7534 7535 7536 7537 7538 7539 7540 7541 7542 7543 7544 7545 7546 7547 7548 7549 7550 7551 7552 7553 7554 7555 7556 7557 7558 7559 7560 7561 7562 7563 7564 7565 7566 7567 7568 7569 7570 7571 7572 7573 7574 7575 7576 7577 7578 7579 7580 7581 7582 7583 7584 7585 7586 7587 7588 7589 7590 7591 7592 7593 7594 7595 7596 7597 7598 7599 7600 7601 7602 7603 7604 7605 7606 7607 7608 7609 7610 7611 7612 7613 7614 7615 7616 7617 7618 7619 7620 7621 7622 7623 7624 7625 7626 7627 7628 7629 7630 7631 7632 7633 7634 7635 7636 7637 7638 7639 7640 7641 7642 7643 7644 7645 7646 7647 7648 7649 7650 7651 7652 7653 7654 7655 7656 7657 7658 7659 7660 7661 7662 7663 7664 7665 7666 7667 7668 7669 7670 7671 7672 7673 7674 7675 7676 7677 7678 7679 7680 7681 7682 7683 7684 7685 7686 7687 7688 7689 7690 7691 7692 7693 7694 7695 7696 7697 7698 7699 7700 7701 7702 7703 7704 7705 7706 7707 7708 7709 7710 7711 7712 7713 7714 7715 7716 7717 7718 7719 7720 7721 7722 7723 7724 7725 7726 7727 7728 7729 7730 7731 7732 7733 7734 7735 7736 7737 7738 7739 7740 7741 7742 7743 7744 7745 7746 7747 7748 7749 7750 7751 7752 7753 7754 7755 7756 7757 7758 7759 7760 7761 7762 7763 7764 7765 7766 7767 7768 7769 7770 7771 7772 7773 7774 7775 7776 7777 7778 7779 7780 7781 7782 7783 7784 7785 7786 7787 7788 7789 7790 7791 7792 7793 7794 7795 7796 7797 7798 7799 7800 7801 7802 7803 7804 7805 7806 7807 7808 7809 7810 7811 7812 7813 7814 7815 7816 7817 7818 7819 7820 7821 7822 7823 7824 7825 7826 7827 7828 7829 7830 7831 7832 7833 7834 7835 7836 7837 7838 7839 7840 7841 7842 7843 7844 7845 7846 7847 7848 7849 7850 7851 7852 7853 7854 7855 7856 7857 7858 7859 7860 7861 7862 7863 7864 7865 7866 7867 7868 7869 7870 7871 7872 7873 7874 7875 7876 7877 7878 7879 7880 7881 7882 7883 7884 7885 7886 7887 7888 7889 7890 7891 7892 7893 7894 7895 7896 7897 7898 7899 7900 7901 7902 7903 7904 7905 7906 7907 7908 7909 7910 7911 7912 7913 7914 7915 7916 7917 7918 7919 7920 7921 7922 7923 7924 7925 7926 7927 7928 7929 7930 7931 7932 7933 7934 7935 7936 7937 7938 7939 7940 7941 7942 7943 7944 7945 7946 7947 7948 7949 7950 7951 7952 7953 7954 7955 7956 7957 7958 7959 7960 7961 7962 7963 7964 7965 7966 7967 7968 7969 7970 7971 7972 7973 7974 7975 7976 7977 7978 7979 7980 7981 7982 7983 7984 7985 7986 7987 7988 7989 7990 7991 7992 7993 7994 7995 7996 7997 7998 7999 8000 8001 8002 8003 8004 8005 8006 8007 8008 8009 8010 8011 8012 8013 8014 8015 8016 8017 8018 8019 8020 8021 8022 8023 8024 8025 8026 8027 8028 8029 8030 8031 8032 8033 8034 8035 8036 8037 8038 8039 8040 8041 8042 8043 8044 8045 8046 8047 8048 8049 8050 8051 8052 8053 8054 8055 8056 8057 8058 8059 8060 8061 8062 8063 8064 8065 8066 8067 8068 8069 8070 8071 8072 8073 8074 8075 8076 8077 8078 8079 8080 8081 8082 8083 8084 8085 8086 8087 8088 8089 8090 8091 8092 8093 8094 8095 8096 8097 8098 8099 8100 8101 8102 8103 8104 8105 8106 8107 8108 8109 8110 8111 8112 8113 8114 8115 8116 8117 8118 8119 8120 8121 8122 8123 8124 8125 8126 8127 8128 8129 8130 8131 8132 8133 8134 8135 8136 8137 8138 8139 8140 8141 8142 8143 8144 8145 8146 8147 8148 8149 8150 8151 8152 8153 8154 8155 8156 8157 8158 8159 8160 8161 8162 8163 8164 8165 8166 8167 8168 8169 8170 8171 8172 8173 8174 8175 8176 8177 8178 8179 8180 8181 8182 8183 8184 8185 8186 8187 8188 8189 8190 8191 8192 8193 8194 8195 8196 8197 8198 8199 8200 8201 8202 8203 8204 8205 8206 8207 8208 8209 8210 8211 8212 8213 8214 8215 8216 8217 8218 8219 8220 8221 8222 8223 8224 8225 8226 8227 8228 8229 8230 8231 8232 8233 8234 8235 8236 8237 8238 8239 8240 8241 8242 8243 8244 8245 8246 8247 8248 8249 8250 8251 8252 8253 8254 8255 8256 8257 8258 8259 8260 8261 8262 8263 8264 8265 8266 8267 8268 8269 8270 8271 8272 8273 8274 8275 8276 8277 8278 8279 8280 8281 8282 8283 8284 8285 8286 8287 8288 8289 8290 8291 8292 8293 8294 8295 8296 8297 8298 8299 8300 8301 8302 8303 8304 8305 8306 8307 8308 8309 8310 8311 8312 8313 8314 8315 8316 8317 8318 8319 8320 8321 8322 8323 8324 8325 8326 8327 8328 8329 8330 8331 8332 8333 8334 8335 8336 8337 8338 8339 8340 8341 8342 8343 8344 8345 8346 8347 8348 8349 8350 8351 8352 8353 8354 8355 8356 8357 8358 8359 8360 8361 8362 8363 8364 8365 8366 8367 8368 8369 8370 8371 8372 8373 8374 8375 8376 8377 8378 8379 8380 8381 8382 8383 8384 8385 8386 8387 8388 8389 8390 8391 8392 8393 8394 8395 8396 8397 8398 8399 8400 8401 8402 8403 8404 8405 8406 8407 8408 8409 8410 8411 8412 8413 8414 8415 8416 8417 8418 8419 8420 8421 8422 8423 8424 8425 8426 8427 8428 8429 8430 8431 8432 8433 8434 8435 8436 8437 8438 8439 8440 8441 8442 8443 8444 8445 8446 8447 8448 8449 8450 8451 8452 8453 8454 8455 8456 8457 8458 8459 8460 8461 8462 8463 8464 8465 8466 8467 8468 8469 8470 8471 8472 8473 8474 8475 8476 8477 8478 8479 8480 8481 8482 8483 8484 8485 8486 8487 8488 8489 8490 8491 8492 8493 8494 8495 8496 8497 8498 8499 8500 8501 8502 8503 8504 8505 8506 8507 8508 8509 8510 8511 8512 8513 8514 8515 8516 8517 8518 8519 8520 8521 8522 8523 8524 8525 8526 8527 8528 8529 8530 8531 8532 8533 8534 8535 8536 8537 8538 8539 8540 8541 8542 8543 8544 8545 8546 8547 8548 8549 8550 8551 8552 8553 8554 8555 8556 8557 8558 8559 8560 8561 8562 8563 8564 8565 8566 8567 8568 8569 8570 8571 8572 8573 8574 8575 8576 8577 8578 8579 8580 8581 8582 8583 8584 8585 8586 8587 8588 8589 8590 8591 8592 8593 8594 8595 8596 8597 8598 8599 8600 8601 8602 8603 8604 8605 8606 8607 8608 8609 8610 8611 8612 8613 8614 8615 8616 8617 8618 8619 8620 8621 8622 8623 8624 8625 8626 8627 8628 8629 8630 8631 8632 8633 8634 8635 8636 8637 8638 8639 8640 8641 8642 8643 8644 8645 8646 8647 8648 8649 8650 8651 8652 8653 8654 8655 8656 8657 8658 8659 8660 8661 8662 8663 8664 8665 8666 8667 8668 8669 8670 8671 8672 8673 8674 8675 8676 8677 8678 8679 8680 8681 8682 8683 8684 8685 8686 8687 8688 8689 8690 8691 8692 8693 8694 8695 8696 8697 8698 8699 8700 8701 8702 8703 8704 8705 8706 8707 8708 8709 8710 8711 8712 8713 8714 8715 8716 8717 8718 8719 8720 8721 8722 8723 8724 8725 8726 8727 8728 8729 8730 8731 8732 8733 8734 8735 8736 8737 8738 8739 8740 8741 8742 8743 8744 8745 8746 8747 8748 8749 8750 8751 8752 8753 8754 8755 8756 8757 8758 8759 8760 8761 8762 8763 8764 8765 8766 8767 8768 8769 8770 8771 8772 8773 8774 8775 8776 8777 8778 8779 8780 8781 8782 8783 8784 8785 8786 8787 8788 8789 8790 8791 8792 8793 8794 8795 8796 8797 8798 8799 8800 8801 8802 8803 8804 8805 8806 8807 8808 8809 8810 8811 8812 8813 8814 8815 8816 8817 8818 8819 8820 8821 8822 8823 8824 8825 8826 8827 8828 8829 8830 8831 8832 8833 8834 8835 8836 8837 8838 8839 8840 8841 8842 8843 8844 8845 8846 8847 8848 8849 8850 8851 8852 8853 8854 8855 8856 8857 8858 8859 8860 8861 8862 8863 8864 8865 8866 8867 8868 8869 8870 8871 8872 8873 8874 8875 8876 8877 8878 8879 8880 8881 8882 8883 8884 8885 8886 8887 8888 8889 8890 8891 8892 8893 8894 8895 8896 8897 8898 8899 8900 8901 8902 8903 8904 8905 8906 8907 8908 8909 8910 8911 8912 8913 8914 8915 8916 8917 8918 8919 8920 8921 8922 8923 8924 8925 8926 8927 8928 8929 8930 8931 8932 8933 8934 8935 8936 8937 8938 8939 8940 8941 8942 8943 8944 8945 8946 8947 8948 8949 8950 8951 8952 8953 8954 8955 8956 8957 8958 8959 8960 8961 8962 8963 8964 8965 8966 8967 8968 8969 8970 8971 8972 8973 8974 8975 8976 8977 8978 8979 8980 8981 8982 8983 8984 8985 8986 8987 8988 8989 8990 8991 8992 8993 8994 8995 8996 8997 8998 8999 9000 9001 9002 9003 9004 9005 9006 9007 9008 9009 9010 9011 9012 9013 9014 9015 9016 9017 9018 9019 9020 9021 9022 9023 9024 9025 9026 9027 9028 9029 9030 9031 9032 9033 9034 9035 9036 9037 9038 9039 9040 9041 9042 9043 9044 9045 9046 9047 9048 9049 9050 9051 9052 9053 9054 9055 9056 9057 9058 9059 9060 9061 9062 9063 9064 9065 9066 9067 9068 9069 9070 9071 9072 9073 9074 9075 9076 9077 9078 9079 9080 9081 9082 9083 9084 9085 9086 9087 9088 9089 9090 9091 9092 9093 9094 9095 9096 9097 9098 9099 9100 9101 9102 9103 9104 9105 9106 9107 9108 9109 9110 9111 9112 9113 9114 9115 9116 9117 9118 9119 9120 9121 9122 9123 9124 9125 9126 9127 9128 9129 9130 9131 9132 9133 9134 9135 9136 9137 9138 9139 9140 9141 9142 9143 9144 9145 9146 9147 9148 9149 9150 9151 9152 9153 9154 9155 9156 9157 9158 9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 9174 9175 9176 9177 9178 9179 9180 9181 9182 9183 9184 9185 9186 9187 9188 9189 9190 9191 9192 9193 9194 9195 9196 9197 9198 9199 9200 9201 9202 9203 9204 9205 9206 9207 9208 9209 9210 9211 9212 9213 9214 9215 9216 9217 9218 9219 9220 9221 9222 9223 9224 9225 9226 9227 9228 9229 9230 9231 9232 9233 9234 9235 9236 9237 9238 9239 9240 9241 9242 9243 9244 9245 9246 9247 9248 9249 9250 9251 9252 9253 9254 9255 9256 9257 9258 9259 9260 9261 9262 9263 9264 9265 9266 9267 9268 9269 9270 9271 9272 9273 9274 9275 9276 9277 9278 9279 9280 9281 9282 9283 9284 9285 9286 9287 9288 9289 9290 9291 9292 9293 9294 9295 9296 9297 9298 9299 9300 9301 9302 9303 9304 9305 9306 9307 9308 9309 9310 9311 9312 9313 9314 9315 9316 9317 9318 9319 9320 9321 9322 9323 9324 9325 9326 9327 9328 9329 9330 9331 9332 9333 9334 9335 9336 9337 9338 9339 9340 9341 9342 9343 9344 9345 9346 9347 9348 9349 9350 9351 9352 9353 9354 9355 9356 9357 9358 9359 9360 9361 9362 9363 9364 9365 9366 9367 9368 9369 9370 9371 9372 9373 9374 9375 9376 9377 9378 9379 9380 9381 9382 9383 9384 9385 9386 9387 9388 9389 9390 9391 9392 9393 9394 9395 9396 9397 9398 9399 9400 9401 9402 9403 9404 9405 9406 9407 9408 9409 9410 9411 9412 9413 9414 9415 9416 9417 9418 9419 9420 9421 9422 9423 9424 9425 9426 9427 9428 9429 9430 9431 9432 9433 9434 9435 9436 9437 9438 9439 9440 9441 9442 9443 9444 9445 9446 9447 9448 9449 9450 9451 9452 9453 9454 9455 9456 9457 9458 9459 9460 9461 9462 9463 9464 9465 9466 9467 9468 9469 9470 9471 9472 9473 9474 9475 9476 9477 9478 9479 9480 9481 9482 9483 9484 9485 9486 9487 9488 9489 9490 9491 9492 9493 9494 9495 9496 9497 9498 9499 9500 9501 9502 9503 9504 9505 9506 9507 9508 9509 9510 9511 9512 9513 9514 9515 9516 9517 9518 9519 9520 9521 9522 9523 9524 9525 9526 9527 9528 9529 9530 9531 9532 9533 9534 9535 9536 9537 9538 9539 9540 9541 9542 9543 9544 9545 9546 9547 9548 9549 9550 9551 9552 9553 9554 9555 9556 9557 9558 9559 9560 9561 9562 9563 9564 9565 9566 9567 9568 9569 9570 9571 9572 9573 9574 9575 9576 9577 9578 9579 9580 9581 9582 9583 9584 9585 9586 9587 9588 9589 9590 9591 9592 9593 9594 9595 9596 9597 9598 9599 9600 9601 9602 9603 9604 9605 9606 9607 9608 9609 9610 9611 9612 9613 9614 9615 9616 9617 9618 9619 9620 9621 9622 9623 9624 9625 9626 9627 9628 9629 9630 9631 9632 9633 9634 9635 9636 9637 9638 9639 9640 9641 9642 9643 9644 9645 9646 9647 9648 9649 9650 9651 9652 9653 9654 9655 9656 9657 9658 9659 9660 9661 9662 9663 9664 9665 9666 9667 9668 9669 9670 9671 9672 9673 9674 9675 9676 9677 9678 9679 9680 9681 9682 9683 9684 9685 9686 9687 9688 9689 9690 9691 9692 9693 9694 9695 9696 9697 9698 9699 9700 9701 9702 9703 9704 9705 9706 9707 9708 9709 9710 9711 9712 9713 9714 9715 9716 9717 9718 9719 9720 9721 9722 9723 9724 9725 9726 9727 9728 9729 9730 9731 9732 9733 9734 9735 9736 9737 9738 9739 9740 9741 9742 9743 9744 9745 9746 9747 9748 9749 9750 9751 9752 9753 9754 9755 9756 9757 9758 9759 9760 9761 9762 9763 9764 9765 9766 9767 9768 9769 9770 9771 9772 9773 9774 9775 9776 9777 9778 9779 9780 9781 9782 9783 9784 9785 9786 9787 9788 9789 9790 9791 9792 9793 9794 9795 9796 9797 9798 9799 9800 9801 9802 9803 9804 9805 9806 9807 9808 9809 9810 9811 9812 9813 9814 9815 9816 9817 9818 9819 9820 9821 9822 9823 9824 9825 9826 9827 9828 9829 9830 9831 9832 9833 9834 9835 9836 9837 9838 9839 9840 9841 9842 9843 9844 9845 9846 9847 9848 9849 9850 9851 9852 9853 9854 9855 9856 9857 9858 9859 9860 9861 9862 9863 9864 9865 9866 9867 9868 9869 9870 9871 9872 9873 9874 9875 9876 9877 9878 9879 9880 9881 9882 9883 9884 9885 9886 9887 9888 9889 9890 9891 9892 9893 9894 9895 9896 9897 9898 9899 9900 9901 9902 9903 9904 9905 9906 9907 9908 9909 9910 9911 9912 9913 9914 9915 9916 9917 9918 9919 9920 9921 9922 9923 9924 9925 9926 9927 9928 9929 9930 9931 9932 9933 9934 9935 9936 9937 9938 9939 9940 9941 9942 9943 9944 9945 9946 9947 9948 9949 9950 9951 9952 9953 9954 9955 9956 9957 9958 9959 9960 9961 9962 9963 9964 9965 9966 9967 9968 9969 9970 9971 9972 9973 9974 9975 9976 9977 9978 9979 9980 9981 9982 9983 9984 9985 9986 9987 9988 9989 9990 9991 9992 9993 9994 9995 9996 9997 9998 9999 10000 10001 10002 10003 10004 10005 10006 10007 10008 10009 10010 10011 10012 10013 10014 10015 10016 10017 10018 10019 10020 10021 10022 10023 10024 10025 10026 10027 10028 10029 10030 10031 10032 10033 10034 10035 10036 10037 10038 10039 10040 10041 10042 10043 10044 10045 10046 10047 10048 10049 10050 10051 10052 10053 10054 10055 10056 10057 10058 10059 10060 10061 10062 10063 10064 10065 10066 10067 10068 10069 10070 10071 10072 10073 10074 10075 10076 10077 10078 10079 10080 10081 10082 10083 10084 10085 10086 10087 10088 10089 10090 10091 10092 10093 10094 10095 10096 10097 10098 10099 10100 10101 10102 10103 10104 10105 10106 10107 10108 10109 10110 10111 10112 10113 10114 10115 10116 10117 10118 10119 10120 10121 10122 10123 10124 10125 10126 10127 10128 10129 10130 10131 10132 10133 10134 10135 10136 10137 10138 10139 10140 10141 10142 10143 10144 10145 10146 10147 10148 10149 10150 10151 10152 10153 10154 10155 10156 10157 10158 10159 10160 10161 10162 10163 10164 10165 10166 10167 10168 10169 10170 10171 10172 10173 10174 10175 10176 10177 10178 10179 10180 10181 10182 10183 10184 10185 10186 10187 10188 10189 10190 10191 10192 10193 10194 10195 10196 10197 10198 10199 10200 10201 10202 10203 10204 10205 10206 10207 10208 10209 10210 10211 10212 10213 10214 10215 10216 10217 10218 10219 10220 10221 10222 10223 10224 10225 10226 10227 10228 10229 10230 10231 10232 10233 10234 10235 10236 10237 10238 10239 10240 10241 10242 10243 10244 10245 10246 10247 10248 10249 10250 10251 10252 10253 10254 10255 10256 10257 10258 10259 10260 10261 10262 10263 10264 10265 10266 10267 10268 10269 10270 10271 10272 10273 10274 10275 10276 10277 10278 10279 10280 10281 10282 10283 10284 10285 10286 10287 10288 10289 10290 10291 10292 10293 10294 10295 10296 10297 10298 10299 10300 10301 10302 10303 10304 10305 10306 10307 10308 10309 10310 10311 10312 10313 10314 10315 10316 10317 10318 10319 10320 10321 10322 10323 10324 10325 10326 10327 10328 10329 10330 10331 10332 10333 10334 10335 10336 10337 10338 10339 10340 10341 10342 10343 10344 10345 10346 10347 10348 10349 10350 10351 10352 10353 10354 10355 10356 10357 10358 10359 10360 10361 10362 10363 10364 10365 10366 10367 10368 10369 10370 10371 10372 10373 10374 10375 10376 10377 10378 10379 10380 10381 10382 10383 10384 10385 10386 10387 10388 10389 10390 10391 10392 10393 10394 10395 10396 10397 10398 10399 10400 10401 10402 10403 10404 10405 10406 10407 10408 10409 10410 10411 10412 10413 10414 10415 10416 10417 10418 10419 10420 10421 10422 10423 10424 10425 10426 10427 10428 10429 10430 10431 10432 10433 10434 10435 10436 10437 10438 10439 10440 10441 10442 10443 10444 10445 10446 10447 10448 10449 10450 10451 10452 10453 10454 10455 10456 10457 10458 10459 10460 10461 10462 10463 10464 10465 10466 10467 10468 10469 10470 10471 10472 10473 10474 10475 10476 10477 10478 10479 10480 10481 10482 10483 10484 10485 10486 10487 10488 10489 10490 10491 10492 10493 10494 10495 10496 10497 10498 10499 10500 10501 10502 10503 10504 10505 10506 10507 10508 10509 10510 10511 10512 10513 10514 10515 10516 10517 10518 10519 10520 10521 10522 10523 10524 10525 10526 10527 10528 10529 10530 10531 10532 10533 10534 10535 10536 10537 10538 10539 10540 10541 10542 10543 10544 10545 10546 10547 10548 10549 10550 10551 10552 10553 10554 10555 10556 10557 10558 10559 10560 10561 10562 10563 10564 10565 10566 10567 10568 10569 10570 10571 10572 10573 10574 10575 10576 10577 10578 10579 10580 10581 10582 10583 10584 10585 10586 10587 10588 10589 10590 10591 10592 10593 10594 10595 10596 10597 10598 10599 10600 10601 10602 10603 10604 10605 10606 10607 10608 10609 10610 10611 10612 10613 10614 10615 10616 10617 10618 10619 10620 10621 10622 10623 10624 10625 10626 10627 10628 10629 10630 10631 10632 10633 10634 10635 10636 10637 10638 10639 10640 10641 10642 10643 10644 10645 10646 10647 10648 10649 10650 10651 10652 10653 10654 10655 10656 10657 10658 10659 10660 10661 10662 10663 10664 10665 10666 10667 10668 10669 10670 10671 10672 10673 10674 10675 10676 10677 10678 10679 10680 10681 10682 10683 10684 10685 10686 10687 10688 10689 10690 10691 10692 10693 10694 10695 10696 10697 10698 10699 10700 10701 10702 10703 10704 10705 10706 10707 10708 10709 10710 10711 10712 10713 10714 10715 10716 10717 10718 10719 10720 10721 10722 10723 10724 10725 10726 10727 10728 10729 10730 10731 10732 10733 10734 10735 10736 10737 10738 10739 10740 10741 10742 10743 10744 10745 10746 10747 10748 10749 10750 10751 10752 10753 10754 10755 10756 10757 10758 10759 10760 10761 10762 10763 10764 10765 10766 10767 10768 10769 10770 10771 10772 10773 10774 10775 10776 10777 10778 10779 10780 10781 10782 10783 10784 10785 10786 10787 10788 10789 10790 10791 10792 10793 10794 10795 10796 10797 10798 10799 10800 10801 10802 10803 10804 10805 10806 10807 10808 10809 10810 10811 10812 10813 10814 10815 10816 10817 10818 10819 10820 10821 10822 10823 10824 10825 10826 10827 10828 10829 10830 10831 10832 10833 10834 10835 10836 10837 10838 10839 10840 10841 10842 10843 10844 10845 10846 10847 10848 10849 10850 10851 10852 10853 10854 10855 10856 10857 10858 10859 10860 10861 10862 10863 10864 10865 10866 10867 10868 10869 10870 10871 10872 10873 10874 10875 10876 10877 10878 10879 10880 10881 10882 10883 10884 10885 10886 10887 10888 10889 10890 10891 10892 10893 10894 10895 10896 10897 10898 10899 10900 10901 10902 10903 10904 10905 10906 10907 10908 10909 10910 10911 10912 10913 10914 10915 10916 10917 10918 10919 10920 10921 10922 10923 10924 10925 10926 10927 10928 10929 10930 10931 10932 10933 10934 10935 10936 10937 10938 10939 10940 10941 10942 10943 10944 10945 10946 10947 10948 10949 10950 10951 10952 10953 10954 10955 10956 10957 10958 10959 10960 10961 10962 10963 10964 10965 10966 10967 10968 10969 10970 10971 10972 10973 10974 10975 10976 10977 10978 10979 10980 10981 10982 10983 10984 10985 10986 10987 10988 10989 10990 10991 10992 10993 10994 10995 10996 10997 10998 10999 11000 11001 11002 11003 11004 11005 11006 11007 11008 11009 11010 11011 11012 11013 11014 11015 11016 11017 11018 11019 11020 11021 11022 11023 11024 11025 11026 11027 11028 11029 11030 11031 11032 11033 11034 11035 11036 11037 11038 11039 11040 11041 11042 11043 11044 11045 11046 11047 11048 11049 11050 11051 11052 11053 11054 11055 11056 11057 11058 11059 11060 11061 11062 11063 11064 11065 11066 11067 11068 11069 11070 11071 11072 11073 11074 11075 11076 11077 11078 11079 11080 11081 11082 11083 11084 11085 11086 11087 11088 11089 11090 11091 11092 11093 11094 11095 11096 11097 11098 11099 11100 11101 11102 11103 11104 11105 11106 11107 11108 11109 11110 11111 11112 11113 11114 11115 11116 11117 11118 11119 11120 11121 11122 11123 11124 11125 11126 11127 11128 11129 11130 11131 11132 11133 11134 11135 11136 11137 11138 11139 11140 11141 11142 11143 11144 11145 11146 11147 11148 11149 11150 11151 11152 11153 11154 11155 11156 11157 11158 11159 11160 11161 11162 11163 11164 11165 11166 11167 11168 11169 11170 11171 11172 11173 11174 11175 11176 11177 11178 11179 11180 11181 11182 11183 11184 11185 11186 11187 11188 11189 11190 11191 11192 11193 11194 11195 11196 11197 11198 11199 11200 11201 11202 11203 11204 11205 11206 11207 11208 11209 11210 11211 11212 11213 11214 11215 11216 11217 11218 11219 11220 11221 11222 11223 11224 11225 11226 11227 11228 11229 11230 11231 11232 11233 11234 11235 11236 11237 11238 11239 11240 11241 11242 11243 11244 11245 11246 11247 11248 11249 11250 11251 11252 11253 11254 11255 11256 11257 11258 11259 11260 11261 11262 11263 11264 11265 11266 11267 11268 11269 11270 11271 11272 11273 11274 11275 11276 11277 11278 11279 11280 11281 11282 11283 11284 11285 11286 11287 11288 11289 11290 11291 11292 11293 11294 11295 11296 11297 11298 11299 11300 11301 11302 11303 11304 11305 11306 11307 11308 11309 11310 11311 11312 11313 11314 11315 11316 11317 11318 11319 11320 11321 11322 11323 11324 11325 11326 11327 11328 11329 11330 11331 11332 11333 11334 11335 11336 11337 11338 11339 11340 11341 11342 11343 11344 11345 11346 11347 11348 11349 11350 11351 11352 11353 11354 11355 11356 11357 11358 11359 11360 11361 11362 11363 11364 11365 11366 11367 11368 11369 11370 11371 11372 11373 11374 11375 11376 11377 11378 11379 11380 11381 11382 11383 11384 11385 11386 11387 11388 11389 11390 11391 11392 11393 11394 11395 11396 11397 11398 11399 11400 11401 11402 11403 11404 11405 11406 11407 11408 11409 11410 11411 11412 11413 11414 11415 11416 11417 11418 11419 11420 11421 11422 11423 11424 11425 11426 11427 11428 11429 11430 11431 11432 11433 11434 11435 11436 11437 11438 11439 11440 11441 11442 11443 11444 11445 11446 11447 11448 11449 11450 11451 11452 11453 11454 11455 11456 11457 11458 11459 11460 11461 11462 11463 11464 11465 11466 11467 11468 11469 11470 11471 11472 11473 11474 11475 11476 11477 11478 11479 11480 11481 11482 11483 11484 11485 11486 11487 11488 11489 11490 11491 11492 11493 11494 11495 11496 11497 11498 11499 11500 11501 11502 11503 11504 11505 11506 11507 11508 11509 11510 11511 11512 11513 11514 11515 11516 11517 11518 11519 11520 11521 11522 11523 11524 11525 11526 11527 11528 11529 11530 11531 11532 11533 11534 11535 11536 11537 11538 11539 11540 11541 11542 11543 11544 11545 11546 11547 11548 11549 11550 11551 11552 11553 11554 11555 11556 11557 11558 11559 11560 11561 11562 11563 11564 11565 11566 11567 11568 11569 11570 11571 11572 11573 11574 11575 11576 11577 11578 11579 11580 11581 11582 11583 11584 11585 11586 11587 11588 11589 11590 11591 11592 11593 11594 11595 11596 11597 11598 11599 11600 11601 11602 11603 11604 11605 11606 11607 11608 11609 11610 11611 11612 11613 11614 11615 11616 11617 11618 11619 11620 11621 11622 11623 11624 11625 11626 11627 11628 11629 11630 11631 11632 11633 11634 11635 11636 11637 11638 11639 11640 11641 11642 11643 11644 11645 11646 11647 11648 11649 11650 11651 11652 11653 11654 11655 11656 11657 11658 11659 11660 11661 11662 11663 11664 11665 11666 11667 11668 11669 11670 11671 11672 11673 11674 11675 11676 11677 11678 11679 11680 11681 11682 11683 11684 11685 11686 11687 11688 11689 11690 11691 11692 11693 11694 11695 11696 11697 11698 11699 11700 11701 11702 11703 11704 11705 11706 11707 11708 11709 11710 11711 11712 11713 11714 11715 11716 11717 11718 11719 11720 11721 11722 11723 11724 11725 11726 11727 11728 11729 11730 11731 11732 11733 11734 11735 11736 11737 11738 11739 11740 11741 11742 11743 11744 11745 11746 11747 11748 11749 11750 11751 11752 11753 11754 11755 11756 11757 11758 11759 11760 11761 11762 11763 11764 11765 11766 11767 11768 11769 11770 11771 11772 11773 11774 11775 11776 11777 11778 11779 11780 11781 11782 11783 11784 11785 11786 11787 11788 11789 11790 11791 11792 11793 11794 11795 11796 11797 11798 11799 11800 11801 11802 11803 11804 11805 11806 11807 11808 11809 11810 11811 11812 11813 11814 11815 11816 11817 11818 11819 11820 11821 11822 11823 11824 11825 11826 11827 11828 11829 11830 11831 11832 11833 11834 11835 11836 11837 11838 11839 11840 11841 11842 11843 11844 11845 11846 11847 11848 11849 11850 11851 11852 11853 11854 11855 11856 11857 11858 11859 11860 11861 11862 11863 11864 11865 11866 11867 11868 11869 11870 11871 11872 11873 11874 11875 11876 11877 11878 11879 11880 11881 11882 11883 11884 11885 11886 11887 11888 11889 11890 11891 11892 11893 11894 11895 11896 11897 11898 11899 11900 11901 11902 11903 11904 11905 11906 11907 11908 11909 11910 11911 11912 11913 11914 11915 11916 11917 11918 11919 11920 11921 11922 11923 11924 11925 11926 11927 11928 11929 11930 11931 11932 11933 11934 11935 11936 11937 11938 11939 11940 11941 11942 11943 11944 11945 11946 11947 11948 11949 11950 11951 11952 11953 11954 11955 11956 11957 11958 11959 11960 11961 11962 11963 11964 11965 11966 11967 11968 11969 11970 11971 11972 11973 11974 11975 11976 11977 11978 11979 11980 11981 11982 11983 11984 11985 11986 11987 11988 11989 11990 11991 11992 11993 11994 11995 11996 11997 11998 11999 12000 12001 12002 12003 12004 12005 12006 12007 12008 12009 12010 12011 12012 12013 12014 12015 12016 12017 12018 12019 12020 12021 12022 12023 12024 12025 12026 12027 12028 12029 12030 12031 12032 12033 12034 12035 12036 12037 12038 12039 12040 12041 12042 12043 12044 12045 12046 12047 12048 12049 12050 12051 12052 12053 12054 12055 12056 12057 12058 12059 12060 12061 12062 12063 12064 12065 12066 12067 12068 12069 12070 12071 12072 12073 12074 12075 12076 12077 12078 12079 12080 12081 12082 12083 12084 12085 12086 12087 12088 12089 12090 12091 12092 12093 12094 12095 12096 12097 12098 12099 12100 12101 12102 12103 12104 12105 12106 12107 12108 12109 12110 12111 12112 12113 12114 12115 12116 12117 12118 12119 12120 12121 12122 12123 12124 12125 12126 12127 12128 12129 12130 12131 12132 12133 12134 12135 12136 12137 12138 12139 12140 12141 12142 12143 12144 12145 12146 12147 12148 12149 12150 12151 12152 12153 12154 12155 12156 12157 12158 12159 12160 12161 12162 12163 12164 12165 12166 12167 12168 12169 12170 12171 12172 12173 12174 12175 12176 12177 12178 12179 12180 12181 12182 12183 12184 12185 12186 12187 12188 12189 12190 12191 12192 12193 12194 12195 12196 12197 12198 12199 12200 12201 12202 12203 12204 12205 12206 12207 12208 12209 12210 12211 12212 12213 12214 12215 12216 12217 12218 12219 12220 12221 12222 12223 12224 12225 12226 12227 12228 12229 12230 12231 12232 12233 12234 12235 12236 12237 12238 12239 12240 12241 12242 12243 12244 12245 12246 12247 12248 12249 12250 12251 12252 12253 12254 12255 12256 12257 12258 12259 12260 12261 12262 12263 12264 12265 12266 12267 12268 12269 12270 12271 12272 12273 12274 12275 12276 12277 12278 12279 12280 12281 12282 12283 12284 12285 12286 12287 12288 12289 12290 12291 12292 12293 12294 12295 12296 12297 12298 12299 12300 12301 12302 12303 12304 12305 12306 12307 12308 12309 12310 12311 12312 12313 12314 12315 12316 12317 12318 12319 12320 12321 12322 12323 12324 12325 12326 12327 12328 12329 12330 12331 12332 12333 12334 12335 12336 12337 12338 12339 12340 12341 12342 12343 12344 12345 12346 12347 12348 12349 12350 12351 12352 12353 12354 12355 12356 12357 12358 12359 12360 12361 12362 12363 12364 12365 12366 12367 12368 12369 12370 12371 12372 12373 12374 12375 12376 12377 12378 12379 12380 12381 12382 12383 12384 12385 12386 12387 12388 12389 12390 12391 12392 12393 12394 12395 12396 12397 12398 12399 12400 12401 12402 12403 12404 12405 12406 12407 12408 12409 12410 12411 12412 12413 12414 12415 12416 12417 12418 12419 12420 12421 12422 12423 12424 12425 12426 12427 12428 12429 12430 12431 12432 12433 12434 12435 12436 12437 12438 12439 12440 12441 12442 12443 12444 12445 12446 12447 12448 12449 12450 12451 12452 12453 12454 12455 12456 12457 12458 12459 12460 12461 12462 12463 12464 12465 12466 12467 12468 12469 12470 12471 12472 12473 12474 12475 12476 12477 12478 12479 12480 12481 12482 12483 12484 12485 12486 12487 12488 12489 12490 12491 12492 12493 12494 12495 12496 12497 12498 12499 12500 12501 12502 12503 12504 12505 12506 12507 12508 12509 12510 12511 12512 12513 12514 12515 12516 12517 12518 12519 12520 12521 12522 12523 12524 12525 12526 12527 12528 12529 12530 12531 12532 12533 12534 12535 12536 12537 12538 12539 12540 12541 12542 12543 12544 12545 12546 12547 12548 12549 12550 12551 12552 12553 12554 12555 12556 12557 12558 12559 12560 12561 12562 12563 12564 12565 12566 12567 12568 12569 12570 12571 12572 12573 12574 12575 12576 12577 12578 12579 12580 12581 12582 12583 12584 12585 12586 12587 12588 12589 12590 12591 12592 12593 12594 12595 12596 12597 12598 12599 12600 12601 12602 12603 12604 12605 12606 12607 12608 12609 12610 12611 12612 12613 12614 12615 12616 12617 12618 12619 12620 12621 12622 12623 12624 12625 12626 12627 12628 12629 12630 12631 12632 12633 12634 12635 12636 12637 12638 12639 12640 12641 12642 12643 12644 12645 12646 12647 12648 12649 12650 12651 12652 12653 12654 12655 12656 12657 12658 12659 12660 12661 12662 12663 12664 12665 12666 12667 12668 12669 12670 12671 12672 12673 12674 12675 12676 12677 12678 12679 12680 12681 12682 12683 12684 12685 12686 12687 12688 12689 12690 12691 12692 12693 12694 12695 12696 12697 12698 12699 12700 12701 12702 12703 12704 12705 12706 12707 12708 12709 12710 12711 12712 12713 12714 12715 12716 12717 12718 12719 12720 12721 12722 12723 12724 12725 12726 12727 12728 12729 12730 12731 12732 12733 12734 12735 12736 12737 12738 12739 12740 12741 12742 12743 12744 12745 12746 12747 12748 12749 12750 12751 12752 12753 12754 12755 12756 12757 12758 12759 12760 12761 12762 12763 12764 12765 12766 12767 12768 12769 12770 12771 12772 12773 12774 12775 12776 12777 12778 12779 12780 12781 12782 12783 12784 12785 12786 12787 12788 12789 12790 12791 12792 12793 12794 12795 12796 12797 12798 12799 12800 12801 12802 12803 12804 12805 12806 12807 12808 12809 12810 12811 12812 12813 12814 12815 12816 12817 12818 12819 12820 12821 12822 12823 12824 12825 12826 12827 12828 12829 12830 12831 12832 12833 12834 12835 12836 12837 12838 12839 12840 12841 12842 12843 12844 12845 12846 12847 12848 12849 12850 12851 12852 12853 12854 12855 12856 12857 12858 12859 12860 12861 12862 12863 12864 12865 12866 12867 12868 12869 12870 12871 12872 12873 12874 12875 12876 12877 12878 12879 12880 12881 12882 12883 12884 12885 12886 12887 12888 12889 12890 12891 12892 12893 12894 12895 12896 12897 12898 12899 12900 12901 12902 12903 12904 12905 12906 12907 12908 12909 12910 12911 12912 12913 12914 12915 12916 12917 12918 12919 12920 12921 12922 12923 12924 12925 12926 12927 12928 12929 12930 12931 12932 12933 12934 12935 12936 12937 12938 12939 12940 12941 12942 12943 12944 12945 12946 12947 12948 12949 12950 12951 12952 12953 12954 12955 12956 12957 12958 12959 12960 12961 12962 12963 12964 12965 12966 12967 12968 12969 12970 12971 12972 12973 12974 12975 12976 12977 12978 12979 12980 12981 12982 12983 12984 12985 12986 12987 12988 12989 12990 12991 12992 12993 12994 12995 12996 12997 12998 12999 13000 13001 13002 13003 13004 13005 13006 13007 13008 13009 13010 13011 13012 13013 13014 13015 13016 13017 13018 13019 13020 13021 13022 13023 13024 13025 13026 13027 13028 13029 13030 13031 13032 13033 13034 13035 13036 13037 13038 13039 13040 13041 13042 13043 13044 13045 13046 13047 13048 13049 13050 13051 13052 13053 13054 13055 13056 13057 13058 13059 13060 13061 13062 13063 13064 13065 13066 13067 13068 13069 13070 13071 13072 13073 13074 13075 13076 13077 13078 13079 13080 13081 13082 13083 13084 13085 13086 13087 13088 13089 13090 13091 13092 13093 13094 13095 13096 13097 13098 13099 13100 13101 13102 13103 13104 13105 13106 13107 13108 13109 13110 13111 13112 13113 13114 13115 13116 13117 13118 13119 13120 13121 13122 13123 13124 13125 13126 13127 13128 13129 13130 13131 13132 13133 13134 13135 13136 13137 13138 13139 13140 13141 13142 13143 13144 13145 13146 13147 13148 13149 13150 13151 13152 13153 13154 13155 13156 13157 13158 13159 13160 13161 13162 13163 13164 13165 13166 13167 13168 13169 13170 13171 13172 13173 13174 13175 13176 13177 13178 13179 13180 13181 13182 13183 13184 13185 13186 13187 13188 13189 13190 13191 13192 13193 13194 13195 13196 13197 13198 13199 13200 13201 13202 13203 13204 13205 13206 13207 13208 13209 13210 13211 13212 13213 13214 13215 13216 13217 13218 13219 13220 13221 13222 13223 13224 13225 13226 13227 13228 13229 13230 13231 13232 13233 13234 13235 13236 13237 13238 13239 13240 13241 13242 13243 13244 13245 13246 13247 13248 13249 13250 13251 13252 13253 13254 13255 13256 13257 13258 13259 13260 13261 13262 13263 13264 13265 13266 13267 13268 13269 13270 13271 13272 13273 13274 13275 13276 13277 13278 13279 13280 13281 13282 13283 13284 13285 13286 13287 13288 13289 13290 13291 13292 13293 13294 13295 13296 13297 13298 13299 13300 13301 13302 13303 13304 13305 13306 13307 13308 13309 13310 13311 13312 13313 13314 13315 13316 13317 13318 13319 13320 13321 13322 13323 13324 13325 13326 13327 13328 13329 13330 13331 13332 13333 13334 13335 13336 13337 13338 13339 13340 13341 13342 13343 13344 13345 13346 13347 13348 13349 13350 13351 13352 13353 13354 13355 13356 13357 13358 13359 13360 13361 13362 13363 13364 13365 13366 13367 13368 13369 13370 13371 13372 13373 13374 13375 13376 13377 13378 13379 13380 13381 13382 13383 13384 13385 13386 13387 13388 13389 13390 13391 13392 13393 13394 13395 13396 13397 13398 13399 13400 13401 13402 13403 13404 13405 13406 13407 13408 13409 13410 13411 13412 13413 13414 13415 13416 13417 13418 13419 13420 13421 13422 13423 13424 13425 13426 13427 13428 13429 13430 13431 13432 13433 13434 13435 13436 13437 13438 13439 13440 13441 13442 13443 13444 13445 13446 13447 13448 13449 13450 13451 13452 13453 13454 13455 13456 13457 13458 13459 13460 13461 13462 13463 13464 13465 13466 13467 13468 13469 13470 13471 13472 13473 13474 13475 13476 13477 13478 13479 13480 13481 13482 13483 13484 13485 13486 13487 13488 13489 13490 13491 13492 13493 13494 13495 13496 13497 13498 13499 13500 13501 13502 13503 13504 13505 13506 13507 13508 13509 13510 13511 13512 13513 13514 13515 13516 13517 13518 13519 13520 13521 13522 13523 13524 13525 13526 13527 13528 13529 13530 13531 13532 13533 13534 13535 13536 13537 13538 13539 13540 13541 13542 13543 13544 13545 13546 13547 13548 13549 13550 13551 13552 13553 13554 13555 13556 13557 13558 13559 13560 13561 13562 13563 13564 13565 13566 13567 13568 13569 13570 13571 13572 13573 13574 13575 13576 13577 13578 13579 13580 13581 13582 13583 13584 13585 13586 13587 13588 13589 13590 13591 13592 13593 13594 13595 13596 13597 13598 13599 13600 13601 13602 13603 13604 13605 13606 13607 13608 13609 13610 13611 13612 13613 13614 13615 13616 13617 13618 13619 13620 13621 13622 13623 13624 13625 13626 13627 13628 13629 13630 13631 13632 13633 13634 13635 13636 13637 13638 13639 13640 13641 13642 13643 13644 13645 13646 13647 13648 13649 13650 13651 13652 13653 13654 13655 13656 13657 13658 13659 13660 13661 13662 13663 13664 13665 13666 13667 13668 13669 13670 13671 13672 13673 13674 13675 13676 13677 13678 13679 13680 13681 13682 13683 13684 13685 13686 13687 13688 13689 13690 13691 13692 13693 13694 13695 13696 13697 13698 13699 13700 13701 13702 13703 13704 13705 13706 13707 13708 13709 13710 13711 13712 13713 13714 13715 13716 13717 13718 13719 13720 13721 13722 13723 13724 13725 13726 13727 13728 13729 13730 13731 13732 13733 13734 13735 13736 13737 13738 13739 13740 13741 13742 13743 13744 13745 13746 13747 13748 13749 13750 13751 13752 13753 13754 13755 13756 13757 13758 13759 13760 13761 13762 13763 13764 13765 13766 13767 13768 13769 13770 13771 13772 13773 13774 13775 13776 13777 13778 13779 13780 13781 13782 13783 13784 13785 13786 13787 13788 13789 13790 13791 13792 13793 13794 13795 13796 13797 13798 13799 13800 13801 13802 13803 13804 13805 13806 13807 13808 13809 13810 13811 13812 13813 13814 13815 13816 13817 13818 13819 13820 13821 13822 13823 13824 13825 13826 13827 13828 13829 13830 13831 13832 13833 13834 13835 13836 13837 13838 13839 13840 13841 13842 13843 13844 13845 13846 13847 13848 13849 13850 13851 13852 13853 13854 13855 13856 13857 13858 13859 13860 13861 13862 13863 13864 13865 13866 13867 13868 13869 13870 13871 13872 13873 13874 13875 13876 13877 13878 13879 13880 13881 13882 13883 13884 13885 13886 13887 13888 13889 13890 13891 13892 13893 13894 13895 13896 13897 13898 13899 13900 13901 13902 13903 13904 13905 13906 13907 13908 13909 13910 13911 13912 13913 13914 13915 13916 13917 13918 13919 13920 13921 13922 13923 13924 13925 13926 13927 13928 13929 13930 13931 13932 13933 13934 13935 13936 13937 13938 13939 13940 13941 13942 13943 13944 13945 13946 13947 13948 13949 13950 13951 13952 13953 13954 13955 13956 13957 13958 13959 13960 13961 13962 13963 13964 13965 13966 13967 13968 13969 13970 13971 13972 13973 13974 13975 13976 13977 13978 13979 13980 13981 13982 13983 13984 13985 13986 13987 13988 13989 13990 13991 13992 13993 13994 13995 13996 13997 13998 13999 14000 14001 14002 14003 14004 14005 14006 14007 14008 14009 14010 14011 14012 14013 14014 14015 14016 14017 14018 14019 14020 14021 14022 14023 14024 14025 14026 14027 14028 14029 14030 14031 14032 14033 14034 14035 14036 14037 14038 14039 14040 14041 14042 14043 14044 14045 14046 14047 14048 14049 14050 14051 14052 14053 14054 14055 14056 14057 14058 14059 14060 14061 14062 14063 14064 14065 14066 14067 14068 14069 14070 14071 14072 14073 14074 14075 14076 14077 14078 14079 14080 14081 14082 14083 14084 14085 14086 14087 14088 14089 14090 14091 14092 14093 14094 14095 14096 14097 14098 14099 14100 14101 14102 14103 14104 14105 14106 14107 14108 14109 14110 14111 14112 14113 14114 14115 14116 14117 14118 14119 14120 14121 14122 14123 14124 14125 14126 14127 14128 14129 14130 14131 14132 14133 14134 14135 14136 14137 14138 14139 14140 14141 14142 14143 14144 14145 14146 14147 14148 14149 14150 14151 14152 14153 14154 14155 14156 14157 14158 14159 14160 14161 14162 14163 14164 14165 14166 14167 14168 14169 14170 14171 14172 14173 14174 14175 14176 14177 14178 14179 14180 14181 14182 14183 14184 14185 14186 14187 14188 14189 14190 14191 14192 14193 14194 14195 14196 14197 14198 14199 14200 14201 14202 14203 14204 14205 14206 14207 14208 14209 14210 14211 14212 14213 14214 14215 14216 14217 14218 14219 14220 14221 14222 14223 14224 14225 14226 14227 14228 14229 14230 14231 14232 14233 14234 14235 14236 14237 14238 14239 14240 14241 14242 14243 14244 14245 14246 14247 14248 14249 14250 14251 14252 14253 14254 14255 14256 14257 14258 14259 14260 14261 14262 14263 14264 14265 14266 14267 14268 14269 14270 14271 14272 14273 14274 14275 14276 14277 14278 14279 14280 14281 14282 14283 14284 14285 14286 14287 14288 14289 14290 14291 14292 14293 14294 14295 14296 14297 14298 14299 14300 14301 14302 14303 14304 14305 14306 14307 14308 14309 14310 14311 14312 14313 14314 14315 14316 14317 14318 14319 14320 14321 14322 14323 14324 14325 14326 14327 14328 14329 14330 14331 14332 14333 14334 14335 14336 14337 14338 14339 14340 14341 14342 14343 14344 14345 14346 14347 14348 14349 14350 14351 14352 14353 14354 14355 14356 14357 14358 14359 14360 14361 14362 14363 14364 14365 14366 14367 14368 14369 14370 14371 14372 14373 14374 14375 14376 14377 14378 14379 14380 14381 14382 14383 14384 14385 14386 14387 14388 14389 14390 14391 14392 14393 14394 14395 14396 14397 14398 14399 14400 14401 14402 14403 14404 14405 14406 14407 14408 14409 14410 14411 14412 14413 14414 14415 14416 14417 14418 14419 14420 14421 14422 14423 14424 14425 14426 14427 14428 14429 14430 14431 14432 14433 14434 14435 14436 14437 14438 14439 14440 14441 14442 14443 14444 14445 14446 14447 14448 14449 14450 14451 14452 14453 14454 14455 14456 14457 14458 14459 14460 14461 14462 14463 14464 14465 14466 14467 14468 14469 14470 14471 14472 14473 14474 14475 14476 14477 14478 14479 14480 14481 14482 14483 14484 14485 14486 14487 14488 14489 14490 14491 14492 14493 14494 14495 14496 14497 14498 14499 14500 14501 14502 14503 14504 14505 14506 14507 14508 14509 14510 14511 14512 14513 14514 14515 14516 14517 14518 14519 14520 14521 14522 14523 14524 14525 14526 14527 14528 14529 14530 14531 14532 14533 14534 14535 14536 14537 14538 14539 14540 14541 14542 14543 14544 14545 14546 14547 14548 14549 14550 14551 14552 14553 14554 14555 14556 14557 14558 14559 14560 14561 14562 14563 14564 14565 14566 14567 14568 14569 14570 14571 14572 14573 14574 14575 14576 14577 14578 14579 14580 14581 14582 14583 14584 14585 14586 14587 14588 14589 14590 14591 14592 14593 14594 14595 14596 14597 14598 14599 14600 14601 14602 14603 14604 14605 14606 14607 14608 14609 14610 14611 14612 14613 14614 14615 14616 14617 14618 14619 14620 14621 14622 14623 14624 14625 14626 14627 14628 14629 14630 14631 14632 14633 14634 14635 14636 14637 14638 14639 14640 14641 14642 14643 14644 14645 14646 14647 14648 14649 14650 14651 14652 14653 14654 14655 14656 14657 14658 14659 14660 14661 14662 14663 14664 14665 14666 14667 14668 14669 14670 14671 14672 14673 14674 14675 14676 14677 14678 14679 14680 14681 14682 14683 14684 14685 14686 14687 14688 14689 14690 14691 14692 14693 14694 14695 14696 14697 14698 14699 14700 14701 14702 14703 14704 14705 14706 14707 14708 14709 14710 14711 14712 14713 14714 14715 14716 14717 14718 14719 14720 14721 14722 14723 14724 14725 14726 14727 14728 14729 14730 14731 14732 14733 14734 14735 14736 14737 14738 14739 14740 14741 14742 14743 14744 14745 14746 14747 14748 14749 14750 14751 14752 14753 14754 14755 14756 14757 14758 14759 14760 14761 14762 14763 14764 14765 14766 14767 14768 14769 14770 14771 14772 14773 14774 14775 14776 14777 14778 14779 14780 14781 14782 14783 14784 14785 14786 14787 14788 14789 14790 14791 14792 14793 14794 14795 14796 14797 14798 14799 14800 14801 14802 14803 14804 14805 14806 14807 14808 14809 14810 14811 14812 14813 14814 14815 14816 14817 14818 14819 14820 14821 14822 14823 14824 14825 14826 14827 14828 14829 14830 14831 14832 14833 14834 14835 14836 14837 14838 14839 14840 14841 14842 14843 14844 14845 14846 14847 14848 14849 14850 14851 14852 14853 14854 14855 14856 14857 14858 14859 14860 14861 14862 14863 14864 14865 14866 14867 14868 14869 14870 14871 14872 14873 14874 14875 14876 14877 14878 14879 14880 14881 14882 14883 14884 14885 14886 14887 14888 14889 14890 14891 14892 14893 14894 14895 14896 14897 14898 14899 14900 14901 14902 14903 14904 14905 14906 14907 14908 14909 14910 14911 14912 14913 14914 14915 14916 14917 14918 14919 14920 14921 14922 14923 14924 14925 14926 14927 14928 14929 14930 14931 14932 14933 14934 14935 14936 14937 14938 14939 14940 14941 14942 14943 14944 14945 14946 14947 14948 14949 14950 14951 14952 14953 14954 14955 14956 14957 14958 14959 14960 14961 14962 14963 14964 14965 14966 14967 14968 14969 14970 14971 14972 14973 14974 14975 14976 14977 14978 14979 14980 14981 14982 14983 14984 14985 14986 14987 14988 14989 14990 14991 14992 14993 14994 14995 14996 14997 14998 14999 15000 15001 15002 15003 15004 15005 15006 15007 15008 15009 15010 15011 15012 15013 15014 15015 15016 15017 15018 15019 15020 15021 15022 15023 15024 15025 15026 15027 15028 15029 15030 15031 15032 15033 15034 15035 15036 15037 15038 15039 15040 15041 15042 15043 15044 15045 15046 15047 15048 15049 15050 15051 15052 15053 15054 15055 15056 15057 15058 15059 15060 15061 15062 15063 15064 15065 15066 15067 15068 15069 15070 15071 15072 15073 15074 15075 15076 15077 15078 15079 15080 15081 15082 15083 15084 15085 15086 15087 15088 15089 15090 15091 15092 15093 15094 15095 15096 15097 15098 15099 15100 15101 15102 15103 15104 15105 15106 15107 15108 15109 15110 15111 15112 15113 15114 15115 15116 15117 15118 15119 15120 15121 15122 15123 15124 15125 15126 15127 15128 15129 15130 15131 15132 15133 15134 15135 15136 15137 15138 15139 15140 15141 15142 15143 15144 15145 15146 15147 15148 15149 15150 15151 15152 15153 15154 15155 15156 15157 15158 15159 15160 15161 15162 15163 15164 15165 15166 15167 15168 15169 15170 15171 15172 15173 15174 15175 15176 15177 15178 15179 15180 15181 15182 15183 15184 15185 15186 15187 15188 15189 15190 15191 15192 15193 15194 15195 15196 15197 15198 15199 15200 15201 15202 15203 15204 15205 15206 15207 15208 15209 15210 15211 15212 15213 15214 15215 15216 15217 15218 15219 15220 15221 15222 15223 15224 15225 15226 15227 15228 15229 15230 15231 15232 15233 15234 15235 15236 15237 15238 15239 15240 15241 15242 15243 15244 15245 15246 15247 15248 15249 15250 15251 15252 15253 15254 15255 15256 15257 15258 15259 15260 15261 15262 15263 15264 15265 15266 15267 15268 15269 15270 15271 15272 15273 15274 15275 15276 15277 15278 15279 15280 15281 15282 15283 15284 15285 15286 15287 15288 15289 15290 15291 15292 15293 15294 15295 15296 15297 15298 15299 15300 15301 15302 15303 15304 15305 15306 15307 15308 15309 15310 15311 15312 15313 15314 15315 15316 15317 15318 15319 15320 15321 15322 15323 15324 15325 15326 15327 15328 15329 15330 15331 15332 15333 15334 15335 15336 15337 15338 15339 15340 15341 15342 15343 15344 15345 15346 15347 15348 15349 15350 15351 15352 15353 15354 15355 15356 15357 15358 15359 15360 15361 15362 15363 15364 15365 15366 15367 15368 15369 15370 15371 15372 15373 15374 15375 15376 15377 15378 15379 15380 15381 15382 15383 15384 15385 15386 15387 15388 15389 15390 15391 15392 15393 15394 15395 15396 15397 15398 15399 15400 15401 15402 15403 15404 15405 15406 15407 15408 15409 15410 15411 15412 15413 15414 15415 15416 15417 15418 15419 15420 15421 15422 15423 15424 15425 15426 15427 15428 15429 15430 15431 15432 15433 15434 15435 15436 15437 15438 15439 15440 15441 15442 15443 15444 15445 15446 15447 15448 15449 15450 15451 15452 15453 15454 15455 15456 15457 15458 15459 15460 15461 15462 15463 15464 15465 15466 15467 15468 15469 15470 15471 15472 15473 15474 15475 15476 15477 15478 15479 15480 15481 15482 15483 15484 15485 15486 15487 15488 15489 15490 15491 15492 15493 15494 15495 15496 15497 15498 15499 15500 15501 15502 15503 15504 15505 15506 15507 15508 15509 15510 15511 15512 15513 15514 15515 15516 15517 15518 15519 15520 15521 15522 15523 15524 15525 15526 15527 15528 15529 15530 15531 15532 15533 15534 15535 15536 15537 15538 15539 15540 15541 15542 15543 15544 15545 15546 15547 15548 15549 15550 15551 15552 15553 15554 15555 15556 15557 15558 15559 15560 15561 15562 15563 15564 15565 15566 15567 15568 15569 15570 15571 15572 15573 15574 15575 15576 15577 15578 15579 15580 15581 15582 15583 15584 15585 15586 15587 15588 15589 15590 15591 15592 15593 15594 15595 15596 15597 15598 15599 15600 15601 15602 15603 15604 15605 15606 15607 15608 15609 15610 15611 15612 15613 15614 15615 15616 15617 15618 15619 15620 15621 15622 15623 15624 15625 15626 15627 15628 15629 15630 15631 15632 15633 15634 15635 15636 15637 15638 15639 15640 15641 15642 15643 15644 15645 15646 15647 15648 15649 15650 15651 15652 15653 15654 15655 15656 15657 15658 15659 15660 15661 15662 15663 15664 15665 15666 15667 15668 15669 15670 15671 15672 15673 15674 15675 15676 15677 15678 15679 15680 15681 15682 15683 15684 15685 15686 15687 15688 15689 15690 15691 15692 15693 15694 15695 15696 15697 15698 15699 15700 15701 15702 15703 15704 15705 15706 15707 15708 15709 15710 15711 15712 15713 15714 15715 15716 15717 15718 15719 15720 15721 15722 15723 15724 15725 15726 15727 15728 15729 15730 15731 15732 15733 15734 15735 15736 15737 15738 15739 15740 15741 15742 15743 15744 15745 15746 15747 15748 15749 15750 15751 15752 15753 15754 15755 15756 15757 15758 15759 15760 15761 15762 15763 15764 15765 15766 15767 15768 15769 15770 15771 15772 15773 15774 15775 15776 15777 15778 15779 15780 15781 15782 15783 15784 15785 15786 15787 15788 15789 15790 15791 15792 15793 15794 15795 15796 15797 15798 15799 15800 15801 15802 15803 15804 15805 15806 15807 15808 15809 15810 15811 15812 15813 15814 15815 15816 15817 15818 15819 15820 15821 15822 15823 15824 15825 15826 15827 15828 15829 15830 15831 15832 15833 15834 15835 15836 15837 15838 15839 15840 15841 15842 15843 15844 15845 15846 15847 15848 15849 15850 15851 15852 15853 15854 15855 15856 15857 15858 15859 15860 15861 15862 15863 15864 15865 15866 15867 15868 15869 15870 15871 15872 15873 15874 15875 15876 15877 15878 15879 15880 15881 15882 15883 15884 15885 15886 15887 15888 15889 15890 15891 15892 15893 15894 15895 15896 15897 15898 15899 15900 15901 15902 15903 15904 15905 15906 15907 15908 15909 15910 15911 15912 15913 15914 15915 15916 15917 15918 15919 15920 15921 15922 15923 15924 15925 15926 15927 15928 15929 15930 15931 15932 15933 15934 15935 15936 15937 15938 15939 15940 15941 15942 15943 15944 15945 15946 15947 15948 15949 15950 15951 15952 15953 15954 15955 15956 15957 15958 15959 15960 15961 15962 15963 15964 15965 15966 15967 15968 15969 15970 15971 15972 15973 15974 15975 15976 15977 15978 15979 15980 15981 15982 15983 15984 15985 15986 15987 15988 15989 15990 15991 15992 15993 15994 15995 15996 15997 15998 15999 16000 16001 16002 16003 16004 16005 16006 16007 16008 16009 16010 16011 16012 16013 16014 16015 16016 16017 16018 16019 16020 16021 16022 16023 16024 16025 16026 16027 16028 16029 16030 16031 16032 16033 16034 16035 16036 16037 16038 16039 16040 16041 16042 16043 16044 16045 16046 16047 16048 16049 16050 16051 16052 16053 16054 16055 16056 16057 16058 16059 16060 16061 16062 16063 16064 16065 16066 16067 16068 16069 16070 16071 16072 16073 16074 16075 16076 16077 16078 16079 16080 16081 16082 16083 16084 16085 16086 16087 16088 16089 16090 16091 16092 16093 16094 16095 16096 16097 16098 16099 16100 16101 16102 16103 16104 16105 16106 16107 16108 16109 16110 16111 16112 16113 16114 16115 16116 16117 16118 16119 16120 16121 16122 16123 16124 16125 16126 16127 16128 16129 16130 16131 16132 16133 16134 16135 16136 16137 16138 16139 16140 16141 16142 16143 16144 16145 16146 16147 16148 16149 16150 16151 16152 16153 16154 16155 16156 16157 16158 16159 16160 16161 16162 16163 16164 16165 16166 16167 16168 16169 16170 16171 16172 16173 16174 16175 16176 16177 16178 16179 16180 16181 16182 16183 16184 16185 16186 16187 16188 16189 16190 16191 16192 16193 16194 16195 16196 16197 16198 16199 16200 16201 16202 16203 16204 16205 16206 16207 16208 16209 16210 16211 16212 16213 16214 16215 16216 16217 16218 16219 16220 16221 16222 16223 16224 16225 16226 16227 16228 16229 16230 16231 16232 16233 16234 16235 16236 16237 16238 16239 16240 16241 16242 16243 16244 16245 16246 16247 16248 16249 16250 16251 16252 16253 16254 16255 16256 16257 16258 16259 16260 16261 16262 16263 16264 16265 16266 16267 16268 16269 16270 16271 16272 16273 16274 16275 16276 16277 16278 16279 16280 16281 16282 16283 16284 16285 16286 16287 16288 16289 16290 16291 16292 16293 16294 16295 16296 16297 16298 16299 16300 16301 16302 16303 16304 16305 16306 16307 16308 16309 16310 16311 16312 16313 16314 16315 16316 16317 16318 16319 16320 16321 16322 16323 16324 16325 16326 16327 16328 16329 16330 16331 16332 16333 16334 16335 16336 16337 16338 16339 16340 16341 16342 16343 16344 16345 16346 16347 16348 16349 16350 16351 16352 16353 16354 16355 16356 16357 16358 16359 16360 16361 16362 16363 16364 16365 16366 16367 16368 16369 16370 16371 16372 16373 16374 16375 16376 16377 16378 16379 16380 16381 16382 16383 16384 16385 16386 16387 16388 16389 16390 16391 16392 16393 16394 16395 16396 16397 16398 16399 16400 16401 16402 16403 16404 16405 16406 16407 16408 16409 16410 16411 16412 16413 16414 16415 16416 16417 16418 16419 16420 16421 16422 16423 16424 16425 16426 16427 16428 16429 16430 16431 16432 16433 16434 16435 16436 16437 16438 16439 16440 16441 16442 16443 16444 16445 16446 16447 16448 16449 16450 16451 16452 16453 16454 16455 16456 16457 16458 16459 16460 16461 16462 16463 16464 16465 16466 16467 16468 16469 16470 16471 16472 16473 16474 16475 16476 16477 16478 16479 16480 16481 16482 16483 16484 16485 16486 16487 16488 16489 16490 16491 16492 16493 16494 16495 16496 16497 16498 16499 16500 16501 16502 16503 16504 16505 16506 16507 16508 16509 16510 16511 16512 16513 16514 16515 16516 16517 16518 16519 16520 16521 16522 16523 16524 16525 16526 16527 16528 16529 16530 16531 16532 16533 16534 16535 16536 16537 16538 16539 16540 16541 16542 16543 16544 16545 16546 16547 16548 16549 16550 16551 16552 16553 16554 16555 16556 16557 16558 16559 16560 16561 16562 16563 16564 16565 16566 16567 16568 16569 16570 16571 16572 16573 16574 16575 16576 16577 16578 16579 16580 16581 16582 16583 16584 16585 16586 16587 16588 16589 16590 16591 16592 16593 16594 16595 16596 16597 16598 16599 16600 16601 16602 16603 16604 16605 16606 16607 16608 16609 16610 16611 16612 16613 16614 16615 16616 16617 16618 16619 16620 16621 16622 16623 16624 16625 16626 16627 16628 16629 16630 16631 16632 16633 16634 16635 16636 16637 16638 16639 16640 16641 16642 16643 16644 16645 16646 16647 16648 16649 16650 16651 16652 16653 16654 16655 16656 16657 16658 16659 16660 16661 16662 16663 16664 16665 16666 16667 16668 16669 16670 16671 16672 16673 16674 16675 16676 16677 16678 16679 16680 16681 16682 16683 16684 16685 16686 16687 16688 16689 16690 16691 16692 16693 16694 16695 16696 16697 16698 16699 16700 16701 16702 16703 16704 16705 16706 16707 16708 16709 16710 16711 16712 16713 16714 16715 16716 16717 16718 16719 16720 16721 16722 16723 16724 16725 16726 16727 16728 16729 16730 16731 16732 16733 16734 16735 16736 16737 16738 16739 16740 16741 16742 16743 16744 16745 16746 16747 16748 16749 16750 16751 16752 16753 16754 16755 16756 16757 16758 16759 16760 16761 16762 16763 16764 16765 16766 16767 16768 16769 16770 16771 16772 16773 16774 16775 16776 16777 16778 16779 16780 16781 16782 16783 16784 16785 16786 16787 16788 16789 16790 16791 16792 16793 16794 16795 16796 16797 16798 16799 16800 16801 16802 16803 16804 16805 16806 16807 16808 16809 16810 16811 16812 16813 16814 16815 16816 16817 16818 16819 16820 16821 16822 16823 16824 16825 16826 16827 16828 16829 16830 16831 16832 16833 16834 16835 16836 16837 16838 16839 16840 16841 16842 16843 16844 16845 16846 16847 16848 16849 16850 16851 16852 16853 16854 16855 16856 16857 16858 16859 16860 16861 16862 16863 16864 16865 16866 16867 16868 16869 16870 16871 16872 16873 16874 16875 16876 16877 16878 16879 16880 16881 16882 16883 16884 16885 16886 16887 16888 16889 16890 16891 16892 16893 16894 16895 16896 16897 16898 16899 16900 16901 16902 16903 16904 16905 16906 16907 16908 16909 16910 16911 16912 16913 16914 16915 16916 16917 16918 16919 16920 16921 16922 16923 16924 16925 16926 16927 16928 16929 16930 16931 16932 16933 16934 16935 16936 16937 16938 16939 16940 16941 16942 16943 16944 16945 16946 16947 16948 16949 16950 16951 16952 16953 16954 16955 16956 16957 16958 16959 16960 16961 16962 16963 16964 16965 16966 16967 16968 16969 16970 16971 16972 16973 16974 16975 16976 16977 16978 16979 16980 16981 16982 16983 16984 16985 16986 16987 16988 16989 16990 16991 16992 16993 16994 16995 16996 16997 16998 16999 17000 17001 17002 17003 17004 17005 17006 17007 17008 17009 17010 17011 17012 17013 17014 17015 17016 17017 17018 17019 17020 17021 17022 17023 17024 17025 17026 17027 17028 17029 17030 17031 17032 17033 17034 17035 17036 17037 17038 17039 17040 17041 17042 17043 17044 17045 17046 17047 17048 17049 17050 17051 17052 17053 17054 17055 17056 17057 17058 17059 17060 17061 17062 17063 17064 17065 17066 17067 17068 17069 17070 17071 17072 17073 17074 17075 17076 17077 17078 17079 17080 17081 17082 17083 17084 17085 17086 17087 17088 17089 17090 17091 17092 17093 17094 17095 17096 17097 17098 17099 17100 17101 17102 17103 17104 17105 17106 17107 17108 17109 17110 17111 17112 17113 17114 17115 17116 17117 17118 17119 17120 17121 17122 17123 17124 17125 17126 17127 17128 17129 17130 17131 17132 17133 17134 17135 17136 17137 17138 17139 17140 17141 17142 17143 17144 17145 17146 17147 17148 17149 17150 17151 17152 17153 17154 17155 17156 17157 17158 17159 17160 17161 17162 17163 17164 17165 17166 17167 17168 17169 17170 17171 17172 17173 17174 17175 17176 17177 17178 17179 17180 17181 17182 17183 17184 17185 17186 17187 17188 17189 17190 17191 17192 17193 17194 17195 17196 17197 17198 17199 17200 17201 17202 17203 17204 17205 17206 17207 17208 17209 17210 17211 17212 17213 17214 17215 17216 17217 17218 17219 17220 17221 17222 17223 17224 17225 17226 17227 17228 17229 17230 17231 17232 17233 17234 17235 17236 17237 17238 17239 17240 17241 17242 17243 17244 17245 17246 17247 17248 17249 17250 17251 17252 17253 17254 17255 17256 17257 17258 17259 17260 17261 17262 17263 17264 17265 17266 17267 17268 17269 17270 17271 17272 17273 17274 17275 17276 17277 17278 17279 17280 17281 17282 17283 17284 17285 17286 17287 17288 17289 17290 17291 17292 17293 17294 17295 17296 17297 17298 17299 17300 17301 17302 17303 17304 17305 17306 17307 17308 17309 17310 17311 17312 17313 17314 17315 17316 17317 17318 17319 17320 17321 17322 17323 17324 17325 17326 17327 17328 17329 17330 17331 17332 17333 17334 17335 17336 17337 17338 17339 17340 17341 17342 17343 17344 17345 17346 17347 17348 17349 17350 17351 17352 17353 17354 17355 17356 17357 17358 17359 17360 17361 17362 17363 17364 17365 17366 17367 17368 17369 17370 17371 17372 17373 17374 17375 17376 17377 17378 17379 17380 17381 17382 17383 17384 17385 17386 17387 17388 17389 17390 17391 17392 17393 17394 17395 17396 17397 17398 17399 17400 17401 17402 17403 17404 17405 17406 17407 17408 17409 17410 17411 17412 17413 17414 17415 17416 17417 17418 17419 17420 17421 17422 17423 17424 17425 17426 17427 17428 17429 17430 17431 17432 17433 17434 17435 17436 17437 17438 17439 17440 17441 17442 17443 17444 17445 17446 17447 17448 17449 17450 17451 17452 17453 17454 17455 17456 17457 17458 17459 17460 17461 17462 17463 17464 17465 17466 17467 17468 17469 17470 17471 17472 17473 17474 17475 17476 17477 17478 17479 17480 17481 17482 17483 17484 17485 17486 17487 17488 17489 17490 17491 17492 17493 17494 17495 17496 17497 17498 17499 17500 17501 17502 17503 17504 17505 17506 17507 17508 17509 17510 17511 17512 17513 17514 17515 17516 17517 17518 17519 17520 17521 17522 17523 17524 17525 17526 17527 17528 17529 17530 17531 17532 17533 17534 17535 17536 17537 17538 17539 17540 17541 17542 17543 17544 17545 17546 17547 17548 17549 17550 17551 17552 17553 17554 17555 17556 17557 17558 17559 17560 17561 17562 17563 17564 17565 17566 17567 17568 17569 17570 17571 17572 17573 17574 17575 17576 17577 17578 17579 17580 17581 17582 17583 17584 17585 17586 17587 17588 17589 17590 17591 17592 17593 17594 17595 17596 17597 17598 17599 17600 17601 17602 17603 17604 17605 17606 17607 17608 17609 17610 17611 17612 17613 17614 17615 17616 17617 17618 17619 17620 17621 17622 17623 17624 17625 17626 17627 17628 17629 17630 17631 17632 17633 17634 17635 17636 17637 17638 17639 17640 17641 17642 17643 17644 17645 17646 17647 17648 17649 17650 17651 17652 17653 17654 17655 17656 17657 17658 17659 17660 17661 17662 17663 17664 17665 17666 17667 17668 17669 17670 17671 17672 17673 17674 17675 17676 17677 17678 17679 17680 17681 17682 17683 17684 17685 17686 17687 17688 17689 17690 17691 17692 17693 17694 17695 17696 17697 17698 17699 17700 17701 17702 17703 17704 17705 17706 17707 17708 17709 17710 17711 17712 17713 17714 17715 17716 17717 17718 17719 17720 17721 17722 17723 17724 17725 17726 17727 17728 17729 17730 17731 17732 17733 17734 17735 17736 17737 17738 17739 17740 17741 17742 17743 17744 17745 17746 17747 17748 17749 17750 17751 17752 17753 17754 17755 17756 17757 17758 17759 17760 17761 17762 17763 17764 17765 17766 17767 17768 17769 17770 17771 17772 17773 17774 17775 17776 17777 17778 17779 17780 17781 17782 17783 17784 17785 17786 17787 17788 17789 17790 17791 17792 17793 17794 17795 17796 17797 17798 17799 17800 17801 17802 17803 17804 17805 17806 17807 17808 17809 17810 17811 17812 17813 17814 17815 17816 17817 17818 17819 17820 17821 17822 17823 17824 17825 17826 17827 17828 17829 17830 17831 17832 17833 17834 17835 17836 17837 17838 17839 17840 17841 17842 17843 17844 17845 17846 17847 17848 17849 17850 17851 17852 17853 17854 17855 17856 17857 17858 17859 17860 17861 17862 17863 17864 17865 17866 17867 17868 17869 17870 17871 17872 17873 17874 17875 17876 17877 17878 17879 17880 17881 17882 17883 17884 17885 17886 17887 17888 17889 17890 17891 17892 17893 17894 17895 17896 17897 17898 17899 17900 17901 17902 17903 17904 17905 17906 17907 17908 17909 17910 17911 17912 17913 17914 17915 17916 17917 17918 17919 17920 17921 17922 17923 17924 17925 17926 17927 17928 17929 17930 17931 17932 17933 17934 17935 17936 17937 17938 17939 17940 17941 17942 17943 17944 17945 17946 17947 17948 17949 17950 17951 17952 17953 17954 17955 17956 17957 17958 17959 17960 17961 17962 17963 17964 17965 17966 17967 17968 17969 17970 17971 17972 17973 17974 17975 17976 17977 17978 17979 17980 17981 17982 17983 17984 17985 17986 17987 17988 17989 17990 17991 17992 17993 17994 17995 17996 17997 17998 17999 18000 18001 18002 18003 18004 18005 18006 18007 18008 18009 18010 18011 18012 18013 18014 18015 18016 18017 18018 18019 18020 18021 18022 18023 18024 18025 18026 18027 18028 18029 18030 18031 18032 18033 18034 18035 18036 18037 18038 18039 18040 18041 18042 18043 18044 18045 18046 18047 18048 18049 18050 18051 18052 18053 18054 18055 18056 18057 18058 18059 18060 18061 18062 18063 18064 18065 18066 18067 18068 18069 18070 18071 18072 18073 18074 18075 18076 18077 18078 18079 18080 18081 18082 18083 18084 18085 18086 18087 18088 18089 18090 18091 18092 18093 18094 18095 18096 18097 18098 18099 18100 18101 18102 18103 18104 18105 18106 18107 18108 18109 18110 18111 18112 18113 18114 18115 18116 18117 18118 18119 18120 18121 18122 18123 18124 18125 18126 18127 18128 18129 18130 18131 18132 18133 18134 18135 18136 18137 18138 18139 18140 18141 18142 18143 18144 18145 18146 18147 18148 18149 18150 18151 18152 18153 18154 18155 18156 18157 18158 18159 18160 18161 18162 18163 18164 18165 18166 18167 18168 18169 18170 18171 18172 18173 18174 18175 18176 18177 18178 18179 18180 18181 18182 18183 18184 18185 18186 18187 18188 18189 18190 18191 18192 18193 18194 18195 18196 18197 18198 18199 18200 18201 18202 18203 18204 18205 18206 18207 18208 18209 18210 18211 18212 18213 18214 18215 18216 18217 18218 18219 18220 18221 18222 18223 18224 18225 18226 18227 18228 18229 18230 18231 18232 18233 18234 18235 18236 18237 18238 18239 18240 18241 18242 18243 18244 18245 18246 18247 18248 18249 18250 18251 18252 18253 18254 18255 18256 18257 18258 18259 18260 18261 18262 18263 18264 18265 18266 18267 18268 18269 18270 18271 18272 18273 18274 18275 18276 18277 18278 18279 18280 18281 18282 18283 18284 18285 18286 18287 18288 18289 18290 18291 18292 18293 18294 18295 18296 18297 18298 18299 18300 18301 18302 18303 18304 18305 18306 18307 18308 18309 18310 18311 18312 18313 18314 18315 18316 18317 18318 18319 18320 18321 18322 18323 18324 18325 18326 18327 18328 18329 18330 18331 18332 18333 18334 18335 18336 18337 18338 18339 18340 18341 18342 18343 18344 18345 18346 18347 18348 18349 18350 18351 18352 18353 18354 18355 18356 18357 18358 18359 18360 18361 18362 18363 18364 18365 18366 18367 18368 18369 18370 18371 18372 18373 18374 18375 18376 18377 18378 18379 18380 18381 18382 18383 18384 18385 18386 18387 18388 18389 18390 18391 18392 18393 18394 18395 18396 18397 18398 18399 18400 18401 18402 18403 18404 18405 18406 18407 18408 18409 18410 18411 18412 18413 18414 18415 18416 18417 18418 18419 18420 18421 18422 18423 18424 18425 18426 18427 18428 18429 18430 18431 18432 18433 18434 18435 18436 18437 18438 18439 18440 18441 18442 18443 18444 18445 18446 18447 18448 18449 18450 18451 18452 18453 18454 18455 18456 18457 18458 18459 18460 18461 18462 18463 18464 18465 18466 18467 18468 18469 18470 18471 18472 18473 18474 18475 18476 18477 18478 18479 18480 18481 18482 18483 18484 18485 18486 18487 18488 18489 18490 18491 18492 18493 18494 18495 18496 18497 18498 18499 18500 18501 18502 18503 18504 18505 18506 18507 18508 18509 18510 18511 18512 18513 18514 18515 18516 18517 18518 18519 18520 18521 18522 18523 18524 18525 18526 18527 18528 18529 18530 18531 18532 18533 18534 18535 18536 18537 18538 18539 18540 18541 18542 18543 18544 18545 18546 18547 18548 18549 18550 18551 18552 18553 18554 18555 18556 18557 18558 18559 18560 18561 18562 18563 18564 18565 18566 18567 18568 18569 18570 18571 18572 18573 18574 18575 18576 18577 18578 18579 18580 18581 18582 18583 18584 18585 18586 18587 18588 18589 18590 18591 18592 18593 18594 18595 18596 18597 18598 18599 18600 18601 18602 18603 18604 18605 18606 18607 18608 18609 18610 18611 18612 18613 18614 18615 18616 18617 18618 18619 18620 18621 18622 18623 18624 18625 18626 18627 18628 18629 18630 18631 18632 18633 18634 18635 18636 18637 18638 18639 18640 18641 18642 18643 18644 18645 18646 18647 18648 18649 18650 18651 18652 18653 18654 18655 18656 18657 18658 18659 18660 18661 18662 18663 18664 18665 18666 18667 18668 18669 18670 18671 18672 18673 18674 18675 18676 18677 18678 18679 18680 18681 18682 18683 18684 18685 18686 18687 18688 18689 18690 18691 18692 18693 18694 18695 18696 18697 18698 18699 18700 18701 18702 18703 18704 18705 18706 18707 18708 18709 18710 18711 18712 18713 18714 18715 18716 18717 18718 18719 18720 18721 18722 18723 18724 18725 18726 18727 18728 18729 18730 18731 18732 18733 18734 18735 18736 18737 18738 18739 18740 18741 18742 18743 18744 18745 18746 18747 18748 18749 18750 18751 18752 18753 18754 18755 18756 18757 18758 18759 18760 18761 18762 18763 18764 18765 18766 18767 18768 18769 18770 18771 18772 18773 18774 18775 18776 18777 18778 18779 18780 18781 18782 18783 18784 18785 18786 18787 18788 18789 18790 18791 18792 18793 18794 18795 18796 18797 18798 18799 18800 18801 18802 18803 18804 18805 18806 18807 18808 18809 18810 18811 18812 18813 18814 18815 18816 18817 18818 18819 18820 18821 18822 18823 18824 18825 18826 18827 18828 18829 18830 18831 18832 18833 18834 18835 18836 18837 18838 18839 18840 18841 18842 18843 18844 18845 18846 18847 18848 18849 18850 18851 18852 18853 18854 18855 18856 18857 18858 18859 18860 18861 18862 18863 18864 18865 18866 18867 18868 18869 18870 18871 18872 18873 18874 18875 18876 18877 18878 18879 18880 18881 18882 18883 18884 18885 18886 18887 18888 18889 18890 18891 18892 18893 18894 18895 18896 18897 18898 18899 18900 18901 18902 18903 18904 18905 18906 18907 18908 18909 18910 18911 18912 18913 18914 18915 18916 18917 18918 18919 18920 18921 18922 18923 18924 18925 18926 18927 18928 18929 18930 18931 18932 18933 18934 18935 18936 18937 18938 18939 18940 18941 18942 18943 18944 18945 18946 18947 18948 18949 18950 18951 18952 18953 18954 18955 18956 18957 18958 18959 18960 18961 18962 18963 18964 18965 18966 18967 18968 18969 18970 18971 18972 18973 18974 18975 18976 18977 18978 18979 18980 18981 18982 18983 18984 18985 18986 18987 18988 18989 18990 18991 18992 18993 18994 18995 18996 18997 18998 18999 19000 19001 19002 19003 19004 19005 19006 19007 19008 19009 19010 19011 19012 19013 19014 19015 19016 19017 19018 19019 19020 19021 19022 19023 19024 19025 19026 19027 19028 19029 19030 19031 19032 19033 19034 19035 19036 19037 19038 19039 19040 19041 19042 19043 19044 19045 19046 19047 19048 19049 19050 19051 19052 19053 19054 19055 19056 19057 19058 19059 19060 19061 19062 19063 19064 19065 19066 19067 19068 19069 19070 19071 19072 19073 19074 19075 19076 19077 19078 19079 19080 19081 19082 19083 19084 19085 19086 19087 19088 19089 19090 19091 19092 19093 19094 19095 19096 19097 19098 19099 19100 19101 19102 19103 19104 19105 19106 19107 19108 19109 19110 19111 19112 19113 19114 19115 19116 19117 19118 19119 19120 19121 19122 19123 19124 19125 19126 19127 19128 19129 19130 19131 19132 19133 19134 19135 19136 19137 19138 19139 19140 19141 19142 19143 19144 19145 19146 19147 19148 19149 19150 19151 19152 19153 19154 19155 19156 19157 19158 19159 19160 19161 19162 19163 19164 19165 19166 19167 19168 19169 19170 19171 19172 19173 19174 19175 19176 19177 19178 19179 19180 19181 19182 19183 19184 19185 19186 19187 19188 19189 19190 19191 19192 19193 19194 19195 19196 19197 19198 19199 19200 19201 19202 19203 19204 19205 19206 19207 19208 19209 19210 19211 19212 19213 19214 19215 19216 19217 19218 19219 19220 19221 19222 19223 19224 19225 19226 19227 19228 19229 19230 19231 19232 19233 19234 19235 19236 19237 19238 19239 19240 19241 19242 19243 19244 19245 19246 19247 19248 19249 19250 19251 19252 19253 19254 19255 19256 19257 19258 19259 19260 19261 19262 19263 19264 19265 19266 19267 19268 19269 19270 19271 19272 19273 19274 19275 19276 19277 19278 19279 19280 19281 19282 19283 19284 19285 19286 19287 19288 19289 19290 19291 19292 19293 19294 19295 19296 19297 19298 19299 19300 19301 19302 19303 19304 19305 19306 19307 19308 19309 19310 19311 19312 19313 19314 19315 19316 19317 19318 19319 19320 19321 19322 19323 19324 19325 19326 19327 19328 19329 19330 19331 19332 19333 19334 19335 19336 19337 19338 19339 19340 19341 19342 19343 19344 19345 19346 19347 19348 19349 19350 19351 19352 19353 19354 19355 19356 19357 19358 19359 19360 19361 19362 19363 19364 19365 19366 19367 19368 19369 19370 19371 19372 19373 19374 19375 19376 19377 19378 19379 19380 19381 19382 19383 19384 19385 19386 19387 19388 19389 19390 19391 19392 19393 19394 19395 19396 19397 19398 19399 19400 19401 19402 19403 19404 19405 19406 19407 19408 19409 19410 19411 19412 19413 19414 19415 19416 19417 19418 19419 19420 19421 19422 19423 19424 19425 19426 19427 19428 19429 19430 19431 19432 19433 19434 19435 19436 19437 19438 19439 19440 19441 19442 19443 19444 19445 19446 19447 19448 19449 19450 19451 19452 19453 19454 19455 19456 19457 19458 19459 19460 19461 19462 19463 19464 19465 19466 19467 19468 19469 19470 19471 19472 19473 19474 19475 19476 19477 19478 19479 19480 19481 19482 19483 19484 19485 19486 19487 19488 19489 19490 19491 19492 19493 19494 19495 19496 19497 19498 19499 19500 19501 19502 19503 19504 19505 19506 19507 19508 19509 19510 19511 19512 19513 19514 19515 19516 19517 19518 19519 19520 19521 19522 19523 19524 19525 19526 19527 19528 19529 19530 19531 19532 19533 19534 19535 19536 19537 19538 19539 19540 19541 19542 19543 19544 19545 19546 19547 19548 19549 19550 19551 19552 19553 19554 19555 19556 19557 19558 19559 19560 19561 19562 19563 19564 19565 19566 19567 19568 19569 19570 19571 19572 19573 19574 19575 19576 19577 19578 19579 19580 19581 19582 19583 19584 19585 19586 19587 19588 19589 19590 19591 19592 19593 19594 19595 19596 19597 19598 19599 19600 19601 19602 19603 19604 19605 19606 19607 19608 19609 19610 19611 19612 19613 19614 19615 19616 19617 19618 19619 19620 19621 19622 19623 19624 19625 19626 19627 19628 19629 19630 19631 19632 19633 19634 19635 19636 19637 19638 19639 19640 19641 19642 19643 19644 19645 19646 19647 19648 19649 19650 19651 19652 19653 19654 19655 19656 19657 19658 19659 19660 19661 19662 19663 19664 19665 19666 19667 19668 19669 19670 19671 19672 19673 19674 19675 19676 19677 19678 19679 19680 19681 19682 19683 19684 19685 19686 19687 19688 19689 19690 19691 19692 19693 19694 19695 19696 19697 19698 19699 19700 19701 19702 19703 19704 19705 19706 19707 19708 19709 19710 19711 19712 19713 19714 19715 19716 19717 19718 19719 19720 19721 19722 19723 19724 19725 19726 19727 19728 19729 19730 19731 19732 19733 19734 19735 19736 19737 19738 19739 19740 19741 19742 19743 19744 19745 19746 19747 19748 19749 19750 19751 19752 19753 19754 19755 19756 19757 19758 19759 19760 19761 19762 19763 19764 19765 19766 19767 19768 19769 19770 19771 19772 19773 19774 19775 19776 19777 19778 19779 19780 19781 19782 19783 19784 19785 19786 19787 19788 19789 19790 19791 19792 19793 19794 19795 19796 19797 19798 19799 19800 19801 19802 19803 19804 19805 19806 19807 19808 19809 19810 19811 19812 19813 19814 19815 19816 19817 19818 19819 19820 19821 19822 19823 19824 19825 19826 19827 19828 19829 19830 19831 19832 19833 19834 19835 19836 19837 19838 19839 19840 19841 19842 19843 19844 19845 19846 19847 19848 19849 19850 19851 19852 19853 19854 19855 19856 19857 19858 19859 19860 19861 19862 19863 19864 19865 19866 19867 19868 19869 19870 19871 19872 19873 19874 19875 19876 19877 19878 19879 19880 19881 19882 19883 19884 19885 19886 19887 19888 19889 19890 19891 19892 19893 19894 19895 19896 19897 19898 19899 19900 19901 19902 19903 19904 19905 19906 19907 19908 19909 19910 19911 19912 19913 19914 19915 19916 19917 19918 19919 19920 19921 19922 19923 19924 19925 19926 19927 19928 19929 19930 19931 19932 19933 19934 19935 19936 19937 19938 19939 19940 19941 19942 19943 19944 19945 19946 19947 19948 19949 19950 19951 19952 19953 19954 19955 19956 19957 19958 19959 19960 19961 19962 19963 19964 19965 19966 19967 19968 19969 19970 19971 19972 19973 19974 19975 19976 19977 19978 19979 19980 19981 19982 19983 19984 19985 19986 19987 19988 19989 19990 19991 19992 19993 19994 19995 19996 19997 19998 19999 20000 20001 20002 20003 20004 20005 20006 20007 20008 20009 20010 20011 20012 20013 20014 20015 20016 20017 20018 20019 20020 20021 20022 20023 20024 20025 20026 20027 20028 20029 20030 20031 20032 20033 20034 20035 20036 20037 20038 20039 20040 20041 20042 20043 20044 20045 20046 20047 20048 20049 20050 20051 20052 20053 20054 20055 20056 20057 20058 20059 20060 20061 20062 20063 20064 20065 20066 20067 20068 20069 20070 20071 20072 20073 20074 20075 20076 20077 20078 20079 20080 20081 20082 20083 20084 20085 20086 20087 20088 20089 20090 20091 20092 20093 20094 20095 20096 20097 20098 20099 20100 20101 20102 20103 20104 20105 20106 20107 20108 20109 20110 20111 20112 20113 20114 20115 20116 20117 20118 20119 20120 20121 20122 20123 20124 20125 20126 20127 20128 20129 20130 20131 20132 20133 20134 20135 20136 20137 20138 20139 20140 20141 20142 20143 20144 20145 20146 20147 20148 20149 20150 20151 20152 20153 20154 20155 20156 20157 20158 20159 20160 20161 20162 20163 20164 20165 20166 20167 20168 20169 20170 20171 20172 20173 20174 20175 20176 20177 20178 20179 20180 20181 20182 20183 20184 20185 20186 20187 20188 20189 20190 20191 20192 20193 20194 20195 20196 20197 20198 20199 20200 20201 20202 20203 20204 20205 20206 20207 20208 20209 20210 20211 20212 20213 20214 20215 20216 20217 20218 20219 20220 20221 20222 20223 20224 20225 20226 20227 20228 20229 20230 20231 20232 20233 20234 20235 20236 20237 20238 20239 20240 20241 20242 20243 20244 20245 20246 20247 20248 20249 20250 20251 20252 20253 20254 20255 20256 20257 20258 20259 20260 20261 20262 20263 20264 20265 20266 20267 20268 20269 20270 20271 20272 20273 20274 20275 20276 20277 20278 20279 20280 20281 20282 20283 20284 20285 20286 20287 20288 20289 20290 20291 20292 20293 20294 20295 20296 20297 20298 20299 20300 20301 20302 20303 20304 20305 20306 20307 20308 20309 20310 20311 20312 20313 20314 20315 20316 20317 20318 20319 20320 20321 20322 20323 20324 20325 20326 20327 20328 20329 20330 20331 20332 20333 20334 20335 20336 20337 20338 20339 20340 20341 20342 20343 20344 20345 20346 20347 20348 20349 20350 20351 20352 20353 20354 20355 20356 20357 20358 20359 20360 20361 20362 20363 20364 20365 20366 20367 20368 20369 20370 20371 20372 20373 20374 20375 20376 20377 20378 20379 20380 20381 20382 20383 20384 20385 20386 20387 20388 20389 20390 20391 20392 20393 20394 20395 20396 20397 20398 20399 20400 20401 20402 20403 20404 20405 20406 20407 20408 20409 20410 20411 20412 20413 20414 20415 20416 20417 20418 20419 20420 20421 20422 20423 20424 20425 20426 20427 20428 20429 20430 20431 20432 20433 20434 20435 20436 20437 20438 20439 20440 20441 20442 20443 20444 20445 20446 20447 20448 20449 20450 20451 20452 20453 20454 20455 20456 20457 20458 20459 20460 20461 20462 20463 20464 20465 20466 20467 20468 20469 20470 20471 20472 20473 20474 20475 20476 20477 20478 20479 20480 20481 20482 20483 20484 20485 20486 20487 20488 20489 20490 20491 20492 20493 20494 20495 20496 20497 20498 20499 20500 20501 20502 20503 20504 20505 20506 20507 20508 20509 20510 20511 20512 20513 20514 20515 20516 20517 20518 20519 20520 20521 20522 20523 20524 20525 20526 20527 20528 20529 20530 20531 20532 20533 20534 20535 20536 20537 20538 20539 20540 20541 20542 20543 20544 20545 20546 20547 20548 20549 20550 20551 20552 20553 20554 20555 20556 20557 20558 20559 20560 20561 20562 20563 20564 20565 20566 20567 20568 20569 20570 20571 20572 20573 20574 20575 20576 20577 20578 20579 20580 20581 20582 20583 20584 20585 20586 20587 20588 20589 20590 20591 20592 20593 20594 20595 20596 20597 20598 20599 20600 20601 20602 20603 20604 20605 20606 20607 20608 20609 20610 20611 20612 20613 20614 20615 20616 20617 20618 20619 20620 20621 20622 20623 20624 20625 20626 20627 20628 20629 20630 20631 20632 20633 20634 20635 20636 20637 20638 20639 20640 20641 20642 20643 20644 20645 20646 20647 20648 20649 20650 20651 20652 20653 20654 20655 20656 20657 20658 20659 20660 20661 20662 20663 20664 20665 20666 20667 20668 20669 20670 20671 20672 20673 20674 20675 20676 20677 20678 20679 20680 20681 20682 20683 20684 20685 20686 20687 20688 20689 20690 20691 20692 20693 20694 20695 20696 20697 20698 20699 20700 20701 20702 20703 20704 20705 20706 20707 20708 20709 20710 20711 20712 20713 20714 20715 20716 20717 20718 20719 20720 20721 20722 20723 20724 20725 20726 20727 20728 20729 20730 20731 20732 20733 20734 20735 20736 20737 20738 20739 20740 20741 20742 20743 20744 20745 20746 20747 20748 20749 20750 20751 20752 20753 20754 20755 20756 20757 20758 20759 20760 20761 20762 20763 20764 20765 20766 20767 20768 20769 20770 20771 20772 20773 20774 20775 20776 20777 20778 20779 20780 20781 20782 20783 20784 20785 20786 20787 20788 20789 20790 20791 20792 20793 20794 20795 20796 20797 20798 20799 20800 20801 20802 20803 20804 20805 20806 20807 20808 20809 20810 20811 20812 20813 20814 20815 20816 20817 20818 20819 20820 20821 20822 20823 20824 20825 20826 20827 20828 20829 20830 20831 20832 20833 20834 20835 20836 20837 20838 20839 20840 20841 20842 20843 20844 20845 20846 20847 20848 20849 20850 20851 20852 20853 20854 20855 20856 20857 20858 20859 20860 20861 20862 20863 20864 20865 20866 20867 20868 20869 20870 20871 20872 20873 20874 20875 20876 20877 20878 20879 20880 20881 20882 20883 20884 20885 20886 20887 20888 20889 20890 20891 20892 20893 20894 20895 20896 20897 20898 20899 20900 20901 20902 20903 20904 20905 20906 20907 20908 20909 20910 20911 20912 20913 20914 20915 20916 20917 20918 20919 20920 20921 20922 20923 20924 20925 20926 20927 20928 20929 20930 20931 20932 20933 20934 20935 20936 20937 20938 20939 20940 20941 20942 20943 20944 20945 20946 20947 20948 20949 20950 20951 20952 20953 20954 20955 20956 20957 20958 20959 20960 20961 20962 20963 20964 20965 20966 20967 20968 20969 20970 20971 20972 20973 20974 20975 20976 20977 20978 20979 20980 20981 20982 20983 20984 20985 20986 20987 20988 20989 20990 20991 20992 20993 20994 20995 20996 20997 20998 20999 21000 21001 21002 21003 21004 21005 21006 21007 21008 21009 21010 21011 21012 21013 21014 21015 21016 21017 21018 21019 21020 21021 21022 21023 21024 21025 21026 21027 21028 21029 21030 21031 21032 21033 21034 21035 21036 21037 21038 21039 21040 21041 21042 21043 21044 21045 21046 21047 21048 21049 21050 21051 21052 21053 21054 21055 21056 21057 21058 21059 21060 21061 21062 21063 21064 21065 21066 21067 21068 21069 21070 21071 21072 21073 21074 21075 21076 21077 21078 21079 21080 21081 21082 21083 21084 21085 21086 21087 21088 21089 21090 21091 21092 21093 21094 21095 21096 21097 21098 21099 21100 21101 21102 21103 21104 21105 21106 21107 21108 21109 21110 21111 21112 21113 21114 21115 21116 21117 21118 21119 21120 21121 21122 21123 21124 21125 21126 21127 21128 21129 21130 21131 21132 21133 21134 21135 21136 21137 21138 21139 21140 21141 21142 21143 21144 21145 21146 21147 21148 21149 21150 21151 21152 21153 21154 21155 21156 21157 21158 21159 21160 21161 21162 21163 21164 21165 21166 21167 21168 21169 21170 21171 21172 21173 21174 21175 21176 21177 21178 21179 21180 21181 21182 21183 21184 21185 21186 21187 21188 21189 21190 21191 21192 21193 21194 21195 21196 21197 21198 21199 21200 21201 21202 21203 21204 21205 21206 21207 21208 21209 21210 21211 21212 21213 21214 21215 21216 21217 21218 21219 21220 21221 21222 21223 21224 21225 21226 21227 21228 21229 21230 21231 21232 21233 21234 21235 21236 21237 21238 21239 21240 21241 21242 21243 21244 21245 21246 21247 21248 21249 21250 21251 21252 21253 21254 21255 21256 21257 21258 21259 21260 21261 21262 21263 21264 21265 21266 21267 21268 21269 21270 21271 21272 21273 21274 21275 21276 21277 21278 21279 21280 21281 21282 21283 21284 21285 21286 21287 21288 21289 21290 21291 21292 21293 21294 21295 21296 21297 21298 21299 21300 21301 21302 21303 21304 21305 21306 21307 21308 21309 21310 21311 21312 21313 21314 21315 21316 21317 21318 21319 21320 21321 21322 21323 21324 21325 21326 21327 21328 21329 21330 21331 21332 21333 21334 21335 21336 21337 21338 21339 21340 21341 21342 21343 21344 21345 21346 21347 21348 21349 21350 21351 21352 21353 21354 21355 21356 21357 21358 21359 21360 21361 21362 21363 21364 21365 21366 21367 21368 21369 21370 21371 21372 21373 21374 21375 21376 21377 21378 21379 21380 21381 21382 21383 21384 21385 21386 21387 21388 21389 21390 21391 21392 21393 21394 21395 21396 21397 21398 21399 21400 21401 21402 21403 21404 21405 21406 21407 21408 21409 21410 21411 21412 21413 21414 21415 21416 21417 21418 21419 21420 21421 21422 21423 21424 21425 21426 21427 21428 21429 21430 21431 21432 21433 21434 21435 21436 21437 21438 21439 21440 21441 21442 21443 21444 21445 21446 21447 21448 21449 21450 21451 21452 21453 21454 21455 21456 21457 21458 21459 21460 21461 21462 21463 21464 21465 21466 21467 21468 21469 21470 21471 21472 21473 21474 21475 21476 21477 21478 21479 21480 21481 21482 21483 21484 21485 21486 21487 21488 21489 21490 21491 21492 21493 21494 21495 21496 21497 21498 21499 21500 21501 21502 21503 21504 21505 21506 21507 21508 21509 21510 21511 21512 21513 21514 21515 21516 21517 21518 21519 21520 21521 21522 21523 21524 21525 21526 21527 21528 21529 21530 21531 21532 21533 21534 21535 21536 21537 21538 21539 21540 21541 21542 21543 21544 21545 21546 21547 21548 21549 21550 21551 21552 21553 21554 21555 21556 21557 21558 21559 21560 21561 21562 21563 21564 21565 21566 21567 21568 21569 21570 21571 21572 21573 21574 21575 21576 21577 21578 21579 21580 21581 21582 21583 21584 21585 21586 21587 21588 21589 21590 21591 21592 21593 21594 21595 21596 21597 21598 21599 21600 21601 21602 21603 21604 21605 21606 21607 21608 21609 21610 21611 21612 21613 21614 21615 21616 21617 21618 21619 21620 21621 21622 21623 21624 21625 21626 21627 21628 21629 21630 21631 21632 21633 21634 21635 21636 21637 21638 21639 21640 21641 21642 21643 21644 21645 21646 21647 21648 21649 21650 21651 21652 21653 21654 21655 21656 21657 21658 21659 21660 21661 21662 21663 21664 21665 21666 21667 21668 21669 21670 21671 21672 21673 21674 21675 21676 21677 21678 21679 21680 21681 21682 21683 21684 21685 21686 21687 21688 21689 21690 21691 21692 21693 21694 21695 21696 21697 21698 21699 21700 21701 21702 21703 21704 21705 21706 21707 21708 21709 21710 21711 21712 21713 21714 21715 21716 21717 21718 21719 21720 21721 21722 21723 21724 21725 21726 21727 21728 21729 21730 21731 21732 21733 21734 21735 21736 21737 21738 21739 21740 21741 21742 21743 21744 21745 21746 21747 21748 21749 21750 21751 21752 21753 21754 21755 21756 21757 21758 21759 21760 21761 21762 21763 21764 21765 21766 21767 21768 21769 21770 21771 21772 21773 21774 21775 21776 21777 21778 21779 21780 21781 21782 21783 21784 21785 21786 21787 21788 21789 21790 21791 21792 21793 21794 21795 21796 21797 21798 21799 21800 21801 21802 21803 21804 21805 21806 21807 21808 21809 21810 21811 21812 21813 21814 21815 21816 21817 21818 21819 21820 21821 21822 21823 21824 21825 21826 21827 21828 21829 21830 21831 21832 21833 21834 21835 21836 21837 21838 21839 21840 21841 21842 21843 21844 21845 21846 21847 21848 21849 21850 21851 21852 21853 21854 21855 21856 21857 21858 21859 21860 21861 21862 21863 21864 21865 21866 21867 21868 21869 21870 21871 21872 21873 21874 21875 21876 21877 21878 21879 21880 21881 21882 21883 21884 21885 21886 21887 21888 21889 21890 21891 21892 21893 21894 21895 21896 21897 21898 21899 21900 21901 21902 21903 21904 21905 21906 21907 21908 21909 21910 21911 21912 21913 21914 21915 21916 21917 21918 21919 21920 21921 21922 21923 21924 21925 21926 21927 21928 21929 21930 21931 21932 21933 21934 21935 21936 21937 21938 21939 21940 21941 21942 21943 21944 21945 21946 21947 21948 21949 21950 21951 21952 21953 21954 21955 21956 21957 21958 21959 21960 21961 21962 21963 21964 21965 21966 21967 21968 21969 21970 21971 21972 21973 21974 21975 21976 21977 21978 21979 21980 21981 21982 21983 21984 21985 21986 21987 21988 21989 21990 21991 21992 21993 21994 21995 21996 21997 21998 21999 22000 22001 22002 22003 22004 22005 22006 22007 22008 22009 22010 22011 22012 22013 22014 22015 22016 22017 22018 22019 22020 22021 22022 22023 22024 22025 22026 22027 22028 22029 22030 22031 22032 22033 22034 22035 22036 22037 22038 22039 22040 22041 22042 22043 22044 22045 22046 22047 22048 22049 22050 22051 22052 22053 22054 22055 22056 22057 22058 22059 22060 22061 22062 22063 22064 22065 22066 22067 22068 22069 22070 22071 22072 22073 22074 22075 22076 22077 22078 22079 22080 22081 22082 22083 22084 22085 22086 22087 22088 22089 22090 22091 22092 22093 22094 22095 22096 22097 22098 22099 22100 22101 22102 22103 22104 22105 22106 22107 22108 22109 22110 22111 22112 22113 22114 22115 22116 22117 22118 22119 22120 22121 22122 22123 22124 22125 22126 22127 22128 22129 22130 22131 22132 22133 22134 22135 22136 22137 22138 22139 22140 22141 22142 22143 22144 22145 22146 22147 22148 22149 22150 22151 22152 22153 22154 22155 22156 22157 22158 22159 22160 22161 22162 22163 22164 22165 22166 22167 22168 22169 22170 22171 22172 22173 22174 22175 22176 22177 22178 22179 22180 22181 22182 22183 22184 22185 22186 22187 22188 22189 22190 22191 22192 22193 22194 22195 22196 22197 22198 22199 22200 22201 22202 22203 22204 22205 22206 22207 22208 22209 22210 22211 22212 22213 22214 22215 22216 22217 22218 22219 22220 22221 22222 22223 22224 22225 22226 22227 22228 22229 22230 22231 22232 22233 22234 22235 22236 22237 22238 22239 22240 22241 22242 22243 22244 22245 22246 22247 22248 22249 22250 22251 22252 22253 22254 22255 22256 22257 22258 22259 22260 22261 22262 22263 22264 22265 22266 22267 22268 22269 22270 22271 22272 22273 22274 22275 22276 22277 22278 22279 22280 22281 22282 22283 22284 22285 22286 22287 22288 22289 22290 22291 22292 22293 22294 22295 22296 22297 22298 22299 22300 22301 22302 22303 22304 22305 22306 22307 22308 22309 22310 22311 22312 22313 22314 22315 22316 22317 22318 22319 22320 22321 22322 22323 22324 22325 22326 22327 22328 22329 22330 22331 22332 22333 22334 22335 22336 22337 22338 22339 22340 22341 22342 22343 22344 22345 22346 22347 22348 22349 22350 22351 22352 22353 22354 22355 22356 22357 22358 22359 22360 22361 22362 22363 22364 22365 22366 22367 22368 22369 22370 22371 22372 22373 22374 22375 22376 22377 22378 22379 22380 22381 22382 22383 22384 22385 22386 22387 22388 22389 22390 22391 22392 22393 22394 22395 22396 22397 22398 22399 22400 22401 22402 22403 22404 22405 22406 22407 22408 22409 22410 22411 22412 22413 22414 22415 22416 22417 22418 22419 22420 22421 22422 22423 22424 22425 22426 22427 22428 22429 22430 22431 22432 22433 22434 22435 22436 22437 22438 22439 22440 22441 22442 22443 22444 22445 22446 22447 22448 22449 22450 22451 22452 22453 22454 22455 22456 22457 22458 22459 22460 22461 22462 22463 22464 22465 22466 22467 22468 22469 22470 22471 22472 22473 22474 22475 22476 22477 22478 22479 22480 22481 22482 22483 22484 22485 22486 22487 22488 22489 22490 22491 22492 22493 22494 22495 22496 22497 22498 22499 22500 22501 22502 22503 22504 22505 22506 22507 22508 22509 22510 22511 22512 22513 22514 22515 22516 22517 22518 22519 22520 22521 22522 22523 22524 22525 22526 22527 22528 22529 22530 22531 22532 22533 22534 22535 22536 22537 22538 22539 22540 22541 22542 22543 22544 22545 22546 22547 22548 22549 22550 22551 22552 22553 22554 22555 22556 22557 22558 22559 22560 22561 22562 22563 22564 22565 22566 22567 22568 22569 22570 22571 22572 22573 22574 22575 22576 22577 22578 22579 22580 22581 22582 22583 22584 22585 22586 22587 22588 22589 22590 22591 22592 22593 22594 22595 22596 22597 22598 22599 22600 22601 22602 22603 22604 22605 22606 22607 22608 22609 22610 22611 22612 22613 22614 22615 22616 22617 22618 22619 22620 22621 22622 22623 22624 22625 22626 22627 22628 22629 22630 22631 22632 22633 22634 22635 22636 22637 22638 22639 22640 22641 22642 22643 22644 22645 22646 22647 22648 22649 22650 22651 22652 22653 22654 22655 22656 22657 22658 22659 22660 22661 22662 22663 22664 22665 22666 22667 22668 22669 22670 22671 22672 22673 22674 22675 22676 22677 22678 22679 22680 22681 22682 22683 22684 22685 22686 22687 22688 22689 22690 22691 22692 22693 22694 22695 22696 22697 22698 22699 22700 22701 22702 22703 22704 22705 22706 22707 22708 22709 22710 22711 22712 22713 22714 22715 22716 22717 22718 22719 22720 22721 22722 22723 22724 22725 22726 22727 22728 22729 22730 22731 22732 22733 22734 22735 22736 22737 22738 22739 22740 22741 22742 22743 22744 22745 22746 22747 22748 22749 22750 22751 22752 22753 22754 22755 22756 22757 22758 22759 22760 22761 22762 22763 22764 22765 22766 22767 22768 22769 22770 22771 22772 22773 22774 22775 22776 22777 22778 22779 22780 22781 22782 22783 22784 22785 22786 22787 22788 22789 22790 22791 22792 22793 22794 22795 22796 22797 22798 22799 22800 22801 22802 22803 22804 22805 22806 22807 22808 22809 22810 22811 22812 22813 22814 22815 22816 22817 22818 22819 22820 22821 22822 22823 22824 22825 22826 22827 22828 22829 22830 22831 22832 22833 22834 22835 22836 22837 22838 22839 22840 22841 22842 22843 22844 22845 22846 22847 22848 22849 22850 22851 22852 22853 22854 22855 22856 22857 22858 22859 22860 22861 22862 22863 22864 22865 22866 22867 22868 22869 22870 22871 22872 22873 22874 22875 22876 22877 22878 22879 22880 22881 22882 22883 22884 22885 22886 22887 22888 22889 22890 22891 22892 22893 22894 22895 22896 22897 22898 22899 22900 22901 22902 22903 22904 22905 22906 22907 22908 22909 22910 22911 22912 22913 22914 22915 22916 22917 22918 22919 22920 22921 22922 22923 22924 22925 22926 22927 22928 22929 22930 22931 22932 22933 22934 22935 22936 22937 22938 22939 22940 22941 22942 22943 22944 22945 22946 22947 22948 22949 22950 22951 22952 22953 22954 22955 22956 22957 22958 22959 22960 22961 22962 22963 22964 22965 22966 22967 22968 22969 22970 22971 22972 22973 22974 22975 22976 22977 22978 22979 22980 22981 22982 22983 22984 22985 22986 22987 22988 22989 22990 22991 22992 22993 22994 22995 22996 22997 22998 22999 23000 23001 23002 23003 23004 23005 23006 23007 23008 23009 23010 23011 23012 23013 23014 23015 23016 23017 23018 23019 23020 23021 23022 23023 23024 23025 23026 23027 23028 23029 23030 23031 23032 23033 23034 23035 23036 23037 23038 23039 23040 23041 23042 23043 23044 23045 23046 23047 23048 23049 23050 23051 23052 23053 23054 23055 23056 23057 23058 23059 23060 23061 23062 23063 23064 23065 23066 23067 23068 23069 23070 23071 23072 23073 23074 23075 23076 23077 23078 23079 23080 23081 23082 23083 23084 23085 23086 23087 23088 23089 23090 23091 23092 23093 23094 23095 23096 23097 23098 23099 23100 23101 23102 23103 23104 23105 23106 23107 23108 23109 23110 23111 23112 23113 23114 23115 23116 23117 23118 23119 23120 23121 23122 23123 23124 23125 23126 23127 23128 23129 23130 23131 23132 23133 23134 23135 23136 23137 23138 23139 23140 23141 23142 23143 23144 23145 23146 23147 23148 23149 23150 23151 23152 23153 23154 23155 23156 23157 23158 23159 23160 23161 23162 23163 23164 23165 23166 23167 23168 23169 23170 23171 23172 23173 23174 23175 23176 23177 23178 23179 23180 23181 23182 23183 23184 23185 23186 23187 23188 23189 23190 23191 23192 23193 23194 23195 23196 23197 23198 23199 23200 23201 23202 23203 23204 23205 23206 23207 23208 23209 23210 23211 23212 23213 23214 23215 23216 23217 23218 23219 23220 23221 23222 23223 23224 23225 23226 23227 23228 23229 23230 23231 23232 23233 23234 23235 23236 23237 23238 23239 23240 23241 23242 23243 23244 23245 23246 23247 23248 23249 23250 23251 23252 23253 23254 23255 23256 23257 23258 23259 23260 23261 23262 23263 23264 23265 23266 23267 23268 23269 23270 23271 23272 23273 23274 23275 23276 23277 23278 23279 23280 23281 23282 23283 23284 23285 23286 23287 23288 23289 23290 23291 23292 23293 23294 23295 23296 23297 23298 23299 23300 23301 23302 23303 23304 23305 23306 23307 23308 23309 23310 23311 23312 23313 23314 23315 23316 23317 23318 23319 23320 23321 23322 23323 23324 23325 23326 23327 23328 23329 23330 23331 23332 23333 23334 23335 23336 23337 23338 23339 23340 23341 23342 23343 23344 23345 23346 23347 23348 23349 23350 23351 23352 23353 23354 23355 23356 23357 23358 23359 23360 23361 23362 23363 23364 23365 23366 23367 23368 23369 23370 23371 23372 23373 23374 23375 23376 23377 23378 23379 23380 23381 23382 23383 23384 23385 23386 23387 23388 23389 23390 23391 23392 23393 23394 23395 23396 23397 23398 23399 23400 23401 23402 23403 23404 23405 23406 23407 23408 23409 23410 23411 23412 23413 23414 23415 23416 23417 23418 23419 23420 23421 23422 23423 23424 23425 23426 23427 23428 23429 23430 23431 23432 23433 23434 23435 23436 23437 23438 23439 23440 23441 23442 23443 23444 23445 23446 23447 23448 23449 23450 23451 23452 23453 23454 23455 23456 23457 23458 23459 23460 23461 23462 23463 23464 23465 23466 23467 23468 23469 23470 23471 23472 23473 23474 23475 23476 23477 23478 23479 23480 23481 23482 23483 23484 23485 23486 23487 23488 23489 23490 23491 23492 23493 23494 23495 23496 23497 23498 23499 23500 23501 23502 23503 23504 23505 23506 23507 23508 23509 23510 23511 23512 23513 23514 23515 23516 23517 23518 23519 23520 23521 23522 23523 23524 23525 23526 23527 23528 23529 23530 23531 23532 23533 23534 23535 23536 23537 23538 23539 23540 23541 23542 23543 23544 23545 23546 23547 23548 23549 23550 23551 23552 23553 23554 23555 23556 23557 23558 23559 23560 23561 23562 23563 23564 23565 23566 23567 23568 23569 23570 23571 23572 23573 23574 23575 23576 23577 23578 23579 23580 23581 23582 23583 23584 23585 23586 23587 23588 23589 23590 23591 23592 23593 23594 23595 23596 23597 23598 23599 23600 23601 23602 23603 23604 23605 23606 23607 23608 23609 23610 23611 23612 23613 23614 23615 23616 23617 23618 23619 23620 23621 23622 23623 23624 23625 23626 23627 23628 23629 23630 23631 23632 23633 23634 23635 23636 23637 23638 23639 23640 23641 23642 23643 23644 23645 23646 23647 23648 23649 23650 23651 23652 23653 23654 23655 23656 23657 23658 23659 23660 23661 23662 23663 23664 23665 23666 23667 23668 23669 23670 23671 23672 23673 23674 23675 23676 23677 23678 23679 23680 23681 23682 23683 23684 23685 23686 23687 23688 23689 23690 23691 23692 23693 23694 23695 23696 23697 23698 23699 23700 23701 23702 23703 23704 23705 23706 23707 23708 23709 23710 23711 23712 23713 23714 23715 23716 23717 23718 23719 23720 23721 23722 23723 23724 23725 23726 23727 23728 23729 23730 23731 23732 23733 23734 23735 23736 23737 23738 23739 23740 23741 23742 23743 23744 23745 23746 23747 23748 23749 23750 23751 23752 23753 23754 23755 23756 23757 23758 23759 23760 23761 23762 23763 23764 23765 23766 23767 23768 23769 23770 23771 23772 23773 23774 23775 23776 23777 23778 23779 23780 23781 23782 23783 23784 23785 23786 23787 23788 23789 23790 23791 23792 23793 23794 23795 23796 23797 23798 23799 23800 23801 23802 23803 23804 23805 23806 23807 23808 23809 23810 23811 23812 23813 23814 23815 23816 23817 23818 23819 23820 23821 23822 23823 23824 23825 23826 23827 23828 23829 23830 23831 23832 23833 23834 23835 23836 23837 23838 23839 23840 23841 23842 23843 23844 23845 23846 23847 23848 23849 23850 23851 23852 23853 23854 23855 23856 23857 23858 23859 23860 23861 23862 23863 23864 23865 23866 23867 23868 23869 23870 23871 23872 23873 23874 23875 23876 23877 23878 23879 23880 23881 23882 23883 23884 23885 23886 23887 23888 23889 23890 23891 23892 23893 23894 23895 23896 23897 23898 23899 23900 23901 23902 23903 23904 23905 23906 23907 23908 23909 23910 23911 23912 23913 23914 23915 23916 23917 23918 23919 23920 23921 23922 23923 23924 23925 23926 23927 23928 23929 23930 23931 23932 23933 23934 23935 23936 23937 23938 23939 23940 23941 23942 23943 23944 23945 23946 23947 23948 23949 23950 23951 23952 23953 23954 23955 23956 23957 23958 23959 23960 23961 23962 23963 23964 23965 23966 23967 23968 23969 23970 23971 23972 23973 23974 23975 23976 23977 23978 23979 23980 23981 23982 23983 23984 23985 23986 23987 23988 23989 23990 23991 23992 23993 23994 23995 23996 23997 23998 23999 24000 24001 24002 24003 24004 24005 24006 24007 24008 24009 24010 24011 24012 24013 24014 24015 24016 24017 24018 24019 24020 24021 24022 24023 24024 24025 24026 24027 24028 24029 24030 24031 24032 24033 24034 24035 24036 24037 24038 24039 24040 24041 24042 24043 24044 24045 24046 24047 24048 24049 24050 24051 24052 24053 24054 24055 24056 24057 24058 24059 24060 24061 24062 24063 24064 24065 24066 24067 24068 24069 24070 24071 24072 24073 24074 24075 24076 24077 24078 24079 24080 24081 24082 24083 24084 24085 24086 24087 24088 24089 24090 24091 24092 24093 24094 24095 24096 24097 24098 24099 24100 24101 24102 24103 24104 24105 24106 24107 24108 24109 24110 24111 24112 24113 24114 24115 24116 24117 24118 24119 24120 24121 24122 24123 24124 24125 24126 24127 24128 24129 24130 24131 24132 24133 24134 24135 24136 24137 24138 24139 24140 24141 24142 24143 24144 24145 24146 24147 24148 24149 24150 24151 24152 24153 24154 24155 24156 24157 24158 24159 24160 24161 24162 24163 24164 24165 24166 24167 24168 24169 24170 24171 24172 24173 24174 24175 24176 24177 24178 24179 24180 24181 24182 24183 24184 24185 24186 24187 24188 24189 24190 24191 24192 24193 24194 24195 24196 24197 24198 24199 24200 24201 24202 24203 24204 24205 24206 24207 24208 24209 24210 24211 24212 24213 24214 24215 24216 24217 24218 24219 24220 24221 24222 24223 24224 24225 24226 24227 24228 24229 24230 24231 24232 24233 24234 24235 24236 24237 24238 24239 24240 24241 24242 24243 24244 24245 24246 24247 24248 24249 24250 24251 24252 24253 24254 24255 24256 24257 24258 24259 24260 24261 24262 24263 24264 24265 24266 24267 24268 24269 24270 24271 24272 24273 24274 24275 24276 24277 24278 24279 24280 24281 24282 24283 24284 24285 24286 24287 24288 24289 24290 24291 24292 24293 24294 24295 24296 24297 24298 24299 24300 24301 24302 24303 24304 24305 24306 24307 24308 24309 24310 24311 24312 24313 24314 24315 24316 24317 24318 24319 24320 24321 24322 24323 24324 24325 24326 24327 24328 24329 24330 24331 24332 24333 24334 24335 24336 24337 24338 24339 24340 24341 24342 24343 24344 24345 24346 24347 24348 24349 24350 24351 24352 24353 24354 24355 24356 24357 24358 24359 24360 24361 24362 24363 24364 24365 24366 24367 24368 24369 24370 24371 24372 24373 24374 24375 24376 24377 24378 24379 24380 24381 24382 24383 24384 24385 24386 24387 24388 24389 24390 24391 24392 24393 24394 24395 24396 24397 24398 24399 24400 24401 24402 24403 24404 24405 24406 24407 24408 24409 24410 24411 24412 24413 24414 24415 24416 24417 24418 24419 24420 24421 24422 24423 24424 24425 24426 24427 24428 24429 24430 24431 24432 24433 24434 24435 24436 24437 24438 24439 24440 24441 24442 24443 24444 24445 24446 24447 24448 24449 24450 24451 24452 24453 24454 24455 24456 24457 24458 24459 24460 24461 24462 24463 24464 24465 24466 24467 24468 24469 24470 24471 24472 24473 24474 24475 24476 24477 24478 24479 24480 24481 24482 24483 24484 24485 24486 24487 24488 24489 24490 24491 24492 24493 24494 24495 24496 24497 24498 24499 24500 24501 24502 24503 24504 24505 24506 24507 24508 24509 24510 24511 24512 24513 24514 24515 24516 24517 24518 24519 24520 24521 24522 24523 24524 24525 24526 24527 24528 24529 24530 24531 24532 24533 24534 24535 24536 24537 24538 24539 24540 24541 24542 24543 24544 24545 24546 24547 24548 24549 24550 24551 24552 24553 24554 24555 24556 24557 24558 24559 24560 24561 24562 24563 24564 24565 24566 24567 24568 24569 24570 24571 24572 24573 24574 24575 24576 24577 24578 24579 24580 24581 24582 24583 24584 24585 24586 24587 24588 24589 24590 24591 24592 24593 24594 24595 24596 24597 24598 24599 24600 24601 24602 24603 24604 24605 24606 24607 24608 24609 24610 24611 24612 24613 24614 24615 24616 24617 24618 24619 24620 24621 24622 24623 24624 24625 24626 24627 24628 24629 24630 24631 24632 24633 24634 24635 24636 24637 24638 24639 24640 24641 24642 24643 24644 24645 24646 24647 24648 24649 24650 24651 24652 24653 24654 24655 24656 24657 24658 24659 24660 24661 24662 24663 24664 24665 24666 24667 24668 24669 24670 24671 24672 24673 24674 24675 24676 24677 24678 24679 24680 24681 24682 24683 24684 24685 24686 24687 24688 24689 24690 24691 24692 24693 24694 24695 24696 24697 24698 24699 24700 24701 24702 24703 24704 24705 24706 24707 24708 24709 24710 24711 24712 24713 24714 24715 24716 24717 24718 24719 24720 24721 24722 24723 24724 24725 24726 24727 24728 24729 24730 24731 24732 24733 24734 24735 24736 24737 24738 24739 24740 24741 24742 24743 24744 24745 24746 24747 24748 24749 24750 24751 24752 24753 24754 24755 24756 24757 24758 24759 24760 24761 24762 24763 24764 24765 24766 24767 24768 24769 24770 24771 24772 24773 24774 24775 24776 24777 24778 24779 24780 24781 24782 24783 24784 24785 24786 24787 24788 24789 24790 24791 24792 24793 24794 24795 24796 24797 24798 24799 24800 24801 24802 24803 24804 24805 24806 24807 24808 24809 24810 24811 24812 24813 24814 24815 24816 24817 24818 24819 24820 24821 24822 24823 24824 24825 24826 24827 24828 24829 24830 24831 24832 24833 24834 24835 24836 24837 24838 24839 24840 24841 24842 24843 24844 24845 24846 24847 24848 24849 24850 24851 24852 24853 24854 24855 24856 24857 24858 24859 24860 24861 24862 24863 24864 24865 24866 24867 24868 24869 24870 24871 24872 24873 24874 24875 24876 24877 24878 24879 24880 24881 24882 24883 24884 24885 24886 24887 24888 24889 24890 24891 24892 24893 24894 24895 24896 24897 24898 24899 24900 24901 24902 24903 24904 24905 24906 24907 24908 24909 24910 24911 24912 24913 24914 24915 24916 24917 24918 24919 24920 24921 24922 24923 24924 24925 24926 24927 24928 24929 24930 24931 24932 24933 24934 24935 24936 24937 24938 24939 24940 24941 24942 24943 24944 24945
|
<!DOCTYPE html>
<html>
<!-- Created by GNU Texinfo 7.0.3, https://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<!-- This manual documents GNU troff version 1.23.0.
Copyright 1994-2023 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
copy of the license is included in the section entitled "GNU Free
Documentation License". -->
<title>The GNU Troff Manual</title>
<meta name="description" content="The GNU Troff Manual">
<meta name="keywords" content="The GNU Troff Manual">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link href="#Top" rel="start" title="Top">
<link href="#Request-Index" rel="index" title="Request Index">
<link href="#SEC_Contents" rel="contents" title="Table of Contents">
<link href="dir.html#Top" rel="up" title="(dir)">
<link href="#Introduction" rel="next" title="Introduction">
<link href="dir.html#Top" rel="prev" title="(dir)">
<style type="text/css">
<!--
a.copiable-link {visibility: hidden; text-decoration: none; line-height: 0em}
a.summary-letter-printindex {text-decoration: none}
div.center {text-align:center}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
kbd.key {font-style: normal}
p.flushright-paragraph {text-align:right}
pre.display-preformatted {font-family: inherit}
span.r {font-family: initial; font-weight: normal; font-style: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
span.w-nolinebreak-text {white-space: nowrap}
span:hover a.copiable-link {visibility: visible}
strong.def-name {font-family: monospace; font-weight: bold; font-size: larger}
td.printindex-index-entry {vertical-align: top}
td.printindex-index-section {vertical-align: top}
th.entries-header-printindex {text-align:left}
th.sections-header-printindex {text-align:left}
ul.mark-bullet {list-style-type: disc}
ul.toc-numbered-mark {list-style: none}
-->
</style>
</head>
<body lang="en">
<div class="top-level-extent" id="Top">
<div class="nav-panel">
<p>
Next: <a href="#Introduction" accesskey="n" rel="next">Introduction</a>, Previous: <a href="dir.html#Top" accesskey="p" rel="prev">(dir)</a>, Up: <a href="dir.html#Top" accesskey="u" rel="up">(dir)</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h1 class="top" id="GNU-troff">GNU <code class="code">troff</code></h1>
<p>This manual documents GNU <code class="code">troff</code> version 1.23.0.
</p>
<p>Copyright © 1994–2023 Free Software Foundation, Inc.
</p>
<blockquote class="quotation">
<p>Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
copy of the license is included in the section entitled “GNU Free
Documentation License”.
</p></blockquote>
<div class="element-contents" id="SEC_Contents">
<h2 class="contents-heading">Table of Contents</h2>
<div class="contents">
<ul class="toc-numbered-mark">
<li><a id="toc-Introduction-1" href="#Introduction">1 Introduction</a>
<ul class="toc-numbered-mark">
<li><a id="toc-Background-1" href="#Background">1.1 Background</a></li>
<li><a id="toc-What-Is-groff_003f-1" href="#What-Is-groff_003f">1.2 What Is <code class="code">groff</code>?</a></li>
<li><a id="toc-groff-Capabilities-1" href="#groff-Capabilities">1.3 <code class="code">groff</code> Capabilities</a></li>
<li><a id="toc-Macro-Packages-1" href="#Macro-Package-Intro">1.4 Macro Packages</a></li>
<li><a id="toc-Preprocessors" href="#Preprocessor-Intro">1.5 Preprocessors</a></li>
<li><a id="toc-Output-Devices" href="#Output-Device-Intro">1.6 Output Devices</a></li>
<li><a id="toc-Installation-1" href="#Installation">1.7 Installation</a></li>
<li><a id="toc-Conventions-Used-in-This-Manual-1" href="#Conventions-Used-in-This-Manual">1.8 Conventions Used in This Manual</a></li>
<li><a id="toc-Credits-1" href="#Credits">1.9 Credits</a></li>
</ul></li>
<li><a id="toc-Invoking-groff-1" href="#Invoking-groff">2 Invoking <code class="code">groff</code></a>
<ul class="toc-numbered-mark">
<li><a id="toc-Options" href="#Groff-Options">2.1 Options</a></li>
<li><a id="toc-Environment-1" href="#Environment">2.2 Environment</a></li>
<li><a id="toc-Macro-Directories-1" href="#Macro-Directories">2.3 Macro Directories</a></li>
<li><a id="toc-Font-Directories-1" href="#Font-Directories">2.4 Font Directories</a></li>
<li><a id="toc-Paper-Format-1" href="#Paper-Format">2.5 Paper Format</a></li>
<li><a id="toc-Invocation-Examples-1" href="#Invocation-Examples">2.6 Invocation Examples</a></li>
</ul></li>
<li><a id="toc-Tutorial-for-Macro-Users-1" href="#Tutorial-for-Macro-Users">3 Tutorial for Macro Users</a>
<ul class="toc-numbered-mark">
<li><a id="toc-Basics-1" href="#Basics">3.1 Basics</a></li>
<li><a id="toc-Common-Features-1" href="#Common-Features">3.2 Common Features</a>
<ul class="toc-numbered-mark">
<li><a id="toc-Paragraphs-1" href="#Paragraphs">3.2.1 Paragraphs</a></li>
<li><a id="toc-Sections-and-Chapters-1" href="#Sections-and-Chapters">3.2.2 Sections and Chapters</a></li>
<li><a id="toc-Headers-and-Footers-1" href="#Headers-and-Footers">3.2.3 Headers and Footers</a></li>
<li><a id="toc-Page-Layout-1" href="#Page-Layout-Adjustment">3.2.4 Page Layout</a></li>
<li><a id="toc-Displays-and-Keeps-1" href="#Displays-and-Keeps">3.2.5 Displays and Keeps</a></li>
<li><a id="toc-Footnotes-and-Endnotes-1" href="#Footnotes-and-Endnotes">3.2.6 Footnotes and Endnotes</a></li>
<li><a id="toc-Table-of-Contents-1" href="#Table-of-Contents">3.2.7 Table of Contents</a></li>
<li><a id="toc-Indexing-1" href="#Indexing">3.2.8 Indexing</a></li>
<li><a id="toc-Document-Formats-1" href="#Document-Formats">3.2.9 Document Formats</a></li>
<li><a id="toc-Columnation-1" href="#Columnation">3.2.10 Columnation</a></li>
<li><a id="toc-Font-and-Size-Changes-1" href="#Font-and-Size-Changes">3.2.11 Font and Size Changes</a></li>
<li><a id="toc-Predefined-Text-1" href="#Predefined-Text">3.2.12 Predefined Text</a></li>
<li><a id="toc-Preprocessor-Support-1" href="#Preprocessor-Support">3.2.13 Preprocessor Support</a></li>
<li><a id="toc-Configuration-and-Customization-1" href="#Configuration-and-Customization">3.2.14 Configuration and Customization</a></li>
</ul></li>
</ul></li>
<li><a id="toc-Macro-Packages-2" href="#Major-Macro-Packages">4 Macro Packages</a>
<ul class="toc-numbered-mark">
<li><a id="toc-man-1" href="#man">4.1 <samp class="file">man</samp></a>
<ul class="toc-numbered-mark">
<li><a id="toc-Optional-man-extensions-1" href="#Optional-man-extensions">4.1.1 Optional <samp class="file">man</samp> extensions</a>
<ul class="toc-numbered-mark">
<li><a id="toc-Custom-headers-and-footers" href="#Custom-headers-and-footers">Custom headers and footers</a></li>
<li><a id="toc-Ultrix_002dspecific-man-macros" href="#Ultrix_002dspecific-man-macros">Ultrix-specific man macros</a></li>
<li><a id="toc-Simple-example" href="#Simple-example">Simple example</a></li>
</ul></li>
</ul></li>
<li><a id="toc-mdoc-1" href="#mdoc">4.2 <samp class="file">mdoc</samp></a></li>
<li><a id="toc-me-1" href="#me">4.3 <samp class="file">me</samp></a></li>
<li><a id="toc-mm-1" href="#mm">4.4 <samp class="file">mm</samp></a></li>
<li><a id="toc-mom-1" href="#mom">4.5 <samp class="file">mom</samp></a></li>
<li><a id="toc-ms-1" href="#ms">4.6 <samp class="file">ms</samp></a>
<ul class="toc-numbered-mark">
<li><a id="toc-Introduction-2" href="#ms-Introduction">4.6.1 Introduction</a>
<ul class="toc-numbered-mark">
<li><a id="toc-Basic-information" href="#ms-basic-information">4.6.1.1 Basic information</a></li>
</ul></li>
<li><a id="toc-Document-Structure" href="#ms-Document-Structure">4.6.2 Document Structure</a></li>
<li><a id="toc-Document-Control-Settings" href="#ms-Document-Control-Settings">4.6.3 Document Control Settings</a>
<ul class="toc-numbered-mark">
<li><a id="toc-Margin-settings" href="#Margin-settings">Margin settings</a></li>
<li><a id="toc-Titles-_0028headers_002c-footers_0029" href="#Titles-_0028headers_002c-footers_0029">Titles (headers, footers)</a></li>
<li><a id="toc-Text-settings" href="#Text-settings">Text settings</a></li>
<li><a id="toc-Paragraph-settings" href="#Paragraph-settings">Paragraph settings</a></li>
<li><a id="toc-Heading-settings" href="#Heading-settings">Heading settings</a></li>
<li><a id="toc-Footnote-settings" href="#Footnote-settings">Footnote settings</a></li>
<li><a id="toc-Display-settings" href="#Display-settings">Display settings</a></li>
<li><a id="toc-Other-settings" href="#Other-settings">Other settings</a></li>
</ul></li>
<li><a id="toc-Document-Description-Macros" href="#ms-Document-Description-Macros">4.6.4 Document Description Macros</a></li>
<li><a id="toc-Body-Text" href="#ms-Body-Text">4.6.5 Body Text</a>
<ul class="toc-numbered-mark">
<li><a id="toc-Text-settings-1" href="#Text-settings-in-ms">4.6.5.1 Text settings</a></li>
<li><a id="toc-Typographical-symbols" href="#Typographical-symbols-in-ms">4.6.5.2 Typographical symbols</a></li>
<li><a id="toc-Paragraphs-2" href="#Paragraphs-in-ms">4.6.5.3 Paragraphs</a></li>
<li><a id="toc-Headings" href="#Headings-in-ms">4.6.5.4 Headings</a></li>
<li><a id="toc-Typeface-and-decoration-1" href="#Typeface-and-decoration">4.6.5.5 Typeface and decoration</a></li>
<li><a id="toc-Lists" href="#Lists-in-ms">4.6.5.6 Lists</a></li>
<li><a id="toc-Indented-regions" href="#Indented-regions-in-ms">4.6.5.7 Indented regions</a></li>
<li><a id="toc-Keeps_002c-boxed-keeps_002c-and-displays" href="#ms-keeps-and-displays">4.6.5.8 Keeps, boxed keeps, and displays</a></li>
<li><a id="toc-Tables_002c-figures_002c-equations_002c-and-references" href="#ms-Insertions">4.6.5.9 Tables, figures, equations, and references</a></li>
<li><a id="toc-Footnotes" href="#ms-Footnotes">4.6.5.10 Footnotes</a></li>
<li><a id="toc-Language-and-localization" href="#ms-language-and-localization">4.6.5.11 Language and localization</a></li>
</ul></li>
<li><a id="toc-Page-layout" href="#ms-Page-Layout">4.6.6 Page layout</a>
<ul class="toc-numbered-mark">
<li><a id="toc-Headers-and-footers" href="#ms-Headers-and-Footers">4.6.6.1 Headers and footers</a></li>
<li><a id="toc-Tab-stops" href="#Tab-Stops-in-ms">4.6.6.2 Tab stops</a></li>
<li><a id="toc-Margins" href="#ms-Margins">4.6.6.3 Margins</a></li>
<li><a id="toc-Multiple-columns" href="#ms-Multiple-Columns">4.6.6.4 Multiple columns</a></li>
<li><a id="toc-Creating-a-table-of-contents" href="#ms-TOC">4.6.6.5 Creating a table of contents</a></li>
</ul></li>
<li><a id="toc-Differences-from-AT_0026T-ms-1" href="#Differences-from-AT_0026T-ms">4.6.7 Differences from <abbr class="acronym">AT&T</abbr> <samp class="file">ms</samp></a>
<ul class="toc-numbered-mark">
<li><a id="toc-Unix-Version-7-ms-macros-not-implemented-by-groff-ms" href="#Missing-Unix-Version-7-ms-Macros">4.6.7.1 Unix Version 7 <samp class="file">ms</samp> macros not implemented by <code class="code">groff</code> <samp class="file">ms</samp></a></li>
</ul></li>
<li><a id="toc-Legacy-Features" href="#ms-Legacy-Features">4.6.8 Legacy Features</a>
<ul class="toc-numbered-mark">
<li><a id="toc-AT_0026T-accent-mark-strings" href="#AT_0026T-accent-mark-strings">AT&T accent mark strings</a></li>
<li><a id="toc-Berkeley-accent-mark-and-glyph-strings" href="#Berkeley-accent-mark-and-glyph-strings">Berkeley accent mark and glyph strings</a></li>
</ul></li>
<li><a id="toc-Naming-Conventions" href="#ms-Naming-Conventions">4.6.9 Naming Conventions</a></li>
</ul></li>
</ul></li>
<li><a id="toc-GNU-troff-Reference-1" href="#GNU-troff-Reference">5 GNU <code class="code">troff</code> Reference</a>
<ul class="toc-numbered-mark">
<li><a id="toc-Text-1" href="#Text">5.1 Text</a>
<ul class="toc-numbered-mark">
<li><a id="toc-Filling-1" href="#Filling">5.1.1 Filling</a></li>
<li><a id="toc-Sentences-1" href="#Sentences">5.1.2 Sentences</a></li>
<li><a id="toc-Hyphenation-1" href="#Hyphenation">5.1.3 Hyphenation</a></li>
<li><a id="toc-Breaking-1" href="#Breaking">5.1.4 Breaking</a></li>
<li><a id="toc-Adjustment-1" href="#Adjustment">5.1.5 Adjustment</a></li>
<li><a id="toc-Tabs-and-Leaders-1" href="#Tabs-and-Leaders">5.1.6 Tabs and Leaders</a></li>
<li><a id="toc-Requests-and-Macros-1" href="#Requests-and-Macros">5.1.7 Requests and Macros</a></li>
<li><a id="toc-Macro-Packages-3" href="#Macro-Packages">5.1.8 Macro Packages</a></li>
<li><a id="toc-Input-Encodings-1" href="#Input-Encodings">5.1.9 Input Encodings</a></li>
<li><a id="toc-Input-Conventions-1" href="#Input-Conventions">5.1.10 Input Conventions</a></li>
</ul></li>
<li><a id="toc-Page-Geometry-1" href="#Page-Geometry">5.2 Page Geometry</a></li>
<li><a id="toc-Measurements-1" href="#Measurements">5.3 Measurements</a>
<ul class="toc-numbered-mark">
<li><a id="toc-Motion-Quanta-1" href="#Motion-Quanta">5.3.1 Motion Quanta</a></li>
<li><a id="toc-Default-Units-1" href="#Default-Units">5.3.2 Default Units</a></li>
</ul></li>
<li><a id="toc-Numeric-Expressions-1" href="#Numeric-Expressions">5.4 Numeric Expressions</a></li>
<li><a id="toc-Identifiers-1" href="#Identifiers">5.5 Identifiers</a></li>
<li><a id="toc-Formatter-Instructions-1" href="#Formatter-Instructions">5.6 Formatter Instructions</a>
<ul class="toc-numbered-mark">
<li><a id="toc-Control-Characters-1" href="#Control-Characters">5.6.1 Control Characters</a></li>
<li><a id="toc-Invoking-Requests-1" href="#Invoking-Requests">5.6.2 Invoking Requests</a></li>
<li><a id="toc-Calling-Macros-1" href="#Calling-Macros">5.6.3 Calling Macros</a></li>
<li><a id="toc-Using-Escape-Sequences-1" href="#Using-Escape-Sequences">5.6.4 Using Escape Sequences</a></li>
<li><a id="toc-Delimiters-1" href="#Delimiters">5.6.5 Delimiters</a></li>
</ul></li>
<li><a id="toc-Comments-1" href="#Comments">5.7 Comments</a></li>
<li><a id="toc-Registers-1" href="#Registers">5.8 Registers</a>
<ul class="toc-numbered-mark">
<li><a id="toc-Setting-Registers-1" href="#Setting-Registers">5.8.1 Setting Registers</a></li>
<li><a id="toc-Interpolating-Registers-1" href="#Interpolating-Registers">5.8.2 Interpolating Registers</a></li>
<li><a id="toc-Auto_002dincrement-1" href="#Auto_002dincrement">5.8.3 Auto-increment</a></li>
<li><a id="toc-Assigning-Register-Formats-1" href="#Assigning-Register-Formats">5.8.4 Assigning Register Formats</a></li>
<li><a id="toc-Built_002din-Registers-1" href="#Built_002din-Registers">5.8.5 Built-in Registers</a></li>
</ul></li>
<li><a id="toc-Manipulating-Filling-and-Adjustment-1" href="#Manipulating-Filling-and-Adjustment">5.9 Manipulating Filling and Adjustment</a></li>
<li><a id="toc-Manipulating-Hyphenation-1" href="#Manipulating-Hyphenation">5.10 Manipulating Hyphenation</a></li>
<li><a id="toc-Manipulating-Spacing-1" href="#Manipulating-Spacing">5.11 Manipulating Spacing</a></li>
<li><a id="toc-Tabs-and-Fields-1" href="#Tabs-and-Fields">5.12 Tabs and Fields</a>
<ul class="toc-numbered-mark">
<li><a id="toc-Leaders-1" href="#Leaders">5.12.1 Leaders</a></li>
<li><a id="toc-Fields-1" href="#Fields">5.12.2 Fields</a></li>
</ul></li>
<li><a id="toc-Character-Translations-1" href="#Character-Translations">5.13 Character Translations</a></li>
<li><a id="toc-troff-and-nroff-Modes-1" href="#troff-and-nroff-Modes">5.14 <code class="code">troff</code> and <code class="code">nroff</code> Modes</a></li>
<li><a id="toc-Line-Layout-1" href="#Line-Layout">5.15 Line Layout</a></li>
<li><a id="toc-Line-Continuation-1" href="#Line-Continuation">5.16 Line Continuation</a></li>
<li><a id="toc-Page-Layout-2" href="#Page-Layout">5.17 Page Layout</a></li>
<li><a id="toc-Page-Control-1" href="#Page-Control">5.18 Page Control</a></li>
<li><a id="toc-Using-Fonts-1" href="#Using-Fonts">5.19 Using Fonts</a>
<ul class="toc-numbered-mark">
<li><a id="toc-Selecting-Fonts-1" href="#Selecting-Fonts">5.19.1 Selecting Fonts</a></li>
<li><a id="toc-Font-Families-1" href="#Font-Families">5.19.2 Font Families</a></li>
<li><a id="toc-Font-Positions-1" href="#Font-Positions">5.19.3 Font Positions</a></li>
<li><a id="toc-Using-Symbols-1" href="#Using-Symbols">5.19.4 Using Symbols</a></li>
<li><a id="toc-Character-Classes-1" href="#Character-Classes">5.19.5 Character Classes</a></li>
<li><a id="toc-Special-Fonts-1" href="#Special-Fonts">5.19.6 Special Fonts</a></li>
<li><a id="toc-Artificial-Fonts-1" href="#Artificial-Fonts">5.19.7 Artificial Fonts</a></li>
<li><a id="toc-Ligatures-and-Kerning-1" href="#Ligatures-and-Kerning">5.19.8 Ligatures and Kerning</a></li>
<li><a id="toc-Italic-Corrections-1" href="#Italic-Corrections">5.19.9 Italic Corrections</a></li>
<li><a id="toc-Dummy-Characters-1" href="#Dummy-Characters">5.19.10 Dummy Characters</a></li>
</ul></li>
<li><a id="toc-Manipulating-Type-Size-and-Vertical-Spacing-1" href="#Manipulating-Type-Size-and-Vertical-Spacing">5.20 Manipulating Type Size and Vertical Spacing</a>
<ul class="toc-numbered-mark">
<li><a id="toc-Changing-the-Type-Size-1" href="#Changing-the-Type-Size">5.20.1 Changing the Type Size</a></li>
<li><a id="toc-Changing-the-Vertical-Spacing-1" href="#Changing-the-Vertical-Spacing">5.20.2 Changing the Vertical Spacing</a></li>
<li><a id="toc-Using-Fractional-Type-Sizes-1" href="#Using-Fractional-Type-Sizes">5.20.3 Using Fractional Type Sizes</a></li>
</ul></li>
<li><a id="toc-Colors-1" href="#Colors">5.21 Colors</a></li>
<li><a id="toc-Strings-1" href="#Strings">5.22 Strings</a></li>
<li><a id="toc-Conditionals-and-Loops-1" href="#Conditionals-and-Loops">5.23 Conditionals and Loops</a>
<ul class="toc-numbered-mark">
<li><a id="toc-Operators-in-Conditionals-1" href="#Operators-in-Conditionals">5.23.1 Operators in Conditionals</a></li>
<li><a id="toc-if_002dthen-1" href="#if_002dthen">5.23.2 if-then</a></li>
<li><a id="toc-if_002delse-1" href="#if_002delse">5.23.3 if-else</a></li>
<li><a id="toc-Conditional-Blocks-1" href="#Conditional-Blocks">5.23.4 Conditional Blocks</a></li>
<li><a id="toc-while-1" href="#while">5.23.5 while</a></li>
</ul></li>
<li><a id="toc-Writing-Macros-1" href="#Writing-Macros">5.24 Writing Macros</a>
<ul class="toc-numbered-mark">
<li><a id="toc-Parameters-1" href="#Parameters">5.24.1 Parameters</a></li>
<li><a id="toc-Copy-Mode-1" href="#Copy-Mode">5.24.2 Copy Mode</a></li>
</ul></li>
<li><a id="toc-Page-Motions-1" href="#Page-Motions">5.25 Page Motions</a></li>
<li><a id="toc-Drawing-Geometric-Objects-1" href="#Drawing-Geometric-Objects">5.26 Drawing Geometric Objects</a></li>
<li><a id="toc-Deferring-Output-1" href="#Deferring-Output">5.27 Deferring Output</a></li>
<li><a id="toc-Traps-1" href="#Traps">5.28 Traps</a>
<ul class="toc-numbered-mark">
<li><a id="toc-Vertical-Position-Traps-1" href="#Vertical-Position-Traps">5.28.1 Vertical Position Traps</a>
<ul class="toc-numbered-mark">
<li><a id="toc-Page-Location-Traps-1" href="#Page-Location-Traps">5.28.1.1 Page Location Traps</a></li>
<li><a id="toc-The-Implicit-Page-Trap-1" href="#The-Implicit-Page-Trap">5.28.1.2 The Implicit Page Trap</a></li>
<li><a id="toc-Diversion-Traps-1" href="#Diversion-Traps">5.28.1.3 Diversion Traps</a></li>
</ul></li>
<li><a id="toc-Input-Line-Traps-1" href="#Input-Line-Traps">5.28.2 Input Line Traps</a></li>
<li><a id="toc-Blank-Line-Traps-1" href="#Blank-Line-Traps">5.28.3 Blank Line Traps</a></li>
<li><a id="toc-Leading-Space-Traps-1" href="#Leading-Space-Traps">5.28.4 Leading Space Traps</a></li>
<li><a id="toc-End_002dof_002dinput-Traps-1" href="#End_002dof_002dinput-Traps">5.28.5 End-of-input Traps</a></li>
</ul></li>
<li><a id="toc-Diversions-1" href="#Diversions">5.29 Diversions</a></li>
<li><a id="toc-Punning-Names-1" href="#Punning-Names">5.30 Punning Names</a></li>
<li><a id="toc-Environments-1" href="#Environments">5.31 Environments</a></li>
<li><a id="toc-Suppressing-Output-1" href="#Suppressing-Output">5.32 Suppressing Output</a></li>
<li><a id="toc-I_002fO-1" href="#I_002fO">5.33 I/O</a></li>
<li><a id="toc-Postprocessor-Access-1" href="#Postprocessor-Access">5.34 Postprocessor Access</a></li>
<li><a id="toc-Miscellaneous-1" href="#Miscellaneous">5.35 Miscellaneous</a></li>
<li><a id="toc-gtroff-Internals" href="#Gtroff-Internals">5.36 <code class="code">gtroff</code> Internals</a></li>
<li><a id="toc-Debugging-1" href="#Debugging">5.37 Debugging</a>
<ul class="toc-numbered-mark">
<li><a id="toc-Warnings-1" href="#Warnings">5.37.1 Warnings</a></li>
</ul></li>
<li><a id="toc-Implementation-Differences-1" href="#Implementation-Differences">5.38 Implementation Differences</a>
<ul class="toc-numbered-mark">
<li><a id="toc-Safer-Mode-1" href="#Safer-Mode">5.38.1 Safer Mode</a></li>
<li><a id="toc-Compatibility-Mode-1" href="#Compatibility-Mode">5.38.2 Compatibility Mode</a></li>
<li><a id="toc-Other-Differences-1" href="#Other-Differences">5.38.3 Other Differences</a></li>
</ul></li>
</ul></li>
<li><a id="toc-File-Formats-1" href="#File-Formats">6 File Formats</a>
<ul class="toc-numbered-mark">
<li><a id="toc-gtroff-Output-1" href="#gtroff-Output">6.1 <code class="code">gtroff</code> Output</a>
<ul class="toc-numbered-mark">
<li><a id="toc-Language-Concepts-1" href="#Language-Concepts">6.1.1 Language Concepts</a>
<ul class="toc-numbered-mark">
<li><a id="toc-Separation-1" href="#Separation">6.1.1.1 Separation</a></li>
<li><a id="toc-Argument-Units-1" href="#Argument-Units">6.1.1.2 Argument Units</a></li>
<li><a id="toc-Document-Parts-1" href="#Document-Parts">6.1.1.3 Document Parts</a></li>
</ul></li>
<li><a id="toc-Command-Reference-1" href="#Command-Reference">6.1.2 Command Reference</a>
<ul class="toc-numbered-mark">
<li><a id="toc-Comment-Command-1" href="#Comment-Command">6.1.2.1 Comment Command</a></li>
<li><a id="toc-Simple-Commands-1" href="#Simple-Commands">6.1.2.2 Simple Commands</a></li>
<li><a id="toc-Graphics-Commands-1" href="#Graphics-Commands">6.1.2.3 Graphics Commands</a></li>
<li><a id="toc-Device-Control-Commands-1" href="#Device-Control-Commands">6.1.2.4 Device Control Commands</a></li>
<li><a id="toc-Obsolete-Command-1" href="#Obsolete-Command">6.1.2.5 Obsolete Command</a></li>
</ul></li>
<li><a id="toc-Intermediate-Output-Examples-1" href="#Intermediate-Output-Examples">6.1.3 Intermediate Output Examples</a></li>
<li><a id="toc-Output-Language-Compatibility-1" href="#Output-Language-Compatibility">6.1.4 Output Language Compatibility</a></li>
</ul></li>
<li><a id="toc-Device-and-Font-Description-Files-1" href="#Device-and-Font-Description-Files">6.2 Device and Font Description Files</a>
<ul class="toc-numbered-mark">
<li><a id="toc-DESC-File-Format-1" href="#DESC-File-Format">6.2.1 <samp class="file">DESC</samp> File Format</a></li>
<li><a id="toc-Font-Description-File-Format-1" href="#Font-Description-File-Format">6.2.2 Font Description File Format</a></li>
</ul></li>
</ul></li>
<li><a id="toc-Copying-This-Manual-1" href="#Copying-This-Manual">Appendix A Copying This Manual</a></li>
<li><a id="toc-Request-Index-1" href="#Request-Index" rel="index">Appendix B Request Index</a></li>
<li><a id="toc-Escape-Sequence-Index-1" href="#Escape-Sequence-Index" rel="index">Appendix C Escape Sequence Index</a></li>
<li><a id="toc-Operator-Index-1" href="#Operator-Index" rel="index">Appendix D Operator Index</a></li>
<li><a id="toc-Register-Index-1" href="#Register-Index" rel="index">Appendix E Register Index</a></li>
<li><a id="toc-Macro-Index-1" href="#Macro-Index" rel="index">Appendix F Macro Index</a></li>
<li><a id="toc-String-Index-1" href="#String-Index" rel="index">Appendix G String Index</a></li>
<li><a id="toc-File-Keyword-Index-1" href="#File-Keyword-Index" rel="index">Appendix H File Keyword Index</a></li>
<li><a id="toc-Program-and-File-Index-1" href="#Program-and-File-Index" rel="index">Appendix I Program and File Index</a></li>
<li><a id="toc-Concept-Index-1" href="#Concept-Index" rel="index">Appendix J Concept Index</a></li>
</ul>
</div>
</div>
<hr>
<div class="chapter-level-extent" id="Introduction">
<div class="nav-panel">
<p>
Next: <a href="#Invoking-groff" accesskey="n" rel="next">Invoking <code class="code">groff</code></a>, Previous: <a href="#Top" accesskey="p" rel="prev">GNU <code class="code">troff</code></a>, Up: <a href="#Top" accesskey="u" rel="up">GNU <code class="code">troff</code></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h2 class="chapter" id="Introduction-1">1 Introduction</h2>
<a class="index-entry-id" id="index-introduction"></a>
<p>GNU <code class="code">roff</code> (or <code class="code">groff</code>) is a programming system for
typesetting documents. It is highly flexible and has been used
extensively for over thirty years.
</p>
<ul class="mini-toc">
<li><a href="#Background" accesskey="1">Background</a></li>
<li><a href="#What-Is-groff_003f" accesskey="2">What Is <code class="code">groff</code>?</a></li>
<li><a href="#groff-Capabilities" accesskey="3"><code class="code">groff</code> Capabilities</a></li>
<li><a href="#Macro-Package-Intro" accesskey="4">Macro Packages</a></li>
<li><a href="#Preprocessor-Intro" accesskey="5">Preprocessors</a></li>
<li><a href="#Output-Device-Intro" accesskey="6">Output Devices</a></li>
<li><a href="#Installation" accesskey="7">Installation</a></li>
<li><a href="#Conventions-Used-in-This-Manual" accesskey="8">Conventions Used in This Manual</a></li>
<li><a href="#Credits" accesskey="9">Credits</a></li>
</ul>
<hr>
<div class="section-level-extent" id="Background">
<div class="nav-panel">
<p>
Next: <a href="#What-Is-groff_003f" accesskey="n" rel="next">What Is <code class="code">groff</code>?</a>, Previous: <a href="#Introduction" accesskey="p" rel="prev">Introduction</a>, Up: <a href="#Introduction" accesskey="u" rel="up">Introduction</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Background-1">1.1 Background</h3>
<a class="index-entry-id" id="index-background"></a>
<p>M. Douglas McIlroy, formerly of AT&T Bell Laboratories and present at
the creation of the Unix operating system, offers an authoritative
historical summary.
</p>
<blockquote class="quotation">
<p>The prime reason for Unix was the desire of Ken [Thompson], Dennis
[Ritchie], and Joe Ossanna to have a pleasant environment for software
development. The fig leaf that got the nod from …
management was that an early use would be to develop a “stand-alone”
word-processing system for use in typing pools and secretarial offices.
Perhaps they had in mind “dedicated”, as distinct from
“stand-alone”; that’s what eventuated in various cases, most notably
in the legal/patent department and in the AT&T CEO’s office.
</p>
<p>Both those systems were targets of opportunity, not foreseen from the
start. When Unix was up and running on the PDP-11, Joe got wind of
the legal department having installed a commercial word processor.
He went to pitch Unix as an alternative and clinched a trial by
promising to make <code class="code">roff</code> able to number lines by tomorrow in order
to fulfill a patent-office requirement that the commercial system did
not support.
</p>
<p>Modems were installed so legal-department secretaries could try the
Research machine. They liked it and Joe’s superb customer service.
Soon the legal department got a system of their own. Joe went on to
create <code class="code">nroff</code> and <code class="code">troff</code>. Document preparation became a
widespread use of Unix, but no stand-alone word-processing system was
ever undertaken.
</p></blockquote>
<p>A history relating <code class="code">groff</code> to its predecessors <code class="code">roff</code>,
<code class="code">nroff</code>, and <code class="code">troff</code> is available in the <cite class="cite">roff<span class="r">(7)</span></cite>
man page.
</p>
<hr>
</div>
<div class="section-level-extent" id="What-Is-groff_003f">
<div class="nav-panel">
<p>
Next: <a href="#groff-Capabilities" accesskey="n" rel="next"><code class="code">groff</code> Capabilities</a>, Previous: <a href="#Introduction" accesskey="p" rel="prev">Introduction</a>, Up: <a href="#Introduction" accesskey="u" rel="up">Introduction</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="What-Is-groff_003f-1">1.2 What Is <code class="code">groff</code>?</h3>
<a class="index-entry-id" id="index-what-is-groff_003f"></a>
<a class="index-entry-id" id="index-groff_002d_002d_002dwhat-is-it_003f"></a>
<p><code class="code">groff</code> (GNU <code class="code">roff</code>) is a typesetting system that reads plain
text input files that include formatting commands to produce output in
PostScript, PDF, HTML, DVI, or other formats, or for display to a
terminal. Formatting commands can be low-level typesetting primitives,
macros from a supplied package, or user-defined macros. All three
approaches can be combined.
</p>
<p>A reimplementation and extension of the typesetter from <abbr class="acronym">AT&T</abbr>
Unix, <code class="code">groff</code> is present on most <abbr class="acronym">POSIX</abbr> systems owing to
its long association with Unix manuals (including man pages). It and
its predecessor are notable for their production of several best-selling
software engineering texts. <code class="code">groff</code> is capable of producing
typographically sophisticated documents while consuming minimal system
resources.
</p>
<hr>
</div>
<div class="section-level-extent" id="groff-Capabilities">
<div class="nav-panel">
<p>
Next: <a href="#Macro-Package-Intro" accesskey="n" rel="next">Macro Packages</a>, Previous: <a href="#What-Is-groff_003f" accesskey="p" rel="prev">What Is <code class="code">groff</code>?</a>, Up: <a href="#Introduction" accesskey="u" rel="up">Introduction</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="groff-Capabilities-1">1.3 <code class="code">groff</code> Capabilities</h3>
<a class="index-entry-id" id="index-groff-capabilities"></a>
<a class="index-entry-id" id="index-capabilities-of-groff"></a>
<p>GNU <code class="code">troff</code> is a typesetting document formatter; it provides a wide
range of low-level text and page operations within the framework of a
programming language. These operations compose to generate footnotes,
tables of contents, mathematical equations, diagrams, multi-column text,
and other elements of typeset works. Here is a survey of formatter
features; all are under precise user control.
</p>
<ul class="itemize mark-bullet">
<li>text filling, breaking, alignment to the left or right margin; centering
</li><li>adjustment of inter-word space size to justify text, and of
inter-sentence space size to suit local style conventions
</li><li>automatic and manual determination of hyphenation break points
</li><li>pagination
</li><li>selection of any font available to the output device
</li><li>adjustment of type size and vertical spacing (or “leading”)
</li><li>configuration of line length and indentation amounts; columnation
</li><li>drawing of geometric primitives (lines, arcs, polygons, circles,
…)
</li><li>setup of stroke and fill colors (where supported by the output
device)
</li><li>embedding of hyperlinks, images, document metadata, and other inclusions
(where supported by the output device)
</li></ul>
<hr>
</div>
<div class="section-level-extent" id="Macro-Package-Intro">
<div class="nav-panel">
<p>
Next: <a href="#Preprocessor-Intro" accesskey="n" rel="next">Preprocessors</a>, Previous: <a href="#groff-Capabilities" accesskey="p" rel="prev"><code class="code">groff</code> Capabilities</a>, Up: <a href="#Introduction" accesskey="u" rel="up">Introduction</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Macro-Packages-1">1.4 Macro Packages</h3>
<a class="index-entry-id" id="index-macro-package_002c-introduction"></a>
<a class="index-entry-id" id="index-package_002c-macro_002c-introduction"></a>
<p>Elemental typesetting functions can be be challenging to use directly
with complex documents. A <em class="dfn">macro</em> facility specifies how certain
routine operations, such as starting paragraphs, or printing headers and
footers, should be performed in terms of those low-level instructions.
Macros can be specific to one document or collected together into a
<em class="dfn">macro package</em> for use by many. Several macro packages available;
the most widely used are provided with <code class="code">groff</code>. They are
<samp class="file">man</samp>, <samp class="file">mdoc</samp>, <samp class="file">me</samp>, <samp class="file">mm</samp>, <samp class="file">mom</samp>, and
<samp class="file">ms</samp>.
</p>
<hr>
</div>
<div class="section-level-extent" id="Preprocessor-Intro">
<div class="nav-panel">
<p>
Next: <a href="#Output-Device-Intro" accesskey="n" rel="next">Output Devices</a>, Previous: <a href="#Macro-Package-Intro" accesskey="p" rel="prev">Macro Packages</a>, Up: <a href="#Introduction" accesskey="u" rel="up">Introduction</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Preprocessors">1.5 Preprocessors</h3>
<a class="index-entry-id" id="index-preprocessors"></a>
<p>An alternative approach to complexity management, particularly when
constructing tables, setting mathematics, or drawing diagrams, lies in
preprocessing. A <em class="dfn">preprocessor</em> employs a domian-specific language
to ease the generation of tables, equations, and so forth in terms that
are convenient for human entry. Each preprocessor reads a document and
translates the parts of it that apply to it into GNU <code class="code">troff</code> input.
Command-line options to <code class="command">groff</code> tell it which preprocessors to
use.
</p>
<p><code class="code">groff</code> provides preprocessors for laying out tables
(<code class="command">gtbl</code>), typesetting equations (<code class="command">geqn</code>), drawing
diagrams (<code class="command">gpic</code> and <code class="command">ggrn</code>), inserting bibliographic
references (<code class="command">grefer</code>), and drawing chemical structures
(<code class="command">gchem</code>). An associated program that is useful when dealing
with preprocessors is <code class="command">gsoelim</code>.<a class="footnote" id="DOCF1" href="#FOOT1"><sup>1</sup></a>
</p>
<p><code class="code">groff</code> also supports <code class="code">grap</code>, a preprocessor for drawing
graphs. A free implementation of it can be obtained separately.
</p>
<p>Unique to <code class="code">groff</code> is the <code class="code">preconv</code> preprocessor that enables
<code class="code">groff</code> to handle documents in a variety of input encodings.
</p>
<p>Other preprocessors exist, but no free implementations
are known. An example is <code class="command">ideal</code>, which draws diagrams using a
mathematical constraint language.
</p>
<hr>
</div>
<div class="section-level-extent" id="Output-Device-Intro">
<div class="nav-panel">
<p>
Next: <a href="#Installation" accesskey="n" rel="next">Installation</a>, Previous: <a href="#Preprocessor-Intro" accesskey="p" rel="prev">Preprocessors</a>, Up: <a href="#Introduction" accesskey="u" rel="up">Introduction</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Output-Devices">1.6 Output Devices</h3>
<a class="index-entry-id" id="index-postprocessors"></a>
<a class="index-entry-id" id="index-output-devices"></a>
<a class="index-entry-id" id="index-devices-for-output"></a>
<p>GNU <code class="code">troff</code>’s output is in a device-independent page description
language, which is then read by an <em class="dfn">output driver</em> that translates
this language into a file format or byte stream that a piece of
(possibly emulated) hardware understands. <code class="code">groff</code> features output
drivers for PostScript devices, terminal emulators (and other simple
typewriter-like machines), X11 (for previewing), TeX DVI, HP
LaserJet 4/PCL5 and Canon LBP printers (which use <abbr class="acronym">CaPSL</abbr>),
<abbr class="acronym">HTML</abbr>, <abbr class="acronym">XHTML</abbr>, and <abbr class="acronym">PDF</abbr>.
</p>
<hr>
</div>
<div class="section-level-extent" id="Installation">
<div class="nav-panel">
<p>
Next: <a href="#Conventions-Used-in-This-Manual" accesskey="n" rel="next">Conventions Used in This Manual</a>, Previous: <a href="#Output-Device-Intro" accesskey="p" rel="prev">Output Devices</a>, Up: <a href="#Introduction" accesskey="u" rel="up">Introduction</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Installation-1">1.7 Installation</h3>
<a class="index-entry-id" id="index-installation"></a>
<p>Locate installation instructions in the files <samp class="file">INSTALL</samp>,
<samp class="file">INSTALL.extra</samp>, and <samp class="file">INSTALL.REPO</samp> in the <code class="code">groff</code> source
distribution. Being a GNU project, <code class="code">groff</code> supports the familiar
‘<samp class="samp">./configure && make</samp>’ command sequence.
</p>
<hr>
</div>
<div class="section-level-extent" id="Conventions-Used-in-This-Manual">
<div class="nav-panel">
<p>
Next: <a href="#Credits" accesskey="n" rel="next">Credits</a>, Previous: <a href="#Installation" accesskey="p" rel="prev">Installation</a>, Up: <a href="#Introduction" accesskey="u" rel="up">Introduction</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Conventions-Used-in-This-Manual-1">1.8 Conventions Used in This Manual</h3>
<p>We apply the term “groff” to the language documented here, the GNU
implementation of the overall system, the project that develops that
system, and the command of that name. In the first sense, <code class="code">groff</code>
is an extended dialect of the <code class="code">roff</code> language, for which many
similar implementations exist.
</p>
<p>The <code class="code">roff</code> language features several major categories for which
many items are predefined. Presentations of these items feature the
form in which the item is most commonly used on the left, and, aligned
to the right margin, the name of the category in brackets.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005bexample_005d"><span class="category-def">Register: </span><span><strong class="def-name">\n[example]</strong><a class="copiable-link" href='#index-_005cn_005bexample_005d'> ¶</a></span></dt>
<dd><p>The register ‘<samp class="samp">example</samp>’ is one that that <code class="code">groff</code> <em class="emph">doesn’t</em>
predefine. You can create it yourself, though; see <a class="ref" href="#Setting-Registers">Setting Registers</a>.
</p></dd></dl>
<p>To make this document useful as a reference and not merely amiable
bedtime reading, we tend to present these syntax items in exhaustive
detail when they arise. References to topics discussed later in the
text are frequent; skip material you don’t understand yet.
</p>
<p>We use Texinfo’s “result” (⇒) and error→ notations to
present output written to the standard output and standard error
streams, respectively. Diagnostic messages from the GNU <code class="code">troff</code>
formatter and other programs are examples of the latter, but the
formatter can also be directed to write user-specified messages to the
standard error stream. The notation then serves to identify the
output stream and does not necessarily mean that an error has
occurred.<a class="footnote" id="DOCF2" href="#FOOT2"><sup>2</sup></a>
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">$ echo "Twelve o'clock and" | groff -Tascii | sed '/^$/d'
⇒ Twelve o'clock and
$ echo '.tm all is well.' | groff > /dev/null
error→ all is well.
</pre></div></div>
<p>Sometimes we use ⇒ somewhat abstractly to represent formatted
text that you will need to use a PostScript or PDF viewer program (or a
printer) to observe. While arguably an abuse of notation, we think this
preferable to requiring the reader to understand the syntax of these
page description languages.
</p>
<p>We also present diagnostic messages in an abbreviated form, often
omitting the name of the program issuing them, the input file name, and
line number or other positional information when such data do not serve
to illuminate the topic under discussion.
</p>
<p>Most examples are of <code class="code">roff</code> language input that would be placed in
a text file. Occasionally, we start an example with a ‘<samp class="samp">$</samp>’
character to indicate a shell prompt, as seen above.
</p>
<p>You are encouraged to try the examples yourself, and to alter them to
better learn <code class="code">groff</code>’s behavior. Our examples frequently need to
direct the formatter to set a line length (with ‘<samp class="samp">.ll</samp>’) that will
fit within the page margins of this manual. We mention this so that you
know why it is there before we discuss the <code class="code">ll</code> request
formally.<a class="footnote" id="DOCF3" href="#FOOT3"><sup>3</sup></a>
</p>
<hr>
</div>
<div class="section-level-extent" id="Credits">
<div class="nav-panel">
<p>
Previous: <a href="#Conventions-Used-in-This-Manual" accesskey="p" rel="prev">Conventions Used in This Manual</a>, Up: <a href="#Introduction" accesskey="u" rel="up">Introduction</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Credits-1">1.9 Credits</h3>
<a class="index-entry-id" id="index-credits"></a>
<p>We adapted portions of this manual from existing documents. James
Clark’s man pages were an essential resource; we have updated them in
parallel with the development of this manual. We based the tutorial for
macro users on Eric Allman’s introduction to his <samp class="file">me</samp> macro package
(which we also provide, little altered from 4.4BSD). Larry Kollar
contributed much of the material on the <samp class="file">ms</samp> macro package.
</p>
<hr>
</div>
</div>
<div class="chapter-level-extent" id="Invoking-groff">
<div class="nav-panel">
<p>
Next: <a href="#Tutorial-for-Macro-Users" accesskey="n" rel="next">Tutorial for Macro Users</a>, Previous: <a href="#Introduction" accesskey="p" rel="prev">Introduction</a>, Up: <a href="#Top" accesskey="u" rel="up">GNU <code class="code">troff</code></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h2 class="chapter" id="Invoking-groff-1">2 Invoking <code class="code">groff</code></h2>
<a class="index-entry-id" id="index-invoking-groff"></a>
<a class="index-entry-id" id="index-groff-invocation"></a>
<p>This chapter focuses on how to invoke the <code class="code">groff</code> front end. This
front end takes care of the details of constructing the pipeline among
the preprocessors, <code class="code">gtroff</code> and the postprocessor.
</p>
<p>It has become a tradition that GNU programs get the prefix ‘<samp class="samp">g</samp>’ to
distinguish them from their original counterparts provided by the host
(see <a class="pxref" href="#Environment">Environment</a>). Thus, for example, <code class="code">geqn</code> is GNU
<code class="code">eqn</code>. On operating systems like GNU/Linux or the Hurd, which
don’t contain proprietary versions of <code class="code">troff</code>, and on
MS-DOS/MS-Windows, where <code class="code">troff</code> and associated programs are not
available at all, this prefix is omitted since GNU <code class="code">troff</code> is the
only incarnation of <code class="code">troff</code> used. Exception: ‘<samp class="samp">groff</samp>’ is never
replaced by ‘<samp class="samp">roff</samp>’.
</p>
<p>In this document, we consequently say ‘<samp class="samp">gtroff</samp>’ when talking about
the GNU <code class="code">troff</code> program. All other implementations of <code class="code">troff</code> are called <abbr class="acronym">AT&T</abbr>
<code class="code">troff</code>, which is the common origin of almost all <code class="code">troff</code>
implementations<a class="footnote" id="DOCF4" href="#FOOT4"><sup>4</sup></a> (with more or less compatible changes). Similarly, we say
‘<samp class="samp">gpic</samp>’, ‘<samp class="samp">geqn</samp>’, and so on.
</p>
<ul class="mini-toc">
<li><a href="#Groff-Options" accesskey="1">Options</a></li>
<li><a href="#Environment" accesskey="2">Environment</a></li>
<li><a href="#Macro-Directories" accesskey="3">Macro Directories</a></li>
<li><a href="#Font-Directories" accesskey="4">Font Directories</a></li>
<li><a href="#Paper-Format" accesskey="5">Paper Format</a></li>
<li><a href="#Invocation-Examples" accesskey="6">Invocation Examples</a></li>
</ul>
<hr>
<div class="section-level-extent" id="Groff-Options">
<div class="nav-panel">
<p>
Next: <a href="#Environment" accesskey="n" rel="next">Environment</a>, Previous: <a href="#Invoking-groff" accesskey="p" rel="prev">Invoking <code class="code">groff</code></a>, Up: <a href="#Invoking-groff" accesskey="u" rel="up">Invoking <code class="code">groff</code></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Options">2.1 Options</h3>
<a class="index-entry-id" id="index-options"></a>
<a class="index-entry-id" id="index-groff"></a>
<a class="index-entry-id" id="index-gtroff"></a>
<a class="index-entry-id" id="index-gpic"></a>
<a class="index-entry-id" id="index-geqn"></a>
<a class="index-entry-id" id="index-ggrn"></a>
<a class="index-entry-id" id="index-grap"></a>
<a class="index-entry-id" id="index-gtbl"></a>
<a class="index-entry-id" id="index-gchem"></a>
<a class="index-entry-id" id="index-grefer"></a>
<a class="index-entry-id" id="index-gsoelim"></a>
<a class="index-entry-id" id="index-preconv"></a>
<p><code class="code">groff</code> normally runs the <code class="code">gtroff</code> program and a
postprocessor appropriate for the selected device. The default device
is ‘<samp class="samp">ps</samp>’ (but it can be changed when <code class="code">groff</code> is configured and
built). It can optionally preprocess with any of <code class="code">gpic</code>,
<code class="code">geqn</code>, <code class="code">gtbl</code>, <code class="code">ggrn</code>, <code class="code">grap</code>, <code class="code">gchem</code>,
<code class="code">grefer</code>, <code class="code">gsoelim</code>, or <code class="code">preconv</code>.
</p>
<p>This section documents only options to the <code class="code">groff</code> front end. Many
of the arguments to <code class="code">groff</code> are passed on to <code class="code">gtroff</code>;
therefore, those are also included. Arguments to preprocessors and
output drivers can be found in the man pages <cite class="cite">gpic<span class="r">(1)</span></cite>,
<cite class="cite">geqn<span class="r">(1)</span></cite>, <cite class="cite">gtbl<span class="r">(1)</span></cite>, <cite class="cite">ggrn<span class="r">(1)</span></cite>,
<cite class="cite">grefer<span class="r">(1)</span></cite>, <cite class="cite">gchem<span class="r">(1)</span></cite>, <cite class="cite">gsoelim<span class="r">(1)</span></cite>,
<cite class="cite">preconv<span class="r">(1)</span></cite>, <cite class="cite">grotty<span class="r">(1)</span></cite>, <cite class="cite">grops<span class="r">(1)</span></cite>,
<cite class="cite">gropdf<span class="r">(1)</span></cite>, <cite class="cite">grohtml<span class="r">(1)</span></cite>, <cite class="cite">grodvi<span class="r">(1)</span></cite>,
<cite class="cite">grolj4<span class="r">(1)</span></cite>, <cite class="cite">grolbp<span class="r">(1)</span></cite>, and <cite class="cite">gxditview<span class="r">(1)</span></cite>.
</p>
<p>The command-line format for <code class="code">groff</code> is:
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">groff [ -abceghijklpstvzCEGNRSUVXZ ] [ -d<var class="var">cs</var> ] [ -D<var class="var">arg</var> ]
[ -f<var class="var">fam</var> ] [ -F<var class="var">dir</var> ] [ -I<var class="var">dir</var> ] [ -K<var class="var">arg</var> ]
[ -L<var class="var">arg</var> ] [ -m<var class="var">name</var> ] [ -M<var class="var">dir</var> ] [ -n<var class="var">num</var> ]
[ -o<var class="var">list</var> ] [ -P<var class="var">arg</var> ] [ -r<var class="var">cn</var> ] [ -T<var class="var">dev</var> ]
[ -w<var class="var">name</var> ] [ -W<var class="var">name</var> ] [ <var class="var">files</var>… ]
</pre></div></div>
<p>The command-line format for <code class="code">gtroff</code> is as follows.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">gtroff [ -abcivzCERU ] [ -d<var class="var">cs</var> ] [ -f<var class="var">fam</var> ] [ -F<var class="var">dir</var> ]
[ -m<var class="var">name</var> ] [ -M<var class="var">dir</var> ] [ -n<var class="var">num</var> ] [ -o<var class="var">list</var> ]
[ -r<var class="var">cn</var> ] [ -T<var class="var">name</var> ] [ -w<var class="var">name</var> ] [ -W<var class="var">name</var> ]
[ <var class="var">files</var>… ]
</pre></div></div>
<p>Obviously, many of the options to <code class="code">groff</code> are actually passed on to
<code class="code">gtroff</code>.
</p>
<p>Options without an argument can be grouped behind a
single <samp class="option">-</samp>. A filename of <samp class="file">-</samp> denotes the
standard input. Whitespace is permitted between an option and its
argument.
</p>
<p>The <code class="code">grog</code> command can be used to guess the correct <code class="code">groff</code>
command to format a file. See its man page <cite class="cite">grog<span class="r">(1)</span></cite>; type
‘<samp class="samp">man grog</samp>’ at the command line to view it.
</p>
<p><code class="command">groff</code>’s command-line options are as follows.
</p>
<a class="index-entry-id" id="index-command_002dline-options"></a>
<dl class="table">
<dt id='index-plain-text-approximation-output-register-_0028_002eA_0029'><span>‘<samp class="samp">-a</samp>’<a class="copiable-link" href='#index-plain-text-approximation-output-register-_0028_002eA_0029'> ¶</a></span></dt>
<dd><p>Generate a plain text approximation of the typeset output. The
read-only register <code class="code">.A</code> is set to 1. See <a class="xref" href="#Built_002din-Registers">Built-in Registers</a>. This option produces a sort of abstract preview of the
formatted output.
</p>
<ul class="itemize mark-bullet">
<li>Page breaks are marked by a phrase in angle brackets; for example,
‘<samp class="samp"><beginning of page></samp>’.
</li><li>Lines are broken where they would be in the formatted output.
</li><li>A horizontal motion of any size is represented as one space. Adjacent
horizontal motions are not combined. Inter-sentence space nodes (those
arising from the second argument to the <code class="code">ss</code> request) are not
represented.
</li><li>Vertical motions are not represented.
</li><li>Special characters are rendered in angle brackets; for example, the
default soft hyphen character appears as ‘<samp class="samp"><hy></samp>’.
</li></ul>
<p>The above description should not be considered a specification; the
details of <samp class="option">-a</samp> output are subject to change.
</p>
</dd>
<dt>‘<samp class="samp">-b</samp>’</dt>
<dd><p>Write a backtrace reporting the state of <code class="command">gtroff</code>’s input parser
to the standard error stream with each diagnostic message. The line
numbers given in the backtrace might not always be correct, because
<code class="command">gtroff</code>’s idea of line numbers can be confused by requests that
append to
macros.
</p>
</dd>
<dt>‘<samp class="samp">-c</samp>’</dt>
<dd><p>Start with color output disabled.
</p>
</dd>
<dt>‘<samp class="samp">-C</samp>’</dt>
<dd><p>Enable AT&T <code class="command">troff</code> compatibility mode; implies <samp class="option">-c</samp>.
See <a class="xref" href="#Implementation-Differences">Implementation Differences</a>, for the list of incompatibilities
between <code class="command">groff</code> and <abbr class="acronym">AT&T</abbr> <code class="command">troff</code>.
</p>
</dd>
<dt>‘<samp class="samp">-d<var class="var">c</var><var class="var">text</var></samp>’</dt>
<dt>‘<samp class="samp">-d<var class="var">string</var>=<var class="var">text</var></samp>’</dt>
<dd><p>Define <code class="code">roff</code> string <var class="var">c</var> or <var class="var">string</var> as <var class="var">t</var> or
<var class="var">text</var>. <var class="var">c</var> must be one character; <var class="var">string</var> can be
of arbitrary length. Such string assignments happen before any macro
file is loaded, including the startup file. Due to <code class="code">getopt_long</code>
limitations, <var class="var">c</var> cannot be, and <var class="var">string</var> cannot contain, an
equals sign, even though that is a valid character in a <code class="code">roff</code>
identifier.
</p>
</dd>
<dt>‘<samp class="samp">-D<var class="var">enc</var></samp>’</dt>
<dd><p>Set fallback input encoding used by <code class="command">preconv</code> to <var class="var">enc</var>;
implies <samp class="option">-k</samp>.
</p>
</dd>
<dt>‘<samp class="samp">-e</samp>’</dt>
<dd><p>Run <code class="command">geqn</code> preprocessor.
</p>
</dd>
<dt>‘<samp class="samp">-E</samp>’</dt>
<dd><p>Inhibit <code class="command">gtroff</code> error messages. This option does <em class="emph">not</em>
suppress messages sent to the standard error stream by documents or
macro packages using <code class="code">tm</code> or related requests.
</p>
</dd>
<dt>‘<samp class="samp">-f<var class="var">fam</var></samp>’</dt>
<dd><p>Use <var class="var">fam</var> as the default font family. See <a class="xref" href="#Font-Families">Font Families</a>.
</p>
</dd>
<dt>‘<samp class="samp">-F<var class="var">dir</var></samp>’</dt>
<dd><p>Search in directory <samp class="file"><var class="var">dir</var></samp> for the selected output device’s
directory of device and font description files. See the description of
<code class="env">GROFF_FONT_PATH</code> in <a class="ref" href="#Environment">Environment</a> below for the default search
locations and ordering.
</p>
</dd>
<dt>‘<samp class="samp">-g</samp>’</dt>
<dd><p>Run <code class="command">ggrn</code> preprocessor.
</p>
</dd>
<dt>‘<samp class="samp">-G</samp>’</dt>
<dd><p>Run <code class="command">grap</code> preprocessor; implies <samp class="option">-p</samp>.
</p>
</dd>
<dt>‘<samp class="samp">-h</samp>’</dt>
<dd><p>Display a usage message and exit.
</p>
</dd>
<dt>‘<samp class="samp">-i</samp>’</dt>
<dd><p>Read the standard input after all the named input files have been
processed.
</p>
</dd>
<dt>‘<samp class="samp">-I<var class="var">dir</var></samp>’</dt>
<dd><p>Search the directory <var class="var">dir</var> for files named in several contexts;
implies <samp class="option">-g</samp> and <samp class="option">-s</samp>.
</p>
<ul class="itemize mark-bullet">
<li><code class="command">gsoelim</code> replaces <code class="code">so</code> requests with the contents of their
file name arguments.
</li><li><code class="command">gtroff</code> searches for files named as operands in its command
line and as arguments to <code class="code">psbb</code>, <code class="code">so</code>, and <code class="code">soquiet</code>
requests.
</li><li>Output drivers may search for files; for instance, <code class="command">grops</code> looks
for files named in ‘<samp class="samp">\X'ps: import <span class="r">…</span>'</samp>’, ‘<samp class="samp">\X'ps: file
<span class="r">…</span>'</samp>’, and ‘<samp class="samp">\X'pdf: pdfpic <span class="r">…</span>'</samp>’ device control
escape sequences.
</li></ul>
<p>This option may be specified more than once; the directories are
searched in the order specified. If you want to search the current
directory before others, add ‘<samp class="samp">-I .</samp>’ at the desired place. The
current working directory is otherwise searched last. <samp class="option">-I</samp> works
similarly to, and is named for, the “include” option of Unix C
compilers.
</p>
<p><samp class="option">-I</samp> options are passed to <code class="command">gsoelim</code>, <code class="command">gtroff</code>,
and output drivers; with the flag letter changed to <samp class="option">-M</samp>, they
are also passed to <code class="command">ggrn</code>.
</p>
</dd>
<dt>‘<samp class="samp">-j</samp>’</dt>
<dd><p>Run <code class="command">gchem</code> preprocessor. Implies <samp class="option">-p</samp>.
</p>
</dd>
<dt>‘<samp class="samp">-k</samp>’</dt>
<dd><p>Run <code class="command">preconv</code> preprocessor. Refer to its man page for its
behavior if neither of <code class="command">groff</code>’s <samp class="option">-K</samp> or <samp class="option">-D</samp>
options is also specified.
</p>
</dd>
<dt>‘<samp class="samp">-K<var class="var">enc</var></samp>’</dt>
<dd><p>Set input encoding used by <code class="command">preconv</code> to <var class="var">enc</var>; implies
<samp class="option">-k</samp>.
</p>
</dd>
<dt>‘<samp class="samp">-l</samp>’</dt>
<dd><p>Send the output to a spooler for printing. The <code class="code">print</code> directive
in the device description file specifies the default command to be used;
see <a class="ref" href="#Device-and-Font-Description-Files">Device and Font Description Files</a>.
See options <samp class="option">-L</samp> and <samp class="option">-X</samp>.
</p>
</dd>
<dt>‘<samp class="samp">-L<var class="var">arg</var></samp>’</dt>
<dd><p>Pass <var class="var">arg</var> to the print spooler program. If multiple <var class="var">arg</var>s are
required, pass each with a separate <samp class="option">-L</samp> option. <code class="command">groff</code>
does not prefix an option dash to <var class="var">arg</var> before passing it to the
spooler program.
</p>
</dd>
<dt>‘<samp class="samp">-m<var class="var">name</var></samp>’</dt>
<dd><p>Process the file <samp class="file"><var class="var">name</var>.tmac</samp> prior to any input files.
If not found, <samp class="file">tmac.<var class="var">name</var></samp> is attempted. <var class="var">name</var>
(in both arrangements) is presumed to be a macro file; see the
description of <code class="env">GROFF_TMAC_PATH</code> in <a class="ref" href="#Environment">Environment</a> below for the
default search locations and ordering. This option and its argument are
also passed to <code class="command">geqn</code>, <code class="command">grap</code>, and <code class="command">ggrn</code>.
</p>
</dd>
<dt>‘<samp class="samp">-M<var class="var">dir</var></samp>’</dt>
<dd><p>Search directory <samp class="file"><var class="var">dir</var></samp> for macro files; see the description
of <code class="env">GROFF_TMAC_PATH</code> in <a class="ref" href="#Environment">Environment</a> below for the default
search locations and ordering. This option and its argument are also
passed to <code class="command">geqn</code>, <code class="command">grap</code>, and <code class="command">ggrn</code>.
</p>
</dd>
<dt>‘<samp class="samp">-n<var class="var">num</var></samp>’</dt>
<dd><p>Number the first page <var class="var">num</var>.
</p>
</dd>
<dt>‘<samp class="samp">-N</samp>’</dt>
<dd><p>Prohibit newlines between <code class="code">eqn</code> delimiters: pass <samp class="option">-N</samp> to
<code class="command">geqn</code>.
</p>
</dd>
<dt id='index-print-current-page-register-_0028_002eP_0029'><span>‘<samp class="samp">-o<var class="var">list</var></samp>’<a class="copiable-link" href='#index-print-current-page-register-_0028_002eP_0029'> ¶</a></span></dt>
<dd><p>Output only pages in <var class="var">list</var>, which is a comma-separated list of page
ranges; ‘<samp class="samp"><var class="var">n</var></samp>’ means page <var class="var">n</var>, ‘<samp class="samp"><var class="var">m</var>-<var class="var">n</var></samp>’
means every page between <var class="var">m</var> and <var class="var">n</var>, ‘<samp class="samp">-<var class="var">n</var></samp>’ means
every page up to <var class="var">n</var>, ‘<samp class="samp"><var class="var">n</var>-</samp>’ means every page from
<var class="var">n</var> on. <code class="command">gtroff</code> stops processing and exits after
formatting the last page enumerated in <var class="var">list</var>.
</p>
</dd>
<dt>‘<samp class="samp">-p</samp>’</dt>
<dd><p>Run <code class="command">gpic</code> preprocessor.
</p>
</dd>
<dt>‘<samp class="samp">-P<var class="var">arg</var></samp>’</dt>
<dd><p>Pass <var class="var">arg</var> to the postprocessor. If multiple <var class="var">arg</var>s are
required, pass each with a separate <samp class="option">-P</samp> option. <code class="command">groff</code>
does not prefix an option dash to <var class="var">arg</var> before passing it to the
postprocessor.
</p>
</dd>
<dt>‘<samp class="samp">-r<var class="var">c</var><var class="var">numeric-expression</var></samp>’</dt>
<dt>‘<samp class="samp">-r<var class="var">register</var>=<var class="var">expr</var></samp>’</dt>
<dd><p>Set <code class="code">roff</code> register <var class="var">c</var> or <var class="var">register</var> to the value
<var class="var">numeric-expression</var> (see <a class="pxref" href="#Numeric-Expressions">Numeric Expressions</a>).
<var class="var">c</var> must be one character; <var class="var">register</var> can be of arbitrary
length. Such register assignments happen before any macro file is
loaded, including the startup file. Due to <code class="code">getopt_long</code>
limitations, <var class="var">c</var> cannot be, and <var class="var">register</var> cannot contain,
an equals sign, even though that is a valid character in a <code class="code">roff</code>
identifier.
</p>
</dd>
<dt>‘<samp class="samp">-R</samp>’</dt>
<dd><p>Run <code class="command">grefer</code> preprocessor. No mechanism is provided for passing
arguments to <code class="command">grefer</code> because most <code class="command">grefer</code> options have
equivalent language elements that can be specified within the document.
</p>
<a class="index-entry-id" id="index-troffrc"></a>
<a class="index-entry-id" id="index-troffrc_002dend"></a>
<p><code class="command">gtroff</code> also accepts a <samp class="option">-R</samp> option, which is not
accessible via <code class="command">groff</code>. This option prevents the loading of the
<samp class="file">troffrc</samp> and <samp class="file">troffrc-end</samp> files.
</p>
</dd>
<dt>‘<samp class="samp">-s</samp>’</dt>
<dd><p>Run <code class="command">gsoelim</code> preprocessor.
</p>
</dd>
<dt id='index-open-request_002c-and-safer-mode'><span>‘<samp class="samp">-S</samp>’<a class="copiable-link" href='#index-open-request_002c-and-safer-mode'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-opena-request_002c-and-safer-mode"></a>
<a class="index-entry-id" id="index-pso-request_002c-and-safer-mode"></a>
<a class="index-entry-id" id="index-sy-request_002c-and-safer-mode"></a>
<a class="index-entry-id" id="index-pi-request_002c-and-safer-mode"></a>
<a class="index-entry-id" id="index-safer-mode"></a>
<a class="index-entry-id" id="index-mode_002c-safer"></a>
<p>Operate in “safer” mode; see <samp class="option">-U</samp> below for its opposite. For
security reasons, safer mode is enabled by default.
</p>
</dd>
<dt>‘<samp class="samp">-t</samp>’</dt>
<dd><p>Run <code class="command">gtbl</code> preprocessor.
</p>
</dd>
<dt>‘<samp class="samp">-T<var class="var">dev</var></samp>’</dt>
<dd><p>Direct <code class="command">gtroff</code> to format the input for the output device
<var class="var">dev</var>. <code class="command">groff</code> then calls an output driver to convert
<code class="command">gtroff</code>’s output to a form appropriate for <var class="var">dev</var>. The
following output devices are available.
</p>
<dl class="table">
<dt><code class="code">ps</code></dt>
<dd><p>For PostScript printers and previewers.
</p>
</dd>
<dt><code class="code">pdf</code></dt>
<dd><p>For <abbr class="acronym">PDF</abbr> viewers or printers.
</p>
</dd>
<dt><code class="code">dvi</code></dt>
<dd><p>For TeX DVI format.
</p>
</dd>
<dt><code class="code">X75</code></dt>
<dd><p>For a 75<span class="dmn">dpi</span> X11 previewer.
</p>
</dd>
<dt><code class="code">X75-12</code></dt>
<dd><p>For a 75<span class="dmn">dpi</span> X11 previewer with a 12-point base font in the
document.
</p>
</dd>
<dt><code class="code">X100</code></dt>
<dd><p>For a 100<span class="dmn">dpi</span> X11 previewer.
</p>
</dd>
<dt><code class="code">X100-12</code></dt>
<dd><p>For a 100<span class="dmn">dpi</span> X11 previewer with a 12-point base font in the
document.
</p>
</dd>
<dt id='index-encoding_002c-output_002c-ASCII'><span><code class="code">ascii</code><a class="copiable-link" href='#index-encoding_002c-output_002c-ASCII'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-encoding_002c-output_002c-ISO-646"></a>
<a class="index-entry-id" id="index-ASCII-output-encoding"></a>
<a class="index-entry-id" id="index-ISO-646-output-encoding"></a>
<a class="index-entry-id" id="index-output-encoding_002c-ASCII"></a>
<a class="index-entry-id" id="index-output-encoding_002c-ISO-646"></a>
<p>For typewriter-like devices using the (7-bit) <abbr class="acronym">ASCII</abbr>
(ISO 646) character set.
</p>
</dd>
<dt id='index-encoding_002c-output_002c-Latin_002d1-_0028ISO-8859_002d1_0029'><span><code class="code">latin1</code><a class="copiable-link" href='#index-encoding_002c-output_002c-Latin_002d1-_0028ISO-8859_002d1_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-Latin_002d1-_0028ISO-8859_002d1_0029-output-encoding"></a>
<a class="index-entry-id" id="index-ISO-8859_002d1-_0028Latin_002d1_0029-output-encoding"></a>
<a class="index-entry-id" id="index-output-encoding_002c-Latin_002d1-_0028ISO-8859_002d1_0029"></a>
<p>For typewriter-like devices that support the <span class="w-nolinebreak-text">Latin-1</span><!-- /@w -->
(ISO <span class="w-nolinebreak-text">8859-1</span><!-- /@w -->) character set.
</p>
</dd>
<dt id='index-encoding_002c-output_002c-UTF_002d8'><span><code class="code">utf8</code><a class="copiable-link" href='#index-encoding_002c-output_002c-UTF_002d8'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-UTF_002d8-output-encoding"></a>
<a class="index-entry-id" id="index-output-encoding_002c-UTF_002d8"></a>
<p>For typewriter-like devices that use the Unicode (ISO 10646)
character set with <span class="w-nolinebreak-text">UTF-8</span><!-- /@w --> encoding.
</p>
</dd>
<dt id='index-encoding_002c-output_002c-EBCDIC'><span><code class="code">cp1047</code><a class="copiable-link" href='#index-encoding_002c-output_002c-EBCDIC'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-EBCDIC-output-encoding"></a>
<a class="index-entry-id" id="index-output-encoding_002c-EBCDIC"></a>
<a class="index-entry-id" id="index-encoding_002c-output_002c-code-page-1047"></a>
<a class="index-entry-id" id="index-code-page-1047-output-encoding"></a>
<a class="index-entry-id" id="index-output-encoding_002c-code-page-1047"></a>
<a class="index-entry-id" id="index-IBM-code-page-1047-output-encoding"></a>
<a class="index-entry-id" id="index-CCSID-1047-output-encoding-_0028EBCDIC_0029"></a>
<p>For typewriter-like devices that use the <abbr class="acronym">EBCDIC</abbr> encoding IBM
code page 1047.
</p>
</dd>
<dt><code class="code">lj4</code></dt>
<dd><p>For HP LaserJet4-compatible (or other PCL5-compatible) printers.
</p>
</dd>
<dt><code class="code">lbp</code></dt>
<dd><p>For Canon <abbr class="acronym">CaPSL</abbr> printers (<span class="w-nolinebreak-text">LBP-4</span><!-- /@w --> and <span class="w-nolinebreak-text">LBP-8</span><!-- /@w --> series laser
printers).
</p>
<a class="index-entry-id" id="index-pre_002dgrohtml"></a>
<a class="index-entry-id" id="index-post_002dgrohtml"></a>
<a class="index-entry-id" id="index-grohtml_002c-the-program"></a>
</dd>
<dt><code class="code">html</code></dt>
<dt><code class="code">xhtml</code></dt>
<dd><p>To produce <abbr class="acronym">HTML</abbr> and <abbr class="acronym">XHTML</abbr> output, respectively.
This driver consists of two parts, a preprocessor
(<code class="command">pre-grohtml</code>) and a postprocessor (<code class="command">post-grohtml</code>).
</p></dd>
</dl>
<a class="index-entry-id" id="index-output-device-name-string-_0028_002eT_0029"></a>
<a class="index-entry-id" id="index-output-device-usage-register-_0028_002eT_0029"></a>
<p>The predefined GNU <code class="code">troff</code> string <code class="code">.T</code> contains the name of
the output device; the read-only register <code class="code">.T</code> is set to 1 if
this option is used (which is always true if <code class="command">groff</code> is used to
call GNU <code class="command">troff</code>). See <a class="xref" href="#Built_002din-Registers">Built-in Registers</a>.
</p>
<p>The postprocessor to be used for a device is specified by the
<code class="code">postpro</code> command in the device description file. (See <a class="xref" href="#Device-and-Font-Description-Files">Device and Font Description Files</a>.) This can be overridden with the
<samp class="option">-X</samp> option.
</p>
</dd>
<dt id='index-mode_002c-unsafe'><span>‘<samp class="samp">-U</samp>’<a class="copiable-link" href='#index-mode_002c-unsafe'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-unsafe-mode"></a>
<p>Operate in <em class="dfn">unsafe mode</em>, which enables the <code class="code">open</code>,
<code class="code">opena</code>, <code class="code">pi</code>, <code class="code">pso</code>, and <code class="code">sy</code> requests. These
requests are disabled by default because they allow an untrusted input
document to write to arbitrary file names and run arbitrary commands.
This option also adds the current directory to the macro package search
path; see the <samp class="option">-m</samp> option above. <samp class="option">-U</samp> is passed to
<code class="command">gpic</code> and <code class="command">gtroff</code>.
</p>
</dd>
<dt>‘<samp class="samp">-v</samp>’</dt>
<dd><p>Write version information for <code class="command">groff</code> and all programs run by it
to the standard output stream; that is, the given command line is
processed in the usual way, passing <samp class="option">-v</samp> to the formatter and any
pre- or postprocessors invoked.
</p>
</dd>
<dt>‘<samp class="samp">-V</samp>’</dt>
<dd><p>Output the pipeline that would be run by <code class="command">groff</code>
(as a wrapper program) to the standard output stream, but do not execute
it. If given more than once, the pipeline is both written to the
standard error stream and run.
</p>
</dd>
<dt>‘<samp class="samp">-w<var class="var">category</var></samp>’</dt>
<dd><p>Enable warnings in <var class="var">category</var>. Categories are listed in
<a class="ref" href="#Warnings">Warnings</a>.
</p>
</dd>
<dt>‘<samp class="samp">-W<var class="var">category</var></samp>’</dt>
<dd><p>Inhibit warnings in <var class="var">category</var>. Categories are listed in
<a class="ref" href="#Warnings">Warnings</a>.
</p>
</dd>
<dt>‘<samp class="samp">-X</samp>’</dt>
<dd><p>Use <code class="command">gxditview</code> instead of the usual postprocessor to (pre)view
a document on an X11 display. Combining this option with
<samp class="option">-Tps</samp> uses the font metrics of the PostScript device, whereas
the <samp class="option">-TX75</samp> and <samp class="option">-TX100</samp> options use the metrics of X11
fonts.
</p>
</dd>
<dt>‘<samp class="samp">-z</samp>’</dt>
<dd><p>Suppress formatted output from <code class="command">gtroff</code>.
</p>
</dd>
<dt>‘<samp class="samp">-Z</samp>’</dt>
<dd><p>Disable postprocessing. <code class="command">gtroff</code> output will appear on the
standard output stream (unless suppressed with <samp class="option">-z</samp>; see
<a class="ref" href="#gtroff-Output"><code class="code">gtroff</code> Output</a> for a description of this format.
</p></dd>
</dl>
<hr>
</div>
<div class="section-level-extent" id="Environment">
<div class="nav-panel">
<p>
Next: <a href="#Macro-Directories" accesskey="n" rel="next">Macro Directories</a>, Previous: <a href="#Groff-Options" accesskey="p" rel="prev">Options</a>, Up: <a href="#Invoking-groff" accesskey="u" rel="up">Invoking <code class="code">groff</code></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Environment-1">2.2 Environment</h3>
<a class="index-entry-id" id="index-environment-variables"></a>
<a class="index-entry-id" id="index-variables-in-environment"></a>
<p>There are also several environment variables (of the operating system,
not within <code class="code">gtroff</code>) that can modify the behavior of <code class="code">groff</code>.
</p>
<dl class="table">
<dt id='index-GROFF_005fBIN_005fPATH_002c-environment-variable'><span><code class="code">GROFF_BIN_PATH</code><a class="copiable-link" href='#index-GROFF_005fBIN_005fPATH_002c-environment-variable'> ¶</a></span></dt>
<dd><p>This search path, followed by <code class="code">PATH</code>, is used for commands executed
by <code class="code">groff</code>.
</p>
</dd>
<dt id='index-GROFF_005fCOMMAND_005fPREFIX_002c-environment-variable'><span><code class="code">GROFF_COMMAND_PREFIX</code><a class="copiable-link" href='#index-GROFF_005fCOMMAND_005fPREFIX_002c-environment-variable'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-command-prefix"></a>
<a class="index-entry-id" id="index-prefix_002c-for-commands"></a>
<p>If this is set to <var class="var">X</var>, then <code class="command">groff</code> runs
<code class="command"><var class="var">X</var>troff</code> instead of <code class="command">gtroff</code>. This also applies
to <code class="command">tbl</code>, <code class="command">pic</code>, <code class="command">eqn</code>, <code class="command">grn</code>,
<code class="command">chem</code>, <code class="command">refer</code>, and <code class="command">soelim</code>. It does not
apply to <code class="command">grops</code>, <code class="command">grodvi</code>, <code class="command">grotty</code>,
<code class="command">pre-grohtml</code>, <code class="command">post-grohtml</code>, <code class="command">preconv</code>,
<code class="command">grolj4</code>, <code class="command">gropdf</code>, and <code class="command">gxditview</code>.
</p>
<p>The default command prefix is determined during the installation
process. If a non-GNU <code class="code">troff</code> system is found, prefix ‘<samp class="samp">g</samp>’ is
used, none otherwise.
</p>
</dd>
<dt id='index-GROFF_005fENCODING_002c-environment-variable'><span><code class="code">GROFF_ENCODING</code><a class="copiable-link" href='#index-GROFF_005fENCODING_002c-environment-variable'> ¶</a></span></dt>
<dd><p>The value of this variable is passed to the <code class="code">preconv</code>
preprocessor’s <samp class="option">-e</samp> option to select the character encoding of
input files. This variable’s existence implies the <code class="code">groff</code> option
<samp class="option">-k</samp>. If set but empty, <code class="code">groff</code> calls <code class="code">preconv</code>
without an <samp class="option">-e</samp> option. <code class="code">groff</code>’s <samp class="option">-K</samp> option
overrides <code class="env">GROFF_ENCODING</code>. See the <cite class="cite">preconv<span class="r">(7)</span></cite> man page;
type ‘<samp class="samp">man preconv</samp>’ at the command line to view it.
</p>
</dd>
<dt id='index-GROFF_005fFONT_005fPATH_002c-environment-variable'><span><code class="code">GROFF_FONT_PATH</code><a class="copiable-link" href='#index-GROFF_005fFONT_005fPATH_002c-environment-variable'> ¶</a></span></dt>
<dd><p>A list of directories in which to seek the selected output device’s
directory of device and font description files. GNU <code class="code">troff</code>
will search directories given as arguments to any specified <samp class="option">-F</samp>
options before these, and a built-in list of directories after them.
See <a class="xref" href="#Font-Directories">Font Directories</a> and the <cite class="cite">troff<span class="r">(1)</span></cite> or
<cite class="cite">gtroff<span class="r">(1)</span></cite> man pages.
</p>
</dd>
<dt id='index-GROFF_005fTMAC_005fPATH_002c-environment-variable'><span><code class="code">GROFF_TMAC_PATH</code><a class="copiable-link" href='#index-GROFF_005fTMAC_005fPATH_002c-environment-variable'> ¶</a></span></dt>
<dd><p>A list of directories in which to seek macro files. GNU <code class="code">troff</code>
will search directories given as arguments to any specified <samp class="option">-M</samp>
options before these, and a built-in list of directories after them.
See <a class="xref" href="#Macro-Directories">Macro Directories</a> and the <cite class="cite">troff<span class="r">(1)</span></cite> or
<cite class="cite">gtroff<span class="r">(1)</span></cite> man pages.
</p>
</dd>
<dt id='index-GROFF_005fTMPDIR_002c-environment-variable'><span><code class="code">GROFF_TMPDIR</code><a class="copiable-link" href='#index-GROFF_005fTMPDIR_002c-environment-variable'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-TMPDIR_002c-environment-variable"></a>
<p>The directory in which <code class="code">groff</code> creates temporary files. If this is
not set and <code class="env">TMPDIR</code> is set, temporary files are created in that
directory. Otherwise temporary files are created in a system-dependent
default directory (on Unix and GNU/Linux systems, this is usually
<samp class="file">/tmp</samp>). <code class="code">grops</code>, <code class="code">grefer</code>, <code class="code">pre-grohtml</code>, and
<code class="code">post-grohtml</code> can create temporary files in this directory.
</p>
</dd>
<dt id='index-GROFF_005fTYPESETTER_002c-environment-variable'><span><code class="code">GROFF_TYPESETTER</code><a class="copiable-link" href='#index-GROFF_005fTYPESETTER_002c-environment-variable'> ¶</a></span></dt>
<dd><p>Sets the default output device. If empty or not set, a build-time
default (often <code class="code">ps</code>) is used. The <samp class="option">-T<var class="var">dev</var></samp> option
overrides <code class="env">GROFF_TYPESETTER</code>.
</p>
</dd>
<dt id='index-SOURCE_005fDATE_005fEPOCH_002c-environment-variable'><span><code class="code">SOURCE_DATE_EPOCH</code><a class="copiable-link" href='#index-SOURCE_005fDATE_005fEPOCH_002c-environment-variable'> ¶</a></span></dt>
<dd><p>A timestamp (expressed as seconds since the Unix epoch) to use as the
output creation timestamp in place of the current time. The time is
converted to human-readable form using <cite class="cite">localtime<span class="r">(3)</span></cite> when the
formatter starts up and stored in registers usable by documents and
macro packages (see <a class="pxref" href="#Built_002din-Registers">Built-in Registers</a>).
</p>
</dd>
<dt id='index-TZ_002c-environment-variable'><span><code class="code">TZ</code><a class="copiable-link" href='#index-TZ_002c-environment-variable'> ¶</a></span></dt>
<dd><p>The time zone to use when converting the current time (or value of
<code class="env">SOURCE_DATE_EPOCH</code>) to human-readable form; see
<cite class="cite">tzset<span class="r">(3)</span></cite>.
</p></dd>
</dl>
<p>MS-DOS and MS-Windows ports of <code class="code">groff</code> use semicolons, rather than
colons, to separate the directories in the lists described above.
</p>
<hr>
</div>
<div class="section-level-extent" id="Macro-Directories">
<div class="nav-panel">
<p>
Next: <a href="#Font-Directories" accesskey="n" rel="next">Font Directories</a>, Previous: <a href="#Environment" accesskey="p" rel="prev">Environment</a>, Up: <a href="#Invoking-groff" accesskey="u" rel="up">Invoking <code class="code">groff</code></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Macro-Directories-1">2.3 Macro Directories</h3>
<a class="index-entry-id" id="index-macro-directories"></a>
<a class="index-entry-id" id="index-directories-for-macros"></a>
<a class="index-entry-id" id="index-searching-macros"></a>
<a class="index-entry-id" id="index-macros_002c-searching"></a>
<p>A macro file must have a name in the form <code class="code"><var class="var">name</var>.tmac</code> or
<code class="code">tmac.<var class="var">name</var></code> and be placed in a <em class="dfn">tmac directory</em> to be
found by the <samp class="option">-m<var class="var">name</var></samp> command-line option.<a class="footnote" id="DOCF5" href="#FOOT5"><sup>5</sup></a>
<a class="index-entry-id" id="index-tmac_002c-directory"></a>
<a class="index-entry-id" id="index-directory_002c-for-tmac-files"></a>
<a class="index-entry-id" id="index-tmac_002c-path"></a>
<a class="index-entry-id" id="index-path_002c-for-tmac-files"></a>
<a class="index-entry-id" id="index-locating-macro-files"></a>
<a class="index-entry-id" id="index-macro-file-search-path"></a>
<a class="index-entry-id" id="index-file_002c-macro_002c-search-path"></a>
<a class="index-entry-id" id="index-locating-macro-packages"></a>
<a class="index-entry-id" id="index-macro-package-search-path"></a>
<a class="index-entry-id" id="index-package_002c-macro_002c-search-path"></a>
Together, these directories constitute the <em class="dfn">tmac path</em>. Each
directory is searched in the following order until the desired macro
file is found or the list is exhausted.
</p>
<ul class="itemize mark-bullet">
<li>Directories specified with GNU <code class="code">troff</code>’s or <code class="code">groff</code>’s
<samp class="option">-M</samp> command-line option.
</li><li><a class="index-entry-id" id="index-GROFF_005fTMAC_005fPATH_002c-environment-variable-1"></a>
Directories listed in the <code class="env">GROFF_TMAC_PATH</code> environment variable.
</li><li><a class="index-entry-id" id="index-safer-mode-1"></a>
<a class="index-entry-id" id="index-mode_002c-safer-1"></a>
<a class="index-entry-id" id="index-unsafe-mode-1"></a>
<a class="index-entry-id" id="index-mode_002c-unsafe-1"></a>
<a class="index-entry-id" id="index-current-directory"></a>
<a class="index-entry-id" id="index-directory_002c-current"></a>
The current working directory (only if in unsafe mode using the
<samp class="option">-U</samp> command-line option).
</li><li><a class="index-entry-id" id="index-home-directory"></a>
<a class="index-entry-id" id="index-directory_002c-home"></a>
The user’s home directory, <code class="env">HOME</code>.
</li><li><a class="index-entry-id" id="index-site_002dlocal-directory"></a>
<a class="index-entry-id" id="index-directory_002c-site_002dlocal"></a>
<a class="index-entry-id" id="index-platform_002dspecific-directory"></a>
<a class="index-entry-id" id="index-directory_002c-platform_002dspecific"></a>
A platform-dependent directory, a site-local (platform-independent)
directory, and the main <i class="slanted">tmac</i> directory. The locations
corresponding to your installation are listed in section “Environment”
of <cite class="cite">gtroff<span class="r">(1)</span></cite>. If not otherwise configured, they are as
follows.
<div class="example">
<div class="group"><pre class="example-preformatted">/usr/local/lib/groff/site-tmac
/usr/local/share/groff/site-tmac
/usr/local/share/groff/1.23.0/tmac
</pre></div></div>
<p>The foregoing assumes that the version of <code class="code">groff</code> is 1.23.0, and
that the installation prefix was <samp class="file">/usr/local</samp>. It is possible to
fine-tune these locations during the source configuration process.
</p></li></ul>
<hr>
</div>
<div class="section-level-extent" id="Font-Directories">
<div class="nav-panel">
<p>
Next: <a href="#Paper-Format" accesskey="n" rel="next">Paper Format</a>, Previous: <a href="#Macro-Directories" accesskey="p" rel="prev">Macro Directories</a>, Up: <a href="#Invoking-groff" accesskey="u" rel="up">Invoking <code class="code">groff</code></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Font-Directories-1">2.4 Font Directories</h3>
<a class="index-entry-id" id="index-font-directories"></a>
<a class="index-entry-id" id="index-directories-for-fonts"></a>
<a class="index-entry-id" id="index-searching-fonts"></a>
<a class="index-entry-id" id="index-fonts_002c-searching"></a>
<p><code class="code">groff</code> enforces few restrictions on how font description files are
named. For its family/style mechanism to work (see <a class="pxref" href="#Font-Families">Font Families</a>),
the names of fonts within a family should start with the family name,
followed by the style. For example, the Times family uses ‘<samp class="samp">T</samp>’ for
the family name and ‘<samp class="samp">R</samp>’, ‘<samp class="samp">B</samp>’, ‘<samp class="samp">I</samp>’, and ‘<samp class="samp">BI</samp>’ to
indicate the styles ‘roman’, ‘bold’, ‘italic’, and ‘bold italic’,
respectively. Thus the final font names are ‘<samp class="samp">TR</samp>’, ‘<samp class="samp">TB</samp>’,
‘<samp class="samp">TI</samp>’, and ‘<samp class="samp">TBI</samp>’.
</p>
<a class="index-entry-id" id="index-font-path"></a>
<a class="index-entry-id" id="index-path_002c-for-font-files"></a>
<p>Font description files are kept in <em class="dfn">font directories</em>, which
together constitute the <em class="dfn">font path</em>. The search procedure
always appends the directory <code class="code">dev</code><var class="var">name</var>, where <var class="var">name</var> is
the name of the output device. Assuming TeX DVI output, and
<samp class="file">/foo/bar</samp> as a font directory, the font description files for
<code class="command">grodvi</code> must be in <samp class="file">/foo/bar/devdvi</samp>.
Each directory in the font path is searched in the following order until
the desired font description file is found or the list is exhausted.
</p>
<ul class="itemize mark-bullet">
<li>Directories specified with GNU <code class="code">troff</code>’s or <code class="code">groff</code>’s
<samp class="option">-f</samp> command-line option. All output drivers (and some
preprocessors) support this option as well, because they require
information about the glyphs to be rendered in the document.
</li><li><a class="index-entry-id" id="index-GROFF_005fFONT_005fPATH_002c-environment-variable-1"></a>
Directories listed in the <code class="env">GROFF_FONT_PATH</code> environment variable.
</li><li><a class="index-entry-id" id="index-site_002dlocal-directory-1"></a>
<a class="index-entry-id" id="index-directory_002c-site_002dlocal-1"></a>
A site-local directory and the main font description directory.
The locations corresponding to your installation are listed in section
“Environment” of <cite class="cite">gtroff<span class="r">(1)</span></cite>. If not otherwise configured,
they are as follows.
<div class="example">
<div class="group"><pre class="example-preformatted">/usr/local/share/groff/site-font
/usr/local/share/groff/1.23.0/font
</pre></div></div>
<p>The foregoing assumes that the version of <code class="code">groff</code> is 1.23.0, and
that the installation prefix was <samp class="file">/usr/local</samp>. It is possible to
fine-tune these locations during the source configuration process.
</p></li></ul>
<hr>
</div>
<div class="section-level-extent" id="Paper-Format">
<div class="nav-panel">
<p>
Next: <a href="#Invocation-Examples" accesskey="n" rel="next">Invocation Examples</a>, Previous: <a href="#Font-Directories" accesskey="p" rel="prev">Font Directories</a>, Up: <a href="#Invoking-groff" accesskey="u" rel="up">Invoking <code class="code">groff</code></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Paper-Format-1">2.5 Paper Format</h3>
<a class="index-entry-id" id="index-paper-format"></a>
<a class="index-entry-id" id="index-format_002c-paper"></a>
<a class="index-entry-id" id="index-paper-size"></a>
<a class="index-entry-id" id="index-size_002c-paper"></a>
<a class="index-entry-id" id="index-landscape-page-orientation"></a>
<a class="index-entry-id" id="index-orientation_002c-landscape"></a>
<a class="index-entry-id" id="index-page-orientation_002c-landscape"></a>
<p>In <code class="code">groff</code>, the page dimensions for the formatter GNU <code class="code">troff</code>
and for output devices are handled separately. See <a class="xref" href="#Page-Layout">Page Layout</a>, for
vertical manipulation of the page size, and See <a class="xref" href="#Line-Layout">Line Layout</a>, for
horizontal changes.
<a class="index-entry-id" id="index-papersize_002etmac"></a>
<a class="index-entry-id" id="index-troffrc-1"></a>
The <samp class="file">papersize</samp> macro package, normally loaded by <samp class="file">troffrc</samp> at
startup, provides an interface for configuring page dimensions by
convenient names, like ‘<samp class="samp">letter</samp>’ or ‘<samp class="samp">a4</samp>’; see
<cite class="cite">groff_tmac<span class="r">(5)</span></cite>. The default used by the formatter depends on
its build configuration, but is usually one of the foregoing, as
geographically appropriate.
</p>
<p>It is up to each macro package to respect the page dimensions configured
in this way.
</p>
<p>For each output device, the size of the output medium can be set in its
<samp class="file">DESC</samp> file. Most output drivers also recognize a command-line
option <samp class="option">-p</samp> to override the default dimensions and an option
<samp class="option">-l</samp> to use landscape orientation. See <a class="xref" href="#DESC-File-Format"><samp class="file">DESC</samp> File Format</a>, for
a description of the <code class="code">papersize</code> keyword, which takes an argument
of the same form as <samp class="option">-p</samp>. The output driver’s man page, such as
<cite class="cite">grops<span class="r">(1)</span></cite>, may also be helpful.
</p>
<p><code class="code">groff</code> uses the command-line option <samp class="option">-P</samp> to pass options to
postprocessors; for example, use the following for PostScript output on
A4 paper in landscape orientation.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">groff -Tps -dpaper=a4l -P-pa4 -P-l -ms foo.ms > foo.ps
</pre></div></div>
<hr>
</div>
<div class="section-level-extent" id="Invocation-Examples">
<div class="nav-panel">
<p>
Previous: <a href="#Paper-Format" accesskey="p" rel="prev">Paper Format</a>, Up: <a href="#Invoking-groff" accesskey="u" rel="up">Invoking <code class="code">groff</code></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Invocation-Examples-1">2.6 Invocation Examples</h3>
<a class="index-entry-id" id="index-invocation-examples"></a>
<a class="index-entry-id" id="index-examples-of-invocation"></a>
<p><code class="code">roff</code> systems are best known for formatting man pages. Once a
<code class="command">man</code> librarian program has located a man page, it may execute
a <code class="code">groff</code> command much like the following.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">groff -t -man -Tutf8 /usr/share/man/man1/groff.1
</pre></div></div>
<p>The librarian will also pipe the output through a pager, which might not
interpret the SGR terminal escape sequences <code class="command">groff</code> emits for
boldface, underlining, or italics; see the <cite class="cite">grotty<span class="r">(1)</span></cite> man page
for a discussion.
</p>
<p>To process a <code class="code">roff</code> input file using the preprocessors
<code class="command">gtbl</code> and <code class="command">gpic</code> and the <samp class="file">me</samp> macro package in the
way to which AT&T <code class="code">troff</code> users were accustomed, one would type (or
script) a pipeline.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">gpic foo.me | gtbl | gtroff -me -Tutf8 | grotty
</pre></div></div>
<p>Using <code class="command">groff</code>, this pipe can be shortened to an equivalent
command.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">groff -p -t -me -T utf8 foo.me
</pre></div></div>
<p>An even easier way to do this is to use <code class="command">grog</code> to guess the
preprocessor and macro options and execute the result by using the
command substitution feature of the shell.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">$(grog -Tutf8 foo.me)
</pre></div></div>
<p>Each command-line option to a postprocessor must be specified with any
required leading dashes ‘<samp class="samp">-</samp>’
because <code class="command">groff</code> passes the arguments as-is to the postprocessor;
this permits arbitrary arguments to be transmitted. For example, to
pass a title to the <code class="command">gxditview</code> postprocessor,
the shell commands
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">groff -X -P -title -P 'trial run' mydoc.t
</pre></div></div>
<p>and
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">groff -X -Z mydoc.t | gxditview -title 'trial run' -
</pre></div></div>
<p>are equivalent.
</p>
<hr>
</div>
</div>
<div class="chapter-level-extent" id="Tutorial-for-Macro-Users">
<div class="nav-panel">
<p>
Next: <a href="#Major-Macro-Packages" accesskey="n" rel="next">Macro Packages</a>, Previous: <a href="#Invoking-groff" accesskey="p" rel="prev">Invoking <code class="code">groff</code></a>, Up: <a href="#Top" accesskey="u" rel="up">GNU <code class="code">troff</code></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h2 class="chapter" id="Tutorial-for-Macro-Users-1">3 Tutorial for Macro Users</h2>
<a class="index-entry-id" id="index-tutorial-for-macro-users"></a>
<a class="index-entry-id" id="index-macros_002c-tutorial-for-users"></a>
<a class="index-entry-id" id="index-user_0027s-tutorial-for-macros"></a>
<a class="index-entry-id" id="index-user_0027s-macro-tutorial"></a>
<p>Most users of the <code class="code">roff</code> language employ a macro package to format
their documents. Successful macro packages ease the composition
process; their users need not have mastered the full formatting
language, nor understand features like diversions, traps, and
environments. This chapter aims to familiarize you with basic concepts
and mechanisms common to many macro packages (like “displays”). If
you prefer a meticulous and comprehensive presentation, try <a class="ref" href="#GNU-troff-Reference">GNU <code class="code">troff</code> Reference</a> instead.
</p>
<ul class="mini-toc">
<li><a href="#Basics" accesskey="1">Basics</a></li>
<li><a href="#Common-Features" accesskey="2">Common Features</a></li>
</ul>
<hr>
<div class="section-level-extent" id="Basics">
<div class="nav-panel">
<p>
Next: <a href="#Common-Features" accesskey="n" rel="next">Common Features</a>, Previous: <a href="#Tutorial-for-Macro-Users" accesskey="p" rel="prev">Tutorial for Macro Users</a>, Up: <a href="#Tutorial-for-Macro-Users" accesskey="u" rel="up">Tutorial for Macro Users</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Basics-1">3.1 Basics</h3>
<a class="index-entry-id" id="index-basics-of-macro-package-usage"></a>
<a class="index-entry-id" id="index-macro-package-usage_002c-basics-of"></a>
<p>Let us first survey some basic concepts necessary to use a macro package
fruitfully.<a class="footnote" id="DOCF6" href="#FOOT6"><sup>6</sup></a>
References are made throughout to more detailed information.
</p>
<p>GNU <code class="code">troff</code> reads an input file prepared by the user and outputs a
formatted document suitable for publication or framing. The input
consists of text, or words to be printed, and embedded commands
(<i class="slanted">requests</i> and <i class="slanted">escape sequences</i>), which tell GNU
<code class="code">troff</code> how to format the output. See <a class="xref" href="#Formatter-Instructions">Formatter Instructions</a>.
</p>
<p>The word <i class="slanted">argument</i> is used in this chapter to mean a word or
number that appears on the same line as a request, and which modifies
the meaning of that request. For example, the request
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.sp
</pre></div></div>
<p>spaces one line, but
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.sp 4
</pre></div></div>
<p>spaces four lines. The number 4 is an argument to the <code class="code">sp</code>
request, which says to space four lines instead of one. Arguments are
separated from the request and from each other by spaces (<em class="emph">not</em>
tabs). See <a class="xref" href="#Invoking-Requests">Invoking Requests</a>.
</p>
<p>The primary function of GNU <code class="code">troff</code> is to collect words from input
lines, fill output lines with those words, adjust the line to the
right-hand margin by widening spaces, and output the result. For
example, the input:
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">Now is the time
for all good men
to come to the aid
of their party.
Four score and seven
years ago, etc.
</pre></div></div>
<p>is read, packed onto output lines, and justified to produce:
</p>
<div class="example">
<div class="group"><pre class="example-preformatted"> ⇒ Now is the time for all good men to come to the aid of
⇒ their party. Four score and seven years ago, etc.
</pre></div></div>
<p>Sometimes a new output line should be started even though the current
line is not yet full—for example, at the end of a paragraph. To do
this it is possible to force a <i class="slanted">break</i>, starting a new output
line. Some requests cause a break automatically, as do (normally) blank
input lines and input lines beginning with a space or tab.
</p>
<p>Not all input lines are <i class="slanted">text lines</i>—words to be formatted.
Some are <i class="slanted">control lines</i> that tell a macro package (or GNU
<code class="code">troff</code> directly) how to format the text. Control lines start with
a dot (‘<samp class="samp">.</samp>’) or an apostrophe (‘<samp class="samp">'</samp>’) as the first character, and
can be followed by a <i class="slanted">macro call</i>.
</p>
<p>The formatter also does more complex things, such as automatically
numbering pages, skipping over page boundaries, putting footnotes in the
correct place, and so forth.
</p>
<p>Here are a few hints for preparing text for input to GNU <code class="code">troff</code>.
</p>
<ul class="itemize mark-bullet">
<li>First, keep the input lines short. Short input lines are easier to
edit, and GNU <code class="code">troff</code> packs words onto longer lines anyhow.
</li><li>In keeping with this, it is helpful to begin a new line after every
comma or phrase, since common corrections are to add or delete sentences
or phrases.
</li><li>End each sentence with two spaces—or better, start each sentence on a
new line. GNU <code class="code">troff</code> recognizes characters that usually end a
sentence, and inserts inter-sentence space accordingly.
</li><li>Do not hyphenate words at the end of lines—GNU <code class="code">troff</code> is smart
enough to hyphenate words as needed, but is not smart enough to take
hyphens out and join a word back together. Also, words such as
“mother-in-law” should not be broken over a line, since then a space
can occur where not wanted, such as “<span class="w-nolinebreak-text">mother-</span> in<!-- /@w -->-law”.
</li></ul>
<p>We offer further advice in <a class="ref" href="#Input-Conventions">Input Conventions</a>.
</p>
<a class="index-entry-id" id="index-vertical-spacing-_0028introduction_0029"></a>
<a class="index-entry-id" id="index-spacing_002c-vertical-_0028introduction_0029"></a>
<p>GNU <code class="code">troff</code> permits alteration of the distance between lines of
text. This is termed <i class="slanted">vertical spacing</i> and is expressed in the
same units as the type size—the point. The default is 10-point type
on 12-point spacing. To get <i class="slanted">double-spaced</i> text you would set
the vertical spacing to 24 points. Some, but not all, macro packages
expose a macro or register to configure the vertical spacing.
</p>
<p>A number of requests allow you to change the way the output is arranged
on the page, sometimes called the <i class="slanted">layout</i> of the output page.
Most macro packages don’t supply macros for performing these (at least
not without performing other actions besides), as they are such basic
operations. The macro packages for writing man pages, <samp class="file">man</samp> and
<samp class="file">mdoc</samp>, don’t encourage explicit use of these requests at all.
</p>
<a class="index-entry-id" id="index-spacing-_0028introduction_0029"></a>
<p>The request ‘<samp class="samp">.sp <var class="var">N</var></samp>’<!-- /@w --> leaves <var class="var">N</var> lines of blank
space. <var class="var">N</var> can be omitted (skipping a single line) or can
be of the form <var class="var">N</var>i (for <var class="var">N</var> inches) or <var class="var">N</var>c (for
<var class="var">N</var> centimeters). For example, the input:
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.sp 1.5i
My thoughts on the subject
.sp
</pre></div></div>
<p>leaves one and a half inches of space, followed by the line “My
thoughts on the subject”, followed by a single blank line (more
measurement units are available; see <a class="ref" href="#Measurements">Measurements</a>).
</p>
<p>If you seek precision in spacing, be advised when using a macro package
that it might not honor <code class="code">sp</code> requests as you expect; it can use a
formatter feature called <i class="slanted">no-space mode</i> to prevent excess space
from accumulating. Macro packages typically offer registers to control
spacing between paragraphs, before section headings, and around displays
(discussed below); use these facilities preferentially.
See <a class="xref" href="#Manipulating-Spacing">Manipulating Spacing</a>.
</p>
<a class="index-entry-id" id="index-centering-lines-_0028introduction_0029"></a>
<a class="index-entry-id" id="index-lines_002c-centering-_0028introduction_0029"></a>
<p>Text lines can be centered by using the <code class="code">ce</code> request. The line
after <code class="code">ce</code> is centered (horizontally) on the page. To center more
than one line, use ‘<samp class="samp">.ce <var class="var">N</var></samp>’<!-- /@w --> (where <var class="var">N</var> is the number
of lines to center), followed by the <var class="var">N</var> lines. To center many
lines without counting them, type:
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ce 1000
lines to center
.ce 0
</pre></div></div>
<p>The ‘<samp class="samp">.ce 0</samp>’<!-- /@w --> request tells GNU <code class="code">troff</code> to center zero more
lines, in other words, stop centering.
</p>
<a class="index-entry-id" id="index-right_002daligning-lines-_0028introduction_0029"></a>
<a class="index-entry-id" id="index-lines_002c-right_002daligning-_0028introduction_0029"></a>
<a class="index-entry-id" id="index-right_002djustifying-lines-_0028introduction_0029"></a>
<a class="index-entry-id" id="index-lines_002c-right_002djustifying-_0028introduction_0029"></a>
<p>GNU <code class="code">troff</code> also offers the <code class="code">rj</code> request for right-aligning
text. It works analogously to <code class="code">ce</code> and is convenient for setting
epigraphs.
</p>
<a class="index-entry-id" id="index-page-break-_0028introduction_0029"></a>
<a class="index-entry-id" id="index-break_002c-page-_0028introduction_0029"></a>
<p>The <code class="code">bp</code> request starts a new page; this necessarily implies an
ordinary (line) break.
</p>
<a class="index-entry-id" id="index-break-_0028introduction_0029"></a>
<a class="index-entry-id" id="index-line-break-_0028introduction_0029"></a>
<p>All of these requests cause a break; that is, they always start a new
line. To start a new line without performing any other action, use
<code class="code">br</code>. If you invoke them with the apostrophe ‘<samp class="samp">'</samp>’, the
<i class="slanted">no-break control character</i>, the (initial) break they normally
perform is suppressed. ‘<samp class="samp">'br</samp>’ does nothing.
</p>
<hr>
</div>
<div class="section-level-extent" id="Common-Features">
<div class="nav-panel">
<p>
Previous: <a href="#Basics" accesskey="p" rel="prev">Basics</a>, Up: <a href="#Tutorial-for-Macro-Users" accesskey="u" rel="up">Tutorial for Macro Users</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Common-Features-1">3.2 Common Features</h3>
<a class="index-entry-id" id="index-common-features"></a>
<a class="index-entry-id" id="index-features_002c-common"></a>
<p>GNU <code class="code">troff</code> provides low-level operations for formatting a
document. Many routine operations are undertaken in nearly all
documents that require a series of such primitive operations to be
performed. These common tasks are grouped into <i class="slanted">macros</i>, which
are then collected into a <i class="slanted">macro package</i>.
</p>
<p>Macro packages come in two varieties: “major” or “full-service”
ones that manage page layout, and “minor” or “auxiliary” ones that
do not, instead fulfilling narrow, specific tasks. Find a list in the
<cite class="cite">groff_tmac<span class="r">(5)</span></cite> man page. Type ‘<samp class="samp">man groff_tmac</samp>’ at the
command line to view it.
</p>
<p>We survey several capabilities of full-service macro package below.
Each package employs its own macros to exercise them. For details,
consult its man page or, for <samp class="file">ms</samp>, see <a class="ref" href="#ms"><samp class="file">ms</samp></a>.
</p>
<ul class="mini-toc">
<li><a href="#Paragraphs" accesskey="1">Paragraphs</a></li>
<li><a href="#Sections-and-Chapters" accesskey="2">Sections and Chapters</a></li>
<li><a href="#Headers-and-Footers" accesskey="3">Headers and Footers</a></li>
<li><a href="#Page-Layout-Adjustment" accesskey="4">Page Layout</a></li>
<li><a href="#Displays-and-Keeps" accesskey="5">Displays and Keeps</a></li>
<li><a href="#Footnotes-and-Endnotes" accesskey="6">Footnotes and Endnotes</a></li>
<li><a href="#Table-of-Contents" accesskey="7">Table of Contents</a></li>
<li><a href="#Indexing" accesskey="8">Indexing</a></li>
<li><a href="#Document-Formats" accesskey="9">Document Formats</a></li>
<li><a href="#Columnation">Columnation</a></li>
<li><a href="#Font-and-Size-Changes">Font and Size Changes</a></li>
<li><a href="#Predefined-Text">Predefined Text</a></li>
<li><a href="#Preprocessor-Support">Preprocessor Support</a></li>
<li><a href="#Configuration-and-Customization">Configuration and Customization</a></li>
</ul>
<hr>
<div class="subsection-level-extent" id="Paragraphs">
<div class="nav-panel">
<p>
Next: <a href="#Sections-and-Chapters" accesskey="n" rel="next">Sections and Chapters</a>, Previous: <a href="#Common-Features" accesskey="p" rel="prev">Common Features</a>, Up: <a href="#Common-Features" accesskey="u" rel="up">Common Features</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Paragraphs-1">3.2.1 Paragraphs</h4>
<a class="index-entry-id" id="index-paragraphs"></a>
<p>Paragraphs can be separated and indented in various ways. Some start
with a blank line and have a first-line indentation, like most of the
ones in this manual. Block paragraphs omit the indentation.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted"> ⇒ Some men look at constitutions with sanctimonious
⇒ reverence, and deem them like the ark of the
⇒ covenant, too sacred to be touched.
</pre></div></div>
<a class="index-entry-id" id="index-tags_002c-paragraph"></a>
<a class="index-entry-id" id="index-tagged-paragraphs"></a>
<a class="index-entry-id" id="index-lists"></a>
<p>We also frequently encounter <i class="slanted">tagged</i> paragraphs, which begin
with a tag or label at the left margin and indent the remaining text.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted"> ⇒ one This is the first paragraph. Notice how the
⇒ first line of the resulting paragraph lines
⇒ up with the other lines in the paragraph.
</pre></div></div>
<p>If the tag is too wide for the indentation, the line is broken.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted"> ⇒ longlabel
⇒ The label does not align with the subsequent
⇒ lines, but they align with each other.
</pre></div></div>
<p>A variation of the tagged paragraph is the itemized or enumerated
paragraph, which might use punctuation or a digit for a tag,
respectively. These are frequently used to construct lists.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted"> ⇒ o This list item starts with a bullet. When
⇒ producing output for a device using the ASCII
⇒ character set, an 'o' is formatted instead.
</pre></div></div>
<p>Often, use of the same macro without a tag continues such a discussion.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted"> ⇒ -xyz This option is recognized but ignored.
⇒
⇒ It had a security hole that we don't discuss.
</pre></div></div>
<hr>
</div>
<div class="subsection-level-extent" id="Sections-and-Chapters">
<div class="nav-panel">
<p>
Next: <a href="#Headers-and-Footers" accesskey="n" rel="next">Headers and Footers</a>, Previous: <a href="#Paragraphs" accesskey="p" rel="prev">Paragraphs</a>, Up: <a href="#Common-Features" accesskey="u" rel="up">Common Features</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Sections-and-Chapters-1">3.2.2 Sections and Chapters</h4>
<p>The simplest kind of section heading is unnumbered, set in a bold or
italic style, and occupies a line by itself. Others possess
automatically numbered multi-level headings and/or different typeface
styles or sizes at different levels. More sophisticated macro packages
supply macros for designating chapters and appendices.
</p>
<hr>
</div>
<div class="subsection-level-extent" id="Headers-and-Footers">
<div class="nav-panel">
<p>
Next: <a href="#Page-Layout-Adjustment" accesskey="n" rel="next">Page Layout</a>, Previous: <a href="#Sections-and-Chapters" accesskey="p" rel="prev">Sections and Chapters</a>, Up: <a href="#Common-Features" accesskey="u" rel="up">Common Features</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Headers-and-Footers-1">3.2.3 Headers and Footers</h4>
<p><i class="slanted">Headers</i> and <i class="slanted">footers</i> occupy the top and bottom of
each page, respectively, and contain data like the page number and the
article or chapter title. Their appearance is not affected by the
running text. Some packages allow for different titles on even- and
odd-numbered pages (for printed, bound material).
</p>
<p>Headers and footers are together called <i class="slanted">titles</i>, and comprise
three parts: left-aligned, centered, and right-aligned. A ‘<samp class="samp">%</samp>’
character appearing anywhere in a title is automatically replaced by the
page number. See <a class="xref" href="#Page-Layout">Page Layout</a>.
</p>
<hr>
</div>
<div class="subsection-level-extent" id="Page-Layout-Adjustment">
<div class="nav-panel">
<p>
Next: <a href="#Displays-and-Keeps" accesskey="n" rel="next">Displays and Keeps</a>, Previous: <a href="#Headers-and-Footers" accesskey="p" rel="prev">Headers and Footers</a>, Up: <a href="#Common-Features" accesskey="u" rel="up">Common Features</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Page-Layout-1">3.2.4 Page Layout</h4>
<p>Most macro packages let the user specify the size of the page margins.
The top and bottom margins are typically handled differently than the
left and right margins; the latter two are derived from the
<i class="slanted">page offset</i>, <i class="slanted">indentation</i>, and <i class="slanted">line length</i>.
See <a class="xref" href="#Line-Layout">Line Layout</a>. Commonly, packages support registers to tune these
values.
</p>
<hr>
</div>
<div class="subsection-level-extent" id="Displays-and-Keeps">
<div class="nav-panel">
<p>
Next: <a href="#Footnotes-and-Endnotes" accesskey="n" rel="next">Footnotes and Endnotes</a>, Previous: <a href="#Page-Layout-Adjustment" accesskey="p" rel="prev">Page Layout</a>, Up: <a href="#Common-Features" accesskey="u" rel="up">Common Features</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Displays-and-Keeps-1">3.2.5 Displays and Keeps</h4>
<a class="index-entry-id" id="index-displays"></a>
<p><i class="slanted">Displays</i> are sections of text set off from the surrounding
material (typically paragraphs), often differing in indentation, and/or
spacing. Tables, block quotations, and figures are displayed.
Equations and code examples, when not much shorter than an output line,
often are. Lists may or may not be. Packages for setting man pages
support example displays but not keeps.
</p>
<a class="index-entry-id" id="index-keeps-_0028introduction_0029"></a>
<p>A <i class="slanted">keep</i> is a group of output lines, often a display, that is
formatted on a single page if possible; it causes a page break to happen
early so as to not interrupt the kept material.
</p>
<a class="index-entry-id" id="index-keep_002c-floating"></a>
<a class="index-entry-id" id="index-floating-keep"></a>
<p><i class="slanted">Floating keeps</i> can move, or “float”, relative to the text
around them in the input. They are useful for displays that are
captioned and referred to by name, as with “See figure 3”.
Depending on the package, a floating keep appears at the bottom of the
current page if it fits, and at the top of the next otherwise.
Alternatively, floating keeps might be deferred to the end of a section.
Using a floating keep can avoid the large vertical spaces that may
precede a tall keep of the ordinary sort when it won’t fit on the page.
</p>
<hr>
</div>
<div class="subsection-level-extent" id="Footnotes-and-Endnotes">
<div class="nav-panel">
<p>
Next: <a href="#Table-of-Contents" accesskey="n" rel="next">Table of Contents</a>, Previous: <a href="#Displays-and-Keeps" accesskey="p" rel="prev">Displays and Keeps</a>, Up: <a href="#Common-Features" accesskey="u" rel="up">Common Features</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Footnotes-and-Endnotes-1">3.2.6 Footnotes and Endnotes</h4>
<a class="index-entry-id" id="index-footnotes"></a>
<a class="index-entry-id" id="index-endnotes"></a>
<p><i class="slanted">Footnotes</i> and <i class="slanted">endnotes</i> are forms of delayed
formatting. They are recorded at their points of relevance in
the input, but not formatted there. Instead, a <i class="slanted">mark</i> cues the
reader to check the “foot”, or bottom, of the current page, or in the
case of endnotes, an annotation list later in the document. Macro
packages that support these features also supply a means of
automatically numbering either type of annotation.
</p>
<hr>
</div>
<div class="subsection-level-extent" id="Table-of-Contents">
<div class="nav-panel">
<p>
Next: <a href="#Indexing" accesskey="n" rel="next">Indexing</a>, Previous: <a href="#Footnotes-and-Endnotes" accesskey="p" rel="prev">Footnotes and Endnotes</a>, Up: <a href="#Common-Features" accesskey="u" rel="up">Common Features</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Table-of-Contents-1">3.2.7 Table of Contents</h4>
<a class="index-entry-id" id="index-table-of-contents"></a>
<a class="index-entry-id" id="index-contents_002c-table-of"></a>
<p>A package may handle a <i class="slanted">table of contents</i> by directing section
heading macros to save section heading text and the page number where it
occurs for use in a later <i class="slanted">entry</i> for a table of contents. It
writes the collected entries at the end of the document, once all are
known, upon request. A row of dots (a <i class="slanted">leader</i>) bridges the
text on the left with its location on the right. Other collections
might work in this manner, providing lists of figures or tables.
</p>
<p>A table of contents is often found at the end of a GNU <code class="code">troff</code>
document because the formatter processes the document in a single pass.
The <code class="command">gropdf</code> output driver supports a PDF feature that relocates
pages at the time the document is rendered; see the <cite class="cite">gropdf<span class="r">(1)</span></cite>
man page. Type ‘<samp class="samp">man gropdf</samp>’ at the command line to view it.
</p>
<hr>
</div>
<div class="subsection-level-extent" id="Indexing">
<div class="nav-panel">
<p>
Next: <a href="#Document-Formats" accesskey="n" rel="next">Document Formats</a>, Previous: <a href="#Table-of-Contents" accesskey="p" rel="prev">Table of Contents</a>, Up: <a href="#Common-Features" accesskey="u" rel="up">Common Features</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Indexing-1">3.2.8 Indexing</h4>
<a class="index-entry-id" id="index-index_002c-in-macro-package"></a>
<a class="index-entry-id" id="index-makeindex"></a>
<p>An index is similar to a table of contents, in that entry labels and
locations must be collected, but poses a greater challenge because it
needs to be sorted before it is output. Here, processing the document
in multiple passes is inescapable, and tools like the <code class="code">makeindex</code>
program are necessary.
</p>
<hr>
</div>
<div class="subsection-level-extent" id="Document-Formats">
<div class="nav-panel">
<p>
Next: <a href="#Columnation" accesskey="n" rel="next">Columnation</a>, Previous: <a href="#Indexing" accesskey="p" rel="prev">Indexing</a>, Up: <a href="#Common-Features" accesskey="u" rel="up">Common Features</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Document-Formats-1">3.2.9 Document Formats</h4>
<a class="index-entry-id" id="index-document-formats"></a>
<p>Some macro packages supply stock configurations of certain documents,
like business letters and memoranda. These often also have provision
for a <i class="slanted">cover sheet</i>, which may be rigid in its format. With
these features, it is even more important to use the package’s macros in
preference to the formatter requests presented earlier, where possible.
</p>
<hr>
</div>
<div class="subsection-level-extent" id="Columnation">
<div class="nav-panel">
<p>
Next: <a href="#Font-and-Size-Changes" accesskey="n" rel="next">Font and Size Changes</a>, Previous: <a href="#Document-Formats" accesskey="p" rel="prev">Document Formats</a>, Up: <a href="#Common-Features" accesskey="u" rel="up">Common Features</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Columnation-1">3.2.10 Columnation</h4>
<p>Macro packages apart from <samp class="file">man</samp> and <samp class="file">mdoc</samp> for man page
formatting offer a facility for setting multiple columns on the page.
</p>
<hr>
</div>
<div class="subsection-level-extent" id="Font-and-Size-Changes">
<div class="nav-panel">
<p>
Next: <a href="#Predefined-Text" accesskey="n" rel="next">Predefined Text</a>, Previous: <a href="#Columnation" accesskey="p" rel="prev">Columnation</a>, Up: <a href="#Common-Features" accesskey="u" rel="up">Common Features</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Font-and-Size-Changes-1">3.2.11 Font and Size Changes</h4>
<p>The formatter’s requests and escape sequences for setting the typeface
and size are not always intuitive, so all macro packages provide macros
to make these operations simpler. They also make it more convenient to
change typefaces in the middle of a word and can handle italic
corrections automatically. See <a class="xref" href="#Italic-Corrections">Italic Corrections</a>.
</p>
<hr>
</div>
<div class="subsection-level-extent" id="Predefined-Text">
<div class="nav-panel">
<p>
Next: <a href="#Preprocessor-Support" accesskey="n" rel="next">Preprocessor Support</a>, Previous: <a href="#Font-and-Size-Changes" accesskey="p" rel="prev">Font and Size Changes</a>, Up: <a href="#Common-Features" accesskey="u" rel="up">Common Features</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Predefined-Text-1">3.2.12 Predefined Text</h4>
<p>Most macro packages supply predefined strings to set prepared text like
the date, or to perform operations like super- and subscripting.
</p>
<hr>
</div>
<div class="subsection-level-extent" id="Preprocessor-Support">
<div class="nav-panel">
<p>
Next: <a href="#Configuration-and-Customization" accesskey="n" rel="next">Configuration and Customization</a>, Previous: <a href="#Predefined-Text" accesskey="p" rel="prev">Predefined Text</a>, Up: <a href="#Common-Features" accesskey="u" rel="up">Common Features</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Preprocessor-Support-1">3.2.13 Preprocessor Support</h4>
<p>All macro packages provide support for various preprocessors and may
extend their functionality by defining macros to set their contents in
displays. Examples include <code class="code">TS</code> and <code class="code">TE</code> for <code class="command">gtbl</code>,
<code class="code">EQ</code> and <code class="code">EN</code> for <code class="command">geqn</code>, and <code class="code">PS</code> and <code class="code">PE</code>
for <code class="command">gpic</code>.
</p>
<hr>
</div>
<div class="subsection-level-extent" id="Configuration-and-Customization">
<div class="nav-panel">
<p>
Previous: <a href="#Preprocessor-Support" accesskey="p" rel="prev">Preprocessor Support</a>, Up: <a href="#Common-Features" accesskey="u" rel="up">Common Features</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Configuration-and-Customization-1">3.2.14 Configuration and Customization</h4>
<p>Packages provide means of customizing many of the details of how the
package behaves. These range from setting the default type size to
changing the appearance of section headers.
</p>
<hr>
</div>
</div>
</div>
<div class="chapter-level-extent" id="Major-Macro-Packages">
<div class="nav-panel">
<p>
Next: <a href="#GNU-troff-Reference" accesskey="n" rel="next">GNU <code class="code">troff</code> Reference</a>, Previous: <a href="#Tutorial-for-Macro-Users" accesskey="p" rel="prev">Tutorial for Macro Users</a>, Up: <a href="#Top" accesskey="u" rel="up">GNU <code class="code">troff</code></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h2 class="chapter" id="Macro-Packages-2">4 Macro Packages</h2>
<a class="index-entry-id" id="index-major-macro-package"></a>
<a class="index-entry-id" id="index-package_002c-macro_002c-major"></a>
<a class="index-entry-id" id="index-macro-package_002c-major"></a>
<p>This chapter surveys the “major” macro packages that come with
<code class="code">groff</code>. One, <samp class="file">ms</samp>, is presented in detail.
</p>
<a class="index-entry-id" id="index-full_002dservice-macro-package"></a>
<a class="index-entry-id" id="index-package_002c-macro_002c-full_002dservice"></a>
<a class="index-entry-id" id="index-macro-package_002c-full_002dservice"></a>
<p>Major macro packages are also sometimes described as <em class="dfn">full-service</em>
due to the breadth of features they provide and because more than one
cannot be used by the same document; for example
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">groff -m man foo.man -m ms bar.doc
</pre></div></div>
<p>doesn’t work. Option arguments are processed before non-option
arguments; the above (failing) sample is thus reordered to
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">groff -m man -m ms foo.man bar.doc
</pre></div></div>
<a class="index-entry-id" id="index-minor-macro-package"></a>
<a class="index-entry-id" id="index-package_002c-macro_002c-minor"></a>
<a class="index-entry-id" id="index-macro-package_002c-minor"></a>
<a class="index-entry-id" id="index-auxiliary-macro-package"></a>
<a class="index-entry-id" id="index-package_002c-macro_002c-auxiliary"></a>
<a class="index-entry-id" id="index-macro-package_002c-auxiliary"></a>
<p>Many auxiliary, or “minor”, macro packages are also available. They
may in general be used with any full-service macro package and handle a
variety of tasks from character encoding selection, to language
localization, to inlining of raster images. See the
<cite class="cite">groff_tmac<span class="r">(5)</span></cite> man page for a list. Type ‘<samp class="samp">man
groff_tmac</samp>’ at the command line to view it.
</p>
<ul class="mini-toc">
<li><a href="#man" accesskey="1"><samp class="file">man</samp></a></li>
<li><a href="#mdoc" accesskey="2"><samp class="file">mdoc</samp></a></li>
<li><a href="#me" accesskey="3"><samp class="file">me</samp></a></li>
<li><a href="#mm" accesskey="4"><samp class="file">mm</samp></a></li>
<li><a href="#mom" accesskey="5"><samp class="file">mom</samp></a></li>
<li><a href="#ms" accesskey="6"><samp class="file">ms</samp></a></li>
</ul>
<hr>
<div class="section-level-extent" id="man">
<div class="nav-panel">
<p>
Next: <a href="#mdoc" accesskey="n" rel="next"><samp class="file">mdoc</samp></a>, Previous: <a href="#Major-Macro-Packages" accesskey="p" rel="prev">Macro Packages</a>, Up: <a href="#Major-Macro-Packages" accesskey="u" rel="up">Macro Packages</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="man-1">4.1 <samp class="file">man</samp></h3>
<a class="index-entry-id" id="index-manual-pages"></a>
<a class="index-entry-id" id="index-man-pages"></a>
<a class="index-entry-id" id="index-an_002etmac"></a>
<a class="index-entry-id" id="index-man_002etmac"></a>
<p>The <code class="code">man</code> macro package is the most widely used and probably the
most important ever developed for <code class="code">troff</code>. It is easy to use, and
a vast majority of manual pages (“man pages”) are written in it.
</p>
<p><code class="code">groff</code>’s implementation is documented in the
<cite class="cite">groff_man<span class="r">(7)</span></cite> man page. Type ‘<samp class="samp">man groff_man</samp>’ at the
command line to view it.
</p>
<ul class="mini-toc">
<li><a href="#Optional-man-extensions" accesskey="1">Optional <samp class="file">man</samp> extensions</a></li>
</ul>
<hr>
<div class="subsection-level-extent" id="Optional-man-extensions">
<div class="nav-panel">
<p>
Up: <a href="#man" accesskey="u" rel="up"><samp class="file">man</samp></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Optional-man-extensions-1">4.1.1 Optional <samp class="file">man</samp> extensions</h4>
<a class="index-entry-id" id="index-man_002elocal"></a>
<p>Use the file <samp class="file">man.local</samp> for local extensions to the <code class="code">man</code>
macros or for style changes.
</p>
<ul class="mini-toc">
<li><a href="#Custom-headers-and-footers" accesskey="1">Custom headers and footers</a></li>
<li><a href="#Ultrix_002dspecific-man-macros" accesskey="2">Ultrix-specific man macros</a></li>
<li><a href="#Simple-example" accesskey="3">Simple example</a></li>
</ul>
<div class="unnumberedsubsubsec-level-extent" id="Custom-headers-and-footers">
<h4 class="unnumberedsubsubsec">Custom headers and footers</h4>
<a class="index-entry-id" id="index-man-macros_002c-custom-headers-and-footers"></a>
<p>In <code class="code">groff</code> versions 1.18.2 and later, you can specify custom
headers and footers by redefining the following macros in
<samp class="file">man.local</samp>.
</p>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002ePT"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.PT</code></strong><a class="copiable-link" href='#index-_002ePT'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-PT-_005bman_005d"></a>
<p>Control the content of the headers. Normally, the header prints the
command name and section number on either side, and the optional fifth
argument to <code class="code">TH</code> in the center.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eBT"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.BT</code></strong><a class="copiable-link" href='#index-_002eBT'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-BT-_005bman_005d"></a>
<p>Control the content of the footers. Normally, the footer prints the
page number and the third and fourth arguments to <code class="code">TH</code>.
</p>
<p>Use the <code class="code">FT</code> register to specify the footer position. The default
is −0.5<span class="dmn">i</span>.
</p></dd></dl>
</div>
<div class="unnumberedsubsubsec-level-extent" id="Ultrix_002dspecific-man-macros">
<h4 class="unnumberedsubsubsec">Ultrix-specific man macros</h4>
<a class="index-entry-id" id="index-Ultrix_002dspecific-man-macros"></a>
<a class="index-entry-id" id="index-man-macros_002c-Ultrix_002dspecific"></a>
<a class="index-entry-id" id="index-man_002eultrix"></a>
<p>The <code class="code">groff</code> source distribution includes a file named
<samp class="file">man.ultrix</samp>, containing macros compatible with the Ultrix variant
of <code class="code">man</code>. Copy this file into <samp class="file">man.local</samp> (or use the
<code class="code">mso</code> request to load it) to enable the following macros.
</p>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eCT"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.CT</code></strong> <var class="def-var-arguments"><span class="r"><i class="slanted">key</i></span></var><a class="copiable-link" href='#index-_002eCT'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-CT-_005bman_005d"></a>
<p>Print ‘<samp class="samp"><CTRL/<var class="var">key</var>></samp>’.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eCW"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.CW</code></strong><a class="copiable-link" href='#index-_002eCW'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-CW-_005bman_005d"></a>
<p>Print subsequent text using a “constant-width” (monospaced) typeface
(Courier roman).
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eDs"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.Ds</code></strong><a class="copiable-link" href='#index-_002eDs'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-Ds-_005bman_005d"></a>
<p>Begin a non-filled display.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eDe"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.De</code></strong><a class="copiable-link" href='#index-_002eDe'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-De-_005bman_005d"></a>
<p>End a non-filled display started with <code class="code">Ds</code>.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eEX"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.EX</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">indent</i></span>]</var><a class="copiable-link" href='#index-_002eEX'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-EX-_005bman_005d"></a>
<p>Begin a non-filled display using a monospaced typeface (Courier roman).
Use the optional <var class="var">indent</var> argument to indent the display.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eEE"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.EE</code></strong><a class="copiable-link" href='#index-_002eEE'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-EE-_005bman_005d"></a>
<p>End a non-filled display started with <code class="code">EX</code>.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eG"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.G</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">text</i></span>]</var><a class="copiable-link" href='#index-_002eG'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-G-_005bman_005d"></a>
<p>Set <var class="var">text</var> in Helvetica. If no text is present on the line where
the macro is called, then the text of the next line appears in
Helvetica.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eGL"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.GL</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">text</i></span>]</var><a class="copiable-link" href='#index-_002eGL'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-GL-_005bman_005d"></a>
<p>Set <var class="var">text</var> in Helvetica oblique. If no text is present on the line
where the macro is called, then the text of the next line appears in
Helvetica Oblique.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eHB"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.HB</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">text</i></span>]</var><a class="copiable-link" href='#index-_002eHB'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-HB-_005bman_005d"></a>
<p>Set <var class="var">text</var> in Helvetica bold. If no text is present on the line
where the macro is called, then all text up to the next <code class="code">HB</code>
appears in Helvetica bold.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eTB"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.TB</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">text</i></span>]</var><a class="copiable-link" href='#index-_002eTB'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-TB-_005bman_005d"></a>
<p>Identical to <code class="code">HB</code>.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eMS"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.MS</code></strong> <var class="def-var-arguments"><span class="r"><i class="slanted">title</i></span> <span class="r"><i class="slanted">sect</i></span> [<span class="r"><i class="slanted">punct</i></span>]</var><a class="copiable-link" href='#index-_002eMS'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-MS-_005bman_005d"></a>
<p>Set a man page reference in Ultrix format. The <var class="var">title</var> is in
Courier instead of italic. Optional punctuation follows the section
number without an intervening space.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eNT"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.NT</code></strong> <var class="def-var-arguments">[<code class="code">C</code>] [<span class="r"><i class="slanted">title</i></span>]</var><a class="copiable-link" href='#index-_002eNT'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-NT-_005bman_005d"></a>
<p>Begin a note. Print the optional <span class="r"><i class="slanted">title</i></span>, or the word “Note”,
centered on the page. Text following the macro makes up the body of the
note, and is indented on both sides. If the first argument is <code class="code">C</code>,
the body of the note is printed centered (the second argument replaces
the word “Note” if specified).
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eNE"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.NE</code></strong><a class="copiable-link" href='#index-_002eNE'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-NE-_005bman_005d"></a>
<p>End a note begun with <code class="code">NT</code>.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002ePN"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.PN</code></strong> <var class="def-var-arguments"><span class="r"><i class="slanted">path</i></span> [<span class="r"><i class="slanted">punct</i></span>]</var><a class="copiable-link" href='#index-_002ePN'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-PN-_005bman_005d"></a>
<p>Set the path name in a monospaced typeface (Courier roman), followed by
optional punctuation.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002ePn"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.Pn</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">punct</i></span>] <span class="r"><i class="slanted">path</i></span> [<span class="r"><i class="slanted">punct</i></span>]</var><a class="copiable-link" href='#index-_002ePn'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-Pn-_005bman_005d"></a>
<p>If called with two arguments, identical to <code class="code">PN</code>. If called with
three arguments, set the second argument in a monospaced typeface
(Courier roman), bracketed by the first and third arguments in the
current font.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eR"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.R</code></strong><a class="copiable-link" href='#index-_002eR'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-R-_005bman_005d"></a>
<p>Switch to roman font and turn off any underlining in effect.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eRN"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.RN</code></strong><a class="copiable-link" href='#index-_002eRN'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-RN-_005bman_005d"></a>
<p>Print the string ‘<samp class="samp"><RETURN></samp>’.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eVS"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.VS</code></strong> <var class="def-var-arguments">[<code class="code">4</code>]</var><a class="copiable-link" href='#index-_002eVS'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-VS-_005bman_005d"></a>
<p>Start printing a change bar in the margin if the number <code class="code">4</code> is
specified. Otherwise, this macro does nothing.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eVE"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.VE</code></strong><a class="copiable-link" href='#index-_002eVE'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-VE-_005bman_005d"></a>
<p>End printing the change bar begun by <code class="code">VS</code>.
</p></dd></dl>
</div>
<div class="unnumberedsubsubsec-level-extent" id="Simple-example">
<h4 class="unnumberedsubsubsec">Simple example</h4>
<p>The following example <samp class="file">man.local</samp> file alters the <code class="code">SH</code> macro
to add some extra vertical space before printing the heading. Headings
are printed in Helvetica bold.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.\" Make the heading fonts Helvetica
.ds HF HB
.
.\" Put more space in front of headings.
.rn SH SH-orig
.de SH
. if t .sp (u;\\n[PD]*2)
. SH-orig \\$*
..
</pre></div></div>
<hr>
</div>
</div>
</div>
<div class="section-level-extent" id="mdoc">
<div class="nav-panel">
<p>
Next: <a href="#me" accesskey="n" rel="next"><samp class="file">me</samp></a>, Previous: <a href="#man" accesskey="p" rel="prev"><samp class="file">man</samp></a>, Up: <a href="#Major-Macro-Packages" accesskey="u" rel="up">Macro Packages</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="mdoc-1">4.2 <samp class="file">mdoc</samp></h3>
<a class="index-entry-id" id="index-mdoc-macros"></a>
<p><code class="code">groff</code>’s implementation of the BSD <samp class="file">doc</samp> package for man
pages is documented in the <cite class="cite">groff_mdoc<span class="r">(7)</span></cite> man page. Type
‘<samp class="samp">man groff_mdoc</samp>’ at the command line to view it.
</p>
<hr>
</div>
<div class="section-level-extent" id="me">
<div class="nav-panel">
<p>
Next: <a href="#mm" accesskey="n" rel="next"><samp class="file">mm</samp></a>, Previous: <a href="#mdoc" accesskey="p" rel="prev"><samp class="file">mdoc</samp></a>, Up: <a href="#Major-Macro-Packages" accesskey="u" rel="up">Macro Packages</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="me-1">4.3 <samp class="file">me</samp></h3>
<a class="index-entry-id" id="index-me-macro-package"></a>
<p><code class="code">groff</code>’s implementation of the BSD <samp class="file">me</samp> macro package is
documented using itself. A tutorial, <samp class="file">meintro.me</samp>, and reference,
<samp class="file">meref.me</samp>, are available in <code class="code">groff</code>’s documentation
directory. A <cite class="cite">groff_me<span class="r">(7)</span></cite> man page is also available and
identifies the installation path for these documents. Type ‘<samp class="samp">man
groff_me</samp>’ at the command line to view it.
</p>
<p>A French translation of the tutorial is available as
<samp class="file">meintro_fr.me</samp> and installed parallel to the English version.
</p>
<hr>
</div>
<div class="section-level-extent" id="mm">
<div class="nav-panel">
<p>
Next: <a href="#mom" accesskey="n" rel="next"><samp class="file">mom</samp></a>, Previous: <a href="#me" accesskey="p" rel="prev"><samp class="file">me</samp></a>, Up: <a href="#Major-Macro-Packages" accesskey="u" rel="up">Macro Packages</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="mm-1">4.4 <samp class="file">mm</samp></h3>
<a class="index-entry-id" id="index-mm-macro-package"></a>
<p><code class="code">groff</code>’s implementation of the <abbr class="acronym">AT&T</abbr> memorandum macro
package is documented in the <cite class="cite">groff_mm<span class="r">(7)</span></cite> man page. Type
‘<samp class="samp">man groff_mm</samp>’ at the command line) to view it.
</p>
<p>A Swedish localization of <samp class="file">mm</samp> is also available; see
<cite class="cite">groff_mmse<span class="r">(7)</span></cite>.
</p>
<hr>
</div>
<div class="section-level-extent" id="mom">
<div class="nav-panel">
<p>
Next: <a href="#ms" accesskey="n" rel="next"><samp class="file">ms</samp></a>, Previous: <a href="#mm" accesskey="p" rel="prev"><samp class="file">mm</samp></a>, Up: <a href="#Major-Macro-Packages" accesskey="u" rel="up">Macro Packages</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="mom-1">4.5 <samp class="file">mom</samp></h3>
<a class="index-entry-id" id="index-mom-macro-package"></a>
<p>The main documentation files for the <samp class="file">mom</samp> macros are in
<abbr class="acronym">HTML</abbr> format. Additional, useful documentation is in
<abbr class="acronym">PDF</abbr> format. See the <cite class="cite">groff<span class="r">(1)</span></cite> man page, section
“Installation Directories”, for their location.
</p>
<ul class="itemize mark-bullet">
<li><samp class="file">toc.html</samp>
Entry point to the full mom manual.
</li><li><samp class="file">macrolist.html</samp>
Hyperlinked index of macros with brief descriptions, arranged by
category.
</li><li><samp class="file">mom-pdf.pdf</samp>
<abbr class="acronym">PDF</abbr> features and usage.
</li></ul>
<p>The mom macros are in active development between <code class="code">groff</code> releases.
The most recent version, along with up-to-date documentation, is
available at <a class="uref" href="http://www.schaffter.ca/mom/mom-05.html">http://www.schaffter.ca/mom/mom-05.html</a>.
</p>
<p>The <cite class="cite">groff_mom<span class="r">(7)</span></cite> man page (type ‘<samp class="samp">man groff_mom</samp>’ at
the command line) contains a partial list of available macros, however
their usage is best understood by consulting the <abbr class="acronym">HTML</abbr>
documentation.
</p>
<hr>
</div>
<div class="section-level-extent" id="ms">
<div class="nav-panel">
<p>
Previous: <a href="#mom" accesskey="p" rel="prev"><samp class="file">mom</samp></a>, Up: <a href="#Major-Macro-Packages" accesskey="u" rel="up">Macro Packages</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="ms-1">4.6 <samp class="file">ms</samp></h3>
<a class="index-entry-id" id="index-ms-macros"></a>
<p>The <samp class="file">ms</samp> (“manuscript”) package is suitable for the preparation
of letters, memoranda, reports, and books. These <code class="code">groff</code>
macros feature cover page and table of contents generation,
automatically numbered headings, several paragraph styles, a variety of
text styling options, footnotes, and multi-column page layouts.
<samp class="file">ms</samp> supports the <code class="command">tbl</code>, <code class="command">eqn</code>, <code class="command">pic</code>, and
<code class="command">refer</code> preprocessors for inclusion of tables, mathematical
equations, diagrams, and standardized bibliographic citations. This
implementation is mostly compatible with the documented interface and
behavior of AT&T Unix Version 7 <samp class="file">ms</samp>. Many extensions from
4.2BSD (Berkeley)
and Tenth Edition Research Unix have been recreated.
</p>
<ul class="mini-toc">
<li><a href="#ms-Introduction" accesskey="1">Introduction</a></li>
<li><a href="#ms-Document-Structure" accesskey="2">Document Structure</a></li>
<li><a href="#ms-Document-Control-Settings" accesskey="3">Document Control Settings</a></li>
<li><a href="#ms-Document-Description-Macros" accesskey="4">Document Description Macros</a></li>
<li><a href="#ms-Body-Text" accesskey="5">Body Text</a></li>
<li><a href="#ms-Page-Layout" accesskey="6">Page layout</a></li>
<li><a href="#Differences-from-AT_0026T-ms" accesskey="7">Differences from <abbr class="acronym">AT&T</abbr> <samp class="file">ms</samp></a></li>
<li><a href="#ms-Legacy-Features" accesskey="8">Legacy Features</a></li>
<li><a href="#ms-Naming-Conventions" accesskey="9">Naming Conventions</a></li>
</ul>
<hr>
<div class="subsection-level-extent" id="ms-Introduction">
<div class="nav-panel">
<p>
Next: <a href="#ms-Document-Structure" accesskey="n" rel="next">Document Structure</a>, Previous: <a href="#ms" accesskey="p" rel="prev"><samp class="file">ms</samp></a>, Up: <a href="#ms" accesskey="u" rel="up"><samp class="file">ms</samp></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Introduction-2">4.6.1 Introduction</h4>
<p>The <samp class="file">ms</samp> macros are the oldest surviving package for <code class="code">roff</code>
systems.<a class="footnote" id="DOCF7" href="#FOOT7"><sup>7</sup></a> While the <samp class="file">man</samp>
package was designed for brief reference documents, the <samp class="file">ms</samp> macros
are also suitable for longer works intended for printing and possible
publication.
</p>
<ul class="mini-toc">
<li><a href="#ms-basic-information" accesskey="1">Basic information</a></li>
</ul>
<hr>
<div class="subsubsection-level-extent" id="ms-basic-information">
<div class="nav-panel">
<p>
Next: <a href="#ms-Document-Structure" accesskey="n" rel="next">Document Structure</a>, Previous: <a href="#ms-Introduction" accesskey="p" rel="prev">Introduction</a>, Up: <a href="#ms-Introduction" accesskey="u" rel="up">Introduction</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsubsection" id="Basic-information">4.6.1.1 Basic information</h4>
<p><samp class="file">ms</samp> documents are plain text files; prepare them with your
preferred text editor. If you’re in a hurry to start, know that
<samp class="file">ms</samp> needs one of its macros called at the beginning of a document
so that it can initialize. A <em class="dfn">macro</em> is a formatting instruction to
<samp class="file">ms</samp>. Put a macro call on a line by itself. Use ‘<samp class="samp">.PP</samp>’ if you
want your paragraph’s first line to be indented, or ‘<samp class="samp">.LP</samp>’ if you
don’t.
</p>
<p>After that, start typing normally. It is a good practice to start each
sentence on a new line, or to put two spaces after sentence-ending
punctuation, so that the formatter knows where the sentence boundaries
are. You can separate paragraphs with further paragraphing macros, or
with blank lines, and you can indent with tabs. When you need one of
the features mentioned earlier (see <a class="pxref" href="#ms"><samp class="file">ms</samp></a>), return to this part of the
manual.
</p>
<p>Format the document with the <code class="command">groff</code> command. <code class="command">nroff</code>
can be useful for previewing.
</p>
<table class="cartouche" border="1"><tr><td>
<div class="example">
<pre class="example-preformatted">$ editor radical.ms
$ nroff -ww -z -ms radical.ms # check for errors
$ nroff -ms radical.ms | less -R
$ groff -T ps -ms radical.ms > radical.ps
$ see radical.ps
</pre></div>
</td></tr></table>
<p>Our <samp class="file">radical.ms</samp> document might look like this.
</p>
<table class="cartouche" border="1"><tr><td>
<div class="example">
<pre class="example-preformatted">.LP
Radical novelties are so disturbing that they tend to be
suppressed or ignored, to the extent that even the
possibility of their existence in general is more often
denied than admitted.
→That's what Dijkstra said, anyway.
</pre></div>
</td></tr></table>
<p><samp class="file">ms</samp> exposes many aspects of document layout to user control via
<code class="code">groff</code>’s <em class="dfn">registers</em> and <em class="dfn">strings</em>, which store numbers
and text, respectively. Measurements in <code class="code">groff</code> are expressed with
a suffix called a <em class="dfn">scaling unit</em>.
</p>
<dl class="table">
<dt><code class="code">i</code></dt>
<dd><p>inches
</p>
</dd>
<dt><code class="code">c</code></dt>
<dd><p>centimeters
</p>
</dd>
<dt><code class="code">p</code></dt>
<dd><p>points (1/72 inch)
</p>
</dd>
<dt><code class="code">P</code></dt>
<dd><p>picas (1/6 inch)
</p>
</dd>
<dt><code class="code">v</code></dt>
<dd><p>vees; current vertical spacing
</p>
</dd>
<dt><code class="code">m</code></dt>
<dd><p>ems; width of an “M” in the current font
</p>
</dd>
<dt><code class="code">n</code></dt>
<dd><p>ens; one-half em
</p></dd>
</dl>
<p>Set registers with the <code class="code">nr</code> request and strings with the <code class="code">ds</code>
request. <em class="dfn">Requests</em> are like macro calls; they go on lines by
themselves and start with the <em class="dfn">control character</em>, a dot (<code class="code">.</code>).
The difference is that they directly instruct the formatter program,
rather than the macro package. We’ll discuss a few as applicable. It
is wise to specify a scaling unit when setting any register that
represents a length, size, or distance.
</p>
<table class="cartouche" border="1"><tr><td>
<div class="example">
<pre class="example-preformatted">.nr PS 10.5p \" Use 10.5-point type.
.ds FAM P \" Use Palatino font family.
</pre></div>
</td></tr></table>
<p>In the foregoing, we see that <code class="code">\"</code> begins a comment. This is an
example of an <em class="dfn">escape sequence</em>, the other kind of formatting
instruction. Escape sequences can appear anywhere. They begin with the
escape character (<code class="code">\</code>) and are followed by at least one more
character. <samp class="file">ms</samp> documents
tend to use only a few of <code class="code">groff</code>’s many requests and escape
sequences; see <a class="ref" href="#Request-Index">Request Index</a> and <a class="ref" href="#Escape-Sequence-Index">Escape Sequence Index</a> or
the <cite class="cite">groff<span class="r">(7)</span></cite> man page for complete lists.
</p>
<dl class="table">
<dt><code class="code">\"</code></dt>
<dd><p>Begin comment; ignore remainder of line.
</p>
</dd>
<dt><code class="code">\n[<var class="var">reg</var>]</code></dt>
<dd><p>Interpolate value of register <var class="var">reg</var>.
</p>
</dd>
<dt><code class="code">\*[<var class="var">str</var>]</code></dt>
<dd><p>Interpolate contents of string <var class="var">str</var>.
</p>
</dd>
<dt><code class="code">\*<var class="var">s</var></code></dt>
<dd><p>abbreviation of <code class="code">\*[<var class="var">s</var>]</code>; the name <var class="var">s</var> must be only one
character
</p>
</dd>
<dt><code class="code">\[<var class="var">char</var>]</code></dt>
<dd><p>Interpolate glyph of special character named <var class="var">char</var>.
</p>
</dd>
<dt><code class="code">\&</code></dt>
<dd><p>dummy character
</p>
</dd>
<dt><code class="code">\~</code></dt>
<dd><p>Insert an unbreakable space that is adjustable like a normal space.
</p>
</dd>
<dt><code class="code">\|</code></dt>
<dd><p>Move horizontally by one-sixth em (“thin space”).
</p></dd>
</dl>
<p>Prefix any words that start with a dot ‘<samp class="samp">.</samp>’ or neutral apostrophe
‘<samp class="samp">'</samp>’ with <code class="code">\&</code> if they are at the beginning of an input line
(or might become that way in editing) to prevent them from being
interpreted as macro calls or requests. Suffix ‘<samp class="samp">.</samp>’, ‘<samp class="samp">?</samp>’, and
‘<samp class="samp">!</samp>’ with <code class="code">\&</code> when needed to cancel end-of-sentence detection.
</p>
<table class="cartouche" border="1"><tr><td>
<div class="example">
<pre class="example-preformatted">My exposure was \&.5 to \&.6 Sv of neutrons, said Dr.\&
Wallace after the criticality incident.
</pre></div>
</td></tr></table>
<hr>
</div>
</div>
<div class="subsection-level-extent" id="ms-Document-Structure">
<div class="nav-panel">
<p>
Next: <a href="#ms-Document-Control-Settings" accesskey="n" rel="next">Document Control Settings</a>, Previous: <a href="#ms-Introduction" accesskey="p" rel="prev">Introduction</a>, Up: <a href="#ms" accesskey="u" rel="up"><samp class="file">ms</samp></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Document-Structure">4.6.2 Document Structure</h4>
<a class="index-entry-id" id="index-ms-macros_002c-general-structure"></a>
<p>The <samp class="file">ms</samp> macro package expects a certain amount of structure:
a well-formed document contains at least one paragraphing or heading
macro call. Longer documents have a structure as follows.
</p>
<dl class="table">
<dt><strong class="strong">Document type</strong></dt>
<dd><p>Calling the <code class="code">RP</code> macro at the beginning of your document puts the
document description (see below) on a cover page. Otherwise, <samp class="file">ms</samp>
places the information (if any) on the first page, followed immediately
by the body text. Some document types found in other <samp class="file">ms</samp>
implementations are specific to <abbr class="acronym">AT&T</abbr> or Berkeley, and are not
supported by <code class="code">groff</code> <samp class="file">ms</samp>.
</p>
</dd>
<dt><strong class="strong">Format and layout</strong></dt>
<dd><p>By setting registers and strings, you can configure your document’s
typeface, margins, spacing, headers and footers, and footnote
arrangement. See <a class="xref" href="#ms-Document-Control-Settings">Document Control Settings</a>.
</p>
</dd>
<dt><strong class="strong">Document description</strong></dt>
<dd><p>A document description consists of any of: a title, one or more authors’
names and affiliated institutions, an abstract, and a date or other
identifier. See <a class="xref" href="#ms-Document-Description-Macros">Document Description Macros</a>.
</p>
</dd>
<dt><strong class="strong">Body text</strong></dt>
<dd><p>The main matter of your document follows its description (if any).
<samp class="file">ms</samp> supports highly structured text consisting of paragraphs
interspersed with multi-level headings (chapters, sections, subsections,
and so forth) and augmented by lists, footnotes, tables, diagrams, and
similar material. See <a class="xref" href="#ms-Body-Text">Body Text</a>.
</p>
</dd>
<dt><strong class="strong">Tables of contents</strong></dt>
<dd><p>Macros enable the collection of entries for a table of contents (or
index) as the material they discuss appears in the document. You then
call a macro to emit the table of contents at the end of your document.
The table of contents must necessarily follow the rest of the text since
GNU <code class="code">troff</code> is a single-pass formatter; it thus cannot determine
the page number of a division of the text until it has been set and
output. Since <samp class="file">ms</samp> was designed for the production of hard copy,
the traditional procedure was to manually relocate the pages containing
the table of contents between the cover page and the body text. Today,
page resequencing is more often done in the digital domain. An index
works similarly, but because it typically needs to be sorted after
collection, its preparation requires separate processing.
</p></dd>
</dl>
<hr>
</div>
<div class="subsection-level-extent" id="ms-Document-Control-Settings">
<div class="nav-panel">
<p>
Next: <a href="#ms-Document-Description-Macros" accesskey="n" rel="next">Document Description Macros</a>, Previous: <a href="#ms-Document-Structure" accesskey="p" rel="prev">Document Structure</a>, Up: <a href="#ms" accesskey="u" rel="up"><samp class="file">ms</samp></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Document-Control-Settings">4.6.3 Document Control Settings</h4>
<a class="index-entry-id" id="index-ms-macros_002c-document-control-settings"></a>
<p><samp class="file">ms</samp> exposes many aspects of document layout to user control via
<code class="code">groff</code> requests. To use them, you must understand how to define
registers and strings.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002enr"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.nr</code></strong> <var class="def-var-arguments">reg value</var><a class="copiable-link" href='#index-_002enr'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-nr"></a>
<p>Set register <var class="var">reg</var> to <var class="var">value</var>. If <var class="var">reg</var> doesn’t exist, GNU
<code class="code">troff</code> creates it.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eds"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ds</code></strong> <var class="def-var-arguments">name contents</var><a class="copiable-link" href='#index-_002eds'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ds"></a>
<p>Set string <var class="var">name</var> to <var class="var">contents</var>.
</p></dd></dl>
<p>A list of document control registers and strings follows. For any
parameter whose default is unsatisfactory, define its register or string
before calling any <samp class="file">ms</samp> macro other than <code class="code">RP</code>.
</p>
<ul class="mini-toc">
<li><a href="#Margin-settings" accesskey="1">Margin settings</a></li>
<li><a href="#Titles-_0028headers_002c-footers_0029" accesskey="2">Titles (headers, footers)</a></li>
<li><a href="#Text-settings" accesskey="3">Text settings</a></li>
<li><a href="#Paragraph-settings" accesskey="4">Paragraph settings</a></li>
<li><a href="#Heading-settings" accesskey="5">Heading settings</a></li>
<li><a href="#Footnote-settings" accesskey="6">Footnote settings</a></li>
<li><a href="#Display-settings" accesskey="7">Display settings</a></li>
<li><a href="#Other-settings" accesskey="8">Other settings</a></li>
</ul>
<div class="unnumberedsubsubsec-level-extent" id="Margin-settings">
<h4 class="unnumberedsubsubsec">Margin settings</h4>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005bPO_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[PO]</code></strong><a class="copiable-link" href='#index-_005cn_005bPO_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-PO-_005bms_005d"></a>
<p>Defines the page offset (i.e., the left margin).
</p>
<p>Effective: next page.
</p>
<p>Default: Varies by output device and paper format; 1<span class="dmn">i</span> is used for
typesetters using U.S. letter paper, and zero for terminals.
See <a class="xref" href="#Paper-Format">Paper Format</a>.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005bLL_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[LL]</code></strong><a class="copiable-link" href='#index-_005cn_005bLL_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-LL-_005bms_005d"></a>
<p>Defines the line length (i.e., the width of the body text).
</p>
<p>Effective: next paragraph.
</p>
<p>Default: Varies by output device and paper format; 6.5<span class="dmn">i</span> is used
for typesetters using U.S. letter paper (see <a class="pxref" href="#Paper-Format">Paper Format</a>) and
65<span class="dmn">n</span> on terminals.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005bLT_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[LT]</code></strong><a class="copiable-link" href='#index-_005cn_005bLT_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-LT-_005bms_005d"></a>
<p>Defines the title line length (i.e., the header and footer width). This
is usually the same as <code class="code">LL</code>, but need not be.
</p>
<p>Effective: next paragraph.
</p>
<p>Default: Varies by output device and paper format; 6.5<span class="dmn">i</span> is used
for typesetters using U.S. letter paper (see <a class="pxref" href="#Paper-Format">Paper Format</a>) and
65<span class="dmn">n</span> on terminals.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005bHM_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[HM]</code></strong><a class="copiable-link" href='#index-_005cn_005bHM_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-HM-_005bms_005d"></a>
<p>Defines the header margin height at the top of the page.
</p>
<p>Effective: next page.
</p>
<p>Default: 1<span class="dmn">i</span>.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005bFM_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[FM]</code></strong><a class="copiable-link" href='#index-_005cn_005bFM_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-FM-_005bms_005d"></a>
<p>Defines the footer margin height at the bottom of the page.
</p>
<p>Effective: next page.
</p>
<p>Default: 1<span class="dmn">i</span>.
</p></dd></dl>
</div>
<div class="unnumberedsubsubsec-level-extent" id="Titles-_0028headers_002c-footers_0029">
<h4 class="unnumberedsubsubsec">Titles (headers, footers)</h4>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005bLH_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[LH]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bLH_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-LH-_005bms_005d"></a>
<p>Defines the text displayed in the left header position.
</p>
<p>Effective: next header.
</p>
<p>Default: empty.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005bCH_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[CH]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bCH_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-CH-_005bms_005d"></a>
<p>Defines the text displayed in the center header position.
</p>
<p>Effective: next header.
</p>
<p>Default: ‘<samp class="samp">-\n[%]-</samp>’.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005bRH_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[RH]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bRH_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-RH-_005bms_005d"></a>
<p>Defines the text displayed in the right header position.
</p>
<p>Effective: next header.
</p>
<p>Default: empty.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005bLF_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[LF]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bLF_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-LF-_005bms_005d"></a>
<p>Defines the text displayed in the left footer position.
</p>
<p>Effective: next footer.
</p>
<p>Default: empty.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005bCF_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[CF]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bCF_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-CF-_005bms_005d"></a>
<p>Defines the text displayed in the center footer position.
</p>
<p>Effective: next footer.
</p>
<p>Default: empty.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005bRF_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[RF]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bRF_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-RF-_005bms_005d"></a>
<p>Defines the text displayed in the right footer position.
</p>
<p>Effective: next footer.
</p>
<p>Default: empty.
</p></dd></dl>
</div>
<div class="unnumberedsubsubsec-level-extent" id="Text-settings">
<h4 class="unnumberedsubsubsec">Text settings</h4>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005bPS_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[PS]</code></strong><a class="copiable-link" href='#index-_005cn_005bPS_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-PS-_005bms_005d-1"></a>
<p>Defines the type size of the body text.
</p>
<p>Effective: next paragraph.
</p>
<p>Default: 10<span class="dmn">p</span>.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005bVS_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[VS]</code></strong><a class="copiable-link" href='#index-_005cn_005bVS_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-VS-_005bms_005d"></a>
<p>Defines the vertical spacing (type size plus leading).
</p>
<p>Effective: next paragraph.
</p>
<p>Default: 12<span class="dmn">p</span>.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005bHY_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[HY]</code></strong><a class="copiable-link" href='#index-_005cn_005bHY_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-HY-_005bms_005d"></a>
<p>Defines the automatic hyphenation mode used with the <code class="code">hy</code> request.
Setting <code class="code">HY</code> to 0 is equivalent to using the <code class="code">nh</code>
request. This is a Tenth Edition Research Unix extension.
</p>
<p>Effective: next paragraph.
</p>
<p>Default: 6.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005bFAM_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[FAM]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bFAM_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-FAM-_005bms_005d"></a>
<p>Defines the font family used to typeset the document. This is a GNU
extension.
</p>
<p>Effective: next paragraph.
</p>
<p>Default: defined by the output device; often ‘<samp class="samp">T</samp>’ (see <a class="pxref" href="#ms-Body-Text">Body Text</a>)
</p></dd></dl>
</div>
<div class="unnumberedsubsubsec-level-extent" id="Paragraph-settings">
<h4 class="unnumberedsubsubsec">Paragraph settings</h4>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005bPI_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[PI]</code></strong><a class="copiable-link" href='#index-_005cn_005bPI_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-PI-_005bms_005d"></a>
<p>Defines the indentation amount used by the <code class="code">PP</code>, <code class="code">IP</code> (unless
overridden by an optional argument), <code class="code">XP</code>, and <code class="code">RS</code> macros.
</p>
<p>Effective: next paragraph.
</p>
<p>Default: 5<span class="dmn">n</span>.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005bPD_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[PD]</code></strong><a class="copiable-link" href='#index-_005cn_005bPD_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-PD-_005bms_005d"></a>
<p>Defines the space between paragraphs.
</p>
<p>Effective: next paragraph.
</p>
<p>Default: 0.3<span class="dmn">v</span> (1<span class="dmn">v</span> on low-resolution devices).
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005bQI_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[QI]</code></strong><a class="copiable-link" href='#index-_005cn_005bQI_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-QI-_005bms_005d"></a>
<p>Defines the indentation amount used on both sides of a paragraph set
with the <code class="code">QP</code> or between the <code class="code">QS</code> and <code class="code">QE</code> macros.
</p>
<p>Effective: next paragraph.
</p>
<p>Default: 5<span class="dmn">n</span>.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005bPORPHANS_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[PORPHANS]</code></strong><a class="copiable-link" href='#index-_005cn_005bPORPHANS_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-PORPHANS-_005bms_005d"></a>
<p>Defines the minimum number of initial lines of any paragraph that must
be kept together to avoid isolated lines at the bottom of a page. If a
new paragraph is started close to the bottom of a page, and there is
insufficient space to accommodate <code class="code">PORPHANS</code> lines before an
automatic page break, then a page break is forced before the start of
the paragraph. This is a GNU extension.
</p>
<p>Effective: next paragraph.
</p>
<p>Default: 1.
</p></dd></dl>
</div>
<div class="unnumberedsubsubsec-level-extent" id="Heading-settings">
<h4 class="unnumberedsubsubsec">Heading settings</h4>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005bPSINCR_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[PSINCR]</code></strong><a class="copiable-link" href='#index-_005cn_005bPSINCR_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-PSINCR-_005bms_005d"></a>
<p>Defines an increment in type size to be applied to a heading at a
lesser depth than that specified in <code class="code">GROWPS</code>. The value of
<code class="code">PSINCR</code> should be specified in points with the <span class="dmn">p</span> scaling
unit and may include a fractional component; for example, ‘<samp class="samp">.nr PSINCR 1.5p</samp>’<!-- /@w --> sets a type size increment of 1.5<span class="dmn">p</span>. This is a GNU
extension.
</p>
<p>Effective: next heading.
</p>
<p>Default: 1<span class="dmn">p</span>.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005bGROWPS_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[GROWPS]</code></strong><a class="copiable-link" href='#index-_005cn_005bGROWPS_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-GROWPS-_005bms_005d"></a>
<p>Defines the heading depth above which the type size increment set by
<code class="code">PSINCR</code> becomes effective. For each heading depth less than the
value of <code class="code">GROWPS</code>, the type size is increased by <code class="code">PSINCR</code>.
Setting <code class="code">GROWPS</code> to any value less than 2 disables the
incremental heading size feature. This is a GNU extension.
</p>
<p>Effective: next heading.
</p>
<p>Default: 0.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005bHORPHANS_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[HORPHANS]</code></strong><a class="copiable-link" href='#index-_005cn_005bHORPHANS_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-HORPHANS-_005bms_005d"></a>
<p>Defines the minimum number of lines of an immediately succeeding
paragraph that should be kept together with any heading introduced by
the <code class="code">NH</code> or <code class="code">SH</code> macros. If a heading is placed close to the
bottom of a page, and there is insufficient space to accommodate both
the heading and at least <code class="code">HORPHANS</code> lines of the following
paragraph, before an automatic page break, then the page break is forced
before the heading. This is a GNU extension.
</p>
<p>Effective: next paragraph.
</p>
<p>Default: 1.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005bSN_002dSTYLE_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[SN-STYLE]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bSN_002dSTYLE_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-SN_002dSTYLE-_005bms_005d"></a>
<p>Defines the style used to print numbered headings. See <a class="xref" href="#Headings-in-ms">Headings</a>. This is a GNU extension.
</p>
<p>Effective: next heading.
</p>
<p>Default: alias of <code class="code">SN-DOT</code>
</p></dd></dl>
</div>
<div class="unnumberedsubsubsec-level-extent" id="Footnote-settings">
<h4 class="unnumberedsubsubsec">Footnote settings</h4>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005bFI_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[FI]</code></strong><a class="copiable-link" href='#index-_005cn_005bFI_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-FI-_005bms_005d"></a>
<p>Defines the footnote indentation. This is a Berkeley extension.
</p>
<p>Effective: next footnote.
</p>
<p>Default: 2<span class="dmn">n</span>.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005bFF_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[FF]</code></strong><a class="copiable-link" href='#index-_005cn_005bFF_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-FF-_005bms_005d"></a>
<p>Defines the format of automatically numbered footnotes,
and those for which the <code class="code">FS</code> request is given a marker argument, at
the bottom of a column or page. This is a Berkeley extension.
</p><dl class="table">
<dt><code class="code">0</code></dt>
<dd><p>Set an automatic number<a class="footnote" id="DOCF8" href="#FOOT8"><sup>8</sup></a> as a
superscript (on typesetter devices) or surrounded by square brackets (on
terminals). The footnote paragraph is indented as with <code class="code">PP</code> if
there is an <code class="code">FS</code> argument or an automatic number, and as with
<code class="code">LP</code> otherwise. This is the default.
</p>
</dd>
<dt><code class="code">1</code></dt>
<dd><p>As <code class="code">0</code>, but set the marker as regular text and follow an
automatic number with a period.
</p>
</dd>
<dt><code class="code">2</code></dt>
<dd><p>As <code class="code">1</code>, but without indentation (like <code class="code">LP</code>).
</p>
</dd>
<dt><code class="code">3</code></dt>
<dd><p>As <code class="code">1</code>, but set the footnote paragraph with the marker hanging
(like <code class="code">IP</code>).
</p></dd>
</dl>
<p>Effective: next footnote.
</p>
<p>Default: 0.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005bFPS_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[FPS]</code></strong><a class="copiable-link" href='#index-_005cn_005bFPS_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-FPS-_005bms_005d"></a>
<p>Defines the footnote type size.
</p>
<p>Effective: next footnote.
</p>
<p>Default: <code class="code">\n[PS] - 2p</code>.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005bFVS_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[FVS]</code></strong><a class="copiable-link" href='#index-_005cn_005bFVS_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-FVS-_005bms_005d"></a>
<p>Defines the footnote vertical spacing.
</p>
<p>Effective: next footnote.
</p>
<p>Default: <code class="code">\n[FPS] + 2p</code>.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005bFPD_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[FPD]</code></strong><a class="copiable-link" href='#index-_005cn_005bFPD_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-FPD-_005bms_005d"></a>
<p>Defines the footnote paragraph spacing. This is a GNU extension.
</p>
<p>Effective: next footnote.
</p>
<p>Default: <code class="code">\n[PD] / 2</code>.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005bFR_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[FR]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bFR_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-FR-_005bms_005d"></a>
<p>Defines the ratio of the footnote line length to the current line
length. This is a GNU extension.
</p>
<p>Effective: next footnote in single-column arrangements, next page
otherwise.
</p>
<p>Default: <code class="code">11/12</code>.
</p></dd></dl>
</div>
<div class="unnumberedsubsubsec-level-extent" id="Display-settings">
<h4 class="unnumberedsubsubsec">Display settings</h4>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005bDD_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[DD]</code></strong><a class="copiable-link" href='#index-_005cn_005bDD_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-DD-_005bms_005d"></a>
<p>Sets the display distance—the vertical spacing before and after a
display, a <code class="code">tbl</code> table, an <code class="code">eqn</code> equation, or a <code class="code">pic</code>
image. This is a Berkeley extension.
</p>
<p>Effective: next display boundary.
</p>
<p>Default: 0.5<span class="dmn">v</span> (1<span class="dmn">v</span> on low-resolution devices).
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005bDI_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[DI]</code></strong><a class="copiable-link" href='#index-_005cn_005bDI_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-DI-_005bms_005d"></a>
<p>Sets the default amount by which to indent a display started with
<code class="code">DS</code> and <code class="code">ID</code> without arguments, to ‘<samp class="samp">.DS I</samp>’ without
an indentation argument, and to equations set with ‘<samp class="samp">.EQ I</samp>’.
This is a GNU extension.
</p>
<p>Effective: next indented display.
</p>
<p>Default: 0.5<span class="dmn">i</span>.
</p></dd></dl>
</div>
<div class="unnumberedsubsubsec-level-extent" id="Other-settings">
<h4 class="unnumberedsubsubsec">Other settings</h4>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005bMINGW_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[MINGW]</code></strong><a class="copiable-link" href='#index-_005cn_005bMINGW_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-MINGW-_005bms_005d"></a>
<p>Defines the default minimum width between columns in a multi-column
document. This is a GNU extension.
</p>
<p>Effective: next page.
</p>
<p>Default: 2<span class="dmn">n</span>.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005bTC_002dMARGIN_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[TC-MARGIN]</code></strong><a class="copiable-link" href='#index-_005cn_005bTC_002dMARGIN_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-TC_002dMARGIN-_005bms_005d"></a>
<p>Defines the width of the field in which page numbers are set in a table
of contents entry; the right margin thus moves inboard by this amount.
This is a GNU extension.
</p>
<p>Effective: next <code class="code">PX</code> call.
</p>
<p>Default: <code class="code">\w'000'</code>
</p></dd></dl>
<hr>
</div>
</div>
<div class="subsection-level-extent" id="ms-Document-Description-Macros">
<div class="nav-panel">
<p>
Next: <a href="#ms-Body-Text" accesskey="n" rel="next">Body Text</a>, Previous: <a href="#ms-Document-Control-Settings" accesskey="p" rel="prev">Document Control Settings</a>, Up: <a href="#ms" accesskey="u" rel="up"><samp class="file">ms</samp></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Document-Description-Macros">4.6.4 Document Description Macros</h4>
<a class="index-entry-id" id="index-ms-macros_002c-document-description"></a>
<a class="index-entry-id" id="index-document-description-macros_002c-_005bms_005d"></a>
<p>Only the simplest document lacks a title.<a class="footnote" id="DOCF9" href="#FOOT9"><sup>9</sup></a> As its level of sophistication (or
complexity) increases, it tends to acquire a date of revision,
explicitly identified authors, sponsoring institutions for authors, and,
at the rarefied heights, an abstract of its content. Define these
data by calling the macros below in the order shown; <code class="code">DA</code> or
<code class="code">ND</code> can be called to set the document date (or other identifier)
at any time before (a) the abstract, if present, or (b) its information
is required in a header or footer. Use of these macros is optional,
except that <code class="code">TL</code> is mandatory if any of <code class="code">RP</code>, <code class="code">AU</code>,
<code class="code">AI</code>, or <code class="code">AB</code> is called, and <code class="code">AE</code> is mandatory if
<code class="code">AB</code> is called.
</p>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eRP"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.RP</code></strong> <var class="def-var-arguments">[<code class="code">no-repeat-info</code>] [<code class="code">no-renumber</code>]</var><a class="copiable-link" href='#index-_002eRP'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-RP-_005bms_005d"></a>
<p>Use the “report” (<abbr class="acronym">AT&T</abbr>: “released paper”) format for your
document, creating a separate cover page. The default arrangement is to
place most of the document description (title, author names and
institutions, and abstract, but not the date) at the top of the first
page. If the optional <code class="code">no-repeat-info</code> argument is given,
<samp class="file">ms</samp> produces a cover page but does not repeat any of its
information subsequently (but see the <code class="code">DA</code> macro below regarding
the date). Normally, <code class="code">RP</code> sets the page number following the cover
page to 1. Specifying the optional <code class="code">no-renumber</code> argument
suppresses this alteration. Optional arguments can occur in any order.
<code class="code">no</code> is recognized as a synonym of <code class="code">no-repeat-info</code> for
<code class="code">AT&T</code> compatibility.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eTL"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.TL</code></strong><a class="copiable-link" href='#index-_002eTL'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-TL-_005bms_005d"></a>
<p>Specify the document title. <samp class="file">ms</samp> collects text on input lines
following this call into the title until reaching <code class="code">AU</code>, <code class="code">AB</code>,
or a heading or paragraphing macro call.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eAU"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.AU</code></strong><a class="copiable-link" href='#index-_002eAU'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-AU-_005bms_005d"></a>
<p>Specify an author’s name. <samp class="file">ms</samp> collects text on input lines
following this call into the author’s name until reaching <code class="code">AI</code>,
<code class="code">AB</code>, another <code class="code">AU</code>, or a heading or paragraphing macro call.
Call it repeatedly to specify multiple authors.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eAI"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.AI</code></strong><a class="copiable-link" href='#index-_002eAI'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-AI-_005bms_005d"></a>
<p>Specify the preceding author’s institution. An <code class="code">AU</code> call is
usefully followed by at most one <code class="code">AI</code> call; if there are more, the
last <code class="code">AI</code> call controls. <samp class="file">ms</samp> collects text on input lines
following this call into the author’s institution until reaching
<code class="code">AU</code>, <code class="code">AB</code>, or a heading or paragraphing macro call.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eDA"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.DA</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">x</i></span> …]</var><a class="copiable-link" href='#index-_002eDA'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-DA-_005bms_005d"></a>
<p>Typeset the current date, or any arguments <var class="var">x</var>, in the center
footer, and, if <code class="code">RP</code> is also called, left-aligned at the end of the
description information on the cover page.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eND"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.ND</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">x</i></span> …]</var><a class="copiable-link" href='#index-_002eND'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ND-_005bms_005d"></a>
<p>Typeset the current date, or any arguments <var class="var">x</var>, if <code class="code">RP</code> is also
called, left-aligned at the end of the document description on the cover
page. This is <code class="code">groff</code> <samp class="file">ms</samp>’s default.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eAB"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.AB</code></strong> <var class="def-var-arguments">[<code class="code">no</code>]</var><a class="copiable-link" href='#index-_002eAB'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-AB-_005bms_005d"></a>
<p>Begin the abstract. <samp class="file">ms</samp> collects text on input lines following
this call into the abstract until reaching an <code class="code">AE</code> call. By
default, <samp class="file">ms</samp> places the word “ABSTRACT” centered and in italics
above the text of the abstract. The optional argument <code class="code">no</code>
suppresses this heading.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eAE"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.AE</code></strong><a class="copiable-link" href='#index-_002eAE'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-AE-_005bms_005d"></a>
<p>End the abstract.
</p></dd></dl>
<p>An example document description, using a cover page, follows.
<a class="index-entry-id" id="index-cover-page-in-_005bms_005d_002c-example-markup"></a>
<a class="index-entry-id" id="index-example-markup_002c-cover-page-in-_005bms_005d"></a>
</p>
<table class="cartouche" border="1"><tr><td>
<div class="example">
<pre class="example-preformatted">.RP
.TL
The Inevitability of Code Bloat
in Commercial and Free Software
.AU
J.\& Random Luser
.AI
University of West Bumblefuzz
.AB
This report examines the long-term growth of the code
bases in two large,
popular software packages;
the free Emacs and the commercial Microsoft Word.
While differences appear in the type or order of
features added,
due to the different methodologies used,
the results are the same in the end.
.PP
The free software approach is shown to be superior in
that while free software can become as bloated as
commercial offerings,
free software tends to have fewer serious bugs and the
added features are more in line with user demand.
.AE
<span class="r">…the rest of the paper…</span>
</pre></div>
</td></tr></table>
<hr>
</div>
<div class="subsection-level-extent" id="ms-Body-Text">
<div class="nav-panel">
<p>
Next: <a href="#ms-Page-Layout" accesskey="n" rel="next">Page layout</a>, Previous: <a href="#ms-Document-Description-Macros" accesskey="p" rel="prev">Document Description Macros</a>, Up: <a href="#ms" accesskey="u" rel="up"><samp class="file">ms</samp></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Body-Text">4.6.5 Body Text</h4>
<a class="index-entry-id" id="index-ms-macros_002c-body-text"></a>
<p>A variety of macros, registers, and strings can be used to structure and
style the body of your document. They organize your text into
paragraphs, headings, footnotes, and inclusions of material such as
tables and figures.
</p>
<ul class="mini-toc">
<li><a href="#Text-settings-in-ms" accesskey="1">Text settings</a></li>
<li><a href="#Typographical-symbols-in-ms" accesskey="2">Typographical symbols</a></li>
<li><a href="#Paragraphs-in-ms" accesskey="3">Paragraphs</a></li>
<li><a href="#Headings-in-ms" accesskey="4">Headings</a></li>
<li><a href="#Typeface-and-decoration" accesskey="5">Typeface and decoration</a></li>
<li><a href="#Lists-in-ms" accesskey="6">Lists</a></li>
<li><a href="#Indented-regions-in-ms" accesskey="7">Indented regions</a></li>
<li><a href="#ms-keeps-and-displays" accesskey="8">Keeps, boxed keeps, and displays</a></li>
<li><a href="#ms-Insertions" accesskey="9">Tables, figures, equations, and references</a></li>
<li><a href="#ms-Footnotes">Footnotes</a></li>
<li><a href="#ms-language-and-localization">Language and localization</a></li>
</ul>
<hr>
<div class="subsubsection-level-extent" id="Text-settings-in-ms">
<div class="nav-panel">
<p>
Next: <a href="#Typographical-symbols-in-ms" accesskey="n" rel="next">Typographical symbols</a>, Previous: <a href="#ms-Body-Text" accesskey="p" rel="prev">Body Text</a>, Up: <a href="#ms-Body-Text" accesskey="u" rel="up">Body Text</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsubsection" id="Text-settings-1">4.6.5.1 Text settings</h4>
<a class="index-entry-id" id="index-ms-macros_002c-text-settings"></a>
<p>The <code class="code">FAM</code> string, a GNU extension, sets the font family for body
text; the default is ‘<samp class="samp">T</samp>’. The <code class="code">PS</code> and <code class="code">VS</code> registers
set the type size and vertical spacing (distance between text
baselines), respectively. The font family and type size are ignored on
terminal devices. Setting these parameters before the first call of a
heading, paragraphing, or (non-date) document description macro also
applies them to headers, footers, and (for <code class="code">FAM</code>) footnotes.
</p>
<p>Which font families are available depends on the output device; as a
convention, <code class="code">T</code> selects a serif family (“Times”), <code class="code">H</code> a
sans-serif family (“Helvetica”), and <code class="code">C</code> a monospaced family
(“Courier”). The man page for the output driver documents its font
repertoire. Consult the <cite class="cite">groff<span class="r">(1)</span></cite> man page for lists of
available output devices and their drivers.
</p>
<p>The hyphenation mode (as used by the <code class="code">hy</code> request) is set from the
<code class="code">HY</code> register. Setting <code class="code">HY</code> to ‘<samp class="samp">0</samp>’ is equivalent to
using the <code class="code">nh</code> request. This is a Tenth Edition Research Unix
extension.
</p>
<hr>
</div>
<div class="subsubsection-level-extent" id="Typographical-symbols-in-ms">
<div class="nav-panel">
<p>
Next: <a href="#Paragraphs-in-ms" accesskey="n" rel="next">Paragraphs</a>, Previous: <a href="#Text-settings-in-ms" accesskey="p" rel="prev">Text settings</a>, Up: <a href="#ms-Body-Text" accesskey="u" rel="up">Body Text</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsubsection" id="Typographical-symbols">4.6.5.2 Typographical symbols</h4>
<a class="index-entry-id" id="index-ms-macros_002c-obtaining-typographical-symbols"></a>
<p><samp class="file">ms</samp> provides a few strings to obtain typographical symbols not
easily entered with the keyboard. These and many others are available
as special character escape sequences—see the <cite class="cite">groff_char<span class="r">(7)</span></cite>
man page.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005b_002d_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[-]</code></strong><a class="copiable-link" href='#index-_005c_002a_005b_002d_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002d-_005bms_005d"></a>
<p>Interpolate an em dash.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005bQ_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[Q]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bQ_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-Q-_005bms_005d"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005c_002a_005bU_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[U]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bU_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-U-_005bms_005d"></a>
<p>Interpolate typographer’s quotation marks where available, and neutral
double quotes otherwise. <code class="code">\*Q</code> is the left quote and <code class="code">\*U</code>
the right.
</p></dd></dl>
<hr>
</div>
<div class="subsubsection-level-extent" id="Paragraphs-in-ms">
<div class="nav-panel">
<p>
Next: <a href="#Headings-in-ms" accesskey="n" rel="next">Headings</a>, Previous: <a href="#Typographical-symbols-in-ms" accesskey="p" rel="prev">Typographical symbols</a>, Up: <a href="#ms-Body-Text" accesskey="u" rel="up">Body Text</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsubsection" id="Paragraphs-2">4.6.5.3 Paragraphs</h4>
<a class="index-entry-id" id="index-ms-macros_002c-paragraph-handling"></a>
<p>Paragraphing macros <em class="dfn">break</em>, or terminate, any pending output line
so that a new paragraph can begin. Several paragraph types are
available, differing in how indentation applies to them: to left, right,
or both margins; to the first output line of the paragraph, all output
lines, or all but the first. All paragraphing macro calls cause the
insertion of vertical space in the amount stored in the <code class="code">PD</code>
register, except at page or column breaks. Alternatively, a blank input
line breaks the output line and vertically spaces by one vee.
</p>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eLP"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.LP</code></strong><a class="copiable-link" href='#index-_002eLP'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-LP-_005bms_005d"></a>
<p>Set a paragraph without any (additional) indentation.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002ePP"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.PP</code></strong><a class="copiable-link" href='#index-_002ePP'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-PP-_005bms_005d"></a>
<p>Set a paragraph with a first-line left indentation in the amount stored
in the <code class="code">PI</code> register.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eIP"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.IP</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">marker</i></span> [<span class="r"><i class="slanted">width</i></span>]]</var><a class="copiable-link" href='#index-_002eIP'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-IP-_005bms_005d"></a>
<p>Set a paragraph with a left indentation. The optional <var class="var">marker</var> is
not indented and is empty by default. It has several applications;
see <a class="ref" href="#Lists-in-ms">Lists</a>. <var class="var">width</var> overrides the indentation amount
stored in the <code class="code">PI</code> register; its default unit is ‘<samp class="samp">n</samp>’. Once
specified, <var class="var">width</var> applies to further <code class="code">IP</code> calls until
specified again or a heading or different paragraphing macro is called.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eQP"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.QP</code></strong><a class="copiable-link" href='#index-_002eQP'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-QP-_005bms_005d"></a>
<p>Set a paragraph indented from both left and right margins by the amount
stored in the <code class="code">QI</code> register.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eQS"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.QS</code></strong><a class="copiable-link" href='#index-_002eQS'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-QS-_005bms_005d"></a>
</dd><dt class="deffnx defmacx-alias-deffnx def-cmd-deffn" id="index-_002eQE"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.QE</code></strong><a class="copiable-link" href='#index-_002eQE'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-QE-_005bms_005d"></a>
<p>Begin (<code class="code">QS</code>) and end (<code class="code">QE</code>) a region where each paragraph is
indented from both margins by the amount stored in the <code class="code">QI</code>
register. The text between <code class="code">QS</code> and <code class="code">QE</code> can be structured
further by use of other paragraphing macros.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eXP"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.XP</code></strong><a class="copiable-link" href='#index-_002eXP'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-XP-_005bms_005d"></a>
<p>Set an “exdented” paragraph—one with a left indentation in the
amount stored in the <code class="code">PI</code> register on every line <em class="emph">except</em> the
first (also known as a hanging indent). This is a Berkeley extension.
</p></dd></dl>
<p>The following example illustrates the use of paragraphing macros.
</p>
<table class="cartouche" border="1"><tr><td>
<div class="example">
<pre class="example-preformatted">.NH 2
Cases used in the 2001 study
.LP
Two software releases were considered for this report.
.PP
The first is commercial software;
the second is free.
.IP \[bu]
Microsoft Word for Windows,
starting with version 1.0 through the current version
(Word 2000).
.IP \[bu]
GNU Emacs,
from its first appearance as a standalone editor through
the current version (v20).
See [Bloggs 2002] for details.
.QP
Franklin's Law applied to software:
software expands to outgrow both RAM and disk space over
time.
.SH
Bibliography
.XP
Bloggs, Joseph R.,
.I "Everyone's a Critic" ,
Underground Press, March 2002.
A definitive work that answers all questions and
criticisms about the quality and usability of free
software.
</pre></div>
</td></tr></table>
<hr>
</div>
<div class="subsubsection-level-extent" id="Headings-in-ms">
<div class="nav-panel">
<p>
Next: <a href="#Typeface-and-decoration" accesskey="n" rel="next">Typeface and decoration</a>, Previous: <a href="#Paragraphs-in-ms" accesskey="p" rel="prev">Paragraphs</a>, Up: <a href="#ms-Body-Text" accesskey="u" rel="up">Body Text</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsubsection" id="Headings">4.6.5.4 Headings</h4>
<a class="index-entry-id" id="index-ms-macros_002c-headings"></a>
<p>Use headings to create a sequential or hierarchical structure for your
document. The <samp class="file">ms</samp> macros print headings in <strong class="strong">bold</strong> using
the same font family and, by default, type size as the body text.
Headings are available with and without automatic numbering. Text on
input lines following the macro call becomes the heading’s title. Call
a paragraphing macro to end the heading text and start the section’s
content.
</p>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eNH"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.NH</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">depth</i></span>]</var><a class="copiable-link" href='#index-_002eNH'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-NH-_005bms_005d"></a>
</dd><dt class="deffnx defmacx-alias-deffnx def-cmd-deffn" id="index-_002eNH-1"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.NH</code></strong> <var class="def-var-arguments"><code class="t">S</code> <span class="r"><i class="slanted">heading-depth-index</i></span> …</var><a class="copiable-link" href='#index-_002eNH-1'> ¶</a></span></dt>
<dd><p>Set an automatically numbered heading.
</p>
<p><samp class="file">ms</samp> produces a numbered heading the form <var class="var">a.b.c…</var>, to
any depth desired, with the numbering of each depth increasing
automatically and being reset to zero when a more significant level is
increased. “1” is the most significant or coarsest division of
the document. Only non-zero values are output. If <var class="var">depth</var> is
omitted, it is taken to be ‘<samp class="samp">1</samp>’.
</p>
<p>If you specify <var class="var">depth</var> such that an ascending gap occurs relative to
the previous <code class="code">NH</code> call—that is, you “skip a depth”, as by
‘<samp class="samp">.NH 1</samp>’ and then ‘<samp class="samp">.NH 3</samp>’—<code class="code">groff</code> <samp class="file">ms</samp> emits a
warning on the standard error stream.
</p>
<p>Alternatively, you can give <code class="code">NH</code> a first argument of <code class="code">S</code>,
followed by integers to number the heading depths explicitly. Further
automatic numbering, if used, resumes using the specified indices as
their predecessors.
This feature is a Berkeley extension.
</p></dd></dl>
<p>An example may be illustrative.
</p>
<table class="cartouche" border="1"><tr><td>
<div class="example">
<pre class="example-preformatted">.NH 1
Animalia
.NH 2
Arthropoda
.NH 3
Crustacea
.NH 2
Chordata
.NH S 6 6 6
Daimonia
.NH 1
Plantae
</pre></div>
</td></tr></table>
<p>The above results in numbering as follows; the vertical space that
normally precedes each heading is omitted.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">1. Animalia
1.1. Arthropoda
1.1.1. Crustacea
1.2. Chordata
6.6.6. Daimonia
7. Plantae
</pre></div></div>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005bSN_002dSTYLE_005d-1"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[SN-STYLE]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bSN_002dSTYLE_005d-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-SN_002dSTYLE-_005bms_005d-1"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005c_002a_005bSN_002dDOT_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[SN-DOT]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bSN_002dDOT_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-SN_002dDOT-_005bms_005d"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005c_002a_005bSN_002dNO_002dDOT_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[SN-NO-DOT]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bSN_002dNO_002dDOT_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-SN_002dNO_002dDOT-_005bms_005d"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005c_002a_005bSN_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[SN]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bSN_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-SN-_005bms_005d"></a>
<p>After <code class="code">NH</code> is called, the assigned number is made available in the
strings <code class="code">SN-DOT</code> (as it appears in a printed heading with default
formatting, followed by a terminating period) and <code class="code">SN-NO-DOT</code> (with
the terminating period omitted). These are GNU extensions.
</p>
<p>You can control the style used to print numbered headings by defining an
appropriate alias for the string <code class="code">SN-STYLE</code>. By default,
<code class="code">SN-STYLE</code> is aliased to <code class="code">SN-DOT</code>. If you prefer to omit the
terminating period from numbers appearing in numbered headings, you may
define the alias as follows.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.als SN-STYLE SN-NO-DOT
</pre></div></div>
<p>Any such change in numbering style becomes effective from the next use
of <code class="code">NH</code> following redefinition of the alias for <code class="code">SN-STYLE</code>.
The formatted number of the current heading is available in the
<code class="code">SN</code> string (a feature first documented by Berkeley), which
facilitates its inclusion in, for example, table captions, equation
labels, and <code class="code">XS</code>/<code class="code">XA</code>/<code class="code">XE</code> table of contents entries.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eSH"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.SH</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">depth</i></span>]</var><a class="copiable-link" href='#index-_002eSH'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-SH-_005bms_005d"></a>
<p>Set an unnumbered heading.
</p>
<p>The optional <var class="var">depth</var> argument is a GNU extension indicating the
heading depth corresponding to the <var class="var">depth</var> argument of <code class="code">NH</code>.
It matches the type size at which the heading is set to that of a
numbered heading at the same depth when the <code class="code">GROWPS</code> and
<code class="code">PSINCR</code> heading size adjustment mechanism is in effect.
</p></dd></dl>
<p>If the <code class="code">GROWPS</code> register is set to a value greater than the
<var class="var">level</var> argument to <code class="code">NH</code> or <code class="code">SH</code>, the type size of a
heading produced by these macros increases by <code class="code">PSINCR</code> units over
the size specified by <code class="code">PS</code> multiplied by the difference of
<code class="code">GROWPS</code> and <var class="var">level</var>. The value stored in <code class="code">PSINCR</code> is
interpreted in <code class="code">groff</code> basic units; the <code class="code">p</code> scaling unit
should be employed when assigning a value specified in points. For
example, the sequence
</p>
<table class="cartouche" border="1"><tr><td>
<div class="example">
<pre class="example-preformatted">.nr PS 10
.nr GROWPS 3
.nr PSINCR 1.5p
.NH 1
Carnivora
.NH 2
Felinae
.NH 3
Felis catus
.SH 2
Machairodontinae
</pre></div>
</td></tr></table>
<p>will cause “1. Carnivora” to be printed in 13-point text, followed by
“1.1. Felinae” in 11.5-point text, while “1.1.1. Felis catus” and
all more deeply nested heading levels will remain in the 10-point text
specified by the <code class="code">PS</code> register. “Machairodontinae” is printed at
11.5 points, since it corresponds to heading level 2.
</p>
<p>The <code class="code">HORPHANS</code> register operates in conjunction with the <code class="code">NH</code>
and <code class="code">SH</code> macros to inhibit the printing of isolated headings at the
bottom of a page; it specifies the minimum number of lines of an
immediately subsequent paragraph that must be kept on the same page as
the heading. If insufficient space remains on the current page to
accommodate the heading and this number of lines of paragraph text, a
page break is forced before the heading is printed. Any display macro
call or <code class="code">tbl</code>, <code class="code">pic</code>, or <code class="code">eqn</code> region between the heading
and the subsequent paragraph suppresses this grouping. See <a class="xref" href="#ms-keeps-and-displays">Keeps, boxed keeps, and displays</a> and <a class="ref" href="#ms-Insertions">Tables, figures, equations, and references</a>.
</p>
<hr>
</div>
<div class="subsubsection-level-extent" id="Typeface-and-decoration">
<div class="nav-panel">
<p>
Next: <a href="#Lists-in-ms" accesskey="n" rel="next">Lists</a>, Previous: <a href="#Headings-in-ms" accesskey="p" rel="prev">Headings</a>, Up: <a href="#ms-Body-Text" accesskey="u" rel="up">Body Text</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsubsection" id="Typeface-and-decoration-1">4.6.5.5 Typeface and decoration</h4>
<p>The <samp class="file">ms</samp> macros provide a variety of ways to style text.
Attend closely to the ordering of arguments labeled <var class="var">pre</var> and
<var class="var">post</var>, which is not intuitive. Support for <var class="var">pre</var>
arguments is a GNU extension.<a class="footnote" id="DOCF10" href="#FOOT10"><sup>10</sup></a>
</p>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eB"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.B</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">text</i></span> [<span class="r"><i class="slanted">post</i></span> [<span class="r"><i class="slanted">pre</i></span>]]]</var><a class="copiable-link" href='#index-_002eB'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-B-_005bms_005d"></a>
<p>Style <var class="var">text</var> in <b class="b">bold</b>, followed by <var class="var">post</var> in the previous
font style without intervening space, and preceded by <var class="var">pre</var>
similarly. Without arguments, <samp class="file">ms</samp> styles subsequent text in bold
until the next paragraphing, heading, or no-argument typeface macro
call.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eR-1"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.R</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">text</i></span> [<span class="r"><i class="slanted">post</i></span> [<span class="r"><i class="slanted">pre</i></span>]]]</var><a class="copiable-link" href='#index-_002eR-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-R-_005bms_005d"></a>
<p>As <code class="code">B</code>, but use the roman style (upright text of normal weight)
instead of bold. Argument recognition is a GNU extension.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eI"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.I</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">text</i></span> [<span class="r"><i class="slanted">post</i></span> [<span class="r"><i class="slanted">pre</i></span>]]]</var><a class="copiable-link" href='#index-_002eI'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-I-_005bms_005d"></a>
<p>As <code class="code">B</code>, but use an <i class="i">italic</i> or oblique style instead of bold.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eBI"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.BI</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">text</i></span> [<span class="r"><i class="slanted">post</i></span> [<span class="r"><i class="slanted">pre</i></span>]]]</var><a class="copiable-link" href='#index-_002eBI'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-BI-_005bms_005d"></a>
<p>As <code class="code">B</code>, but use a bold italic or bold oblique style instead of
upright bold. This is a Tenth Edition Research Unix extension.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eCW-1"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.CW</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">text</i></span> [<span class="r"><i class="slanted">post</i></span> [<span class="r"><i class="slanted">pre</i></span>]]]</var><a class="copiable-link" href='#index-_002eCW-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-CW-_005bms_005d"></a>
<p>As <code class="code">B</code>, but use a <code class="t">constant-width</code> (monospaced) roman typeface
instead of bold. This is a Tenth Edition Research Unix extension.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eBX"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.BX</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">text</i></span>]</var><a class="copiable-link" href='#index-_002eBX'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-BX-_005bms_005d"></a>
<p>Typeset <var class="var">text</var> and draw a box around it. On terminal devices,
reverse video is used instead. If you want <var class="var">text</var> to contain space,
use unbreakable space or horizontal motion escape sequences (<code class="code">\~</code>,
<code class="code">\<kbd class="key">SP</kbd></code>, <code class="code">\^</code>, <code class="code">\|</code>, <code class="code">\0</code> or <code class="code">\h</code>).
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eUL"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.UL</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">text</i></span> [<span class="r"><i class="slanted">post</i></span>]]</var><a class="copiable-link" href='#index-_002eUL'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-UL-_005bms_005d"></a>
<p>Typeset <var class="var">text</var> with an underline. <var class="var">post</var>, if present, is set
after <var class="var">text</var> with no intervening space.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eLG"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.LG</code></strong><a class="copiable-link" href='#index-_002eLG'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-LG-_005bms_005d"></a>
<p>Set subsequent text in larger type (two points larger than the
current size) until the next type size, paragraphing, or heading macro
call. You can specify this macro multiple times to enlarge the type
size as needed.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eSM"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.SM</code></strong><a class="copiable-link" href='#index-_002eSM'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-SM-_005bms_005d"></a>
<p>Set subsequent text in smaller type (two points smaller than the current
size) until the next type size, paragraphing, or heading macro call.
You can specify this macro multiple times to reduce the type size as
needed.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eNL"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.NL</code></strong><a class="copiable-link" href='#index-_002eNL'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-NL-_005bms_005d"></a>
<p>Set subsequent text at the normal type size (the amount in the <code class="code">PS</code>
register).
</p></dd></dl>
<p><var class="var">pre</var> and <var class="var">post</var> arguments are typically used to simplify the
attachment of punctuation to styled words. When <var class="var">pre</var> is used,
a hyphenation control escape sequence <code class="code">\%</code> that would ordinarily
start <var class="var">text</var> must start <var class="var">pre</var> instead to have the desired
effect.
</p>
<table class="cartouche" border="1"><tr><td>
<div class="example">
<pre class="example-preformatted">The CS course's students found one C language keyword
.CW static ) \%(
most troublesome.
</pre></div>
</td></tr></table>
<p>The foregoing example produces output as follows.
</p>
<table class="cartouche" border="1"><tr><td>
<div class="example">
<pre class="example-preformatted"><span class="r">The CS course’s students found one C language keyword (<code class="t">static</code>)
most troublesome.</span>
</pre></div>
</td></tr></table>
<p>You can use the output line continuation escape sequence <code class="code">\c</code> to
achieve the same result (see <a class="pxref" href="#Line-Continuation">Line Continuation</a>). It is also
portable to older <samp class="file">ms</samp> implementations.
</p>
<table class="cartouche" border="1"><tr><td>
<div class="example">
<pre class="example-preformatted">The CS course's students found one C language keyword
\%(\c
.CW \%static )
most troublesome.
</pre></div>
</td></tr></table>
<p><code class="code">groff</code> <samp class="file">ms</samp> also offers strings to begin and end super- and
subscripting. These are GNU extensions.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005b_007b_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[{]</code></strong><a class="copiable-link" href='#index-_005c_002a_005b_007b_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_007b-_005bms_005d"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005c_002a_005b_007d_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[}]</code></strong><a class="copiable-link" href='#index-_005c_002a_005b_007d_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_007d-_005bms_005d"></a>
<p>Begin and end superscripting, respectively.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005b_003c_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[<]</code></strong><a class="copiable-link" href='#index-_005c_002a_005b_003c_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_003c-_005bms_005d"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005c_002a_005b_003e_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[>]</code></strong><a class="copiable-link" href='#index-_005c_002a_005b_003e_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_003e-_005bms_005d"></a>
<p>Begin and end subscripting, respectively.
</p></dd></dl>
<p>Rather than calling the <code class="code">CW</code> macro, in <code class="code">groff</code> <samp class="file">ms</samp> you
might prefer to change the font family to Courier by setting the
<code class="code">FAM</code> string to ‘<samp class="samp">C</samp>’. You can then use all four style macros
above, returning to the default family (Times) with ‘<samp class="samp">.ds FAM T</samp>’.
Because changes to <code class="code">FAM</code> take effect only at the next paragraph,
<code class="code">CW</code> remains useful to “inline” a change to the font family,
similarly to the practice of this document in noting syntactical
elements of <samp class="file">ms</samp> and <code class="code">groff</code>.
</p>
<hr>
</div>
<div class="subsubsection-level-extent" id="Lists-in-ms">
<div class="nav-panel">
<p>
Next: <a href="#Indented-regions-in-ms" accesskey="n" rel="next">Indented regions</a>, Previous: <a href="#Typeface-and-decoration" accesskey="p" rel="prev">Typeface and decoration</a>, Up: <a href="#ms-Body-Text" accesskey="u" rel="up">Body Text</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsubsection" id="Lists">4.6.5.6 Lists</h4>
<a class="index-entry-id" id="index-ms-macros_002c-lists"></a>
<p>The <var class="var">marker</var> argument to the <code class="code">IP</code> macro can be employed to
present a variety of lists; for instance, you can use a bullet glyph
(<code class="code">\[bu]</code>) for unordered lists, a number (or auto-incrementing
register) for numbered lists, or a word or phrase for glossary-style or
definition lists. If you set the paragraph indentation register
<code class="code">PI</code> before calling <code class="code">IP</code>, you can later reorder the items in
the list without having to ensure that a <var class="var">width</var> argument remains
affixed to the first call.
</p>
<p>The following is an example of a bulleted list.
<a class="index-entry-id" id="index-example-markup_002c-bulleted-list-_005bms_005d"></a>
<a class="index-entry-id" id="index-bulleted-list_002c-example-markup-_005bms_005d"></a>
</p>
<table class="cartouche" border="1"><tr><td>
<div class="example">
<pre class="example-preformatted">.nr PI 2n
A bulleted list:
.IP \[bu]
lawyers
.IP \[bu]
guns
.IP \[bu]
money
</pre></div>
</td></tr></table>
<div class="example">
<div class="group"><pre class="example-preformatted">A bulleted list:
• lawyers
• guns
• money
</pre></div></div>
<p>The following is an example of a numbered list.
<a class="index-entry-id" id="index-example-markup_002c-numbered-list-_005bms_005d"></a>
<a class="index-entry-id" id="index-numbered-list_002c-example-markup-_005bms_005d"></a>
</p>
<table class="cartouche" border="1"><tr><td>
<div class="example">
<pre class="example-preformatted">.nr step 0 1
.nr PI 3n
A numbered list:
.IP \n+[step]
lawyers
.IP \n+[step]
guns
.IP \n+[step]
money
</pre></div>
</td></tr></table>
<div class="example">
<div class="group"><pre class="example-preformatted">A numbered list:
1. lawyers
2. guns
3. money
</pre></div></div>
<p>Here we have employed the <code class="code">nr</code> request to create a register of our
own, ‘<samp class="samp">step</samp>’. We initialized it to zero and assigned it an
auto-increment of 1. Each time we use the escape sequence
‘<samp class="samp">\n+[PI]</samp>’ (note the plus sign), the formatter applies the increment
just before interpolating the register’s value. Preparing the <code class="code">PI</code>
register as well enables us to rearrange the list without the tedium of
updating macro calls.
</p>
<p>The next example illustrates a glossary-style list.
<a class="index-entry-id" id="index-example-markup_002c-glossary_002dstyle-list-_005bms_005d"></a>
<a class="index-entry-id" id="index-glossary_002dstyle-list_002c-example-markup-_005bms_005d"></a>
</p>
<table class="cartouche" border="1"><tr><td>
<div class="example">
<pre class="example-preformatted">A glossary-style list:
.IP lawyers 0.4i
Two or more attorneys.
.IP guns
Firearms,
preferably large-caliber.
.IP money
Gotta pay for those
lawyers and guns!
</pre></div>
</td></tr></table>
<div class="example">
<div class="group"><pre class="example-preformatted">A glossary-style list:
lawyers
Two or more attorneys.
guns Firearms, preferably large-caliber.
money
Gotta pay for those lawyers and guns!
</pre></div></div>
<p>In the previous example, observe how the <code class="code">IP</code> macro places the
definition on the same line as the term if it has enough space. If this
is not what you want, there are a few workarounds we will illustrate by
modifying the example. First, you can use a <code class="code">br</code> request to force
a break after printing the term or label.
</p>
<table class="cartouche" border="1"><tr><td>
<div class="example">
<pre class="example-preformatted">.IP guns
.br
Firearms,
</pre></div>
</td></tr></table>
<p>Second, you could apply the <code class="code">\p</code> escape sequence to force a break.
The space following the escape sequence is important; if you omit it,
<code class="code">groff</code> prints the first word of the paragraph text on the same
line as the term or label (if it fits) <em class="emph">then</em> breaks the line.
</p>
<table class="cartouche" border="1"><tr><td>
<div class="example">
<pre class="example-preformatted">.IP guns
\p Firearms,
</pre></div>
</td></tr></table>
<p>Finally, you may append a horizontal motion to the marker with the
<code class="code">\h</code> escape sequence; using the same amount as the indentation will
ensure that the marker is too wide for <code class="code">groff</code> to treat it as
“fitting” on the same line as the paragraph text.
</p>
<table class="cartouche" border="1"><tr><td>
<div class="example">
<pre class="example-preformatted">.IP guns\h'0.4i'
Firearms,
</pre></div>
</td></tr></table>
<p>In each case, the result is the same.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">A glossary-style list:
lawyers
Two or more attorneys.
guns
Firearms, preferably large-caliber.
money
Gotta pay for those lawyers and guns!
</pre></div></div>
<hr>
</div>
<div class="subsubsection-level-extent" id="Indented-regions-in-ms">
<div class="nav-panel">
<p>
Next: <a href="#ms-keeps-and-displays" accesskey="n" rel="next">Keeps, boxed keeps, and displays</a>, Previous: <a href="#Lists-in-ms" accesskey="p" rel="prev">Lists</a>, Up: <a href="#ms-Body-Text" accesskey="u" rel="up">Body Text</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsubsection" id="Indented-regions">4.6.5.7 Indented regions</h4>
<p>You may need to indent a region of text while otherwise formatting it
normally. Indented regions can be nested; you can change <code class="code">\n[PI]</code>
before each call to vary the amount of inset.
</p>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eRS"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.RS</code></strong><a class="copiable-link" href='#index-_002eRS'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-RS-_005bms_005d"></a>
<p>Begin a region where headings, paragraphs, and displays are indented
(further) by the amount stored in the <code class="code">PI</code> register.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eRE"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.RE</code></strong><a class="copiable-link" href='#index-_002eRE'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-RE-_005bms_005d"></a>
<p>End the (next) most recent indented region.
</p></dd></dl>
<p>This feature enables you to easily line up text under hanging and
indented paragraphs.
<a class="index-entry-id" id="index-ms-macros_002c-nested-lists"></a>
<a class="index-entry-id" id="index-nested-lists-_005bms_005d"></a>
For example, you may wish to structure lists hierarchically.
</p>
<table class="cartouche" border="1"><tr><td>
<div class="example">
<pre class="example-preformatted">.IP \[bu] 2
Lawyers:
.RS
.IP \[bu]
Dewey,
.IP \[bu]
Cheatham,
and
.IP \[bu]
and Howe.
.RE
.IP \[bu]
Guns
</pre></div>
</td></tr></table>
<div class="example">
<div class="group"><pre class="example-preformatted">• Lawyers:
• Dewey,
• Cheatham, and
• Howe.
• Guns
</pre></div></div>
<hr>
</div>
<div class="subsubsection-level-extent" id="ms-keeps-and-displays">
<div class="nav-panel">
<p>
Next: <a href="#ms-Insertions" accesskey="n" rel="next">Tables, figures, equations, and references</a>, Previous: <a href="#Indented-regions-in-ms" accesskey="p" rel="prev">Indented regions</a>, Up: <a href="#ms-Body-Text" accesskey="u" rel="up">Body Text</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsubsection" id="Keeps_002c-boxed-keeps_002c-and-displays">4.6.5.8 Keeps, boxed keeps, and displays</h4>
<a class="index-entry-id" id="index-ms-macros_002c-displays"></a>
<a class="index-entry-id" id="index-ms-macros_002c-keeps"></a>
<a class="index-entry-id" id="index-keeps-_005bms_005d"></a>
<p>On occasion, you may want to <em class="dfn">keep</em> several lines of text, or a
region of a document, together on a single page, preventing an automatic
page break within certain boundaries. This can cause a page break to
occur earlier than it normally would. For example, you may want to keep
two paragraphs together, or a paragraph that refers to a table, list, or
figure adjacent to the item it discusses. <samp class="file">ms</samp> provides the
<code class="code">KS</code> and <code class="code">KE</code> macros for this purpose.
</p>
<p>You can alternatively specify a <em class="dfn">floating keep</em>: if a keep cannot
fit on the current page, <samp class="file">ms</samp> holds its contents and
allows material following the keep (in the source document) to fill the
remainder of the current page. When the page breaks, whether by
reaching the end or <code class="code">bp</code> request, <samp class="file">ms</samp> puts the floating keep
at the beginning of the next page. This is useful for placing large
graphics or tables that do not need to appear exactly where they occur
in the source document.
</p>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eKS"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.KS</code></strong><a class="copiable-link" href='#index-_002eKS'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-KS-_005bms_005d"></a>
</dd><dt class="deffnx defmacx-alias-deffnx def-cmd-deffn" id="index-_002eKF"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.KF</code></strong><a class="copiable-link" href='#index-_002eKF'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-KF-_005bms_005d"></a>
</dd><dt class="deffnx defmacx-alias-deffnx def-cmd-deffn" id="index-_002eKE"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.KE</code></strong><a class="copiable-link" href='#index-_002eKE'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-KE-_005bms_005d"></a>
<p><code class="code">KS</code> begins a keep, <code class="code">KF</code> a floating keep, and <code class="code">KE</code> ends a
keep of either kind.
</p></dd></dl>
<p>As an alternative to the keep mechanism, the <code class="code">ne</code> request forces a
page break if there is not at least the amount of vertical space
specified in its argument remaining on the page (see <a class="pxref" href="#Page-Control">Page Control</a>).
One application of <code class="code">ne</code> is to reserve space on the page for a
figure or illustration to be included later.
</p>
<a class="index-entry-id" id="index-boxes-_005bms_005d"></a>
<p>A <em class="dfn">boxed keep</em> has a frame drawn around it.
</p>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eB1"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.B1</code></strong><a class="copiable-link" href='#index-_002eB1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-B1-_005bms_005d"></a>
</dd><dt class="deffnx defmacx-alias-deffnx def-cmd-deffn" id="index-_002eB2"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.B2</code></strong><a class="copiable-link" href='#index-_002eB2'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-B2-_005bms_005d"></a>
<p><code class="code">B1</code> begins a keep with a box drawn around it. <code class="code">B2</code> ends a
boxed keep.
</p></dd></dl>
<p>Boxed keep macros cause breaks; if you need to box a word or phrase
within a line, see the <code class="code">BX</code> macro in <a class="ref" href="#Typeface-and-decoration">Typeface and decoration</a>.
Box lines are drawn as close as possible to the text they enclose so
that they are usable within paragraphs. If you wish to box one or more
paragraphs, you may improve the appearance by calling <code class="code">B1</code> after
the first paragraphing macro, and by adding a small amount of vertical
space before calling <code class="code">B2</code>.
</p>
<table class="cartouche" border="1"><tr><td>
<div class="example">
<pre class="example-preformatted">.LP
.B1
.I Warning:
Happy Fun Ball may suddenly accelerate to dangerous
speeds.
.sp \n[PD]/2 \" space by half the inter-paragraph distance
.B2
</pre></div>
</td></tr></table>
<p>If you want a boxed keep to float, you will need to enclose the
<code class="code">B1</code> and <code class="code">B2</code> calls within a pair of <code class="code">KF</code> and <code class="code">KE</code>
calls.
</p>
<a class="index-entry-id" id="index-displays-_005bms_005d"></a>
<p><em class="dfn">Displays</em> turn off filling; lines of verse or program code are
shown with their lines broken as in the source document without
requiring <code class="code">br</code> requests between lines. Displays can be kept on a
single page or allowed to break across pages. The <code class="code">DS</code> macro
begins a kept display of the layout specified in its first argument;
non-kept displays are begun with dedicated macros corresponding to their
layout.
</p>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eDS"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.DS</code></strong> <var class="def-var-arguments"><code class="t">L</code></var><a class="copiable-link" href='#index-_002eDS'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-DS-_005bms_005d"></a>
</dd><dt class="deffnx defmacx-alias-deffnx def-cmd-deffn" id="index-_002eLD"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.LD</code></strong><a class="copiable-link" href='#index-_002eLD'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-LD-_005bms_005d"></a>
<p>Begin (<code class="code">DS</code>: kept) left-aligned display.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eDS-1"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.DS</code></strong> <var class="def-var-arguments">[<code class="t">I</code> [<span class="r"><i class="slanted">indent</i></span>]]</var><a class="copiable-link" href='#index-_002eDS-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-DS-_005bms_005d-1"></a>
</dd><dt class="deffnx defmacx-alias-deffnx def-cmd-deffn" id="index-_002eID"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.ID</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">indent</i></span>]</var><a class="copiable-link" href='#index-_002eID'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ID-_005bms_005d"></a>
<p>Begin (<code class="code">DS</code>: kept) display indented by <var class="var">indent</var> if specified,
and by the amount of the <code class="code">DI</code> register otherwise.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eDS-2"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.DS</code></strong> <var class="def-var-arguments"><code class="t">B</code></var><a class="copiable-link" href='#index-_002eDS-2'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-DS-_005bms_005d-2"></a>
</dd><dt class="deffnx defmacx-alias-deffnx def-cmd-deffn" id="index-_002eBD"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.BD</code></strong><a class="copiable-link" href='#index-_002eBD'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-BD-_005bms_005d"></a>
<p>Begin a (<code class="code">DS</code>: kept) a block display: the entire display is
left-aligned, but indented such that the longest line in the display
is centered on the page.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eDS-3"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.DS</code></strong> <var class="def-var-arguments"><code class="t">C</code></var><a class="copiable-link" href='#index-_002eDS-3'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-DS-_005bms_005d-3"></a>
</dd><dt class="deffnx defmacx-alias-deffnx def-cmd-deffn" id="index-_002eCD"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.CD</code></strong><a class="copiable-link" href='#index-_002eCD'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-CD-_005bms_005d"></a>
<p>Begin a (<code class="code">DS</code>: kept) centered display: each line in the display
is centered.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eDS-4"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.DS</code></strong> <var class="def-var-arguments"><code class="t">R</code></var><a class="copiable-link" href='#index-_002eDS-4'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-DS-_005bms_005d-4"></a>
</dd><dt class="deffnx defmacx-alias-deffnx def-cmd-deffn" id="index-_002eRD"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.RD</code></strong><a class="copiable-link" href='#index-_002eRD'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-RD-_005bms_005d"></a>
<p>Begin a (<code class="code">DS</code>: kept) right-aligned display. This is a GNU
extension.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eDE"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.DE</code></strong><a class="copiable-link" href='#index-_002eDE'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-DE-_005bms_005d"></a>
<p>End any display.
</p></dd></dl>
<p>The distance stored in the <code class="code">DD</code> register is inserted before and
after each pair of display macros; this is a Berkeley extension. In
<code class="code">groff</code> <samp class="file">ms</samp>, this distance replaces any adjacent
inter-paragraph distance or subsequent spacing prior to a section
heading. The <code class="code">DI</code> register is a GNU extension; its value is an
indentation applied to displays created with ‘<samp class="samp">.DS</samp>’ and ‘<samp class="samp">.ID</samp>’
without arguments, to ‘<samp class="samp">.DS I</samp>’ without an indentation argument, and
to indented equations set with ‘<samp class="samp">.EQ</samp>’. Changes to either register
take effect at the next display boundary.
</p>
<hr>
</div>
<div class="subsubsection-level-extent" id="ms-Insertions">
<div class="nav-panel">
<p>
Next: <a href="#ms-Footnotes" accesskey="n" rel="next">Footnotes</a>, Previous: <a href="#ms-keeps-and-displays" accesskey="p" rel="prev">Keeps, boxed keeps, and displays</a>, Up: <a href="#ms-Body-Text" accesskey="u" rel="up">Body Text</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsubsection" id="Tables_002c-figures_002c-equations_002c-and-references">4.6.5.9 Tables, figures, equations, and references</h4>
<a class="index-entry-id" id="index-ms-macros_002c-tables"></a>
<a class="index-entry-id" id="index-ms-macros_002c-figures"></a>
<a class="index-entry-id" id="index-ms-macros_002c-equations"></a>
<a class="index-entry-id" id="index-ms-macros_002c-references"></a>
<a class="index-entry-id" id="index-tables-_005bms_005d"></a>
<a class="index-entry-id" id="index-figures-_005bms_005d"></a>
<a class="index-entry-id" id="index-equations-_005bms_005d"></a>
<a class="index-entry-id" id="index-references-_005bms_005d"></a>
<p>The <samp class="file">ms</samp> package is often used with the <code class="code">tbl</code>, <code class="code">pic</code>,
<code class="code">eqn</code>, and <code class="code">refer</code> preprocessors.
<a class="index-entry-id" id="index-tbl"></a>
<a class="index-entry-id" id="index-pic"></a>
<a class="index-entry-id" id="index-eqn"></a>
<a class="index-entry-id" id="index-refer"></a>
Mark text meant for preprocessors by enclosing it in pairs of tokens
as follows, with nothing between the dot and the macro name. The
preprocessors match these tokens only at the start of an input line.
</p>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eTS"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.TS</code></strong> <var class="def-var-arguments">[<code class="code">H</code>]</var><a class="copiable-link" href='#index-_002eTS'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-TS-_005bms_005d"></a>
</dd><dt class="deffnx defmacx-alias-deffnx def-cmd-deffn" id="index-_002eTE"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.TE</code></strong><a class="copiable-link" href='#index-_002eTE'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-TE-_005bms_005d"></a>
<p>Demarcate a table to be processed by the <code class="code">tbl</code> preprocessor. The
optional argument <code class="code">H</code> to <code class="code">TS</code> instructs <samp class="file">ms</samp> to
repeat table rows (often column headings) at the top of each new page
the table spans, if applicable; calling the <code class="code">TH</code> macro marks the
end of such rows. The GNU <cite class="cite">tbl<span class="r">(1)</span></cite> man page provides a
comprehensive reference to the preprocessor and offers examples of its
use.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002ePS"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.PS</code></strong><a class="copiable-link" href='#index-_002ePS'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-PS-_005bms_005d"></a>
</dd><dt class="deffnx defmacx-alias-deffnx def-cmd-deffn" id="index-_002ePE"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.PE</code></strong><a class="copiable-link" href='#index-_002ePE'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-PE-_005bms_005d"></a>
</dd><dt class="deffnx defmacx-alias-deffnx def-cmd-deffn" id="index-_002ePF"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.PF</code></strong><a class="copiable-link" href='#index-_002ePF'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-PF-_005bms_005d"></a>
<p><code class="code">PS</code> begins a picture to be processed by the <code class="command">gpic</code>
preprocessor; either of <code class="code">PE</code> or <code class="code">PF</code> ends it, the latter with
“flyback” to the vertical position at its top. You can create
<code class="code">pic</code> input manually or with a program such as <code class="code">xfig</code>.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eEQ"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.EQ</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">align</i></span> [<span class="r"><i class="slanted">label</i></span>]]</var><a class="copiable-link" href='#index-_002eEQ'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-EQ-_005bms_005d"></a>
</dd><dt class="deffnx defmacx-alias-deffnx def-cmd-deffn" id="index-_002eEN"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.EN</code></strong><a class="copiable-link" href='#index-_002eEN'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-EN-_005bms_005d"></a>
<p>Demarcate an equation to be processed by the <code class="code">eqn</code> preprocessor.
The equation is centered by default; <var class="var">align</var> can be ‘<samp class="samp">C</samp>’,
‘<samp class="samp">L</samp>’, or ‘<samp class="samp">I</samp>’ to (explicitly) center, left-align, or indent it
by the amount stored in the <code class="code">DI</code> register, respectively. If
specified, <var class="var">label</var> is set right-aligned.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002e_005b"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.[</code></strong><a class="copiable-link" href='#index-_002e_005b'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005b-_005bms_005d"></a>
</dd><dt class="deffnx defmacx-alias-deffnx def-cmd-deffn" id="index-_002e_005d"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.]</code></strong><a class="copiable-link" href='#index-_002e_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005d-_005bms_005d"></a>
<p>Demarcate a bibliographic citation to be processed by the <code class="code">refer</code>
preprocessor. The GNU <cite class="cite">refer<span class="r">(1)</span></cite> man page provides a
comprehensive reference to the preprocessor and the format of its
bibliographic database. Type ‘<samp class="samp">man refer</samp>’ at the command line to
view it.
</p></dd></dl>
<p>When <code class="code">refer</code> emits collected references (as might be done on a
“Works Cited” page), it interpolates the <code class="code">REFERENCES</code> string as
an unnumbered heading (<code class="code">SH</code>).
</p>
<a class="index-entry-id" id="index-table_002c-multi_002dpage_002c-example-_005bms_005d"></a>
<a class="index-entry-id" id="index-multi_002dpage-table-example-_005bms_005d"></a>
<p>The following is an example of how to set up a table that may print
across two or more pages.
</p>
<table class="cartouche" border="1"><tr><td>
<div class="example">
<pre class="example-preformatted">.TS H
allbox;
Cb | Cb .
Part→Description
_
.TH
.T&
GH-1978→Fribulating gonkulator
<span class="r">…the rest of the table follows…</span>
.TE
</pre></div>
</td></tr></table>
<p>Attempting to place a multi-page table inside a keep can lead to
unpleasant results, particularly if the <code class="code">tbl</code> <code class="code">allbox</code> option
is used.
</p>
<a class="index-entry-id" id="index-equation-example-_005bms_005d"></a>
<p>Mathematics can be typeset using the language of the <code class="code">eqn</code>
preprocessor.
</p>
<table class="cartouche" border="1"><tr><td>
<div class="example">
<pre class="example-preformatted">.EQ C (\*[SN-NO-DOT]a)
p ~ = ~ q sqrt { ( 1 + ~ ( x / q sup 2 ) }
.EN
</pre></div>
</td></tr></table>
<p>This input formats a labelled equation. We used the <code class="code">SN-NO-DOT</code>
string to base the equation label on the current heading number, giving
us more flexibility to reorganize the document.
</p>
<p>Use <code class="command">groff</code> options to run preprocessors on the input:
<samp class="option">-e</samp> for <code class="command">geqn</code>, <samp class="option">-p</samp> for <code class="command">gpic</code>,
<samp class="option">-R</samp> for <code class="command">grefer</code>, and <samp class="option">-t</samp> for <code class="command">gtbl</code>.
</p>
<hr>
</div>
<div class="subsubsection-level-extent" id="ms-Footnotes">
<div class="nav-panel">
<p>
Previous: <a href="#ms-Insertions" accesskey="p" rel="prev">Tables, figures, equations, and references</a>, Up: <a href="#ms-Body-Text" accesskey="u" rel="up">Body Text</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsubsection" id="Footnotes">4.6.5.10 Footnotes</h4>
<a class="index-entry-id" id="index-ms-macros_002c-footnotes"></a>
<a class="index-entry-id" id="index-footnotes-_005bms_005d"></a>
<a class="index-entry-id" id="index-footnote-marker-_005bms_005d"></a>
<a class="index-entry-id" id="index-marker_002c-footnote-_005bms_005d"></a>
<p>A footnote is typically anchored to a place in the text with a
<em class="dfn">marker</em>, which is a small integer, a symbol such as a dagger, or
arbitrary user-specified text.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005b_002a_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[*]</code></strong><a class="copiable-link" href='#index-_005c_002a_005b_002a_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002a-_005bms_005d"></a>
<p>Place an <em class="dfn">automatic number</em>, an automatically generated numeric
footnote marker, in the text. Each time this string is interpolated,
the number it produces increments by one. Automatic numbers start at 1.
This is a Berkeley extension.
</p></dd></dl>
<p>Enclose the footnote text in <code class="code">FS</code> and <code class="code">FE</code> macro calls to set
it at the nearest available “foot”, or bottom, of a text column or
page.
</p>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eFS"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.FS</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">marker</i></span>]</var><a class="copiable-link" href='#index-_002eFS'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-FS-_005bms_005d"></a>
</dd><dt class="deffnx defmacx-alias-deffnx def-cmd-deffn" id="index-_002eFE"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.FE</code></strong><a class="copiable-link" href='#index-_002eFE'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-FE-_005bms_005d"></a>
<p>Begin (<code class="code">FS</code>) and end (<code class="code">FE</code>) a footnote. <code class="code">FS</code> calls
<code class="code">FS-MARK</code> with any supplied <var class="var">marker</var> argument, which is then
also placed at the beginning of the footnote text. If <var class="var">marker</var> is
omitted, the next pending automatic footnote number enqueued by
interpolation of the <code class="code">*</code> string is used, and if none exists,
nothing is prefixed.
</p></dd></dl>
<p>You may not desire automatically numbered footnotes in spite of their
convenience. You can indicate a footnote with a symbol or other text by
specifying its marker at the appropriate place (for example, by using
<code class="code">\[dg]</code> for the dagger glyph) <em class="emph">and</em> as an argument to the
<code class="code">FS</code> macro. Such manual marks should be repeated as arguments to
<code class="code">FS</code> or as part of the footnote text to disambiguate their
correspondence. You may wish to use <code class="code">\*{</code> and <code class="code">\*}</code> to
superscript the marker at the anchor point, in the footnote text, or
both.
</p>
<p><code class="code">groff</code> <samp class="file">ms</samp> provides a hook macro, <code class="code">FS-MARK</code>, for
user-determined operations to be performed when the <code class="code">FS</code> macro is
called. It is passed the same arguments as <code class="code">FS</code> itself. An
application of <code class="code">FS-MARK</code> is anchor placement for a hyperlink
reference, so that a footnote can link back to its referential
context.<a class="footnote" id="DOCF11" href="#FOOT11"><sup>11</sup></a> By default, this macro has an empty definition.
<code class="code">FS-MARK</code> is a GNU extension.
</p>
<a class="index-entry-id" id="index-footnotes_002c-and-keeps-_005bms_005d"></a>
<a class="index-entry-id" id="index-keeps_002c-and-footnotes-_005bms_005d"></a>
<a class="index-entry-id" id="index-footnotes_002c-and-displays-_005bms_005d"></a>
<a class="index-entry-id" id="index-displays_002c-and-footnotes-_005bms_005d"></a>
<p>Footnotes can be safely used within keeps and displays, but you should
avoid using automatically numbered footnotes within floating keeps. You
can place a second <code class="code">\**</code> interpolation between a <code class="code">\**</code> and its
corresponding <code class="code">FS</code> call as long as each <code class="code">FS</code> call occurs
<em class="emph">after</em> the corresponding <code class="code">\**</code> and occurrences of <code class="code">FS</code>
are in the same order as corresponding occurrences of <code class="code">\**</code>.
</p>
<p>Footnote text is formatted as paragraphs are, using analogous
parameters. The registers <code class="code">FI</code>, <code class="code">FPD</code>, <code class="code">FPS</code>, and
<code class="code">FVS</code> correspond to <code class="code">PI</code>, <code class="code">PD</code>, <code class="code">PS</code>, and <code class="code">CS</code>,
respectively; <code class="code">FPD</code>, <code class="code">FPS</code>, and <code class="code">FVS</code> are GNU extensions.
</p>
<p>The <code class="code">FF</code> register controls the formatting of automatically numbered
footnote paragraphs and those for which <code class="code">FS</code> is given a marker
argument. See <a class="xref" href="#ms-Document-Control-Settings">Document Control Settings</a>.
</p>
<p>The default footnote line length is 11/12ths of the normal line length
for compatibility with the expectations of historical <samp class="file">ms</samp>
documents; you may wish to set the <code class="code">FR</code> string to ‘<samp class="samp">1</samp>’ to align
with contemporary typesetting practices. In the
past,<a class="footnote" id="DOCF12" href="#FOOT12"><sup>12</sup></a> an <code class="code">FL</code> register
was used for the line length in footnotes; however, setting this
register at document initialization time had no effect on the footnote
line length in multi-column arrangements.<a class="footnote" id="DOCF13" href="#FOOT13"><sup>13</sup></a>
</p>
<p><code class="code">FR</code> should be used in preference to the old <code class="code">FL</code> register in
contemporary documents. The footnote line length is effectively
computed as ‘<samp class="samp"><i class="slanted">column-width</i> * \*[FR]</samp>’. If an absolute
footnote line length is required, recall that arithmetic expressions in
<code class="code">roff</code> input are evaluated strictly from left to right, with no
operator precedence (parentheses are honored).
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ds FR 0+3i \" Set footnote line length to 3 inches.
</pre></div></div>
<hr>
</div>
<div class="subsubsection-level-extent" id="ms-language-and-localization">
<div class="nav-panel">
<p>
Next: <a href="#ms-Page-Layout" accesskey="n" rel="next">Page layout</a>, Previous: <a href="#ms-Footnotes" accesskey="p" rel="prev">Footnotes</a>, Up: <a href="#ms-Body-Text" accesskey="u" rel="up">Body Text</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsubsection" id="Language-and-localization">4.6.5.11 Language and localization</h4>
<a class="index-entry-id" id="index-ms-macros_002c-language"></a>
<a class="index-entry-id" id="index-ms-macros_002c-localization"></a>
<a class="index-entry-id" id="index-language-_005bms_005d"></a>
<a class="index-entry-id" id="index-localization-_005bms_005d"></a>
<p><code class="code">groff</code> <samp class="file">ms</samp> provides several strings that you can customize
for your own purposes, or redefine to adapt the macro package to
languages other than English. It is already localized for
Czech, German, French, Italian, and Swedish. Load the desired
localization macro package after <samp class="file">ms</samp>; see the
<cite class="cite">groff_tmac<span class="r">(5)</span></cite> man page.
</p>
<table class="cartouche" border="1"><tr><td>
<div class="example">
<pre class="example-preformatted">$ groff -ms -mfr bienvenue.ms
</pre></div>
</td></tr></table>
<p>The following strings are available.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005bREFERENCES_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[REFERENCES]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bREFERENCES_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-REFERENCES-_005bms_005d"></a>
<p>Contains the string printed at the beginning of a references
(bibliography) page produced with GNU <cite class="cite">refer<span class="r">(1)</span></cite>. The default
is ‘<samp class="samp">References</samp>’.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005bABSTRACT_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[ABSTRACT]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bABSTRACT_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ABSTRACT-_005bms_005d"></a>
<p>Contains the string printed at the beginning of the abstract. The
default is ‘<samp class="samp">\f[I]ABSTRACT\f[]</samp>’; it includes font selection escape
sequences to set the word in italics.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005bTOC_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[TOC]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bTOC_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-TOC-_005bms_005d"></a>
<p>Contains the string printed at the beginning of the table of contents.
The default is ‘<samp class="samp">Table of Contents</samp>’.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005bMONTH1_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[MONTH1]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bMONTH1_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-MONTH1-_005bms_005d"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005c_002a_005bMONTH2_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[MONTH2]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bMONTH2_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-MONTH2-_005bms_005d"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005c_002a_005bMONTH3_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[MONTH3]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bMONTH3_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-MONTH3-_005bms_005d"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005c_002a_005bMONTH4_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[MONTH4]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bMONTH4_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-MONTH4-_005bms_005d"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005c_002a_005bMONTH5_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[MONTH5]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bMONTH5_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-MONTH5-_005bms_005d"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005c_002a_005bMONTH6_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[MONTH6]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bMONTH6_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-MONTH6-_005bms_005d"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005c_002a_005bMONTH7_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[MONTH7]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bMONTH7_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-MONTH7-_005bms_005d"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005c_002a_005bMONTH8_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[MONTH8]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bMONTH8_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-MONTH8-_005bms_005d"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005c_002a_005bMONTH9_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[MONTH9]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bMONTH9_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-MONTH9-_005bms_005d"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005c_002a_005bMONTH10_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[MONTH10]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bMONTH10_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-MONTH10-_005bms_005d"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005c_002a_005bMONTH11_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[MONTH11]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bMONTH11_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-MONTH11-_005bms_005d"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005c_002a_005bMONTH12_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[MONTH12]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bMONTH12_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-MONTH12-_005bms_005d"></a>
<p>Contain the full names of the calendar months. The defaults are in
English: ‘<samp class="samp">January</samp>’, ‘<samp class="samp">February</samp>’, and so on.
</p></dd></dl>
<hr>
</div>
</div>
<div class="subsection-level-extent" id="ms-Page-Layout">
<div class="nav-panel">
<p>
Next: <a href="#Differences-from-AT_0026T-ms" accesskey="n" rel="next">Differences from <abbr class="acronym">AT&T</abbr> <samp class="file">ms</samp></a>, Previous: <a href="#ms-Body-Text" accesskey="p" rel="prev">Body Text</a>, Up: <a href="#ms" accesskey="u" rel="up"><samp class="file">ms</samp></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Page-layout">4.6.6 Page layout</h4>
<a class="index-entry-id" id="index-ms-macros_002c-page-layout"></a>
<a class="index-entry-id" id="index-page-layout-_005bms_005d"></a>
<p><samp class="file">ms</samp>’s default page layout arranges text in a single column with
the page number between hyphens centered in a header on each page except
the first, and produces no footers. You can customize this arrangement.
</p>
<ul class="mini-toc">
<li><a href="#ms-Headers-and-Footers" accesskey="1">Headers and footers</a></li>
<li><a href="#Tab-Stops-in-ms" accesskey="2">Tab stops</a></li>
<li><a href="#ms-Margins" accesskey="3">Margins</a></li>
<li><a href="#ms-Multiple-Columns" accesskey="4">Multiple columns</a></li>
<li><a href="#ms-TOC" accesskey="5">Creating a table of contents</a></li>
</ul>
<hr>
<div class="subsubsection-level-extent" id="ms-Headers-and-Footers">
<div class="nav-panel">
<p>
Next: <a href="#Tab-Stops-in-ms" accesskey="n" rel="next">Tab stops</a>, Previous: <a href="#ms-Page-Layout" accesskey="p" rel="prev">Page layout</a>, Up: <a href="#ms-Page-Layout" accesskey="u" rel="up">Page layout</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsubsection" id="Headers-and-footers">4.6.6.1 Headers and footers</h4>
<a class="index-entry-id" id="index-ms-macros_002c-headers"></a>
<a class="index-entry-id" id="index-ms-macros_002c-footers"></a>
<a class="index-entry-id" id="index-headers-_005bms_005d"></a>
<a class="index-entry-id" id="index-footers-_005bms_005d"></a>
<p>There are multiple ways to produce headers and footers. One is to
define the strings <code class="code">LH</code>, <code class="code">CH</code>, and <code class="code">RH</code> to set the left,
center, and right headers, respectively; and <code class="code">LF</code>, <code class="code">CF</code>, and
<code class="code">RF</code> to set the left, center, and right footers. This approach
suffices for documents that do not distinguish odd- and even-numbered
pages.
</p>
<p>Another method is to call macros that set headers or footers for odd- or
even-numbered pages. Each such macro takes a delimited argument
separating the left, center, and right header or footer texts from each
other. You can replace the neutral apostrophes (<code class="code">'</code>) shown below
with any character not appearing in the header or footer text. These
macros are Berkeley extensions.
</p>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eOH"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.OH</code></strong> <var class="def-var-arguments"><code class="code">'</code><span class="r"><i class="slanted">left</i></span><code class="code">'</code><span class="r"><i class="slanted">center</i></span><code class="code">'</code><span class="r"><i class="slanted">right</i></span><code class="code">'</code></var><a class="copiable-link" href='#index-_002eOH'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-OH-_005bms_005d"></a>
</dd><dt class="deffnx defmacx-alias-deffnx def-cmd-deffn" id="index-_002eEH"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.EH</code></strong> <var class="def-var-arguments"><code class="code">'</code><span class="r"><i class="slanted">left</i></span><code class="code">'</code><span class="r"><i class="slanted">center</i></span><code class="code">'</code><span class="r"><i class="slanted">right</i></span><code class="code">'</code></var><a class="copiable-link" href='#index-_002eEH'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-EH-_005bms_005d"></a>
</dd><dt class="deffnx defmacx-alias-deffnx def-cmd-deffn" id="index-_002eOF"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.OF</code></strong> <var class="def-var-arguments"><code class="code">'</code><span class="r"><i class="slanted">left</i></span><code class="code">'</code><span class="r"><i class="slanted">center</i></span><code class="code">'</code><span class="r"><i class="slanted">right</i></span><code class="code">'</code></var><a class="copiable-link" href='#index-_002eOF'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-OF-_005bms_005d"></a>
</dd><dt class="deffnx defmacx-alias-deffnx def-cmd-deffn" id="index-_002eEF"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.EF</code></strong> <var class="def-var-arguments"><code class="code">'</code><span class="r"><i class="slanted">left</i></span><code class="code">'</code><span class="r"><i class="slanted">center</i></span><code class="code">'</code><span class="r"><i class="slanted">right</i></span><code class="code">'</code></var><a class="copiable-link" href='#index-_002eEF'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-EF-_005bms_005d"></a>
<p>The <code class="code">OH</code> and <code class="code">EH</code> macros define headers for odd- (recto)
and even-numbered (verso) pages, respectively; the <code class="code">OF</code> and
<code class="code">EF</code> macros define footers for them.
</p></dd></dl>
<p>With either method, a percent sign <code class="code">%</code> in header or footer text is
replaced by the current page number. By default, <samp class="file">ms</samp> places no
header on a page numbered “1” (regardless of its number format).
</p>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eP1"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.P1</code></strong><a class="copiable-link" href='#index-_002eP1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-P1-_005bms_005d"></a>
<p>Typeset the header even on page 1. To be effective, this macro
must be called before the header trap is sprung on any page numbered
“1”; in practice, unless your page numbering is unusual, this means
that you should call it early, before <code class="code">TL</code> or any heading or
paragraphing macro. This is a Berkeley extension.
</p></dd></dl>
<p>For even greater flexibility, <samp class="file">ms</samp> is designed to permit the
redefinition of the macros that are called when the <code class="code">groff</code> traps
that ordinarily cause the headers and footers to be output are sprung.
<code class="code">PT</code> (“page trap”) is called by <samp class="file">ms</samp> when the header is to
be written, and <code class="code">BT</code> (“bottom trap”) when the footer is to be.
The <code class="code">groff</code> page location trap that <samp class="file">ms</samp> sets up to format the
header also calls the (normally undefined) <code class="code">HD</code> macro after
<code class="code">PT</code>; you can define <code class="code">HD</code> if you need additional processing
after setting the header (for example, to draw a line below it).
The <code class="code">HD</code> hook is a Berkeley extension. Any such macros you
(re)define must implement any desired specialization for odd-, even-, or
first numbered pages.
</p>
<hr>
</div>
<div class="subsubsection-level-extent" id="Tab-Stops-in-ms">
<div class="nav-panel">
<p>
Next: <a href="#ms-Margins" accesskey="n" rel="next">Margins</a>, Previous: <a href="#ms-Headers-and-Footers" accesskey="p" rel="prev">Headers and footers</a>, Up: <a href="#ms-Page-Layout" accesskey="u" rel="up">Page layout</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsubsection" id="Tab-stops">4.6.6.2 Tab stops</h4>
<p>Use the <code class="code">ta</code> request to define tab stops as needed. See <a class="xref" href="#Tabs-and-Fields">Tabs and Fields</a>.
</p>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eTA"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.TA</code></strong><a class="copiable-link" href='#index-_002eTA'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-TA-_005bms_005d"></a>
<p>Reset the tab stops to the <samp class="file">ms</samp> default (every 5 ens).
Redefine this macro to create a different set of default tab stops.
</p></dd></dl>
<hr>
</div>
<div class="subsubsection-level-extent" id="ms-Margins">
<div class="nav-panel">
<p>
Next: <a href="#ms-Multiple-Columns" accesskey="n" rel="next">Multiple columns</a>, Previous: <a href="#Tab-Stops-in-ms" accesskey="p" rel="prev">Tab stops</a>, Up: <a href="#ms-Page-Layout" accesskey="u" rel="up">Page layout</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsubsection" id="Margins">4.6.6.3 Margins</h4>
<a class="index-entry-id" id="index-ms-macros_002c-margins"></a>
<p>Control margins using the registers summarized in “Margin settings” in
<a class="ref" href="#ms-Document-Control-Settings">Document Control Settings</a> above. There is no setting for the
right margin; the combination of page offset <code class="code">\n[PO]</code> and line
length <code class="code">\n[LL]</code> determines it.
</p>
<hr>
</div>
<div class="subsubsection-level-extent" id="ms-Multiple-Columns">
<div class="nav-panel">
<p>
Next: <a href="#ms-TOC" accesskey="n" rel="next">Creating a table of contents</a>, Previous: <a href="#ms-Margins" accesskey="p" rel="prev">Margins</a>, Up: <a href="#ms-Page-Layout" accesskey="u" rel="up">Page layout</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsubsection" id="Multiple-columns">4.6.6.4 Multiple columns</h4>
<a class="index-entry-id" id="index-ms-macros_002c-multiple-columns"></a>
<a class="index-entry-id" id="index-multiple-columns-_005bms_005d"></a>
<p><samp class="file">ms</samp> can set text in as many columns as reasonably fit on the page.
The following macros force a page break if a multi-column layout is
active when they are called. The <code class="code">MINGW</code> register stores the
default minimum gutter width; it is a GNU extension. When multiple
columns are in use, keeps and the <code class="code">HORPHANS</code> and <code class="code">PORPHANS</code>
registers work with respect to column breaks instead of page breaks.
</p>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002e1C"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.1C</code></strong><a class="copiable-link" href='#index-_002e1C'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-1C-_005bms_005d"></a>
<p>Arrange page text in a single column (the default).
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002e2C"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.2C</code></strong><a class="copiable-link" href='#index-_002e2C'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-2C-_005bms_005d"></a>
<p>Arrange page text in two columns.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eMC"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.MC</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">column-width</i></span> [<span class="r"><i class="slanted">gutter-width</i></span>]]</var><a class="copiable-link" href='#index-_002eMC'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-MC-_005bms_005d"></a>
<p>Arrange page text in multiple columns. If you specify no arguments, it
is equivalent to the <code class="code">2C</code> macro. Otherwise, <var class="var">column-width</var> is
the width of each column and <var class="var">gutter-width</var> is the minimum distance
between columns.
</p></dd></dl>
<hr>
</div>
<div class="subsubsection-level-extent" id="ms-TOC">
<div class="nav-panel">
<p>
Next: <a href="#Differences-from-AT_0026T-ms" accesskey="n" rel="next">Differences from <abbr class="acronym">AT&T</abbr> <samp class="file">ms</samp></a>, Previous: <a href="#ms-Multiple-Columns" accesskey="p" rel="prev">Multiple columns</a>, Up: <a href="#ms-Page-Layout" accesskey="u" rel="up">Page layout</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsubsection" id="Creating-a-table-of-contents">4.6.6.5 Creating a table of contents</h4>
<a class="index-entry-id" id="index-ms-macros_002c-creating-table-of-contents"></a>
<a class="index-entry-id" id="index-table-of-contents_002c-creating-_005bms_005d"></a>
<p>Because <code class="code">roff</code> formatters process their input in a single pass,
material on page 50, for example, cannot influence what appears on
page 1—this poses a challenge for a table of contents at its
traditional location in front matter, if you wish to avoid manually
maintaining it. <samp class="file">ms</samp> enables the collection of material to be
presented in the table of contents as it appears, saving its page number
along with it, and then emitting the collected contents on demand toward
the end of the document. The table of contents can then be resequenced
to its desired location by physically rearranging the pages of a printed
document, or as part of post-processing—with a <cite class="cite">sed<span class="r">(1)</span></cite>
script to reorder the pages in <code class="command">troff</code>’s output, with
<cite class="cite">pdfjam<span class="r">(1)</span></cite>, or with <cite class="cite">gropdf<span class="r">(1)</span></cite>’s
‘<samp class="samp">.pdfswitchtopage</samp>’ feature, for example.
</p>
<p>Define an entry to appear in the table of contents by bracketing its
text between calls to the <code class="code">XS</code> and <code class="code">XE</code> macros. A typical
application is to call them immediately after <code class="code">NH</code> or <code class="code">SH</code> and
repeat the heading text within them. The <code class="code">XA</code> macro, used within
‘<samp class="samp">.XS</samp>’/‘<samp class="samp">.XE</samp>’ pairs, supplements an entry—for instance, when
it requires multiple output lines, whether because a heading is too long
to fit or because style dictates that page numbers not be repeated. You
may wish to indent the text thus wrapped to correspond to its heading
depth; this can be done in the entry text by prefixing it with tabs or
horizontal motion escape sequences, or by providing a second argument to
the <code class="code">XA</code> macro. <code class="code">XS</code> and <code class="code">XA</code> automatically associate
the page number where they are called with the text following them, but
they accept arguments to override this behavior. At the end of the
document, call <code class="code">TC</code> or <code class="code">PX</code> to emit the table of contents;
<code class="code">TC</code> resets the page number to ‘<samp class="samp">i</samp>’ (Roman numeral one), and
then calls <code class="code">PX</code>. All of these macros are Berkeley extensions.
</p>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eXS"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.XS</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">page-number</i></span>]</var><a class="copiable-link" href='#index-_002eXS'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-XS-_005bms_005d"></a>
</dd><dt class="deffnx defmacx-alias-deffnx def-cmd-deffn" id="index-_002eXA"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.XA</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">page-number</i></span> [<span class="r"><i class="slanted">indentation</i></span>]]</var><a class="copiable-link" href='#index-_002eXA'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-XA-_005bms_005d"></a>
</dd><dt class="deffnx defmacx-alias-deffnx def-cmd-deffn" id="index-_002eXE"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.XE</code></strong><a class="copiable-link" href='#index-_002eXE'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-XE-_005bms_005d"></a>
<p>Begin, supplement, and end a table of contents entry. Each entry is
associated with <var class="var">page-number</var> (otherwise the current page number); a
<var class="var">page-number</var> of ‘<samp class="samp">no</samp>’ prevents a leader and page number from
being emitted for that entry. Use of <code class="code">XA</code> within
<code class="code">XS</code>/<code class="code">XE</code> is optional; it can be repeated. If
<var class="var">indentation</var> is present, a supplemental entry is indented by that
amount; ens are assumed if no unit is indicated. Text on input lines
between <code class="code">XS</code> and <code class="code">XE</code> is stored for later recall by <code class="code">PX</code>.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002ePX"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.PX</code></strong> <var class="def-var-arguments">[<code class="code">no</code>]</var><a class="copiable-link" href='#index-_002ePX'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-PX-_005bms_005d"></a>
<p>Switch to single-column layout. Unless <code class="code">no</code> is specified, center
and interpolate the <code class="code">TOC</code> string in bold and two points larger than
the body text. Emit the table of contents entries.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eTC"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.TC</code></strong> <var class="def-var-arguments">[<code class="code">no</code>]</var><a class="copiable-link" href='#index-_002eTC'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-TC-_005bms_005d"></a>
<p>Set the page number to 1, the page number format to lowercase Roman
numerals, and call <code class="code">PX</code> (with a <code class="code">no</code> argument, if present).
</p></dd></dl>
<p>Here’s an example of typical <samp class="file">ms</samp> table of contents preparation.
We employ horizontal escape sequences <code class="code">\h</code> to indent the entries by
sectioning depth.
</p>
<table class="cartouche" border="1"><tr><td>
<div class="example">
<pre class="example-preformatted">.NH 1
Introduction
.XS
Introduction
.XE
<span class="r">…</span>
.NH 2
Methodology
.XS
\h'2n'Methodology
.XA
\h'4n'Fassbinder's Approach
\h'4n'Kahiu's Approach
.XE
<span class="r">…</span>
.NH 1
Findings
.XS
Findings
.XE
<span class="r">…</span>
.TC
</pre></div>
</td></tr></table>
<p>The remaining features in this subsubsection are GNU extensions.
<code class="code">groff</code> <samp class="file">ms</samp> obviates the need to repeat heading text after
<code class="code">XS</code> calls. Call <code class="code">XN</code> and <code class="code">XH</code> after <code class="code">NH</code> and
<code class="code">SH</code>, respectively.
</p>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eXN"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.XN</code></strong> <var class="def-var-arguments"><span class="r"><i class="slanted">heading-text</i></span></var><a class="copiable-link" href='#index-_002eXN'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-XN-_005bms_005d"></a>
</dd><dt class="deffnx defmacx-alias-deffnx def-cmd-deffn" id="index-_002eXH"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.XH</code></strong> <var class="def-var-arguments"><span class="r"><i class="slanted">depth</i></span> <span class="r"><i class="slanted">heading-text</i></span></var><a class="copiable-link" href='#index-_002eXH'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-XH-_005bms_005d"></a>
<p>Format <var class="var">heading-text</var> and create a corresponding table of contents
entry. <code class="code">XN</code> computes the indentation from the depth of the
preceding <code class="code">NH</code> call; <code class="code">XH</code> requires a <var class="var">depth</var> argument to
do so.
</p></dd></dl>
<p><code class="code">groff</code> <samp class="file">ms</samp> encourages customization of table of contents
entry production.
</p>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eXN_002dREPLACEMENT"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.XN-REPLACEMENT</code></strong> <var class="def-var-arguments"><span class="r"><i class="slanted">heading-text</i></span></var><a class="copiable-link" href='#index-_002eXN_002dREPLACEMENT'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-XN_002dREPLACEMENT-_005bms_005d"></a>
</dd><dt class="deffnx defmacx-alias-deffnx def-cmd-deffn" id="index-_002eXH_002dREPLACEMENT"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.XH-REPLACEMENT</code></strong> <var class="def-var-arguments"><span class="r"><i class="slanted">depth</i></span> <span class="r"><i class="slanted">heading-text</i></span></var><a class="copiable-link" href='#index-_002eXH_002dREPLACEMENT'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-XH_002dREPLACEMENT-_005bms_005d"></a>
<p>These hook macros implement <code class="code">XN</code> and <code class="code">XH</code>, respectively.
They call <code class="code">XN-INIT</code> and pass their <var class="var">heading-text</var> arguments to
<code class="code">XH-UPDATE-TOC</code>.
</p></dd></dl>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eXN_002dINIT"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.XN-INIT</code></strong><a class="copiable-link" href='#index-_002eXN_002dINIT'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-XN_002dINIT-_005bms_005d"></a>
</dd><dt class="deffnx defmacx-alias-deffnx def-cmd-deffn" id="index-_002eXH_002dUPDATE_002dTOC"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.XH-UPDATE-TOC</code></strong> <var class="def-var-arguments"><span class="r"><i class="slanted">depth</i></span> <span class="r"><i class="slanted">heading-text</i></span></var><a class="copiable-link" href='#index-_002eXH_002dUPDATE_002dTOC'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-XH_002dUPDATE_002dTOC-_005bms_005d"></a>
<p>The <code class="code">XN-INIT</code> hook macro does nothing by default.
<code class="code">XH-UPDATE-TOC</code> brackets <var class="var">heading-text</var> with <code class="code">XS</code> and
<code class="code">XE</code> calls, indenting it by 2 ens per level of <var class="var">depth</var> beyond
the first.
</p></dd></dl>
<p>We could therefore produce a table of contents similar to that in the
previous example with fewer macro calls. (The difference is that this
input follows the “Approach” entries with leaders and page numbers.)
</p>
<table class="cartouche" border="1"><tr><td>
<div class="example">
<pre class="example-preformatted">.NH 1
.XN Introduction
<span class="r">…</span>
.NH 2
.XN Methodology
.XH 3 "Fassbinder's Approach"
.XH 3 "Kahiu's Approach"
<span class="r">…</span>
.NH 1
.XN Findings
<span class="r">…</span>
</pre></div>
</td></tr></table>
<p>To get the section number of the numbered headings into the table of
contents entries, we might define <code class="code">XN-REPLACEMENT</code> as follows.
(We obtain the heading depth from <code class="code">groff</code> <samp class="file">ms</samp>’s internal
register <code class="code">nh*hl</code>.)
</p>
<table class="cartouche" border="1"><tr><td>
<div class="example">
<pre class="example-preformatted">.de XN-REPLACEMENT
.XN-INIT
.XH-UPDATE-TOC \\n[nh*hl] \\$@
\&\\*[SN] \\$*
..
</pre></div>
</td></tr></table>
<p>You can change the style of the leader that bridges each table of
contents entry with its page number; define the <code class="code">TC-LEADER</code> special
character by using the <code class="code">char</code> request. A typical leader combines
the dot glyph ‘<samp class="samp">.</samp>’ with a horizontal motion escape sequence to
spread the dots. The width of the page number field is stored in the
<code class="code">TC-MARGIN</code> register.
</p>
<hr>
</div>
</div>
<div class="subsection-level-extent" id="Differences-from-AT_0026T-ms">
<div class="nav-panel">
<p>
Next: <a href="#ms-Naming-Conventions" accesskey="n" rel="next">Naming Conventions</a>, Previous: <a href="#ms-Page-Layout" accesskey="p" rel="prev">Page layout</a>, Up: <a href="#ms" accesskey="u" rel="up"><samp class="file">ms</samp></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Differences-from-AT_0026T-ms-1">4.6.7 Differences from <abbr class="acronym">AT&T</abbr> <samp class="file">ms</samp></h4>
<a class="index-entry-id" id="index-ms-macros_002c-groff-differences-from-AT_0026T"></a>
<a class="index-entry-id" id="index-AT_0026T-ms_002c-macro-package-differences"></a>
<p>The <code class="code">groff</code> <samp class="file">ms</samp> macros are an independent reimplementation,
using no <abbr class="acronym">AT&T</abbr> code. Since they take advantage of the extended
features of <code class="code">groff</code>, they cannot be used with <abbr class="acronym">AT&T</abbr>
<code class="code">troff</code>. <code class="code">groff</code> <samp class="file">ms</samp> supports features described above
as Berkeley and Tenth Edition Research Unix extensions, and adds several
of its own.
</p>
<ul class="itemize mark-bullet">
<li>The internals of <code class="code">groff</code> <samp class="file">ms</samp> differ from the internals of
<abbr class="acronym">AT&T</abbr> <samp class="file">ms</samp>. Documents that depend upon implementation
details of <abbr class="acronym">AT&T</abbr> <samp class="file">ms</samp> may not format properly with
<code class="code">groff</code> <samp class="file">ms</samp>. Such details include macros whose function was
not documented in the <abbr class="acronym">AT&T</abbr> <samp class="file">ms</samp>
manual.<a class="footnote" id="DOCF14" href="#FOOT14"><sup>14</sup></a>
</li><li>The error-handling policy of <code class="code">groff</code> <samp class="file">ms</samp> is to detect and
report errors, rather than to ignore them silently.
</li><li>Tenth Edition Research Unix supported <code class="code">P1</code>/<code class="code">P2</code> macros to bracket code
examples; <code class="code">groff</code> <samp class="file">ms</samp> does not.
</li><li><code class="code">groff</code> <samp class="file">ms</samp> does not work in GNU <code class="code">troff</code>’s
<abbr class="acronym">AT&T</abbr> compatibility mode. If loaded when that mode is enabled,
it aborts processing with a diagnostic message.
</li><li>Multiple line spacing is not supported. Use a larger vertical spacing
instead.
</li><li><code class="code">groff</code> <samp class="file">ms</samp> uses the same header and footer defaults in both
<code class="code">nroff</code> and <code class="code">troff</code> modes as <abbr class="acronym">AT&T</abbr> <samp class="file">ms</samp> does in
<code class="code">troff</code> mode; <abbr class="acronym">AT&T</abbr>’s default in <code class="code">nroff</code> mode is to
put the date, in U.S. traditional format (e.g., “January 1, 2021”),
in the center footer (the <code class="code">CF</code> string).
</li><li>Many <code class="code">groff</code> <samp class="file">ms</samp> macros, including those for paragraphs,
headings, and displays, cause a reset of paragraph rendering parameters,
and may change the indentation; they do so not by incrementing or
decrementing it, but by setting it absolutely. This can cause problems
for documents that define additional macros of their own that try to
manipulate indentation. Use the <samp class="file">ms</samp> <code class="code">RS</code> and <code class="code">RE</code>
macros instead of the <code class="code">in</code> request.
</li><li><a class="index-entry-id" id="index-fractional-type-sizes-in-ms-macros"></a>
<a class="index-entry-id" id="index-ms-macros_002c-fractional-type-sizes-in"></a>
<abbr class="acronym">AT&T</abbr> <samp class="file">ms</samp> interpreted the values of the registers
<code class="code">PS</code> and <code class="code">VS</code> in points, and did not support the use of
scaling units with them. <code class="code">groff</code> <samp class="file">ms</samp> interprets values of
the registers <code class="code">PS</code>, <code class="code">VS</code>, <code class="code">FPS</code>, and <code class="code">FVS</code> equal to
or larger than 1,000 (one thousand) as decimal fractions multiplied
by 1,000.<a class="footnote" id="DOCF15" href="#FOOT15"><sup>15</sup></a> This threshold makes use of a
scaling unit with these parameters practical for high-resolution
devices while preserving backward compatibility. It also permits
expression of non-integral type sizes. For example, ‘<samp class="samp">groff
-rPS=10.5p</samp>’ at the shell prompt is equivalent to placing ‘<samp class="samp">.nr PS
10.5p</samp>’ at the beginning of the document.
</li><li><abbr class="acronym">AT&T</abbr> <samp class="file">ms</samp>’s <code class="code">AU</code> macro supported arguments used with
some document types; <code class="code">groff</code> <samp class="file">ms</samp> does not.
</li><li>Right-aligned displays are available. The <abbr class="acronym">AT&T</abbr> <samp class="file">ms</samp>
manual observes that “it is tempting to assume that ‘<samp class="samp">.DS R</samp>’ will
right adjust lines, but it doesn’t work”. In <code class="code">groff</code> <samp class="file">ms</samp>,
it does.
</li><li>To make <code class="code">groff</code> <samp class="file">ms</samp> use the default page offset (which also
specifies the left margin), the <code class="code">PO</code> register must stay undefined
until the first <samp class="file">ms</samp> macro is called.
<p>This implies that ‘<samp class="samp">\n[PO]</samp>’ should not be used early in the
document, unless it is changed also: accessing an undefined register
automatically defines it.
</p>
</li><li><code class="code">groff</code> <samp class="file">ms</samp> supports the <code class="code">PN</code> register, but it is not
necessary; you can access the page number via the usual <code class="code">%</code>
register and invoke the <code class="code">af</code> request to assign a different format
to it if desired.<a class="footnote" id="DOCF16" href="#FOOT16"><sup>16</sup></a>
</li><li>The <abbr class="acronym">AT&T</abbr> <samp class="file">ms</samp> manual documents registers <code class="code">CW</code> and
<code class="code">GW</code> as setting the default column width and “intercolumn gap”,
respectively, and which applied when <code class="code">MC</code> was called with fewer
than two arguments. <code class="code">groff</code> <samp class="file">ms</samp> instead treats <code class="code">MC</code>
without arguments as synonymous with <code class="code">2C</code>; there is thus no
occasion for a default column width register. Further, the <code class="code">MINGW</code>
register and the second argument to <code class="code">MC</code> specify a <em class="emph">minimum</em>
space between columns, not the fixed gutter width of <abbr class="acronym">AT&T</abbr>
<samp class="file">ms</samp>.
</li><li>The <abbr class="acronym">AT&T</abbr> <samp class="file">ms</samp> manual did not document the <code class="code">QI</code>
register; Berkeley and <code class="code">groff</code> <samp class="file">ms</samp> do.
</li></ul>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005bGS_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[GS]</code></strong><a class="copiable-link" href='#index-_005cn_005bGS_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-GS-_005bms_005d"></a>
<p>The register <code class="code">GS</code> is set to 1 by the <code class="code">groff</code> <samp class="file">ms</samp>
macros, but is not used by the <abbr class="acronym">AT&T</abbr> <samp class="file">ms</samp> package.
Documents that need to determine whether they are being formatted with
<code class="code">groff</code> <samp class="file">ms</samp> or another implementation should test this
register.
</p></dd></dl>
<ul class="mini-toc">
<li><a href="#Missing-Unix-Version-7-ms-Macros" accesskey="1">Unix Version 7 <samp class="file">ms</samp> macros not implemented by <code class="code">groff</code> <samp class="file">ms</samp></a></li>
</ul>
<hr>
<div class="subsubsection-level-extent" id="Missing-Unix-Version-7-ms-Macros">
<div class="nav-panel">
<p>
Previous: <a href="#Differences-from-AT_0026T-ms" accesskey="p" rel="prev">Differences from <abbr class="acronym">AT&T</abbr> <samp class="file">ms</samp></a>, Up: <a href="#Differences-from-AT_0026T-ms" accesskey="u" rel="up">Differences from <abbr class="acronym">AT&T</abbr> <samp class="file">ms</samp></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsubsection" id="Unix-Version-7-ms-macros-not-implemented-by-groff-ms">4.6.7.1 Unix Version 7 <samp class="file">ms</samp> macros not implemented by <code class="code">groff</code> <samp class="file">ms</samp></h4>
<p>Several macros described in the Unix Version 7 <samp class="file">ms</samp>
documentation are unimplemented by <code class="code">groff</code> <samp class="file">ms</samp> because they
are specific to the requirements of documents produced internally by
Bell Laboratories, some of which also require a glyph for the Bell
System logo that <code class="code">groff</code> does not support. These macros
implemented several document type formats
(<code class="code">EG</code>, <code class="code">IM</code>, <code class="code">MF</code>, <code class="code">MR</code>, <code class="code">TM</code>, <code class="code">TR</code>), were meaningful only in conjunction with the use of certain document
types
(<code class="code">AT</code>, <code class="code">CS</code>, <code class="code">CT</code>, <code class="code">OK</code>, <code class="code">SG</code>), stored the postal addresses of Bell Labs sites
(<code class="code">HO</code>, <code class="code">IH</code>, <code class="code">MH</code>, <code class="code">PY</code>, <code class="code">WH</code>), or lacked a stable definition over time
(<code class="code">UX</code>). To compatibly render historical <samp class="file">ms</samp> documents using these macros,
we advise your documents to invoke the <code class="code">rm</code> request to remove any
such macros it uses and then define replacements with an authentically
typeset original at hand.<a class="footnote" id="DOCF17" href="#FOOT17"><sup>17</sup></a> For
informal purposes, a simple definition of <code class="code">UX</code> should maintain the
readability of the document’s substance.
</p>
<table class="cartouche" border="1"><tr><td>
<div class="example">
<pre class="example-preformatted">.rm UX
.ds UX Unix\"
</pre></div>
</td></tr></table>
<hr>
</div>
</div>
<div class="subsection-level-extent" id="ms-Legacy-Features">
<div class="nav-panel">
<p>
Next: <a href="#ms-Naming-Conventions" accesskey="n" rel="next">Naming Conventions</a>, Previous: <a href="#Differences-from-AT_0026T-ms" accesskey="p" rel="prev">Differences from <abbr class="acronym">AT&T</abbr> <samp class="file">ms</samp></a>, Up: <a href="#ms" accesskey="u" rel="up"><samp class="file">ms</samp></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Legacy-Features">4.6.8 Legacy Features</h4>
<a class="index-entry-id" id="index-ms-macros_002c-strings"></a>
<a class="index-entry-id" id="index-ms-macros_002c-special-characters"></a>
<a class="index-entry-id" id="index-ms-macros_002c-accent-marks"></a>
<a class="index-entry-id" id="index-accent-marks-_005bms_005d"></a>
<a class="index-entry-id" id="index-special-characters-_005bms_005d"></a>
<a class="index-entry-id" id="index-strings-_005bms_005d"></a>
<p><code class="code">groff</code> <samp class="file">ms</samp> retains some legacy features solely to support
formatting of historical documents; contemporary ones should not use
them because they can render poorly. See the <cite class="cite">groff_char<span class="r">(7)</span></cite>
man page.
</p>
<ul class="mini-toc">
<li><a href="#AT_0026T-accent-mark-strings" accesskey="1">AT&T accent mark strings</a></li>
<li><a href="#Berkeley-accent-mark-and-glyph-strings" accesskey="2">Berkeley accent mark and glyph strings</a></li>
</ul>
<div class="unnumberedsubsubsec-level-extent" id="AT_0026T-accent-mark-strings">
<h4 class="unnumberedsubsubsec">AT&T accent mark strings</h4>
<p>AT&T <samp class="file">ms</samp> defined accent mark strings as follows.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005b_0027_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[<code class="code">'</code>]</code></strong><a class="copiable-link" href='#index-_005c_002a_005b_0027_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_0027-_005bms_005d"></a>
<p>Apply acute accent to subsequent glyph.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005b_0060_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[<code class="code">`</code>]</code></strong><a class="copiable-link" href='#index-_005c_002a_005b_0060_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_0060-_005bms_005d"></a>
<p>Apply grave accent to subsequent glyph.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005b_003a_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[:]</code></strong><a class="copiable-link" href='#index-_005c_002a_005b_003a_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_003a-_005bms_005d"></a>
<p>Apply dieresis (umlaut) to subsequent glyph.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005b_005e_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[^]</code></strong><a class="copiable-link" href='#index-_005c_002a_005b_005e_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005e-_005bms_005d"></a>
<p>Apply circumflex accent to subsequent glyph.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005b_007e_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[~]</code></strong><a class="copiable-link" href='#index-_005c_002a_005b_007e_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_007e-_005bms_005d"></a>
<p>Apply tilde accent to subsequent glyph.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005bC_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[C]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bC_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-C-_005bms_005d"></a>
<p>Apply caron to subsequent glyph.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005b_002c_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[,]</code></strong><a class="copiable-link" href='#index-_005c_002a_005b_002c_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002c-_005bms_005d"></a>
<p>Apply cedilla to subsequent glyph.
</p></dd></dl>
</div>
<div class="unnumberedsubsubsec-level-extent" id="Berkeley-accent-mark-and-glyph-strings">
<h4 class="unnumberedsubsubsec">Berkeley accent mark and glyph strings</h4>
<p>Berkeley <samp class="file">ms</samp> offered an <code class="code">AM</code> macro; calling it redefined the
AT&T accent mark strings (except for ‘<samp class="samp">\*C</samp>’), applied them to the
<em class="emph">preceding</em> glyph, and defined additional strings, some for spacing
glyphs.
</p>
<dl class="first-deffn first-defmac-alias-first-deffn">
<dt class="deffn defmac-alias-deffn" id="index-_002eAM"><span class="category-def">Macro: </span><span><strong class="def-name"><code class="t">.AM</code></strong><a class="copiable-link" href='#index-_002eAM'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-AM-_005bms_005d"></a>
<p>Enable alternative accent mark and glyph-producing strings.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005b_0027_005d-1"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[<code class="code">'</code>]</code></strong><a class="copiable-link" href='#index-_005c_002a_005b_0027_005d-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_0027-_005bms_005d-1"></a>
<p>Apply acute accent to preceding glyph.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005b_0060_005d-1"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[<code class="code">`</code>]</code></strong><a class="copiable-link" href='#index-_005c_002a_005b_0060_005d-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_0060-_005bms_005d-1"></a>
<p>Apply grave accent to preceding glyph.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005b_003a_005d-1"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[:]</code></strong><a class="copiable-link" href='#index-_005c_002a_005b_003a_005d-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_003a-_005bms_005d-1"></a>
<p>Apply dieresis (umlaut) to preceding glyph.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005b_005e_005d-1"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[^]</code></strong><a class="copiable-link" href='#index-_005c_002a_005b_005e_005d-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005e-_005bms_005d-1"></a>
<p>Apply circumflex accent to preceding glyph.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005b_007e_005d-1"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[~]</code></strong><a class="copiable-link" href='#index-_005c_002a_005b_007e_005d-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_007e-_005bms_005d-1"></a>
<p>Apply tilde accent to preceding glyph.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005b_002c_005d-1"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[,]</code></strong><a class="copiable-link" href='#index-_005c_002a_005b_002c_005d-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002c-_005bms_005d-1"></a>
<p>Apply cedilla to preceding glyph.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005b_002f_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[/]</code></strong><a class="copiable-link" href='#index-_005c_002a_005b_002f_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002f-_005bms_005d"></a>
<p>Apply stroke (slash) to preceding glyph.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005bv_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[v]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bv_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-v-_005bms_005d"></a>
<p>Apply caron to preceding glyph.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005b_005f_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[_]</code></strong><a class="copiable-link" href='#index-_005c_002a_005b_005f_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005f-_005bms_005d"></a>
<p>Apply macron to preceding glyph.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005b_002e_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[.]</code></strong><a class="copiable-link" href='#index-_005c_002a_005b_002e_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002e-_005bms_005d"></a>
<p>Apply underdot to preceding glyph.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005bo_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[o]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bo_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-o-_005bms_005d"></a>
<p>Apply ring accent to preceding glyph.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005b_003f_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[?]</code></strong><a class="copiable-link" href='#index-_005c_002a_005b_003f_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_003f-_005bms_005d"></a>
<p>Interpolate inverted question mark.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005b_0021_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[!]</code></strong><a class="copiable-link" href='#index-_005c_002a_005b_0021_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_0021-_005bms_005d"></a>
<p>Interpolate inverted exclamation mark.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005b8_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[8]</code></strong><a class="copiable-link" href='#index-_005c_002a_005b8_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-8-_005bms_005d"></a>
<p>Interpolate small letter sharp s.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005bq_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[q]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bq_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-q-_005bms_005d"></a>
<p>Interpolate small letter o with hook accent (ogonek).
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005b3_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[3]</code></strong><a class="copiable-link" href='#index-_005c_002a_005b3_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-3-_005bms_005d"></a>
<p>Interpolate small letter yogh.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005bd_002d_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[d-]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bd_002d_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-d_002d-_005bms_005d"></a>
<p>Interpolate small letter eth.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005bD_002d_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[D-]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bD_002d_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-D_002d-_005bms_005d"></a>
<p>Interpolate capital letter eth.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005bth_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[th]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bth_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-th-_005bms_005d"></a>
<p>Interpolate small letter thorn.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005bTh_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[Th]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bTh_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-Th-_005bms_005d"></a>
<p>Interpolate capital letter thorn.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005bae_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[ae]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bae_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ae-_005bms_005d"></a>
<p>Interpolate small ligature.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005bAe_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[Ae]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bAe_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-Ae-_005bms_005d"></a>
<p>Interpolate capital ligature.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005boe_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[oe]</code></strong><a class="copiable-link" href='#index-_005c_002a_005boe_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-oe-_005bms_005d"></a>
<p>Interpolate small oe ligature.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005bOE_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[OE]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bOE_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-OE-_005bms_005d"></a>
<p>Interpolate capital OE ligature.
</p></dd></dl>
<hr>
</div>
</div>
<div class="subsection-level-extent" id="ms-Naming-Conventions">
<div class="nav-panel">
<p>
Previous: <a href="#ms-Legacy-Features" accesskey="p" rel="prev">Legacy Features</a>, Up: <a href="#ms" accesskey="u" rel="up"><samp class="file">ms</samp></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Naming-Conventions">4.6.9 Naming Conventions</h4>
<a class="index-entry-id" id="index-ms-macros_002c-naming-conventions"></a>
<a class="index-entry-id" id="index-naming-conventions_002c-ms-macros"></a>
<p>The following conventions are used for names of macros, strings, and
registers. External names available to documents that use the
<code class="code">groff</code> <samp class="file">ms</samp> macros contain only uppercase letters and digits.
</p>
<p>Internally, the macros are divided into modules. Conventions for
identifier names are as follows.
</p>
<ul class="itemize mark-bullet">
<li>Names used only within one module are of the form
<var class="var">module</var><code class="code">*</code><var class="var">name</var>.
</li><li>Names used outside the module in which they are defined are of the form
<var class="var">module</var><code class="code">@</code><var class="var">name</var>.
</li><li>Names associated with a particular environment are of the form
<var class="var">environment</var><code class="code">:</code><var class="var">name</var>; these are used only within the
<code class="code">par</code> module.
</li><li><var class="var">name</var> does not have a module prefix.
</li><li>Constructed names used to implement arrays are of the form
<var class="var">array</var><code class="code">!</code><var class="var">index</var>.
</li></ul>
<p>Thus the <code class="code">groff</code> <samp class="file">ms</samp> macros reserve the following names.
</p>
<ul class="itemize mark-bullet">
<li>Names containing the characters <code class="code">*</code>, <code class="code">@</code>, and <code class="code">:</code>.
</li><li>Names containing only uppercase letters and digits.
</li></ul>
<hr>
</div>
</div>
</div>
<div class="chapter-level-extent" id="GNU-troff-Reference">
<div class="nav-panel">
<p>
Next: <a href="#File-Formats" accesskey="n" rel="next">File Formats</a>, Previous: <a href="#Major-Macro-Packages" accesskey="p" rel="prev">Macro Packages</a>, Up: <a href="#Top" accesskey="u" rel="up">GNU <code class="code">troff</code></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h2 class="chapter" id="GNU-troff-Reference-1">5 GNU <code class="code">troff</code> Reference</h2>
<a class="index-entry-id" id="index-reference_002c-gtroff"></a>
<a class="index-entry-id" id="index-gtroff_002c-reference"></a>
<p>This chapter covers <em class="emph">all</em> of the facilities of the GNU
<code class="code">troff</code> formatting engine. Users of macro packages may skip it if
not interested in details.
</p>
<ul class="mini-toc">
<li><a href="#Text" accesskey="1">Text</a></li>
<li><a href="#Page-Geometry" accesskey="2">Page Geometry</a></li>
<li><a href="#Measurements" accesskey="3">Measurements</a></li>
<li><a href="#Numeric-Expressions" accesskey="4">Numeric Expressions</a></li>
<li><a href="#Identifiers" accesskey="5">Identifiers</a></li>
<li><a href="#Formatter-Instructions" accesskey="6">Formatter Instructions</a></li>
<li><a href="#Comments" accesskey="7">Comments</a></li>
<li><a href="#Registers" accesskey="8">Registers</a></li>
<li><a href="#Manipulating-Filling-and-Adjustment" accesskey="9">Manipulating Filling and Adjustment</a></li>
<li><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></li>
<li><a href="#Manipulating-Spacing">Manipulating Spacing</a></li>
<li><a href="#Tabs-and-Fields">Tabs and Fields</a></li>
<li><a href="#Character-Translations">Character Translations</a></li>
<li><a href="#troff-and-nroff-Modes"><code class="code">troff</code> and <code class="code">nroff</code> Modes</a></li>
<li><a href="#Line-Layout">Line Layout</a></li>
<li><a href="#Line-Continuation">Line Continuation</a></li>
<li><a href="#Page-Layout">Page Layout</a></li>
<li><a href="#Page-Control">Page Control</a></li>
<li><a href="#Using-Fonts">Using Fonts</a></li>
<li><a href="#Manipulating-Type-Size-and-Vertical-Spacing">Manipulating Type Size and Vertical Spacing</a></li>
<li><a href="#Colors">Colors</a></li>
<li><a href="#Strings">Strings</a></li>
<li><a href="#Conditionals-and-Loops">Conditionals and Loops</a></li>
<li><a href="#Writing-Macros">Writing Macros</a></li>
<li><a href="#Page-Motions">Page Motions</a></li>
<li><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></li>
<li><a href="#Deferring-Output">Deferring Output</a></li>
<li><a href="#Traps">Traps</a></li>
<li><a href="#Diversions">Diversions</a></li>
<li><a href="#Punning-Names">Punning Names</a></li>
<li><a href="#Environments">Environments</a></li>
<li><a href="#Suppressing-Output">Suppressing Output</a></li>
<li><a href="#I_002fO">I/O</a></li>
<li><a href="#Postprocessor-Access">Postprocessor Access</a></li>
<li><a href="#Miscellaneous">Miscellaneous</a></li>
<li><a href="#Gtroff-Internals"><code class="code">gtroff</code> Internals</a></li>
<li><a href="#Debugging">Debugging</a></li>
<li><a href="#Implementation-Differences">Implementation Differences</a></li>
</ul>
<hr>
<div class="section-level-extent" id="Text">
<div class="nav-panel">
<p>
Next: <a href="#Measurements" accesskey="n" rel="next">Measurements</a>, Previous: <a href="#GNU-troff-Reference" accesskey="p" rel="prev">GNU <code class="code">troff</code> Reference</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Text-1">5.1 Text</h3>
<a class="index-entry-id" id="index-text_002c-GNU-troff-processing"></a>
<p><abbr class="acronym">AT&T</abbr> <code class="code">troff</code> was designed to take input as it would be
composed on a typewriter, including the teletypewriters used as early
computer terminals, and relieve the user drafting a document of concern
with details like line length, hyphenation breaking, and the achievement
of straight margins. Early in its development, the program gained the
ability to prepare output for a phototypesetter; a document could then
be prepared for output to either a teletypewriter, a phototypesetter, or
both. GNU <code class="code">troff</code> continues this tradition of permitting an author
to compose a single master version of a document which can then be
rendered for a variety of output formats or devices.
</p>
<p><code class="code">roff</code> input files contain text interspersed with instructions to
control the formatter. Even in the absence of such instructions, GNU
<code class="code">troff</code> still processes its input in several ways, by filling,
hyphenating, breaking, and adjusting it, and supplementing it with
inter-sentence space.
</p>
<ul class="mini-toc">
<li><a href="#Filling" accesskey="1">Filling</a></li>
<li><a href="#Sentences" accesskey="2">Sentences</a></li>
<li><a href="#Hyphenation" accesskey="3">Hyphenation</a></li>
<li><a href="#Breaking" accesskey="4">Breaking</a></li>
<li><a href="#Adjustment" accesskey="5">Adjustment</a></li>
<li><a href="#Tabs-and-Leaders" accesskey="6">Tabs and Leaders</a></li>
<li><a href="#Requests-and-Macros" accesskey="7">Requests and Macros</a></li>
<li><a href="#Macro-Packages" accesskey="8">Macro Packages</a></li>
<li><a href="#Input-Encodings" accesskey="9">Input Encodings</a></li>
<li><a href="#Input-Conventions">Input Conventions</a></li>
</ul>
<hr>
<div class="subsection-level-extent" id="Filling">
<div class="nav-panel">
<p>
Next: <a href="#Sentences" accesskey="n" rel="next">Sentences</a>, Previous: <a href="#Text" accesskey="p" rel="prev">Text</a>, Up: <a href="#Text" accesskey="u" rel="up">Text</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Filling-1">5.1.1 Filling</h4>
<p>When GNU <code class="code">troff</code> starts up, it obtains information about the device
for which it is preparing output.<a class="footnote" id="DOCF18" href="#FOOT18"><sup>18</sup></a> An essential property is the length of the output
line, such as “6.5 inches”.
</p>
<a class="index-entry-id" id="index-word_002c-definition-of"></a>
<a class="index-entry-id" id="index-filling"></a>
<p>GNU <code class="code">troff</code> interprets plain text files employing the Unix
line-ending convention. It reads input a character at a time,
collecting words as it goes, and fits as many words together on an
output line as it can—this is known as <em class="dfn">filling</em>. To GNU
<code class="code">troff</code>, a <em class="dfn">word</em> is any sequence of one or more characters
that aren’t spaces or newlines. The exceptions separate
words.<a class="footnote" id="DOCF19" href="#FOOT19"><sup>19</sup></a> To disable filling, see
<a class="ref" href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a>.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">It is a truth universally acknowledged
that a single man in possession of a
good fortune must be in want of a wife.
⇒ It is a truth universally acknowledged that a
⇒ single man in possession of a good fortune must
⇒ be in want of a wife.
</pre></div></div>
<hr>
</div>
<div class="subsection-level-extent" id="Sentences">
<div class="nav-panel">
<p>
Next: <a href="#Hyphenation" accesskey="n" rel="next">Hyphenation</a>, Previous: <a href="#Filling" accesskey="p" rel="prev">Filling</a>, Up: <a href="#Text" accesskey="u" rel="up">Text</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Sentences-1">5.1.2 Sentences</h4>
<a class="index-entry-id" id="index-sentences"></a>
<p>A passionate debate has raged for decades among writers of the English
language over whether more space should appear between adjacent
sentences than between words within a sentence, and if so, how much, and
what other circumstances should influence this spacing.<a class="footnote" id="DOCF20" href="#FOOT20"><sup>20</sup></a>
GNU <code class="code">troff</code> follows the example of <abbr class="acronym">AT&T</abbr> <code class="code">troff</code>;
it attempts to detect the boundaries between sentences, and supplies
additional inter-sentence space between them.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">Hello, world!
Welcome to groff.
⇒ Hello, world! Welcome to groff.
</pre></div></div>
<a class="index-entry-id" id="index-end_002dof_002dsentence-characters"></a>
<a class="index-entry-id" id="index-sentence-space"></a>
<a class="index-entry-id" id="index-space-between-sentences"></a>
<a class="index-entry-id" id="index-French-spacing"></a>
<p>GNU <code class="code">troff</code> flags certain characters (normally ‘<samp class="samp">!</samp>’, ‘<samp class="samp">?</samp>’,
and ‘<samp class="samp">.</samp>’) as potentially ending a sentence. When GNU <code class="code">troff</code>
encounters one of these <em class="dfn">end-of-sentence characters</em> at the end of
an input line, or one of them is followed by two (unescaped) spaces on
the same input line, it appends an inter-word space followed by an
inter-sentence space in the output.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">R. Harper subscribes to a maxim of P. T. Barnum.
⇒ R. Harper subscribes to a maxim of P. T. Barnum.
</pre></div></div>
<p>In the above example, inter-sentence space is not added after ‘<samp class="samp">P.</samp>’
or ‘<samp class="samp">T.</samp>’ because the periods do not occur at the end of an input
line, nor are they followed by two or more spaces. Let’s imagine that
we’ve heard something about defamation from Mr. Harper’s attorney,
recast the sentence, and reflowed it in our text editor.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">I submit that R. Harper subscribes to a maxim of P. T.
Barnum.
⇒ I submit that R. Harper subscribes to a maxim of
⇒ P. T. Barnum.
</pre></div></div>
<p>“Barnum” doesn’t begin a sentence! What to do? Let us meet our first
<em class="dfn">escape sequence</em>, a series of input characters that give
instructions to GNU <code class="code">troff</code> instead of being used to construct
output device glyphs.<a class="footnote" id="DOCF21" href="#FOOT21"><sup>21</sup></a> An escape sequence begins with the backslash character <code class="code">\</code>
by default, an uncommon character in natural language text, and is
<em class="emph">always</em> followed by at least one other character, hence the term
“sequence”.
</p>
<a class="index-entry-id" id="index-_005c_0026_002c-at-end-of-sentence"></a>
<p>The dummy character escape sequence <code class="code">\&</code> can be used after an
end-of-sentence character to defeat end-of-sentence detection on a
per-instance basis. We can therefore rewrite our input more
defensively.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">I submit that R.\& Harper subscribes to a maxim of P.\&
T.\& Barnum.
⇒ I submit that R. Harper subscribes to a maxim of
⇒ P. T. Barnum.
</pre></div></div>
<p>Adding text caused our input to wrap; now, we don’t need <code class="code">\&</code> after
‘<samp class="samp">T.</samp>’ but we do after ‘<samp class="samp">P.</samp>’. Consistent use of the escape
sequence ensures that potential sentence boundaries are robust to
editing activities. Further advice along these lines will follow in
<a class="ref" href="#Input-Conventions">Input Conventions</a>.
</p>
<a class="index-entry-id" id="index-end_002dof_002dsentence-transparent-characters"></a>
<a class="index-entry-id" id="index-characters_002c-end_002dof_002dsentence-transparent"></a>
<a class="index-entry-id" id="index-dg-glyph_002c-at-end-of-sentence"></a>
<a class="index-entry-id" id="index-dd-glyph_002c-at-end-of-sentence"></a>
<a class="index-entry-id" id="index-rq-glyph_002c-at-end-of-sentence"></a>
<a class="index-entry-id" id="index-cq-glyph_002c-at-end-of-sentence"></a>
<a class="index-entry-id" id="index-_0022_002c-at-end-of-sentence"></a>
<a class="index-entry-id" id="index-_0027_002c-at-end-of-sentence"></a>
<a class="index-entry-id" id="index-_0029_002c-at-end-of-sentence"></a>
<a class="index-entry-id" id="index-_005d_002c-at-end-of-sentence"></a>
<a class="index-entry-id" id="index-_002a_002c-at-end-of-sentence"></a>
<a class="index-entry-id" id="index-special-characters"></a>
<a class="index-entry-id" id="index-characters_002c-special"></a>
<p>Normally, the occurrence of a visible non-end-of-sentence character (as
opposed to a space or tab) immediately after an end-of-sentence
character cancels detection of the end of a sentence. For example, it
would be incorrect for GNU <code class="code">troff</code> to infer the end of a sentence
after the dot in ‘<samp class="samp">3.14159</samp>’. However, several characters are
treated <em class="emph">transparently</em> after the occurrence of an end-of-sentence
character. That is, GNU <code class="code">troff</code> does not cancel end-of-sentence
detection when it processes them. This is because such characters are
often used as footnote markers or to close quotations and
parentheticals. The default set is ‘<samp class="samp">"</samp>’, ‘<samp class="samp">'</samp>’, ‘<samp class="samp">)</samp>’,
‘<samp class="samp">]</samp>’, ‘<samp class="samp">*</samp>’, <code class="code">\[dg]</code>, <code class="code">\[dd]</code>, <code class="code">\[rq]</code>, and
<code class="code">\[cq]</code>. The last four are examples of <em class="dfn">special characters</em>,
escape sequences whose purpose is to obtain glyphs that are not easily
typed at the keyboard, or which have special meaning to GNU <code class="code">troff</code>
(like <code class="code">\</code> itself).<a class="footnote" id="DOCF22" href="#FOOT22"><sup>22</sup></a>
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">\[lq]The idea that the poor should have leisure has always
been shocking to the rich.\[rq]
(Bertrand Russell, 1935)
⇒ "The idea that the poor should have
⇒ leisure has always been shocking to
⇒ the rich." (Bertrand Russell, 1935)
</pre></div></div>
<p>The sets of characters that potentially end sentences or are transparent
to sentence endings are configurable. See the <code class="code">cflags</code> request in
<a class="ref" href="#Using-Symbols">Using Symbols</a>. To change the additional inter-sentence space
amount—even to remove it entirely—see <a class="ref" href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a>.
</p>
<hr>
</div>
<div class="subsection-level-extent" id="Hyphenation">
<div class="nav-panel">
<p>
Next: <a href="#Breaking" accesskey="n" rel="next">Breaking</a>, Previous: <a href="#Sentences" accesskey="p" rel="prev">Sentences</a>, Up: <a href="#Text" accesskey="u" rel="up">Text</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Hyphenation-1">5.1.3 Hyphenation</h4>
<a class="index-entry-id" id="index-hyphenation"></a>
<p>When an output line is nearly full, it is uncommon for the next word
collected from the input to exactly fill it—typically, there is room
left over only for part of the next word. The process of splitting a
word so that it appears partially on one line (with a hyphen to indicate
to the reader that the word has been broken) with its remainder on the
next is <em class="dfn">hyphenation</em>. Hyphenation points can be manually
specified; GNU <code class="code">troff</code> also uses a hyphenation algorithm and
language-specific pattern files (based on those used in TeX) to
decide which words can be hyphenated and where.
</p>
<p>Hyphenation does not always occur even when the hyphenation rules for a
word allow it; it can be disabled, and when not disabled there are
several parameters that can prevent it in certain circumstances.
See <a class="xref" href="#Manipulating-Hyphenation">Manipulating Hyphenation</a>.
</p>
<hr>
</div>
<div class="subsection-level-extent" id="Breaking">
<div class="nav-panel">
<p>
Next: <a href="#Adjustment" accesskey="n" rel="next">Adjustment</a>, Previous: <a href="#Hyphenation" accesskey="p" rel="prev">Hyphenation</a>, Up: <a href="#Text" accesskey="u" rel="up">Text</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Breaking-1">5.1.4 Breaking</h4>
<a class="index-entry-id" id="index-break"></a>
<a class="index-entry-id" id="index-implicit-line-break"></a>
<a class="index-entry-id" id="index-line-break_002c-output"></a>
<a class="index-entry-id" id="index-output-line-break"></a>
<p>Once an output line is full, the next word (or remainder of a hyphenated
one) is placed on a different output line; this is called a <em class="dfn">break</em>.
In this manual and in <code class="code">roff</code> discussions generally, a “break” if
not further qualified always refers to the termination of an output
line. When the formatter is filling text, it introduces breaks
automatically to keep output lines from exceeding the configured line
length. After an automatic break, GNU <code class="code">troff</code> adjusts the line if
applicable (see below), and then resumes collecting and filling text on
the next output line.
</p>
<p>Sometimes, a line cannot be broken automatically. This usually does
not happen with natural language text unless the output line length has
been manipulated to be extremely short, but it can with specialized
text like program source code. We can use <code class="code">perl</code> at the shell
prompt to contrive an example of failure to break the line. We also
employ the <samp class="option">-z</samp> option to suppress normal output.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">$ perl -e 'print "#" x 80, "\n";' | nroff -z
error→ warning: cannot break line
</pre></div></div>
<p>The remedy for these cases is to tell GNU <code class="code">troff</code> where the line
may be broken without hyphens. This is done with the non-printing break
point escape sequence ‘<samp class="samp">\:</samp>’; see <a class="ref" href="#Manipulating-Hyphenation">Manipulating Hyphenation</a>.
</p>
<a class="index-entry-id" id="index-blank-line"></a>
<a class="index-entry-id" id="index-empty-line"></a>
<a class="index-entry-id" id="index-line_002c-blank"></a>
<a class="index-entry-id" id="index-blank-line-macro-_0028blm_0029"></a>
<p>What if the document author wants to stop filling lines temporarily, for
instance to start a new paragraph? There are several solutions. A
blank input line not only causes a break, but by default it also outputs
a one-line vertical space (effectively a blank output line). This
behavior can be modified; see <a class="ref" href="#Blank-Line-Traps">Blank Line Traps</a>. Macro packages
may discourage or disable the blank line method of paragraphing in favor
of their own macros.
</p>
<a class="index-entry-id" id="index-leading-spaces"></a>
<a class="index-entry-id" id="index-spaces_002c-leading-and-trailing"></a>
<a class="index-entry-id" id="index-trailing-spaces-on-text-lines"></a>
<a class="index-entry-id" id="index-leading-space-macro-_0028lsm_0029"></a>
<p>A line that begins with one or more spaces causes a break. The spaces
are output at the beginning of the next line without being
<em class="emph">adjusted</em> (see below); however, this behavior can be modified
(see <a class="pxref" href="#Leading-Space-Traps">Leading Space Traps</a>). Again, macro packages may provide other
methods of producing indented paragraphs. Trailing spaces on text lines
are discarded.<a class="footnote" id="DOCF23" href="#FOOT23"><sup>23</sup></a>
</p>
<p>What if the file ends before enough words have been collected to fill an
output line? Or the output line is exactly full but not yet broken, and
there is no more input? GNU <code class="code">troff</code> interprets the end of input as
a break. Certain requests also cause breaks, implicitly or explicitly.
This is discussed in <a class="ref" href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a>.
</p>
<hr>
</div>
<div class="subsection-level-extent" id="Adjustment">
<div class="nav-panel">
<p>
Next: <a href="#Tabs-and-Leaders" accesskey="n" rel="next">Tabs and Leaders</a>, Previous: <a href="#Breaking" accesskey="p" rel="prev">Breaking</a>, Up: <a href="#Text" accesskey="u" rel="up">Text</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Adjustment-1">5.1.5 Adjustment</h4>
<a class="index-entry-id" id="index-extra-spaces-between-words"></a>
<p>After GNU <code class="code">troff</code> performs an automatic break, it may then
<em class="dfn">adjust</em> the line, widening inter-word spaces until the text reaches
the right margin. Extra spaces between words are preserved. Leading
and trailing spaces are handled as noted above. Text can be aligned to
the left or right margin only, or centered; see <a class="ref" href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a>.
</p>
<hr>
</div>
<div class="subsection-level-extent" id="Tabs-and-Leaders">
<div class="nav-panel">
<p>
Next: <a href="#Input-Conventions" accesskey="n" rel="next">Input Conventions</a>, Previous: <a href="#Adjustment" accesskey="p" rel="prev">Adjustment</a>, Up: <a href="#Text" accesskey="u" rel="up">Text</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Tabs-and-Leaders-1">5.1.6 Tabs and Leaders</h4>
<a class="index-entry-id" id="index-horizontal-tab-character"></a>
<a class="index-entry-id" id="index-tab-character"></a>
<a class="index-entry-id" id="index-character_002c-horizontal-tab"></a>
<a class="index-entry-id" id="index-leader-character"></a>
<a class="index-entry-id" id="index-character_002c-leader"></a>
<a class="index-entry-id" id="index-tab-stops"></a>
<a class="index-entry-id" id="index-stops_002c-tab"></a>
<p>GNU <code class="code">troff</code> translates input horizontal tab characters (“tabs”)
and <kbd class="key">Control+A</kbd> characters (“leaders”) into movements to the next
tab stop. Tabs simply move to the next tab stop; leaders place enough
periods to fill the space. Tab stops are by default located every half
inch measured from the drawing position corresponding to the beginning
of the input line; see <a class="ref" href="#Page-Geometry">Page Geometry</a>. Tabs and leaders do not
cause breaks and therefore do not interrupt filling. Below, we use
arrows → and bullets • to indicate input tabs and
leaders, respectively.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">1
→ 2 → 3 • 4
→ • 5
⇒ 1 2 3.......4 ........5
</pre></div></div>
<p>Tabs and leaders lend themselves to table construction.<a class="footnote" id="DOCF24" href="#FOOT24"><sup>24</sup></a> The tab and leader glyphs can be
configured, and further facilities for sophisticated table composition
are available; see <a class="ref" href="#Tabs-and-Fields">Tabs and Fields</a>. There are many details to
track when using such low-level features, so most users turn to the
<cite class="cite">tbl<span class="r">(1)</span></cite> preprocessor to lay out tables.
</p>
<hr>
</div>
<div class="subsection-level-extent" id="Requests-and-Macros">
<div class="nav-panel">
<p>
Next: <a href="#Macro-Packages" accesskey="n" rel="next">Macro Packages</a>, Previous: <a href="#Tabs-and-Leaders" accesskey="p" rel="prev">Tabs and Leaders</a>, Up: <a href="#Text" accesskey="u" rel="up">Text</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Requests-and-Macros-1">5.1.7 Requests and Macros</h4>
<p>We have now encountered almost all of the syntax there is in the
<code class="code">roff</code> language, with an exception already noted in passing.
<a class="index-entry-id" id="index-request"></a>
<a class="index-entry-id" id="index-control-character-_0028_002e_0029"></a>
<a class="index-entry-id" id="index-character_002c-control-_0028_002e_0029"></a>
<a class="index-entry-id" id="index-no_002dbreak-control-character-_0028_0027_0029"></a>
<a class="index-entry-id" id="index-character_002c-no_002dbreak-control-_0028_0027_0029"></a>
<a class="index-entry-id" id="index-control-character_002c-no_002dbreak-_0028_0027_0029"></a>
A <em class="dfn">request</em> is an instruction to the formatter that occurs after a
<em class="dfn">control character</em>, which is recognized at the beginning of an
input line. The regular control character is a dot (<code class="code">.</code>). Its
counterpart, the <em class="dfn">no-break control character</em>, a neutral apostrophe
(<code class="code">'</code>), suppresses the break that is implied by some requests.
These characters were chosen because it is uncommon for lines of text in
natural languages to begin with them.
<a class="index-entry-id" id="index-dummy-character-_0028_005c_0026_0029_002c-as-control-character-suppressor"></a>
<a class="index-entry-id" id="index-character_002c-dummy-_0028_005c_0026_0029_002c-as-control-character-suppressor"></a>
If you require a formatted period or apostrophe (closing single
quotation mark) where GNU <code class="code">troff</code> is expecting a control character,
prefix the dot or neutral apostrophe with the dummy character escape
sequence, ‘<samp class="samp">\&</samp>’.
</p>
<a class="index-entry-id" id="index-control-line"></a>
<p>An input line beginning with a control character is called a
<em class="dfn">control line</em>.
<a class="index-entry-id" id="index-text-line"></a>
Every line of input that is not a control line is a <em class="dfn">text
line</em>.<a class="footnote" id="DOCF25" href="#FOOT25"><sup>25</sup></a>
</p>
<a class="index-entry-id" id="index-argument"></a>
<p>Requests often take <em class="dfn">arguments</em>, words (separated from the request
name and each other by spaces) that specify details of the action GNU
<code class="code">troff</code> is expected to perform. If a request is meaningless
without arguments, it is typically ignored.
</p>
<p>GNU <code class="code">troff</code>’s requests and escape sequences comprise the control
language of the formatter. Of key importance are the requests that
define macros. Macros are invoked like requests, enabling the request
repertoire to be extended or overridden.<a class="footnote" id="DOCF26" href="#FOOT26"><sup>26</sup></a>
</p>
<a class="index-entry-id" id="index-macro"></a>
<a class="index-entry-id" id="index-calling-a-macro"></a>
<a class="index-entry-id" id="index-interpolation"></a>
<p>A <em class="dfn">macro</em> can be thought of as an abbreviation you can define for a
collection of control and text lines. When the macro is <em class="dfn">called</em> by
giving its name after a control character, it is replaced with what it
stands for. The process of textual replacement is known as
<em class="dfn">interpolation</em>.<a class="footnote" id="DOCF27" href="#FOOT27"><sup>27</sup></a> Interpolations are handled as soon as they are
recognized, and once performed, a <code class="code">roff</code> formatter scans the
replacement for further requests, macro calls, and escape sequences.
</p>
<p>In <code class="code">roff</code> systems, the <code class="code">de</code> request defines a
macro.<a class="footnote" id="DOCF28" href="#FOOT28"><sup>28</sup></a>
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de DATE
2020-11-14
..
</pre></div></div>
<p>The foregoing input produces no output by itself; all we have done is
store some information. Observe the pair of dots that ends the macro
definition. This is a default; you can specify your own terminator for
the macro definition as the second argument to the <code class="code">de</code> request.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de NAME ENDNAME
Heywood Jabuzzoff
.ENDNAME
</pre></div></div>
<p>In fact, the ending marker is itself the name of a macro to be
called, or a request to be invoked, if it is defined at the time its
control line is read.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de END
Big Rip
..
.de START END
Big Bang
.END
.START
⇒ Big Rip Big Bang
</pre></div></div>
<p>In the foregoing example, “Big Rip” printed before “Big Bang”
because its macro was <em class="emph">called</em> first. Consider what would happen
if we dropped <code class="code">END</code> from the ‘<samp class="samp">.de START</samp>’ line and added
<code class="code">..</code> after <code class="code">.END</code>. Would the order change?
</p>
<p>Let us consider a more elaborate example.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de DATE
2020-10-05
..
.
.de BOSS
D.\& Kruger,
J.\& Peterman
..
.
.de NOTICE
Approved:
.DATE
by
.BOSS
..
.
Insert tedious regulatory compliance paragraph here.
.NOTICE
Insert tedious liability disclaimer paragraph here.
.NOTICE
⇒ Insert tedious regulatory compliance paragraph here.
⇒
⇒ Approved: 2020-10-05 by D. Kruger, J. Peterman
⇒
⇒ Insert tedious liability disclaimer paragraph here.
⇒
⇒ Approved: 2020-10-05 by D. Kruger, J. Peterman
</pre></div></div>
<p>The above document started with a series of control lines. Three macros
were defined, with a <code class="code">de</code> request declaring each macro’s name, and
the “body” of the macro starting on the next line and continuing until
a line with two dots ‘<samp class="samp"><code class="code">..</code></samp>’ marked its end. The text proper
began only after the macros were defined; this is a common pattern.
Only the <code class="code">NOTICE</code> macro was called “directly” by the document;
<code class="code">DATE</code> and <code class="code">BOSS</code> were called only by <code class="code">NOTICE</code> itself.
Escape sequences were used in <code class="code">BOSS</code>, two levels of macro
interpolation deep.
</p>
<p>The advantage in typing and maintenance economy may not be obvious from
such a short example, but imagine a much longer document with dozens of
such paragraphs, each requiring a notice of managerial approval.
Consider what must happen if you are in charge of generating a new
version of such a document with a different date, for a different boss.
With well-chosen macros, you only have to change each datum in one
place.
</p>
<p>In practice, we would probably use strings (see <a class="pxref" href="#Strings">Strings</a>) instead of
macros for such simple interpolations; what is important here is to
glimpse the potential of macros and the power of recursive
interpolation.
</p>
<p>We could have defined <code class="code">DATE</code> and <code class="code">BOSS</code> in the opposite order;
perhaps less obviously, we could also have defined them <em class="emph">after</em>
<code class="code">NOTICE</code>. “Forward references” like this are acceptable because
the body of a macro definition is not (completely) interpreted, but
stored instead (see <a class="pxref" href="#Copy-Mode">Copy Mode</a>). While a macro is being defined (or
appended to), requests are not interpreted and macros not interpolated,
whereas some commonly used escape sequences <em class="emph">are</em> interpreted.
<code class="code">roff</code> systems also support recursive macro calls, as long as you
have a way to break the recursion (see <a class="pxref" href="#Conditionals-and-Loops">Conditionals and Loops</a>).
Maintainable <code class="code">roff</code> documents tend to arrange macro definitions to
minimize forward references.
</p>
<hr>
</div>
<div class="subsection-level-extent" id="Macro-Packages">
<div class="nav-panel">
<p>
Next: <a href="#Input-Encodings" accesskey="n" rel="next">Input Encodings</a>, Previous: <a href="#Requests-and-Macros" accesskey="p" rel="prev">Requests and Macros</a>, Up: <a href="#Text" accesskey="u" rel="up">Text</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Macro-Packages-3">5.1.8 Macro Packages</h4>
<a class="index-entry-id" id="index-macro-package"></a>
<a class="index-entry-id" id="index-package_002c-macro"></a>
<p>Macro definitions can be collected into <em class="dfn">macro files</em>, <code class="code">roff</code>
input files designed to produce no output themselves but instead ease
the preparation of other <code class="code">roff</code> documents. There is no syntactical
difference between a macro file and any other <code class="code">roff</code> document; only
its purpose distinguishes it. When a macro file is installed at a
standard location and suitable for use by a general audience, it is
often termed a <em class="dfn">macro package</em>.<a class="footnote" id="DOCF29" href="#FOOT29"><sup>29</sup></a> Macro packages can be
loaded by supplying the <samp class="option">-m</samp> option to GNU <code class="command">troff</code> or a
<code class="code">groff</code> front end. Alternatively, a document requiring a macro
package can load it with the <code class="code">mso</code> (“macro source”) request.
</p>
<hr>
</div>
<div class="subsection-level-extent" id="Input-Encodings">
<div class="nav-panel">
<p>
Next: <a href="#Input-Conventions" accesskey="n" rel="next">Input Conventions</a>, Previous: <a href="#Macro-Packages" accesskey="p" rel="prev">Macro Packages</a>, Up: <a href="#Text" accesskey="u" rel="up">Text</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Input-Encodings-1">5.1.9 Input Encodings</h4>
<p>The <code class="command">groff</code> command’s <samp class="option">-k</samp> option calls the
<code class="command">preconv</code> preprocessor to perform input character encoding
conversions. Input to the GNU <code class="code">troff</code> formatter itself, on the
other hand, must be in one of two encodings it can recognize.
</p>
<dl class="table">
<dt id='index-encoding_002c-input_002c-EBCDIC'><span><code class="code">cp1047</code><a class="copiable-link" href='#index-encoding_002c-input_002c-EBCDIC'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-EBCDIC_002c-input-encoding"></a>
<a class="index-entry-id" id="index-input-encoding_002c-EBCDIC"></a>
<a class="index-entry-id" id="index-encoding_002c-input_002c-code-page-1047"></a>
<a class="index-entry-id" id="index-code-page-1047_002c-input-encoding"></a>
<a class="index-entry-id" id="index-input-encoding_002c-code-page-1047"></a>
<a class="index-entry-id" id="index-IBM-code-page-1047-input-encoding"></a>
<a class="index-entry-id" id="index-cp1047_002etmac"></a>
<p>The code page 1047 input encoding works only on <abbr class="acronym">EBCDIC</abbr>
platforms (and conversely, the other input encodings don’t work with
<abbr class="acronym">EBCDIC</abbr>); the file <samp class="file">cp1047.tmac</samp> is loaded at startup.
</p>
</dd>
<dt id='index-encoding_002c-input_002c-Latin_002d1-_0028ISO-8859_002d1_0029'><span><code class="code">latin1</code><a class="copiable-link" href='#index-encoding_002c-input_002c-Latin_002d1-_0028ISO-8859_002d1_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-Latin_002d1-_0028ISO-8859_002d1_0029_002c-input-encoding"></a>
<a class="index-entry-id" id="index-ISO-8859_002d1-_0028Latin_002d1_0029_002c-input-encoding"></a>
<a class="index-entry-id" id="index-input-encoding_002c-Latin_002d1-_0028ISO-8859_002d1_0029"></a>
<a class="index-entry-id" id="index-latin1_002etmac"></a>
<p>ISO <span class="w-nolinebreak-text">Latin-1</span><!-- /@w -->, an encoding for Western European languages, is the
default input encoding on non-<abbr class="acronym">EBCDIC</abbr> platforms; the file
<samp class="file">latin1.tmac</samp> is loaded at startup.
</p></dd>
</dl>
<p>Any document that is encoded in ISO 646:1991 (a descendant of USAS
<span class="w-nolinebreak-text">X3.4-1968</span><!-- /@w --> or “US-ASCII”), or, equivalently, uses only code points
from the “C0 Controls” and “Basic Latin” parts of the Unicode
character set is also a valid ISO <span class="w-nolinebreak-text">Latin-1</span><!-- /@w --> document; the standards
are interchangeable in their first 128 code points.<a class="footnote" id="DOCF30" href="#FOOT30"><sup>30</sup></a>
</p>
<p>Other encodings are supported by means of macro packages.
</p>
<dl class="table">
<dt id='index-encoding_002c-input_002c-Latin_002d2-_0028ISO-8859_002d2_0029'><span><code class="code">latin2</code><a class="copiable-link" href='#index-encoding_002c-input_002c-Latin_002d2-_0028ISO-8859_002d2_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-Latin_002d2-_0028ISO-8859_002d2_0029_002c-input-encoding"></a>
<a class="index-entry-id" id="index-ISO-8859_002d2-_0028Latin_002d2_0029_002c-input-encoding"></a>
<a class="index-entry-id" id="index-input-encoding_002c-Latin_002d2-_0028ISO-8859_002d2_0029"></a>
<a class="index-entry-id" id="index-latin2_002etmac"></a>
<p>To use ISO <span class="w-nolinebreak-text">Latin-2</span><!-- /@w -->, an encoding for Central and Eastern European
languages, invoke ‘<samp class="samp">.mso latin2.tmac</samp>’<!-- /@w --> at the beginning of your
document or supply ‘<samp class="samp">-mlatin2</samp>’ as a command-line argument to
<code class="code">groff</code>.
</p>
</dd>
<dt id='index-encoding_002c-input_002c-Latin_002d5-_0028ISO-8859_002d9_0029'><span><code class="code">latin5</code><a class="copiable-link" href='#index-encoding_002c-input_002c-Latin_002d5-_0028ISO-8859_002d9_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-Latin_002d5-_0028ISO-8859_002d9_0029_002c-input-encoding"></a>
<a class="index-entry-id" id="index-ISO-8859_002d9-_0028Latin_002d5_0029_002c-input-encoding"></a>
<a class="index-entry-id" id="index-input-encoding_002c-Latin_002d5-_0028ISO-8859_002d9_0029"></a>
<a class="index-entry-id" id="index-latin5_002etmac"></a>
<p>To use ISO <span class="w-nolinebreak-text">Latin-5</span><!-- /@w -->, an encoding for the Turkish language, invoke
‘<samp class="samp">.mso latin5.tmac</samp>’<!-- /@w --> at the beginning of your document or
supply ‘<samp class="samp">-mlatin5</samp>’ as a command-line argument to <code class="code">groff</code>.
</p>
</dd>
<dt id='index-encoding_002c-input_002c-Latin_002d9-_0028ISO-8859_002d15_0029'><span><code class="code">latin9</code><a class="copiable-link" href='#index-encoding_002c-input_002c-Latin_002d9-_0028ISO-8859_002d15_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-Latin_002d9-_0028ISO-8859_002d15_0029_002c-input-encoding"></a>
<a class="index-entry-id" id="index-ISO-8859_002d15-_0028Latin_002d9_0029_002c-input-encoding"></a>
<a class="index-entry-id" id="index-input-encoding_002c-Latin_002d9-_0028ISO-8859_002d15_0029"></a>
<a class="index-entry-id" id="index-latin9_002etmac"></a>
<p>ISO <span class="w-nolinebreak-text">Latin-9</span><!-- /@w --> succeeds <span class="w-nolinebreak-text">Latin-1</span><!-- /@w -->; it includes a Euro sign and better
glyph coverage for French. To use this encoding, invoke ‘<samp class="samp">.mso latin9.tmac</samp>’<!-- /@w --> at the beginning of your document or supply
‘<samp class="samp">-mlatin9</samp>’ as a command-line argument to <code class="code">groff</code>.
</p></dd>
</dl>
<p>Some characters from an input encoding may not be available with a
particular output driver, or their glyphs may not have representation in
the font used. For terminal devices, fallbacks are defined, like
‘<samp class="samp">EUR</samp>’ for the Euro sign and ‘<samp class="samp">(C)</samp>’ for the copyright sign. For
typesetter devices, you may need to “mount” fonts that support glyphs
required by the document. See <a class="xref" href="#Font-Positions">Font Positions</a>.
</p>
<a class="index-entry-id" id="index-freeeuro_002epfa"></a>
<a class="index-entry-id" id="index-ec_002etmac"></a>
<p>Because a Euro glyph was not historically defined in PostScript fonts,
<code class="code">groff</code> comes with a font called <samp class="file">freeeuro.pfa</samp> that provides
the Euro in several styles. Standard PostScript fonts contain the
glyphs from <span class="w-nolinebreak-text">Latin-5</span><!-- /@w --> and <span class="w-nolinebreak-text">Latin-9</span><!-- /@w --> that <span class="w-nolinebreak-text">Latin-1</span><!-- /@w --> lacks, so these
encodings are supported for the <samp class="option">ps</samp> and <samp class="option">pdf</samp> output
devices as <code class="code">groff</code> ships, while <span class="w-nolinebreak-text">Latin-2</span><!-- /@w --> is not.
</p>
<p>Unicode supports characters from all other input encodings; the
<samp class="option">utf8</samp> output driver for terminals therefore does as well. The
DVI output driver supports the <span class="w-nolinebreak-text">Latin-2</span><!-- /@w --> and <span class="w-nolinebreak-text">Latin-9</span><!-- /@w --> encodings if
the command-line option <samp class="option">-mec</samp> is used as well. <a class="footnote" id="DOCF31" href="#FOOT31"><sup>31</sup></a>
</p>
<hr>
</div>
<div class="subsection-level-extent" id="Input-Conventions">
<div class="nav-panel">
<p>
Previous: <a href="#Input-Encodings" accesskey="p" rel="prev">Input Encodings</a>, Up: <a href="#Text" accesskey="u" rel="up">Text</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Input-Conventions-1">5.1.10 Input Conventions</h4>
<a class="index-entry-id" id="index-input-conventions"></a>
<a class="index-entry-id" id="index-conventions-for-input"></a>
<p>Since GNU <code class="code">troff</code> fills text automatically, it is common practice
in the <code class="code">roff</code> language to avoid visual composition of text in input
files: the esthetic appeal of the formatted output is what matters.
Therefore, <code class="code">roff</code> input should be arranged such that it is easy for
authors and maintainers to compose and develop the document, understand
the syntax of <code class="code">roff</code> requests, macro calls, and preprocessor
languages used, and predict the behavior of the formatter. Several
traditions have accrued in service of these goals.
</p>
<ul class="itemize mark-bullet">
<li>Follow sentence endings in the input with newlines to ease their
recognition (see <a class="pxref" href="#Sentences">Sentences</a>). It is frequently convenient to end
text lines after colons and semicolons as well, as these typically
precede independent clauses. Consider doing so after commas; they often
occur in lists that become easy to scan when itemized by line, or
constitute supplements to the sentence that are added, deleted, or
updated to clarify it. Parenthetical and quoted phrases are also good
candidates for placement on text lines by themselves.
</li><li>Set your text editor’s line length to 72 characters or
fewer.<a class="footnote" id="DOCF32" href="#FOOT32"><sup>32</sup></a>
This limit, combined with the previous item of advice, makes it less
common that an input line will wrap in your text editor, and thus will
help you perceive excessively long constructions in your text. Recall
that natural languages originate in speech, not writing, and that
punctuation is correlated with pauses for breathing and changes in
prosody.
</li><li>Use <code class="code">\&</code> after ‘<samp class="samp">!</samp>’, ‘<samp class="samp">?</samp>’, and ‘<samp class="samp">.</samp>’ if they are
followed by space, tab, or newline characters and don’t end a sentence.
</li><li>In filled text lines, use <code class="code">\&</code> before ‘<samp class="samp">.</samp>’ and ‘<samp class="samp">'</samp>’ if they
are preceded by space, so that reflowing the input doesn’t turn them
into control lines.
</li><li>Do not use spaces to perform indentation or align columns of a table.
Leading spaces are reliable when text is not being filled.
</li><li>Comment your document. It is never too soon to apply comments to
record information of use to future document maintainers (including your
future self). We thus introduce another escape sequence, <code class="code">\"</code>,
which causes GNU <code class="code">troff</code> to ignore the remainder of the input line.
</li><li>Use the empty request—a control character followed immediately by a
newline—to visually manage separation of material in input files.
Many of the <code class="code">groff</code> project’s own documents use an empty request
between sentences, after macro definitions, and where a break is
expected, and two empty requests between paragraphs or other requests or
macro calls that will introduce vertical space into the document.
<p>You can combine the empty request with the comment escape sequence to
include whole-line comments in your document, and even “comment out”
sections of it.
</p></li></ul>
<p>We conclude this section with an example sufficiently long to illustrate
most of the above suggestions in practice. For the purpose of fitting
the example between the margins of this manual with the font used for
its typeset version, we have shortened the input line length to 56
columns. As before, an arrow → indicates a tab character.
</p>
<table class="cartouche" border="1"><tr><td>
<div class="example">
<pre class="example-preformatted">.\" nroff this_file.roff | less
.\" groff -T ps this_file.roff > this_file.ps
→The theory of relativity is intimately connected with
the theory of space and time.
.
I shall therefore begin with a brief investigation of
the origin of our ideas of space and time,
although in doing so I know that I introduce a
controversial subject. \" remainder of paragraph elided
.
.
→The experiences of an individual appear to us arranged
in a series of events;
in this series the single events which we remember
appear to be ordered according to the criterion of
\[lq]earlier\[rq] and \[lq]later\[rq], \" punct swapped
which cannot be analysed further.
.
There exists,
therefore,
for the individual,
an I-time,
or subjective time.
.
This itself is not measurable.
.
I can,
indeed,
associate numbers with the events,
in such a way that the greater number is associated with
the later event than with an earlier one;
but the nature of this association may be quite
arbitrary.
.
This association I can define by means of a clock by
comparing the order of events furnished by the clock
with the order of a given series of events.
.
We understand by a clock something which provides a
series of events which can be counted,
and which has other properties of which we shall speak
later.
.\" Albert Einstein, _The Meaning of Relativity_, 1922
</pre></div>
</td></tr></table>
<hr>
</div>
</div>
<div class="section-level-extent" id="Page-Geometry">
<div class="nav-panel">
<p>
Next: <a href="#Measurements" accesskey="n" rel="next">Measurements</a>, Previous: <a href="#Text" accesskey="p" rel="prev">Text</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Page-Geometry-1">5.2 Page Geometry</h3>
<a class="index-entry-id" id="index-page_002c-geometry-of"></a>
<a class="index-entry-id" id="index-geometry_002c-page"></a>
<p><code class="code">roff</code> systems format text under certain assumptions about the size
of the output medium, or page. For the formatter to correctly break a
line it is filling, it must know the line length, which it derives from
the page width (see <a class="pxref" href="#Line-Layout">Line Layout</a>). For it to decide whether to write
an output line to the current page or wait until the next one, it must
know the page length (see <a class="pxref" href="#Page-Layout">Page Layout</a>).
</p>
<a class="index-entry-id" id="index-device-resolution"></a>
<a class="index-entry-id" id="index-resolution_002c-device"></a>
<a class="index-entry-id" id="index-basic-units"></a>
<a class="index-entry-id" id="index-units_002c-basic"></a>
<a class="index-entry-id" id="index-machine-units"></a>
<a class="index-entry-id" id="index-units_002c-machine"></a>
<p>A device’s <em class="dfn">resolution</em> converts practical units like inches or
centimeters to <em class="dfn">basic units</em>, a convenient length measure for the
output device or file format. The formatter and output driver use basic
units to reckon page measurements. The device description file defines
its resolution and page dimensions (see <a class="pxref" href="#DESC-File-Format"><samp class="file">DESC</samp> File Format</a>).
</p>
<a class="index-entry-id" id="index-page"></a>
<p>A <em class="dfn">page</em> is a two-dimensional structure upon which a <code class="code">roff</code>
system imposes a rectangular coordinate system with its upper left
corner as the origin. Coordinate values are in basic units and increase
down and to the right. Useful ones are therefore always positive and
within numeric ranges corresponding to the page boundaries.
</p>
<a class="index-entry-id" id="index-drawing-position"></a>
<a class="index-entry-id" id="index-position_002c-drawing"></a>
<p>While the formatter (and, later, output driver) is processing a page, it
keeps track of its <em class="dfn">drawing position</em>, which is the location at
which the next glyph will be written, from which the next motion will be
measured, or where a geometric object will commence rendering.
<a class="index-entry-id" id="index-text-baseline"></a>
<a class="index-entry-id" id="index-baseline_002c-text"></a>
Notionally, glyphs are drawn from the text baseline upward and to the
right.<a class="footnote" id="DOCF33" href="#FOOT33"><sup>33</sup></a> The <em class="dfn">text baseline</em> is a (usually invisible) line upon
which the glyphs of a typeface are aligned. A glyph therefore
“starts” at its bottom-left corner. If drawn at the origin, a typical
letter glyph would lie partially or wholly off the page, depending on
whether, like “g”, it features a descender below the baseline.
</p>
<a class="index-entry-id" id="index-page-offset"></a>
<a class="index-entry-id" id="index-offset_002c-page"></a>
<p>Such a situation is nearly always undesirable. It is furthermore
conventional not to write or draw at the extreme edges of the page.
Therefore the initial drawing position of a <code class="code">roff</code> formatter is not
at the origin, but below and to the right of it. This rightward shift
from the left edge is known as the <em class="dfn">page
offset</em>.<a class="footnote" id="DOCF34" href="#FOOT34"><sup>34</sup></a> The downward shift leaves room for a text output
line.
</p>
<p>Text is arranged on a one-dimensional lattice of text baselines from the
top to the bottom of the page.
<a class="index-entry-id" id="index-vertical-spacing"></a>
<a class="index-entry-id" id="index-spacing_002c-vertical"></a>
<a class="index-entry-id" id="index-vee"></a>
<em class="dfn">Vertical spacing</em> is the distance between adjacent text baselines.
Typographic tradition sets this quantity to 120% of the type size. The
initial drawing position is one unit of vertical spacing below the page
top. Typographers term this unit a <i class="slanted">vee</i>.
</p>
<a class="index-entry-id" id="index-page-break"></a>
<a class="index-entry-id" id="index-break_002c-page"></a>
<a class="index-entry-id" id="index-page-ejection"></a>
<a class="index-entry-id" id="index-ejection_002c-page"></a>
<p>Vertical spacing has an impact on page-breaking decisions. Generally,
when a break occurs, the formatter moves the drawing position to the
next text baseline automatically. If the formatter were already writing
to the last line that would fit on the page, advancing by one vee would
place the next text baseline off the page. Rather than let that happen,
<code class="code">roff</code> formatters instruct the output driver to eject the page,
start a new one, and again set the drawing position to one vee below the
page top; this is a <em class="dfn">page break</em>.
</p>
<p>When the last line of input text corresponds to the last output line
that fits on the page, the break caused by the end of input will also
break the page, producing a useless blank one. Macro packages keep
users from having to confront this difficulty by setting “traps”
(see <a class="pxref" href="#Traps">Traps</a>); moreover, all but the simplest page layouts tend to
have headers and footers, or at least bear vertical margins larger than
one vee.
</p>
<hr>
</div>
<div class="section-level-extent" id="Measurements">
<div class="nav-panel">
<p>
Next: <a href="#Numeric-Expressions" accesskey="n" rel="next">Numeric Expressions</a>, Previous: <a href="#Text" accesskey="p" rel="prev">Text</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Measurements-1">5.3 Measurements</h3>
<a class="index-entry-id" id="index-measurements"></a>
<a class="index-entry-id" id="index-scaling-indicator"></a>
<a class="index-entry-id" id="index-indicator_002c-scaling"></a>
<a class="index-entry-id" id="index-units-of-measurement"></a>
<a class="index-entry-id" id="index-measurement-units"></a>
<p>The formatter sometimes requires the input of numeric parameters to
specify measurements. These are specified as integers or decimal
fractions with an optional <em class="dfn">scaling unit</em> suffixed. A scaling unit
is a letter that immediately follows the last digit of a number. Digits
after the decimal point are optional. Measurement expressions include
‘<samp class="samp">10.5p</samp>’, ‘<samp class="samp">11i</samp>’, and ‘<samp class="samp">3.c</samp>’.
</p>
<a class="index-entry-id" id="index-basic-units_002c-conversion-to"></a>
<a class="index-entry-id" id="index-units_002c-basic_002c-conversion-to"></a>
<a class="index-entry-id" id="index-conversion-to-basic-units"></a>
<p>Measurements are scaled by the scaling unit and stored internally (with
any fractional part discarded) in basic units.
<a class="index-entry-id" id="index-device-resolution_002c-obtaining-in-the-formatter"></a>
<a class="index-entry-id" id="index-resolution_002c-device_002c-obtaining-in-the-formatter"></a>
The device resolution can therefore be obtained by storing a value of
‘<samp class="samp">1i</samp>’ to a register. The only constraint on the basic unit is that
it is at least as small as any other unit.
</p>
<dl class="table">
<dd><a class="index-entry-id" id="index-basic-scaling-unit-_0028u_0029"></a>
<a class="index-entry-id" id="index-u-scaling-unit"></a>
<a class="index-entry-id" id="index-unit_002c-scaling_002c-u"></a>
<a class="index-entry-id" id="index-scaling-unit-u"></a>
</dd>
<dt><code class="code">u</code></dt>
<dd><p>Basic unit.
</p>
</dd>
<dt id='index-inch-scaling-unit-_0028i_0029'><span><code class="code">i</code><a class="copiable-link" href='#index-inch-scaling-unit-_0028i_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-i-scaling-unit"></a>
<a class="index-entry-id" id="index-unit_002c-scaling_002c-i"></a>
<a class="index-entry-id" id="index-scaling-unit-i"></a>
<p>Inch; defined as 2.54 centimeters.
</p>
</dd>
<dt id='index-centimeter-scaling-unit-_0028c_0029'><span><code class="code">c</code><a class="copiable-link" href='#index-centimeter-scaling-unit-_0028c_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-c-scaling-unit"></a>
<a class="index-entry-id" id="index-unit_002c-scaling_002c-c"></a>
<a class="index-entry-id" id="index-scaling-unit-c"></a>
<p>Centimeter; a centimeter is about 0.3937 inches.
</p>
</dd>
<dt id='index-point-scaling-unit-_0028p_0029'><span><code class="code">p</code><a class="copiable-link" href='#index-point-scaling-unit-_0028p_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-p-scaling-unit"></a>
<a class="index-entry-id" id="index-unit_002c-scaling_002c-p"></a>
<a class="index-entry-id" id="index-scaling-unit-p"></a>
<p>Point; a typesetter’s unit used for measuring type size.
There are 72 points to an inch.
</p>
</dd>
<dt id='index-pica-scaling-unit-_0028P_0029'><span><code class="code">P</code><a class="copiable-link" href='#index-pica-scaling-unit-_0028P_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-P-scaling-unit"></a>
<a class="index-entry-id" id="index-unit_002c-scaling_002c-P"></a>
<a class="index-entry-id" id="index-scaling-unit-P"></a>
<p>Pica; another typesetter’s unit. There are 6 picas to an inch and
12 points to a pica.
</p>
</dd>
<dt><code class="code">s</code></dt>
<dt><code class="code">z</code></dt>
<dd><p>See <a class="xref" href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a>, for a discussion of these units.
</p>
</dd>
<dt><code class="code">f</code></dt>
<dd><p>GNU <code class="code">troff</code> defines this unit to scale decimal fractions in the
interval [0, 1] to 16-bit unsigned integers. It multiplies a quantity
by 65,536. See <a class="xref" href="#Colors">Colors</a>, for usage.
</p></dd>
</dl>
<p>The magnitudes of other scaling units depend on the text formatting
parameters in effect. These are useful when specifying measurements
that need to scale with the typeface or vertical spacing.
</p>
<dl class="table">
<dt id='index-em-scaling-unit-_0028m_0029'><span><code class="code">m</code><a class="copiable-link" href='#index-em-scaling-unit-_0028m_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-m-scaling-unit"></a>
<a class="index-entry-id" id="index-unit_002c-scaling_002c-m"></a>
<a class="index-entry-id" id="index-scaling-unit-m"></a>
<p>Em; an em is equal to the current type size in points. It is named thus
because it is approximately the width of the letter ‘<samp class="samp">M</samp>’.
</p>
</dd>
<dt id='index-en-scaling-unit-_0028n_0029'><span><code class="code">n</code><a class="copiable-link" href='#index-en-scaling-unit-_0028n_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-n-scaling-unit"></a>
<a class="index-entry-id" id="index-unit_002c-scaling_002c-n"></a>
<a class="index-entry-id" id="index-scaling-unit-n"></a>
<p>En; an en is one-half em.
</p>
</dd>
<dt id='index-vertical-space-unit-_0028v_0029'><span><code class="code">v</code><a class="copiable-link" href='#index-vertical-space-unit-_0028v_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-space_002c-vertical_002c-unit-_0028v_0029"></a>
<a class="index-entry-id" id="index-vee-scaling-unit-_0028v_0029"></a>
<a class="index-entry-id" id="index-v-scaling-unit"></a>
<a class="index-entry-id" id="index-unit_002c-scaling_002c-v"></a>
<a class="index-entry-id" id="index-scaling-unit-v"></a>
<p>Vee; recall <a class="ref" href="#Page-Geometry">Page Geometry</a>.
</p>
</dd>
<dt id='index-M-scaling-unit'><span><code class="code">M</code><a class="copiable-link" href='#index-M-scaling-unit'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-unit_002c-scaling_002c-M"></a>
<a class="index-entry-id" id="index-scaling-unit-M"></a>
<p>Hundredth of an em.
</p></dd>
</dl>
<ul class="mini-toc">
<li><a href="#Motion-Quanta" accesskey="1">Motion Quanta</a></li>
<li><a href="#Default-Units" accesskey="2">Default Units</a></li>
</ul>
<hr>
<div class="subsection-level-extent" id="Motion-Quanta">
<div class="nav-panel">
<p>
Next: <a href="#Default-Units" accesskey="n" rel="next">Default Units</a>, Previous: <a href="#Measurements" accesskey="p" rel="prev">Measurements</a>, Up: <a href="#Measurements" accesskey="u" rel="up">Measurements</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Motion-Quanta-1">5.3.1 Motion Quanta</h4>
<a class="index-entry-id" id="index-motion-quanta"></a>
<a class="index-entry-id" id="index-quanta_002c-motion"></a>
<p>An output device’s basic unit <code class="code">u</code> is not necessarily its smallest
addressable length; <code class="code">u</code> can be smaller to avoid problems with
integer roundoff. The minimum distances that a device can work with in
the horizontal and vertical directions are termed its <em class="dfn">motion
quanta</em>. Measurements are rounded to applicable motion quanta.
Half-quantum fractions round toward zero.
</p>
<a class="index-entry-id" id="index-horizontal-motion-quantum-register-_0028_002eH_0029"></a>
<a class="index-entry-id" id="index-motion-quantum_002c-horizontal_002c-register-_0028_002eH_0029"></a>
<a class="index-entry-id" id="index-horizontal-resolution-register-_0028_002eH_0029"></a>
<a class="index-entry-id" id="index-resolution_002c-horizontal_002c-register-_0028_002eH_0029"></a>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005b_002eH_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.H]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002eH_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002eH"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002eV_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.V]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002eV_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002eV"></a>
<p>These read-only registers interpolate the horizontal and vertical motion
quanta, respectively, of the output device in basic units.
</p></dd></dl>
<p>For example, we might draw short baseline rules on a terminal device as
follows. See <a class="xref" href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a>.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.tm \n[.H]
error→ 24
.nf
\l'36u' 36u
\l'37u' 37u
⇒ _ 36u
⇒ __ 37u
</pre></div></div>
<hr>
</div>
<div class="subsection-level-extent" id="Default-Units">
<div class="nav-panel">
<p>
Previous: <a href="#Motion-Quanta" accesskey="p" rel="prev">Motion Quanta</a>, Up: <a href="#Measurements" accesskey="u" rel="up">Measurements</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Default-Units-1">5.3.2 Default Units</h4>
<a class="index-entry-id" id="index-default-units"></a>
<a class="index-entry-id" id="index-units_002c-default"></a>
<p>A general-purpose register (one created or updated with the <code class="code">nr</code>
request; see see <a class="pxref" href="#Registers">Registers</a>) is implicitly dimensionless, or reckoned
in basic units if interpreted in a measurement context. But it is
convenient for many requests and escape sequences to infer a scaling
unit for an argument if none is specified. An explicit scaling unit
(not after a closing parenthesis) can override an undesirable default.
Effectively, the default unit is suffixed to the expression if a scaling
unit is not already present. GNU <code class="code">troff</code>’s use of integer
arithmetic should also be kept in mind (see <a class="pxref" href="#Numeric-Expressions">Numeric Expressions</a>).
</p>
<p>The <code class="code">ll</code> request interprets its argument in ems by default.
Consider several attempts to set a line length of 3.5 inches when
the type size is 10 points on a terminal device with a resolution
of 240 basic units and horizontal motion quantum of 24. Some
expressions become zero; the request clamps them to that quantum.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ll 3.5i \" 3.5i (= 840u)
.ll 7/2 \" 7u/2u -> 3u -> 3m -> 0, clamped to 24u
.ll (7 / 2)u \" 7u/2u -> as above
.ll 7/2i \" 7u/2i -> 7u/480u -> 0 -> as above
.ll 7i/2 \" 7i/2u -> 1680u/2m -> 1680u/24u -> 35u
.ll 7i/2u \" 3.5i (= 840u)
</pre></div></div>
<a class="index-entry-id" id="index-measurements_002c-specifying-safely"></a>
<p>The safest way to specify measurements is to attach a scaling unit. To
multiply or divide by a dimensionless quantity, use ‘<samp class="samp">u</samp>’ as its
scaling unit.
</p>
<hr>
</div>
</div>
<div class="section-level-extent" id="Numeric-Expressions">
<div class="nav-panel">
<p>
Next: <a href="#Identifiers" accesskey="n" rel="next">Identifiers</a>, Previous: <a href="#Measurements" accesskey="p" rel="prev">Measurements</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Numeric-Expressions-1">5.4 Numeric Expressions</h3>
<a class="index-entry-id" id="index-numeric-expressions"></a>
<a class="index-entry-id" id="index-expressions_002c-numeric"></a>
<p>A <em class="dfn">numeric expression</em> evaluates to an integer: it can be as
simple as a literal ‘<samp class="samp">0</samp>’ or it can be a complex sequence of register
and string interpolations interleaved with measurements and operators.
</p>
<p>GNU <code class="code">troff</code> provides a set of mathematical and logical operators
familiar to programmers—as well as some unusual ones—but supports
only integer arithmetic.<a class="footnote" id="DOCF35" href="#FOOT35"><sup>35</sup></a> The internal data type
used for computing results is usually a 32-bit signed integer, which
suffices to represent magnitudes within a range of 2
billion.<a class="footnote" id="DOCF36" href="#FOOT36"><sup>36</sup></a>
</p>
<a class="index-entry-id" id="index-arithmetic-operators"></a>
<a class="index-entry-id" id="index-operators_002c-arithmetic"></a>
<a class="index-entry-id" id="index-truncating-division"></a>
<a class="index-entry-id" id="index-addition"></a>
<a class="index-entry-id" id="index-subtraction"></a>
<a class="index-entry-id" id="index-multiplication"></a>
<a class="index-entry-id" id="index-division_002c-truncating"></a>
<a class="index-entry-id" id="index-modulus"></a>
<a class="index-entry-id" id="index-_002b"></a>
<a class="index-entry-id" id="index-_002d"></a>
<a class="index-entry-id" id="index-_002a"></a>
<a class="index-entry-id" id="index-_002f"></a>
<a class="index-entry-id" id="index-_0025"></a>
<p>Arithmetic infix operators perform a function on the numeric expressions
to their left and right; they are <code class="code">+</code> (addition), <code class="code">-</code>
(subtraction), <code class="code">*</code> (multiplication), <code class="code">/</code> (truncating
division), and <code class="code">%</code> (modulus). <em class="dfn">Truncating division</em> rounds to
the integer nearer to zero, no matter how large the fractional portion.
Overflow and division (or modulus) by zero are errors and abort
evaluation of a numeric expression.
<a class="index-entry-id" id="index-unary-arithmetic-operators"></a>
<a class="index-entry-id" id="index-operators_002c-unary-arithmetic"></a>
<a class="index-entry-id" id="index-negation"></a>
<a class="index-entry-id" id="index-assertion-_0028arithmetic-operator_0029"></a>
<a class="index-entry-id" id="index-_002d-1"></a>
<a class="index-entry-id" id="index-_002b-1"></a>
<a class="index-entry-id" id="index-if-request_002c-and-the-_0021-operator"></a>
<a class="index-entry-id" id="index-while-request_002c-and-the-_0021-operator"></a>
</p>
<p>Arithmetic unary operators operate on the numeric expression to their
right; they are <code class="code">-</code> (negation) and <code class="code">+</code> (assertion—for
completeness; it does nothing). The unary minus must often be used
with parentheses to avoid confusion with the decrementation operator,
discussed below.
</p>
<p>Observe the rounding behavior and effect of negative operands on the
modulus and truncating division operators.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.nr T 199/100
.nr U 5/2
.nr V (-5)/2
.nr W 5/-2
.nr X 5%2
.nr Y (-5)%2
.nr Z 5%-2
T=\n[T] U=\n[U] V=\n[V] W=\n[W] X=\n[X] Y=\n[Y] Z=\n[Z]
⇒ T=1 U=2 V=-2 W=-2 X=1 Y=-1 Z=1
</pre></div></div>
<p>The sign of the modulus of operands of mixed signs is determined by the
sign of the first. Division and modulus operators satisfy the following
property: given a dividend <var class="var">a</var> and a divisor <var class="var">b</var>, a
quotient <var class="var">q</var> formed by ‘<samp class="samp">(a / b)</samp>’ and a
remainder <var class="var">r</var> by ‘<samp class="samp">(a % b)</samp>’, then <em class="math">qb + r = a</em>.
</p>
<a class="index-entry-id" id="index-scaling-operator"></a>
<a class="index-entry-id" id="index-operator_002c-scaling"></a>
<a class="index-entry-id" id="index-_003b"></a>
<p>GNU <code class="code">troff</code>’s scaling operator, used with parentheses as
<code class="code">(<var class="var">c</var>;<var class="var">e</var>)</code>, evaluates a numeric expression <var class="var">e</var>
using <var class="var">c</var> as the default scaling unit. If <var class="var">c</var> is omitted,
scaling units are ignored in the evaluation of <var class="var">e</var>. This
operator can save typing by avoiding the attachment of scaling units to
every operand out of caution. Your macros can select a sensible default
unit in case the user neglects to supply one.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.\" Indent by amount given in first argument; assume ens.
.de Indent
. in (n;\\$1)
..
</pre></div></div>
<p>Without the scaling operator, the foregoing macro would, if called with
a unitless argument, cause indentation by the <code class="code">in</code> request’s
default scaling unit (ems). The result would be twice as much
indentation as expected.
</p>
<a class="index-entry-id" id="index-extremum-operators-_0028_003e_003f_002c-_003c_003f_0029"></a>
<a class="index-entry-id" id="index-operators_002c-extremum-_0028_003e_003f_002c-_003c_003f_0029"></a>
<a class="index-entry-id" id="index-maximum-operator"></a>
<a class="index-entry-id" id="index-minimum-operator"></a>
<a class="index-entry-id" id="index-_003e_003f"></a>
<a class="index-entry-id" id="index-_003c_003f"></a>
<p>GNU <code class="code">troff</code> also provides a pair of operators to compute the
extrema of two operands: <code class="code">>?</code> (maximum) and <code class="code"><?</code> (minimum).
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.nr slots 5
.nr candidates 3
.nr salaries (\n[slots] <? \n[candidates])
Looks like we'll end up paying \n[salaries] salaries.
⇒ Looks like we'll end up paying 3 salaries.
</pre></div></div>
<a class="index-entry-id" id="index-comparison-operators"></a>
<a class="index-entry-id" id="index-operators_002c-comparison"></a>
<a class="index-entry-id" id="index-greater-than-_0028or-equal-to_0029-operator"></a>
<a class="index-entry-id" id="index-less-than-_0028or-equal-to_0029-operator"></a>
<a class="index-entry-id" id="index-equality-operator"></a>
<a class="index-entry-id" id="index-_003c"></a>
<a class="index-entry-id" id="index-_003e"></a>
<a class="index-entry-id" id="index-_003e_003d"></a>
<a class="index-entry-id" id="index-_003c_003d"></a>
<a class="index-entry-id" id="index-_003d"></a>
<a class="index-entry-id" id="index-_003d_003d"></a>
<p>Comparison operators comprise <code class="code"><</code> (less than), <code class="code">></code> (greater
than), <code class="code"><=</code> (less than or equal), <code class="code">>=</code> (greater than or
equal), and <code class="code">=</code> (equal). <code class="code">==</code> is a synonym for <code class="code">=</code>.
When evaluated, a comparison is replaced with ‘<samp class="samp">0</samp>’ if it is false
and ‘<samp class="samp">1</samp>’ if true. In the <code class="code">roff</code> language, positive values are
true, others false.
</p>
<a class="index-entry-id" id="index-logical-operators"></a>
<a class="index-entry-id" id="index-operators_002c-logical"></a>
<a class="index-entry-id" id="index-logical-_0060_0060and_0027_0027-operator"></a>
<a class="index-entry-id" id="index-logical-conjunction-operator"></a>
<a class="index-entry-id" id="index-logical-_0060_0060or_0027_0027-operator"></a>
<a class="index-entry-id" id="index-logical-disjunction-operator"></a>
<a class="index-entry-id" id="index-_0026"></a>
<a class="index-entry-id" id="index-_003a"></a>
<p>We can operate on truth values with the logical operators <code class="code">&</code>
(logical conjunction or “and”) and <code class="code">:</code> (logical disjunction or
“or”). They evaluate as comparison operators do.
</p>
<a class="index-entry-id" id="index-_0021"></a>
<a class="index-entry-id" id="index-complementation_002c-logical"></a>
<a class="index-entry-id" id="index-logical-complementation-operator"></a>
<a class="index-entry-id" id="index-logical-not_002c-limitation-in-expression"></a>
<a class="index-entry-id" id="index-expression_002c-limitation-of-logical-not-in"></a>
<p>A logical complementation (“not”) operator, <code class="code">!</code>, works only
within <code class="code">if</code>, <code class="code">ie</code>, and <code class="code">while</code> requests.
Furthermore, <code class="code">!</code> is recognized only at the beginning of a numeric
expression not contained by another numeric expression. In other words,
it must be the “outermost” operator. Including it elsewhere in the
expression produces a warning in the ‘<samp class="samp">number</samp>’ category
(see <a class="pxref" href="#Warnings">Warnings</a>), and its expression evaluates false. This
unfortunate limitation maintains compatibility with <abbr class="acronym">AT&T</abbr>
<code class="code">troff</code>. Test a numeric expression for falsity by
comparing it to a false value.<a class="footnote" id="DOCF37" href="#FOOT37"><sup>37</sup></a>
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.nr X 1
.nr Y 0
.\" This does not work as expected.
.if (\n[X])&(!\n[Y]) .nop A: X is true, Y is false
.
.\" Use this construct instead.
.if (\n[X])&(\n[Y]<=0) .nop B: X is true, Y is false
error→ warning: expected numeric expression, got '!'
⇒ B: X is true, Y is false
</pre></div></div>
<a class="index-entry-id" id="index-parentheses"></a>
<a class="index-entry-id" id="index-order-of-evaluation-in-expressions"></a>
<a class="index-entry-id" id="index-expression_002c-order-of-evaluation"></a>
<a class="index-entry-id" id="index-_0028"></a>
<a class="index-entry-id" id="index-_0029"></a>
<p>The <code class="code">roff</code> language has no operator precedence: expressions are
evaluated strictly from left to right, in contrast to schoolhouse
arithmetic. Use parentheses <code class="code">(</code> <code class="code">)</code> to impose a desired
precedence upon subexpressions.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.nr X 3+5*4
.nr Y (3+5)*4
.nr Z 3+(5*4)
X=\n[X] Y=\n[Y] Z=\n[Z]
⇒ X=32 Y=32 Z=23
</pre></div></div>
<a class="index-entry-id" id="index-_002b_002c-and-page-motion"></a>
<a class="index-entry-id" id="index-_002d_002c-and-page-motion"></a>
<a class="index-entry-id" id="index-motion-operators"></a>
<a class="index-entry-id" id="index-operators_002c-motion"></a>
<a class="index-entry-id" id="index-_002b-_0028unary_0029"></a>
<a class="index-entry-id" id="index-_002d-_0028unary_0029"></a>
<p>For many requests and escape sequences that cause motion on the page,
the unary operators <code class="code">+</code> and <code class="code">-</code> work differently when leading
a numeric expression. They then indicate a motion relative to the
drawing position: positive is down in vertical contexts, right in
horizontal ones.
</p>
<a class="index-entry-id" id="index-bp-request_002c-using-_002b-and-_002d-with"></a>
<a class="index-entry-id" id="index-in-request_002c-using-_002b-and-_002d-with"></a>
<a class="index-entry-id" id="index-ll-request_002c-using-_002b-and-_002d-with"></a>
<a class="index-entry-id" id="index-lt-request_002c-using-_002b-and-_002d-with"></a>
<a class="index-entry-id" id="index-nm-request_002c-using-_002b-and-_002d-with"></a>
<a class="index-entry-id" id="index-nr-request_002c-using-_002b-and-_002d-with"></a>
<a class="index-entry-id" id="index-pl-request_002c-using-_002b-and-_002d-with"></a>
<a class="index-entry-id" id="index-pn-request_002c-using-_002b-and-_002d-with"></a>
<a class="index-entry-id" id="index-po-request_002c-using-_002b-and-_002d-with"></a>
<a class="index-entry-id" id="index-ps-request_002c-using-_002b-and-_002d-with"></a>
<a class="index-entry-id" id="index-pvs-request_002c-using-_002b-and-_002d-with"></a>
<a class="index-entry-id" id="index-rt-request_002c-using-_002b-and-_002d-with"></a>
<a class="index-entry-id" id="index-ti-request_002c-using-_002b-and-_002d-with"></a>
<a class="index-entry-id" id="index-_005cH_002c-using-_002b-and-_002d-with"></a>
<a class="index-entry-id" id="index-_005cR_002c-using-_002b-and-_002d-with"></a>
<a class="index-entry-id" id="index-_005cs_002c-using-_002b-and-_002d-with"></a>
<p><code class="code">+</code> and <code class="code">-</code> are also treated differently by the following
requests and escape sequences: <code class="code">bp</code>, <code class="code">in</code>, <code class="code">ll</code>,
<code class="code">lt</code>, <code class="code">nm</code>, <code class="code">nr</code>, <code class="code">pl</code>, <code class="code">pn</code>, <code class="code">po</code>,
<code class="code">ps</code>, <code class="code">pvs</code>, <code class="code">rt</code>, <code class="code">ti</code>, <code class="code">\H</code>, <code class="code">\R</code>, and
<code class="code">\s</code>. Here, leading plus and minus signs serve as incrementation
and decrementation operators, respectively. To negate an expression,
subtract it from zero or include the unary minus in parentheses with its
argument. See <a class="xref" href="#Setting-Registers">Setting Registers</a>, for examples.
</p>
<a class="index-entry-id" id="index-_007c"></a>
<a class="index-entry-id" id="index-_007c_002c-and-page-motion"></a>
<a class="index-entry-id" id="index-absolute-_0028sic_0029-position-operator-_0028_007c_0029"></a>
<a class="index-entry-id" id="index-position_002c-absolute-_0028sic_0029-operator-_0028_007c_0029"></a>
<a class="index-entry-id" id="index-boundary_002drelative-motion-operator-_0028_007c_0029"></a>
<p>A leading <code class="code">|</code> operator indicates a motion relative not to the
drawing position but to a boundary. For horizontal motions, the
measurement specifies a distance relative to a drawing position
corresponding to the beginning of the <em class="emph">input</em> line. By default,
tab stops reckon movements in this way. Most escape sequences do not;
<code class="code">|</code> tells them to do so.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">Mind the \h'1.2i'gap.
.br
Mind the \h'|1.2i'gap.
.br
Mind the
\h'|1.2i'gap.
⇒ Mind the gap.
⇒ Mind the gap.
⇒ Mind the gap.
</pre></div></div>
<p>One use of this feature is to define macros whose scope is limited to
the output they format.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.\" underline word $1 with trailing punctuation $2
.de Underline
. nop \\$1\l'|0\[ul]'\\$2
..
Typographical emphasis is best used
.Underline sparingly .
</pre></div></div>
<p>In the above example, ‘<samp class="samp">|0</samp>’ specifies a negative motion from the
current position (at the end of the argument just emitted, <code class="code">\$1</code>)
to the beginning of the input line. Thus, the <code class="code">\l</code> escape sequence
in this case draws a line from right to left. A macro call occurs at
the beginning of an input line;<a class="footnote" id="DOCF38" href="#FOOT38"><sup>38</sup></a> if the <code class="code">|</code>
operator were omitted, then the underline would be drawn at zero
distance from the current position, producing device-dependent, and
likely undesirable, results. On the ‘<samp class="samp">ps</samp>’ output device, it
underlines the period.
</p>
<p>For vertical motions, the <code class="code">|</code> operator specifies a distance from
the first text baseline on the page or in the current
diversion,<a class="footnote" id="DOCF39" href="#FOOT39"><sup>39</sup></a> using the current vertical
spacing.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">A
.br
B \Z'C'\v'|0'D
⇒ A D
⇒ B C
</pre></div></div>
<p>In the foregoing example, we’ve used the <code class="code">\Z</code> escape sequence
(see <a class="pxref" href="#Page-Motions">Page Motions</a>) to restore the drawing position after formatting
‘<samp class="samp">C</samp>’, then moved vertically to the first text baseline on the page.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cB_0027anything_0027"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\B<code class="code">'</code></code><span class="r"><i class="slanted">anything</i></span><code class="t"><code class="code">'</code></code></strong><a class="copiable-link" href='#index-_005cB_0027anything_0027'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cB"></a>
<a class="index-entry-id" id="index-numeric-expression_002c-valid"></a>
<a class="index-entry-id" id="index-valid-numeric-expression"></a>
<p>Interpolate 1 if <var class="var">anything</var> is a valid numeric expression,
and 0 otherwise. The delimiter need not be a neutral apostrophe;
see <a class="ref" href="#Delimiters">Delimiters</a>.
</p></dd></dl>
<p>You might use <code class="code">\B</code> along with the <code class="code">if</code> request to filter out
invalid macro or string arguments. See <a class="xref" href="#Conditionals-and-Loops">Conditionals and Loops</a>.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.\" Indent by amount given in first argument; assume ens.
.de Indent
. if \B'\\$1' .in (n;\\$1)
..
</pre></div></div>
<p>A register interpolated as an operand in a numeric expression must have
an Arabic format; luckily, this is the default. See <a class="xref" href="#Assigning-Register-Formats">Assigning Register Formats</a>.
</p>
<a class="index-entry-id" id="index-space-characters_002c-in-expressions"></a>
<a class="index-entry-id" id="index-expressions_002c-and-space-characters"></a>
<p>Because spaces separate arguments to requests, spaces are not allowed in
numeric expressions unless the (sub)expression containing them is
surrounded by parentheses. See <a class="xref" href="#Invoking-Requests">Invoking Requests</a>, and
<a class="ref" href="#Conditionals-and-Loops">Conditionals and Loops</a>.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.nf
.nr a 1+2 + 2+1
\na
error→ expected numeric expression, got a space
⇒ 3
.nr a 1+(2 + 2)+1
\na
⇒ 6
</pre></div></div>
<p>The <code class="code">nr</code> request (see <a class="pxref" href="#Setting-Registers">Setting Registers</a>) expects its second and
optional third arguments to be numeric expressions; a bare <code class="code">+</code> does
not qualify, so our first attempt got a warning.
</p>
<hr>
</div>
<div class="section-level-extent" id="Identifiers">
<div class="nav-panel">
<p>
Next: <a href="#Formatter-Instructions" accesskey="n" rel="next">Formatter Instructions</a>, Previous: <a href="#Numeric-Expressions" accesskey="p" rel="prev">Numeric Expressions</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Identifiers-1">5.5 Identifiers</h3>
<a class="index-entry-id" id="index-identifiers"></a>
<p>An <em class="dfn">identifier</em> labels a GNU <code class="code">troff</code> datum such as a register,
name (macro, string, or diversion), typeface, color, special character,
character class, environment, or stream. Valid identifiers consist of
one or more ordinary characters.
<a class="index-entry-id" id="index-ordinary-character"></a>
<a class="index-entry-id" id="index-character_002c-ordinary"></a>
An <i class="slanted">ordinary character</i> is an input character that is not the
escape character, a leader, tab, newline, or invalid as GNU <code class="code">troff</code>
input.
</p>
<a class="index-entry-id" id="index-invalid-input-characters"></a>
<a class="index-entry-id" id="index-input-characters_002c-invalid"></a>
<a class="index-entry-id" id="index-characters_002c-invalid-input"></a>
<a class="index-entry-id" id="index-Unicode"></a>
<p>Invalid input characters are a subset of control characters (from the
sets “C0 Controls” and “C1 Controls” as Unicode describes them).
When GNU <code class="code">troff</code> encounters one in an identifier, it produces a
warning in category ‘<samp class="samp">input</samp>’ (see <a class="pxref" href="#Warnings">Warnings</a>). They are removed
during interpretation: an identifier ‘<samp class="samp">foo</samp>’, followed by an invalid
character and then ‘<samp class="samp">bar</samp>’, is processed as ‘<samp class="samp">foobar</samp>’.
</p>
<p>On a machine using the ISO 646, 8859, or 10646 character encodings,
invalid input characters are <code class="code">0x00</code>, <code class="code">0x08</code>, <code class="code">0x0B</code>,
<code class="code">0x0D</code>–<code class="code">0x1F</code>, and <code class="code">0x80</code>–<code class="code">0x9F</code>. On an
<abbr class="acronym">EBCDIC</abbr> host, they are <code class="code">0x00</code>–<code class="code">0x01</code>, <code class="code">0x08</code>,
<code class="code">0x09</code>, <code class="code">0x0B</code>, <code class="code">0x0D</code>–<code class="code">0x14</code>,
<code class="code">0x17</code>–<code class="code">0x1F</code>, and
<code class="code">0x30</code>–<code class="code">0x3F</code>.<a class="footnote" id="DOCF40" href="#FOOT40"><sup>40</sup></a> Some of these code points are used
by GNU <code class="code">troff</code> internally, making it non-trivial to extend the
program to accept UTF-8 or other encodings that use characters from
these ranges.<a class="footnote" id="DOCF41" href="#FOOT41"><sup>41</sup></a>
</p>
<p>Thus, the identifiers ‘<samp class="samp">br</samp>’, ‘<samp class="samp">PP</samp>’, ‘<samp class="samp">end-list</samp>’,
‘<samp class="samp">ref*normal-print</samp>’, ‘<samp class="samp">|</samp>’, ‘<samp class="samp">@_</samp>’, and ‘<samp class="samp">!"#$%'()*+,-./</samp>’
are all valid. Discretion should be exercised to prevent confusion.
Identifiers starting with ‘<samp class="samp">(</samp>’ or ‘<samp class="samp">[</samp>’ require care.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.nr x 9
.nr y 1
.nr (x 2
.nr [y 3
.nr sum1 (\n(x + \n[y])
error→ a space character is not allowed in an escape
error→ sequence parameter
A:2+3=\n[sum1]
.nr sum2 (\n((x + \n[[y])
B:2+3=\n[sum2]
.nr sum3 (\n[(x] + \n([y)
C:2+3=\n[sum3]
⇒ A:2+3=1 B:2+3=5 C:2+3=5
</pre></div></div>
<a class="index-entry-id" id="index-_005d_002c-as-part-of-an-identifier"></a>
<p>An identifier with a closing bracket (‘<samp class="samp">]</samp>’) in its name can’t be
accessed with bracket-form escape sequences that expect an identifier as
a parameter. For example, ‘<samp class="samp">\[foo]]</samp>’ accesses the glyph ‘<samp class="samp">foo</samp>’,
followed by ‘<samp class="samp">]</samp>’ in whatever the surrounding context is, whereas
‘<samp class="samp">\C'foo]'</samp>’ formats a glyph named ‘<samp class="samp">foo]</samp>’. Similarly, the
identifier ‘<samp class="samp">(</samp>’ can’t be interpolated <em class="emph">except</em> with bracket
forms.
</p>
<a class="index-entry-id" id="index-refer_002c-and-macro-names-starting-with-_005b-or-_005d"></a>
<a class="index-entry-id" id="index-_005b_002c-macro-names-starting-with_002c-and-refer"></a>
<a class="index-entry-id" id="index-_005d_002c-macro-names-starting-with_002c-and-refer"></a>
<a class="index-entry-id" id="index-macro-names_002c-starting-with-_005b-or-_005d_002c-and-refer"></a>
<p>If you begin a macro, string, or diversion name with either of the
characters ‘<samp class="samp">[</samp>’ or ‘<samp class="samp">]</samp>’, you foreclose use of the <code class="code">grefer</code>
preprocessor, which recognizes ‘<samp class="samp">.[</samp>’ and ‘<samp class="samp">.]</samp>’ as bibliographic
reference delimiters.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cA_0027anything_0027"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\A<code class="code">'</code></code><span class="r"><i class="slanted">anything</i></span><code class="t"><code class="code">'</code></code></strong><a class="copiable-link" href='#index-_005cA_0027anything_0027'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cA"></a>
<p>Interpolate 1 if <var class="var">anything</var> is a valid identifier, and 0
otherwise. The delimiter need not be a neutral apostrophe; see
<a class="ref" href="#Delimiters">Delimiters</a>. Because invalid input characters are removed (see
above), invalid identifiers are empty or contain spaces, tabs, or
newlines.
</p>
<p>You can employ <code class="code">\A</code> to validate a macro argument before using it to
construct another escape sequence or identifier.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.\" usage: .init-coordinate-pair name val1 val2
.\" Create a coordinate pair where name!x=val1 and
.\" name!y=val2.
.de init-coordinate-pair
. if \A'\\$1' \{\
. if \B'\\$2' .nr \\$1!x \\$2
. if \B'\\$3' .nr \\$1!y \\$3
. \}
..
.init-coordinate-pair center 5 10
The center is at (\n[center!x], \n[center!y]).
.init-coordinate-pair "poi→nt" trash garbage \" ignored
.init-coordinate-pair point trash garbage \" ignored
⇒ The center is at (5, 10).
</pre></div></div>
<p>In this example, we also validated the numeric arguments; the registers
‘<samp class="samp">point!x</samp>’ and ‘<samp class="samp">point!y</samp>’ remain undefined. See <a class="xref" href="#Numeric-Expressions">Numeric Expressions</a> for the <code class="code">\B</code> escape sequence.
</p></dd></dl>
<a class="index-entry-id" id="index-undefined-identifiers"></a>
<a class="index-entry-id" id="index-identifiers_002c-undefined"></a>
<p>How GNU <code class="code">troff</code> handles the interpretation of an undefined
identifier depends on the context. There is no way to invoke an
undefined request; such syntax is interpreted as a macro call instead.
If the identifier is interpreted as a string, macro, or diversion, GNU
<code class="code">troff</code> emits a warning in category ‘<samp class="samp">mac</samp>’, defines it as
empty, and interpolates nothing. If the identifier is interpreted as a
register, GNU <code class="code">troff</code> emits a warning in category ‘<samp class="samp">reg</samp>’,
initializes it to zero, and interpolates that value. See <a class="xref" href="#Warnings">Warnings</a>,
<a class="ref" href="#Interpolating-Registers">Interpolating Registers</a>, and <a class="ref" href="#Strings">Strings</a>. Attempting to use an
undefined typeface, special character, color, character class,
environment, or stream generally provokes an error diagnostic.
</p>
<a class="index-entry-id" id="index-name-space_002c-common_002c-of-macros_002c-diversions_002c-and-strings"></a>
<a class="index-entry-id" id="index-common-name-space-of-macros_002c-diversions_002c-and-strings"></a>
<a class="index-entry-id" id="index-macros_002c-shared-name-space-with-strings-and-diversions"></a>
<a class="index-entry-id" id="index-strings_002c-shared-name-space-with-macros-and-diversions"></a>
<a class="index-entry-id" id="index-diversions_002c-shared-name-space-with-macros-and-strings"></a>
<p>Identifiers for requests, macros, strings, and diversions share one name
space; special characters and character classes another. No other
object types do.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de xxx
. nop foo
..
.di xxx
bar
.br
.di
.
.xxx
⇒ bar
</pre></div></div>
<p>The foregoing example shows that GNU <code class="code">troff</code> reuses the identifier
‘<samp class="samp">xxx</samp>’, changing it from a macro to a diversion. No warning is
emitted, and the previous contents of ‘<samp class="samp">xxx</samp>’ are lost.
</p>
<hr>
</div>
<div class="section-level-extent" id="Formatter-Instructions">
<div class="nav-panel">
<p>
Next: <a href="#Registers" accesskey="n" rel="next">Registers</a>, Previous: <a href="#Identifiers" accesskey="p" rel="prev">Identifiers</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Formatter-Instructions-1">5.6 Formatter Instructions</h3>
<a class="index-entry-id" id="index-formatter-instructions"></a>
<a class="index-entry-id" id="index-instructing-the-formatter"></a>
<p>To support documents that require more than filling, automatic line
breaking and hyphenation, adjustment, and supplemental inter-sentence
space, the <code class="code">roff</code> language offers two means of embedding
instructions to the formatter.
</p>
<a class="index-entry-id" id="index-request-1"></a>
<p>One is a <em class="dfn">request</em>, which begins with a control character and takes
up the remainder of the input line. Requests often perform relatively
large-scale operations such as setting the page length, breaking the
line, or starting a new page. They also conduct internal operations
like defining macros.
</p>
<a class="index-entry-id" id="index-escape-sequence"></a>
<a class="index-entry-id" id="index-sequence_002c-escape"></a>
<p>The other is an <em class="dfn">escape sequence</em>, which begins with the escape
character and can be embedded anywhere in the input, even in arguments
to requests and other escape sequences. Escape sequences interpolate
special characters, strings, or registers, and handle comparatively
minor formatting tasks like sub- and superscripting.
</p>
<p>Some operations, such as font selection and type size alteration, are
available via both requests and escape sequences.
</p>
<ul class="mini-toc">
<li><a href="#Control-Characters" accesskey="1">Control Characters</a></li>
<li><a href="#Invoking-Requests" accesskey="2">Invoking Requests</a></li>
<li><a href="#Calling-Macros" accesskey="3">Calling Macros</a></li>
<li><a href="#Using-Escape-Sequences" accesskey="4">Using Escape Sequences</a></li>
<li><a href="#Delimiters" accesskey="5">Delimiters</a></li>
</ul>
<hr>
<div class="subsection-level-extent" id="Control-Characters">
<div class="nav-panel">
<p>
Next: <a href="#Invoking-Requests" accesskey="n" rel="next">Invoking Requests</a>, Previous: <a href="#Formatter-Instructions" accesskey="p" rel="prev">Formatter Instructions</a>, Up: <a href="#Formatter-Instructions" accesskey="u" rel="up">Formatter Instructions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Control-Characters-1">5.6.1 Control Characters</h4>
<a class="index-entry-id" id="index-control-characters"></a>
<a class="index-entry-id" id="index-configuring-control-characters"></a>
<a class="index-entry-id" id="index-changing-control-characters"></a>
<p>The mechanism of using <code class="code">roff</code>’s control characters to invoke
requests and call macros was introduced in <a class="ref" href="#Requests-and-Macros">Requests and Macros</a>.
Control characters are recognized only at the beginning of an input
line, or at the beginning of the branch of a control structure request;
see <a class="ref" href="#Conditionals-and-Loops">Conditionals and Loops</a>.
</p>
<p>A few requests cause a break implicitly; use the no-break control
character to prevent the break. Break suppression is its sole
behavioral distinction. Employing the no-break control character to
invoke requests that don’t cause breaks is harmless but poor style.
See <a class="xref" href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a>.
</p>
<a class="index-entry-id" id="index-control-character_002c-changing-_0028cc_0029"></a>
<a class="index-entry-id" id="index-character_002c-control_002c-changing-_0028cc_0029"></a>
<a class="index-entry-id" id="index-no_002dbreak-control-character_002c-changing-_0028c2_0029"></a>
<a class="index-entry-id" id="index-character_002c-no_002dbreak-control_002c-changing-_0028c2_0029"></a>
<a class="index-entry-id" id="index-control-character_002c-no_002dbreak_002c-changing-_0028c2_0029"></a>
<p>The control ‘<samp class="samp">.</samp>’ and no-break control ‘<samp class="samp">'</samp>’ characters can each
be changed to any ordinary character<a class="footnote" id="DOCF42" href="#FOOT42"><sup>42</sup></a>
with the <code class="code">cc</code> and <code class="code">c2</code> requests, respectively.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ecc"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.cc</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">o</i></span>]</var><a class="copiable-link" href='#index-_002ecc'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-cc"></a>
<p>Recognize the ordinary character <var class="var">o</var> as the control character.
If <var class="var">o</var> is absent or invalid, the default control character
‘<samp class="samp">.</samp>’ is selected. The identity of the control character is
associated with the environment (see <a class="pxref" href="#Environments">Environments</a>).
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ec2"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.c2</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">o</i></span>]</var><a class="copiable-link" href='#index-_002ec2'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-c2"></a>
<p>Recognize the ordinary character <var class="var">o</var> as the no-break control
character. If <var class="var">o</var> is absent or invalid, the default no-break
control character ‘<samp class="samp">'</samp>’ is selected. The identity of the no-break
control character is associated with the environment
(see <a class="pxref" href="#Environments">Environments</a>).
</p></dd></dl>
<p>When writing a macro, you might wish to know which control character was
used to call it.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005b_002ebr_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.br]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ebr_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ebr-1"></a>
<p>This read-only register interpolates 1 if the currently executing
macro was called using the normal control character and 0
otherwise. If a macro is interpolated as a string, the <code class="code">.br</code>
register’s value is inherited from the context of the string
interpolation. See <a class="xref" href="#Strings">Strings</a>.
</p>
<a class="index-entry-id" id="index-intercepting-requests"></a>
<a class="index-entry-id" id="index-requests_002c-intercepting"></a>
<a class="index-entry-id" id="index-modifying-requests"></a>
<a class="index-entry-id" id="index-requests_002c-modifying"></a>
<p>Use this register to reliably intercept requests that imply breaks.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.als bp*orig bp
.de bp
. ie \\n[.br] .bp*orig
. el 'bp*orig
..
</pre></div></div>
<p>Testing the <code class="code">.br</code> register outside of a macro definition makes no
sense.
</p></dd></dl>
<hr>
</div>
<div class="subsection-level-extent" id="Invoking-Requests">
<div class="nav-panel">
<p>
Next: <a href="#Calling-Macros" accesskey="n" rel="next">Calling Macros</a>, Previous: <a href="#Control-Characters" accesskey="p" rel="prev">Control Characters</a>, Up: <a href="#Formatter-Instructions" accesskey="u" rel="up">Formatter Instructions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Invoking-Requests-1">5.6.2 Invoking Requests</h4>
<a class="index-entry-id" id="index-invoking-requests"></a>
<a class="index-entry-id" id="index-requests_002c-invoking"></a>
<p>A control character is optionally followed by tabs and/or spaces and
then an identifier naming a request or macro. The invocation of an
unrecognized request is interpreted as a macro call. Defining a macro
with the same name as a request replaces the request. Deleting a
request name with the <code class="code">rm</code> request makes it unavailable. The
<code class="code">als</code> request can alias requests, permitting them to be wrapped or
non-destructively replaced. See <a class="xref" href="#Strings">Strings</a>.
</p>
<a class="index-entry-id" id="index-request-arguments"></a>
<a class="index-entry-id" id="index-arguments-to-requests"></a>
<a class="index-entry-id" id="index-tabs_002c-and-macro-arguments"></a>
<a class="index-entry-id" id="index-macro-arguments_002c-and-tabs"></a>
<a class="index-entry-id" id="index-arguments-to-macros_002c-and-tabs"></a>
<a class="index-entry-id" id="index-tabs_002c-and-request-arguments"></a>
<a class="index-entry-id" id="index-request-arguments_002c-and-tabs"></a>
<a class="index-entry-id" id="index-arguments-to-requests_002c-and-tabs"></a>
<p>There is no inherent limit on argument length or quantity. Most
requests take one or more arguments, and ignore any they do not expect.
A request may be separated from its arguments by tabs or spaces, but
only spaces can separate an argument from its successor. Only one
between arguments is necessary; any excess is ignored. GNU <code class="code">troff</code>
does not allow tabs for argument separation.<a class="footnote" id="DOCF43" href="#FOOT43"><sup>43</sup></a>
</p>
<p>Generally, a space <em class="emph">within</em> a request argument is not relevant, not
meaningful, or is supported by bespoke provisions, as with the <code class="code">tl</code>
request’s delimiters (see <a class="pxref" href="#Page-Layout">Page Layout</a>). Some requests, like
<code class="code">ds</code>, interpret the remainder of the control line as a single
argument. See <a class="xref" href="#Strings">Strings</a>.
</p>
<a class="index-entry-id" id="index-structuring-source-code-of-documents-or-macro-packages"></a>
<a class="index-entry-id" id="index-documents_002c-structuring-the-source-of"></a>
<a class="index-entry-id" id="index-macro-package_002c-structuring-the-source-of"></a>
<a class="index-entry-id" id="index-package_002c-package_002c-structuring-the-source-of"></a>
<a class="index-entry-id" id="index-indentation_002c-of-roff-source-code"></a>
<p>Spaces and tabs immediately after a control character are ignored.
Commonly, authors structure the source of documents or macro files with
them.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de center
. if \\n[.br] \
. br
. ce \\$1
..
.
.
.de right-align
.→if \\n[.br] \
.→→br
.→rj \\$1
..
</pre></div></div>
<a class="index-entry-id" id="index-blank-line-trap-_0028blm_0029"></a>
<a class="index-entry-id" id="index-blank-line-macro-_0028blm_0029-1"></a>
<p>If you assign an empty blank line trap, you can separate macro
definitions (or any input lines) with blank lines.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de do-nothing
..
.blm do-nothing \" activate blank line trap
.de center
. if \\n[.br] \
. br
. ce \\$1
..
.de right-align
.→if \\n[.br] \
.→→br
.→rj \\$1
..
.blm \" deactivate blank line trap
</pre></div></div>
<p>See <a class="xref" href="#Blank-Line-Traps">Blank Line Traps</a>.
</p>
<hr>
</div>
<div class="subsection-level-extent" id="Calling-Macros">
<div class="nav-panel">
<p>
Next: <a href="#Using-Escape-Sequences" accesskey="n" rel="next">Using Escape Sequences</a>, Previous: <a href="#Invoking-Requests" accesskey="p" rel="prev">Invoking Requests</a>, Up: <a href="#Formatter-Instructions" accesskey="u" rel="up">Formatter Instructions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Calling-Macros-1">5.6.3 Calling Macros</h4>
<a class="index-entry-id" id="index-calling-macros"></a>
<a class="index-entry-id" id="index-macro-arguments"></a>
<a class="index-entry-id" id="index-arguments-to-macros"></a>
<p>If a macro of the desired name does not exist when called, it is
created, assigned an empty definition, and a warning in category
‘<samp class="samp">mac</samp>’ is emitted. Calling an undefined macro <em class="emph">does</em> end a
macro definition naming it as its end macro (see <a class="pxref" href="#Writing-Macros">Writing Macros</a>).
</p>
<a class="index-entry-id" id="index-spaces_002c-in-a-macro-argument"></a>
<p>To embed spaces <em class="emph">within</em> a macro argument, enclose the argument in
neutral double quotes <code class="code">"</code>. Horizontal motion escape sequences are
sometimes a better choice for arguments to be formatted as text.
</p>
<p>Consider calls to a hypothetical section heading macro ‘<samp class="samp">uh</samp>’.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.uh The Mouse Problem
.uh "The Mouse Problem"
.uh The\~Mouse\~Problem
.uh The\ Mouse\ Problem
</pre></div></div>
<a class="index-entry-id" id="index-_005c_007e_002c-difference-from-_005cSP"></a>
<a class="index-entry-id" id="index-_005cSP_002c-difference-from-_005c_007e"></a>
<p>The first line calls <code class="code">uh</code> with three arguments: ‘<samp class="samp">The</samp>’,
‘<samp class="samp">Mouse</samp>’, and ‘<samp class="samp">Problem</samp>’. The remainder call the <code class="code">uh</code>
macro with one argument, ‘<samp class="samp">The Mouse Problem</samp>’. The last solution,
using escaped spaces, can be found in documents prepared for
<abbr class="acronym">AT&T</abbr> <code class="code">troff</code>. It can cause surprise when text is
adjusted, because <code class="code">\<kbd class="key">SP</kbd></code> inserts a <em class="emph">fixed-width</em>,
non-breaking space. GNU <code class="code">troff</code>’s <code class="code">\~</code> escape sequence
inserts an adjustable, non-breaking space.<a class="footnote" id="DOCF44" href="#FOOT44"><sup>44</sup></a>
</p>
<a class="index-entry-id" id="index-_0022_002c-embedding-in-a-macro-argument"></a>
<a class="index-entry-id" id="index-double-quote_002c-embedding-in-a-macro-argument"></a>
<a class="index-entry-id" id="index-_005c_002c-embedding-in-a-macro-argument"></a>
<a class="index-entry-id" id="index-backslash_002c-embedding-in-a-macro-argument"></a>
<p>The foregoing raises the question of how to embed neutral double quotes
or backslashes in macro arguments when <em class="emph">those</em> characters are
desired as literals. In GNU <code class="code">troff</code>, the special character escape
sequence <code class="code">\[rs]</code> produces a backslash and <code class="code">\[dq]</code> a neutral
double quote.
</p>
<p>In GNU <code class="code">troff</code>’s <abbr class="acronym">AT&T</abbr> compatibility mode, these
characters remain available as <code class="code">\(rs</code> and <code class="code">\(dq</code>,
respectively. <abbr class="acronym">AT&T</abbr> <code class="code">troff</code> did not consistently define
these special characters,
but its descendants can be made to support them. See <a class="xref" href="#Device-and-Font-Description-Files">Device and Font Description Files</a>.
</p>
<p>If even that is not feasible, options remain. To obtain a literal
escape character in a macro argument, you can simply type it if you
change or disable the escape character first. See <a class="xref" href="#Using-Escape-Sequences">Using Escape Sequences</a>. Otherwise, you must escape the escape character repeatedly
to a context-dependent extent. See <a class="xref" href="#Copy-Mode">Copy Mode</a>.
</p>
<p>For the (neutral) double quote, you have recourse to an obscure
syntactical feature of <abbr class="acronym">AT&T</abbr> <code class="code">troff</code>. Because a double
quote can begin a macro argument, the formatter keeps track of whether
the current argument was started thus, and doesn’t require a space after
the double quote that ends it.<a class="footnote" id="DOCF45" href="#FOOT45"><sup>45</sup></a> In
the argument list to a macro, a double quote that <em class="emph">isn’t</em> preceded
by a space <em class="emph">doesn’t</em> start a macro argument. If not preceded by a
double quote that began an argument, this double quote becomes part of
the argument. Furthermore, within a quoted argument, a pair of adjacent
double quotes becomes a literal double quote.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de eq
. tm arg1:\\$1 arg2:\\$2 arg3:\\$3
. tm arg4:\\$4 arg5:\\$5 arg6:\\$6
.. \" 4 backslashes on the next line
.eq a" "b c" "de"f\\\\g" h""i "j""k"
error→ arg1:a" arg2:b c arg3:de
error→ arg4:f\g" arg5:h""i arg6:j"k
</pre></div></div>
<p>Apart from the complexity of the rules, this traditional solution has
the disadvantage that double quotes don’t survive repeated argument
expansion in <abbr class="acronym">AT&T</abbr> <code class="code">troff</code> or GNU <code class="code">troff</code>’s
compatibility mode. This can frustrate efforts to pass such arguments
intact through multiple macro calls.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.cp 1
.de eq
. tm arg1:\\$1 arg2:\\$2 arg3:\\$3
. tm arg4:\\$4 arg5:\\$5 arg6:\\$6
..
.de xe
. eq \\$1 \\$2 \\$3 \\$4 \\$5 \\$6
.. \" 8 backslashes on the next line
.xe a" "b c" "de"f\\\\\\\\g" h""i "j""k"
error→ arg1:a" arg2:b arg3:c
error→ arg4:de arg5:f\g" arg6:h""i
</pre></div></div>
<a class="index-entry-id" id="index-input-level"></a>
<a class="index-entry-id" id="index-level_002c-input"></a>
<a class="index-entry-id" id="index-interpolation-depth"></a>
<a class="index-entry-id" id="index-depth_002c-interpolation"></a>
<p>Outside of compatibility mode, GNU <code class="code">troff</code> doesn’t exhibit this
problem because it tracks the nesting depth of interpolations.
See <a class="xref" href="#Implementation-Differences">Implementation Differences</a>.
</p>
<hr>
</div>
<div class="subsection-level-extent" id="Using-Escape-Sequences">
<div class="nav-panel">
<p>
Next: <a href="#Delimiters" accesskey="n" rel="next">Delimiters</a>, Previous: <a href="#Calling-Macros" accesskey="p" rel="prev">Calling Macros</a>, Up: <a href="#Formatter-Instructions" accesskey="u" rel="up">Formatter Instructions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Using-Escape-Sequences-1">5.6.4 Using Escape Sequences</h4>
<a class="index-entry-id" id="index-using-escape-sequences"></a>
<a class="index-entry-id" id="index-escape-sequences"></a>
<p>Whereas requests must occur on control lines, escape sequences can occur
intermixed with text and may appear in arguments to requests, macros,
and other escape sequences.
<a class="index-entry-id" id="index-_005c"></a>
An escape sequence is introduced by the escape character, a backslash
<code class="code">\</code> (but see the <code class="code">ec</code> request below). The next character
selects the escape’s function.
</p>
<p>Escape sequences vary in length. Some take an argument, and of those,
some have different syntactical forms for a one-character,
two-character, or arbitrary-length argument. Others accept <em class="emph">only</em>
an arbitrary-length argument. In the former scheme, a one-character
argument follows the function character immediately, an opening
parenthesis ‘<samp class="samp">(</samp>’ introduces a two-character argument (no closing
parenthesis is used), and an argument of arbitrary length is enclosed in
brackets ‘<samp class="samp">[]</samp>’. In the latter scheme, the user selects a delimiter
character. A few escape sequences are idiosyncratic, and support both
of the foregoing conventions (<code class="code">\s</code>), designate their own
termination sequence (<code class="code">\?</code>), consume input until the next newline
(<code class="code">\!</code>, <code class="code">\"</code>, <code class="code">\#</code>), or support an additional modifier
character (<code class="code">\s</code> again, and <code class="code">\n</code>). As with requests, use of
some escape sequences in source documents may interact poorly with a
macro package you use; consult its documentation to learn of “safe”
sequences or alternative facilities it provides to achieve the desired
result.
</p>
<p>If an escape character is followed by a character that does not
identify a defined operation, the escape character is ignored (producing
a diagnostic of the ‘<samp class="samp">escape</samp>’ warning category, which is not enabled
by default) and the following character is processed normally.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">$ groff -Tps -ww
.nr N 12
.ds co white
.ds animal elephant
I have \fI\nN \*(co \*[animal]s,\f[]
said \P.\&\~Pseudo Pachyderm.
error→ warning: escape character ignored before 'P'
⇒ I have <i class="slanted">12 white elephants,</i> said P. Pseudo Pachyderm.
</pre></div></div>
<p>Escape sequence interpolation is of higher precedence than escape
sequence argument interpretation. This rule affords flexibility in
using escape sequences to construct parameters to other escape
sequences.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ds family C\" Courier
.ds style I\" oblique
Choice a typeface \f(\*[family]\*[style]wisely.
⇒ Choose a typeface <i class="slanted">wisely.</i>
</pre></div></div>
<p>In the above, the syntax form ‘<samp class="samp">\f(</samp>’ accepts only two characters for
an argument; the example works because the subsequent escape sequences
are interpolated before the selection escape sequence argument is
processed, and strings <code class="code">family</code> and <code class="code">style</code> interpolate one
character each.<a class="footnote" id="DOCF46" href="#FOOT46"><sup>46</sup></a>
</p>
<p>The escape character is nearly always interpreted when encountered; it
is therefore desirable to have a way to interpolate it, disable it, or
change it.
</p>
<a class="index-entry-id" id="index-formatting-the-escape-character-_0028_005ce_0029"></a>
<a class="index-entry-id" id="index-escape-character_002c-formatting-_0028_005ce_0029"></a>
<dl class="first-deffn">
<dt class="deffn" id="index-_005ce-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\e</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005ce-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005ce"></a>
<p>Interpolate the escape character.
</p></dd></dl>
<a class="index-entry-id" id="index-formatting-a-backslash-glyph-_0028_005c_005brs_005d_0029"></a>
<a class="index-entry-id" id="index-backslash-glyph_002c-formatting-_0028_005c_005brs_005d_0029"></a>
<p>The <code class="code">\[rs]</code> special character escape sequence formats a backslash
glyph. In macro and string definitions, the input sequences <code class="code">\\</code>
and <code class="code">\E</code> defer interpretation of escape sequences. See <a class="xref" href="#Copy-Mode">Copy Mode</a>.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eeo"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.eo</code></strong><a class="copiable-link" href='#index-_002eeo'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-eo"></a>
<a class="index-entry-id" id="index-disabling-_005c-_0028eo_0029"></a>
<a class="index-entry-id" id="index-_005c_002c-disabling-_0028eo_0029"></a>
<p>Disable the escape mechanism except in copy mode. Once this request is
invoked, no input character is recognized as starting an escape
sequence in interpretation mode.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eec"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ec</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">o</i></span>]</var><a class="copiable-link" href='#index-_002eec'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ec"></a>
<a class="index-entry-id" id="index-escape-character_002c-changing-_0028ec_0029"></a>
<a class="index-entry-id" id="index-character_002c-escape_002c-changing-_0028ec_0029"></a>
<p>Recognize the ordinary character <var class="var">o</var> as the escape character.
If <var class="var">o</var> is absent or invalid, the default escape character
‘<samp class="samp">\</samp>’ is selected.
</p></dd></dl>
<p>Switching escape sequence interpretation off to define a macro and back
on afterward can obviate the need to double the escape character within
the definition. See <a class="xref" href="#Writing-Macros">Writing Macros</a>. This technique is not available
if your macro needs to interpolate values at the time it is
<em class="emph">defined</em>—but many do not.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.\" simplified `BR` macro from the man(7) macro package
.eo
.de BR
. ds result \&
. while (\n[.$] >= 2) \{\
. as result \fB\$1\fR\$2\"
. shift 2
. \}
. if \n[.$] .as result \fB\$1\"
\*[result]
. rm result
. ft R
..
.ec
</pre></div></div>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eecs"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ecs</code></strong><a class="copiable-link" href='#index-_002eecs'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ecs"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002eecr"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ecr</code></strong><a class="copiable-link" href='#index-_002eecr'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ecr"></a>
<p>The <code class="code">ecs</code> request stores the escape character for recall with
<code class="code">ecr</code>. <code class="code">ecr</code> sets the escape character to ‘<samp class="samp">\</samp>’ if none
has been saved.
</p>
<p>Use these requests together to temporarily change the escape character.
</p></dd></dl>
<p>Using a different escape character, or disabling it, when calling macros
not under your control will likely cause errors, since GNU <code class="code">troff</code>
has no mechanism to “intern” macros—that is, to convert a macro
definition into a form independent of its
representation.<a class="footnote" id="DOCF47" href="#FOOT47"><sup>47</sup></a> When a
macro is called, its contents are interpreted literally.
</p>
<hr>
</div>
<div class="subsection-level-extent" id="Delimiters">
<div class="nav-panel">
<p>
Previous: <a href="#Using-Escape-Sequences" accesskey="p" rel="prev">Using Escape Sequences</a>, Up: <a href="#Formatter-Instructions" accesskey="u" rel="up">Formatter Instructions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Delimiters-1">5.6.5 Delimiters</h4>
<a class="index-entry-id" id="index-delimiting-escape-sequence-arguments"></a>
<a class="index-entry-id" id="index-escape-sequence-argument-delimiters"></a>
<a class="index-entry-id" id="index-delimiters_002c-for-escape-sequence-arguments"></a>
<a class="index-entry-id" id="index-arguments_002c-to-escape-sequences_002c-delimiting"></a>
<a class="index-entry-id" id="index-_0027_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_0022_002c-as-delimiter"></a>
<p>Some escape sequences that require parameters use delimiters. The
neutral apostrophe <code class="code">'</code> is a popular choice and shown in this
document. The neutral double quote <code class="code">"</code> is also commonly seen.
Letters, numerals, and leaders can be used. Punctuation characters
are likely better choices, except for those defined as infix operators
in numeric expressions; see below.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">\l'1.5i\[bu]' \" draw 1.5 inches of bullet glyphs
</pre></div></div>
<a class="index-entry-id" id="index-_005c_0025_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_005cSP_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_005c_007c_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_005c_005e_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_005c_007b_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_005c_007d_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_005c_0027_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_005c_0060_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_005c_002d_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_005c_005f_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_005c_0021_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_005c_003f_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_005c_0029_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_005c_002f_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_005c_002c_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_005c_0026_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_005c_003a_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_005c_007e_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_005c0_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_005ca_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_005cc_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_005cd_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_005ce_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_005cE_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_005cp_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_005cr_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_005ct_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_005cu_002c-as-delimiter"></a>
<p>The following escape sequences don’t take arguments and thus are allowed
as delimiters:
<code class="code">\<kbd class="key">SP</kbd></code>, <code class="code">\%</code>, <code class="code">\|</code>, <code class="code">\^</code>, <code class="code">\{</code>,
<code class="code">\}</code>, <code class="code">\'</code>, <code class="code">\`</code>, <code class="code">\-</code>, <code class="code">\_</code>, <code class="code">\!</code>,
<code class="code">\?</code>, <code class="code">\)</code>, <code class="code">\/</code>, <code class="code">\,</code>, <code class="code">\&</code>, <code class="code">\:</code>,
<code class="code">\~</code>, <code class="code">\0</code>, <code class="code">\a</code>, <code class="code">\c</code>, <code class="code">\d</code>, <code class="code">\e</code>,
<code class="code">\E</code>, <code class="code">\p</code>, <code class="code">\r</code>, <code class="code">\t</code>, and <code class="code">\u</code>. However,
using them this way is discouraged; they can make the input confusing to
read.
</p>
<a class="index-entry-id" id="index-_005cA_002c-delimiters-allowed-by"></a>
<a class="index-entry-id" id="index-_005cb_002c-delimiters-allowed-by"></a>
<a class="index-entry-id" id="index-_005co_002c-delimiters-allowed-by"></a>
<a class="index-entry-id" id="index-_005cw_002c-delimiters-allowed-by"></a>
<a class="index-entry-id" id="index-_005cX_002c-delimiters-allowed-by"></a>
<a class="index-entry-id" id="index-_005cZ_002c-delimiters-allowed-by"></a>
<a class="index-entry-id" id="index-newline_002c-as-delimiter"></a>
<p>A few escape sequences,
<code class="code">\A</code>,
<code class="code">\b</code>,
<code class="code">\o</code>,
<code class="code">\w</code>,
<code class="code">\X</code>,
and <code class="code">\Z</code>, accept a newline as a delimiter. Newlines that serve
as delimiters continue to be recognized as input line terminators.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">A caf\o
e\(aa
in Paris
⇒ A caf in Paris
</pre></div></div>
<p>Use of newlines as delimiters in escape sequences is also discouraged.
</p>
<a class="index-entry-id" id="index-_005cD_002c-delimiters-allowed-by"></a>
<a class="index-entry-id" id="index-_005ch_002c-delimiters-allowed-by"></a>
<a class="index-entry-id" id="index-_005cH_002c-delimiters-allowed-by"></a>
<a class="index-entry-id" id="index-_005cl_002c-delimiters-allowed-by"></a>
<a class="index-entry-id" id="index-_005cL_002c-delimiters-allowed-by"></a>
<a class="index-entry-id" id="index-_005cN_002c-delimiters-allowed-by"></a>
<a class="index-entry-id" id="index-_005cR_002c-delimiters-allowed-by"></a>
<a class="index-entry-id" id="index-_005cs_002c-delimiters-allowed-by"></a>
<a class="index-entry-id" id="index-_005cS_002c-delimiters-allowed-by"></a>
<a class="index-entry-id" id="index-_005cv_002c-delimiters-allowed-by"></a>
<a class="index-entry-id" id="index-_005cx_002c-delimiters-allowed-by"></a>
<p>Finally, the escape sequences <code class="code">\D</code>, <code class="code">\h</code>, <code class="code">\H</code>,
<code class="code">\l</code>, <code class="code">\L</code>, <code class="code">\N</code>, <code class="code">\R</code>, <code class="code">\s</code>, <code class="code">\S</code>,
<code class="code">\v</code>, and <code class="code">\x</code> prohibit many delimiters.
</p>
<ul class="itemize mark-bullet">
<li><a class="index-entry-id" id="index-numerals_002c-as-delimiters"></a>
<a class="index-entry-id" id="index-digits_002c-as-delimiters"></a>
<a class="index-entry-id" id="index-_002e_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-decimal-point_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-dot_002c-as-delimiter"></a>
the numerals <code class="code">0</code>-<code class="code">9</code> and the decimal point <code class="code">.</code>
</li><li><a class="index-entry-id" id="index-operators_002c-as-delimiters"></a>
<a class="index-entry-id" id="index-_002b_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_002d_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_002f_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_002a_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_0025_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_003c_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_003e_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_003d_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_0026_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_003a_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_0028_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-_0029_002c-as-delimiter"></a>
the (single-character) operators ‘<samp class="samp">+-/*%<>=&:()</samp>’
</li><li><a class="index-entry-id" id="index-space-character_002c-as-delimiter"></a>
<a class="index-entry-id" id="index-tab-character_002c-as-delimiter"></a>
the space and tab characters
</li><li><a class="index-entry-id" id="index-_005c_0025_002c-as-delimiter-1"></a>
<a class="index-entry-id" id="index-_005c_003a_002c-as-delimiter-1"></a>
<a class="index-entry-id" id="index-_005c_007b_002c-as-delimiter-1"></a>
<a class="index-entry-id" id="index-_005c_007d_002c-as-delimiter-1"></a>
<a class="index-entry-id" id="index-_005c_0027_002c-as-delimiter-1"></a>
<a class="index-entry-id" id="index-_005c_0060_002c-as-delimiter-1"></a>
<a class="index-entry-id" id="index-_005c_002d_002c-as-delimiter-1"></a>
<a class="index-entry-id" id="index-_005c_005f_002c-as-delimiter-1"></a>
<a class="index-entry-id" id="index-_005c_0021_002c-as-delimiter-1"></a>
<a class="index-entry-id" id="index-_005c_002f_002c-as-delimiter-1"></a>
<a class="index-entry-id" id="index-_005cc_002c-as-delimiter-1"></a>
<a class="index-entry-id" id="index-_005ce_002c-as-delimiter-1"></a>
<a class="index-entry-id" id="index-_005cp_002c-as-delimiter-1"></a>
any escape sequences other than <code class="code">\%</code>, <code class="code">\:</code>, <code class="code">\{</code>,
<code class="code">\}</code>, <code class="code">\'</code>, <code class="code">\`</code>, <code class="code">\-</code>, <code class="code">\_</code>, <code class="code">\!</code>,
<code class="code">\/</code>, <code class="code">\c</code>, <code class="code">\e</code>, and <code class="code">\p</code>
</li></ul>
<p>Delimiter syntax is complex and flexible primarily for historical
reasons; the foregoing restrictions need be kept in mind mainly when
using <code class="code">groff</code> in <abbr class="acronym">AT&T</abbr> compatibility mode. GNU
<code class="code">troff</code> keeps track of the nesting depth of escape sequence
interpolations, so the only characters you need to avoid using as
delimiters are those that appear in the arguments you input, not any
that result from interpolation. Typically, <code class="code">'</code> works fine.
See <a class="xref" href="#Implementation-Differences">Implementation Differences</a>.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">$ groff -Tps
.de Mw
. nr wd \w'\\$1'
. tm "\\$1" is \\n(wd units wide.
..
.Mw Wet'suwet'en
.Mw Wet+200i
.cp 1 \" turn on compatibility mode
.Mw Wet'suwet'en
.Mw Wet'
.Mw Wet+200i
error→ "Wet'suwet'en" is 54740 units wide.
error→ "Wet'+200i" is 42610 units wide.
error→ "Wet'suwet'en" is 15860 units wide.
error→ "Wet'" is 15860 units wide.
error→ "Wet'+200i" is 14415860 units wide.
</pre></div></div>
<p>We see here that in compatibility mode, the part of the argument after
the <code class="code">'</code> delimiter escapes from its context and, if nefariously
crafted, influences the computation of the <var class="var">wd</var> register’s value in
a surprising way.
</p>
<hr>
</div>
</div>
<div class="section-level-extent" id="Comments">
<div class="nav-panel">
<p>
Next: <a href="#Registers" accesskey="n" rel="next">Registers</a>, Previous: <a href="#Formatter-Instructions" accesskey="p" rel="prev">Formatter Instructions</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Comments-1">5.7 Comments</h3>
<a class="index-entry-id" id="index-comments"></a>
<p>One of the most common forms of escape sequence is the
comment.<a class="footnote" id="DOCF48" href="#FOOT48"><sup>48</sup></a>
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_0022-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\"</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_0022-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005c_0022"></a>
<p>Start a comment. Everything up to the next newline is ignored.
</p>
<p>This may sound simple, but it can be tricky to keep the comments from
interfering with the appearance of the output.
<a class="index-entry-id" id="index-ds_002c-ds1-requests_002c-and-comments"></a>
<a class="index-entry-id" id="index-as_002c-as1-requests_002c-and-comments"></a>
If the escape sequence is to the right of some text or a request, that
portion of the line is ignored, but spaces preceding it are processed
normally by GNU <code class="code">troff</code>. This affects only the <code class="code">ds</code> and
<code class="code">as</code> requests and their variants.
</p>
<a class="index-entry-id" id="index-tabs_002c-before-comments"></a>
<a class="index-entry-id" id="index-comments_002c-lining-up-with-tabs"></a>
<p>One possibly irritating idiosyncrasy is that tabs should not be used to
vertically align comments in the source document. Tab characters are
not treated as separators between a request name and its first argument,
nor between arguments.
</p>
<a class="index-entry-id" id="index-undefined-request"></a>
<a class="index-entry-id" id="index-request_002c-undefined"></a>
<p>A comment on a line by itself is treated as a blank line, because after
eliminating the comment, that is all that remains.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">Test
\" comment
Test
⇒ Test
⇒
⇒ Test
</pre></div></div>
<p>To avoid this, it is common to combine the empty request with the
comment escape sequence as ‘<samp class="samp">.\"</samp>’, causing the input line to be
ignored.
</p>
<a class="index-entry-id" id="index-_0027_002c-as-a-comment"></a>
<p>Another commenting scheme sometimes seen is three consecutive single
quotes (<code class="code">'''</code>) at the beginning of a line. This works, but GNU
<code class="code">troff</code> emits a warning diagnostic (if enabled) about an undefined
macro (namely ‘<samp class="samp">''</samp>’).
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_0023-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\#</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_0023-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005c_0023"></a>
<p>Start a comment; everything up to and including the next newline is
ignored. This <code class="code">groff</code> extension was introduced to avoid the
problems described above.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">Test
\# comment
Test
⇒ Test Test
</pre></div></div>
</dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eig"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ig</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">end</i></span>]</var><a class="copiable-link" href='#index-_002eig'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ig"></a>
<p>Ignore input until, in the current conditional block (if
any),<a class="footnote" id="DOCF49" href="#FOOT49"><sup>49</sup></a> the macro <var class="var">end</var> is called
at the start of a control line, or the control line ‘<samp class="samp">..</samp>’ is
encountered if <var class="var">end</var> is not specified. <code class="code">ig</code> is parsed as if it
were a macro definition, but its contents are discarded, not
stored.<a class="footnote" id="DOCF50" href="#FOOT50"><sup>50</sup></a>
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">hand\c
.de TX
fasting
..
.ig TX
This is part of a large block of input that has been
temporarily(?) commented out.
We can restore it simply by removing the .ig request and
the call of its end macro.
.TX
</pre></div></div>
<div class="example">
<div class="group"><pre class="example-preformatted"> ⇒ handfasting
</pre></div></div>
</dd></dl>
<hr>
</div>
<div class="section-level-extent" id="Registers">
<div class="nav-panel">
<p>
Next: <a href="#Manipulating-Filling-and-Adjustment" accesskey="n" rel="next">Manipulating Filling and Adjustment</a>, Previous: <a href="#Formatter-Instructions" accesskey="p" rel="prev">Formatter Instructions</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Registers-1">5.8 Registers</h3>
<a class="index-entry-id" id="index-registers"></a>
<p>In the <code class="code">roff</code> language, numbers can be stored in <em class="dfn">registers</em>.
Many built-in registers exist, supplying anything from the date to
details of formatting parameters. You can also define your own.
See <a class="xref" href="#Identifiers">Identifiers</a>, for information on constructing a valid name for a
register.
</p>
<ul class="mini-toc">
<li><a href="#Setting-Registers" accesskey="1">Setting Registers</a></li>
<li><a href="#Interpolating-Registers" accesskey="2">Interpolating Registers</a></li>
<li><a href="#Auto_002dincrement" accesskey="3">Auto-increment</a></li>
<li><a href="#Assigning-Register-Formats" accesskey="4">Assigning Register Formats</a></li>
<li><a href="#Built_002din-Registers" accesskey="5">Built-in Registers</a></li>
</ul>
<hr>
<div class="subsection-level-extent" id="Setting-Registers">
<div class="nav-panel">
<p>
Next: <a href="#Interpolating-Registers" accesskey="n" rel="next">Interpolating Registers</a>, Previous: <a href="#Registers" accesskey="p" rel="prev">Registers</a>, Up: <a href="#Registers" accesskey="u" rel="up">Registers</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Setting-Registers-1">5.8.1 Setting Registers</h4>
<a class="index-entry-id" id="index-setting-registers-_0028nr_002c-_005cR_0029"></a>
<a class="index-entry-id" id="index-registers_002c-setting-_0028nr_002c-_005cR_0029"></a>
<p>Define registers and update their values with the <code class="code">nr</code> request or
the <code class="code">\R</code> escape sequence.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002enr-1"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.nr</code></strong> <var class="def-var-arguments">ident value</var><a class="copiable-link" href='#index-_002enr-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-nr-1"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cR_0027ident-value_0027"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\R<code class="code">'</code></code><span class="r"><i class="slanted">ident value</i></span><code class="t"><code class="code">'</code></code></strong><a class="copiable-link" href='#index-_005cR_0027ident-value_0027'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cR"></a>
<p>Set register <var class="var">ident</var> to <var class="var">value</var>. If <var class="var">ident</var> doesn’t exist,
GNU <code class="code">troff</code> creates it. In the <code class="code">\R</code> escape sequence, the
delimiter need not be a neutral apostrophe; see <a class="ref" href="#Delimiters">Delimiters</a>. It
also does not produce an input token in GNU <code class="code">troff</code>. See <a class="xref" href="#Gtroff-Internals"><code class="code">gtroff</code> Internals</a>.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.nr a (((17 + (3 * 4))) % 4)
\n[a]
.\R'a (((17 + (3 * 4))) % 4)'
\n[a]
⇒ 1 1
</pre></div></div>
<p>(Later, we will discuss additional forms of <code class="code">nr</code> and <code class="code">\R</code> that
can change a register’s value after it is dereferenced but before it is
interpolated. See <a class="xref" href="#Auto_002dincrement">Auto-increment</a>.)
</p>
<p>The complete transparency of <code class="code">\R</code> can cause surprising effects if
you use registers like <code class="code">.k</code>, which get evaluated at the time they
are accessed.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ll 1.6i
.
aaa bbb ccc ddd eee fff ggg hhh\R':k \n[.k]'
.tm :k == \n[:k]
⇒ :k == 126950
.
.br
.
aaa bbb ccc ddd eee fff ggg hhh\h'0'\R':k \n[.k]'
.tm :k == \n[:k]
⇒ :k == 15000
</pre></div></div>
<p>If you process this with the PostScript device (<code class="code">-Tps</code>), there will
be a line break eventually after <code class="code">ggg</code> in both input lines.
However, after processing the space after <code class="code">ggg</code>, the partially
collected line is not overfull yet, so GNU <code class="code">troff</code> continues to
collect input until it sees the space (or in this case, the newline)
after <code class="code">hhh</code>. At this point, the line is longer than the line
length, and the line gets broken.
</p>
<p>In the first input line, since the <code class="code">\R</code> escape sequence leaves no
traces, the check for the overfull line hasn’t been done yet at the
point where <code class="code">\R</code> gets handled, and you get a value for the
<code class="code">.k</code> register that is even greater than the current line length.
</p>
<p>In the second input line, the insertion of <code class="code">\h'0'</code> to cause a
zero-width motion forces GNU <code class="code">troff</code> to check the line length,
which in turn causes the start of a new output line. Now <code class="code">.k</code>
returns the expected value.
</p></dd></dl>
<p><code class="code">nr</code> and <code class="code">\R</code> each have two additional special forms to
increment or decrement a register.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002enr-2"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.nr</code></strong> <var class="def-var-arguments">ident <code class="t">+</code><span class="r"><i class="slanted">value</i></span></var><a class="copiable-link" href='#index-_002enr-2'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-nr-2"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002enr-3"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.nr</code></strong> <var class="def-var-arguments">ident <code class="t">-</code><span class="r"><i class="slanted">value</i></span></var><a class="copiable-link" href='#index-_002enr-3'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005cR_0027ident-_002bvalue_0027"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\R<code class="code">'</code></code><span class="r"><i class="slanted">ident <code class="t">+</code>value</i></span><code class="t"><code class="code">'</code></code></strong><a class="copiable-link" href='#index-_005cR_0027ident-_002bvalue_0027'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cR-1"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cR_0027ident-_002dvalue_0027"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\R<code class="code">'</code></code><span class="r"><i class="slanted">ident <code class="t">-</code>value</i></span><code class="t"><code class="code">'</code></code></strong><a class="copiable-link" href='#index-_005cR_0027ident-_002dvalue_0027'> ¶</a></span></dt>
<dd><p>Increment (decrement) register <var class="var">ident</var> by <var class="var">value</var>. In the
<code class="code">\R</code> escape sequence, the delimiter need not be a neutral
apostrophe; see <a class="ref" href="#Delimiters">Delimiters</a>.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.nr a 1
.nr a +1
\na
⇒ 2
</pre></div></div>
<a class="index-entry-id" id="index-negating-register-values"></a>
<p>A leading minus sign in <var class="var">value</var> is always interpreted as a
decrementation operator, not an algebraic sign. To assign a register a
negative value or the negated value of another register, you can
force GNU <code class="code">troff</code> to interpret ‘<samp class="samp">-</samp>’ as a negation or minus,
rather than decrementation, operator: enclose it with its operand in
parentheses or subtract it from zero.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.nr a 7
.nr b 3
.nr a -\nb
\na
⇒ 4
.nr a (-\nb)
\na
⇒ -3
.nr a 0-\nb
\na
⇒ -3
</pre></div></div>
<p>If a register’s prior value does not exist (the register was undefined),
an increment or decrement is applied as if to 0.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002err"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.rr</code></strong> <var class="def-var-arguments">ident</var><a class="copiable-link" href='#index-_002err'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-rr"></a>
<a class="index-entry-id" id="index-removing-a-register-_0028rr_0029"></a>
<a class="index-entry-id" id="index-register_002c-removing-_0028rr_0029"></a>
<p>Remove register <var class="var">ident</var>. If <var class="var">ident</var> doesn’t exist, the request
is ignored. Technically, only the name is removed; the register’s
contents are still accessible under aliases created with <code class="code">aln</code>, if
any.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ernn"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.rnn</code></strong> <var class="def-var-arguments">ident1 ident2</var><a class="copiable-link" href='#index-_002ernn'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-rnn"></a>
<a class="index-entry-id" id="index-renaming-a-register-_0028rnn_0029"></a>
<a class="index-entry-id" id="index-register_002c-renaming-_0028rnn_0029"></a>
<p>Rename register <var class="var">ident1</var> to <var class="var">ident2</var>. If <var class="var">ident1</var> doesn’t
exist, the request is ignored. Renaming a built-in register does not
otherwise alter its properties.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ealn"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.aln</code></strong> <var class="def-var-arguments">new old</var><a class="copiable-link" href='#index-_002ealn'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-aln"></a>
<a class="index-entry-id" id="index-alias_002c-register_002c-creating-_0028aln_0029"></a>
<a class="index-entry-id" id="index-creating-alias-for-register-_0028aln_0029"></a>
<a class="index-entry-id" id="index-register_002c-creating-alias-for-_0028aln_0029"></a>
<p>Create an alias <var class="var">new</var> for an existing register <var class="var">old</var>, causing
the names to refer to the same stored object. If <var class="var">old</var> is
undefined, a warning in category ‘<samp class="samp">reg</samp>’ is produced and the request
is ignored. See <a class="xref" href="#Warnings">Warnings</a>, for information about the enablement and
suppression of warnings.
</p>
<a class="index-entry-id" id="index-alias_002c-register_002c-removing-_0028rr_0029"></a>
<a class="index-entry-id" id="index-removing-alias-for-register-_0028rr_0029"></a>
<a class="index-entry-id" id="index-register_002c-removing-alias-for-_0028rr_0029"></a>
<p>To remove a register alias, invoke <code class="code">rr</code> on its name. A register’s
contents do not become inaccessible until it has no more names.
</p></dd></dl>
<hr>
</div>
<div class="subsection-level-extent" id="Interpolating-Registers">
<div class="nav-panel">
<p>
Next: <a href="#Auto_002dincrement" accesskey="n" rel="next">Auto-increment</a>, Previous: <a href="#Setting-Registers" accesskey="p" rel="prev">Setting Registers</a>, Up: <a href="#Registers" accesskey="u" rel="up">Registers</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Interpolating-Registers-1">5.8.2 Interpolating Registers</h4>
<a class="index-entry-id" id="index-interpolating-registers-_0028_005cn_0029"></a>
<a class="index-entry-id" id="index-registers_002c-interpolating-_0028_005cn_0029"></a>
<p>Register contents are interpolated with the <code class="code">\n</code> escape sequence.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cni"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\n</code><span class="r"><i class="slanted">i</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cni'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cn"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_0028id"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\n(</code><span class="r"><i class="slanted">id</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cn_0028id'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005cn_005bident_005d"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\n[</code><span class="r"><i class="slanted">ident</i></span><code class="t">]</code></strong><a class="copiable-link" href='#index-_005cn_005bident_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-nested-assignments"></a>
<a class="index-entry-id" id="index-assignments_002c-nested"></a>
<a class="index-entry-id" id="index-indirect-assignments"></a>
<a class="index-entry-id" id="index-assignments_002c-indirect"></a>
<p>Interpolate register with name <var class="var">ident</var> (one-character
name <var class="var">i</var>, two-character name <var class="var">id</var>). <code class="code">\n</code> is
interpreted even in copy mode (see <a class="pxref" href="#Copy-Mode">Copy Mode</a>). If the register is
undefined, it is created and assigned a value of ‘<samp class="samp">0</samp>’, that
value is interpolated, and a warning in category ‘<samp class="samp">reg</samp>’ is emitted.
See <a class="xref" href="#Warnings">Warnings</a>, for information about the enablement and suppression of
warnings.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.nr a 5
.nr as \na+\na
\n(as
⇒ 10
</pre></div></div>
<div class="example">
<div class="group"><pre class="example-preformatted">.nr a1 5
.nr ab 6
.ds str b
.ds num 1
\n[a\n[num]]
⇒ 5
\n[a\*[str]]
⇒ 6
</pre></div></div>
</dd></dl>
<hr>
</div>
<div class="subsection-level-extent" id="Auto_002dincrement">
<div class="nav-panel">
<p>
Next: <a href="#Assigning-Register-Formats" accesskey="n" rel="next">Assigning Register Formats</a>, Previous: <a href="#Interpolating-Registers" accesskey="p" rel="prev">Interpolating Registers</a>, Up: <a href="#Registers" accesskey="u" rel="up">Registers</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Auto_002dincrement-1">5.8.3 Auto-increment</h4>
<a class="index-entry-id" id="index-auto_002dincrementation-of-a-register"></a>
<a class="index-entry-id" id="index-incrementation_002c-automatic_002c-of-a-register"></a>
<a class="index-entry-id" id="index-decrementation_002c-automatic_002c-of-a-register"></a>
<p>Registers can also be incremented or decremented by a configured amount
at the time they are interpolated. The value of the increment is
specified with a third argument to the <code class="code">nr</code> request, and a special
interpolation syntax is used to alter and then retrieve the register’s
value. Together, these features are called
<em class="dfn">auto-increment</em>.<a class="footnote" id="DOCF51" href="#FOOT51"><sup>51</sup></a>
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002enr-4"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.nr</code></strong> <var class="def-var-arguments">ident value incr</var><a class="copiable-link" href='#index-_002enr-4'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-nr-3"></a>
<a class="index-entry-id" id="index-_005cR_002c-difference-from-nr"></a>
<p>Set register <var class="var">ident</var> to <var class="var">value</var> and its auto-incrementation
amount to to <var class="var">incr</var>. The <code class="code">\R</code> escape sequence doesn’t support
an <var class="var">incr</var> argument.
</p></dd></dl>
<p>Auto-incrementation is not <em class="emph">completely</em> automatic; the <code class="code">\n</code>
escape sequence in its basic form never alters the value of a register.
To apply auto-incrementation to a register, interpolate it with
‘<samp class="samp">\n</samp>’.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_002bi"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\n+</code><span class="r"><i class="slanted">i</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cn_002bi'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cn-1"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_002di"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\n-</code><span class="r"><i class="slanted">i</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cn_002di'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005cn_002b_0028id"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\n+(</code><span class="r"><i class="slanted">id</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cn_002b_0028id'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005cn_002d_0028id"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\n-(</code><span class="r"><i class="slanted">id</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cn_002d_0028id'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005cn_002b_005bident_005d"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\n+[</code><span class="r"><i class="slanted">ident</i></span><code class="t">]</code></strong><a class="copiable-link" href='#index-_005cn_002b_005bident_005d'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005cn_002d_005bident_005d"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\n-[</code><span class="r"><i class="slanted">ident</i></span><code class="t">]</code></strong><a class="copiable-link" href='#index-_005cn_002d_005bident_005d'> ¶</a></span></dt>
<dd><p>Increment or decrement <var class="var">ident</var> (one-character
name <var class="var">i</var>, two-character name <var class="var">id</var>) by the register’s
auto-incrementation value and then interpolate the new register value.
If <var class="var">ident</var> has no auto-incrementation value, interpolate as with
<code class="code">\n</code>.
</p></dd></dl>
<div class="example">
<div class="group"><pre class="example-preformatted">.nr a 0 1
.nr xx 0 5
.nr foo 0 -2
\n+a, \n+a, \n+a, \n+a, \n+a
.br
\n-(xx, \n-(xx, \n-(xx, \n-(xx, \n-(xx
.br
\n+[foo], \n+[foo], \n+[foo], \n+[foo], \n+[foo]
⇒ 1, 2, 3, 4, 5
⇒ -5, -10, -15, -20, -25
⇒ -2, -4, -6, -8, -10
</pre></div></div>
<a class="index-entry-id" id="index-increment-value-without-changing-the-register"></a>
<a class="index-entry-id" id="index-value_002c-incrementing-without-changing-the-register"></a>
<p>To change the increment value without changing the value of a register,
assign the register’s value to itself by interpolating it, and specify
the desired increment normally. Apply an increment of ‘<samp class="samp">0</samp>’ to
disable auto-incrementation of the register.
</p>
<hr>
</div>
<div class="subsection-level-extent" id="Assigning-Register-Formats">
<div class="nav-panel">
<p>
Next: <a href="#Built_002din-Registers" accesskey="n" rel="next">Built-in Registers</a>, Previous: <a href="#Auto_002dincrement" accesskey="p" rel="prev">Auto-increment</a>, Up: <a href="#Registers" accesskey="u" rel="up">Registers</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Assigning-Register-Formats-1">5.8.4 Assigning Register Formats</h4>
<a class="index-entry-id" id="index-assign-number-format-to-register-_0028af_0029"></a>
<a class="index-entry-id" id="index-number-formats_002c-assigning-to-register-_0028af_0029"></a>
<a class="index-entry-id" id="index-register_002c-assigning-number-format-to-_0028af_0029"></a>
<p>A writable register’s value can be interpolated in several number
formats. By default, conventional Arabic numerals are used.
Other formats see use in sectioning and outlining schemes and
alternative page numbering arrangements.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eaf"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.af</code></strong> <var class="def-var-arguments">reg fmt</var><a class="copiable-link" href='#index-_002eaf'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-af"></a>
<p>Use number format <var class="var">fmt</var> when interpolating register <var class="var">reg</var>.
Valid number formats are as follows.
</p>
<dl class="table">
<dt><code class="code">0<span class="r">…</span></code></dt>
<dd><p>Arabic numerals 0, 1, 2, and so on.
Any decimal digit is equivalent to ‘<samp class="samp">0</samp>’; the formatter merely counts
the digits specified. Multiple Arabic numerals in <var class="var">fmt</var> cause
interpolations to be zero-padded on the left if necessary to at least as
many digits as specified (interpolations never truncate a register
value). A register with format ‘<samp class="samp">00</samp>’ interpolates values 1, 2, 3 as
‘<samp class="samp">01</samp>’, ‘<samp class="samp">02</samp>’, ‘<samp class="samp">03</samp>’. The default format for all writable
registers is ‘<samp class="samp">0</samp>’.
</p>
</dd>
<dt id='index-Roman-numerals'><span><code class="code">I</code><a class="copiable-link" href='#index-Roman-numerals'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-numerals_002c-Roman"></a>
<p>Uppercase Roman numerals: 0, I, II, III, IV, <small class="enddots">...</small>
</p>
</dd>
<dt><code class="code">i</code></dt>
<dd><p>Lowercase Roman numerals: 0, i, ii, iii, iv, <small class="enddots">...</small>
</p>
</dd>
<dt><code class="code">A</code></dt>
<dd><p>Uppercase letters: 0, A, B, C, …, Z, AA, AB, <small class="enddots">...</small>
</p>
</dd>
<dt><code class="code">a</code></dt>
<dd><p>Lowercase letters: 0, a, b, c, …, z, aa, ab, <small class="enddots">...</small>
</p></dd>
</dl>
<p>Omitting <var class="var">fmt</var> causes a warning in category ‘<samp class="samp">missing</samp>’.
See <a class="xref" href="#Warnings">Warnings</a>, for information about the enablement and suppression of
warnings. Specifying an unrecognized format is an error.
</p>
<p>Zero values are interpolated as ‘<samp class="samp">0</samp>’ in non-Arabic formats.
Negative quantities are prefixed with ‘<samp class="samp">-</samp>’ irrespective of format.
In Arabic formats, the sign supplements the field width. If <var class="var">reg</var>
doesn’t exist, it is created with a zero value.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.nr a 10
.af a 0 \" the default format
\na,
.af a I
\na,
.af a 321
.nr a (-\na)
\na,
.af a a
\na
⇒ 10, X, -010, -j
</pre></div></div>
<a class="index-entry-id" id="index-Roman-numerals_002c-extrema-_0028maximum-and-minimum_0029"></a>
<a class="index-entry-id" id="index-extreme-values-representable-with-Roman-numerals"></a>
<a class="index-entry-id" id="index-maximum-value-representable-with-Roman-numerals"></a>
<a class="index-entry-id" id="index-minimum-value-representable-with-Roman-numerals"></a>
<p>The representable extrema in the ‘<samp class="samp">i</samp>’ and ‘<samp class="samp">I</samp>’ formats
correspond to Arabic 39,999. GNU <code class="code">troff</code> uses ‘<samp class="samp">w</samp>’ and
‘<samp class="samp">z</samp>’ to represent 5,000 and 10,000 in Roman numerals, respectively,
following the convention of <abbr class="acronym">AT&T</abbr> <code class="code">troff</code>—currently, the
correct glyphs for Roman numerals five thousand (<code class="code">U+2181</code>) and ten
thousand (<code class="code">U+2182</code>) are not used.
</p>
<a class="index-entry-id" id="index-read_002donly-register_002c-changing-format"></a>
<a class="index-entry-id" id="index-changing-format_002c-and-read_002donly-registers"></a>
<p>Assigning the format of a read-only register is an error. Instead, copy
the read-only register’s value to, and assign the format of, a writable
register.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cgr"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\g</code><span class="r"><i class="slanted">r</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cgr'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cg"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cg_0028rg"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\g(</code><span class="r"><i class="slanted">rg</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cg_0028rg'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005cg_005breg_005d"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\g[</code><span class="r"><i class="slanted">reg</i></span><code class="t">]</code></strong><a class="copiable-link" href='#index-_005cg_005breg_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-format-of-register-_0028_005cg_0029"></a>
<a class="index-entry-id" id="index-register_002c-format-_0028_005cg_0029"></a>
<p>Interpolate the format of the register <var class="var">reg</var> (one-character
name <var class="var">r</var>, two-character name <var class="var">rg</var>). Zeroes represent
Arabic formats. If <var class="var">reg</var> is not defined, <var class="var">reg</var> is not created
and nothing is interpolated. <code class="code">\g</code> is interpreted even in copy mode
(see <a class="pxref" href="#Copy-Mode">Copy Mode</a>).
</p></dd></dl>
<a class="index-entry-id" id="index-register-format_002c-in-expressions"></a>
<a class="index-entry-id" id="index-expressions_002c-and-register-format"></a>
<p>GNU <code class="code">troff</code> interprets only Arabic numerals. The Roman numeral or
alphabetic formats cannot be used as operands to arithmetic operators in
expressions (see <a class="pxref" href="#Numeric-Expressions">Numeric Expressions</a>). For instance, it may be
desirable to test the page number independently of its format.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.af % i \" front matter
.de header-trap
. \" To test the page number, we need it in Arabic.
. ds saved-page-number-format \\g%\"
. af % 0
. nr page-number-in-decimal \\n%
. af % \\*[saved-page-number-format]
. ie \\n[page-number-in-decimal]=1 .do-first-page-stuff
. el \{\
. ie o .do-odd-numbered-page-stuff
. el .do-even-numbered-page-stuff
. \}
. rm saved-page-number-format
..
.wh 0 header-trap
</pre></div></div>
<hr>
</div>
<div class="subsection-level-extent" id="Built_002din-Registers">
<div class="nav-panel">
<p>
Previous: <a href="#Assigning-Register-Formats" accesskey="p" rel="prev">Assigning Register Formats</a>, Up: <a href="#Registers" accesskey="u" rel="up">Registers</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Built_002din-Registers-1">5.8.5 Built-in Registers</h4>
<a class="index-entry-id" id="index-built_002din-registers"></a>
<a class="index-entry-id" id="index-registers_002c-built_002din"></a>
<p>Predefined registers whose identifiers start with a dot are read-only.
Many are Boolean-valued, interpolating a true or false value testable
with the <code class="code">if</code>, <code class="code">ie</code>, or <code class="code">while</code> requests. Some read-only
registers are string-valued, meaning that they interpolate text.
</p>
<a class="index-entry-id" id="index-removing-a-built_002din-register"></a>
<a class="index-entry-id" id="index-register_002c-built_002din_002c-removing"></a>
<a class="index-entry-id" id="index-built_002din-register_002c-removing"></a>
<p><strong class="strong">Caution:</strong> Built-in registers are subject to removal like
others; once removed, they can be recreated only as normal writable
registers and will not reflect formatter state.
</p>
<p>A register name (without the dot) is often associated with a request of
the same name. A complete listing of all built-in registers can be
found in <a class="ref" href="#Register-Index">Register Index</a>.
</p>
<p>We present here a few built-in registers that are not described
elsewhere in this manual; they have to do with invariant properties of
GNU <code class="code">troff</code>, or obtain information about the formatter’s
command-line options, processing progress, or the operating environment.
</p>
<dl class="table">
<dt id='index-_002eA'><span><code class="code">\n[.A]</code><a class="copiable-link" href='#index-_002eA'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-approximation-output-register-_0028_002eA_0029"></a>
<a class="index-entry-id" id="index-plain-text-approximation-output-register-_0028_002eA_0029-1"></a>
<p>Approximate output is being formatted (Boolean-valued); see
<code class="command">groff</code> <samp class="option">-a</samp> option (<a class="ref" href="#Groff-Options">Options</a>).
</p>
</dd>
<dt id='index-c_002e'><span><code class="code">\n[.c]</code><a class="copiable-link" href='#index-c_002e'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ec"></a>
</dd>
<dt><code class="code">\n[c.]</code></dt>
<dd><a class="index-entry-id" id="index-input-line-number-register-_0028_002ec_002c-c_002e_0029"></a>
<a class="index-entry-id" id="index-line-number_002c-input_002c-register-_0028_002ec_002c-c_002e_0029"></a>
<p>Input line number. ‘<samp class="samp">c.</samp>’ is a writable synonym,
affecting subsequent interpolations of both ‘<samp class="samp">.c</samp>’ and ‘<samp class="samp">c.</samp>’.
</p>
</dd>
<dt id='index-current-input-file-name-register-_0028_002eF_0029'><span><code class="code">\n[.F]</code><a class="copiable-link" href='#index-current-input-file-name-register-_0028_002eF_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-input-file-name_002c-current_002c-register-_0028_002eF_0029"></a>
<a class="index-entry-id" id="index-_002eF"></a>
<p>Name of input file (string-valued).
</p>
</dd>
<dt id='index-_002eg'><span><code class="code">\n[.g]</code><a class="copiable-link" href='#index-_002eg'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-GNU-troff_002c-identification-register-_0028_002eg_0029"></a>
<a class="index-entry-id" id="index-GNU_002dspecific-register-_0028_002eg_0029"></a>
<p>Always true in GNU <code class="code">troff</code> (Boolean-valued). Documents can use
this to ask the formatter if it claims <code class="code">groff</code> compatibility.
</p>
</dd>
<dt id='index-_002eP'><span><code class="code">\n[.P]</code><a class="copiable-link" href='#index-_002eP'> ¶</a></span></dt>
<dd><p>Output page selection status (Boolean-valued); see <code class="command">groff</code>
<samp class="option">-o</samp> option (<a class="ref" href="#Groff-Options">Options</a>).
</p>
</dd>
<dt id='index-number-of-registers-register-_0028_002eR_0029'><span><code class="code">\n[.R]</code><a class="copiable-link" href='#index-number-of-registers-register-_0028_002eR_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-registers_002c-number-of_002c-register-_0028_002eR_0029"></a>
<a class="index-entry-id" id="index-_002eR-2"></a>
<p>Count of available unused registers; always 10,000 in GNU
<code class="code">troff</code>.<a class="footnote" id="DOCF52" href="#FOOT52"><sup>52</sup></a>
</p>
</dd>
<dt id='index-_002eT-2'><span><code class="code">\n[.T]</code><a class="copiable-link" href='#index-_002eT-2'> ¶</a></span></dt>
<dd><p>Indicator of output device selection (Boolean-valued); see
<code class="command">groff</code> <samp class="option">-T</samp> option (<a class="ref" href="#Groff-Options">Options</a>).
</p>
</dd>
<dt id='index-safer-mode-2'><span><code class="code">\n[.U]</code><a class="copiable-link" href='#index-safer-mode-2'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-mode_002c-safer-2"></a>
<a class="index-entry-id" id="index-unsafe-mode-2"></a>
<a class="index-entry-id" id="index-mode_002c-unsafe-2"></a>
<a class="index-entry-id" id="index-_002eU"></a>
<p>Unsafe mode enablement status (Boolean-valued); see <code class="command">groff</code>
<samp class="option">-U</samp> option (<a class="ref" href="#Groff-Options">Options</a>).
</p>
</dd>
<dt id='index-_002ex'><span><code class="code">\n[.x]</code><a class="copiable-link" href='#index-_002ex'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-major-version-number-register-_0028_002ex_0029"></a>
<a class="index-entry-id" id="index-version-number_002c-major_002c-register-_0028_002ex_0029"></a>
<p>Major version number of the running GNU <code class="code">troff</code> formatter. For
example, if the version number is 1.23.0, then <code class="code">.x</code>
contains ‘<samp class="samp">1</samp>’.
</p>
</dd>
<dt id='index-_002ey'><span><code class="code">\n[.y]</code><a class="copiable-link" href='#index-_002ey'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-minor-version-number-register-_0028_002ey_0029"></a>
<a class="index-entry-id" id="index-version-number_002c-minor_002c-register-_0028_002ey_0029"></a>
<p>Minor version number of the running GNU <code class="code">troff</code> formatter. For
example, if the version number is 1.23.0, then <code class="code">.y</code>
contains ‘<samp class="samp">23</samp>’.
</p>
</dd>
<dt id='index-_002eY'><span><code class="code">\n[.Y]</code><a class="copiable-link" href='#index-_002eY'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-revision-number-register-_0028_002eY_0029"></a>
<p>Revision number of the running GNU <code class="code">troff</code> formatter. For example,
if the version number is 1.23.0, then <code class="code">.Y</code> contains ‘<samp class="samp">0</samp>’.
</p>
</dd>
<dt id='index-_0024_0024'><span><code class="code">\n[$$]</code><a class="copiable-link" href='#index-_0024_0024'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-process-ID-of-GNU-troff-register-_0028_0024_0024_0029"></a>
<a class="index-entry-id" id="index-PID-of-GNU-troff-register-_0028_0024_0024_0029"></a>
<a class="index-entry-id" id="index-GNU-troff_002c-process-ID-register-_0028_0024_0024_0029"></a>
<a class="index-entry-id" id="index-GNU-troff_002c-PID-register-_0028_0024_0024_0029"></a>
<p>Process identifier (PID) of the GNU <code class="code">troff</code> program in its
operating environment.
</p></dd>
</dl>
<p>Date- and time-related registers are set per the local time as
determined by <cite class="cite">localtime<span class="r">(3)</span></cite> when the formatter launches. This
initialization can be overridden by <code class="env">SOURCE_DATE_EPOCH</code> and
<code class="env">TZ</code>; see <a class="ref" href="#Environment">Environment</a>.
</p>
<dl class="table">
<dt id='index-seconds_002c-current-time-_0028seconds_0029'><span><code class="code">\n[seconds]</code><a class="copiable-link" href='#index-seconds_002c-current-time-_0028seconds_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-time_002c-current_002c-seconds-_0028seconds_0029"></a>
<a class="index-entry-id" id="index-current-time_002c-seconds-_0028seconds_0029"></a>
<a class="index-entry-id" id="index-seconds"></a>
<p>Count of seconds elapsed in the minute (0–60). </p>
</dd>
<dt id='index-minutes_002c-current-time-_0028minutes_0029'><span><code class="code">\n[minutes]</code><a class="copiable-link" href='#index-minutes_002c-current-time-_0028minutes_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-time_002c-current_002c-minutes-_0028minutes_0029"></a>
<a class="index-entry-id" id="index-current-time_002c-minutes-_0028minutes_0029"></a>
<a class="index-entry-id" id="index-minutes"></a>
<p>Count of minutes elapsed in the hour (0–59).
</p>
</dd>
<dt id='index-hours_002c-current-time-_0028hours_0029'><span><code class="code">\n[hours]</code><a class="copiable-link" href='#index-hours_002c-current-time-_0028hours_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-time_002c-current_002c-hours-_0028hours_0029"></a>
<a class="index-entry-id" id="index-current-time_002c-hours-_0028hours_0029"></a>
<a class="index-entry-id" id="index-hours"></a>
<p>Count of hours elapsed since midnight (0–23).
</p>
</dd>
<dt id='index-day-of-the-week-register-_0028dw_0029'><span><code class="code">\n[dw]</code><a class="copiable-link" href='#index-day-of-the-week-register-_0028dw_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-date_002c-day-of-the-week-register-_0028dw_0029"></a>
<a class="index-entry-id" id="index-dw"></a>
<p>Day of the week (1–7; 1 is Sunday).
</p>
</dd>
<dt id='index-day-of-the-month-register-_0028dy_0029'><span><code class="code">\n[dy]</code><a class="copiable-link" href='#index-day-of-the-month-register-_0028dy_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-date_002c-day-of-the-month-register-_0028dy_0029"></a>
<a class="index-entry-id" id="index-dy"></a>
<p>Day of the month (1–31).
</p>
</dd>
<dt id='index-month-of-the-year-register-_0028mo_0029'><span><code class="code">\n[mo]</code><a class="copiable-link" href='#index-month-of-the-year-register-_0028mo_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-date_002c-month-of-the-year-register-_0028mo_0029"></a>
<a class="index-entry-id" id="index-mo"></a>
<p>Month of the year (1–12).
</p>
</dd>
<dt id='index-date_002c-year-register-_0028year_002c-yr_0029'><span><code class="code">\n[year]</code><a class="copiable-link" href='#index-date_002c-year-register-_0028year_002c-yr_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-year_002c-current_002c-register-_0028year_002c-yr_0029"></a>
<a class="index-entry-id" id="index-year"></a>
<p>Gregorian year.
</p>
<a class="index-entry-id" id="index-CSTR-_002354-errata"></a>
<a class="index-entry-id" id="index-CSTR-_002354-erratum_002c-yr-register"></a>
</dd>
<dt id='index-yr'><span><code class="code">\n[yr]</code><a class="copiable-link" href='#index-yr'> ¶</a></span></dt>
<dd><p>Gregorian year minus 1900. This register is incorrectly documented
in the <abbr class="acronym">AT&T</abbr> <code class="code">troff</code> manual as storing the last two digits
of the current year. That claim stopped being true in 2000. Old
<code class="code">troff</code> input that looks like:
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">'\" The year number is a surprise after 1999.
This document was formatted in 19\n(yr.
</pre></div></div>
<p>can be corrected to:
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">This document was formatted in \n[year].
</pre></div></div>
<p>or, for portability across many <code class="code">roff</code> programs, to the following.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.nr y4 1900+\n(yr
This document was formatted in \n(y4.
</pre></div></div>
</dd>
</dl>
<hr>
</div>
</div>
<div class="section-level-extent" id="Manipulating-Filling-and-Adjustment">
<div class="nav-panel">
<p>
Next: <a href="#Manipulating-Hyphenation" accesskey="n" rel="next">Manipulating Hyphenation</a>, Previous: <a href="#Registers" accesskey="p" rel="prev">Registers</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Manipulating-Filling-and-Adjustment-1">5.9 Manipulating Filling and Adjustment</h3>
<a class="index-entry-id" id="index-manipulating-filling-and-adjustment"></a>
<a class="index-entry-id" id="index-filling-and-adjustment_002c-manipulating"></a>
<a class="index-entry-id" id="index-adjustment-and-filling_002c-manipulating"></a>
<a class="index-entry-id" id="index-justifying-text"></a>
<a class="index-entry-id" id="index-text_002c-justifying"></a>
<a class="index-entry-id" id="index-break-1"></a>
<a class="index-entry-id" id="index-line-break"></a>
<a class="index-entry-id" id="index-bp-request_002c-causing-implicit-break"></a>
<a class="index-entry-id" id="index-ce-request_002c-causing-implicit-break"></a>
<a class="index-entry-id" id="index-cf-request_002c-causing-implicit-break"></a>
<a class="index-entry-id" id="index-fi-request_002c-causing-implicit-break"></a>
<a class="index-entry-id" id="index-fl-request_002c-causing-implicit-break"></a>
<a class="index-entry-id" id="index-in-request_002c-causing-implicit-break"></a>
<a class="index-entry-id" id="index-nf-request_002c-causing-implicit-break"></a>
<a class="index-entry-id" id="index-rj-request_002c-causing-implicit-break"></a>
<a class="index-entry-id" id="index-sp-request_002c-causing-implicit-break"></a>
<a class="index-entry-id" id="index-ti-request_002c-causing-implicit-break"></a>
<a class="index-entry-id" id="index-trf-request_002c-causing-implicit-break"></a>
<p>When an output line is pending (see below), a break moves the drawing
position to the beginning of the next text baseline, interrupting
filling. Various ways of causing breaks were shown in <a class="ref" href="#Breaking">Breaking</a>.
The <code class="code">br</code> request likewise causes a break. Several other requests
imply breaks: <code class="code">bp</code>, <code class="code">ce</code>, <code class="code">cf</code>, <code class="code">fi</code>, <code class="code">fl</code>,
<code class="code">in</code>, <code class="code">nf</code>, <code class="code">rj</code>, <code class="code">sp</code>, <code class="code">ti</code>, and <code class="code">trf</code>.
If the no-break control character is used with any of these requests,
GNU <code class="code">troff</code> suppresses the break; instead the requested operation
takes effect at the next break. ‘<samp class="samp">'br</samp>’ does nothing.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ll 55n
This line is normally filled and adjusted.
.br
A line's alignment is decided
'ce \" Center the next input line (no break).
when it is output.
This line returns to normal filling and adjustment.
⇒ This line is normally filled and adjusted.
⇒ A line's alignment is decided when it is output.
⇒ This line returns to normal filling and adjustment.
</pre></div></div>
<a class="index-entry-id" id="index-pending-output-line"></a>
<a class="index-entry-id" id="index-partially-collected-line"></a>
<a class="index-entry-id" id="index-output-line-properties"></a>
<a class="index-entry-id" id="index-properties-of-output-lines"></a>
<p>Output line properties like page offset, indentation, adjustment, and
even the location of its text baseline, are not determined until the
line has been broken. An output line is said to be <em class="dfn">pending</em> if
some input has been collected but an output line corresponding to it has
not yet been written; such an output line is also termed <em class="dfn">partially
collected</em>. If no output line is pending, it is as if a break has
already happened; additional breaks, whether explicit or implicit, have
no effect. If the vertical drawing position is negative—as it is when
the formatter starts up—a break starts a new page (even if no output
line is pending) unless an end-of-input macro is being interpreted.
See <a class="xref" href="#End_002dof_002dinput-Traps">End-of-input Traps</a>.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ebr"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.br</code></strong><a class="copiable-link" href='#index-_002ebr'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-br"></a>
<p>Break the line: emit any pending output line without adjustment.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">foo bar
.br
baz
'br
qux
⇒ foo bar
⇒ baz qux
</pre></div></div>
</dd></dl>
<p>Sometimes you want to prevent a break within a phrase or between a
quantity and its units.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_007e-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\~</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_007e-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005c_007e"></a>
<a class="index-entry-id" id="index-unbreakable-space-_0028_005c_007e_0029"></a>
<a class="index-entry-id" id="index-space_002c-unbreakable-_0028_005c_007e_0029"></a>
<p>Insert an unbreakable space that is adjustable like an ordinary space.
It is discarded from the end of an output line if a break is forced.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">Set the output speed to\~1.
There are 1,024\~bytes in 1\~KiB.
J.\~F.\~Ossanna wrote the original CSTR\~#54.
</pre></div></div>
</dd></dl>
<p>By default, GNU <code class="code">troff</code> fills text and adjusts it to reach the
output line length. The <code class="code">nf</code> request disables filling; the
<code class="code">fi</code> request renables it.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002efi"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.fi</code></strong><a class="copiable-link" href='#index-_002efi'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-fi"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002eu_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.u]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002eu_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002eu"></a>
<a class="index-entry-id" id="index-filling-of-output_002c-enabling-_0028fi_0029"></a>
<a class="index-entry-id" id="index-output_002c-filling_002c-enablement-of-_0028fi_0029"></a>
<a class="index-entry-id" id="index-fill-mode-_0028fi_0029_002c-enabling"></a>
<a class="index-entry-id" id="index-mode_002c-fill-_0028fi_0029_002c-enabling"></a>
<p>Enable filling of output lines; a pending output line is broken. The
read-only register <code class="code">.u</code> is set to 1. The filling enablement
status, sometimes called <em class="dfn">fill mode</em>, is associated with the
environment (see <a class="pxref" href="#Environments">Environments</a>). See <a class="xref" href="#Line-Continuation">Line Continuation</a>, for
interaction with the <code class="code">\c</code> escape sequence.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002enf"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.nf</code></strong><a class="copiable-link" href='#index-_002enf'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-nf"></a>
<a class="index-entry-id" id="index-filling-of-output_002c-disabling-_0028nf_0029"></a>
<a class="index-entry-id" id="index-output_002c-filling_002c-disablement-of-_0028nf_0029"></a>
<a class="index-entry-id" id="index-no_002dfill-mode"></a>
<a class="index-entry-id" id="index-mode_002c-no_002dfill"></a>
<a class="index-entry-id" id="index-fill-mode_002c-disabling"></a>
<a class="index-entry-id" id="index-mode_002c-fill_002c-disabling"></a>
<p>Disable filling of output lines: the output line length (see <a class="pxref" href="#Line-Layout">Line Layout</a>) is ignored and output lines are broken where the input lines
are. A pending output line is broken and adjustment is suppressed. The
read-only register <code class="code">.u</code> is set to 0. The filling enablement
status is associated with the environment (see <a class="pxref" href="#Environments">Environments</a>). See
<a class="ref" href="#Line-Continuation">Line Continuation</a>, for interaction with the <code class="code">\c</code> escape
sequence.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ead"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ad</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">mode</i></span>]</var><a class="copiable-link" href='#index-_002ead'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ad"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002ej_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.j]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ej_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ej"></a>
<p>Enable output line adjustment in <var class="var">mode</var>, taking effect when the
pending (or next) output line is broken. Adjustment is suppressed when
filling is. <var class="var">mode</var> can have one of the following values.
</p>
<dl class="table">
<dt><code class="code">b</code></dt>
<dt><code class="code">n</code></dt>
<dd><p>Adjust “normally”: if the output line does not consume the distance
between the indentation and the configured output line length, GNU
<code class="code">troff</code> stretches adjustable spaces within the line until that
length is reached. When the indentation is zero, this mode spreads the
line to both the left and right margins. This is the GNU <code class="code">troff</code>
default.
</p>
</dd>
<dt id='index-centered-text-_0028filled_0029'><span><code class="code">c</code><a class="copiable-link" href='#index-centered-text-_0028filled_0029'> ¶</a></span></dt>
<dd><p>Center filled text. Contrast with the <code class="code">ce</code> request, which centers
text <em class="emph">without</em> filling it.
</p>
</dd>
<dt id='index-ragged_002dright-text'><span><code class="code">l</code><a class="copiable-link" href='#index-ragged_002dright-text'> ¶</a></span></dt>
<dd><p>Align text to the left without adjusting it.
</p>
</dd>
<dt id='index-ragged_002dleft-text'><span><code class="code">r</code><a class="copiable-link" href='#index-ragged_002dleft-text'> ¶</a></span></dt>
<dd><p>Align text to the right without adjusting it.
</p></dd>
</dl>
<p><var class="var">mode</var> can also be a value previously stored in the <code class="code">.j</code>
register. Using <code class="code">ad</code> without an argument is the same as ‘<samp class="samp">.ad
\n[.j]</samp>’; unless filling is disabled, GNU <code class="code">troff</code> resumes adjusting
lines in the same way it did before adjustment was disabled by
invocation of the <code class="code">na</code> request.
</p>
<a class="index-entry-id" id="index-adjustment-mode-register-_0028_002ej_0029"></a>
<p>The adjustment mode and enablement status are encoded in the read-only
register <code class="code">.j</code>. These parameters are associated with the
environment (see <a class="pxref" href="#Environments">Environments</a>).
</p>
<p>The value of <code class="code">.j</code> for any adjustment mode is an implementation
detail and should not be relied upon as a programmer’s interface. Do
not write logic to interpret or perform arithmetic on it.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ll 48n
.de AD
. br
. ad \\$1
..
.de NA
. br
. na
..
left
.AD r
.nr ad \n(.j
right
.AD c
center
.NA
left
.AD
center
.AD \n(ad
right
</pre></div></div>
<div class="example">
<div class="group"><pre class="example-preformatted"> ⇒ left
⇒ right
⇒ center
⇒ left
⇒ center
⇒ right
</pre></div></div>
</dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ena"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.na</code></strong><a class="copiable-link" href='#index-_002ena'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-na"></a>
<p>Disable output line adjustment. This produces the same output as
left-alignment, but the value of the adjustment mode register <code class="code">.j</code>
is altered differently. The adjustment mode and enablement status are
associated with the environment (see <a class="pxref" href="#Environments">Environments</a>).
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ebrp"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.brp</code></strong><a class="copiable-link" href='#index-_002ebrp'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-brp"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cp-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\p</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cp-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cp"></a>
<p>Break, adjusting the line per the current adjustment mode. <code class="code">\p</code>
schedules a break with adjustment at the next word boundary. The escape
sequence is itself neither a break nor a space of any kind; it can thus
be placed in the middle of a word to cause a break at the end of that
word.
</p>
<p>Breaking with immediate adjustment can produce ugly results since GNU
<code class="code">troff</code> doesn’t have a sophisticated paragraph-building algorithm,
as TeX has, for example. Instead, GNU <code class="code">troff</code> fills and adjusts
a paragraph line by line.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ll 4.5i
This is an uninteresting sentence.
This is an uninteresting sentence.\p
This is an uninteresting sentence.
</pre></div></div>
<p>is formatted as follows.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">This is an uninteresting sentence. This is
an uninteresting sentence.
This is an uninteresting sentence.
</pre></div></div>
</dd></dl>
<a class="index-entry-id" id="index-productive-input-line"></a>
<a class="index-entry-id" id="index-input-line_002c-productive"></a>
<a class="index-entry-id" id="index-line_002c-productive-input"></a>
<p>To clearly present the next couple of requests, we must introduce the
concept of “productive” input lines. A <em class="dfn">productive input line</em> is
one that directly produces formatted output. Text lines produce
output,<a class="footnote" id="DOCF53" href="#FOOT53"><sup>53</sup></a> as do control
lines containing requests like <code class="code">tl</code> or escape sequences like
<code class="code">\D</code>. Macro calls are not <em class="emph">directly</em> productive, and thus not
counted, but their interpolated contents can be. Empty requests, and
requests and escape sequences that define registers or strings or alter
the formatting environment (as with changes to the size, face, height,
slant, or color of the type) are not productive. We will also preview
the output line continuation escape sequence, <code class="code">\c</code>, which
“connects” two input lines that would otherwise be counted separately.
<a class="footnote" id="DOCF54" href="#FOOT54"><sup>54</sup></a>
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de hello
Hello, world!
..
.ce \" center output of next productive input line
.
.nr junk-reg 1
.ft I
Chorus: \c
.ft
.hello
Went the day well?
⇒ <i class="slanted">Chorus:</i> Hello, world!
⇒ Went the day well?
</pre></div></div>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ece"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ce</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">n</i></span>]</var><a class="copiable-link" href='#index-_002ece'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ce"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002ece_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.ce]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ece_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ece-1"></a>
<a class="index-entry-id" id="index-centered-text-_0028unfilled_0029"></a>
<a class="index-entry-id" id="index-centering-lines-_0028ce_0029"></a>
<a class="index-entry-id" id="index-lines_002c-centering-_0028ce_0029"></a>
<p>Break (unless the no-break control character is used), center the output
of the next <var class="var">n</var> productive input lines with respect to the line
length and indentation without filling, then break again regardless of
the invoking control character.
If the argument is not positive, centering is disabled. Omitting the
argument implies an <var class="var">n</var> of ‘<samp class="samp">1</samp>’. The count of lines remaining
to be centered is stored in the read-only register <code class="code">.ce</code> and is
associated with the environment (see <a class="pxref" href="#Environments">Environments</a>).
</p>
<a class="index-entry-id" id="index-ce-request_002c-difference-from-_002ead-c"></a>
<p>While the ‘<samp class="samp">.ad c</samp>’<!-- /@w --> request also centers text, it fills the text
as well.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de FR
This is a small text fragment that shows the differences
between the `.ce' and the `.ad c' requests.
..
.ll 4i
.ce 1000
.FR
.ce 0
.ad c
.FR
⇒ This is a small text fragment that shows
⇒ the differences
⇒ between the ‘.ce’ and the ‘.ad c’ requests.
⇒
⇒ This is a small text fragment that shows
⇒ the differences between the ‘.ce’ and
⇒ the ‘.ad c’ requests.
</pre></div></div>
<p>The previous example illustrates a common idiom of turning centering on
for a quantity of lines far in excess of what is required, and off again
after the text to be centered. This technique relieves humans of
counting lines for requests that take a count of input lines as an
argument.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002erj"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.rj</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">n</i></span>]</var><a class="copiable-link" href='#index-_002erj'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-rj"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002erj_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.rj]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002erj_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002erj-1"></a>
<a class="index-entry-id" id="index-justifying-text-_0028rj_0029"></a>
<a class="index-entry-id" id="index-text_002c-justifying-_0028rj_0029"></a>
<a class="index-entry-id" id="index-right_002djustifying-_0028rj_0029"></a>
<p>Break (unless the no-break control character is used), align the output
of the next <var class="var">n</var> productive input lines to the right margin without
filling, then break again regardless of the control character.
If the argument is not positive, right-alignment is disabled. Omitting
the argument implies an <var class="var">n</var> of ‘<samp class="samp">1</samp>’. The count of lines
remaining to be right-aligned is stored in the read-only register
<code class="code">.rj</code> and is associated with the environment
(see <a class="pxref" href="#Environments">Environments</a>).
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ll 49n
.rj 3
At first I hoped that such a technically unsound
project would collapse but I soon realized it was
doomed to success. \[em] C. A. R. Hoare
⇒ At first I hoped that such a technically unsound
⇒ project would collapse but I soon realized it was
⇒ doomed to success. -- C. A. R. Hoare
</pre></div></div>
</dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ess"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ss</code></strong> <var class="def-var-arguments">word-space-size [<span class="r"><i class="slanted">additional-sentence-space-size</i></span>]</var><a class="copiable-link" href='#index-_002ess'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ss"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002ess_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.ss]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ess_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ess-1"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002esss_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.sss]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002esss_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002esss"></a>
<a class="index-entry-id" id="index-word-space-size-register-_0028_002ess_0029"></a>
<a class="index-entry-id" id="index-size-of-word-space-register-_0028_002ess_0029"></a>
<a class="index-entry-id" id="index-space-between-words-register-_0028_002ess_0029"></a>
<a class="index-entry-id" id="index-inter_002dsentence-space-size-register-_0028_002esss_0029"></a>
<a class="index-entry-id" id="index-sentence-space-size-register-_0028_002esss_0029"></a>
<a class="index-entry-id" id="index-size-of-sentence-space-register-_0028_002esss_0029"></a>
<a class="index-entry-id" id="index-space-between-sentences-register-_0028_002esss_0029"></a>
<p>Set the sizes of spaces between words and
sentences<a class="footnote" id="DOCF55" href="#FOOT55"><sup>55</sup></a> in twelfths
of font’s space width (typically one-fourth to one-third em for Western
scripts). The default for both parameters is 12. Negative values
are erroneous.
<a class="index-entry-id" id="index-inter_002dword-spacing_002c-minimal"></a>
<a class="index-entry-id" id="index-minimal-inter_002dword-spacing"></a>
<a class="index-entry-id" id="index-space_002c-between-words"></a>
The first argument is a minimum; if an output line undergoes adjustment,
such spaces may increase in width.
<a class="index-entry-id" id="index-inter_002dsentence-space_002c-additional"></a>
<a class="index-entry-id" id="index-additional-inter_002dsentence-space"></a>
<a class="index-entry-id" id="index-space_002c-between-sentences"></a>
The optional second argument sets the amount of additional space
separating sentences on the same output line. If omitted, this amount
is set to <var class="var">word-space-size</var>. The request is ignored if there are no
parameters.
</p>
<a class="index-entry-id" id="index-filling_002c-and-inter_002dsentence-space"></a>
<a class="index-entry-id" id="index-mode_002c-fill_002c-and-inter_002dsentence-space"></a>
<p>Additional inter-sentence space is used only if the output line is not
full when the end of a sentence occurs in the input. If a sentence ends
at the end of an input line, then both an inter-word space and an
inter-sentence space are added to the output; if two spaces follow the
end of a sentence in the middle of an input line, then the second space
becomes an inter-sentence space in the output. Additional
inter-sentence space is not adjusted, but the inter-word space that
always precedes it may be. Further input spaces after the second, if
present, are adjusted as normal.
</p>
<p>The read-only registers <code class="code">.ss</code> and <code class="code">.sss</code> hold the minimal
inter-word space and additional inter-sentence space amounts,
respectively. These parameters are part of the environment
(see <a class="pxref" href="#Environments">Environments</a>), and rounded down to the nearest multiple
of 12 on terminals.
</p>
<a class="index-entry-id" id="index-discardable-horizontal-space"></a>
<a class="index-entry-id" id="index-space_002c-discardable_002c-horizontal"></a>
<a class="index-entry-id" id="index-horizontal-discardable-space"></a>
<p>The <code class="code">ss</code> request can insert discardable horizontal space; that is,
space that is discarded at a break. For example, some footnote styles
collect the notes into a single paragraph with large gaps between
each note.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ll 48n
1.\~J. Fict. Ch. Soc. 6 (2020), 3\[en]14.
.ss 12 48 \" applies to next sentence ending
Reprints no longer available through FCS.
.ss 12 \" go back to normal
2.\~Better known for other work.
⇒ 1. J. Fict. Ch. Soc. 6 (2020), 3-14. Reprints
⇒ no longer available through FCS. 2. Better
⇒ known for other work.
</pre></div></div>
<p>If <em class="emph">undiscardable</em> space is required, use the <code class="code">\h</code> escape
sequence.
</p></dd></dl>
<hr>
</div>
<div class="section-level-extent" id="Manipulating-Hyphenation">
<div class="nav-panel">
<p>
Next: <a href="#Manipulating-Spacing" accesskey="n" rel="next">Manipulating Spacing</a>, Previous: <a href="#Manipulating-Filling-and-Adjustment" accesskey="p" rel="prev">Manipulating Filling and Adjustment</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Manipulating-Hyphenation-1">5.10 Manipulating Hyphenation</h3>
<a class="index-entry-id" id="index-manipulating-hyphenation"></a>
<a class="index-entry-id" id="index-hyphenation_002c-manipulating"></a>
<a class="index-entry-id" id="index-hyphenation_002c-automatic"></a>
<a class="index-entry-id" id="index-automatic-hyphenation"></a>
<p>When filling, GNU <code class="code">troff</code> hyphenates words as needed at
user-specified and automatically determined hyphenation points. The
machine-driven determination of hyphenation points in words requires
algorithms and data, and is susceptible to conventions and preferences.
Before tackling such <em class="dfn">automatic hyphenation</em>, let us consider how
hyphenation points can be set explicitly.
</p>
<a class="index-entry-id" id="index-hyphenation_002c-explicit"></a>
<a class="index-entry-id" id="index-explicit-hyphenation"></a>
<a class="index-entry-id" id="index-hyphenation_002c-manual"></a>
<a class="index-entry-id" id="index-manual-hyphenation"></a>
<p>Explicitly hyphenated words such as “mother-in-law” are eligible for
breaking after each of their hyphens. Relatively few words in a
language offer such obvious break points, however, and automatic
detection of syllabic (or phonetic) boundaries for hyphenation is not
perfect,<a class="footnote" id="DOCF56" href="#FOOT56"><sup>56</sup></a> particularly for
unusual words found in technical literature. We can instruct GNU
<code class="code">troff</code> how to hyphenate specific words if the need arises.
</p>
<a class="index-entry-id" id="index-hyphenation-exceptions"></a>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ehw"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.hw</code></strong> <var class="def-var-arguments">word …</var><a class="copiable-link" href='#index-_002ehw'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-hw"></a>
<p>Define each <em class="dfn">hyphenation exception</em> <var class="var">word</var> with each hyphen ‘-’
in the word indicating a hyphenation point. For example, the request
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.hw in-sa-lub-rious alpha
</pre></div></div>
<p>marks potential hyphenation points in “insalubrious”, and prevents
“alpha” from being hyphenated at all.
</p>
<p>Besides the space character, any character whose hyphenation code is
zero can be used to separate the arguments of <code class="code">hw</code> (see the
<code class="code">hcode</code> request below). In addition, this request can be used more
than once.
</p>
<a class="index-entry-id" id="index-hw-request_002c-and-hy-restrictions"></a>
<p>Hyphenation points specified with <code class="code">hw</code> are not subject to the
within-word placement restrictions imposed by the <code class="code">hy</code> request (see
below).
</p>
<p>Hyphenation exceptions specified with the <code class="code">hw</code> request are
associated with the hyphenation language (see the <code class="code">hla</code> request
below) and environment (see <a class="pxref" href="#Environments">Environments</a>); invoking the <code class="code">hw</code>
request in the absence of a hyphenation language is an error.
</p>
<p>The request is ignored if there are no parameters.
</p></dd></dl>
<p>These are known as hyphenation <i class="slanted">exceptions</i> in the expectation
that most users will avail themselves of automatic hyphenation; these
exceptions override any rules that would normally apply to a word
matching a hyphenation exception defined with <code class="code">hw</code>.
</p>
<p>Situations also arise when only a specific occurrence of a word needs
its hyphenation altered or suppressed, or when a URL or similar string
needs to be breakable in sensible places without hyphenation.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_0025-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\%</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_0025-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005c_0025"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005c_003a-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\:</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_003a-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005c_003a"></a>
<a class="index-entry-id" id="index-hyphenation-character-_0028_005c_0025_0029"></a>
<a class="index-entry-id" id="index-character_002c-hyphenation-_0028_005c_0025_0029"></a>
<a class="index-entry-id" id="index-disabling-hyphenation-_0028_005c_0025_0029"></a>
<a class="index-entry-id" id="index-hyphenation_002c-disabling-_0028_005c_0025_0029"></a>
<p>To tell GNU <code class="code">troff</code> how to hyphenate words as they occur in input,
use the <code class="code">\%</code> escape sequence; it is the default <em class="dfn">hyphenation
character</em>. Each instance within a word indicates to GNU <code class="code">troff</code>
that the word may be hyphenated at that point, while prefixing a word
with this escape sequence prevents it from being otherwise hyphenated.
This mechanism affects only that occurrence of the word; to change the
hyphenation of a word for the remainder of input processing, use the
<code class="code">hw</code> request.
</p>
<a class="index-entry-id" id="index-_005cX_002c-followed-by-_005c_0025"></a>
<a class="index-entry-id" id="index-_005cY_002c-followed-by-_005c_0025"></a>
<a class="index-entry-id" id="index-_005c_0025_002c-following-_005cX-or-_005cY"></a>
<p>GNU <code class="code">troff</code> regards the escape sequences <code class="code">\X</code> and <code class="code">\Y</code> as
starting a word; that is, the <code class="code">\%</code> escape sequence in, say,
‘<samp class="samp">\X'...'\%foobar</samp>’<!-- /@w --> or ‘<samp class="samp">\Y'...'\%foobar</samp>’<!-- /@w --> no longer
prevents hyphenation of ‘<samp class="samp">foobar</samp>’ but inserts a hyphenation point
just prior to it; most likely this isn’t what you want.
See <a class="xref" href="#Postprocessor-Access">Postprocessor Access</a>.
</p>
<a class="index-entry-id" id="index-non_002dprinting-break-point-_0028_005c_003a_0029"></a>
<a class="index-entry-id" id="index-breaking-without-hyphens-_0028_005c_003a_0029"></a>
<a class="index-entry-id" id="index-file-names_002c-breaking-_0028_005c_003a_0029"></a>
<a class="index-entry-id" id="index-breaking-file-names-_0028_005c_003a_0029"></a>
<a class="index-entry-id" id="index-URLs_002c-breaking-_0028_005c_003a_0029"></a>
<a class="index-entry-id" id="index-breaking-URLs-_0028_005c_003a_0029"></a>
<p><code class="code">\:</code> inserts a non-printing break point; that is, a word can break
there, but the soft hyphen glyph (see below) is not written to the
output if it does. This escape sequence is an input word boundary, so
the remainder of the word is subject to hyphenation as normal.
</p>
<p>You can combine <code class="code">\:</code> and <code class="code">\%</code> to control breaking of a file
name or URL, or to permit hyphenation only after certain explicit
hyphens within a word.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">The \%Lethbridge-Stewart-\:\%Sackville-Baggins divorce
was, in retrospect, inevitable once the contents of
\%/var/log/\:\%httpd/\:\%access_log on the family web
server came to light, revealing visitors from Hogwarts.
</pre></div></div>
</dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ehc"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.hc</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">char</i></span>]</var><a class="copiable-link" href='#index-_002ehc'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-hc"></a>
<p>Change the hyphenation character to <var class="var">char</var>. This character then
works as the <code class="code">\%</code> escape sequence normally does, and thus no longer
appears in the output.<a class="footnote" id="DOCF57" href="#FOOT57"><sup>57</sup></a> Without an
argument, <code class="code">hc</code> resets the hyphenation character to <code class="code">\%</code> (the
default). The hyphenation character is associated with the environment
(see <a class="pxref" href="#Environments">Environments</a>).
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eshc"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.shc</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">c</i></span>]</var><a class="copiable-link" href='#index-_002eshc'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-shc"></a>
<a class="index-entry-id" id="index-soft-hyphen-character_002c-setting-_0028shc_0029"></a>
<a class="index-entry-id" id="index-character_002c-soft-hyphen_002c-setting-_0028shc_0029"></a>
<a class="index-entry-id" id="index-glyph_002c-soft-hyphen-_0028hy_0029"></a>
<a class="index-entry-id" id="index-soft-hyphen-glyph-_0028hy_0029"></a>
<a class="index-entry-id" id="index-char-request_002c-and-soft-hyphen-character"></a>
<a class="index-entry-id" id="index-tr-request_002c-and-soft-hyphen-character"></a>
<p>Set the <em class="dfn">soft hyphen character</em>, inserted when a word is hyphenated
automatically or at a hyphenation character, to the ordinary or special
character <var class="var">c</var>.<a class="footnote" id="DOCF58" href="#FOOT58"><sup>58</sup></a> If the argument is omitted, the soft
hyphen character is set to the default, <code class="code">\[hy]</code>. If no glyph for
<var class="var">c</var> exists in the font in use at a potential hyphenation point, then
the line is not broken there. Neither character definitions (specified
with the <code class="code">char</code> and similar requests) nor translations (specified
with the <code class="code">tr</code> request) are applied to <var class="var">c</var>.
</p></dd></dl>
<a class="index-entry-id" id="index-hyphenation-parameters_002c-automatic"></a>
<a class="index-entry-id" id="index-automatic-hyphenation-parameters"></a>
<p>Several requests influence automatic hyphenation. Because conventions
vary, a variety of hyphenation modes is available to the <code class="code">hy</code>
request; these determine whether hyphenation will apply to a
word prior to breaking a line at the end of a page (more or less; see
below for details), and at which positions within that word
automatically determined hyphenation points are permissible. The places
within a word that are eligible for hyphenation are determined by
language-specific data and lettercase relationships. Furthermore,
hyphenation of a word might be suppressed due to a limit on
consecutive hyphenated lines (<code class="code">hlm</code>), a minimum line length
threshold (<code class="code">hym</code>), or because the line can instead be adjusted with
additional inter-word space (<code class="code">hys</code>).
</p>
<a class="index-entry-id" id="index-hyphenation-mode-register-_0028_002ehy_0029"></a>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ehy"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.hy</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">mode</i></span>]</var><a class="copiable-link" href='#index-_002ehy'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-hy"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002ehy_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.hy]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ehy_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ehy-1"></a>
<p>Set automatic hyphenation mode to <var class="var">mode</var>, an integer encoding
conditions for hyphenation; if omitted, ‘<samp class="samp">1</samp>’ is implied. The
hyphenation mode is available in the read-only register ‘<samp class="samp">.hy</samp>’; it
is associated with the environment (see <a class="pxref" href="#Environments">Environments</a>). The default
hyphenation mode depends on the localization file loaded when GNU
<code class="code">troff</code> starts up; see the <code class="code">hpf</code> request below.
</p>
<p>Typesetting practice generally does not avail itself of every
opportunity for hyphenation, but the details differ by language and site
mandates. The hyphenation modes of <abbr class="acronym">AT&T</abbr> <code class="code">troff</code> were
implemented with English-language publishing practices of the 1970s in
mind, not a scrupulous enumeration of conceivable parameters. GNU
<code class="code">troff</code> extends those modes such that finer-grained control is
possible, favoring compatibility with older implementations over a more
intuitive arrangement. The means of hyphenation mode control is a set
of numbers that can be added up to encode the behavior
sought.<a class="footnote" id="DOCF59" href="#FOOT59"><sup>59</sup></a> The entries in the
following table are termed <em class="dfn">values</em>; the sum of the desired
values is the <em class="dfn">mode</em>.
</p>
<dl class="table">
<dt><code class="code">0</code></dt>
<dd><p>disables hyphenation.
</p>
</dd>
<dt><code class="code">1</code></dt>
<dd><p>enables hyphenation except after the first and before the last character
of a word.
</p></dd>
</dl>
<p>The remaining values “imply” 1; that is, they enable hyphenation
under the same conditions as ‘<samp class="samp">.hy 1</samp>’, and then apply or lift
restrictions relative to that basis.
</p>
<dl class="table">
<dt><code class="code">2</code></dt>
<dd><p>disables hyphenation of the last word on a page,<a class="footnote" id="DOCF60" href="#FOOT60"><sup>60</sup></a> even for explicitly hyphenated words.
</p>
</dd>
<dt><code class="code">4</code></dt>
<dd><p>disables hyphenation before the last two characters of a word.
</p>
</dd>
<dt><code class="code">8</code></dt>
<dd><p>disables hyphenation after the first two characters of a word.
</p>
</dd>
<dt><code class="code">16</code></dt>
<dd><p>enables hyphenation before the last character of a word.
</p>
</dd>
<dt><code class="code">32</code></dt>
<dd><p>enables hyphenation after the first character of a word.
</p></dd>
</dl>
<p>Apart from value 2, restrictions imposed by the hyphenation mode
are <em class="emph">not</em> respected for words whose hyphenations have been
specified with the hyphenation character (‘<samp class="samp">\%</samp>’ by default) or the
<code class="code">hw</code> request.
</p>
<p>Nonzero values in the previous table are additive. For example,
mode 12 causes GNU <code class="code">troff</code> to hyphenate neither the last two
nor the first two characters of a word. Some values cannot be used
together because they contradict; for instance, values 4 and 16,
and values 8 and 32. As noted, it is superfluous to add 1 to any
non-zero even mode.
</p>
<a class="index-entry-id" id="index-hyphenation-pattern-files"></a>
<a class="index-entry-id" id="index-pattern-files_002c-for-hyphenation"></a>
<p>The automatic placement of hyphens in words is determined by
<em class="dfn">pattern files</em>, which are derived from TeX and available for
several languages. The number of characters at the beginning of a word
after which the first hyphenation point should be inserted is determined
by the patterns themselves; it can’t be reduced further without
introducing additional, invalid hyphenation points (unfortunately, this
information is not part of a pattern file—you have to know it in
advance). The same is true for the number of characters at the end of
a word before the last hyphenation point should be inserted. For
example, you can supply the following input to ‘<samp class="samp">echo $(nroff)</samp>’.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ll 1
.hy 48
splitting
</pre></div></div>
<p>You will get
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">s- plit- t- in- g
</pre></div></div>
<p>instead of the correct ‘split- ting’. English patterns as distributed
with GNU <code class="code">troff</code> need two characters at the beginning and three
characters at the end; this means that value 4 of <code class="code">hy</code> is
mandatory. Value 8 is possible as an additional restriction, but
values 16 and 32 should be avoided, as should mode 1.
Modes 4 and 6 are typical.
</p>
<p>A table of left and right minimum character counts for hyphenation as
needed by the patterns distributed with GNU <code class="code">troff</code> follows; see
the <cite class="cite">groff_tmac<span class="r">(5)</span></cite> man page for more information on GNU
<code class="code">troff</code>’s language macro files.
</p>
<table class="multitable">
<thead><tr><th>language</th><th>pattern name</th><th>left min</th><th>right min</th></tr></thead>
<tbody><tr><td>Czech</td><td>cs</td><td>2</td><td>2</td></tr>
<tr><td>English</td><td>en</td><td>2</td><td>3</td></tr>
<tr><td>French</td><td>fr</td><td>2</td><td>3</td></tr>
<tr><td>German traditional</td><td>det</td><td>2</td><td>2</td></tr>
<tr><td>German reformed</td><td>den</td><td>2</td><td>2</td></tr>
<tr><td>Italian</td><td>it</td><td>2</td><td>2</td></tr>
<tr><td>Swedish</td><td>sv</td><td>1</td><td>2</td></tr>
</tbody>
</table>
<p>Hyphenation exceptions within pattern files (i.e., the words within a
TeX <code class="code">\hyphenation</code> group) obey the hyphenation restrictions
given by <code class="code">hy</code>.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002enh"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.nh</code></strong><a class="copiable-link" href='#index-_002enh'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-nh"></a>
<p>Disable automatic hyphenation; i.e., set the hyphenation mode to 0
(see above). The hyphenation mode of the last call to <code class="code">hy</code> is not
remembered.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ehpf"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.hpf</code></strong> <var class="def-var-arguments">pattern-file</var><a class="copiable-link" href='#index-_002ehpf'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-hpf"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002ehpfa"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.hpfa</code></strong> <var class="def-var-arguments">pattern-file</var><a class="copiable-link" href='#index-_002ehpfa'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-hpfa"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002ehpfcode"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.hpfcode</code></strong> <var class="def-var-arguments">a b [c d] …</var><a class="copiable-link" href='#index-_002ehpfcode'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-hpfcode"></a>
<a class="index-entry-id" id="index-hyphenation-patterns-_0028hpf_0029"></a>
<a class="index-entry-id" id="index-patterns-for-hyphenation-_0028hpf_0029"></a>
<p>Read hyphenation patterns from <var class="var">pattern-file</var>, which is sought
in the same way that macro files are with the <code class="code">mso</code> request or the
<samp class="option">-m<var class="var">name</var></samp> command-line option to <code class="code">groff</code>. The
<var class="var">pattern-file</var> should have the same format as (simple) TeX
pattern files. More specifically, the following scanning rules are
implemented.
</p>
<ul class="itemize mark-bullet">
<li>A percent sign starts a comment (up to the end of the line) even if
preceded by a backslash.
</li><li>“Digraphs” like <code class="code">\$</code> are not supported.
</li><li><code class="code">^^<var class="var">xx</var></code> (where each <var class="var">x</var> is 0–9 or a–f) and
<code class="code">^^<var class="var">c</var></code> (character <var class="var">c</var> in the code point range 0–127
decimal) are recognized; other uses of <code class="code">^</code> cause an error.
</li><li>No macro expansion is performed.
</li><li><code class="code">hpf</code> checks for the expression <code class="code">\patterns{…}</code>
(possibly with whitespace before or after the braces). Everything
between the braces is taken as hyphenation patterns. Consequently,
<code class="code">{</code> and <code class="code">}</code> are not allowed in patterns.
</li><li>Similarly, <code class="code">\hyphenation{…}</code> gives a list of hyphenation
exceptions.
</li><li><code class="code">\endinput</code> is recognized also.
</li><li>For backward compatibility, if <code class="code">\patterns</code> is missing, the whole
file is treated as a list of hyphenation patterns (except that the
<code class="code">%</code> character is recognized as the start of a comment).
</li></ul>
<p>The <code class="code">hpfa</code> request appends a file of patterns to the current list.
</p>
<p>The <code class="code">hpfcode</code> request defines mapping values for character codes in
pattern files. It is an older mechanism no longer used by GNU
<code class="code">troff</code>’s own macro files; for its successor, see <code class="code">hcode</code>
below. <code class="code">hpf</code> or <code class="code">hpfa</code> apply the mapping after reading the
patterns but before replacing or appending to the active list of
patterns. Its arguments are pairs of character codes—integers from 0
to 255. The request maps character code <var class="var">a</var> to
code <var class="var">b</var>, code <var class="var">c</var> to code <var class="var">d</var>, and so on.
Character codes that would otherwise be invalid in GNU <code class="code">troff</code> can
be used. By default, every code maps to itself except those for letters
‘A’ to ‘Z’, which map to those for ‘a’ to ‘z’.
</p>
<a class="index-entry-id" id="index-localization"></a>
<a class="index-entry-id" id="index-troffrc-2"></a>
<a class="index-entry-id" id="index-cs_002etmac"></a>
<a class="index-entry-id" id="index-de_002etmac"></a>
<a class="index-entry-id" id="index-en_002etmac"></a>
<a class="index-entry-id" id="index-fr_002etmac"></a>
<a class="index-entry-id" id="index-it_002etmac"></a>
<a class="index-entry-id" id="index-ja_002etmac"></a>
<a class="index-entry-id" id="index-sv_002etmac"></a>
<a class="index-entry-id" id="index-zh_002etmac"></a>
<p>The set of hyphenation patterns is associated with the language set by
the <code class="code">hla</code> request (see below). The <code class="code">hpf</code> request is usually
invoked by a localization file loaded by the <samp class="file">troffrc</samp>
file.<a class="footnote" id="DOCF61" href="#FOOT61"><sup>61</sup></a>
</p>
<p>A second call to <code class="code">hpf</code> (for the same language) replaces the
hyphenation patterns with the new ones. Invoking <code class="code">hpf</code> or
<code class="code">hpfa</code> causes an error if there is no hyphenation language. If no
<code class="code">hpf</code> request is specified (either in the document, in a file
loaded at startup, or in a macro package), GNU <code class="code">troff</code> won’t
automatically hyphenate at all.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ehcode"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.hcode</code></strong> <var class="def-var-arguments">c1 code1 [c2 code2] …</var><a class="copiable-link" href='#index-_002ehcode'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-hcode"></a>
<a class="index-entry-id" id="index-hyphenation-code-_0028hcode_0029"></a>
<a class="index-entry-id" id="index-code_002c-hyphenation-_0028hcode_0029"></a>
<p>Set the hyphenation code of character <var class="var">c1</var> to <var class="var">code1</var>, that of
<var class="var">c2</var> to <var class="var">code2</var>, and so on. A hyphenation code must be an
ordinary character (not a special character escape sequence) other than
a digit or a space. The request is ignored if given no arguments.
</p>
<p>For hyphenation to work, hyphenation codes must be set up. At
startup, GNU <code class="code">troff</code> assigns hyphenation codes to the letters
‘<samp class="samp">a</samp>’–‘<samp class="samp">z</samp>’ (mapped to themselves), to the letters
‘<samp class="samp">A</samp>’–‘<samp class="samp">Z</samp>’ (mapped to ‘<samp class="samp">a</samp>’–‘<samp class="samp">z</samp>’), and zero to all other
characters. Normally, hyphenation patterns contain only lowercase
letters which should be applied regardless of case. In other words,
they assume that the words ‘FOO’ and ‘Foo’ should be hyphenated exactly
as ‘foo’ is. The <code class="code">hcode</code> request extends this principle to letters
outside the Unicode basic Latin alphabet; without it, words containing
such letters won’t be hyphenated properly even if the corresponding
hyphenation patterns contain them.
</p>
<p>For example, the following <code class="code">hcode</code> requests are necessary to assign
hyphenation codes to the letters ‘<samp class="samp"></samp>’, needed for German.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.hcode
.hcode
.hcode
.hcode
</pre></div></div>
<p>Without these assignments, GNU <code class="code">troff</code> treats the German word
‘Kindergrten’<!-- /@w --> (the plural form of ‘kindergarten’) as two words
‘kinderg’<!-- /@w --> and ‘rten’<!-- /@w --> because the hyphenation code of the
umlaut a is zero by default, just like a space. There is a German
hyphenation pattern that covers ‘kinder’<!-- /@w -->, so GNU <code class="code">troff</code> finds
the hyphenation ‘kin-der’. The other two hyphenation points
(‘kin-der-gr-ten’) are missed.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ehla"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.hla</code></strong> <var class="def-var-arguments">lang</var><a class="copiable-link" href='#index-_002ehla'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-hla"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002ehla_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.hla]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ehla_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ehla-1"></a>
<a class="index-entry-id" id="index-hpf-request_002c-and-hyphenation-language"></a>
<a class="index-entry-id" id="index-hw-request_002c-and-hyphenation-language"></a>
<a class="index-entry-id" id="index-troffrc-3"></a>
<a class="index-entry-id" id="index-troffrc_002dend-1"></a>
<p>Set the hyphenation language to <var class="var">lang</var>. Hyphenation exceptions
specified with the <code class="code">hw</code> request and hyphenation patterns and
exceptions specified with the <code class="code">hpf</code> and <code class="code">hpfa</code> requests are
associated with the hyphenation language. The <code class="code">hla</code> request is
usually invoked by a localization file, which is turn loaded by the
<samp class="file">troffrc</samp> or <samp class="file">troffrc-end</samp> file; see the <code class="code">hpf</code> request
above.
</p>
<a class="index-entry-id" id="index-hyphenation-language-register-_0028_002ehla_0029"></a>
<p>The hyphenation language is available in the read-only string-valued
register ‘<samp class="samp">.hla</samp>’; it is associated with the environment
(see <a class="pxref" href="#Environments">Environments</a>).
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ehlm"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.hlm</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">n</i></span>]</var><a class="copiable-link" href='#index-_002ehlm'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-hlm"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002ehlm_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.hlm]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ehlm_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ehlm-1"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002ehlc_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.hlc]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ehlc_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ehlc"></a>
<a class="index-entry-id" id="index-explicit-hyphen-_0028_005c_0025_0029"></a>
<a class="index-entry-id" id="index-hyphen_002c-explicit-_0028_005c_0025_0029"></a>
<a class="index-entry-id" id="index-consecutive-hyphenated-lines-_0028hlm_0029"></a>
<a class="index-entry-id" id="index-lines_002c-consecutive-hyphenated-_0028hlm_0029"></a>
<a class="index-entry-id" id="index-hyphenated-lines_002c-consecutive-_0028hlm_0029"></a>
<p>Set the maximum quantity of consecutive hyphenated lines to <var class="var">n</var>. If
<var class="var">n</var> is negative, there is no maximum. If omitted, <var class="var">n</var>
is −1. This value is associated with the environment
(see <a class="pxref" href="#Environments">Environments</a>). Only lines output from a given environment
count toward the maximum associated with that environment. Hyphens
resulting from <code class="code">\%</code> are counted; explicit hyphens are not.
</p>
<a class="index-entry-id" id="index-hyphenation-consecutive-line-limit-register-_0028_002ehlm_0029"></a>
<a class="index-entry-id" id="index-hyphenation-consecutive-line-count-register-_0028_002ehlc_0029"></a>
<p>The <code class="code">.hlm</code> read-only register stores this maximum. The count of
immediately preceding consecutive hyphenated lines is available in the
read-only register <code class="code">.hlc</code>.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ehym"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.hym</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">length</i></span>]</var><a class="copiable-link" href='#index-_002ehym'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-hym"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002ehym_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.hym]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ehym_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ehym-1"></a>
<a class="index-entry-id" id="index-hyphenation-margin-_0028hym_0029"></a>
<a class="index-entry-id" id="index-margin-for-hyphenation-_0028hym_0029"></a>
<a class="index-entry-id" id="index-ad-request_002c-and-hyphenation-margin"></a>
<p>Set the (right) hyphenation margin to <var class="var">length</var>. If the adjustment
mode is not ‘<samp class="samp">b</samp>’ or ‘<samp class="samp">n</samp>’, the line is not hyphenated if it is
shorter than <var class="var">length</var>. Without an argument, the hyphenation margin
is reset to its default value, 0. The default scaling unit is ‘<samp class="samp">m</samp>’.
The hyphenation margin is associated with the environment
(see <a class="pxref" href="#Environments">Environments</a>).
</p>
<p>A negative argument resets the hyphenation margin to zero, emitting a
warning in category ‘<samp class="samp">range</samp>’.
</p>
<a class="index-entry-id" id="index-hyphenation-margin-register-_0028_002ehym_0029"></a>
<p>The hyphenation margin is available in the <code class="code">.hym</code> read-only
register.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ehys"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.hys</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">hyphenation-space</i></span>]</var><a class="copiable-link" href='#index-_002ehys'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-hys"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002ehys_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.hys]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ehys_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ehys-1"></a>
<a class="index-entry-id" id="index-hyphenation-space-_0028hys_0029"></a>
<a class="index-entry-id" id="index-hyphenation-space-adjustment-threshold"></a>
<a class="index-entry-id" id="index-ad-request_002c-and-hyphenation-space"></a>
<p>Suppress hyphenation of the line in adjustment modes ‘<samp class="samp">b</samp>’ or
‘<samp class="samp">n</samp>’ if it can be justified by adding no more than
<var class="var">hyphenation-space</var> extra space to each inter-word space. Without
an argument, the hyphenation space adjustment threshold is set to its
default value, 0. The default scaling unit is ‘<samp class="samp">m</samp>’. The
hyphenation space adjustment threshold is associated with the
environment (see <a class="pxref" href="#Environments">Environments</a>).
</p>
<p>A negative argument resets the hyphenation space adjustment threshold to
zero, emitting a warning in category ‘<samp class="samp">range</samp>’.
</p>
<a class="index-entry-id" id="index-hyphenation-space-adjustment-threshold-register-_0028_002ehys_0029"></a>
<p>The hyphenation space adjustment threshold is available in the
<code class="code">.hys</code> read-only register.
</p></dd></dl>
<hr>
</div>
<div class="section-level-extent" id="Manipulating-Spacing">
<div class="nav-panel">
<p>
Next: <a href="#Tabs-and-Fields" accesskey="n" rel="next">Tabs and Fields</a>, Previous: <a href="#Manipulating-Hyphenation" accesskey="p" rel="prev">Manipulating Hyphenation</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Manipulating-Spacing-1">5.11 Manipulating Spacing</h3>
<a class="index-entry-id" id="index-manipulating-spacing"></a>
<a class="index-entry-id" id="index-spacing_002c-manipulating"></a>
<p>A break causes the formatter to update the vertical drawing position at
which the new text baseline is aligned. You can alter this location.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002esp"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.sp</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">distance</i></span>]</var><a class="copiable-link" href='#index-_002esp'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-sp"></a>
<p>Break and move the next text baseline down by <var class="var">distance</var>, or until
springing a page location trap.<a class="footnote" id="DOCF62" href="#FOOT62"><sup>62</sup></a>
If invoked with the no-break control character, <code class="code">sp</code> moves the
pending output line’s text baseline by <var class="var">distance</var>. A negative
<var class="var">distance</var> will not reduce the position of the text baseline below
zero. Inside a diversion, any <var class="var">distance</var> argument is ignored. The
default scaling unit is ‘<samp class="samp">v</samp>’. If <var class="var">distance</var> is not specified,
‘<samp class="samp">1v</samp>’ is assumed.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.pl 5v \" Set page length to 5 vees.
.de xx
\-\-\-
. br
..
.wh 0 xx \" Set a trap at the top of the page.
foo on page \n%
.sp 2v
bar on page \n%
.sp 50v \" This will cause a page break.
baz on page \n%
.pl \n(nlu \" Truncate page to current position.
⇒ ---
⇒ foo on page 1
⇒
⇒
⇒ bar on page 1
⇒ ---
⇒ baz on page 2
</pre></div></div>
<p>You might use the following macros to set the baseline of the next
output text at a given distance from the top or the bottom of the page.
We subtract one line height (<code class="code">\n[.v]</code>) because the <code class="code">|</code>
operator moves to one vee below the page top (recall <a class="ref" href="#Numeric-Expressions">Numeric Expressions</a>).
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de y-from-top-down
. sp |\\$1-\\n[.v]u
..
.
.de y-from-bot-up
. sp |\\n[.p]u-\\$1-\\n[.v]u
..
</pre></div></div>
<p>A call to ‘<samp class="samp">.y-from-bot-up 10c</samp>’ means that the next text baseline
will be 10 cm from the bottom edge of the paper.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002els"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ls</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">count</i></span>]</var><a class="copiable-link" href='#index-_002els'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ls"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002eL_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.L]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002eL_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002eL"></a>
<a class="index-entry-id" id="index-double_002dspacing-_0028ls_0029"></a>
<p>Set the line spacing; add <var class="var">count</var>−1<!-- /@w --> blank lines after each
line of text. With no argument, GNU <code class="code">troff</code> uses the previous
value before the last <code class="code">ls</code> call. The default is <code class="code">1</code>.
</p>
<a class="index-entry-id" id="index-line-spacing-register-_0028_002eL_0029"></a>
<p>The read-only register <code class="code">.L</code> contains the current line spacing; it
is associated with the environment (see <a class="pxref" href="#Environments">Environments</a>).
</p></dd></dl>
<p>The <code class="code">ls</code> request is a coarse mechanism. See <a class="xref" href="#Changing-the-Type-Size">Changing the Type Size</a>, for the requests <code class="code">vs</code> and <code class="code">pvs</code> as alternatives to
<code class="code">ls</code>.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cx_0027spacing_0027"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\x<code class="code">'</code></code><span class="r"><i class="slanted">spacing</i></span><code class="t"><code class="code">'</code></code></strong><a class="copiable-link" href='#index-_005cx_0027spacing_0027'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cx"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002ea_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.a]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ea_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ea"></a>
<p>Sometimes, an output line requires additional vertical spacing, for
instance to allow room for a tall construct like an inline equation with
exponents or subscripts (particularly if they are iterated). The
<code class="code">\x</code> escape sequence takes a delimited measurement (like
‘<samp class="samp">\x'3p'</samp>’) to increase the vertical spacing of the pending output
line. The default scaling unit is ‘<samp class="samp">v</samp>’. If the measurement is
positive, extra vertical space is inserted below the current line; a
negative measurement adds space above. If <code class="code">\x</code> is applied to the
pending output line multiple times, the maxima of the positive and
negative adjustments are separately applied. The delimiter need not be
a neutral apostrophe; see <a class="ref" href="#Delimiters">Delimiters</a>.
</p>
<a class="index-entry-id" id="index-extra-post_002dvertical-line-space-register-_0028_002ea_0029"></a>
<p>The <code class="code">.a</code> read-only register contains the extra vertical spacing
<em class="emph">after</em> the text baseline of the most recently emitted output line.
(In other words, it is the largest positive argument to <code class="code">\x</code>
encountered on that line.) This quantity is exposed via a register
because if an output line requires this “extra post-vertical line
spacing”, and the subsequent output line requires “extra pre-vertical
line spacing” (a negative argument to <code class="code">\x</code>), then applying both
can lead to excessive spacing between the output lines. Text that is
piling high on line <var class="var">n</var> might not require (as much) extra
pre-vertical line spacing if line <var class="var">n</var>−1 carries extra
post-vertical line spacing.
</p>
<p>Use of <code class="code">\x</code> can be necessary in combination with the
bracket-building escape sequence <code class="code">\b</code>,<a class="footnote" id="DOCF63" href="#FOOT63"><sup>63</sup></a> as the following example shows.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.nf
This is a test of \[rs]b (1).
This is a test of \[rs]b (2).
This is a test of \b'xyz'\x'-1m'\x'1m' (3).
This is a test of \[rs]b (4).
This is a test of \[rs]b (5).
⇒ This is a test of \b (1).
⇒ This is a test of \b (2).
⇒ x
⇒ This is a test of y (3).
⇒ z
⇒ This is a test of \b (4).
⇒ This is a test of \b (5).
</pre></div></div>
</dd></dl>
<p>Without <code class="code">\x</code>, the backslashes on the lines marked ‘<samp class="samp">(2)</samp>’ and
‘<samp class="samp">(4)</samp>’ would be overprinted.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ens"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ns</code></strong><a class="copiable-link" href='#index-_002ens'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ns"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002ers"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.rs</code></strong><a class="copiable-link" href='#index-_002ers'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-rs"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002ens_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.ns]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ens_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ens-1"></a>
<a class="index-entry-id" id="index-sp-request_002c-and-no_002dspace-mode"></a>
<a class="index-entry-id" id="index-no_002dspace-mode-_0028ns_0029"></a>
<a class="index-entry-id" id="index-mode_002c-no_002dspace-_0028ns_0029"></a>
<a class="index-entry-id" id="index-blank-lines_002c-disabling"></a>
<a class="index-entry-id" id="index-lines_002c-blank_002c-disabling"></a>
<p>Enable <em class="dfn">no-space mode</em>. Vertical spacing, whether by <code class="code">sp</code>
requests or blank input lines, is disabled. The <code class="code">bp</code> request to
advance to the next page is also disabled, unless it is accompanied by a
page number (see <a class="pxref" href="#Page-Control">Page Control</a>). No-space mode ends automatically
when text<a class="footnote" id="DOCF64" href="#FOOT64"><sup>64</sup></a> is formatted for output <a class="footnote" id="DOCF65" href="#FOOT65"><sup>65</sup></a> or the <code class="code">rs</code> request is invoked, which ends
no-space mode. The read-only register <code class="code">.ns</code> interpolates a Boolean
value indicating the enablement of no-space mode.
</p>
<p>A paragraphing macro might ordinarily insert vertical space to separate
paragraphs. A section heading macro could invoke <code class="code">ns</code> to suppress
this spacing for the first paragraph in a section.
</p></dd></dl>
<hr>
</div>
<div class="section-level-extent" id="Tabs-and-Fields">
<div class="nav-panel">
<p>
Next: <a href="#Character-Translations" accesskey="n" rel="next">Character Translations</a>, Previous: <a href="#Manipulating-Spacing" accesskey="p" rel="prev">Manipulating Spacing</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Tabs-and-Fields-1">5.12 Tabs and Fields</h3>
<a class="index-entry-id" id="index-tabs_002c-and-fields"></a>
<a class="index-entry-id" id="index-fields_002c-and-tabs"></a>
<a class="index-entry-id" id="index-tab-character-encoding"></a>
<p>A tab character (<abbr class="acronym">ISO</abbr> code point 9, <abbr class="acronym">EBCDIC</abbr>
code point 5) causes a horizontal movement to the next tab stop, if
any.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005ct-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\t</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005ct-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005ct"></a>
<a class="index-entry-id" id="index-tab-character_002c-non_002dinterpreted-_0028_005ct_0029"></a>
<a class="index-entry-id" id="index-character_002c-tab_002c-non_002dinterpreted-_0028_005ct_0029"></a>
<a class="index-entry-id" id="index-_005ct_002c-and-copy-mode"></a>
<a class="index-entry-id" id="index-copy-mode_002c-and-_005ct"></a>
<a class="index-entry-id" id="index-mode_002c-copy_002c-and-_005ct"></a>
<p>Interpolate a tab in copy mode; see <a class="ref" href="#Copy-Mode">Copy Mode</a>.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eta"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ta</code></strong> <var class="def-var-arguments">[[<span class="r"><i class="slanted">n1</i></span> <span class="r"><i class="slanted">n2</i></span> … <span class="r"><i class="slanted">nn</i></span> ]<code class="t">T</code> <span class="r"><i class="slanted">r1</i></span> <span class="r"><i class="slanted">r2</i></span> … <span class="r"><i class="slanted">rn</i></span>]</var><a class="copiable-link" href='#index-_002eta'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ta"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002etabs_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.tabs]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002etabs_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002etabs"></a>
<p>Change tab stop positions. This request takes a series of tab
specifiers as arguments (optionally divided into two groups with the
letter ‘<samp class="samp">T</samp>’) that indicate where each tab stop is to be, overriding
any previous settings. The default scaling unit is ‘<samp class="samp">m</samp>’. Invoking
<code class="code">ta</code> without an argument removes all tab stops.
<a class="index-entry-id" id="index-default-tab-stops"></a>
<a class="index-entry-id" id="index-tab-stops_002c-default"></a>
GNU <code class="code">troff</code>’s startup value is ‘<samp class="samp">T 0.5i</samp>’<!-- /@w -->.
</p>
<p>Tab stops can be specified absolutely—as distances from the left
margin. The following example sets six tab stops, one every inch.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ta 1i 2i 3i 4i 5i 6i
</pre></div></div>
<p>Tab stops can also be specified using a leading ‘<samp class="samp">+</samp>’, which means
that the specified tab stop is set relative to the previous tab stop.
For example, the following is equivalent to the previous example.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ta 1i +1i +1i +1i +1i +1i
</pre></div></div>
<p>GNU <code class="code">troff</code> supports an extended syntax to specify repeating tab
stops. These stops appear after a ‘<samp class="samp">T</samp>’ argument. Their values are
always taken as distances relative to the previous tab stop. This is
the idiomatic way to specify tab stops at equal intervals in
<code class="code">groff</code>. The following is, yet again, the same as the previous
examples. It does more, in fact, since it defines an infinite number of
tab stops at one-inch intervals.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ta T 1i
</pre></div></div>
<p>Now we are ready to interpret the full syntax given above. The
<code class="code">ta</code> request sets tabs at positions <var class="var">n1</var>, <var class="var">n2</var>, …,
<var class="var">nn</var>, then at <var class="var">nn</var>+<var class="var">r1</var>, <var class="var">nn</var>+<var class="var">r2</var>, …,
<var class="var">nn</var>+<var class="var">rn</var>, then at <var class="var">nn</var>+<var class="var">rn</var>+<var class="var">r1</var>,
<var class="var">nn</var>+<var class="var">rn</var>+<var class="var">r2</var>, …, <var class="var">nn</var>+<var class="var">rn</var>+<var class="var">rn</var>, and so
on.
</p>
<p>For example, ‘<samp class="samp">4c +6c T 3c 5c 2c</samp>’ is equivalent to ‘<samp class="samp">4c 10c 13c
18c 20c 23c 28c 30c …</samp>’.
</p>
<p>Text written to a tab column (i.e., between two tab stops, or between a
tab stop and an output line boundary) may be aligned to the right or
left, or centered in the column. This alignment is determined by
appending ‘<samp class="samp">R</samp>’, ‘<samp class="samp">L</samp>’, or ‘<samp class="samp">C</samp>’ to the tab specifier. The
default is ‘<samp class="samp">L</samp>’.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ta 1i 2iC 3iR
</pre></div></div>
<p>The beginning of an output line is not a tab stop; the text that begins
an output line is placed according to the configured alignment and
indentation; see <a class="ref" href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a> and <a class="ref" href="#Line-Layout">Line Layout</a>.
</p>
<p>A tab stop is converted into a non-breakable horizontal movement that
cannot be adjusted.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ll 2i
.ds foo a\tb\tc
.ta T 1i
\*[foo]
error→ warning: cannot break line
⇒ a b c
</pre></div></div>
<p>The above creates a single output line that is a bit longer than two
inches (we use a string to show exactly where the tab stops are).
Now consider the following.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ll 2i
.ds bar a\tb c\td
.ta T 1i
\*[bar]
error→ warning: cannot adjust line
⇒ a b
⇒ c d
</pre></div></div>
<p>GNU <code class="code">troff</code> first converts the line’s tab stops into unbreakable
horizontal movements, then breaks after ‘<samp class="samp">b</samp>’. This usually isn’t
what you want.
</p>
<p>Superfluous tab characters—those that do not correspond to a tab
stop—are ignored except for the first, which delimits the characters
belonging to the last tab stop for right-alignment or centering.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ds Z foo\tbar\tbaz
.ds ZZ foo\tbar\tbazqux
.ds ZZZ foo\tbar\tbaz\tqux
.ta 2i 4iR
\*[Z]
.br
\*[ZZ]
.br
\*[ZZZ]
.br
⇒ foo bar baz
⇒ foo bar bazqux
⇒ foo bar bazqux
</pre></div></div>
<p>The first line right-aligns “baz” within the second tab stop. The
second line right-aligns “bazqux” within it. The third line
right-aligns only “baz” because of the additional tab character, which
marks the end of the text occupying the last tab stop defined.
</p>
<p>Tab stops are associated with the environment (see <a class="pxref" href="#Environments">Environments</a>).
</p>
<a class="index-entry-id" id="index-tab-stop-settings-register-_0028_002etabs_0029"></a>
<a class="index-entry-id" id="index-_002eS-register_002c-Plan-9-alias-for-_002etabs"></a>
<a class="index-entry-id" id="index-_002etabs-register_002c-Plan-9-alias-_0028_002eS_0029"></a>
<p>The read-only register <code class="code">.tabs</code> contains a string
representation of the current tab settings suitable for use as an
argument to the <code class="code">ta</code> request.<a class="footnote" id="DOCF66" href="#FOOT66"><sup>66</sup></a>
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ds tab-string \n[.tabs]
\*[tab-string]
⇒ T120u
</pre></div></div>
</dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002etc"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.tc</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">c</i></span>]</var><a class="copiable-link" href='#index-_002etc'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-tc"></a>
<a class="index-entry-id" id="index-tab-repetition-character-_0028tc_0029"></a>
<a class="index-entry-id" id="index-character_002c-tab-repetition-_0028tc_0029"></a>
<a class="index-entry-id" id="index-glyph_002c-tab-repetition-_0028tc_0029"></a>
<p>Set the tab repetition character to the ordinary or special character
<var class="var">c</var>; normally, no glyph is written when moving to a tab stop (and
some output devices may output space characters to achieve this motion).
A <em class="dfn">tab repetition character</em> causes the formatter to write as many
instances of <var class="var">c</var> as are necessary to occupy the interval from the
horizontal drawing position to the next tab stop. With no argument, GNU
<code class="code">troff</code> reverts to the default behavior. The tab repetition
character is associated with the environment (see <a class="pxref" href="#Environments">Environments</a>).
Only a single character of <var class="var">c</var> is recognized; any excess is ignored.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002elinetabs"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.linetabs</code></strong> <var class="def-var-arguments">n</var><a class="copiable-link" href='#index-_002elinetabs'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-linetabs"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002elinetabs_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.linetabs]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002elinetabs_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002elinetabs-1"></a>
<a class="index-entry-id" id="index-tab_002c-line_002dtabs-mode"></a>
<a class="index-entry-id" id="index-line_002dtabs-mode"></a>
<a class="index-entry-id" id="index-mode_002c-line_002dtabs"></a>
<p>If <var class="var">n</var> is missing or non-zero, activate <em class="dfn">line-tabs</em>; deactivate
it otherwise (the default). Active line-tabs cause GNU <code class="code">troff</code>
to compute tab distances relative to the start of the output line
instead of the input line.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de Tabs
. ds x a\t\c
. ds y b\t\c
. ds z c
. ta 1i 3i
\\*x
\\*y
\\*z
..
.Tabs
.br
.linetabs
.Tabs
⇒ a b c
⇒ a b c
</pre></div></div>
<p>Line-tabs activation is associated with the environment
(see <a class="pxref" href="#Environments">Environments</a>). The read-only register <code class="code">.linetabs</code>
interpolates 1 if line-tabs are active, and 0 otherwise.
</p></dd></dl>
<ul class="mini-toc">
<li><a href="#Leaders" accesskey="1">Leaders</a></li>
<li><a href="#Fields" accesskey="2">Fields</a></li>
</ul>
<hr>
<div class="subsection-level-extent" id="Leaders">
<div class="nav-panel">
<p>
Next: <a href="#Fields" accesskey="n" rel="next">Fields</a>, Previous: <a href="#Tabs-and-Fields" accesskey="p" rel="prev">Tabs and Fields</a>, Up: <a href="#Tabs-and-Fields" accesskey="u" rel="up">Tabs and Fields</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Leaders-1">5.12.1 Leaders</h4>
<a class="index-entry-id" id="index-leaders"></a>
<p>Sometimes it is desirable to fill a tab stop with a given glyph,
but also use tab stops normally on the same output line. An example is
a table of contents entry that uses dots to bridge the entry name with
its page number, which is itself aligned between tab stops. The
<code class="code">roff</code> language provides <em class="dfn">leaders</em> for this
purpose.<a class="footnote" id="DOCF67" href="#FOOT67"><sup>67</sup></a>
</p>
<a class="index-entry-id" id="index-leader-character-1"></a>
<p>A leader character (<abbr class="acronym">ISO</abbr> and <abbr class="acronym">EBCDIC</abbr> code
point 1, also known as <abbr class="acronym">SOH</abbr> or “start of heading”),
behaves similarly to a tab character: it moves to the next tab stop.
The difference is that for this movement, the default fill character is
a period ‘<samp class="samp">.</samp>’.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005ca-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\a</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005ca-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005ca"></a>
<a class="index-entry-id" id="index-leader-character_002c-non_002dinterpreted-_0028_005ca_0029"></a>
<a class="index-entry-id" id="index-character_002c-leader_002c-non_002dinterpreted-_0028_005ca_0029"></a>
<a class="index-entry-id" id="index-_005ca_002c-and-copy-mode"></a>
<a class="index-entry-id" id="index-copy-mode_002c-and-_005ca"></a>
<a class="index-entry-id" id="index-mode_002c-copy_002c-and-_005ca"></a>
<p>Interpolate a leader in copy mode; see <a class="ref" href="#Copy-Mode">Copy Mode</a>.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002elc"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.lc</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">c</i></span>]</var><a class="copiable-link" href='#index-_002elc'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-lc"></a>
<a class="index-entry-id" id="index-leader-repetition-character-_0028lc_0029"></a>
<a class="index-entry-id" id="index-character_002c-leader-repetition-_0028lc_0029"></a>
<a class="index-entry-id" id="index-glyph_002c-leader-repetition-_0028lc_0029"></a>
<p>Set the leader repetition character to the ordinary or special character
<var class="var">c</var>. Recall <a class="ref" href="#Tabs-and-Leaders">Tabs and Leaders</a>: when encountering a leader
character in the input, the formatter writes as many dots ‘<samp class="samp">.</samp>’ as
are necessary until
reaching the next tab stop; this is the <em class="dfn">leader definition
character</em>. Omitting <var class="var">c</var> unsets the leader
character. With no argument, GNU <code class="code">troff</code> treats leaders the same
as tabs. The leader repetition character is associated with the
environment (see <a class="pxref" href="#Environments">Environments</a>). Only a single <var class="var">c</var> is
recognized; any excess is ignored.
</p></dd></dl>
<a class="index-entry-id" id="index-table-of-contents-1"></a>
<a class="index-entry-id" id="index-contents_002c-table-of-1"></a>
<p>A table of contents, for example, may define tab stops after a section
number, a title, and a gap to be filled with leader dots. The page
number follows the leader, after a right-aligned final tab stop wide
enough to house the largest page number occurring in the document.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ds entry1 19.\tThe Prophet\a\t98
.ds entry2 20.\tAll Astir\a\t101
.ta .5i 4.5i +.5iR
.nf
\*[entry1]
\*[entry2]
⇒ 19. The Prophet............................. 98
⇒ 20. All Astir............................... 101
</pre></div></div>
<hr>
</div>
<div class="subsection-level-extent" id="Fields">
<div class="nav-panel">
<p>
Previous: <a href="#Leaders" accesskey="p" rel="prev">Leaders</a>, Up: <a href="#Tabs-and-Fields" accesskey="u" rel="up">Tabs and Fields</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Fields-1">5.12.2 Fields</h4>
<a class="index-entry-id" id="index-fields"></a>
<a class="index-entry-id" id="index-field-delimiting-character-_0028fc_0029"></a>
<a class="index-entry-id" id="index-delimiting-character_002c-for-fields-_0028fc_0029"></a>
<a class="index-entry-id" id="index-character_002c-field-delimiting-_0028fc_0029"></a>
<a class="index-entry-id" id="index-field-padding-character-_0028fc_0029"></a>
<a class="index-entry-id" id="index-padding-character_002c-for-fields-_0028fc_0029"></a>
<a class="index-entry-id" id="index-character_002c-field-padding-_0028fc_0029"></a>
<p><em class="dfn">Fields</em> are a more general way of laying out tabular data. A field
is defined as the data between a pair of <em class="dfn">delimiting characters</em>.
It contains substrings that are separated by <em class="dfn">padding characters</em>.
The width of a field is the distance on the <em class="emph">input</em> line from the
position where the field starts to the next tab stop. A padding
character inserts an adjustable space similar to TeX’s <code class="code">\hss</code>
command (thus it can even be negative) to make the sum of all substring
lengths plus the adjustable space equal to the field width. If more
than one padding character is inserted, the available space is evenly
distributed among them.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002efc"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.fc</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">delim-char</i></span> [<span class="r"><i class="slanted">padding-char</i></span>]]</var><a class="copiable-link" href='#index-_002efc'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-fc"></a>
<p>Define a delimiting and a padding character for fields. If the latter
is missing, the padding character defaults to a space character. If
there is no argument at all, the field mechanism is disabled (which is
the default). In contrast to, e.g., the tab repetition character,
delimiting and padding characters are <em class="emph">not</em> associated with the
environment (see <a class="pxref" href="#Environments">Environments</a>).
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.fc # ^
.ta T 3i
#foo^bar^smurf#
.br
#foo^^bar^smurf#
⇒ foo bar smurf
⇒ foo bar smurf
</pre></div></div>
</dd></dl>
<hr>
</div>
</div>
<div class="section-level-extent" id="Character-Translations">
<div class="nav-panel">
<p>
Next: <a href="#troff-and-nroff-Modes" accesskey="n" rel="next"><code class="code">troff</code> and <code class="code">nroff</code> Modes</a>, Previous: <a href="#Tabs-and-Fields" accesskey="p" rel="prev">Tabs and Fields</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Character-Translations-1">5.13 Character Translations</h3>
<a class="index-entry-id" id="index-character-translations"></a>
<a class="index-entry-id" id="index-translations-of-characters"></a>
<p>A <em class="dfn">translation</em> is a mapping of an input character to an output
glyph. The mapping occurs at output time, i.e., the input character
gets assigned the metric information of the mapped output character
right before input tokens are converted to nodes (see <a class="pxref" href="#Gtroff-Internals"><code class="code">gtroff</code> Internals</a>, for more on this process).
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002etr"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.tr</code></strong> <var class="def-var-arguments"><span class="r"><i class="slanted">a</i></span><span class="r"><i class="slanted">b</i></span><span class="r"><i class="slanted">c</i></span><span class="r"><i class="slanted">d</i></span>…</var><a class="copiable-link" href='#index-_002etr'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-tr"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002etrin"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.trin</code></strong> <var class="def-var-arguments"><span class="r"><i class="slanted">a</i></span><span class="r"><i class="slanted">b</i></span><span class="r"><i class="slanted">c</i></span><span class="r"><i class="slanted">d</i></span>…</var><a class="copiable-link" href='#index-_002etrin'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-trin"></a>
<p>Translate character <var class="var">a</var> to glyph <var class="var">b</var>, character <var class="var">c</var> to
glyph <var class="var">d</var>, and so on. If there is an odd number of characters
in the argument, the last one is translated to a fixed-width space (the
same one obtained by the <code class="code">\<kbd class="key">SP</kbd></code> escape sequence).
</p>
<p>The <code class="code">trin</code> request is identical to <code class="code">tr</code>, but when you unformat
a diversion with <code class="code">asciify</code> it ignores the translation.
See <a class="xref" href="#Diversions">Diversions</a>, for details about the <code class="code">asciify</code> request.
</p>
<p>Some notes:
</p>
<ul class="itemize mark-bullet">
<li><a class="index-entry-id" id="index-_005c_0028_002c-and-translations"></a>
<a class="index-entry-id" id="index-_005c_005b_002c-and-translations"></a>
<a class="index-entry-id" id="index-_005c_0027_002c-and-translations"></a>
<a class="index-entry-id" id="index-_005c_0060_002c-and-translations"></a>
<a class="index-entry-id" id="index-_005c_002d_002c-and-translations"></a>
<a class="index-entry-id" id="index-_005c_005f_002c-and-translations"></a>
<a class="index-entry-id" id="index-_005cC_002c-and-translations"></a>
<a class="index-entry-id" id="index-_005cN_002c-and-translations"></a>
<a class="index-entry-id" id="index-char-request_002c-and-translations"></a>
<a class="index-entry-id" id="index-special-characters-1"></a>
<a class="index-entry-id" id="index-character_002c-special"></a>
<a class="index-entry-id" id="index-numbered-glyph-_0028_005cN_0029"></a>
<a class="index-entry-id" id="index-glyph_002c-numbered-_0028_005cN_0029"></a>
Special characters (<code class="code">\(<var class="var">xx</var></code>, <code class="code">\[<var class="var">xxx</var>]</code>,
<code class="code">\C'<var class="var">xxx</var>'</code>, <code class="code">\'</code>, <code class="code">\`</code>, <code class="code">\-</code>, <code class="code">\_</code>),
glyphs defined with the <code class="code">char</code> request, and numbered glyphs
(<code class="code">\N'<var class="var">xxx</var>'</code>) can be translated also.
</li><li><a class="index-entry-id" id="index-_005ce_002c-and-translations"></a>
The <code class="code">\e</code> escape can be translated also.
</li><li><a class="index-entry-id" id="index-_005c_0025_002c-and-translations"></a>
<a class="index-entry-id" id="index-_005c_007e_002c-and-translations"></a>
Characters can be mapped onto the <code class="code">\%</code> and <code class="code">\~</code> escape
sequences (but <code class="code">\%</code> and <code class="code">\~</code> can’t be mapped onto another
glyph).
</li><li><a class="index-entry-id" id="index-backspace-character_002c-and-translations"></a>
<a class="index-entry-id" id="index-character_002c-backspace_002c-and-translations"></a>
<a class="index-entry-id" id="index-leader-character_002c-and-translations"></a>
<a class="index-entry-id" id="index-character_002c-leader_002c-and-translations"></a>
<a class="index-entry-id" id="index-newline-character_002c-and-translations"></a>
<a class="index-entry-id" id="index-character_002c-newline_002c-and-translations"></a>
<a class="index-entry-id" id="index-tab-character_002c-and-translations"></a>
<a class="index-entry-id" id="index-character_002c-tab_002c-and-translations"></a>
<a class="index-entry-id" id="index-_005ca_002c-and-translations"></a>
<a class="index-entry-id" id="index-_005ct_002c-and-translations"></a>
The following characters can’t be translated: space (with one exception,
see below), backspace, newline, leader (and <code class="code">\a</code>), tab (and
<code class="code">\t</code>).
</li><li><a class="index-entry-id" id="index-shc-request_002c-and-translations"></a>
Translations are not considered for finding the soft hyphen character
set with the <code class="code">shc</code> request.
</li><li><a class="index-entry-id" id="index-_005c_0026_002c-and-translations"></a>
The pair ‘<samp class="samp"><var class="var">c</var>\&</samp>’ (an arbitrary character <var class="var">c</var> followed
by the dummy character) maps this character to “nothing”.
<div class="example">
<div class="group"><pre class="example-preformatted">.tr a\&
foo bar
⇒ foo br
</pre></div></div>
<p>Even the space character can be mapped to the dummy character.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.tr aa \&
foo bar
⇒ foobar
</pre></div></div>
<p>As shown in the example, the space character can’t be the first
character/glyph pair as an argument of <code class="code">tr</code>. Additionally, it is
not possible to map the space character to any other glyph; requests
like ‘<samp class="samp">.tr aa x</samp>’<!-- /@w --> undo ‘<samp class="samp">.tr aa \&</samp>’<!-- /@w --> instead.
</p>
<p>If justification is active, lines are justified in spite of the ‘empty’
space character (but there is no minimal distance, i.e., the space
character, between words).
</p>
</li><li>After an output glyph has been constructed (this happens at the moment
immediately before the glyph is appended to an output glyph list, either
by direct output, in a macro, diversion, or string), it is no longer
affected by <code class="code">tr</code>.
</li><li>Translating character to glyphs where one of them or both are undefined
is possible also; <code class="code">tr</code> does not check whether the elements of its
argument exist.
<p>See <a class="xref" href="#Gtroff-Internals"><code class="code">gtroff</code> Internals</a>.
</p>
</li><li>Without an argument, the <code class="code">tr</code> request is ignored.
</li></ul>
</dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002etrnt"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.trnt</code></strong> <var class="def-var-arguments"><span class="r"><i class="slanted">a</i></span><span class="r"><i class="slanted">b</i></span><span class="r"><i class="slanted">c</i></span><span class="r"><i class="slanted">d</i></span>…</var><a class="copiable-link" href='#index-_002etrnt'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-trnt"></a>
<a class="index-entry-id" id="index-_005c_0021_002c-and-trnt"></a>
<p><code class="code">trnt</code> is the same as the <code class="code">tr</code> request except that the
translations do not apply to text that is transparently throughput into
a diversion with <code class="code">\!</code>. See <a class="xref" href="#Diversions">Diversions</a>.
</p>
<p>For example,
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.tr ab
.di x
\!.tm a
.di
.x
</pre></div></div>
<p>prints ‘<samp class="samp">b</samp>’ to the standard error stream; if <code class="code">trnt</code> is used
instead of <code class="code">tr</code> it prints ‘<samp class="samp">a</samp>’.
</p></dd></dl>
<hr>
</div>
<div class="section-level-extent" id="troff-and-nroff-Modes">
<div class="nav-panel">
<p>
Next: <a href="#Line-Layout" accesskey="n" rel="next">Line Layout</a>, Previous: <a href="#Character-Translations" accesskey="p" rel="prev">Character Translations</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="troff-and-nroff-Modes-1">5.14 <code class="code">troff</code> and <code class="code">nroff</code> Modes</h3>
<a class="index-entry-id" id="index-troff-mode"></a>
<a class="index-entry-id" id="index-mode_002c-troff"></a>
<a class="index-entry-id" id="index-nroff-mode"></a>
<a class="index-entry-id" id="index-mode_002c-nroff"></a>
<p>Historically, <code class="code">nroff</code> and <code class="code">troff</code> were two separate programs;
the former for terminal output, the latter for typesetters. GNU
<code class="code">troff</code> merges both functions into one executable<a class="footnote" id="DOCF68" href="#FOOT68"><sup>68</sup></a> that sends its output to a
device driver (<code class="code">grotty</code> for terminal devices, <code class="code">grops</code> for
PostScript, and so on) which interprets this intermediate output format.
When discussing <abbr class="acronym">AT&T</abbr> <code class="code">troff</code>, it makes sense to talk
about <em class="dfn"><code class="code">nroff</code> mode</em> and <em class="dfn"><code class="code">troff</code> mode</em> since the
differences are hard-coded. GNU <code class="code">troff</code> takes information from
device and font description files without handling requests specially if
a terminal output device is used, so such a strong distinction is
unnecessary.
</p>
<p>Usually, a macro package can be used with all output devices.
Nevertheless, it is sometimes necessary to make a distinction between
terminal and non-terminal devices: GNU <code class="code">troff</code> provides two
built-in conditions ‘<samp class="samp">n</samp>’ and ‘<samp class="samp">t</samp>’ for the <code class="code">if</code>, <code class="code">ie</code>,
and <code class="code">while</code> requests to decide whether GNU <code class="code">troff</code> shall
behave like <code class="code">nroff</code> or like <code class="code">troff</code>.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002etroff"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.troff</code></strong><a class="copiable-link" href='#index-_002etroff'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-troff"></a>
<a class="index-entry-id" id="index-troffrc-4"></a>
<a class="index-entry-id" id="index-troffrc_002dend-2"></a>
<p>Make the ‘<samp class="samp">t</samp>’ built-in condition true (and the ‘<samp class="samp">n</samp>’ built-in
condition false) for <code class="code">if</code>, <code class="code">ie</code>, and <code class="code">while</code> conditional
requests. This is the default if GNU <code class="code">troff</code> (<em class="emph">not</em>
<code class="code">groff</code>) is started with the <samp class="option">-R</samp> switch to avoid loading of
the startup files <samp class="file">troffrc</samp> and <samp class="file">troffrc-end</samp>. Without
<samp class="option">-R</samp>, GNU <code class="code">troff</code> stays in <code class="code">troff</code> mode if the output
device is not a terminal (e.g., ‘ps’).
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002enroff"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.nroff</code></strong><a class="copiable-link" href='#index-_002enroff'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-nroff"></a>
<a class="index-entry-id" id="index-tty_002etmac"></a>
<p>Make the ‘<samp class="samp">n</samp>’ built-in condition true (and the ‘<samp class="samp">t</samp>’ built-in
condition false) for <code class="code">if</code>, <code class="code">ie</code>, and <code class="code">while</code> conditional
requests. This is the default if GNU <code class="code">troff</code> uses a terminal
output device; the code for switching to <code class="code">nroff</code> mode is in the
file <samp class="file">tty.tmac</samp>, which is loaded by the startup file
<code class="code">troffrc</code>.
</p></dd></dl>
<p>See <a class="xref" href="#Conditionals-and-Loops">Conditionals and Loops</a>, for more details on built-in conditions.
</p>
<hr>
</div>
<div class="section-level-extent" id="Line-Layout">
<div class="nav-panel">
<p>
Next: <a href="#Line-Continuation" accesskey="n" rel="next">Line Continuation</a>, Previous: <a href="#troff-and-nroff-Modes" accesskey="p" rel="prev"><code class="code">troff</code> and <code class="code">nroff</code> Modes</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Line-Layout-1">5.15 Line Layout</h3>
<a class="index-entry-id" id="index-line-layout"></a>
<a class="index-entry-id" id="index-layout_002c-line"></a>
<a class="index-entry-id" id="index-dimensions_002c-line"></a>
<a class="index-entry-id" id="index-line-dimensions"></a>
<p>The following drawing shows the dimensions that <code class="code">gtroff</code> uses for
placing a line of output onto the page. They are labeled with the
request that manipulates each dimension.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted"> -->| in |<--
|<-----------ll------------>|
+----+----+----------------------+----+
| : : : |
+----+----+----------------------+----+
-->| po |<--
|<--------paper width---------------->|
</pre></div></div>
<p>These dimensions are:
</p>
<dl class="ftable">
<dt id='index-po'><span><code class="code">po</code><a class="copiable-link" href='#index-po'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-left-margin-_0028po_0029"></a>
<a class="index-entry-id" id="index-margin_002c-left-_0028po_0029"></a>
<a class="index-entry-id" id="index-page-offset-_0028po_0029"></a>
<a class="index-entry-id" id="index-offset_002c-page-_0028po_0029"></a>
<p><em class="dfn">Page offset</em>—this is the leftmost position of text on the final
output, defining the <em class="dfn">left margin</em>.
</p>
</dd>
<dt id='index-in'><span><code class="code">in</code><a class="copiable-link" href='#index-in'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-indentation-_0028in_0029"></a>
<a class="index-entry-id" id="index-line-indentation-_0028in_0029"></a>
<p><em class="dfn">Indentation</em>—this is the distance from the left margin where
text is printed.
</p>
</dd>
<dt id='index-ll'><span><code class="code">ll</code><a class="copiable-link" href='#index-ll'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-line-length-_0028ll_0029"></a>
<a class="index-entry-id" id="index-length-of-line-_0028ll_0029"></a>
<p><em class="dfn">Line length</em>—this is the distance from the left margin to right
margin.
</p></dd>
</dl>
<a class="index-entry-id" id="index-margin_002c-right"></a>
<a class="index-entry-id" id="index-right-margin"></a>
<p>The right margin is not explicitly configured; the combination of page
offset and line length provides the information necessary to derive it.
</p>
<p>A simple demonstration:
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ll 3i
This is text without indentation.
The line length has been set to 3\~inches.
.in +.5i
.ll -.5i
Now the left and right margins are both increased.
.in
.ll
Calling .in and .ll without parameters restores
the previous values.
</pre></div></div>
<div class="example">
<div class="group"><pre class="example-preformatted"> ⇒ This is text without indenta-
⇒ tion. The line length has
⇒ been set to 3 inches.
⇒ Now the left and
⇒ right margins are
⇒ both increased.
⇒ Calling .in and .ll without
⇒ parameters restores the previ-
⇒ ous values.
</pre></div></div>
<dl class="first-deffn">
<dt class="deffn" id="index-_002epo"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.po</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">offset</i></span>]</var><a class="copiable-link" href='#index-_002epo'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-po-1"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002epo-1"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.po</code></strong> <var class="def-var-arguments"><code class="t">+</code><span class="r"><i class="slanted">offset</i></span></var><a class="copiable-link" href='#index-_002epo-1'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_002epo-2"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.po</code></strong> <var class="def-var-arguments"><code class="t">-</code><span class="r"><i class="slanted">offset</i></span></var><a class="copiable-link" href='#index-_002epo-2'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002eo_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.o]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002eo_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002eo"></a>
<a class="index-entry-id" id="index-tty_002etmac-1"></a>
<p>Set page offset to <var class="var">offset</var> (or increment or decrement its current
value by <var class="var">offset</var>). If invoked without an argument, the page offset
is restored to the value before the previous <code class="code">po</code> request.
This request does not cause a break; the page offset in effect when an
output line is broken prevails (see <a class="pxref" href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a>). The initial value is 1<span class="dmn">i</span> and the default scaling
unit is ‘<samp class="samp">m</samp>’. On terminal devices, the page offset is set to zero
by a driver-specific macro file, <samp class="file">tty.tmac</samp>. The current page
offset can be found in the read-only register ‘<samp class="samp">.o</samp>’.
<a class="index-entry-id" id="index-CSTR-_002354-errata-1"></a>
<a class="index-entry-id" id="index-CSTR-_002354-erratum_002c-po-request"></a>
This request is incorrectly documented in the <abbr class="acronym">AT&T</abbr>
<code class="code">troff</code> manual as using a default scaling unit of ‘<samp class="samp">v</samp>’.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.po 3i
\n[.o]
⇒ 720
.po -1i
\n[.o]
⇒ 480
.po
\n[.o]
⇒ 720
</pre></div></div>
</dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ein"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.in</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">indent</i></span>]</var><a class="copiable-link" href='#index-_002ein'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-in-1"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002ein-1"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.in</code></strong> <var class="def-var-arguments"><code class="t">+</code><span class="r"><i class="slanted">indent</i></span></var><a class="copiable-link" href='#index-_002ein-1'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_002ein-2"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.in</code></strong> <var class="def-var-arguments"><code class="t">-</code><span class="r"><i class="slanted">indent</i></span></var><a class="copiable-link" href='#index-_002ein-2'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002ei_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.i]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ei_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ei"></a>
<p>Set indentation to <var class="var">indent</var> (or increment or decrement the current
value by <var class="var">indent</var>). This request causes a break. Initially, there
is no indentation.
</p>
<p>If <code class="code">in</code> is called without an argument, the indentation is reset to
the previous value before the last call to <code class="code">in</code>. The default
scaling unit is ‘<samp class="samp">m</samp>’.
</p>
<p>If a negative indentation value is specified (which is not allowed),
<code class="code">gtroff</code> emits a warning in category ‘<samp class="samp">range</samp>’ and sets the
indentation to zero.
</p>
<p>The effect of <code class="code">in</code> is delayed until a partially collected line (if
it exists) is output. A temporary indentation value is reset to zero
also.
</p>
<p>The current indentation (as set by <code class="code">in</code>) can be found in the
read-only register ‘<samp class="samp">.i</samp>’. The indentation is associated with the
environment (see <a class="pxref" href="#Environments">Environments</a>).
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eti"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ti</code></strong> <var class="def-var-arguments">offset</var><a class="copiable-link" href='#index-_002eti'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ti"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002eti-1"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ti</code></strong> <var class="def-var-arguments"><code class="t">+</code><span class="r"><i class="slanted">offset</i></span></var><a class="copiable-link" href='#index-_002eti-1'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_002eti-2"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ti</code></strong> <var class="def-var-arguments"><code class="t">-</code><span class="r"><i class="slanted">offset</i></span></var><a class="copiable-link" href='#index-_002eti-2'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002ein_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.in]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ein_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ein-3"></a>
<p>Temporarily indent the next output line by <var class="var">offset</var>. If an
increment or decrement value is specified, adjust the temporary
indentation relative to the value set by the <code class="code">in</code> request.
</p>
<p>This request causes a break; its value is associated with the
environment (see <a class="pxref" href="#Environments">Environments</a>). The default scaling unit is
‘<samp class="samp">m</samp>’. A call of <code class="code">ti</code> without an argument is ignored.
</p>
<p>If the total indentation value is negative (which is not allowed),
<code class="code">gtroff</code> emits a warning in category ‘<samp class="samp">range</samp>’ and sets the
temporary indentation to zero. ‘Total indentation’ is either
<var class="var">offset</var> if specified as an absolute value, or the temporary plus
normal indentation, if <var class="var">offset</var> is given as a relative value.
</p>
<p>The effect of <code class="code">ti</code> is delayed until a partially collected line (if
it exists) is output.
</p>
<p>The read-only register <code class="code">.in</code> is the indentation that applies to the
current output line.
</p>
<p>The difference between <code class="code">.i</code> and <code class="code">.in</code> is that the latter takes
into account whether a partially collected line still uses the old
indentation value or a temporary indentation value is active.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ell"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ll</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">length</i></span>]</var><a class="copiable-link" href='#index-_002ell'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ll-1"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002ell-1"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ll</code></strong> <var class="def-var-arguments"><code class="t">+</code><span class="r"><i class="slanted">length</i></span></var><a class="copiable-link" href='#index-_002ell-1'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_002ell-2"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ll</code></strong> <var class="def-var-arguments"><code class="t">-</code><span class="r"><i class="slanted">length</i></span></var><a class="copiable-link" href='#index-_002ell-2'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002el_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.l]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002el_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002el"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002ell_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.ll]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ell_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ell-3"></a>
<p>Set the line length to <var class="var">length</var> (or increment or decrement the
current value by <var class="var">length</var>). Initially, the line length is set to
6.5<span class="dmn">i</span>. The effect of <code class="code">ll</code> is delayed until a partially
collected line (if it exists) is output. The default scaling unit is
‘<samp class="samp">m</samp>’.
</p>
<p>If <code class="code">ll</code> is called without an argument, the line length is reset to
the previous value before the last call to <code class="code">ll</code>. If a negative
line length is specified (which is not allowed), <code class="code">gtroff</code> emits a
warning in category ‘<samp class="samp">range</samp>’ and sets the line length to zero. The
line length is associated with the environment (see <a class="pxref" href="#Environments">Environments</a>).
</p>
<a class="index-entry-id" id="index-line-length-register-_0028_002el_0029"></a>
<p>The current line length (as set by <code class="code">ll</code>) can be found in the
read-only register ‘<samp class="samp">.l</samp>’. The read-only register <code class="code">.ll</code> is the
line length that applies to the current output line.
</p>
<p>Similar to <code class="code">.i</code> and <code class="code">.in</code>, the difference between <code class="code">.l</code>
and <code class="code">.ll</code> is that the latter takes into account whether a partially
collected line still uses the old line length value.
</p></dd></dl>
<hr>
</div>
<div class="section-level-extent" id="Line-Continuation">
<div class="nav-panel">
<p>
Next: <a href="#Page-Layout" accesskey="n" rel="next">Page Layout</a>, Previous: <a href="#Line-Layout" accesskey="p" rel="prev">Line Layout</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Line-Continuation-1">5.16 Line Continuation</h3>
<a class="index-entry-id" id="index-line-control"></a>
<a class="index-entry-id" id="index-control_002c-line"></a>
<p>When filling is enabled, input and output line breaks generally do not
correspond. The <code class="code">roff</code> language therefore distinguishes input and
output line continuation.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cRET-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\<kbd class="key">RET</kbd></code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cRET-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cRET"></a>
<a class="index-entry-id" id="index-input-line-continuation-_0028_005cRET_0029"></a>
<a class="index-entry-id" id="index-line_002c-input_002c-continuation-_0028_005cRET_0029"></a>
<a class="index-entry-id" id="index-continuation_002c-input-line-_0028_005cRET_0029"></a>
<a class="index-entry-id" id="index-_005cnewline"></a>
<p><code class="code">\<kbd class="key">RET</kbd></code> (a backslash immediately followed by a newline)
suppresses the effects of that newline in the input. The next input
line thus retains the classification of its predecessor as a control or
text line. <code class="code">\<kbd class="key">RET</kbd></code> is useful for managing line lengths in the
input during document maintenance; you can break an input line in the
middle of a request invocation, macro call, or escape sequence. Input
line continuation is invisible to the formatter, with two exceptions:
the <code class="code">|</code> operator recognizes the new input line
(see <a class="pxref" href="#Numeric-Expressions">Numeric Expressions</a>), and the input line counter register
<code class="code">.c</code> is incremented.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ll 50n
.de I
. ft I
. nop \\$*
. ft
..
Our film class watched
.I The Effect of Gamma Rays on Man-in-the-Moon
Marigolds. \" whoops, the input line wrapped
.br
.I My own opus begins on line \n[.c] \
and ends on line \n[.c].
</pre></div></div>
<div class="example">
<div class="group"><pre class="example-preformatted"> ⇒ Our film class watched <i class="i">The Effect of Gamma Rays on</i>
⇒ <i class="i">Man-in-the-Moon</i> Marigolds.
⇒ <i class="i">My own opus begins on line 11 and ends on line 12.</i>
</pre></div></div>
</dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cc-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\c</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cc-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cc"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002eint_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.int]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002eint_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002eint"></a>
<a class="index-entry-id" id="index-output-line_002c-continuation-_0028_005cc_0029"></a>
<a class="index-entry-id" id="index-line_002c-output_002c-continuation-_0028_005cc_0029"></a>
<a class="index-entry-id" id="index-continuation_002c-output-line-_0028_005cc_0029"></a>
<a class="index-entry-id" id="index-interrupted-line"></a>
<a class="index-entry-id" id="index-line_002c-interrupted"></a>
<a class="index-entry-id" id="index-_005cR_002c-after-_005cc"></a>
<p><code class="code">\c</code> continues an output line. Nothing after it on the input line
is formatted. In contrast to <code class="code">\<kbd class="key">RET</kbd></code>, a line after <code class="code">\c</code>
remains a new input line, so a control character is recognized at its
beginning. The visual results depend on whether filling is enabled; see
<a class="ref" href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a>.
</p>
<ul class="itemize mark-bullet">
<li><a class="index-entry-id" id="index-_005cc_002c-when-filling-enabled"></a>
<a class="index-entry-id" id="index-fill-mode_002c-and-_005cc"></a>
<a class="index-entry-id" id="index-mode_002c-fill_002c-and-_005cc"></a>
If filling is enabled, a word interrupted with <code class="code">\c</code> is continued
with the text on the next input text line, without an intervening space.
<div class="example">
<div class="group"><pre class="example-preformatted">This is a te\c
st.
⇒ This is a test.
</pre></div></div>
</li><li><a class="index-entry-id" id="index-_005cc_002c-when-filling-disabled"></a>
<a class="index-entry-id" id="index-no_002dfill-mode_002c-and-_005cc"></a>
<a class="index-entry-id" id="index-mode_002c-no_002dfill_002c-and-_005cc"></a>
If filling is disabled, the next input text line after <code class="code">\c</code> is
handled as a continuation of the same input text line.
<div class="example">
<div class="group"><pre class="example-preformatted">.nf
This is a \c
test.
⇒ This is a test.
</pre></div></div>
</li></ul>
<p>An intervening control line that causes a break overrides <code class="code">\c</code>,
flushing out the pending output line in the usual way.
</p>
<a class="index-entry-id" id="index-interrupted-line-register-_0028_002eint_0029"></a>
<a class="index-entry-id" id="index-continued-output-line-register-_0028_002eint_0029"></a>
<p>The <code class="code">.int</code> register contains a positive value if the last output
line was continued with <code class="code">\c</code>; this datum is associated with the
environment (see <a class="pxref" href="#Environments">Environments</a>).<a class="footnote" id="DOCF69" href="#FOOT69"><sup>69</sup></a>
</p></dd></dl>
<hr>
</div>
<div class="section-level-extent" id="Page-Layout">
<div class="nav-panel">
<p>
Next: <a href="#Page-Control" accesskey="n" rel="next">Page Control</a>, Previous: <a href="#Line-Continuation" accesskey="p" rel="prev">Line Continuation</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Page-Layout-2">5.17 Page Layout</h3>
<a class="index-entry-id" id="index-page-layout"></a>
<a class="index-entry-id" id="index-layout_002c-page"></a>
<p>The formatter permits configuration of the page length and page number.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002epl"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.pl</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">length</i></span>]</var><a class="copiable-link" href='#index-_002epl'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-pl"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002epl-1"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.pl</code></strong> <var class="def-var-arguments"><code class="t">+</code><span class="r"><i class="slanted">length</i></span></var><a class="copiable-link" href='#index-_002epl-1'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_002epl-2"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.pl</code></strong> <var class="def-var-arguments"><code class="t">-</code><span class="r"><i class="slanted">length</i></span></var><a class="copiable-link" href='#index-_002epl-2'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002ep_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.p]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ep_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ep"></a>
<a class="index-entry-id" id="index-page-length_002c-configuring-_0028pl_0029"></a>
<a class="index-entry-id" id="index-length-of-the-page_002c-configuring-_0028pl_0029"></a>
<a class="index-entry-id" id="index-configuring-the-page-length-_0028pl_0029"></a>
<a class="index-entry-id" id="index-setting-the-page-length-_0028pl_0029"></a>
<p>Change (increase or decrease) the page length per the numeric expression
<var class="var">length</var>. The default scaling unit is ‘<samp class="samp">v</samp>’. A negative
<var class="var">length</var> is valid, but an uncommon application: it prevents page
location traps from being sprung,<a class="footnote" id="DOCF70" href="#FOOT70"><sup>70</sup></a> and each
output line is placed on a new page. If <var class="var">length</var> is invalid, GNU
<code class="code">troff</code> emits a warning in category ‘<samp class="samp">number</samp>’. If <var class="var">length</var>
is absent or invalid, ‘<samp class="samp">11i</samp>’ is assumed.
</p>
<a class="index-entry-id" id="index-page-length-register-_0028_002ep_0029"></a>
<p>The read-only register ‘<samp class="samp">.p</samp>’ interpolates the current page length.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002epn"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.pn</code></strong> <var class="def-var-arguments">num</var><a class="copiable-link" href='#index-_002epn'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-pn"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002epn-1"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.pn</code></strong> <var class="def-var-arguments"><code class="t">+</code><span class="r"><i class="slanted">num</i></span></var><a class="copiable-link" href='#index-_002epn-1'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_002epn-2"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.pn</code></strong> <var class="def-var-arguments"><code class="t">-</code><span class="r"><i class="slanted">num</i></span></var><a class="copiable-link" href='#index-_002epn-2'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002epn_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.pn]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002epn_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002epn-3"></a>
<a class="index-entry-id" id="index-page-number_002c-configuring-next-_0028pn_0029"></a>
<a class="index-entry-id" id="index-next-page-number_002c-configuring-_0028pn_0029"></a>
<a class="index-entry-id" id="index-number_002c-page_002c-next_002c-configuring-_0028pn_0029"></a>
<p>Change (increase or decrease) the page number of the <em class="emph">next</em> page
per the numeric expression <var class="var">num</var>. If <var class="var">num</var> is invalid, GNU
<code class="code">troff</code> emits a warning in category ‘<samp class="samp">number</samp>’ and ignores the
request. Without an argument, <code class="code">pn</code> is ignored.
</p>
<a class="index-entry-id" id="index-next-page-number-register-_0028_002epn_0029"></a>
<a class="index-entry-id" id="index-page-number_002c-next_002c-register-_0028_002epn_0029"></a>
<p>The read-only register <code class="code">.pn</code> interpolates <var class="var">num</var> if set by
<code class="code">pn</code> on the current page, or the current page number plus 1.
</p></dd></dl>
<a class="index-entry-id" id="index-headers"></a>
<a class="index-entry-id" id="index-footers"></a>
<a class="index-entry-id" id="index-titles"></a>
<p>The formatter offers special support for typesetting headers and
footers, collectively termed <em class="dfn">titles</em>. Titles have an independent
line length, and their placement on the page is not restricted.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002etl"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.tl</code></strong> <var class="def-var-arguments"><code class="code">'</code><span class="r"><i class="slanted">left</i></span><code class="code">'</code><span class="r"><i class="slanted">center</i></span><code class="code">'</code><span class="r"><i class="slanted">right</i></span><code class="code">'</code></var><a class="copiable-link" href='#index-_002etl'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-tl"></a>
<a class="index-entry-id" id="index-title-line_002c-formatting-_0028tl_0029"></a>
<a class="index-entry-id" id="index-formatting-a-title-line-_0028tl_0029"></a>
<a class="index-entry-id" id="index-three_002dpart-title-_0028tl_0029"></a>
<a class="index-entry-id" id="index-page-number-character-_0028_0025_0029"></a>
<p>Format an output line as a title consisting of <var class="var">left</var>, <var class="var">center</var>,
and <var class="var">right</var>, each aligned accordingly. The delimiter need not be a
neutral apostrophe: <code class="code">tl</code> accepts the same delimiters as most escape
sequences; see <a class="ref" href="#Delimiters">Delimiters</a>. If not used as the delimiter, any
<em class="dfn">page number character</em> character is replaced with the current page
number; the default is ‘<samp class="samp">%</samp>’; see the the <code class="code">pc</code> request below.
Without an argument, <code class="code">tl</code> is ignored. <code class="code">tl</code> writes the title
line immediately, ignoring any partially collected line.
</p>
<p>It is not an error to omit delimiters after the first. For example,
‘<samp class="samp">.tl /Thesis</samp>’<!-- /@w --> is interpreted as ‘<samp class="samp">.tl /Thesis///</samp>’<!-- /@w -->: it
sets a title line comprising only the left-aligned word ‘<samp class="samp">Thesis</samp>’.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002elt"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.lt</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">length</i></span>]</var><a class="copiable-link" href='#index-_002elt'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-lt"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002elt-1"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.lt</code></strong> <var class="def-var-arguments"><code class="t">+</code><span class="r"><i class="slanted">length</i></span></var><a class="copiable-link" href='#index-_002elt-1'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_002elt-2"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.lt</code></strong> <var class="def-var-arguments"><code class="t">-</code><span class="r"><i class="slanted">length</i></span></var><a class="copiable-link" href='#index-_002elt-2'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002elt_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.lt]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002elt_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002elt-3"></a>
<a class="index-entry-id" id="index-length-of-title-line_002c-configuring-_0028lt_0029"></a>
<a class="index-entry-id" id="index-title-length_002c-configuring-_0028lt_0029"></a>
<p>Change (increase or decrease) the line length used by titles per the
numeric expression <var class="var">length</var>. The default scaling unit is ‘<samp class="samp">m</samp>’.
If <var class="var">length</var> is negative, GNU emits a warning in category
‘<samp class="samp">range</samp>’ and treats <var class="var">length</var> as ‘<samp class="samp">0</samp>’. If <var class="var">length</var> is
invalid, GNU <code class="code">troff</code> emits a warning in category ‘<samp class="samp">number</samp>’ and
ignores the request. The formatter’s default title length is
‘<samp class="samp">6.5i</samp>’. With no argument, the title length is restored to the
previous value. The title length is is associated with the environment
(see <a class="pxref" href="#Environments">Environments</a>).
</p>
<a class="index-entry-id" id="index-title-line-length-register-_0028_002elt_0029"></a>
<p>The read-only register ‘<samp class="samp">.lt</samp>’ interpolates the title line length.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002epc"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.pc</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">char</i></span>]</var><a class="copiable-link" href='#index-_002epc'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-pc"></a>
<a class="index-entry-id" id="index-changing-the-page-number-character-_0028pc_0029"></a>
<a class="index-entry-id" id="index-page-number-character_002c-changing-_0028pc_0029"></a>
<a class="index-entry-id" id="index-_0025-1"></a>
<p>Set the page number character to <var class="var">char</var>. With no argument, the page
number character is disabled. <code class="code">pc</code> does not affect the
register <code class="code">%</code>.
</p></dd></dl>
<p>The following example exercises title features.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.lt 50n
This is my partially collected
.tl 'Isomers 2023'%'Dextrose Edition'
line.
⇒ Isomers 2023 1 Dextrose Edition
⇒ This is my partially collected line.
</pre></div></div>
<p>We most often see titles used in page header and footer traps.
See <a class="xref" href="#Traps">Traps</a>.
</p>
<hr>
</div>
<div class="section-level-extent" id="Page-Control">
<div class="nav-panel">
<p>
Next: <a href="#Using-Fonts" accesskey="n" rel="next">Using Fonts</a>, Previous: <a href="#Page-Layout" accesskey="p" rel="prev">Page Layout</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Page-Control-1">5.18 Page Control</h3>
<a class="index-entry-id" id="index-page-control"></a>
<a class="index-entry-id" id="index-control_002c-page"></a>
<a class="index-entry-id" id="index-page-break-1"></a>
<a class="index-entry-id" id="index-break_002c-page-1"></a>
<a class="index-entry-id" id="index-page-ejection-1"></a>
<a class="index-entry-id" id="index-ejection_002c-page-1"></a>
<p>Discretionary page breaks can prevent the unwanted separation of
content. A new page number takes effect during page ejection; see
<a class="ref" href="#The-Implicit-Page-Trap">The Implicit Page Trap</a>.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ebp"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.bp</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">page-number</i></span>]</var><a class="copiable-link" href='#index-_002ebp'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-bp"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002ebp-1"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.bp</code></strong> <var class="def-var-arguments"><code class="t">+</code><span class="r"><i class="slanted">page-number</i></span></var><a class="copiable-link" href='#index-_002ebp-1'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_002ebp-2"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.bp</code></strong> <var class="def-var-arguments"><code class="t">-</code><span class="r"><i class="slanted">page-number</i></span></var><a class="copiable-link" href='#index-_002ebp-2'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_0025_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[%]</code></strong><a class="copiable-link" href='#index-_005cn_005b_0025_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_0025-2"></a>
<a class="index-entry-id" id="index-new-page-_0028bp_0029"></a>
<a class="index-entry-id" id="index-page_002c-new-_0028bp_0029"></a>
<p>Break the page and change (increase or decrease) the next page number
per the numeric expression <var class="var">page-number</var>. If <var class="var">page-number</var> is
invalid, GNU <code class="code">troff</code> emits a warning in category ‘<samp class="samp">number</samp>’ and
ignores the argument. This request causes a break. A page break
advances the vertical drawing position to the bottom of the page,
springing traps. See <a class="xref" href="#Page-Location-Traps">Page Location Traps</a>.
<a class="index-entry-id" id="index-bp-request_002c-and-top_002dlevel-diversion"></a>
<a class="index-entry-id" id="index-top_002dlevel-diversion_002c-and-bp"></a>
<a class="index-entry-id" id="index-diversion_002c-top_002dlevel_002c-and-bp"></a>
<code class="code">bp</code> has effect only if invoked within the top-level
diversion.<a class="footnote" id="DOCF71" href="#FOOT71"><sup>71</sup></a>
<a class="index-entry-id" id="index-CSTR-_002354-errata-2"></a>
<a class="index-entry-id" id="index-CSTR-_002354-erratum_002c-bp-request"></a>
This request is incorrectly documented in the <abbr class="acronym">AT&T</abbr>
<code class="code">troff</code> manual as having a default scaling unit of ‘<samp class="samp">v</samp>’.
</p>
<a class="index-entry-id" id="index-page-number-register-_0028_0025_0029"></a>
<a class="index-entry-id" id="index-current-page-number-_0028_0025_0029"></a>
<p>The register <code class="code">%</code> interpolates the current page number.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de BP
' bp \" schedule page break once current line is output
..
</pre></div></div>
</dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ene"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ne</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">space</i></span>]</var><a class="copiable-link" href='#index-_002ene'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ne"></a>
<a class="index-entry-id" id="index-orphan-lines_002c-preventing-with-ne"></a>
<a class="index-entry-id" id="index-conditional-page-break-_0028ne_0029"></a>
<a class="index-entry-id" id="index-page-break_002c-conditional-_0028ne_0029"></a>
<p>Force a page break if insufficient vertical space is available (assert
“needed” space). <code class="code">ne</code> tests the distance to the next page
location trap; see <a class="ref" href="#Page-Location-Traps">Page Location Traps</a>, and breaks the page if
that amount is less than <var class="var">space</var>. The default scaling unit is
‘<samp class="samp">v</samp>’. If <var class="var">space</var> is invalid, GNU <code class="code">troff</code> emits a warning
in category ‘<samp class="samp">number</samp>’ and ignores the argument. If <var class="var">space</var> is
not specified, ‘<samp class="samp">1v</samp>’ is assumed.
</p>
<a class="index-entry-id" id="index-widow"></a>
<p>We can require space for at least the first two output lines of a
paragraph, preventing its first line from being <i class="slanted">widowed</i> at the
page bottom.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ne 2v
Considering how common illness is,
how tremendous the spiritual change that it brings,
how astonishing,
when the lights of health go down,
the undiscovered countries that are then disclosed,
what wastes and deserts of the soul a slight attack
of influenza brings to view,
</pre></div></div>
<p>This method is reliable only if no output line is pending when <code class="code">ne</code>
is invoked. When macro packages are used, this is often not the case:
their paragraphing macros perform the break. You may need to experiment
with placing the <code class="code">ne</code> after the paragraphing macro, or <code class="code">br</code>
and <code class="code">ne</code> before it.
</p>
<a class="index-entry-id" id="index-orphan"></a>
<a class="index-entry-id" id="index-widow-1"></a>
<p><code class="code">ne</code> is also useful to force grouping of section headings with
their subsequent paragraphs, or tables with their captions and/or
explanations. Macro packages often use <code class="code">ne</code> with diversions to
implement keeps and displays; see <a class="ref" href="#Diversions">Diversions</a>. They may also offer
parameters for widow and orphan management.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002esv"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.sv</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">space</i></span>]</var><a class="copiable-link" href='#index-_002esv'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-sv"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002eos"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.os</code></strong><a class="copiable-link" href='#index-_002eos'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-os"></a>
<a class="index-entry-id" id="index-ne-request_002c-comparison-with-sv"></a>
<p>Require vertical space as <code class="code">ne</code> does, but also <i class="slanted">save</i> it for
later output by the <code class="code">os</code> request. If <var class="var">space</var> is available
before the next page location trap, it is output immediately. Both
requests ignore a partially collected line, taking effect at the next
break.
<a class="index-entry-id" id="index-sv-request_002c-and-no_002dspace-mode"></a>
<a class="index-entry-id" id="index-os-request_002c-and-no_002dspace-mode"></a>
<code class="code">sv</code> and <code class="code">os</code> ignore no-space mode (recall <a class="ref" href="#Manipulating-Spacing">Manipulating Spacing</a>). While the <code class="code">sv</code> request allows negative values for
<var class="var">space</var>, <code class="code">os</code> ignores them. The default scaling unit is
‘<samp class="samp">v</samp>’. If <var class="var">space</var> is not specified, ‘<samp class="samp">1v</samp>’ is assumed.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005bnl_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[nl]</code></strong><a class="copiable-link" href='#index-_005cn_005bnl_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-nl"></a>
<a class="index-entry-id" id="index-vertical-drawing-position-_0028nl_0029"></a>
<a class="index-entry-id" id="index-vertical-position_002c-drawing-_0028nl_0029"></a>
<a class="index-entry-id" id="index-drawing-position_002c-vertical-_0028nl_0029"></a>
<p><code class="code">nl</code> interpolates or sets the vertical drawing position. When the
formatter starts, the first page transition hasn’t happened yet, and
<code class="code">nl</code> is negative. If a header trap has been planted on the page
(typically at vertical position <code class="code">0</code>), you can assign a negative
value to <code class="code">nl</code> to spring it if that page has already started
(see <a class="pxref" href="#Page-Location-Traps">Page Location Traps</a>).
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de HD
. sp
. tl ''Goldbach Solution''
. sp
..
.
First page.
.bp
.wh 0 HD \" plant header trap at top of page
.nr nl (-1)
Second page.
⇒ First page.
⇒
⇒ <span class="r"><i class="i">(blank lines elided)</i></span>
⇒
⇒ Goldbach Solution
⇒
⇒ <span class="r"><i class="i">(blank lines elided)</i></span>
⇒
⇒ Second page.
</pre></div></div>
<p>Without resetting <code class="code">nl</code> to a negative value, the trap just planted
would be active beginning with the <em class="emph">next</em> page, not the current
one.
</p>
<p>See <a class="xref" href="#Diversions">Diversions</a>, for a comparison of <code class="code">nl</code> with the <code class="code">.h</code> and
<code class="code">.d</code> registers.
</p></dd></dl>
<hr>
</div>
<div class="section-level-extent" id="Using-Fonts">
<div class="nav-panel">
<p>
Next: <a href="#Manipulating-Type-Size-and-Vertical-Spacing" accesskey="n" rel="next">Manipulating Type Size and Vertical Spacing</a>, Previous: <a href="#Page-Control" accesskey="p" rel="prev">Page Control</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Using-Fonts-1">5.19 Using Fonts</h3>
<a class="index-entry-id" id="index-font"></a>
<a class="index-entry-id" id="index-typeface"></a>
<a class="index-entry-id" id="index-font-family"></a>
<a class="index-entry-id" id="index-font-style"></a>
<a class="index-entry-id" id="index-style_002c-font"></a>
<a class="index-entry-id" id="index-family_002c-font"></a>
<a class="index-entry-id" id="index-text-font"></a>
<a class="index-entry-id" id="index-special-font"></a>
<a class="index-entry-id" id="index-unstyled-font"></a>
<a class="index-entry-id" id="index-font_002c-text"></a>
<a class="index-entry-id" id="index-font_002c-special"></a>
<a class="index-entry-id" id="index-font_002c-unstyled"></a>
<p>In digital typography, a <em class="dfn">font</em> is a collection of characters in a
specific typeface that a device can render as glyphs at a desired
size.<a class="footnote" id="DOCF72" href="#FOOT72"><sup>72</sup></a> A <code class="code">roff</code> formatter can change typefaces at any
point in the text. The basic faces are a set of <em class="dfn">styles</em> combining
upright and slanted shapes with normal and heavy stroke weights:
‘<samp class="samp">R</samp>’, ‘<samp class="samp">I</samp>’, ‘<samp class="samp">B</samp>’, and ‘<samp class="samp">BI</samp>’—these stand for
<i class="slanted">roman</i>, <i class="slanted">italic</i>, <i class="slanted">bold</i>, and
<i class="slanted">bold-italic</i>. For linguistic text, GNU <code class="code">troff</code> groups
typefaces into <em class="dfn">families</em> containing each of these
styles.<a class="footnote" id="DOCF73" href="#FOOT73"><sup>73</sup></a> A <em class="dfn">text font</em> is thus often a family
combined with a style, but it need not be: consider the <code class="code">ps</code> and
<code class="code">pdf</code> devices’ <code class="code">ZCMI</code> (Zapf Chancery Medium italic)—often,
no other style of Zapf Chancery Medium is provided. On typesetting
devices, at least one <em class="dfn">special font</em> is available, comprising
<em class="dfn">unstyled</em> glyphs for mathematical operators and other purposes.
</p>
<a class="index-entry-id" id="index-font-description-file"></a>
<a class="index-entry-id" id="index-description-file_002c-font"></a>
<a class="index-entry-id" id="index-file_002c-font-description"></a>
<a class="index-entry-id" id="index-font-metrics"></a>
<a class="index-entry-id" id="index-metrics_002c-font"></a>
<a class="index-entry-id" id="index-mounting-position"></a>
<a class="index-entry-id" id="index-mounting-position-1"></a>
<a class="index-entry-id" id="index-position_002c-mounting"></a>
<p>Like <abbr class="acronym">AT&T</abbr> <code class="code">troff</code>, GNU <code class="code">troff</code> does not itself load
or manipulate a digital font file;<a class="footnote" id="DOCF74" href="#FOOT74"><sup>74</sup></a> instead it
works with a <em class="dfn">font description file</em> that characterizes it,
including its glyph repertoire and the <em class="dfn">metrics</em> (dimensions) of
each glyph.<a class="footnote" id="DOCF75" href="#FOOT75"><sup>75</sup></a> This
information permits the formatter to accurately place glyphs with
respect to each other. Before using a font description, the formatter
associates it with a <em class="dfn">mounting position</em>, a place in an ordered list
of available typefaces.
<a class="index-entry-id" id="index-abstract-font-style"></a>
<a class="index-entry-id" id="index-font-style_002c-abstract"></a>
<a class="index-entry-id" id="index-style_002c-font_002c-abstract"></a>
So that a document need not be strongly coupled to a specific font
family, in GNU <code class="code">troff</code> an output device can associate a style in
the abstract sense with a mounting position. Thus the default family
can be combined with a style dynamically, producing a <em class="dfn">resolved font
name</em>.
</p>
<p>Fonts often have trademarked names, and even Free Software fonts can
require renaming upon modification. <code class="code">groff</code> maintains a
convention that a device’s serif font family is given the name ‘<samp class="samp">T</samp>’
(“Times”), its sans-serif family ‘<samp class="samp">H</samp>’ (“Helvetica”), and its
monospaced family ‘<samp class="samp">C</samp>’ (“Courier”). Historical inertia has driven
<code class="code">groff</code>’s font identifiers to short uppercase abbreviations of font
names, as with ‘<samp class="samp">TR</samp>’, ‘<samp class="samp">TI</samp>’, ‘<samp class="samp">TB</samp>’, ‘<samp class="samp">TBI</samp>’, and a
special font ‘<samp class="samp">S</samp>’.
</p>
<p>The default family used with abstract styles can be changed at any time;
initially, it is ‘<samp class="samp">T</samp>’. Typically, abstract styles are arranged in
the first four mounting positions in the order shown above. The default
mounting position, and therefore style, is always ‘<samp class="samp">1</samp>’ (‘<samp class="samp">R</samp>’).
By issuing appropriate formatter instructions, you can override these
defaults before your document writes its first glyph.
</p>
<a class="index-entry-id" id="index-graphic-renditions"></a>
<a class="index-entry-id" id="index-renditions_002c-graphic"></a>
<a class="index-entry-id" id="index-character-cell-attributes"></a>
<a class="index-entry-id" id="index-attributes_002c-character-cell"></a>
<a class="index-entry-id" id="index-cell_002c-character_002c-attributes"></a>
<p>Terminal output devices cannot change font families and lack special
fonts. They support style changes by overstriking, or by altering
ISO 6429/ECMA-48 <em class="dfn">graphic renditions</em> (character cell
attributes).
</p>
<ul class="mini-toc">
<li><a href="#Selecting-Fonts" accesskey="1">Selecting Fonts</a></li>
<li><a href="#Font-Families" accesskey="2">Font Families</a></li>
<li><a href="#Font-Positions" accesskey="3">Font Positions</a></li>
<li><a href="#Using-Symbols" accesskey="4">Using Symbols</a></li>
<li><a href="#Character-Classes" accesskey="5">Character Classes</a></li>
<li><a href="#Special-Fonts" accesskey="6">Special Fonts</a></li>
<li><a href="#Artificial-Fonts" accesskey="7">Artificial Fonts</a></li>
<li><a href="#Ligatures-and-Kerning" accesskey="8">Ligatures and Kerning</a></li>
<li><a href="#Italic-Corrections" accesskey="9">Italic Corrections</a></li>
<li><a href="#Dummy-Characters">Dummy Characters</a></li>
</ul>
<hr>
<div class="subsection-level-extent" id="Selecting-Fonts">
<div class="nav-panel">
<p>
Next: <a href="#Font-Families" accesskey="n" rel="next">Font Families</a>, Previous: <a href="#Using-Fonts" accesskey="p" rel="prev">Using Fonts</a>, Up: <a href="#Using-Fonts" accesskey="u" rel="up">Using Fonts</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Selecting-Fonts-1">5.19.1 Selecting Fonts</h4>
<a class="index-entry-id" id="index-font_002c-selection"></a>
<p>We use <em class="dfn">font</em> to refer to any of several means of identifying a
font: by mounting position (‘<samp class="samp">3</samp>’), by abstract style (‘<samp class="samp">B</samp>’), or
by its identifier (‘<samp class="samp">TB</samp>’).
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eft"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ft</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">font</i></span>]</var><a class="copiable-link" href='#index-_002eft'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ft"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cff"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\f</code><span class="r"><i class="slanted">f</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cff'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cf"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cf_0028fn"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\f(</code><span class="r"><i class="slanted">fn</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cf_0028fn'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005cf_005bfont_005d"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\f[</code><span class="r"><i class="slanted">font</i></span><code class="t">]</code></strong><a class="copiable-link" href='#index-_005cf_005bfont_005d'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002efn_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.fn]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002efn_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002efn"></a>
<a class="index-entry-id" id="index-changing-fonts-_0028ft_002c-_005cf_0029"></a>
<a class="index-entry-id" id="index-fonts_002c-changing-_0028ft_002c-_005cf_0029"></a>
<a class="index-entry-id" id="index-sty-request_002c-and-changing-fonts"></a>
<a class="index-entry-id" id="index-fam-request_002c-and-changing-fonts"></a>
<a class="index-entry-id" id="index-_005cF_002c-and-changing-fonts"></a>
<a class="index-entry-id" id="index-styles"></a>
<a class="index-entry-id" id="index-family"></a>
<a class="index-entry-id" id="index-DESC"></a>
<a class="index-entry-id" id="index-selecting-the-previous-font-_0028ft_0029"></a>
<a class="index-entry-id" id="index-previous-font_002c-selecting-_0028ft_0029"></a>
<a class="index-entry-id" id="index-font_002c-previous_002c-slecting-_0028ft_0029"></a>
<p>The <code class="code">ft</code> request selects the typeface <var class="var">font</var>. If the argument
is absent or ‘<samp class="samp">P</samp>’, it selects the previously chosen font. If
<var class="var">font</var> is a non-negative integer, it is interpreted as mounting
position; the font mounted there is selected. If that position refers
to an abstract style, it is combined with the default family (see
<code class="code">fam</code> and <code class="code">\F</code> below) to make a resolved font name. If the
mounting position is not a style and no font is mounted there, GNU
<code class="code">troff</code> emits a warning in category ‘<samp class="samp">font</samp>’ and ignores the
request.
</p>
<p>If <var class="var">font</var> matches a style name, it is combined with the current
family to make a resolved font name. Otherwise, <var class="var">font</var> is assumed
to already be a resolved font name.
</p>
<a class="index-entry-id" id="index-automatic-font-mounting"></a>
<a class="index-entry-id" id="index-font-mounting_002c-automatic"></a>
<a class="index-entry-id" id="index-mounting_002c-font_002c-automatic"></a>
<p>The resolved font name is subject to translation (see request <code class="code">ftr</code>
below). Next, the (possibly translated) font name’s mounting position
is looked up; if not mounted, <var class="var">font</var> is sought on the file system as
a font description file and, if located, automatically mounted at the
next available position (see register <code class="code">.fp</code> below). If the font
was mounted using an identifier different from its font description file
name (see request <code class="code">fp</code> below), that file name is then looked up.
If a font description file for the resolved font name is not found, GNU
<code class="code">troff</code> emits a warning in category ‘<samp class="samp">font</samp>’ and ignores the
request.
</p>
<p>The <code class="code">\f</code> escape sequence is similar, using one-character name (or
mounting position) <var class="var">f</var>, two-character name <var class="var">fn</var>, or a name
<var class="var">font</var> of arbitrary length.
<a class="index-entry-id" id="index-previous-font_002c-selecting-_0028_005cf_005b_005d_002c-_005cfP_0029"></a>
<a class="index-entry-id" id="index-font_002c-previous_002c-selecting-_0028_005cf_005b_005d_002c-_005cfP_0029"></a>
‘<samp class="samp">\f[]</samp>’ selects the previous font. The syntax form ‘<samp class="samp">\fP</samp>’ is
supported for backward compatibility, and ‘<samp class="samp">\f[P]</samp>’ for consistency.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">eggs, bacon,
.ft I
spam,
.ft
and sausage.
.br
eggs, bacon, \fIspam,\fP and sausage.
⇒ eggs, bacon, <i class="slanted">spam,</i> and sausage
⇒ eggs, bacon, <i class="slanted">spam,</i> and sausage
</pre></div></div>
<p>The current and previously selected fonts are properties of the
environment (see <a class="pxref" href="#Environments">Environments</a>).
</p>
<p>The read-only string-valued register <code class="code">.fn</code> contains the resolved
font name of the selected font.
</p>
<p><code class="code">\f</code> doesn’t produce an input token in GNU <code class="code">troff</code>; it thus
can be used in requests that expect a single-character argument. We can
assign a font to a margin character as follows (see <a class="pxref" href="#Miscellaneous">Miscellaneous</a>).
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.mc \f[I]x\f[]
</pre></div></div>
</dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eftr"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ftr</code></strong> <var class="def-var-arguments">f [<span class="r"><i class="slanted">g</i></span>]</var><a class="copiable-link" href='#index-_002eftr'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ftr"></a>
<a class="index-entry-id" id="index-font-translation-_0028ftr_0029"></a>
<a class="index-entry-id" id="index-ft-request_002c-and-font-translations"></a>
<a class="index-entry-id" id="index-ul-request_002c-and-font-translations"></a>
<a class="index-entry-id" id="index-bd-request_002c-and-font-translations"></a>
<a class="index-entry-id" id="index-_005cf_002c-and-font-translations"></a>
<a class="index-entry-id" id="index-cs-request_002c-and-font-translations"></a>
<a class="index-entry-id" id="index-tkf-request_002c-and-font-translations"></a>
<a class="index-entry-id" id="index-special-request_002c-and-font-translations"></a>
<a class="index-entry-id" id="index-fspecial-request_002c-and-font-translations"></a>
<a class="index-entry-id" id="index-fp-request_002c-and-font-translations"></a>
<a class="index-entry-id" id="index-sty-request_002c-and-font-translations"></a>
<a class="index-entry-id" id="index-if-request_002c-and-font-translations"></a>
<a class="index-entry-id" id="index-ie-request_002c-and-font-translations"></a>
<a class="index-entry-id" id="index-while-request_002c-and-font-translations"></a>
<p>Translate font <var class="var">f</var> to font <var class="var">g</var>. Whenever a font
named <var class="var">f</var> is referred to in a <code class="code">\f</code> escape sequence, in the
<code class="code">F</code> and <code class="code">S</code> conditional operators, or in the <code class="code">ft</code>,
<code class="code">ul</code>, <code class="code">bd</code>, <code class="code">cs</code>, <code class="code">tkf</code>, <code class="code">special</code>,
<code class="code">fspecial</code>, <code class="code">fp</code>, or <code class="code">sty</code> requests, font <var class="var">g</var> is
used. If <var class="var">g</var> is missing or equal to <var class="var">f</var> the translation is
undone.
</p>
<p>Font translations cannot be chained.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ftr XXX TR
.ftr XXX YYY
.ft XXX
error→ warning: can't find font 'XXX'
</pre></div></div>
</dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002efzoom"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.fzoom</code></strong> <var class="def-var-arguments">f [<span class="r"><i class="slanted">zoom</i></span>]</var><a class="copiable-link" href='#index-_002efzoom'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-fzoom"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002ezoom_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.zoom]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ezoom_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ezoom"></a>
<a class="index-entry-id" id="index-magnification-of-a-font-_0028fzoom_0029"></a>
<a class="index-entry-id" id="index-font_002c-magnification-_0028fzoom_0029"></a>
<a class="index-entry-id" id="index-zoom-factor-of-a-font-_0028fzoom_0029"></a>
<a class="index-entry-id" id="index-factor_002c-zoom_002c-of-a-font-_0028fzoom_0029"></a>
<a class="index-entry-id" id="index-font_002c-zoom-factor-_0028fzoom_0029"></a>
<a class="index-entry-id" id="index-optical-size-of-a-font"></a>
<a class="index-entry-id" id="index-font_002c-optical-size"></a>
<a class="index-entry-id" id="index-size_002c-optical_002c-of-a-font"></a>
<p>Set magnification of font <var class="var">f</var> to factor <var class="var">zoom</var>, which must
be a non-negative integer multiple of 1/1000th. This request is useful
to adjust the optical size of a font in relation to the others. In the
example below, font <code class="code">CR</code> is magnified by 10% (the zoom factor is
thus 1.1).
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.fam P
.fzoom CR 1100
.ps 12
Palatino and \f[CR]Courier\f[]
</pre></div></div>
<p>A missing or zero value of <var class="var">zoom</var> is the same as a value of 1000,
which means no magnification. <var class="var">f</var> must be a resolved font
name, not an abstract style.
</p>
<p>The magnification of a font is completely transparent to GNU
<code class="code">troff</code>; a change of the zoom factor doesn’t cause any effect
except that the dimensions of glyphs, (word) spaces, kerns, etc., of the
affected font are adjusted accordingly.
</p>
<p>The zoom factor of the current font is available in the read-only
register ‘<samp class="samp">.zoom</samp>’, in multiples of 1/1000th. It returns zero if
there is no magnification.
</p></dd></dl>
<hr>
</div>
<div class="subsection-level-extent" id="Font-Families">
<div class="nav-panel">
<p>
Next: <a href="#Font-Positions" accesskey="n" rel="next">Font Positions</a>, Previous: <a href="#Selecting-Fonts" accesskey="p" rel="prev">Selecting Fonts</a>, Up: <a href="#Using-Fonts" accesskey="u" rel="up">Using Fonts</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Font-Families-1">5.19.2 Font Families</h4>
<a class="index-entry-id" id="index-font-families"></a>
<a class="index-entry-id" id="index-families_002c-font"></a>
<a class="index-entry-id" id="index-font-styles"></a>
<a class="index-entry-id" id="index-styles_002c-font"></a>
<p>To accommodate the wide variety of fonts available, GNU <code class="code">troff</code>
distinguishes <em class="dfn">font families</em> and <em class="dfn">font styles</em>. A resolved
font name is the catenation of a font family and a style. Selecting an
abstract style causes GNU <code class="code">troff</code> to combine it with the default
font family.
</p>
<p>You can thus compose a document using abstract styles exclusively for
its body or running text, selecting a specific family only for titles or
examples, for instance, and change the default family on the command
line (recall <a class="ref" href="#Groff-Options">Options</a>).
</p>
<p>Fonts for the devices <code class="code">ps</code>, <code class="code">pdf</code>, <code class="code">dvi</code>, <code class="code">lj4</code>,
<code class="code">lbp</code>, and the X11 devices support this mechanism. By default,
GNU <code class="code">troff</code> uses the Times family with the four styles ‘<samp class="samp">R</samp>’,
‘<samp class="samp">I</samp>’, ‘<samp class="samp">B</samp>’, and ‘<samp class="samp">BI</samp>’.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002efam"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.fam</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">family</i></span>]</var><a class="copiable-link" href='#index-_002efam'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-fam"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002efam_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.fam]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002efam_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002efam-1"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cFf"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\F</code><span class="r"><i class="slanted">f</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cFf'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cF"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cF_0028fm"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\F(</code><span class="r"><i class="slanted">fm</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cF_0028fm'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005cF_005bfamily_005d"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\F[</code><span class="r"><i class="slanted">family</i></span><code class="t">]</code></strong><a class="copiable-link" href='#index-_005cF_005bfamily_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-changing-font-family-_0028fam_002c-_005cF_0029"></a>
<a class="index-entry-id" id="index-font-family_002c-changing-_0028fam_002c-_005cF_0029"></a>
<p>Set the default font family, used in combination with abstract styles to
construct a resolved font name, to <var class="var">family</var> (one-character
name <var class="var">f</var>, two-character name <var class="var">fm</var>). If no argument is
given, GNU <code class="code">troff</code> selects the previous font family; if there none,
is it falls back to the device’s default<a class="footnote" id="DOCF76" href="#FOOT76"><sup>76</sup></a> or its own (‘<samp class="samp">T</samp>’).
</p>
<p>The <code class="code">\F</code> escape sequence works similarly. In disanalogy to
<code class="code">\f</code>, ‘<samp class="samp">\FP</samp>’ makes ‘<samp class="samp">P</samp>’ the default family. Use
‘<samp class="samp">\F[]</samp>’ to select the previous default family. The default font
family is available in the read-only string-valued register <code class="code">.fam</code>;
it is associated with the environment (see <a class="pxref" href="#Environments">Environments</a>).
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">spam, \" startup defaults are T (Times) R (roman)
.fam H \" make Helvetica the default family
spam, \" family H + style R = HR
.ft B \" family H + style B = HB
spam,
.ft CR \" Courier roman (default family not changed)
spam,
.ft \" back to Helvetica bold
spam,
.fam T \" make Times the default family
spam, \" family T + style B = TB
.ft AR \" font AR (not a style)
baked beans,
.ft R \" family T + style R = TR
and spam.
</pre></div></div>
<p><code class="code">\F</code> doesn’t produce an input token in GNU <code class="code">troff</code>. As a
consequence, it can be used in requests like <code class="code">mc</code> (which expects
a single character as an argument) to change the font family on the fly.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.mc \F[P]x\F[]
</pre></div></div>
</dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002esty"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.sty</code></strong> <var class="def-var-arguments">n style</var><a class="copiable-link" href='#index-_002esty'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-sty"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002esty_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.sty]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002esty_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002esty-1"></a>
<a class="index-entry-id" id="index-setting-up-an-abstract-font-style-_0028sty_0029"></a>
<a class="index-entry-id" id="index-abstract-font-style_002c-setting-up-_0028sty_0029"></a>
<a class="index-entry-id" id="index-font-style_002c-abstract_002c-setting-up-_0028sty_0029"></a>
<a class="index-entry-id" id="index-style_002c-font_002c-abstract_002c-setting-up-_0028sty_0029"></a>
<a class="index-entry-id" id="index-cs-request_002c-and-font-styles"></a>
<a class="index-entry-id" id="index-bd-request_002c-and-font-styles"></a>
<a class="index-entry-id" id="index-tkf-request_002c-and-font-styles"></a>
<a class="index-entry-id" id="index-uf-request_002c-and-font-styles"></a>
<a class="index-entry-id" id="index-fspecial-request_002c-and-font-styles"></a>
<p>Associate an abstract style <var class="var">style</var> with mounting
position <var class="var">n</var>, which must be a non-negative integer. If the
requests <code class="code">cs</code>, <code class="code">bd</code>, <code class="code">tkf</code>, <code class="code">uf</code>, or <code class="code">fspecial</code>
are applied to an abstract style, they are instead applied to the member
of the current family corresponding to that style.
</p>
<a class="index-entry-id" id="index-DESC-1"></a>
<a class="index-entry-id" id="index-styles-1"></a>
<p>The default family can be set with the <samp class="option">-f</samp> option (see <a class="pxref" href="#Groff-Options">Options</a>). The <code class="code">styles</code> command in the <samp class="file">DESC</samp> file controls
which font positions (if any) are initially associated with abstract
styles rather than fonts.
</p>
<p><strong class="strong">Caution:</strong> The <var class="var">style</var> argument is not validated.
Errors may occur later, when the formatter attempts to construct a
resolved font name, or format a character for output.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.nr BarPos \n[.fp]
.sty \n[.fp] Bar
.fam Foo
.ft \n[BarPos]
.tm .f=\n[.f]
A
error→ error: no font family named 'Foo' exists
error→ .f=41
error→ error: cannot format glyph: no current font
</pre></div></div>
<p>When an abstract style has been selected, the read-only string-valued
register ‘<samp class="samp">.sty</samp>’ interpolates its name; this datum is associated
with the environment (see <a class="pxref" href="#Environments">Environments</a>). Otherwise, ‘<samp class="samp">.sty</samp>’
interpolates nothing.
</p></dd></dl>
<hr>
</div>
<div class="subsection-level-extent" id="Font-Positions">
<div class="nav-panel">
<p>
Next: <a href="#Using-Symbols" accesskey="n" rel="next">Using Symbols</a>, Previous: <a href="#Font-Families" accesskey="p" rel="prev">Font Families</a>, Up: <a href="#Using-Fonts" accesskey="u" rel="up">Using Fonts</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Font-Positions-1">5.19.3 Font Positions</h4>
<a class="index-entry-id" id="index-font-positions"></a>
<a class="index-entry-id" id="index-positions_002c-font"></a>
<p>To support typeface indirection through abstract styles, and for
compatibility with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code>, the formatter maintains
a list of font <em class="dfn">positions</em> at which fonts required by a document are
<em class="dfn">mounted</em>. An output device’s description file <samp class="file">DESC</samp>
typically configures a set of pre-mounted fonts; see <a class="ref" href="#Device-and-Font-Description-Files">Device and Font Description Files</a>. A font need not be explicitly mounted before
it is selected; GNU <code class="code">troff</code> will search <code class="env">GROFF_FONT_PATH</code> for
it by name and mount it at the first free mounting position on demand.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002efp"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.fp</code></strong> <var class="def-var-arguments">pos id [<span class="r"><i class="slanted">font-description-file-name</i></span>]</var><a class="copiable-link" href='#index-_002efp'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-fp"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002ef_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.f]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ef_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ef"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002efp_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.fp]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002efp_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002efp-1"></a>
<a class="index-entry-id" id="index-mounting-a-font-_0028fp_0029"></a>
<a class="index-entry-id" id="index-font_002c-mounting-_0028fp_0029"></a>
<p>Mount a font under the name <var class="var">id</var> at mounting position <var class="var">pos</var>, a
non-negative integer. When the formatter starts up, it reads the output
device’s description to mount an initial set of faces, and selects font
position 1. Position 0 is unused by default. Unless the
<var class="var">font-description-file-name</var> argument is given, <var class="var">id</var> should be
the name of a font description file stored in a directory corresponding
to the selected output device. GNU <code class="code">troff</code> does not traverse
directories to locate the font description file.
</p>
<a class="index-entry-id" id="index-font-aliasing-with-third-argument-to-fp-request"></a>
<a class="index-entry-id" id="index-aliasing-fonts-with-third-argument-to-fp-request"></a>
<p>The optional third argument enables font names to be aliased, which can
be necessary in compatibility mode since AT&T <code class="code">troff</code> syntax
affords no means of identifying fonts with names longer than two
characters, like ‘<samp class="samp">TBI</samp>’ or ‘<samp class="samp">ZCMI</samp>’, in a font selection escape
sequence. See <a class="xref" href="#Compatibility-Mode">Compatibility Mode</a>. You can also alias fonts on
mounting for convenience or abstraction. (See below regarding the
<code class="code">.fp</code> register.)
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.fp \n[.fp] SC ZCMI
Send a \f(SChand-written\fP thank-you note.
.fp \n[.fp] Emph TI
.fp \n[.fp] Strong TB
Are \f[Emph]these names\f[] \f[Strong]comfortable\f[]?
</pre></div></div>
<p>‘<samp class="samp">DESC</samp>’, ‘<samp class="samp">P</samp>’, and non-negative integers are not usable as font
identifiers.
</p>
<a class="index-entry-id" id="index-font-position-register-_0028_002ef_0029"></a>
<p>The position of the currently selected font (or abstract style) is
available in the read-only register ‘<samp class="samp">.f</samp>’. It is associated with
the environment (see <a class="pxref" href="#Environments">Environments</a>).
</p>
<p>You can copy the value of <code class="code">.f</code> to another register to save it for
later use.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.nr saved-font \n[.f]
<span class="r">… <i class="i">text involving many font changes</i> …</span>
.ft \n[saved-font]
</pre></div></div>
<a class="index-entry-id" id="index-next-free-font-position-register-_0028_002efp_0029"></a>
<p>The index of the next (non-zero) free font position is available in the
read-only register ‘<samp class="samp">.fp</samp>’.
<a class="index-entry-id" id="index-DESC-file_002c-and-font-mounting"></a>
Fonts not listed in the <samp class="file">DESC</samp> file are automatically mounted at
position ‘<samp class="samp">\n[.fp]</samp>’ when selected with the <code class="code">ft</code> request or
<code class="code">\f</code> escape sequence. When mounting a font at a position
explicitly with the <code class="code">fp</code> request, this same practice should be
followed, although GNU <code class="code">troff</code> does not enforce this strictly.
</p></dd></dl>
<hr>
</div>
<div class="subsection-level-extent" id="Using-Symbols">
<div class="nav-panel">
<p>
Next: <a href="#Character-Classes" accesskey="n" rel="next">Character Classes</a>, Previous: <a href="#Font-Positions" accesskey="p" rel="prev">Font Positions</a>, Up: <a href="#Using-Fonts" accesskey="u" rel="up">Using Fonts</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Using-Symbols-1">5.19.4 Using Symbols</h4>
<a class="index-entry-id" id="index-using-symbols"></a>
<a class="index-entry-id" id="index-symbols_002c-using"></a>
<a class="index-entry-id" id="index-glyph"></a>
<a class="index-entry-id" id="index-character"></a>
<a class="index-entry-id" id="index-glyph_002c-distinguished-from-character"></a>
<a class="index-entry-id" id="index-character_002c-distinguished-from-glyph"></a>
<a class="index-entry-id" id="index-ligature"></a>
<p>A <em class="dfn">glyph</em> is a graphical representation of a <em class="dfn">character</em>. While
a character is an abstraction of semantic information, a glyph is
something that can be seen on screen or paper. A character has many
possible representation forms (for example, the character ‘A’ can be
written in an upright or slanted typeface, producing distinct
glyphs). Sometimes, a sequence of characters map to a single glyph:
this is a <em class="dfn">ligature</em>—the most common is ‘fi’.
</p>
<p>Space characters never become glyphs in GNU <code class="code">troff</code>. If not
discarded (as when trailing on text lines), they are represented by
horizontal motions in the output.
</p>
<a class="index-entry-id" id="index-symbol"></a>
<a class="index-entry-id" id="index-special-fonts"></a>
<a class="index-entry-id" id="index-fonts"></a>
<a class="index-entry-id" id="index-DESC-2"></a>
<a class="index-entry-id" id="index-special-request_002c-and-glyph-search-order"></a>
<a class="index-entry-id" id="index-fspecial-request_002c-and-glyph-search-order"></a>
<p>A <em class="dfn">symbol</em> is simply a named glyph. Within <code class="code">gtroff</code>, all glyph
names of a particular font are defined in its font file. If the user
requests a glyph not available in this font, <code class="code">gtroff</code> looks up an
ordered list of <em class="dfn">special fonts</em>. By default, the PostScript output
device supports the two special fonts ‘<samp class="samp">SS</samp>’ (slanted symbols) and
‘<samp class="samp">S</samp>’ (symbols) (the former is looked up before the latter). Other
output devices use different names for special fonts. Fonts mounted
with the <code class="code">fonts</code> keyword in the <samp class="file">DESC</samp> file are globally
available. To install additional special fonts locally (i.e., for a
particular font), use the <code class="code">fspecial</code> request.
</p>
<p>Here are the exact rules how <code class="code">gtroff</code> searches a given symbol:
</p>
<ul class="itemize mark-bullet">
<li>If the symbol has been defined with the <code class="code">char</code> request, use it.
This hides a symbol with the same name in the current font.
</li><li>Check the current font.
</li><li>If the symbol has been defined with the <code class="code">fchar</code> request, use it.
</li><li>Check whether the current font has a font-specific list of special
fonts; test all fonts in the order of appearance in the last
<code class="code">fspecial</code> call if appropriate.
</li><li>If the symbol has been defined with the <code class="code">fschar</code> request for the
current font, use it.
</li><li>Check all fonts in the order of appearance in the last <code class="code">special</code>
call.
</li><li>If the symbol has been defined with the <code class="code">schar</code> request, use it.
</li><li>As a last resort, consult all fonts loaded up to now for special fonts
and check them, starting with the lowest font number. This can
sometimes lead to surprising results since the <code class="code">fonts</code> line in
the <samp class="file">DESC</samp> file often contains empty positions, which are filled
later on. For example, consider the following:
<div class="example">
<div class="group"><pre class="example-preformatted">fonts 3 0 0 FOO
</pre></div></div>
<p>This mounts font <code class="code">foo</code> at font position 3. We assume that
<code class="code">FOO</code> is a special font, containing glyph <code class="code">foo</code>, and that no
font has been loaded yet. The line
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.fspecial BAR BAZ
</pre></div></div>
<p>makes font <code class="code">BAZ</code> special only if font <code class="code">BAR</code> is active. We
further assume that <code class="code">BAZ</code> is really a special font, i.e., the font
description file contains the <code class="code">special</code> keyword, and that it also
contains glyph <code class="code">foo</code> with a special shape fitting to font
<code class="code">BAR</code>. After executing <code class="code">fspecial</code>, font <code class="code">BAR</code> is loaded
at font position 1, and <code class="code">BAZ</code> at position 2.
</p>
<p>We now switch to a new font <code class="code">XXX</code>, trying to access glyph
<code class="code">foo</code> that is assumed to be missing. There are neither
font-specific special fonts for <code class="code">XXX</code> nor any other fonts made
special with the <code class="code">special</code> request, so <code class="code">gtroff</code> starts the
search for special fonts in the list of already mounted fonts, with
increasing font positions. Consequently, it finds <code class="code">BAZ</code> before
<code class="code">FOO</code> even for <code class="code">XXX</code>, which is not the intended behaviour.
</p></li></ul>
<p>See <a class="xref" href="#Device-and-Font-Description-Files">Device and Font Description Files</a>, and <a class="ref" href="#Special-Fonts">Special Fonts</a>, for
more details.
</p>
<a class="index-entry-id" id="index-list-of-special-characters-_0028groff_005fchar_00287_0029-man-page_0029"></a>
<a class="index-entry-id" id="index-special-characters_002c-list-of-_0028groff_005fchar_00287_0029-man-page_0029"></a>
<a class="index-entry-id" id="index-characters_002c-special_002c-list-of-_0028groff_005fchar_00287_0029-man-page_0029"></a>
<a class="index-entry-id" id="index-available-glyphs_002c-list-of-_0028groff_005fchar_00287_0029-man-page_0029"></a>
<a class="index-entry-id" id="index-glyphs_002c-available_002c-list-of-_0028groff_005fchar_00287_0029-man-page_0029"></a>
<p>The <cite class="cite">groff_char<span class="r">(7)</span></cite> man page houses a complete list of
predefined special character names, but the availability of any as a
glyph is device- and font-dependent. For example, say
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">man -Tdvi groff_char > groff_char.dvi
</pre></div></div>
<p>to obtain those available with the DVI device and default font
configuration.<a class="footnote" id="DOCF77" href="#FOOT77"><sup>77</sup></a> If you want to use an additional macro package to change
the fonts used, <code class="code">groff</code> (or <code class="code">gtroff</code>) must be run directly.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">groff -Tdvi -mec -man groff_char.7 > groff_char.dvi
</pre></div></div>
<a class="index-entry-id" id="index-composite-glyph-names"></a>
<a class="index-entry-id" id="index-glyph-names_002c-composite"></a>
<a class="index-entry-id" id="index-groff-glyph-list-_0028GGL_0029"></a>
<a class="index-entry-id" id="index-GGL-_0028groff-glyph-list_0029"></a>
<a class="index-entry-id" id="index-Adobe-Glyph-List-_0028AGL_0029"></a>
<p>Special character names not listed in <cite class="cite">groff_char<span class="r">(7)</span></cite> are
derived algorithmically, using a simplified version of the Adobe Glyph
List (AGL) algorithm, which is described in
<a class="uref" href="https://github.com/adobe-type-tools/agl-aglfn">https://github.com/adobe-type-tools/agl-aglfn</a>. The (frozen)
set of names that can’t be derived algorithmically is called the
<em class="dfn"><code class="code">groff</code> glyph list (GGL)</em>.
</p>
<ul class="itemize mark-bullet">
<li>A glyph for Unicode character U+<var class="var">XXXX</var>[<var class="var">X</var>[<var class="var">X</var>]], which is
not a composite character is named
<code class="code">u<var class="var">XXXX</var><span class="r">[</span><var class="var">X</var><span class="r">[</span><var class="var">X</var><span class="r">]]</span></code>. <var class="var">X</var> must be an
uppercase hexadecimal digit. Examples: <code class="code">u1234</code>, <code class="code">u008E</code>,
<code class="code">u12DB8</code>. The largest Unicode value is 0x10FFFF. There must be at
least four <code class="code">X</code> digits; if necessary, add leading zeroes (after the
‘<samp class="samp">u</samp>’). No zero padding is allowed for character codes greater than
0xFFFF. Surrogates (i.e., Unicode values greater than 0xFFFF
represented with character codes from the surrogate area U+D800-U+DFFF)
are not allowed either.
</li><li>A glyph representing more than a single input character is named
<div class="display">
<pre class="display-preformatted">‘<samp class="samp">u</samp>’ <var class="var">component1</var> ‘<samp class="samp">_</samp>’ <var class="var">component2</var> ‘<samp class="samp">_</samp>’ <var class="var">component3</var> …
</pre></div>
<p>Example: <code class="code">u0045_0302_0301</code>.
</p>
<p>For simplicity, all Unicode characters that are composites must be
maximally decomposed to NFD;<a class="footnote" id="DOCF78" href="#FOOT78"><sup>78</sup></a> for example,
<code class="code">u00CA_0301</code> is not a valid glyph name since U+00CA (<small class="sc">LATIN
CAPITAL LETTER E WITH CIRCUMFLEX</small>) can be further decomposed into U+0045
(<small class="sc">LATIN CAPITAL LETTER E</small>) and U+0302 (<small class="sc">COMBINING CIRCUMFLEX
ACCENT</small>). <code class="code">u0045_0302_0301</code> is thus the glyph name for U+1EBE,
<small class="sc">LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE</small>.
</p>
</li><li>groff maintains a table to decompose all algorithmically derived glyph
names that are composites itself. For example, <code class="code">u0100</code> (<small class="sc">LATIN
LETTER A WITH MACRON</small>) is automatically decomposed into
<code class="code">u0041_0304</code>. Additionally, a glyph name of the GGL is preferred
to an algorithmically derived glyph name; <code class="code">groff</code> also
automatically does the mapping. Example: The glyph <code class="code">u0045_0302</code> is
mapped to <code class="code">^E</code>.
</li><li>glyph names of the GGL can’t be used in composite glyph names; for
example, <code class="code">^E_u0301</code> is invalid.
</li></ul>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_0028nm"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\(</code><span class="r"><i class="slanted">nm</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_0028nm'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005c-1"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005c_005bname_005d"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\[</code><span class="r"><i class="slanted">name</i></span><code class="t">]</code></strong><a class="copiable-link" href='#index-_005c_005bname_005d'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005c_005bbase_002dglyph-combining_002dcomponent-_2026_005d"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\[</code><span class="r"><i class="slanted">base-glyph combining-component …</i></span><code class="t">]</code></strong><a class="copiable-link" href='#index-_005c_005bbase_002dglyph-combining_002dcomponent-_2026_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005c_0028"></a>
<a class="index-entry-id" id="index-_005c_005b"></a>
<p>Typeset a special character <var class="var">name</var> (two-character name <var class="var">nm</var>) or
a composite glyph consisting of <var class="var">base-glyph</var> overlaid with one or
more <var class="var">combining-component</var>s. For example, ‘<samp class="samp">\[A ho]</samp>’ is a
capital letter “A” with a “hook accent” (ogonek).
</p>
<p>There is no special syntax for one-character names—the analogous form
‘<samp class="samp">\<var class="var">n</var></samp>’ would collide with other escape sequences. However, the
four escape sequences <code class="code">\'</code>, <code class="code">\-</code>, <code class="code">\_</code>, and <code class="code">\`</code>,
are translated on input to the special character escape sequences
<code class="code">\[aa]</code>, <code class="code">\[-]</code>, <code class="code">\[ul]</code>, and <code class="code">\[ga]</code>, respectively.
</p>
<p>A special character name of length one is not the same thing as an
ordinary character: that is, the character <code class="code">a</code> is not the same as
<code class="code">\[a]</code>.
</p>
<p>If <var class="var">name</var> is undefined, a warning in category ‘<samp class="samp">char</samp>’ is
produced and the escape is ignored. See <a class="xref" href="#Warnings">Warnings</a>, for information
about the enablement and suppression of warnings.
</p>
<p>GNU <code class="code">troff</code> resolves <code class="code">\[<span class="r">…</span>]</code> with more than a single
component as follows:
</p>
<ul class="itemize mark-bullet">
<li>Any component that is found in the GGL is converted to the
<code class="code">u<var class="var">XXXX</var></code> form.
</li><li>Any component <code class="code">u<var class="var">XXXX</var></code> that is found in the list of
decomposable glyphs is decomposed.
</li><li>The resulting elements are then concatenated with ‘<samp class="samp">_</samp>’ in between,
dropping the leading ‘<samp class="samp">u</samp>’ in all elements but the first.
</li></ul>
<p>No check for the existence of any component (similar to <code class="code">tr</code>
request) is done.
</p>
<p>Examples:
</p>
<dl class="table">
<dt><code class="code">\[A ho]</code></dt>
<dd><p>‘<samp class="samp">A</samp>’ maps to <code class="code">u0041</code>, ‘<samp class="samp">ho</samp>’ maps to <code class="code">u02DB</code>, thus the
final glyph name would be <code class="code">u0041_02DB</code>. This is not the expected
result: the ogonek glyph ‘<samp class="samp">ho</samp>’ is a spacing ogonek, but for a
proper composite a non-spacing ogonek (U+0328) is necessary. Looking
into the file <samp class="file">composite.tmac</samp>, one can find ‘<samp class="samp">.composite ho u0328</samp>’<!-- /@w -->, which changes the mapping of ‘<samp class="samp">ho</samp>’ while a composite glyph
name is constructed, causing the final glyph name to be
<code class="code">u0041_0328</code>.
</p>
</dd>
<dt><code class="code">\[^E u0301]</code></dt>
<dt><code class="code">\[^E aa]</code></dt>
<dt><code class="code">\[E a^ aa]</code></dt>
<dt><code class="code">\[E ^ <code class="code">'</code>]</code></dt>
<dd><p>‘<samp class="samp">^E</samp>’ maps to <code class="code">u0045_0302</code>, thus the final glyph name is
<code class="code">u0045_0302_0301</code> in all forms (assuming proper calls of the
<code class="code">composite</code> request).
</p></dd>
</dl>
<p>It is not possible to define glyphs with names like ‘<samp class="samp">A ho</samp>’<!-- /@w -->
within a <code class="code">groff</code> font file. This is not really a limitation;
instead, you have to define <code class="code">u0041_0328</code>.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cC_0027xxx_0027"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\C<code class="code">'</code></code><span class="r"><i class="slanted">xxx</i></span><code class="t"><code class="code">'</code></code></strong><a class="copiable-link" href='#index-_005cC_0027xxx_0027'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cC"></a>
<a class="index-entry-id" id="index-named-character-_0028_005cC_0029"></a>
<a class="index-entry-id" id="index-character_002c-named-_0028_005cC_0029"></a>
<p>Typeset the glyph of the special character <var class="var">xxx</var>. Normally, it is
more convenient to use <code class="code">\[<var class="var">xxx</var>]</code>, but <code class="code">\C</code> has some
advantages: it is compatible with <abbr class="acronym">AT&T</abbr> device-independent
<code class="code">troff</code> (and therefore available in compatibility
mode<a class="footnote" id="DOCF79" href="#FOOT79"><sup>79</sup></a>) and can interpolate special
characters with ‘<samp class="samp">]</samp>’ in their names. The delimiter need not be
a neutral apostrophe; see <a class="ref" href="#Delimiters">Delimiters</a>.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ecomposite"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.composite</code></strong> <var class="def-var-arguments">id1 id2</var><a class="copiable-link" href='#index-_002ecomposite'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-composite"></a>
<a class="index-entry-id" id="index-composite_002etmac"></a>
<p>Map special character name <var class="var">id1</var> to <var class="var">id2</var> if <var class="var">id1</var> is used
in <code class="code">\[...]</code> with more than one component. See above for examples.
This is a strict rewriting of the special character name; no check is
performed for the existence of a glyph for either. A set of default
mappings for many accents can be found in the file
<samp class="file">composite.tmac</samp>, loaded by the default <samp class="file">troffrc</samp> at startup.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cN_0027n_0027"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\N<code class="code">'</code></code><span class="r"><i class="slanted">n</i></span><code class="t"><code class="code">'</code></code></strong><a class="copiable-link" href='#index-_005cN_0027n_0027'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cN"></a>
<a class="index-entry-id" id="index-numbered-glyph-_0028_005cN_0029-1"></a>
<a class="index-entry-id" id="index-glyph_002c-numbered-_0028_005cN_0029-1"></a>
<a class="index-entry-id" id="index-char-request_002c-used-with-_005cN"></a>
<a class="index-entry-id" id="index-Unicode-1"></a>
<p>Typeset the glyph with code <var class="var">n</var> in the current font
(<code class="code">n</code> is <em class="emph">not</em> the input character code). The number
<var class="var">n</var> can be any non-negative decimal integer. Most devices only
have glyphs with codes between 0 and 255; the Unicode output device
uses codes in the range 0–65535. If the current font does not contain
a glyph with that code, special fonts are <em class="emph">not</em> searched. The
<code class="code">\N</code> escape sequence can be conveniently used in conjunction with
the <code class="code">char</code> request:
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.char \[phone] \f[ZD]\N'37'
</pre></div></div>
<a class="index-entry-id" id="index-DESC-3"></a>
<a class="index-entry-id" id="index-unnamed-glyphs"></a>
<a class="index-entry-id" id="index-glyphs_002c-unnamed"></a>
<p>The code of each glyph is given in the fourth column in the font
description file after the <code class="code">charset</code> command. It is possible to
include unnamed glyphs in the font description file by using a name of
‘<samp class="samp">---</samp>’; the <code class="code">\N</code> escape sequence is the only way to use these.
</p>
<p>No kerning is applied to glyphs accessed with <code class="code">\N</code>. The delimiter
need not be a neutral apostrophe; see <a class="ref" href="#Delimiters">Delimiters</a>.
</p></dd></dl>
<p>A few escape sequences are also special characters.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_0027-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\<code class="code">'</code></code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_0027-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005c_0027"></a>
<p>An escaped neutral apostrophe is a synonym for <code class="code">\[aa]</code> (acute
accent).
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_0060-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\<code class="code">`</code></code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_0060-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005c_0060"></a>
<p>An escaped grave accent is a synonym for <code class="code">\[ga]</code> (grave accent).
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002d-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\-</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_002d-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005c_002d"></a>
<p>An escaped hyphen-minus is a synonym for <code class="code">\[-]</code> (minus sign).
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_005f-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\_</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_005f-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005c_005f"></a>
<p>An escaped underscore (“low line”) is a synonym for <code class="code">\[ul]</code>
(underrule). On typesetting devices, the underrule is font-invariant
and drawn lower than the underscore ‘<samp class="samp">_</samp>’.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ecflags"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.cflags</code></strong> <var class="def-var-arguments">n c1 c2 …</var><a class="copiable-link" href='#index-_002ecflags'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-cflags"></a>
<a class="index-entry-id" id="index-glyph-properties-_0028cflags_0029"></a>
<a class="index-entry-id" id="index-character-properties-_0028cflags_0029"></a>
<a class="index-entry-id" id="index-properties-of-glyphs-_0028cflags_0029"></a>
<a class="index-entry-id" id="index-properties-of-characters-_0028cflags_0029"></a>
<p>Assign properties encoded by the number <var class="var">n</var> to characters <var class="var">c1</var>,
<var class="var">c2</var>, and so on.
</p>
<p>Input characters, including special characters introduced by an escape,
have certain properties associated with them.<a class="footnote" id="DOCF80" href="#FOOT80"><sup>80</sup></a>
These properties can be modified with this request. The first argument
is the sum of the desired flags and the remaining arguments are the
characters to be assigned those properties. Spaces between the <var class="var">cn</var>
arguments are optional. Any argument <var class="var">cn</var> can be a character class
defined with the <code class="code">class</code> request rather than an individual
character. See <a class="xref" href="#Character-Classes">Character Classes</a>.
</p>
<p>The non-negative integer <var class="var">n</var> is the sum of any of the following.
Some combinations are nonsensical, such as ‘<samp class="samp">33</samp>’ (1 + 32).
</p>
<dl class="table">
<dt id='index-end_002dof_002dsentence-characters-1'><span><code class="code">1</code><a class="copiable-link" href='#index-end_002dof_002dsentence-characters-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-characters_002c-end_002dof_002dsentence"></a>
<p>Recognize the character as ending a sentence if followed by a newline
or two spaces. Initially, characters ‘<samp class="samp">.?!</samp>’ have this property.
</p>
</dd>
<dt id='index-hyphenating-characters'><span><code class="code">2</code><a class="copiable-link" href='#index-hyphenating-characters'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-characters_002c-hyphenation"></a>
<p>Enable breaks before the character. A line is not broken at a character
with this property unless the characters on each side both have non-zero
hyphenation codes. This exception can be overridden by adding 64.
Initially, no characters have this property.
</p>
</dd>
<dt id='index-_005c_002d-glyph_002c-and-cflags'><span><code class="code">4</code><a class="copiable-link" href='#index-_005c_002d-glyph_002c-and-cflags'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-hy-glyph_002c-and-cflags"></a>
<a class="index-entry-id" id="index-em-glyph_002c-and-cflags"></a>
<p>Enable breaks after the character. A line is not broken at a character
with this property unless the characters on each side both have non-zero
hyphenation codes. This exception can be overridden by adding 64.
Initially, characters ‘<samp class="samp">\-\[hy]\[em]</samp>’ have this property.
</p>
</dd>
<dt id='index-overlapping-characters'><span><code class="code">8</code><a class="copiable-link" href='#index-overlapping-characters'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-characters_002c-overlapping"></a>
<a class="index-entry-id" id="index-ul-glyph_002c-and-cflags"></a>
<a class="index-entry-id" id="index-rn-glyph_002c-and-cflags"></a>
<a class="index-entry-id" id="index-ru-glyph_002c-and-cflags"></a>
<a class="index-entry-id" id="index-radicalex-glyph_002c-and-cflags"></a>
<a class="index-entry-id" id="index-sqrtex-glyph_002c-and-cflags"></a>
<p>Mark the glyph associated with this character as overlapping other
instances of itself horizontally. Initially, characters
‘<samp class="samp">\[ul]\[rn]\[ru]\[radicalex]\[sqrtex]</samp>’ have this property.
</p>
</dd>
<dt id='index-br-glyph_002c-and-cflags'><span><code class="code">16</code><a class="copiable-link" href='#index-br-glyph_002c-and-cflags'> ¶</a></span></dt>
<dd><p>Mark the glyph associated with this character as overlapping other
instances of itself vertically. Initially, the character ‘<samp class="samp">\[br]</samp>’
has this property.
</p>
</dd>
<dt id='index-transparent-characters'><span><code class="code">32</code><a class="copiable-link" href='#index-transparent-characters'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-character_002c-transparent"></a>
<a class="index-entry-id" id="index-_0022_002c-at-end-of-sentence-1"></a>
<a class="index-entry-id" id="index-_0027_002c-at-end-of-sentence-1"></a>
<a class="index-entry-id" id="index-_0029_002c-at-end-of-sentence-1"></a>
<a class="index-entry-id" id="index-_005d_002c-at-end-of-sentence-1"></a>
<a class="index-entry-id" id="index-_002a_002c-at-end-of-sentence-1"></a>
<a class="index-entry-id" id="index-dg-glyph_002c-at-end-of-sentence-1"></a>
<a class="index-entry-id" id="index-dd-glyph_002c-at-end-of-sentence-1"></a>
<a class="index-entry-id" id="index-rq-glyph_002c-at-end-of-sentence-1"></a>
<a class="index-entry-id" id="index-cq-glyph_002c-at-end-of-sentence-1"></a>
<p>Mark the character as transparent for the purpose of end-of-sentence
recognition. In other words, an end-of-sentence character followed by
any number of characters with this property is treated as the end of a
sentence if followed by a newline or two spaces. This is the same as
having a zero space factor in TeX. Initially, characters
‘<samp class="samp">"')]*\[dg]\[dd]\[rq]\[cq]</samp>’ have this property.
</p>
</dd>
<dt><code class="code">64</code></dt>
<dd><p>Ignore hyphenation codes of the surrounding characters. Use this in
combination with values 2 and 4 (initially, no characters have this
property).
</p>
<p>For example, if you need an automatic break point after the en-dash in
numeric ranges like “3000–5000”, insert
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.cflags 68 \[en]
</pre></div></div>
<p>into your document. However, this practice can lead to bad layout if
done thoughtlessly; in most situations, a better solution instead of
changing the <code class="code">cflags</code> value is to insert <code class="code">\:</code> right after the
hyphen at the places that really need a break point.
</p></dd>
</dl>
<p>The remaining values were implemented for East Asian language support;
those who use alphabetic scripts exclusively can disregard them.
</p>
<dl class="table">
<dt><code class="code">128</code></dt>
<dd><p>Prohibit a line break before the character, but allow a line break after
the character. This works only in combination with flags 256 and 512
and has no effect otherwise. Initially, no characters have this
property.
</p>
</dd>
<dt><code class="code">256</code></dt>
<dd><p>Prohibit a line break after the character, but allow a line break before
the character. This works only in combination with flags 128 and 512
and has no effect otherwise. Initially, no characters have this
property.
</p>
</dd>
<dt><code class="code">512</code></dt>
<dd><p>Allow line break before or after the character. This works only in
combination with flags 128 and 256 and has no effect otherwise.
Initially, no characters have this property.
</p></dd>
</dl>
<p>In contrast to values 2 and 4, the values 128, 256, and 512 work
pairwise. If, for example, the left character has value 512, and the
right character 128, no break will be automatically inserted between
them. If we use value 6 instead for the left character, a break
after the character can’t be suppressed since the neighboring character
on the right doesn’t get examined.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002echar"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.char</code></strong> <var class="def-var-arguments">c [<span class="r"><i class="slanted">contents</i></span>]</var><a class="copiable-link" href='#index-_002echar'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-char"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002efchar"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.fchar</code></strong> <var class="def-var-arguments">c [<span class="r"><i class="slanted">contents</i></span>]</var><a class="copiable-link" href='#index-_002efchar'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-fchar"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002efschar"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.fschar</code></strong> <var class="def-var-arguments">f c [<span class="r"><i class="slanted">contents</i></span>]</var><a class="copiable-link" href='#index-_002efschar'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-fschar"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002eschar"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.schar</code></strong> <var class="def-var-arguments">c [<span class="r"><i class="slanted">contents</i></span>]</var><a class="copiable-link" href='#index-_002eschar'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-schar"></a>
<a class="index-entry-id" id="index-defining-character-_0028char_0029"></a>
<a class="index-entry-id" id="index-defining-fallback-character-_0028fchar_002c-fschar_002c-schar_0029"></a>
<a class="index-entry-id" id="index-character_002c-defining-_0028char_0029"></a>
<a class="index-entry-id" id="index-character_002c-defining-fallback-_0028fchar_002c-fschar_002c-schar_0029"></a>
<a class="index-entry-id" id="index-fallback-character_002c-defining-_0028fchar_002c-fschar_002c-schar_0029"></a>
<a class="index-entry-id" id="index-creating-new-characters-_0028char_0029"></a>
<a class="index-entry-id" id="index-defining-symbol-_0028char_0029"></a>
<a class="index-entry-id" id="index-symbol_002c-defining-_0028char_0029"></a>
<a class="index-entry-id" id="index-defining-glyph-_0028char_0029"></a>
<a class="index-entry-id" id="index-glyph_002c-defining-_0028char_0029"></a>
<a class="index-entry-id" id="index-escape-character_002c-while-defining-glyph"></a>
<a class="index-entry-id" id="index-character_002c-escape_002c-while-defining-glyph"></a>
<a class="index-entry-id" id="index-tr-request_002c-and-glyph-definitions"></a>
<a class="index-entry-id" id="index-cp-request_002c-and-glyph-definitions"></a>
<a class="index-entry-id" id="index-rc-request_002c-and-glyph-definitions"></a>
<a class="index-entry-id" id="index-lc-request_002c-and-glyph-definitions"></a>
<a class="index-entry-id" id="index-_005cl_002c-and-glyph-definitions"></a>
<a class="index-entry-id" id="index-_005cL_002c-and-glyph-definitions"></a>
<a class="index-entry-id" id="index-_005c_0026_002c-and-glyph-definitions"></a>
<a class="index-entry-id" id="index-_005ce_002c-and-glyph-definitions"></a>
<a class="index-entry-id" id="index-hcode-request_002c-and-glyph-definitions"></a>
<p>Define a new character or glyph <var class="var">c</var> to be <var class="var">contents</var>, which
can be empty. More precisely, <code class="code">char</code> defines a <code class="code">groff</code> object
(or redefines an existing one) that is accessed with the
name <var class="var">c</var> on input, and produces <var class="var">contents</var> on output.
Every time glyph <var class="var">c</var> needs to be printed, <var class="var">contents</var> is
processed in a temporary environment and the result is wrapped up into a
single object. Compatibility mode is turned off and the escape
character is set to <code class="code">\</code> while <var class="var">contents</var> is processed.
Any emboldening, constant spacing, or track kerning is applied to this
object rather than to individual glyphs in <var class="var">contents</var>.
</p>
<p>An object defined by these requests can be used just like a normal glyph
provided by the output device. In particular, other characters can be
translated to it with the <code class="code">tr</code> or <code class="code">trin</code> requests; it can be
made the leader character with the <code class="code">lc</code> request; repeated patterns
can be drawn with it using the <code class="code">\l</code> and <code class="code">\L</code> escape sequences;
and words containing <var class="var">c</var> can be hyphenated correctly if the
<code class="code">hcode</code> request is used to give the object a hyphenation code.
</p>
<p>There is a special anti-recursion feature: use of the object within its
own definition is handled like a normal character (not
defined with <code class="code">char</code>).
</p>
<p>The <code class="code">tr</code> and <code class="code">trin</code> requests take precedence if <code class="code">char</code>
accesses the same symbol.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.tr XY
X
⇒ Y
.char X Z
X
⇒ Y
.tr XX
X
⇒ Z
</pre></div></div>
<p>The <code class="code">fchar</code> request defines a fallback glyph: <code class="code">gtroff</code> only
checks for glyphs defined with <code class="code">fchar</code> if it cannot find the glyph
in the current font. <code class="code">gtroff</code> carries out this test before
checking special fonts.
</p>
<p><code class="code">fschar</code> defines a fallback glyph for font <var class="var">f</var>:
<code class="code">gtroff</code> checks for glyphs defined with <code class="code">fschar</code> after the
list of fonts declared as font-specific special fonts with the
<code class="code">fspecial</code> request, but before the list of fonts declared as global
special fonts with the <code class="code">special</code> request.
</p>
<p>Finally, the <code class="code">schar</code> request defines a global fallback glyph:
<code class="code">gtroff</code> checks for glyphs defined with <code class="code">schar</code> after the list
of fonts declared as global special fonts with the <code class="code">special</code>
request, but before the already mounted special fonts.
</p>
<p>See <a class="xref" href="#Character-Classes">Character Classes</a>.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002erchar"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.rchar</code></strong> <var class="def-var-arguments">c …</var><a class="copiable-link" href='#index-_002erchar'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-rchar"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002erfschar"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.rfschar</code></strong> <var class="def-var-arguments">f c …</var><a class="copiable-link" href='#index-_002erfschar'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-rfschar"></a>
<a class="index-entry-id" id="index-removing-glyph-definition-_0028rchar_002c-rfschar_0029"></a>
<a class="index-entry-id" id="index-glyph_002c-removing-definition-_0028rchar_002c-rfschar_0029"></a>
<a class="index-entry-id" id="index-fallback-glyph_002c-removing-definition-_0028rchar_002c-rfschar_0029"></a>
<p>Remove definition of each ordinary or special character <var class="var">c</var>,
undoing the effect of a <code class="code">char</code>, <code class="code">fchar</code>, or <code class="code">schar</code>
request. Those supplied by font description files cannot be removed.
Spaces and tabs may separate <var class="var">c</var> arguments.
</p>
<p>The request <code class="code">rfschar</code> removes glyph definitions defined with
<code class="code">fschar</code> for font <var class="var">f</var>.
</p></dd></dl>
<hr>
</div>
<div class="subsection-level-extent" id="Character-Classes">
<div class="nav-panel">
<p>
Next: <a href="#Special-Fonts" accesskey="n" rel="next">Special Fonts</a>, Previous: <a href="#Using-Symbols" accesskey="p" rel="prev">Using Symbols</a>, Up: <a href="#Using-Fonts" accesskey="u" rel="up">Using Fonts</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Character-Classes-1">5.19.5 Character Classes</h4>
<a class="index-entry-id" id="index-character-classes"></a>
<a class="index-entry-id" id="index-classes_002c-character"></a>
<p>Classes are particularly useful for East Asian languages such as
Chinese, Japanese, and Korean, where the number of needed characters is
much larger than in European languages, and where large sets of
characters share the same properties.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eclass"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.class</code></strong> <var class="def-var-arguments">name c1 c2 …</var><a class="copiable-link" href='#index-_002eclass'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-class"></a>
<a class="index-entry-id" id="index-character-class-_0028class_0029"></a>
<a class="index-entry-id" id="index-defining-character-class-_0028class_0029"></a>
<a class="index-entry-id" id="index-class-of-characters-_0028class_0029"></a>
<p>Define a character class (or simply “class”) <var class="var">name</var> comprising
the characters <var class="var">c1</var>, <var class="var">c2</var>, and so on.
</p>
<p>A class thus defined can then be referred to in lieu of listing all the
characters within it. Currently, only the <code class="code">cflags</code> request can
handle references to character classes.
</p>
<p>In the request’s simplest form, each <var class="var">cn</var> is a character (or special
character).
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.class [quotes] ' \[aq] \[dq] \[oq] \[cq] \[lq] \[rq]
</pre></div></div>
<p>Since class and glyph names share the same name space, it is recommended
to start and end the class name with <code class="code">[</code> and <code class="code">]</code>,
respectively, to avoid collisions with existing character names defined
by GNU <code class="code">troff</code> or the user (with <code class="code">char</code> and related requests).
This practice applies the presence of <code class="code">]</code> in the class name to
prevent the use of the special character escape form
<code class="code">\[<span class="r">…</span>]</code>, thus you must use the <code class="code">\C</code> escape to access
a class with such a name.
</p>
<a class="index-entry-id" id="index-GGL-_0028groff-glyph-list_0029-1"></a>
<a class="index-entry-id" id="index-groff-glyph-list-_0028GGL_0029-1"></a>
<p>You can also use a character range notation consisting of a
start character followed by ‘<samp class="samp">-</samp>’ and then an end character.
Internally, GNU <code class="code">troff</code> converts these two symbol names to
Unicode code points (according to the <code class="code">groff</code> glyph list [GGL]),
which then give the start and end value of the range. If that fails,
the class definition is skipped.
</p>
<p>Furthermore, classes can be nested.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.class [prepunct] , : ; > }
.class [prepunctx] \C'[prepunct]' \[u2013]-\[u2016]
</pre></div></div>
<p>The class ‘<samp class="samp">[prepunctx]</samp>’ thus contains the contents of the class
<code class="code">[prepunct]</code> as defined above (the set ‘<samp class="samp">, : ; > }</samp>’), and
characters in the range between <code class="code">U+2013</code> and <code class="code">U+2016</code>.
</p>
<p>If you want to include ‘<samp class="samp">-</samp>’ in a class, it must be the first
character value in the argument list, otherwise it gets misinterpreted
as part of the range syntax.
</p>
<p>It is not possible to use class names as end points of range
definitions.
</p>
<p>A typical use of the <code class="code">class</code> request is to control line-breaking
and hyphenation rules as defined by the <code class="code">cflags</code> request. For
example, to inhibit line breaks before the characters belonging to the
<code class="code">prepunctx</code> class defined in the previous example, you can write
the following.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.cflags 2 \C'[prepunctx]'
</pre></div></div>
<p>See the <code class="code">cflags</code> request in <a class="ref" href="#Using-Symbols">Using Symbols</a>, for more details.
</p></dd></dl>
<hr>
</div>
<div class="subsection-level-extent" id="Special-Fonts">
<div class="nav-panel">
<p>
Next: <a href="#Artificial-Fonts" accesskey="n" rel="next">Artificial Fonts</a>, Previous: <a href="#Character-Classes" accesskey="p" rel="prev">Character Classes</a>, Up: <a href="#Using-Fonts" accesskey="u" rel="up">Using Fonts</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Special-Fonts-1">5.19.6 Special Fonts</h4>
<a class="index-entry-id" id="index-special-fonts-1"></a>
<a class="index-entry-id" id="index-fonts_002c-special"></a>
<p>Special fonts are those that <code class="code">gtroff</code> searches when it cannot find
the requested glyph in the current font. The Symbol font is usually a
special font.
</p>
<p><code class="code">gtroff</code> provides the following two requests to add more special
fonts. See <a class="xref" href="#Using-Symbols">Using Symbols</a>, for a detailed description of the glyph
searching mechanism in <code class="code">gtroff</code>.
</p>
<p>Usually, only non-TTY devices have special fonts.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002especial"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.special</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">s1</i></span> <span class="r"><i class="slanted">s2</i></span> …]</var><a class="copiable-link" href='#index-_002especial'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-special-2"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002efspecial"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.fspecial</code></strong> <var class="def-var-arguments">f [<span class="r"><i class="slanted">s1</i></span> <span class="r"><i class="slanted">s2</i></span> …]</var><a class="copiable-link" href='#index-_002efspecial'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-fspecial"></a>
<a class="index-entry-id" id="index-fonts-1"></a>
<a class="index-entry-id" id="index-DESC-4"></a>
<p>Use the <code class="code">special</code> request to define special fonts. Initially, this
list is empty.
</p>
<p>Use the <code class="code">fspecial</code> request to designate special fonts only when
font <var class="var">f</var> is active. Initially, this list is empty.
</p>
<p>Previous calls to <code class="code">special</code> or <code class="code">fspecial</code> are overwritten;
without arguments, the particular list of special fonts is set to empty.
Special fonts are searched in the order they appear as arguments.
</p>
<p>All fonts that appear in a call to <code class="code">special</code> or <code class="code">fspecial</code>
are loaded.
</p>
<p>See <a class="xref" href="#Using-Symbols">Using Symbols</a>, for the exact search order of glyphs.
</p></dd></dl>
<hr>
</div>
<div class="subsection-level-extent" id="Artificial-Fonts">
<div class="nav-panel">
<p>
Next: <a href="#Ligatures-and-Kerning" accesskey="n" rel="next">Ligatures and Kerning</a>, Previous: <a href="#Special-Fonts" accesskey="p" rel="prev">Special Fonts</a>, Up: <a href="#Using-Fonts" accesskey="u" rel="up">Using Fonts</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Artificial-Fonts-1">5.19.7 Artificial Fonts</h4>
<a class="index-entry-id" id="index-artificial-fonts"></a>
<a class="index-entry-id" id="index-fonts_002c-artificial"></a>
<p>There are a number of requests and escape sequences for artificially
creating fonts. These are largely vestiges of the days when output
devices did not have a wide variety of fonts, and when <code class="code">nroff</code> and
<code class="code">troff</code> were separate programs. Most of them are no longer
necessary in GNU <code class="code">troff</code>. Nevertheless, they are supported.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cH_0027height_0027"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\H<code class="code">'</code></code><span class="r"><i class="slanted">height</i></span><code class="t"><code class="code">'</code></code></strong><a class="copiable-link" href='#index-_005cH_0027height_0027'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cH"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cH_0027_002bheight_0027"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\H<code class="code">'</code></code><span class="r"><i class="slanted"><code class="t">+</code>height</i></span><code class="t"><code class="code">'</code></code></strong><a class="copiable-link" href='#index-_005cH_0027_002bheight_0027'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005cH_0027_002dheight_0027"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\H<code class="code">'</code></code><span class="r"><i class="slanted"><code class="t">-</code>height</i></span><code class="t"><code class="code">'</code></code></strong><a class="copiable-link" href='#index-_005cH_0027_002dheight_0027'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002eheight_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.height]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002eheight_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002eheight"></a>
<a class="index-entry-id" id="index-changing-the-font-height-_0028_005cH_0029"></a>
<a class="index-entry-id" id="index-font-height_002c-changing-_0028_005cH_0029"></a>
<a class="index-entry-id" id="index-height_002c-font_002c-changing-_0028_005cH_0029"></a>
<p>Change (increment, decrement) the height of the current font, but not
the width. If <var class="var">height</var> is zero, restore the original height.
Default scaling unit is ‘<samp class="samp">z</samp>’.
</p>
<p>The read-only register <code class="code">.height</code> contains the font height as set by
<code class="code">\H</code>.
</p>
<p>Currently, only the <samp class="option">-Tps</samp> and <samp class="option">-Tpdf</samp> devices support
this feature.
</p>
<p><code class="code">\H</code> doesn’t produce an input token in GNU <code class="code">troff</code>. As a
consequence, it can be used in requests like <code class="code">mc</code> (which expects
a single character as an argument) to change the font on the fly:
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.mc \H'+5z'x\H'0'
</pre></div></div>
<p>In compatibility mode, <code class="code">gtroff</code> behaves differently: If an
increment or decrement is used, it is always taken relative to the
current type size and not relative to the previously selected font
height. Thus,
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.cp 1
\H'+5'test \H'+5'test
</pre></div></div>
<p>prints the word ‘<samp class="samp">test</samp>’ twice with the same font height (five points
larger than the current font size).
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cS_0027slant_0027"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\S<code class="code">'</code></code><span class="r"><i class="slanted">slant</i></span><code class="t"><code class="code">'</code></code></strong><a class="copiable-link" href='#index-_005cS_0027slant_0027'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cS"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002eslant_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.slant]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002eslant_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002eslant"></a>
<a class="index-entry-id" id="index-changing-the-font-slant-_0028_005cS_0029"></a>
<a class="index-entry-id" id="index-font-slant_002c-changing-_0028_005cS_0029"></a>
<a class="index-entry-id" id="index-slant_002c-font_002c-changing-_0028_005cS_0029"></a>
<p>Slant the current font by <var class="var">slant</var> degrees. Positive values slant to
the right. Only integer values are possible.
</p>
<p>The read-only register <code class="code">.slant</code> contains the font slant as set by
<code class="code">\S</code>.
</p>
<p>Currently, only the <samp class="option">-Tps</samp> and <samp class="option">-Tpdf</samp> devices support
this feature.
</p>
<p><code class="code">\S</code> doesn’t produce an input token in GNU <code class="code">troff</code>. As a
consequence, it can be used in requests like <code class="code">mc</code> (which expects
a single character as an argument) to change the font on the fly:
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.mc \S'20'x\S'0'
</pre></div></div>
<a class="index-entry-id" id="index-CSTR-_002354-errata-3"></a>
<a class="index-entry-id" id="index-CSTR-_002354-erratum_002c-_005cS-escape"></a>
<p>This escape is incorrectly documented in the <abbr class="acronym">AT&T</abbr>
<code class="code">troff</code> manual; the slant is always set to an absolute value.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eul"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ul</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">lines</i></span>]</var><a class="copiable-link" href='#index-_002eul'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ul"></a>
<a class="index-entry-id" id="index-underlining-_0028ul_0029"></a>
<p>The <code class="code">ul</code> request normally underlines subsequent lines if a TTY
output device is used. Otherwise, the lines are printed in italics
(only the term ‘underlined’ is used in the following). The single
argument is the quantity of input lines to be underlined; with no
argument, the next line is underlined. If <var class="var">lines</var> is zero or
negative, stop the effects of <code class="code">ul</code> (if it was active). Requests
and empty lines do not count for computing the number of underlined
input lines, even if they produce some output like <code class="code">tl</code>. Lines
inserted by macros (e.g., invoked by a trap) do count.
</p>
<p>At the beginning of <code class="code">ul</code>, the current font is stored and the
underline font is activated. Within the span of a <code class="code">ul</code> request, it
is possible to change fonts, but after the last line affected by
<code class="code">ul</code> the saved font is restored.
</p>
<p>This number of lines still to be underlined is associated with the
environment (see <a class="pxref" href="#Environments">Environments</a>). The underline font can be changed
with the <code class="code">uf</code> request.
</p>
<p>The <code class="code">ul</code> request does not underline spaces.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ecu"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.cu</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">lines</i></span>]</var><a class="copiable-link" href='#index-_002ecu'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-cu"></a>
<a class="index-entry-id" id="index-continuous-underlining-_0028cu_0029"></a>
<a class="index-entry-id" id="index-underlining_002c-continuous-_0028cu_0029"></a>
<p>The <code class="code">cu</code> request is similar to <code class="code">ul</code> but underlines spaces as
well (if a TTY output device is used).
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002euf"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.uf</code></strong> <var class="def-var-arguments">font</var><a class="copiable-link" href='#index-_002euf'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-uf"></a>
<a class="index-entry-id" id="index-underline-font-_0028uf_0029"></a>
<a class="index-entry-id" id="index-font-for-underlining-_0028uf_0029"></a>
<p>Set the underline font (globally) used by <code class="code">ul</code> and <code class="code">cu</code>. By
default, this is the font at position 2. <var class="var">font</var> can be either
a non-negative font position or the name of a font.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ebd"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.bd</code></strong> <var class="def-var-arguments">font [<span class="r"><i class="slanted">offset</i></span>]</var><a class="copiable-link" href='#index-_002ebd'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-bd"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002ebd-1"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.bd</code></strong> <var class="def-var-arguments">font1 font2 [<span class="r"><i class="slanted">offset</i></span>]</var><a class="copiable-link" href='#index-_002ebd-1'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002eb_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.b]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002eb_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002eb"></a>
<a class="index-entry-id" id="index-imitating-boldface-_0028bd_0029"></a>
<a class="index-entry-id" id="index-boldface_002c-imitating-_0028bd_0029"></a>
<p>Embolden <var class="var">font</var> by overstriking its glyphs offset by <var class="var">offset</var>
units minus one.
</p>
<p>Two syntax forms are available.
</p>
<ul class="itemize mark-bullet">
<li>Imitate a bold font unconditionally. The first argument specifies the
font to embolden, and the second is the number of basic units, minus
one, by which the two glyphs are offset. If the second argument is
missing, emboldening is turned off.
<p><var class="var">font</var> can be either a non-negative font position or the name of a
font.
</p>
<p><var class="var">offset</var> is available in the <code class="code">.b</code> read-only register if a
special font is active; in the <code class="code">bd</code> request, its default unit is
‘<samp class="samp">u</samp>’.
</p>
</li><li><a class="index-entry-id" id="index-fspecial-request_002c-and-imitating-bold"></a>
<a class="index-entry-id" id="index-special"></a>
<a class="index-entry-id" id="index-embolding-of-special-fonts"></a>
<a class="index-entry-id" id="index-special-fonts_002c-emboldening"></a>
Imitate a bold form conditionally. Embolden <var class="var">font1</var> by <var class="var">offset</var>
only if font <var class="var">font2</var> is the current font. This request can be
issued repeatedly to set up different emboldening values for different
current fonts. If the second argument is missing, emboldening is turned
off for this particular current font.
<p>This affects special fonts only (either set up with the <code class="code">special</code>
command in font files or with the <code class="code">fspecial</code> request).
</p></li></ul>
</dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ecs"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.cs</code></strong> <var class="def-var-arguments">font [<span class="r"><i class="slanted">width</i></span> [<span class="r"><i class="slanted">em-size</i></span>]]</var><a class="copiable-link" href='#index-_002ecs'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-cs"></a>
<a class="index-entry-id" id="index-constant-glyph-space-mode-_0028cs_0029"></a>
<a class="index-entry-id" id="index-mode-for-constant-glyph-space-_0028cs_0029"></a>
<a class="index-entry-id" id="index-glyph_002c-constant-space"></a>
<a class="index-entry-id" id="index-ps-request_002c-and-constant-glyph-space-mode"></a>
<p>Switch to and from <em class="dfn">constant glyph space mode</em>. If activated, the
width of every glyph is <em class="math"><var class="var">width</var>/36</em> ems. The em size is given
absolutely by <var class="var">em-size</var>; if this argument is missing, the em value
is taken from the current font size (as set with the <code class="code">ps</code> request)
when the font is effectively in use. Without second and third argument,
constant glyph space mode is deactivated.
</p>
<p>Default scaling unit for <var class="var">em-size</var> is ‘<samp class="samp">z</samp>’; <var class="var">width</var> is an
integer.
</p></dd></dl>
<hr>
</div>
<div class="subsection-level-extent" id="Ligatures-and-Kerning">
<div class="nav-panel">
<p>
Next: <a href="#Dummy-Characters" accesskey="n" rel="next">Dummy Characters</a>, Previous: <a href="#Artificial-Fonts" accesskey="p" rel="prev">Artificial Fonts</a>, Up: <a href="#Using-Fonts" accesskey="u" rel="up">Using Fonts</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Ligatures-and-Kerning-1">5.19.8 Ligatures and Kerning</h4>
<a class="index-entry-id" id="index-ligatures-and-kerning"></a>
<a class="index-entry-id" id="index-kerning-and-ligatures"></a>
<p>Ligatures are groups of characters that are run together, i.e, producing
a single glyph. For example, the letters ‘f’ and ‘i’ can form a
ligature ‘fi’ as in the word ‘file’. This produces a cleaner look
(albeit subtle) to the printed output. Usually, ligatures are not
available in fonts for TTY output devices.
</p>
<p>Most PostScript fonts support the fi and fl ligatures. The C/A/T
typesetter that was the target of <abbr class="acronym">AT&T</abbr> <code class="code">troff</code> also
supported ‘ff’, ‘ffi’, and ‘ffl’ ligatures. Advanced typesetters or
‘expert’ fonts may include ligatures for ‘ft’ and ‘ct’, although GNU
<code class="code">troff</code> does not support these (yet).
</p>
<p>Only the current font is checked for ligatures and kerns; neither
special fonts nor special charcters defined with the <code class="code">char</code> request
(and its siblings) are taken into account.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002elg"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.lg</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">flag</i></span>]</var><a class="copiable-link" href='#index-_002elg'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-lg"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002elg_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.lg]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002elg_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002elg-1"></a>
<a class="index-entry-id" id="index-activating-ligatures-_0028lg_0029"></a>
<a class="index-entry-id" id="index-ligatures_002c-activating-_0028lg_0029"></a>
<a class="index-entry-id" id="index-ligatures-enabled-register-_0028_002elg_0029"></a>
<p>Switch the ligature mechanism on or off; if the parameter is non-zero or
missing, ligatures are enabled, otherwise disabled. Default is on. The
current ligature mode can be found in the read-only register <code class="code">.lg</code>
(set to 1 or 2 if ligatures are enabled, 0 otherwise).
</p>
<p>Setting the ligature mode to 2 enables the two-character ligatures
(fi, fl, and ff) and disables the three-character ligatures (ffi and
ffl).
</p></dd></dl>
<p><em class="dfn">Pairwise kerning</em> is another subtle typesetting mechanism that
modifies the distance between a glyph pair to improve readability. In
most cases (but not always) the distance is decreased.
Typewriter-like fonts and fonts for terminals where all glyphs have the
same width don’t use kerning.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ekern"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.kern</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">flag</i></span>]</var><a class="copiable-link" href='#index-_002ekern'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-kern"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002ekern_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.kern]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ekern_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ekern-1"></a>
<a class="index-entry-id" id="index-activating-kerning-_0028kern_0029"></a>
<a class="index-entry-id" id="index-kerning_002c-activating-_0028kern_0029"></a>
<a class="index-entry-id" id="index-kerning-enabled-register-_0028_002ekern_0029"></a>
<p>Switch kerning on or off. If the parameter is non-zero or missing,
enable pairwise kerning, otherwise disable it. The read-only register
<code class="code">.kern</code> is set to 1 if pairwise kerning is enabled,
0 otherwise.
</p>
<a class="index-entry-id" id="index-dummy-character-_0028_005c_0026_0029_002c-effect-on-kerning"></a>
<a class="index-entry-id" id="index-character_002c-dummy-_0028_005c_0026_0029_002c-effect-on-kerning"></a>
<p>If the font description file contains pairwise kerning information,
glyphs from that font are kerned. Kerning between two glyphs can be
inhibited by placing <code class="code">\&</code> between them: ‘<samp class="samp">V\&A</samp>’.
</p>
<p>See <a class="xref" href="#Font-Description-File-Format">Font Description File Format</a>.
</p></dd></dl>
<a class="index-entry-id" id="index-track-kerning"></a>
<a class="index-entry-id" id="index-kerning_002c-track"></a>
<p><em class="dfn">Track kerning</em> expands or reduces the space between glyphs. This
can be handy, for example, if you need to squeeze a long word onto a
single line or spread some text to fill a narrow column. It must be
used with great care since it is usually considered bad typography if
the reader notices the effect.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002etkf"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.tkf</code></strong> <var class="def-var-arguments">f s1 n1 s2 n2</var><a class="copiable-link" href='#index-_002etkf'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-tkf"></a>
<a class="index-entry-id" id="index-activating-track-kerning-_0028tkf_0029"></a>
<a class="index-entry-id" id="index-track-kerning_002c-activating-_0028tkf_0029"></a>
<p>Enable track kerning for font <var class="var">f</var>. If the current font
is <var class="var">f</var> the width of every glyph is increased by an amount
between <var class="var">n1</var> and <var class="var">n2</var> (<var class="var">n1</var>, <var class="var">n2</var> can be negative); if
the current type size is less than or equal to <var class="var">s1</var> the width is
increased by <var class="var">n1</var>; if it is greater than or equal to <var class="var">s2</var> the
width is increased by <var class="var">n2</var>; if the type size is greater than or
equal to <var class="var">s1</var> and less than or equal to <var class="var">s2</var> the increase in
width is a linear function of the type size.
</p>
<p>The default scaling unit is ‘<samp class="samp">z</samp>’ for <var class="var">s1</var> and <var class="var">s2</var>, ‘<samp class="samp">p</samp>’
for <var class="var">n1</var> and <var class="var">n2</var>.
</p>
<p>The track kerning amount is added even to the rightmost glyph in a line;
for large values it is thus recommended to increase the line length by
the same amount to compensate.
</p></dd></dl>
<hr>
</div>
<div class="subsection-level-extent" id="Italic-Corrections">
<div class="nav-panel">
<p>
Next: <a href="#Dummy-Characters" accesskey="n" rel="next">Dummy Characters</a>, Previous: <a href="#Ligatures-and-Kerning" accesskey="p" rel="prev">Ligatures and Kerning</a>, Up: <a href="#Using-Fonts" accesskey="u" rel="up">Using Fonts</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Italic-Corrections-1">5.19.9 Italic Corrections</h4>
<p>When typesetting adjacent glyphs from typefaces of different slants, the
space between them may require adjustment.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002f-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\/</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_002f-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005c_002f"></a>
<a class="index-entry-id" id="index-italic-correction-_0028_005c_002f_0029"></a>
<a class="index-entry-id" id="index-correction_002c-italic-_0028_005c_002f_0029"></a>
<a class="index-entry-id" id="index-correction-between-oblique-and-upright-glyph-_0028_005c_002f_002c-_005c_002c_0029"></a>
<a class="index-entry-id" id="index-roman-glyph_002c-correction-after-italic-glyph-_0028_005c_002f_0029"></a>
<a class="index-entry-id" id="index-upright-glyph_002c-correction-after-oblique-glyph-_0028_005c_002f_0029"></a>
<p>Apply an <em class="dfn">italic correction</em>: modify the spacing of the preceding
glyph so that the distance between it and the following glyph is correct
if the latter is of upright shape. For example, if an
italic ‘<samp class="samp">f</samp>’ is followed immediately by a roman right
parenthesis, then in many fonts the top right portion of
the ‘<samp class="samp">f</samp>’ overlaps the top left of the right parenthesis, which
is ugly. Use this escape sequence whenever an oblique glyph is
immediately followed by an upright glyph without any intervening space.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002c-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\,</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_002c-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005c_002c"></a>
<a class="index-entry-id" id="index-left-italic-correction-_0028_005c_002c_0029"></a>
<a class="index-entry-id" id="index-correction_002c-left-italic-_0028_005c_002c_0029"></a>
<a class="index-entry-id" id="index-correction-between-upright-and-oblique-glyph-_0028_005c_002f_002c-_005c_002c_0029"></a>
<a class="index-entry-id" id="index-roman-glyph_002c-correction-before-italic-glyph-_0028_005c_002c_0029"></a>
<a class="index-entry-id" id="index-upright-glyph_002c-correction-before-oblique-glyph-_0028_005c_002c_0029"></a>
<p>Apply a <em class="dfn">left italic correction</em>: modify the spacing of the
following glyph so that the distance between it and the preceding
glyph is correct if the latter is of upright shape. For example,
if a roman left parenthesis is immediately followed by an
italic ‘<samp class="samp">f</samp>’, then in many fonts the bottom left portion of
the ‘<samp class="samp">f</samp>’ overlaps the bottom of the left parenthesis, which is
ugly. Use this escape sequence whenever an upright glyph is followed
immediately by an oblique glyph without any intervening space.
</p></dd></dl>
<hr>
</div>
<div class="subsection-level-extent" id="Dummy-Characters">
<div class="nav-panel">
<p>
Previous: <a href="#Italic-Corrections" accesskey="p" rel="prev">Italic Corrections</a>, Up: <a href="#Using-Fonts" accesskey="u" rel="up">Using Fonts</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Dummy-Characters-1">5.19.10 Dummy Characters</h4>
<p>As discussed in <a class="ref" href="#Requests-and-Macros">Requests and Macros</a>, the first character on an
input line is treated specially. Further, formatting a glyph has many
consequences on formatter state (see <a class="pxref" href="#Environments">Environments</a>). Occasionally,
we want to escape this context or embrace some of those consequences
without actually rendering a glyph to the output.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_0026-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\&</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_0026-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005c_0026"></a>
<a class="index-entry-id" id="index-dummy-character-_0028_005c_0026_0029"></a>
<a class="index-entry-id" id="index-character_002c-dummy-_0028_005c_0026_0029"></a>
<p>Interpolate a dummy character, which is constitutive of output but
invisible.<a class="footnote" id="DOCF81" href="#FOOT81"><sup>81</sup></a> Its presence alters the interpretation context of a
subsequent input character, and enjoys several applications.
</p>
<ul class="itemize mark-bullet">
<li>Prevent insertion of extra space after an end-of-sentence character.
<div class="example">
<div class="group"><pre class="example-preformatted">Test.
Test.
⇒ Test. Test.
Test.\&
Test.
⇒ Test. Test.
</pre></div></div>
</li><li>Prevent recognition of a control character.
<div class="example">
<div class="group"><pre class="example-preformatted">.Test
error→ warning: macro 'Test' not defined
\&.Test
⇒ .Test
</pre></div></div>
</li><li>Prevent kerning between two glyphs.
</li><li>Translate a character to “nothing”.
<div class="example">
<div class="group"><pre class="example-preformatted">.tr JIjiK\&k\&UVuv
Post universitum, alea jacta est, OK?
⇒ Post vniversitvm, alea iacta est, O?
</pre></div></div>
</li></ul>
<p>The dummy character escape sequence sees use in macro definitions as a
means of ensuring that arguments are treated as text even if they begin
with spaces or control characters.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de HD \" typeset a simple bold heading
. sp
. ft B
\&\\$1 \" exercise: remove the \&
. ft
. sp
..
.HD .\|.\|.\|surprised?
</pre></div></div>
</dd></dl>
<p>One way to think about the dummy character is to imagine placing the
symbol ‘<samp class="samp">&</samp>’ in the input at a certain location; if doing so has all
the side effects on formatting that you desire except for sticking an
ugly ampersand in the midst of your text, the dummy character is what
you want in its place.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_0029-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\)</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_0029-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005c_0029"></a>
<a class="index-entry-id" id="index-transparent-dummy-character-_0028_005c_0029_0029"></a>
<a class="index-entry-id" id="index-character_002c-transparent-dummy-_0028_005c_0029_0029"></a>
<a class="index-entry-id" id="index-dummy-character_002c-transparent-_0028_005c_0029_0029"></a>
<p>Interpolate a <i class="slanted">transparent</i> dummy character—one that is
transparent to end-of-sentence detection. It behaves as <code class="code">\&</code>,
except that <code class="code">\&</code> is treated as letters and numerals normally are
after ‘<samp class="samp">.</samp>’, ‘<samp class="samp">?</samp>’ and ‘<samp class="samp">!</samp>’; <code class="code">\&</code> cancels end-of-sentence
detection, and <code class="code">\)</code> does not.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de Suffix-&
. nop \&\\$1
..
.
.de Suffix-)
. nop \)\\$1
..
.
Here's a sentence.\c
.Suffix-& '
Another one.\c
.Suffix-) '
And a third.
⇒ Here's a sentence.' Another one.' And a third.
</pre></div></div>
</dd></dl>
<hr>
</div>
</div>
<div class="section-level-extent" id="Manipulating-Type-Size-and-Vertical-Spacing">
<div class="nav-panel">
<p>
Next: <a href="#Colors" accesskey="n" rel="next">Colors</a>, Previous: <a href="#Using-Fonts" accesskey="p" rel="prev">Using Fonts</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Manipulating-Type-Size-and-Vertical-Spacing-1">5.20 Manipulating Type Size and Vertical Spacing</h3>
<a class="index-entry-id" id="index-manipulating-type-size-and-vertical-spacing"></a>
<a class="index-entry-id" id="index-text-baseline-1"></a>
<a class="index-entry-id" id="index-baseline_002c-text-1"></a>
<a class="index-entry-id" id="index-type-size"></a>
<a class="index-entry-id" id="index-size_002c-size"></a>
<a class="index-entry-id" id="index-vertical-spacing-1"></a>
<a class="index-entry-id" id="index-spacing_002c-vertical-1"></a>
<p>These concepts were introduced in <a class="ref" href="#Page-Geometry">Page Geometry</a>. The height of a
font’s tallest glyph is one em, which is equal to the type size in
points.<a class="footnote" id="DOCF82" href="#FOOT82"><sup>82</sup></a> A vertical spacing of less than 120% of
the type size can make a document hard to read. Larger proportions can
be useful to spread the text for annotations or proofreader’s marks. By
default, GNU <code class="code">troff</code> uses 10 point type on 12 point
spacing.
<a class="index-entry-id" id="index-leading"></a>
Typographers call the difference between type size and vertical spacing
<em class="dfn">leading</em>.<a class="footnote" id="DOCF83" href="#FOOT83"><sup>83</sup></a>
</p>
<ul class="mini-toc">
<li><a href="#Changing-the-Type-Size" accesskey="1">Changing the Type Size</a></li>
<li><a href="#Changing-the-Vertical-Spacing" accesskey="2">Changing the Vertical Spacing</a></li>
<li><a href="#Using-Fractional-Type-Sizes" accesskey="3">Using Fractional Type Sizes</a></li>
</ul>
<hr>
<div class="subsection-level-extent" id="Changing-the-Type-Size">
<div class="nav-panel">
<p>
Next: <a href="#Changing-the-Vertical-Spacing" accesskey="n" rel="next">Changing the Vertical Spacing</a>, Previous: <a href="#Manipulating-Type-Size-and-Vertical-Spacing" accesskey="p" rel="prev">Manipulating Type Size and Vertical Spacing</a>, Up: <a href="#Manipulating-Type-Size-and-Vertical-Spacing" accesskey="u" rel="up">Manipulating Type Size and Vertical Spacing</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Changing-the-Type-Size-1">5.20.1 Changing the Type Size</h4>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eps"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ps</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">size</i></span>]</var><a class="copiable-link" href='#index-_002eps'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ps"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002eps-1"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ps</code></strong> <var class="def-var-arguments"><code class="t">+</code><span class="r"><i class="slanted">size</i></span></var><a class="copiable-link" href='#index-_002eps-1'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_002eps-2"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ps</code></strong> <var class="def-var-arguments"><code class="t">-</code><span class="r"><i class="slanted">size</i></span></var><a class="copiable-link" href='#index-_002eps-2'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005cssize"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\s</code><span class="r"><i class="slanted">size</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cssize'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cs"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002es_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.s]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002es_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002es"></a>
<a class="index-entry-id" id="index-changing-type-sizes-_0028ps_002c-_005cs_0029"></a>
<a class="index-entry-id" id="index-type-sizes_002c-changing-_0028ps_002c-_005cs_0029"></a>
<a class="index-entry-id" id="index-point-sizes_002c-changing-_0028ps_002c-_005cs_0029"></a>
<p>Use the <code class="code">ps</code> request or the <code class="code">\s</code> escape sequence to change
(increase, decrease) the type size (in scaled points). Specify
<var class="var">size</var> as either an absolute type size, or as a relative change from
the current size. <code class="code">ps</code> with no argument restores the previous
size. The <code class="code">ps</code> request’s default scaling unit is ‘<samp class="samp">z</samp>’. The
requested size is rounded to the nearest valid size (with ties rounding
down) within the limits supported by the device. If the requested size
is non-positive, it is treated as 1<span class="dmn">u</span>.
</p>
<a class="index-entry-id" id="index-CSTR-_002354-errata-4"></a>
<a class="index-entry-id" id="index-CSTR-_002354-erratum_002c-ps-request"></a>
<a class="index-entry-id" id="index-CSTR-_002354-erratum_002c-_005cs-escape-sequence"></a>
<p>Type size alteration is incorrectly documented in the <abbr class="acronym">AT&T</abbr>
<code class="code">troff</code> manual, which claims “if [the requested size] is invalid,
the next larger valid size will result, with a maximum of
36”.<a class="footnote" id="DOCF84" href="#FOOT84"><sup>84</sup></a>
</p>
<a class="index-entry-id" id="index-type-size-registers-_0028_002es_002c-_002eps_0029"></a>
<a class="index-entry-id" id="index-point-size-registers-_0028_002es_002c-_002eps_0029"></a>
<p>The read-only string-valued register <code class="code">.s</code> interpolates the type
size in points as a decimal fraction; it is associated with the
environment (see <a class="pxref" href="#Environments">Environments</a>). To obtain the type size in scaled
points, interpolate the <code class="code">.ps</code> register instead (see <a class="pxref" href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a>).
</p>
<p>The <code class="code">\s</code> escape sequence supports a variety of syntax forms.
</p>
<dl class="table">
<dt><code class="code">\s<var class="var">n</var></code></dt>
<dd><p>Set the type size to <var class="var">n</var> points. <var class="var">n</var> must be a single
digit. If <var class="var">n</var> is 0, restore the previous size.
</p>
</dd>
<dt><code class="code">\s+<var class="var">n</var></code></dt>
<dt><code class="code">\s-<var class="var">n</var></code></dt>
<dd><p>Increase or decrease the type size by <var class="var">n</var> points.
<var class="var">n</var> must be exactly one digit.
</p>
</dd>
<dt><code class="code">\s(<var class="var">nn</var></code></dt>
<dd><p>Set the type size to <var class="var">nn</var> points. <var class="var">nn</var> must be exactly two
digits.
</p>
</dd>
<dt><code class="code">\s+(<var class="var">nn</var></code></dt>
<dt><code class="code">\s-(<var class="var">nn</var></code></dt>
<dt><code class="code">\s(+<var class="var">nn</var></code></dt>
<dt><code class="code">\s(-<var class="var">nn</var></code></dt>
<dd><p>Alter the type size in points by the two-digit value <var class="var">nn</var>.
</p></dd>
</dl>
<p>See <a class="xref" href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a>, for further syntactical forms of the
<code class="code">\s</code> escape sequence that additionally accept decimal fractions.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">snap, snap,
.ps +2
grin, grin,
.ps +2
wink, wink, \s+2nudge, nudge,\s+8 say no more!
.ps 10
</pre></div></div>
</dd></dl>
<p>The <code class="code">\s</code> escape sequence affects the environment immediately and
doesn’t produce an input token. Consequently, it can be used in
requests like <code class="code">mc</code>, which expects a single character as an
argument, to change the type size on the fly.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.mc \s[20]x\s[0]
</pre></div></div>
<dl class="first-deffn">
<dt class="deffn" id="index-_002esizes"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.sizes</code></strong> <var class="def-var-arguments">s1 s2 … sn [<code class="t">0</code>]</var><a class="copiable-link" href='#index-_002esizes'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-sizes-1"></a>
<p>The <samp class="file">DESC</samp> file specifies which type sizes are allowed by the
output device; see <a class="ref" href="#DESC-File-Format"><samp class="file">DESC</samp> File Format</a>. Use the <code class="code">sizes</code> request
to change this set of permissible sizes. Arguments are in scaled
points; see <a class="ref" href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a>. Each can be a single
type size (such as ‘<samp class="samp">12000</samp>’), or a range of sizes (such as
‘<samp class="samp">4000-72000</samp>’). You can optionally end the list with a ‘<samp class="samp">0</samp>’.
</p></dd></dl>
<hr>
</div>
<div class="subsection-level-extent" id="Changing-the-Vertical-Spacing">
<div class="nav-panel">
<p>
Next: <a href="#Using-Fractional-Type-Sizes" accesskey="n" rel="next">Using Fractional Type Sizes</a>, Previous: <a href="#Changing-the-Type-Size" accesskey="p" rel="prev">Changing the Type Size</a>, Up: <a href="#Manipulating-Type-Size-and-Vertical-Spacing" accesskey="u" rel="up">Manipulating Type Size and Vertical Spacing</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Changing-the-Vertical-Spacing-1">5.20.2 Changing the Vertical Spacing</h4>
<dl class="first-deffn">
<dt class="deffn" id="index-_002evs"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.vs</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">space</i></span>]</var><a class="copiable-link" href='#index-_002evs'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-vs"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002evs-1"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.vs</code></strong> <var class="def-var-arguments"><code class="t">+</code><span class="r"><i class="slanted">space</i></span></var><a class="copiable-link" href='#index-_002evs-1'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_002evs-2"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.vs</code></strong> <var class="def-var-arguments"><code class="t">-</code><span class="r"><i class="slanted">space</i></span></var><a class="copiable-link" href='#index-_002evs-2'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002ev_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.v]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ev_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ev"></a>
<a class="index-entry-id" id="index-changing-vertical-line-spacing-_0028vs_0029"></a>
<a class="index-entry-id" id="index-vertical-line-spacing_002c-changing-_0028vs_0029"></a>
<a class="index-entry-id" id="index-vertical-line-spacing-register-_0028_002ev_0029"></a>
<p>Set the vertical spacing to, or alter it by, <var class="var">space</var>. The default
scaling unit is ‘<samp class="samp">p</samp>’. If <code class="code">vs</code> is called without an argument,
the vertical spacing is reset to the previous value before the last call
to <code class="code">vs</code>.
<a class="index-entry-id" id="index-_002eV-register_002c-and-vs"></a>
GNU <code class="code">troff</code> emits a warning in category ‘<samp class="samp">range</samp>’ if <var class="var">space</var>
is negative; the vertical spacing is then set to the smallest possible
positive value, the vertical motion quantum (as found in the <code class="code">.V</code>
register).
</p>
<p>‘<samp class="samp">.vs 0</samp>’<!-- /@w --> isn’t saved in a diversion since it doesn’t result in
a vertical motion. You must explicitly issue this request before
interpolating the diversion.
</p>
<p>The read-only register <code class="code">.v</code> contains the vertical spacing; it is
associated with the environment (see <a class="pxref" href="#Environments">Environments</a>).
</p></dd></dl>
<a class="index-entry-id" id="index-vertical-line-spacing_002c-effective-value"></a>
<p>When a break occurs, GNU <code class="code">troff</code> performs the following procedure.
</p>
<ul class="itemize mark-bullet">
<li><a class="index-entry-id" id="index-extra-pre_002dvertical-line-space-_0028_005cx_0029"></a>
<a class="index-entry-id" id="index-line-space_002c-extra-pre_002dvertical-_0028_005cx_0029"></a>
Move the drawing position vertically by the <em class="dfn">extra pre-vertical line
space</em>, the minimum of all negative <code class="code">\x</code> escape sequence arguments
in the pending output line.
</li><li>Move the drawing position vertically by the vertical line spacing.
</li><li>Write out the pending output line.
</li><li><a class="index-entry-id" id="index-extra-post_002dvertical-line-space-_0028_005cx_0029"></a>
<a class="index-entry-id" id="index-line-space_002c-extra-post_002dvertical-_0028_005cx_0029"></a>
Move the drawing position vertically by the <em class="dfn">extra post-vertical line
space</em>, the maximum of all positive <code class="code">\x</code> escape sequence arguments
in the line that has just been output.
</li><li><a class="index-entry-id" id="index-post_002dvertical-line-spacing"></a>
<a class="index-entry-id" id="index-line-spacing_002c-post_002dvertical-_0028pvs_0029"></a>
Move the drawing position vertically by the <em class="dfn">post-vertical line
spacing</em> (see below).
</li></ul>
<a class="index-entry-id" id="index-double_002dspacing-_0028vs_002c-pvs_0029"></a>
<p>Prefer <code class="code">vs</code> or <code class="code">pvs</code> over <code class="code">ls</code> to produce double-spaced
documents. <code class="code">vs</code> and <code class="code">pvs</code> have finer granularity than
<code class="code">ls</code>; moreover, some preprocessors assume single spacing.
See <a class="xref" href="#Manipulating-Spacing">Manipulating Spacing</a>, regarding the <code class="code">\x</code> escape sequence and
the <code class="code">ls</code> request.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002epvs"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.pvs</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">space</i></span>]</var><a class="copiable-link" href='#index-_002epvs'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-pvs"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002epvs-1"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.pvs</code></strong> <var class="def-var-arguments"><code class="t">+</code><span class="r"><i class="slanted">space</i></span></var><a class="copiable-link" href='#index-_002epvs-1'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_002epvs-2"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.pvs</code></strong> <var class="def-var-arguments"><code class="t">-</code><span class="r"><i class="slanted">space</i></span></var><a class="copiable-link" href='#index-_002epvs-2'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002epvs_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.pvs]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002epvs_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002epvs-3"></a>
<a class="index-entry-id" id="index-ls-request_002c-alternative-to-_0028pvs_0029"></a>
<a class="index-entry-id" id="index-post_002dvertical-line-spacing_002c-changing-_0028pvs_0029"></a>
<a class="index-entry-id" id="index-post_002dvertical-line-spacing-register-_0028_002epvs_0029"></a>
<p>Set the post-vertical spacing to, or alter it by, <var class="var">space</var>. The
default scaling unit is ‘<samp class="samp">p</samp>’. If <code class="code">pvs</code> is called without an
argument, the post-vertical spacing is reset to the previous value
before the last call to <code class="code">pvs</code>. GNU <code class="code">troff</code> emits a warning in
category ‘<samp class="samp">range</samp>’ if <var class="var">space</var> is negative; the post-vertical
spacing is then set to zero.
</p>
<p>The read-only register <code class="code">.pvs</code> contains the post-vertical spacing;
it is associated with the environment (see <a class="pxref" href="#Environments">Environments</a>).
</p></dd></dl>
<hr>
</div>
<div class="subsection-level-extent" id="Using-Fractional-Type-Sizes">
<div class="nav-panel">
<p>
Previous: <a href="#Changing-the-Type-Size" accesskey="p" rel="prev">Changing the Type Size</a>, Up: <a href="#Manipulating-Type-Size-and-Vertical-Spacing" accesskey="u" rel="up">Manipulating Type Size and Vertical Spacing</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Using-Fractional-Type-Sizes-1">5.20.3 Using Fractional Type Sizes</h4>
<a class="index-entry-id" id="index-fractional-type-sizes"></a>
<a class="index-entry-id" id="index-fractional-point-sizes"></a>
<a class="index-entry-id" id="index-type-sizes_002c-fractional"></a>
<a class="index-entry-id" id="index-point-sizes_002c-fractional"></a>
<a class="index-entry-id" id="index-sizes_002c-fractional-type"></a>
<p>AT&T <code class="code">troff</code> interpreted all type size measurements in points.
Combined with integer arithmetic, this design choice made it impossible
to support, for instance, ten and a half-point type. In GNU
<code class="code">troff</code>, an output device can select a scaling factor that
subdivides a point into “scaled points”. A type size expressed in
scaled points can thus represent a non-integral type size.
</p>
<a class="index-entry-id" id="index-s-scaling-unit"></a>
<a class="index-entry-id" id="index-unit_002c-scaling_002c-s"></a>
<a class="index-entry-id" id="index-scaling-unit-s"></a>
<a class="index-entry-id" id="index-z-scaling-unit"></a>
<a class="index-entry-id" id="index-unit_002c-scaling_002c-z"></a>
<a class="index-entry-id" id="index-scaling-unit-z"></a>
<a class="index-entry-id" id="index-ps-request_002c-with-fractional-type-sizes"></a>
<a class="index-entry-id" id="index-cs-request_002c-with-fractional-type-sizes"></a>
<a class="index-entry-id" id="index-tkf-request_002c-with-fractional-type-sizes"></a>
<a class="index-entry-id" id="index-_005cH_002c-with-fractional-type-sizes"></a>
<a class="index-entry-id" id="index-_005cs_002c-with-fractional-type-sizes"></a>
<p>A <em class="dfn">scaled point</em> is equal to <em class="math">1/<var class="var">sizescale</var></em> points, where
<var class="var">sizescale</var> is specified in the device description file <samp class="file">DESC</samp>,
and defaults to 1.<a class="footnote" id="DOCF85" href="#FOOT85"><sup>85</sup></a> Requests and escape sequences in GNU <code class="code">troff</code> interpret
arguments that represent a type size in scaled points, which the
formatter multiplies by <var class="var">sizescale</var> and converts to an integer.
Arguments treated in this way comprise those to the escape sequences
<code class="code">\H</code> and <code class="code">\s</code>, to the request <code class="code">ps</code>, the third argument to
the <code class="code">cs</code> request, and the second and fourth arguments to the
<code class="code">tkf</code> request. Scaled points may be specified explicitly with the
<code class="code">z</code> scaling unit.
</p>
<p>For example, if <var class="var">sizescale</var> is 1000, then a scaled point is one
thousandth of a point. The request ‘<samp class="samp">.ps 10.5</samp>’ is synonymous with
‘<samp class="samp">.ps 10.5z</samp>’ and sets the type size to 10,500 scaled points, or
10.5 points. Consequently, in GNU <code class="code">troff</code>, the register
<code class="code">.s</code> can interpolate a non-integral type size.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005b_002eps_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.ps]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002eps_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002eps-3"></a>
<p>This read-only register interpolates the type size in scaled points; it
is associated with the environment (see <a class="pxref" href="#Environments">Environments</a>).
</p></dd></dl>
<p>It makes no sense to use the ‘<samp class="samp">z</samp>’ scaling unit in a numeric
expression whose default scaling unit is neither ‘<samp class="samp">u</samp>’ nor ‘<samp class="samp">z</samp>’,
so GNU <code class="code">troff</code> disallows this. Similarly, it is nonsensical to use
a scaling unit other than ‘<samp class="samp">z</samp>’ or ‘<samp class="samp">u</samp>’ in a numeric expression
whose default scaling unit is ‘<samp class="samp">z</samp>’, and so GNU <code class="code">troff</code>
disallows this as well.
</p>
<p>Another GNU <code class="code">troff</code> scaling unit, ‘<samp class="samp">s</samp>’, multiplies by the
number of basic units in a scaled point. Thus, ‘<samp class="samp">\n[.ps]s</samp>’ is equal
to ‘<samp class="samp">1m</samp>’ by definition. Do not confuse the ‘<samp class="samp">s</samp>’ and ‘<samp class="samp">z</samp>’
scaling units.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005b_002epsr_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.psr]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002epsr_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002epsr"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002esr_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.sr]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002esr_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002esr"></a>
<a class="index-entry-id" id="index-last_002drequested-type-size-registers-_0028_002epsr_002c-_002esr_0029"></a>
<a class="index-entry-id" id="index-type-size-registers_002c-last_002drequested-_0028_002epsr_002c-_002esr_0029"></a>
<a class="index-entry-id" id="index-last_002drequested-point-size-registers-_0028_002epsr_002c-_002esr_0029"></a>
<a class="index-entry-id" id="index-point-size-registers_002c-last_002drequested-_0028_002epsr_002c-_002esr_0029"></a>
<a class="index-entry-id" id="index-_002eps-register_002c-in-comparison-with-_002epsr"></a>
<a class="index-entry-id" id="index-_002es-register_002c-in-comparison-with-_002esr"></a>
<p>Output devices may be limited in the type sizes they can employ. The
<code class="code">.s</code> and <code class="code">.ps</code> registers represent the type size selected by
the output driver as it understands a device’s capability. The last
<em class="emph">requested</em> type size is interpolated in scaled points by the
read-only register <code class="code">.psr</code> and in points as a decimal fraction by
the read-only string-valued register <code class="code">.sr</code>. Both are associated
with the environment (see <a class="pxref" href="#Environments">Environments</a>).
</p>
<p>For example, if a type size of 10.95 points is requested, and the
nearest size permitted by a <code class="code">sizes</code> request (or by the <code class="code">sizes</code>
or <code class="code">sizescale</code> directives in the device’s <samp class="file">DESC</samp> file) is 11
points, the output driver uses the latter value.
</p></dd></dl>
<p>The <code class="code">\s</code> escape sequence offers the following syntax forms that
work with fractional type sizes and accept scaling units. You may of
course give them integral arguments. The delimited forms need not use
the neutral apostrophe; see <a class="ref" href="#Delimiters">Delimiters</a>.
</p>
<dl class="table">
<dt><code class="code">\s[<var class="var">n</var>]</code></dt>
<dt><code class="code">\s'<var class="var">n</var>'</code></dt>
<dd><p>Set the type size to <var class="var">n</var> scaled points; <var class="var">n</var> is a
numeric expression with a default scaling unit of ‘<samp class="samp">z</samp>’.
</p>
</dd>
<dt><code class="code">\s[+<var class="var">n</var>]</code></dt>
<dt><code class="code">\s[-<var class="var">n</var>]</code></dt>
<dt><code class="code">\s+[<var class="var">n</var>]</code></dt>
<dt><code class="code">\s-[<var class="var">n</var>]</code></dt>
<dt><code class="code">\s'+<var class="var">n</var>'</code></dt>
<dt><code class="code">\s'-<var class="var">n</var>'</code></dt>
<dt><code class="code">\s+'<var class="var">n</var>'</code></dt>
<dt><code class="code">\s-'<var class="var">n</var>'</code></dt>
<dd><p>Increase or decrease the type size by <var class="var">n</var> scaled points;
<var class="var">n</var> is a numeric expression (which may start with a minus sign)
with a default scaling unit of ‘<samp class="samp">z</samp>’.
</p></dd>
</dl>
<hr>
</div>
</div>
<div class="section-level-extent" id="Colors">
<div class="nav-panel">
<p>
Next: <a href="#Strings" accesskey="n" rel="next">Strings</a>, Previous: <a href="#Manipulating-Type-Size-and-Vertical-Spacing" accesskey="p" rel="prev">Manipulating Type Size and Vertical Spacing</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Colors-1">5.21 Colors</h3>
<a class="index-entry-id" id="index-colors"></a>
<a class="index-entry-id" id="index-stroke-color"></a>
<a class="index-entry-id" id="index-color_002c-stroke"></a>
<a class="index-entry-id" id="index-fill-color"></a>
<a class="index-entry-id" id="index-color_002c-fill"></a>
<p>GNU <code class="code">troff</code> supports color output with a variety of color spaces
and up to 16 bits per channel. Some devices, particularly terminals,
may be more limited. When color support is enabled, two colors are
current at any given time: the <em class="dfn">stroke color</em>, with which glyphs,
rules (lines), and geometric objects like circles and polygons are
drawn, and the <em class="dfn">fill color</em>, which can be used to paint the interior
of a closed geometric figure.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ecolor"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.color</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">n</i></span>]</var><a class="copiable-link" href='#index-_002ecolor'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-color"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002ecolor_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.color]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ecolor_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ecolor-1"></a>
<p>If <var class="var">n</var> is missing or non-zero, enable the output of color-related
device-independent output commands (this is the default); otherwise,
disable them. This request sets a global flag; it does not produce an
input token (see <a class="pxref" href="#Gtroff-Internals"><code class="code">gtroff</code> Internals</a>).
</p>
<p>The read-only register <code class="code">.color</code> is 1 if colors are enabled,
0 otherwise.
</p>
<p>Color can also be disabled with the <samp class="option">-c</samp> command-line option.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002edefcolor"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.defcolor</code></strong> <var class="def-var-arguments">ident scheme color-component …</var><a class="copiable-link" href='#index-_002edefcolor'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-defcolor"></a>
<p>Define a color named <var class="var">ident</var>. <var class="var">scheme</var> selects a color space
and determines the quantity of required <var class="var">color-component</var>s; it must
be one of ‘<samp class="samp">rgb</samp>’ (three components), ‘<samp class="samp">cmy</samp>’ (three), ‘<samp class="samp">cmyk</samp>’
(four), or ‘<samp class="samp">gray</samp>’ (one). ‘<samp class="samp">grey</samp>’ is accepted as a synonym of
‘<samp class="samp">gray</samp>’. The color components can be encoded as a single
hexadecimal value starting with ‘<samp class="samp">#</samp>’ or ‘<samp class="samp">##</samp>’. The former
indicates that each component is in the range 0–255 (0–FF), the latter
the range 0–65,535 (0–FFFF).
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.defcolor half gray #7f
.defcolor pink rgb #FFC0CB
.defcolor magenta rgb ##ffff0000ffff
</pre></div></div>
<a class="index-entry-id" id="index-f-scaling-unit"></a>
<a class="index-entry-id" id="index-unit_002c-scaling_002c-f"></a>
<a class="index-entry-id" id="index-scaling-unit-f"></a>
<p>Alternatively, each color component can be specified as a decimal
fraction in the range 0–1, interpreted using a default scaling
unit of <code class="code">f</code>, which multiplies its value by 65,536 (but
clamps it at 65,535).
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.defcolor gray50 rgb 0.5 0.5 0.5
.defcolor darkgreen rgb 0.1f 0.5f 0.2f
</pre></div></div>
</dd></dl>
<a class="index-entry-id" id="index-default-color"></a>
<a class="index-entry-id" id="index-color_002c-default"></a>
<p>Each output device has a color named ‘<samp class="samp">default</samp>’, which cannot be
redefined. A device’s default stroke and fill colors are not
necessarily the same. For the <code class="code">dvi</code>, <code class="code">html</code>, <code class="code">pdf</code>,
<code class="code">ps</code>, and <code class="code">xhtml</code> output devices, GNU <code class="code">troff</code>
automatically loads a macro file defining many color names at startup.
By the same mechanism, the devices supported by <code class="code">grotty</code> recognize
the eight standard ISO 6429/EMCA-48 color names.<a class="footnote" id="DOCF86" href="#FOOT86"><sup>86</sup></a>
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002egcolor"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.gcolor</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">color</i></span>]</var><a class="copiable-link" href='#index-_002egcolor'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-gcolor"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cmc"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\m</code><span class="r"><i class="slanted">c</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cmc'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cm"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cm_0028co"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\m(</code><span class="r"><i class="slanted">co</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cm_0028co'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005cm_005bcolor_005d"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\m[</code><span class="r"><i class="slanted">color</i></span><code class="t">]</code></strong><a class="copiable-link" href='#index-_005cm_005bcolor_005d'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002em_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.m]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002em_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002em"></a>
<p>Set the stroke color to <var class="var">color</var>.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.gcolor red
The next words
.gcolor
\m[red]are in red\m[]
and these words are in the previous color.
</pre></div></div>
<p>The escape sequence <code class="code">\m[]</code> restores the previous stroke color, as
does a <code class="code">gcolor</code> request without an argument.
</p>
<a class="index-entry-id" id="index-stroke-color-name-register-_0028_002em_0029"></a>
<a class="index-entry-id" id="index-name_002c-stroke-color_002c-register-_0028_002em_0029"></a>
<a class="index-entry-id" id="index-color-name_002c-stroke_002c-register-_0028_002em_0029"></a>
<p>The name of the current stroke color is available in the read-only
string-valued register ‘<samp class="samp">.m</samp>’; it is associated with the environment
(see <a class="pxref" href="#Environments">Environments</a>). It interpolates nothing when the stroke color
is the default.
</p>
<p><code class="code">\m</code> doesn’t produce an input token in GNU <code class="code">troff</code>
(see <a class="pxref" href="#Gtroff-Internals"><code class="code">gtroff</code> Internals</a>). It therefore can be used in requests like
<code class="code">mc</code> (which expects a single character as an argument) to change
the color on the fly:
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.mc \m[red]x\m[]
</pre></div></div>
</dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002efcolor"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.fcolor</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">color</i></span>]</var><a class="copiable-link" href='#index-_002efcolor'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-fcolor"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cMc"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\M</code><span class="r"><i class="slanted">c</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cMc'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cM"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cM_0028co"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\M(</code><span class="r"><i class="slanted">co</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cM_0028co'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005cM_005bcolor_005d"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\M[</code><span class="r"><i class="slanted">color</i></span><code class="t">]</code></strong><a class="copiable-link" href='#index-_005cM_005bcolor_005d'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002eM_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.M]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002eM_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002eM"></a>
<p>Set the fill color for objects drawn with <code class="code">\D'…'</code> escape
sequences. The escape sequence <code class="code">\M[]</code> restores the previous fill
color, as does an <code class="code">fcolor</code> request without an argument.
</p>
<a class="index-entry-id" id="index-background-color-name-register-_0028_002eM_0029"></a>
<a class="index-entry-id" id="index-name_002c-background-color_002c-register-_0028_002eM_0029"></a>
<a class="index-entry-id" id="index-color-name_002c-background_002c-register-_0028_002eM_0029"></a>
<a class="index-entry-id" id="index-fill-color-name-register-_0028_002eM_0029"></a>
<a class="index-entry-id" id="index-name_002c-fill-color_002c-register-_0028_002eM_0029"></a>
<a class="index-entry-id" id="index-color-name_002c-fill_002c-register-_0028_002eM_0029"></a>
<p>The name of the current fill color is available in the read-only
string-valued register ‘<samp class="samp">.M</samp>’; it is associated with the environment
(see <a class="pxref" href="#Environments">Environments</a>). It interpolates nothing when the fill color
is the default. <code class="code">\M</code> doesn’t produce an input token in GNU
<code class="code">troff</code>.
</p>
<p>Create an ellipse with a red interior as follows.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">\M[red]\h'0.5i'\D'E 2i 1i'\M[]
</pre></div></div>
</dd></dl>
<hr>
</div>
<div class="section-level-extent" id="Strings">
<div class="nav-panel">
<p>
Next: <a href="#Conditionals-and-Loops" accesskey="n" rel="next">Conditionals and Loops</a>, Previous: <a href="#Colors" accesskey="p" rel="prev">Colors</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Strings-1">5.22 Strings</h3>
<a class="index-entry-id" id="index-strings"></a>
<p>GNU <code class="code">troff</code> supports strings primarily for user convenience.
Conventionally, if one would define a macro only to interpolate a small
amount of text, without invoking requests or calling any other macros,
one defines a string instead. Only one string is predefined by the
language.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002a_005b_002eT_005d"><span class="category-def">String: </span><span><strong class="def-name"><code class="t">\*[.T]</code></strong><a class="copiable-link" href='#index-_005c_002a_005b_002eT_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002eT"></a>
<a class="index-entry-id" id="index-_002eT-1"></a>
<a class="index-entry-id" id="index-output-device-name-string-_0028_002eT_0029-1"></a>
<p>Contains the name of the output device (for example, ‘<samp class="samp">utf8</samp>’ or
‘<samp class="samp">pdf</samp>’).
</p></dd></dl>
<p>The <code class="code">ds</code> request creates a string with a specified name and
contents and the <code class="code">\*</code> escape sequence dereferences its name,
interpolating its contents. If the string named by the <code class="code">\*</code> escape
sequence does not exist, it is defined as empty, nothing is
interpolated, and a warning in category ‘<samp class="samp">mac</samp>’ is emitted.
See <a class="xref" href="#Warnings">Warnings</a>, for information about the enablement and suppression of
warnings.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eds-1"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ds</code></strong> <var class="def-var-arguments">name [<span class="r"><i class="slanted">contents</i></span>]</var><a class="copiable-link" href='#index-_002eds-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ds-1"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002eds1"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ds1</code></strong> <var class="def-var-arguments">name [<span class="r"><i class="slanted">contents</i></span>]</var><a class="copiable-link" href='#index-_002eds1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ds1"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005c_002an"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\*</code><span class="r"><i class="slanted">n</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_002an'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005c_002a"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005c_002a_0028nm"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\*(</code><span class="r"><i class="slanted">nm</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_002a_0028nm'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005c_002a_005bname-_005barg1-arg2-_2026_005d_005d"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\*[</code><span class="r"><i class="slanted">name <span class="sansserif">[</span>arg1 arg2 …<span class="sansserif">]</span></i></span><code class="t">]</code></strong><a class="copiable-link" href='#index-_005c_002a_005bname-_005barg1-arg2-_2026_005d_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-string-interpolation-_0028_005c_002a_0029"></a>
<a class="index-entry-id" id="index-string-expansion-_0028_005c_002a_0029"></a>
<a class="index-entry-id" id="index-interpolation-of-strings-_0028_005c_002a_0029"></a>
<a class="index-entry-id" id="index-expansion-of-strings-_0028_005c_002a_0029"></a>
<a class="index-entry-id" id="index-string-arguments"></a>
<a class="index-entry-id" id="index-arguments_002c-to-strings"></a>
<p>Define a string called <var class="var">name</var> with contents <var class="var">contents</var>. If
<var class="var">name</var> already exists as an alias, the target of the alias is
redefined; see <code class="code">als</code> and <code class="code">rm</code> below. If <code class="code">ds</code> is called
with only one argument, <var class="var">name</var> is defined as an empty string.
Otherwise, GNU <code class="code">troff</code> stores <var class="var">contents</var> in copy
mode.<a class="footnote" id="DOCF87" href="#FOOT87"><sup>87</sup></a>
</p>
<p>The <code class="code">\*</code> escape sequence interpolates a previously defined string
variable <var class="var">name</var> (one-character name <var class="var">n</var>, two-character name
<var class="var">nm</var>). The bracketed interpolation form accepts arguments that are
handled as macro arguments are; recall <a class="ref" href="#Calling-Macros">Calling Macros</a>. In
contrast to macro calls, however, if a closing bracket ‘<samp class="samp">]</samp>’ occurs
in a string argument, that argument must be enclosed in double quotes.
<code class="code">\*</code> is interpreted even in copy mode. When defining strings,
argument interpolations must be escaped if they are to reference
parameters from the calling context; See <a class="xref" href="#Parameters">Parameters</a>.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ds cite (\\$1, \\$2)
Gray codes are explored in \*[cite Morgan 1998].
⇒ Gray codes are explored in (Morgan, 1998).
</pre></div></div>
<a class="index-entry-id" id="index-trailing-spaces-in-string-definitions-and-appendments"></a>
<a class="index-entry-id" id="index-comments_002c-with-ds"></a>
<a class="index-entry-id" id="index-ds-request_002c-and-comments"></a>
<p><strong class="strong">Caution:</strong> Unlike other requests, the second argument to the
<code class="code">ds</code> request consumes the remainder of the input line, including
trailing spaces. This means that comments on a line with such a request
can introduce unwanted space into a string when they are set off from
the material they annotate, as is conventional.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ds H2O H\v'+.3m'\s'-2'2\v'-.3m'\s0O \" water
</pre></div></div>
<p>Instead, place the comment on another line or put the comment escape
sequence immediately adjacent to the last character of the string.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ds H2O H\v'+.3m'\s'-2'2\v'-.3m'\s0O\" water
</pre></div></div>
<p>Ending string definitions (and appendments) with a comment, even an
empty one, prevents unwanted space from creeping into them during source
document maintenance.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ds author Alice Pleasance Liddell\"
.ds empty \" might be appended to later with .as
</pre></div></div>
<a class="index-entry-id" id="index-trailing-double-quotes-in-strings"></a>
<a class="index-entry-id" id="index-double-quotes_002c-trailing_002c-in-strings"></a>
<a class="index-entry-id" id="index-ds-request_002c-and-double-quotes"></a>
<a class="index-entry-id" id="index-leading-spaces-with-ds"></a>
<a class="index-entry-id" id="index-spaces-with-ds"></a>
<a class="index-entry-id" id="index-ds-request_002c-and-leading-spaces"></a>
<p>An initial neutral double quote <code class="code">"</code> in <var class="var">contents</var> is stripped
to allow embedding of leading spaces. Any other <code class="code">"</code> is interpreted
literally, but it is wise to use the special character escape sequence
<code class="code">\[dq]</code> instead if the string might be interpolated as part of a
macro argument; see <a class="ref" href="#Calling-Macros">Calling Macros</a>.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ds salutation " Yours in a white wine sauce,\"
.ds c-var-defn " char mydate[]=\[dq]2020-07-29\[dq];\"
</pre></div></div>
<a class="index-entry-id" id="index-multi_002dline-strings"></a>
<a class="index-entry-id" id="index-strings_002c-multi_002dline"></a>
<a class="index-entry-id" id="index-newline-character_002c-in-strings_002c-escaping"></a>
<a class="index-entry-id" id="index-escaping-newline-characters_002c-in-strings"></a>
<p>Strings are not limited to a single input line of text.
<code class="code">\<kbd class="key">RET</kbd></code> works just as it does elsewhere. The resulting string
is stored <em class="emph">without</em> the newlines. Care is therefore required when
interpolating strings while filling is disabled.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ds foo This string contains \
text on multiple lines \
of input.
</pre></div></div>
<p>It is not possible to embed a newline in a string that will be
interpreted as such when the string is interpolated. To achieve that
effect, use <code class="code">\*</code> to interpolate a macro instead; see <a class="ref" href="#Punning-Names">Punning Names</a>.
</p>
<p>Because strings are similar to macros, they too can be defined so as to
suppress AT&T <code class="code">troff</code> compatibility mode when used; see
<a class="ref" href="#Writing-Macros">Writing Macros</a> and <a class="ref" href="#Compatibility-Mode">Compatibility Mode</a>. The <code class="code">ds1</code>
request defines a string such that compatibility mode is off when the
string is later interpolated. To be more precise, a <em class="dfn">compatibility
save</em> input token is inserted at the beginning of the string, and a
<em class="dfn">compatibility restore</em> input token at the end.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.nr xxx 12345
.ds aa The value of xxx is \\n[xxx].
.ds1 bb The value of xxx is \\n[xxx].
.
.cp 1
.
\*(aa
error→ warning: register '[' not defined
⇒ The value of xxx is 0xxx].
\*(bb
⇒ The value of xxx is 12345.
</pre></div></div>
</dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eas"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.as</code></strong> <var class="def-var-arguments">name [<span class="r"><i class="slanted">contents</i></span>]</var><a class="copiable-link" href='#index-_002eas'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-as"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002eas1"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.as1</code></strong> <var class="def-var-arguments">name [<span class="r"><i class="slanted">contents</i></span>]</var><a class="copiable-link" href='#index-_002eas1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-as1"></a>
<a class="index-entry-id" id="index-appending-to-a-string-_0028as_0029"></a>
<a class="index-entry-id" id="index-string_002c-appending-_0028as_0029"></a>
<p>The <code class="code">as</code> request is similar to <code class="code">ds</code> but appends <var class="var">contents</var>
to the string stored as <var class="var">name</var> instead of redefining it. If
<var class="var">name</var> doesn’t exist yet, it is created. If <code class="code">as</code> is called
with only one argument, no operation is performed (beyond dereferencing
the string).
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.as salutation " with shallots, onions and garlic,\"
</pre></div></div>
<p>The <code class="code">as1</code> request is similar to <code class="code">as</code>, but compatibility mode
is switched off when the appended portion of the string is later
interpolated. To be more precise, a <em class="dfn">compatibility save</em> input
token is inserted at the beginning of the appended string, and a
<em class="dfn">compatibility restore</em> input token at the end.
</p></dd></dl>
<p>Several requests exist to perform rudimentary string operations.
Strings can be queried (<code class="code">length</code>) and modified (<code class="code">chop</code>,
<code class="code">substring</code>, <code class="code">stringup</code>, <code class="code">stringdown</code>), and their names
can be manipulated through renaming, removal, and aliasing (<code class="code">rn</code>,
<code class="code">rm</code>, <code class="code">als</code>).
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002elength"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.length</code></strong> <var class="def-var-arguments">reg anything</var><a class="copiable-link" href='#index-_002elength'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-length"></a>
<a class="index-entry-id" id="index-length-of-a-string-_0028length_0029"></a>
<a class="index-entry-id" id="index-string_002c-length-of-_0028length_0029"></a>
<a class="index-entry-id" id="index-length-request_002c-and-copy-mode"></a>
<a class="index-entry-id" id="index-copy-mode_002c-and-length-request"></a>
<a class="index-entry-id" id="index-mode_002c-copy_002c-and-length-request"></a>
<p>Compute the number of characters of <var class="var">anything</var> and store the count
in the register <var class="var">reg</var>. If <var class="var">reg</var> doesn’t exist, it is created.
<var class="var">anything</var> is read in copy mode.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ds xxx abcd\h'3i'efgh
.length yyy \*[xxx]
\n[yyy]
⇒ 14
</pre></div></div>
</dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002echop"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.chop</code></strong> <var class="def-var-arguments">object</var><a class="copiable-link" href='#index-_002echop'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-chop"></a>
<p>Remove the last character from the macro, string, or diversion named
<var class="var">object</var>. This is useful for removing the newline from the end of a
diversion that is to be interpolated as a string. This request can be
used repeatedly on the same <var class="var">object</var>; see <a class="ref" href="#Gtroff-Internals"><code class="code">gtroff</code> Internals</a>,
for details on nodes inserted additionally by GNU <code class="code">troff</code>.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002esubstring"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.substring</code></strong> <var class="def-var-arguments">str start [<span class="r"><i class="slanted">end</i></span>]</var><a class="copiable-link" href='#index-_002esubstring'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-substring"></a>
<a class="index-entry-id" id="index-substring-_0028substring_0029"></a>
<p>Replace the string named <var class="var">str</var> with its substring bounded by the
indices <var class="var">start</var> and <var class="var">end</var>, inclusively. The first character in
the string has index 0. If <var class="var">end</var> is omitted, it is implicitly
set to the largest valid value (the string length minus one). Negative
indices count backward from the end of the string: the last character
has index −1, the character before the last has
index −2, and so on.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ds xxx abcdefgh
.substring xxx 1 -4
\*[xxx]
⇒ bcde
.substring xxx 2
\*[xxx]
⇒ de
</pre></div></div>
</dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002estringdown"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.stringdown</code></strong> <var class="def-var-arguments">str</var><a class="copiable-link" href='#index-_002estringdown'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-stringdown"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002estringup"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.stringup</code></strong> <var class="def-var-arguments">str</var><a class="copiable-link" href='#index-_002estringup'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-stringup"></a>
<a class="index-entry-id" id="index-case_002dtransforming-a-string-_0028stringdown_002c-stringup_0029"></a>
<a class="index-entry-id" id="index-uppercasing-a-string-_0028stringup_0029"></a>
<a class="index-entry-id" id="index-lowercasing-a-string-_0028stringdown_0029"></a>
<a class="index-entry-id" id="index-up_002dcasing-a-string-_0028stringup_0029"></a>
<a class="index-entry-id" id="index-down_002dcasing-a-string-_0028stringdown_0029"></a>
<p>Alter the string named <var class="var">str</var> by replacing each of its bytes with its
lowercase (<code class="code">stringdown</code>) or uppercase (<code class="code">stringup</code>) version (if
one exists). Special characters in the string will often transform in
the expected way due to the regular naming convention for accented
characters. When they do not, use substrings and/or catenation.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ds resume R\['e]sum\['e]
\*[resume]
.stringdown resume
\*[resume]
.stringup resume
\*[resume]
⇒ Rsum rsum RSUM
</pre></div></div>
</dd></dl>
<p>(In practice, we would end the <code class="code">ds</code> request with a comment escape
<code class="code">\"</code> to prevent space from creeping into the definition during
source document maintenance.)
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ern"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.rn</code></strong> <var class="def-var-arguments">old new</var><a class="copiable-link" href='#index-_002ern'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-rn"></a>
<a class="index-entry-id" id="index-renaming-request-_0028rn_0029"></a>
<a class="index-entry-id" id="index-request_002c-renaming-_0028rn_0029"></a>
<a class="index-entry-id" id="index-renaming-macro-_0028rn_0029"></a>
<a class="index-entry-id" id="index-macro_002c-renaming-_0028rn_0029"></a>
<a class="index-entry-id" id="index-renaming-string-_0028rn_0029"></a>
<a class="index-entry-id" id="index-string_002c-renaming-_0028rn_0029"></a>
<a class="index-entry-id" id="index-renaming-diversion-_0028rn_0029"></a>
<a class="index-entry-id" id="index-diversion_002c-renaming-_0028rn_0029"></a>
<p>Rename the request, macro, diversion, or string <var class="var">old</var> to <var class="var">new</var>.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002erm"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.rm</code></strong> <var class="def-var-arguments">name</var><a class="copiable-link" href='#index-_002erm'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-rm"></a>
<a class="index-entry-id" id="index-removing-request-_0028rm_0029"></a>
<a class="index-entry-id" id="index-request_002c-removing-_0028rm_0029"></a>
<a class="index-entry-id" id="index-removing-macro-_0028rm_0029"></a>
<a class="index-entry-id" id="index-macro_002c-removing-_0028rm_0029"></a>
<a class="index-entry-id" id="index-removing-string-_0028rm_0029"></a>
<a class="index-entry-id" id="index-string_002c-removing-_0028rm_0029"></a>
<a class="index-entry-id" id="index-removing-diversion-_0028rm_0029"></a>
<a class="index-entry-id" id="index-diversion_002c-removing-_0028rm_0029"></a>
<p>Remove the request, macro, diversion, or string <var class="var">name</var>. GNU
<code class="code">troff</code> treats subsequent invocations as if the name had never
been defined.
</p></dd></dl>
<a class="anchor" id="als"></a><dl class="first-deffn">
<dt class="deffn" id="index-_002eals"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.als</code></strong> <var class="def-var-arguments">new old</var><a class="copiable-link" href='#index-_002eals'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-als"></a>
<a class="index-entry-id" id="index-alias_002c-string_002c-creating-_0028als_0029"></a>
<a class="index-entry-id" id="index-alias_002c-macro_002c-creating-_0028als_0029"></a>
<a class="index-entry-id" id="index-alias_002c-diversion_002c-creating-_0028als_0029"></a>
<a class="index-entry-id" id="index-creating-alias_002c-for-string-_0028als_0029"></a>
<a class="index-entry-id" id="index-creating-alias_002c-for-macro-_0028als_0029"></a>
<a class="index-entry-id" id="index-creating-alias_002c-for-diversion-_0028als_0029"></a>
<a class="index-entry-id" id="index-string_002c-creating-alias-for-_0028als_0029"></a>
<a class="index-entry-id" id="index-macro_002c-creating-alias-for-_0028als_0029"></a>
<a class="index-entry-id" id="index-diversion_002c-creating-alias-for-_0028als_0029"></a>
<p>Create an alias <var class="var">new</var> for the existing request, string, macro, or
diversion object named <var class="var">old</var>, causing the names to refer to the same
stored object. If <var class="var">old</var> is undefined, a warning in category
‘<samp class="samp">mac</samp>’ is produced, and the request is ignored. See <a class="xref" href="#Warnings">Warnings</a>,
for information about the enablement and suppression of warnings.
</p>
<p>To understand how the <code class="code">als</code> request works, consider two different
storage pools: one for objects (macros, strings, etc.), and another
for names. As soon as an object is defined, GNU <code class="code">troff</code> adds it to
the object pool, adds its name to the name pool, and creates a link
between them. When <code class="code">als</code> creates an alias, it adds a new name to
the name pool that gets linked to the same object as the old name.
</p>
<p>Now consider this example.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de foo
..
.
.als bar foo
.
.de bar
. foo
..
.
.bar
error→ input stack limit exceeded (probable infinite
error→ loop)
</pre></div></div>
<p>In the above, <code class="code">bar</code> remains an <em class="emph">alias</em>—another name
for—the object referred to by <code class="code">foo</code>, which the second <code class="code">de</code>
request replaces. Alternatively, imagine that the <code class="code">de</code> request
<em class="emph">dereferences</em> its argument before replacing it. Either way, the
result of calling <code class="code">bar</code> is a recursive loop that finally leads to
an error. See <a class="xref" href="#Writing-Macros">Writing Macros</a>.
</p>
<a class="index-entry-id" id="index-alias_002c-string_002c-removing-_0028rm_0029"></a>
<a class="index-entry-id" id="index-alias_002c-macro_002c-removing-_0028rm_0029"></a>
<a class="index-entry-id" id="index-alias_002c-diversion_002c-removing-_0028rm_0029"></a>
<a class="index-entry-id" id="index-removing-alias_002c-for-string-_0028rm_0029"></a>
<a class="index-entry-id" id="index-removing-alias_002c-for-macro-_0028rm_0029"></a>
<a class="index-entry-id" id="index-removing-alias_002c-for-diversion-_0028rm_0029"></a>
<a class="index-entry-id" id="index-string_002c-removing-alias-for-_0028rm_0029"></a>
<a class="index-entry-id" id="index-macro_002c-removing-alias-for-_0028rm_0029"></a>
<a class="index-entry-id" id="index-diversion_002c-removing-alias-for-_0028rm_0029"></a>
<p>To remove an alias, call <code class="code">rm</code> on its name. The object itself is
not destroyed until it has no more names.
</p>
<p>When a request, macro, string, or diversion is aliased, redefinitions
and appendments “write through” alias names. To replace an alias with
a separately defined object, you must use the <code class="code">rm</code> request on its
name first.
</p></dd></dl>
<hr>
</div>
<div class="section-level-extent" id="Conditionals-and-Loops">
<div class="nav-panel">
<p>
Next: <a href="#Writing-Macros" accesskey="n" rel="next">Writing Macros</a>, Previous: <a href="#Strings" accesskey="p" rel="prev">Strings</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Conditionals-and-Loops-1">5.23 Conditionals and Loops</h3>
<a class="index-entry-id" id="index-conditionals-and-loops"></a>
<a class="index-entry-id" id="index-loops-and-conditionals"></a>
<p><code class="code">groff</code> has <code class="code">if</code> and <code class="code">while</code> control structures like
other languages. However, the syntax for grouping multiple input lines
in the branches or bodies of these structures is unusual.
</p>
<ul class="mini-toc">
<li><a href="#Operators-in-Conditionals" accesskey="1">Operators in Conditionals</a></li>
<li><a href="#if_002dthen" accesskey="2">if-then</a></li>
<li><a href="#if_002delse" accesskey="3">if-else</a></li>
<li><a href="#Conditional-Blocks" accesskey="4">Conditional Blocks</a></li>
<li><a href="#while" accesskey="5">while</a></li>
</ul>
<hr>
<div class="subsection-level-extent" id="Operators-in-Conditionals">
<div class="nav-panel">
<p>
Next: <a href="#if_002dthen" accesskey="n" rel="next">if-then</a>, Previous: <a href="#Conditionals-and-Loops" accesskey="p" rel="prev">Conditionals and Loops</a>, Up: <a href="#Conditionals-and-Loops" accesskey="u" rel="up">Conditionals and Loops</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Operators-in-Conditionals-1">5.23.1 Operators in Conditionals</h4>
<a class="index-entry-id" id="index-if-request_002c-operators-to-use-with"></a>
<a class="index-entry-id" id="index-ie-request_002c-operators-to-use-with"></a>
<a class="index-entry-id" id="index-while-request_002c-operators-to-use-with"></a>
<a class="index-entry-id" id="index-conditional-expressions"></a>
<a class="index-entry-id" id="index-expressions_002c-conditional"></a>
<p>In <code class="code">if</code>, <code class="code">ie</code>, and <code class="code">while</code> requests, in addition to the
numeric expressions described in <a class="ref" href="#Numeric-Expressions">Numeric Expressions</a>, several
Boolean operators are available; the members of this expanded class are
termed <em class="dfn">conditional expressions</em>.
</p>
<dl class="table">
<dt><code class="code">c <var class="var">glyph</var></code></dt>
<dd><p>True if <var class="var">glyph</var> is available, where <var class="var">glyph</var> is an ordinary
character, a special character ‘<samp class="samp">\(<var class="var">xx</var></samp>’ or ‘<samp class="samp">\[<var class="var">xxx</var>]</samp>’,
‘<samp class="samp">\N'<var class="var">xxx</var>'</samp>’, or has been defined by any of the <code class="code">char</code>,
<code class="code">fchar</code>, <code class="code">fschar</code>, or <code class="code">schar</code> requests.
</p>
</dd>
<dt><code class="code">d <var class="var">name</var></code></dt>
<dd><p>True if a string, macro, diversion, or request called <var class="var">name</var> exists.
</p>
</dd>
<dt><code class="code">e</code></dt>
<dd><p>True if the current page is even-numbered.
</p>
</dd>
<dt><code class="code">F <var class="var">font</var></code></dt>
<dd><p>True if <var class="var">font</var> exists. <var class="var">font</var> is handled as if it were opened
with the <code class="code">ft</code> request (that is, font translation and styles are
applied), without actually mounting it.
</p>
</dd>
<dt><code class="code">m <var class="var">color</var></code></dt>
<dd><p>True if <var class="var">color</var> is defined.
</p>
</dd>
<dt id='index-conditional-output-for-terminal-_0028TTY_0029'><span><code class="code">n</code><a class="copiable-link" href='#index-conditional-output-for-terminal-_0028TTY_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-TTY_002c-conditional-output-for"></a>
<a class="index-entry-id" id="index-terminal_002c-conditional-output-for"></a>
<p>True if the document is being processed in <code class="code">nroff</code> mode.
See <a class="xref" href="#troff-and-nroff-Modes"><code class="code">troff</code> and <code class="code">nroff</code> Modes</a>.
</p>
</dd>
<dt><code class="code">o</code></dt>
<dd><p>True if the current page is odd-numbered.
</p>
</dd>
<dt><code class="code">r <var class="var">register</var></code></dt>
<dd><p>True if <var class="var">register</var> exists.
</p>
</dd>
<dt><code class="code">S <var class="var">style</var></code></dt>
<dd><p>True if <var class="var">style</var> is available for the current font family. Font
translation is applied.
</p>
</dd>
<dt><code class="code">t</code></dt>
<dd><p>True if the document is being processed in <code class="code">troff</code> mode.
See <a class="xref" href="#troff-and-nroff-Modes"><code class="code">troff</code> and <code class="code">nroff</code> Modes</a>.
</p>
<a class="index-entry-id" id="index-vtroff"></a>
</dd>
<dt><code class="code">v</code></dt>
<dd><p>Always false. This condition is recognized only for compatibility with
certain other <code class="code">troff</code> implementations.<a class="footnote" id="DOCF88" href="#FOOT88"><sup>88</sup></a>
</p></dd>
</dl>
<p>If the first argument to an <code class="code">if</code>, <code class="code">ie</code>, or <code class="code">while</code>
request begins with a non-alphanumeric character apart from <code class="code">!</code>
(see below); it performs an <i class="slanted">output comparison test</i>.
<a class="footnote" id="DOCF89" href="#FOOT89"><sup>89</sup></a>
</p>
<a class="index-entry-id" id="index-output-comparison-operator"></a>
<dl class="table">
<dt><code class="code"><code class="code">'</code><var class="var">xxx</var><code class="code">'</code><var class="var">yyy</var><code class="code">'</code></code></dt>
<dd><p>True if formatting the comparands <var class="var">xxx</var> and <var class="var">yyy</var> produces the
same output commands. The delimiter need not be a neutral apostrophe:
the output comparison operator accepts the same delimiters as most
escape sequences; see <a class="ref" href="#Delimiters">Delimiters</a>. This <em class="dfn">output comparison
operator</em> formats <var class="var">xxx</var> and <var class="var">yyy</var> in separate environments;
after the comparison, the resulting data are discarded.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ie "|"\fR|\fP" true
.el false
⇒ true
</pre></div></div>
<p>The resulting glyph properties, including font family, style, size, and
slant, must match, but not necessarily the requests and/or escape
sequences used to obtain them. In the previous example, ‘<samp class="samp">|</samp>’ and
‘<samp class="samp">\fR|\fP</samp>’ result in ‘<samp class="samp">|</samp>’ glyphs in the same typefaces at the
same positions, so the comparands are equal. If ‘<samp class="samp">.ft I</samp>’ had
been added before the ‘<samp class="samp">.ie</samp>’, they would differ: the first ‘<samp class="samp">|</samp>’
would produce an italic ‘<samp class="samp">|</samp>’, not a roman one. Motions must match
in orientation and magnitude to within the applicable horizontal and
vertical motion quanta of the device, after rounding. ‘<samp class="samp">.if
"\u\d"\v'0'"</samp>’ is false even though both comparands result in zero net
motion, because motions are not interpreted or optimized but sent as-is
to the output.<a class="footnote" id="DOCF90" href="#FOOT90"><sup>90</sup></a> On the other hand, ‘<samp class="samp">.if "\d"\v'0.5m'"</samp>’ is true, because
<code class="code">\d</code> is defined as a downward motion of one-half em.<a class="footnote" id="DOCF91" href="#FOOT91"><sup>91</sup></a>
</p>
<a class="index-entry-id" id="index-string-comparison"></a>
<a class="index-entry-id" id="index-comparison-of-strings"></a>
<p>Surround the comparands with <code class="code">\?</code> to avoid formatting them; this
causes them to be compared character by character, as with string
comparisons in other programming languages.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ie "\?|\?"\?\fR|\fP\?" true
.el false
⇒ false
</pre></div></div>
<a class="index-entry-id" id="index-_005c_003f_002c-and-copy-mode"></a>
<a class="index-entry-id" id="index-copy-mode_002c-and-_005c_003f"></a>
<a class="index-entry-id" id="index-mode_002c-copy_002c-and-_005c_003f"></a>
<p>Since comparands protected with <code class="code">\?</code> are read in copy mode
(see <a class="pxref" href="#Copy-Mode">Copy Mode</a>), they need not even be valid <code class="code">groff</code> syntax.
The escape character is still lexically recognized, however, and
consumes the next character.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ds a \[
.ds b \[
.if '\?\*a\?'\?\*b\?' a and b equivalent
.if '\?\\?'\?\\?' backslashes equivalent
⇒ a and b equivalent
</pre></div></div>
</dd>
</dl>
<p>The above operators can’t be combined with most others, but a leading
‘<samp class="samp">!</samp>’, not followed immediately by spaces or tabs, complements an
expression.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.nr x 1
.ie !r x register x is not defined
.el register x is defined
⇒ register x is defined
</pre></div></div>
<p>Spaces and tabs are optional immediately after the ‘<samp class="samp">c</samp>’, ‘<samp class="samp">d</samp>’,
‘<samp class="samp">F</samp>’, ‘<samp class="samp">m</samp>’, ‘<samp class="samp">r</samp>’, and ‘<samp class="samp">S</samp>’ operators, but right after
‘<samp class="samp">!</samp>’, they end the predicate and the conditional evaluates
true.<a class="footnote" id="DOCF92" href="#FOOT92"><sup>92</sup></a>
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.nr x 1
.ie ! r x register x is not defined
.el register x is defined
⇒ r x register x is not defined
</pre></div></div>
<p>The unexpected ‘<samp class="samp">r x</samp>’ in the output is a clue that our conditional
was not interpreted as we planned, but matters may not always be so
obvious.
</p>
<hr>
</div>
<div class="subsection-level-extent" id="if_002dthen">
<div class="nav-panel">
<p>
Next: <a href="#if_002delse" accesskey="n" rel="next">if-else</a>, Previous: <a href="#Operators-in-Conditionals" accesskey="p" rel="prev">Operators in Conditionals</a>, Up: <a href="#Conditionals-and-Loops" accesskey="u" rel="up">Conditionals and Loops</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="if_002dthen-1">5.23.2 if-then</h4>
<a class="index-entry-id" id="index-if_002dthen"></a>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eif"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.if</code></strong> <var class="def-var-arguments">cond-expr anything</var><a class="copiable-link" href='#index-_002eif'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-if"></a>
<p>Evaluate the conditional expression <var class="var">cond-expr</var>, and if it evaluates
true (or to a positive value), interpret the remainder of the line
<var class="var">anything</var> as if it were an input line. Recall from <a class="ref" href="#Invoking-Requests">Invoking Requests</a> that any quantity of spaces between arguments to requests
serves only to separate them; leading spaces in <var class="var">anything</var> are thus
not seen. <var class="var">anything</var> effectively <em class="emph">cannot</em> be omitted; if
<var class="var">cond-expr</var> is true and <var class="var">anything</var> is empty, the newline at the
end of the control line is interpreted as a blank input line (and
therefore a blank text line).
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">super\c
tanker
.nr force-word-break 1
super\c
.if ((\n[force-word-break] = 1) & \n[.int])
tanker
⇒ supertanker super tanker
</pre></div></div>
</dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002enop"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.nop</code></strong> <var class="def-var-arguments">anything</var><a class="copiable-link" href='#index-_002enop'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-nop"></a>
<p>Interpret <var class="var">anything</var> as if it were an input line. This is similar
to ‘<samp class="samp">.if 1</samp>’. <code class="code">nop</code> is not really “no operation”; its
argument <em class="emph">is</em> processed—unconditionally. It can be used to cause
text lines to share indentation with surrounding control lines.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.als real-MAC MAC
.de wrapped-MAC
. tm MAC: called with arguments \\$@
. nop \\*[real-MAC]\\
..
.als MAC wrapped-MAC
\# Later...
.als MAC real-MAC
</pre></div></div>
<p>In the above, we’ve used aliasing, <code class="code">nop</code>, and the interpolation of
a macro as a string to interpose a wrapper around the macro ‘<samp class="samp">MAC</samp>’
(perhaps to debug it).
</p></dd></dl>
<hr>
</div>
<div class="subsection-level-extent" id="if_002delse">
<div class="nav-panel">
<p>
Next: <a href="#while" accesskey="n" rel="next">while</a>, Previous: <a href="#Operators-in-Conditionals" accesskey="p" rel="prev">Operators in Conditionals</a>, Up: <a href="#Conditionals-and-Loops" accesskey="u" rel="up">Conditionals and Loops</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="if_002delse-1">5.23.3 if-else</h4>
<a class="index-entry-id" id="index-if_002delse"></a>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eie"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ie</code></strong> <var class="def-var-arguments">cond-expr anything</var><a class="copiable-link" href='#index-_002eie'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ie"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002eel"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.el</code></strong> <var class="def-var-arguments">anything</var><a class="copiable-link" href='#index-_002eel'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-el"></a>
<p>Use the <code class="code">ie</code> and <code class="code">el</code> requests to write an if-then-else. The
first request is the “if” part and the latter is the “else” part.
Unusually among programming languages, any number of non-conditional
requests may be interposed between the <code class="code">ie</code> branch and the
<code class="code">el</code> branch.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.nr a 0
.ie \na a is non-zero.
.nr a +1
.el a was not positive but is now \na.
⇒ a was not positive but is now 1.
</pre></div></div>
<p>Another way in which <code class="code">el</code> is an ordinary request is that it does
not lexically “bind” more tightly to its <code class="code">ie</code> counterpart than it
does to any other request. This fact can surprise C programmers.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.nr a 1
.nr z 0
.ie \nz \
. ie \na a is true
. el a is false
.el z is false
error→ warning: unbalanced 'el' request
⇒ a is false
</pre></div></div>
<p>To conveniently nest conditionals, keep reading.
</p>
</dd></dl>
<hr>
</div>
<div class="subsection-level-extent" id="Conditional-Blocks">
<div class="nav-panel">
<p>
Next: <a href="#while" accesskey="n" rel="next">while</a>, Previous: <a href="#Operators-in-Conditionals" accesskey="p" rel="prev">Operators in Conditionals</a>, Up: <a href="#Conditionals-and-Loops" accesskey="u" rel="up">Conditionals and Loops</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Conditional-Blocks-1">5.23.4 Conditional Blocks</h4>
<a class="index-entry-id" id="index-conditional-blocks"></a>
<a class="index-entry-id" id="index-blocks_002c-conditional"></a>
<p>It is frequently desirable for a control structure to govern more than
one request, macro call, text line, or a combination of the foregoing.
The opening and closing brace escape sequences <code class="code">\{</code> and <code class="code">\}</code>
define such groups. These <em class="dfn">conditional blocks</em> can furthermore be
nested.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_007b-2"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\{</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_007b-2'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005c_007b"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005c_007d-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\}</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_007d-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005c_007b-1"></a>
<a class="index-entry-id" id="index-_005c_007d"></a>
<a class="index-entry-id" id="index-beginning-of-conditional-block-_0028_005c_007b_0029"></a>
<a class="index-entry-id" id="index-end-of-conditional-block-_0028_005c_007d_0029"></a>
<a class="index-entry-id" id="index-conditional-block_002c-beginning-_0028_005c_007b_0029"></a>
<a class="index-entry-id" id="index-conditional-block_002c-end-_0028_005c_007d_0029"></a>
<a class="index-entry-id" id="index-block_002c-conditional_002c-beginning-_0028_005c_007b_0029"></a>
<a class="index-entry-id" id="index-block_002c-conditional_002c-end-_0028_005c_007d_0029"></a>
<a class="index-entry-id" id="index-brace-escape-sequences-_0028_005c_007b_002c-_005c_007d_0029"></a>
<a class="index-entry-id" id="index-escape-sequences_002c-brace-_0028_005c_007b_002c-_005c_007d_0029"></a>
<a class="index-entry-id" id="index-opening-brace-escape-sequence-_0028_005c_007d_0029"></a>
<a class="index-entry-id" id="index-closing-brace-escape-sequence-_0028_005c_007d_0029"></a>
<a class="index-entry-id" id="index-brace-escape-sequence_002c-opening-_0028_005c_007d_0029"></a>
<a class="index-entry-id" id="index-brace-escape-sequence_002c-closing-_0028_005c_007d_0029"></a>
<p><code class="code">\{</code> begins a conditional block; it must appear (after optional
spaces and tabs) immediately subsequent to the conditional expression of
an <code class="code">if</code>, <code class="code">ie</code>, or <code class="code">while</code>
request,<a class="footnote" id="DOCF93" href="#FOOT93"><sup>93</sup></a> or as the argument to an <code class="code">el</code>
request.
</p>
<p><code class="code">\}</code> ends a condition block and should appear on a line with other
occurrences of itself as necessary to match <code class="code">\{</code> sequences. It
can be preceded by a control character, spaces, and tabs. Input after
any quantity of <code class="code">\}</code> sequences on the same line is processed only
if all of the preceding conditions to which they correspond are true.
Furthermore, a <code class="code">\}</code> closing the body of a <code class="code">while</code> request
must be the last such escape sequence on an input line.
</p>
<p>Brace escape sequences outside of control structures have no meaning and
produce no output.
</p>
<p><strong class="strong">Caution:</strong> Input lines using <code class="code">\{</code> often end with
<code class="code">\RET</code>, especially in macros that consist primarily of control
lines. Forgetting to use <code class="code">\RET</code> on an input line after <code class="code">\{</code>
is a common source of error.
</p></dd></dl>
<p>We might write the following in a page header macro. If we delete
<code class="code">\RET</code>, the header will carry an unwanted extra empty line (except
on page 1).
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.if (\\n[%] != 1) \{\
. ie ((\\n[%] % 2) = 0) .tl \\*[even-numbered-page-title]
. el .tl \\*[odd-numbered-page-title]
.\}
</pre></div></div>
<p>Let us take a closer look at how conditional blocks nest.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">A
.if 0 \{ B
C
D
\}E
F
⇒ A F
</pre></div></div>
<div class="example">
<div class="group"><pre class="example-preformatted">N
.if 1 \{ O
. if 0 \{ P
Q
R\} S\} T
U
⇒ N O U
</pre></div></div>
<p>The above behavior may challenge the intuition; it was implemented to
retain compatibility with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code>. For clarity, it
is idiomatic to end input lines with <code class="code">\{</code> (followed by
<code class="code">\<kbd class="key">RET</kbd></code> if appropriate), and to precede <code class="code">\}</code> on an input
line with nothing more than a control character, spaces, tabs, and other
instances of itself.
</p>
<p>We can use <code class="code">ie</code>, <code class="code">el</code>, and conditional blocks to simulate the
multi-way “switch” or “case” control structures of other languages.
The following example is adapted from the <code class="code">groff</code> <samp class="file">man</samp>
package. Indentation is used to clarify the logic.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.\" Simulate switch/case in roff.
. ie '\\$2'1' .ds title General Commands\"
.el \{.ie '\\$2'2' .ds title System Calls\"
.el \{.ie '\\$2'3' .ds title Library Functions\"
.el \{.ie '\\$2'4' .ds title Kernel Interfaces\"
.el \{.ie '\\$2'5' .ds title File Formats\"
.el \{.ie '\\$2'6' .ds title Games\"
.el \{.ie '\\$2'7' .ds title Miscellaneous Information\"
.el \{.ie '\\$2'8' .ds title System Management\"
.el \{.ie '\\$2'9' .ds title Kernel Development\"
.el .ds title \" empty
.\}\}\}\}\}\}\}\}
</pre></div></div>
<hr>
</div>
<div class="subsection-level-extent" id="while">
<div class="nav-panel">
<p>
Previous: <a href="#if_002delse" accesskey="p" rel="prev">if-else</a>, Up: <a href="#Conditionals-and-Loops" accesskey="u" rel="up">Conditionals and Loops</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="while-1">5.23.5 while</h4>
<a class="index-entry-id" id="index-while"></a>
<p><code class="code">groff</code> provides a looping construct: the <code class="code">while</code> request.
Its syntax matches the <code class="code">if</code> request.
</p>
<a class="index-entry-id" id="index-body_002c-of-a-while-request"></a>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ewhile"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.while</code></strong> <var class="def-var-arguments">cond-expr anything</var><a class="copiable-link" href='#index-_002ewhile'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-while-1"></a>
<p>Evaluate the conditional expression <var class="var">cond-expr</var>, and repeatedly
execute <var class="var">anything</var> unless and until <var class="var">cond-expr</var> evaluates false.
<var class="var">anything</var>, which is often a conditional block, is referred to as
the <code class="code">while</code> request’s <em class="dfn">body</em>.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.nr a 0 1
.while (\na < 9) \{\
\n+a,
.\}
\n+a
⇒ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
</pre></div></div>
<a class="index-entry-id" id="index-de-request_002c-and-while"></a>
<p>GNU <code class="code">troff</code> treats the body of a <code class="code">while</code> request similarly to
that of a <code class="code">de</code> request (albeit one not read in copy
mode<a class="footnote" id="DOCF94" href="#FOOT94"><sup>94</sup></a>), but stores it under an internal name
and deletes it when the loop finishes. The operation of a macro
containing a <code class="code">while</code> request can slow significantly if the
<code class="code">while</code> body is large. Each time the macro is executed, the
<code class="code">while</code> body is parsed and stored again.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de xxx
. nr num 10
. while (\\n[num] > 0) \{\
. \" many lines of code
. nr num -1
. \}
..
</pre></div></div>
<a class="index-entry-id" id="index-recursive-macros"></a>
<a class="index-entry-id" id="index-macros_002c-recursive"></a>
<p>An often better solution—and one that is more portable, since
<abbr class="acronym">AT&T</abbr> <code class="code">troff</code> lacked the <code class="code">while</code> request—is to
instead write a recursive macro. It will be parsed only
once.<a class="footnote" id="DOCF95" href="#FOOT95"><sup>95</sup></a>
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de yyy
. if (\\n[num] > 0) \{\
. \" many lines of code
. nr num -1
. yyy
. \}
..
.
.de xxx
. nr num 10
. yyy
..
</pre></div></div>
<p>To prevent infinite loops, the default number of available recursion
levels is 1,000 or somewhat less.<a class="footnote" id="DOCF96" href="#FOOT96"><sup>96</sup></a> You can
disable this protective measure, or raise the limit, by setting the
<code class="code">slimit</code> register. See <a class="xref" href="#Debugging">Debugging</a>.
</p>
<p>As noted above, if a <code class="code">while</code> body begins with a conditional block,
its closing brace must end an input line.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.if 1 \{\
. nr a 0 1
. while (\n[a] < 10) \{\
. nop \n+[a]
.\}\}
error→ unbalanced brace escape sequences
</pre></div></div>
</dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ebreak"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.break</code></strong><a class="copiable-link" href='#index-_002ebreak'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-break-2"></a>
<a class="index-entry-id" id="index-while-request_002c-confusing-with-br"></a>
<a class="index-entry-id" id="index-break-request_002c-in-a-while-loop"></a>
<a class="index-entry-id" id="index-continue-request_002c-in-a-while-loop"></a>
<p>Exit a <code class="code">while</code> loop. Do not confuse this request with a
typographical break or the <code class="code">br</code> request.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002econtinue"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.continue</code></strong><a class="copiable-link" href='#index-_002econtinue'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-continue"></a>
<p>Skip the remainder of a <code class="code">while</code> loop’s body, immediately starting
the next iteration.
</p></dd></dl>
<hr>
</div>
</div>
<div class="section-level-extent" id="Writing-Macros">
<div class="nav-panel">
<p>
Next: <a href="#Page-Motions" accesskey="n" rel="next">Page Motions</a>, Previous: <a href="#Conditionals-and-Loops" accesskey="p" rel="prev">Conditionals and Loops</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Writing-Macros-1">5.24 Writing Macros</h3>
<a class="index-entry-id" id="index-writing-macros"></a>
<a class="index-entry-id" id="index-macros_002c-writing"></a>
<p>A <em class="dfn">macro</em> is a stored collection of text and control lines that can
be interpolated multiple times. Use macros to define common operations.
Macros are called in the same way that requests are invoked. While
requests exist for the purpose of creating macros, simply calling an
undefined macro, or interpolating it as a string, will cause it to be
defined as empty. See <a class="xref" href="#Identifiers">Identifiers</a>.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ede"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.de</code></strong> <var class="def-var-arguments">name [<span class="r"><i class="slanted">end</i></span>]</var><a class="copiable-link" href='#index-_002ede'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-de"></a>
<p>Define a macro <var class="var">name</var>, replacing the definition of any existing
request, macro, string, or diversion called <var class="var">name</var>. If
<var class="var">name</var> already exists as an alias, the target of the alias is
redefined; recall <a class="ref" href="#Strings">Strings</a>. GNU <code class="code">troff</code> enters copy
mode,<a class="footnote" id="DOCF97" href="#FOOT97"><sup>97</sup></a> storing subsequent input lines as the
macro definition. If the optional second argument is not specified, the
definition ends with the control line ‘<samp class="samp">..</samp>’ (two dots).
Alternatively, <var class="var">end</var> identifies a macro whose call syntax at the
start of a control line ends the definition of <var class="var">name</var>; <var class="var">end</var> is
then called normally. A macro definition must end in the same
conditional block (if any) in which it began (see <a class="pxref" href="#Conditional-Blocks">Conditional Blocks</a>). Spaces or tabs are permitted after the control character in
the line containing this ending token (either ‘<samp class="samp">.</samp>’ or
‘<samp class="samp"><var class="var">end</var></samp>’), but a tab immediately after the token prevents its
recognition as the end of a macro definition. The macro <var class="var">end</var> can
be called with arguments.<a class="footnote" id="DOCF98" href="#FOOT98"><sup>98</sup></a>
</p>
<p>Here is a small example macro called ‘<samp class="samp">P</samp>’ that causes a break and
inserts some vertical space. It could be used to separate paragraphs.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de P
. br
. sp .8v
..
</pre></div></div>
<p>We can define one macro within another. Attempting to nest ‘<samp class="samp">..</samp>’
navely will end the outer definition because the inner definition
isn’t interpreted as such until the outer macro is later interpolated.
We can use an end macro instead. Each level of nesting should use a
unique end macro.
</p>
<p>An end macro need not be defined until it is called. This fact enables
a nested macro definition to begin inside one macro and end inside
another. Consider the following example.<a class="footnote" id="DOCF99" href="#FOOT99"><sup>99</sup></a>
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de m1
. de m2 m3
you
..
.de m3
Hello,
Joe.
..
.de m4
do
..
.m1
know?
. m3
What
.m4
.m2
⇒ Hello, Joe. What do you know?
</pre></div></div>
<p>A nested macro definition <em class="emph">can</em> be terminated with ‘<samp class="samp">..</samp>’ and
nested macros <em class="emph">can</em> reuse end macros, but these control lines must
be escaped multiple times for each level of nesting. The necessity of
this escaping and the utility of nested macro definitions will become
clearer when we employ macro parameters and consider the behavior of
copy mode in detail.
</p></dd></dl>
<p><code class="code">de</code> defines a macro that inherits the compatibility mode
enablement status of its context (see <a class="pxref" href="#Implementation-Differences">Implementation Differences</a>).
Often it is desirable to make a macro that uses <code class="code">groff</code> features
callable from contexts where compatibility mode is on; for instance,
when writing extensions to a historical macro package. To achieve this,
compatibility mode needs to be switched off while such a macro is
interpreted—without disturbing that state when it is finished.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ede1"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.de1</code></strong> <var class="def-var-arguments">name [<span class="r"><i class="slanted">end</i></span>]</var><a class="copiable-link" href='#index-_002ede1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-de1"></a>
<p>The <code class="code">de1</code> request defines a macro to be interpreted with
compatibility mode disabled. When <var class="var">name</var> is called, compatibility
mode enablement status is saved; it is restored when the call completes.
Observe the extra backlash before the interpolation of register
‘<samp class="samp">xxx</samp>’; we’ll explore this subject in <a class="ref" href="#Copy-Mode">Copy Mode</a>.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.nr xxx 12345
.de aa
The value of xxx is \\n[xxx].
. br
..
.de1 bb
The value of xxx is \\n[xxx].
..
.cp 1
.aa
error→ warning: register '[' not defined
⇒ The value of xxx is 0xxx].
.bb
⇒ The value of xxx is 12345.
</pre></div></div>
</dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002edei"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.dei</code></strong> <var class="def-var-arguments">name [<span class="r"><i class="slanted">end</i></span>]</var><a class="copiable-link" href='#index-_002edei'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-dei"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002edei1"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.dei1</code></strong> <var class="def-var-arguments">name [<span class="r"><i class="slanted">end</i></span>]</var><a class="copiable-link" href='#index-_002edei1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-dei1"></a>
<p>The <code class="code">dei</code> request defines a macro with its name and end
macro indirected through strings. That is, it interpolates strings
named <var class="var">name</var> and <var class="var">end</var> before performing the definition.
</p>
<p>The following examples are equivalent.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ds xx aa
.ds yy bb
.dei xx yy
</pre></div></div>
<div class="example">
<div class="group"><pre class="example-preformatted">.de aa bb
</pre></div></div>
<p>The <code class="code">dei1</code> request bears the same relationship to <code class="code">dei</code> as
<code class="code">de1</code> does to <code class="code">de</code>; it temporarily turns compatibility mode
off when <var class="var">name</var> is called.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eam"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.am</code></strong> <var class="def-var-arguments">name [<span class="r"><i class="slanted">end</i></span>]</var><a class="copiable-link" href='#index-_002eam'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-am"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002eam1"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.am1</code></strong> <var class="def-var-arguments">name [<span class="r"><i class="slanted">end</i></span>]</var><a class="copiable-link" href='#index-_002eam1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-am1"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002eami"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ami</code></strong> <var class="def-var-arguments">name [<span class="r"><i class="slanted">end</i></span>]</var><a class="copiable-link" href='#index-_002eami'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ami"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002eami1"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ami1</code></strong> <var class="def-var-arguments">name [<span class="r"><i class="slanted">end</i></span>]</var><a class="copiable-link" href='#index-_002eami1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ami1"></a>
<a class="index-entry-id" id="index-appending-to-a-macro-_0028am_0029"></a>
<a class="index-entry-id" id="index-macro_002c-appending-to-_0028am_0029"></a>
<p><code class="code">am</code> appends subsequent input lines to macro <var class="var">name</var>, extending
its definition, and otherwise working as <code class="code">de</code> does.
</p>
<p>To make the previously defined ‘<samp class="samp">P</samp>’ macro set indented instead of
block paragraphs, add the necessary code to the existing macro.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.am P
.ti +5n
..
</pre></div></div>
<p>The other requests are analogous to their ‘<samp class="samp">de</samp>’ counterparts. The
<code class="code">am1</code> request turns off compatibility mode during interpretation of
the appendment. The <code class="code">ami</code> request appends indirectly, meaning that
strings <var class="var">name</var> and <var class="var">end</var> are interpolated with the resulting
names used before appending. The <code class="code">ami1</code> request is similar to
<code class="code">ami</code>, disabling compatibility mode during interpretation of the
appended lines.
</p></dd></dl>
<a class="index-entry-id" id="index-trace_002etmac"></a>
<p>Using <samp class="file">trace.tmac</samp>, you can trace calls to <code class="code">de</code>,
<code class="code">de1</code>, <code class="code">am</code>, and <code class="code">am1</code>. You can also use the
<code class="code">backtrace</code> request at any point desired to troubleshoot tricky
spots (see <a class="pxref" href="#Debugging">Debugging</a>).
</p>
<p>See <a class="xref" href="#Strings">Strings</a>, for the <code class="code">als</code>, <code class="code">rm</code>, and <code class="code">rn</code> requests to
create an alias of, remove, and rename a macro, respectively.
</p>
<a class="index-entry-id" id="index-object-creation"></a>
<p>Macro identifiers share their name space with requests, strings, and
diversions; see <a class="ref" href="#Identifiers">Identifiers</a>. The <code class="code">am</code>, <code class="code">as</code>, <code class="code">da</code>,
<code class="code">de</code>, <code class="code">di</code>, and <code class="code">ds</code> requests (together with their
variants) create a new object only if the name of the macro, diversion,
or string is currently undefined or if it is defined as a request;
normally, they modify the value of an existing object. See <a class="xref" href="#als">the
description of the <code class="code">als</code> request</a>, for pitfalls when redefining a
macro that is aliased.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ereturn"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.return</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">anything</i></span>]</var><a class="copiable-link" href='#index-_002ereturn'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-return"></a>
<p>Exit a macro, immediately returning to the caller. If called with an
argument <var class="var">anything</var>, exit twice—the current macro and the macro
one level higher. This is used to define a wrapper macro for
<code class="code">return</code> in <samp class="file">trace.tmac</samp>.
</p></dd></dl>
<ul class="mini-toc">
<li><a href="#Parameters" accesskey="1">Parameters</a></li>
<li><a href="#Copy-Mode" accesskey="2">Copy Mode</a></li>
</ul>
<hr>
<div class="subsection-level-extent" id="Parameters">
<div class="nav-panel">
<p>
Next: <a href="#Copy-Mode" accesskey="n" rel="next">Copy Mode</a>, Previous: <a href="#Writing-Macros" accesskey="p" rel="prev">Writing Macros</a>, Up: <a href="#Writing-Macros" accesskey="u" rel="up">Writing Macros</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Parameters-1">5.24.1 Parameters</h4>
<a class="index-entry-id" id="index-parameters"></a>
<p>Macro calls and string interpolations optionally accept a list of
arguments; recall <a class="ref" href="#Calling-Macros">Calling Macros</a>. At the time such an
interpolation takes place, these <em class="dfn">parameters</em> can be examined using
a register and a variety of escape sequences starting with ‘<samp class="samp">\$</samp>’.
All such escape sequences are interpreted even in copy mode, a fact we
shall motivate and explain below (see <a class="pxref" href="#Copy-Mode">Copy Mode</a>).
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005b_002e_0024_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.$]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002e_0024_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002e_0024"></a>
<a class="index-entry-id" id="index-parameter-count-register-_0028_002e_0024_0029"></a>
<p>The count of parameters available to a macro or string is kept in this
read-only register. The <code class="code">shift</code> request can change its value.
</p></dd></dl>
<p>Any individual parameter can be accessed by its position in the list of
arguments to the macro call, numbered from left to right starting at 1,
with one of the following escape sequences.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_0024n"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\$</code><span class="r"><i class="slanted">n</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_0024n'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005c_0024"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005c_0024_0028nn"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\$(</code><span class="r"><i class="slanted">nn</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_0024_0028nn'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005c_0024_005bnnn_005d"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\$[</code><span class="r"><i class="slanted">nnn</i></span><code class="t">]</code></strong><a class="copiable-link" href='#index-_005c_0024_005bnnn_005d'> ¶</a></span></dt>
<dd><p>Interpolate the <var class="var">n</var>th, <var class="var">nn</var>th, or <var class="var">nnn</var>th parameter. The
first form expects only a single digit (1≤<var class="var">n</var>≤9)), the
second two digits (01≤<var class="var">nn</var>≤99)), and the third any
positive integer <var class="var">nnn</var>. Macros and strings accept an unlimited
number of parameters.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eshift"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.shift</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">n</i></span>]</var><a class="copiable-link" href='#index-_002eshift'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-shift"></a>
<p>Shift the parameters <var class="var">n</var> places (1 by default). This is a
“left shift”: what was parameter <var class="var">i</var> becomes parameter
<em class="math"><var class="var">i</var>-<var class="var">n</var></em>. The parameters formerly in positions 1
to <var class="var">n</var> are no longer available. Shifting by a non-positive
amount performs no operation. The register <code class="code">.$</code> is adjusted
accordingly.
</p></dd></dl>
<a class="index-entry-id" id="index-copy-mode_002c-and-macro-parameters"></a>
<a class="index-entry-id" id="index-mode_002c-copy_002c-and-macro-parameters"></a>
<a class="index-entry-id" id="index-macro_002c-parameters-_0028_005c_0024_0029"></a>
<a class="index-entry-id" id="index-parameters_002c-macro-_0028_005c_0024_0029"></a>
<p>In practice, parameter interpolations are usually seen prefixed with an
extra escape character. This is because the <code class="code">\$</code> family of escape
sequences is interpreted even in copy mode.<a class="footnote" id="DOCF100" href="#FOOT100"><sup>100</sup></a>
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_0024_002a-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\$*</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_0024_002a-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005c_0024_002a"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005c_0024_0040-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\$@</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_0024_0040-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005c_0024_0040"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005c_0024_005e-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\$^</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_0024_005e-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005c_0024_005e"></a>
<p>In some cases it is convenient to interpolate all of the parameters at
once (to pass them to a request, for instance). The <code class="code">\$*</code> escape
concatenates the parameters, separating them with spaces. <code class="code">\$@</code>
is similar, concatenating the parameters, surrounding each with double
quotes and separating them with spaces. If not in compatibility mode,
the interpolation depth of double quotes is preserved (see <a class="pxref" href="#Calling-Macros">Calling Macros</a>). <code class="code">\$^</code> interpolates all parameters as if they were
arguments to the <code class="code">ds</code> request.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de foo
. tm $1='\\$1'
. tm $2='\\$2'
. tm $*='\\$*'
. tm $@='\\$@'
. tm $^='\\$^'
..
.foo " This is a "test"
error→ $1=' This is a '
error→ $2='test"'
error→ $*=' This is a test"'
error→ $@='" This is a " "test""'
error→ $^='" This is a "test"'
</pre></div></div>
<p><code class="code">\$*</code> is useful when writing a macro that doesn’t need to
distinguish its arguments, or even to not interpret them; examples
include macros that produce diagnostic messages by wrapping the
<code class="code">tm</code> or <code class="code">ab</code> requests. Use <code class="code">\$@</code> when writing a macro
that may need to shift its parameters and/or wrap a macro or request
that finds the count significant. If in doubt, prefer <code class="code">\$@</code> to
<code class="code">\$*</code>. An application of <code class="code">\$^</code> is seen in <samp class="file">trace.tmac</samp>,
which redefines some requests and macros for debugging purposes.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_00240-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\$0</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_00240-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005c_00240"></a>
<a class="index-entry-id" id="index-macro-name-register-_0028_005c_00240_0029"></a>
<a class="index-entry-id" id="index-als-request_002c-and-_005c_00240"></a>
<p>Interpolate the name by which the macro being interpreted was called.
The <code class="code">als</code> request can cause a macro to have more than one name.
Applying string interpolation to a macro does not change this name.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de foo
. tm \\$0
..
.als bar foo
.
.de aaa
. foo
..
.de bbb
. bar
..
.de ccc
\\*[foo]\\
..
.de ddd
\\*[bar]\\
..
.
.aaa
error→ foo
.bbb
error→ bar
.ccc
error→ ccc
.ddd
error→ ddd
</pre></div></div>
</dd></dl>
<hr>
</div>
<div class="subsection-level-extent" id="Copy-Mode">
<div class="nav-panel">
<p>
Previous: <a href="#Parameters" accesskey="p" rel="prev">Parameters</a>, Up: <a href="#Writing-Macros" accesskey="u" rel="up">Writing Macros</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Copy-Mode-1">5.24.2 Copy Mode</h4>
<a class="index-entry-id" id="index-copy-mode"></a>
<a class="index-entry-id" id="index-copy-mode-1"></a>
<a class="index-entry-id" id="index-mode_002c-copy"></a>
<a class="index-entry-id" id="index-mode_002c-copy-1"></a>
<a class="index-entry-id" id="index-_005cn_002c-when-reading-text-for-a-macro"></a>
<a class="index-entry-id" id="index-_005c_0024_002c-when-reading-text-for-a-macro"></a>
<a class="index-entry-id" id="index-_005c_002a_002c-when-reading-text-for-a-macro"></a>
<a class="index-entry-id" id="index-_005cRET_002c-when-reading-text-for-a-macro"></a>
<p>When GNU <code class="code">troff</code> processes certain requests, most importantly those
which define or append to a macro or string, it does so in <em class="dfn">copy
mode</em>: it copies the characters of the definition into a dedicated
storage region, interpolating the escape sequences <code class="code">\n</code>, <code class="code">\g</code>,
<code class="code">\$</code>, <code class="code">\*</code>, <code class="code">\V</code>, and <code class="code">\?</code> normally; interpreting
<code class="code">\<kbd class="key">RET</kbd></code> immediately; discarding comments <code class="code">\"</code> and
<code class="code">\#</code>; interpolating the current leader, escape, or tab character
with <code class="code">\a</code>, <code class="code">\e</code>, and <code class="code">\t</code>, respectively; and storing all
other escape sequences in an encoded form.
</p>
<a class="index-entry-id" id="index-interpretation-mode"></a>
<a class="index-entry-id" id="index-mode_002c-interpretation"></a>
<p>The complement of copy mode—a <code class="code">roff</code> formatter’s behavior when
not defining or appending to a macro, string, or diversion—where all
macros are interpolated, requests invoked, and valid escape sequences
processed immediately upon recognition, can be termed
<em class="dfn">interpretation mode</em>.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_005c-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\\</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_005c-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005c_005c"></a>
<p>The escape character, <code class="code">\</code> by default, can escape itself. This
enables you to control whether a given <code class="code">\n</code>, <code class="code">\g</code>, <code class="code">\$</code>,
<code class="code">\*</code>, <code class="code">\V</code>, or <code class="code">\?</code> escape sequence is interpreted at the
time the macro containing it is defined, or later when the macro is
called.<a class="footnote" id="DOCF101" href="#FOOT101"><sup>101</sup></a>
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.nr x 20
.de y
.nr x 10
\&\nx
\&\\nx
..
.y
⇒ 20 10
</pre></div></div>
<p>You can think of <code class="code">\\</code> as a “delayed” backslash; it is the escape
character followed by a backslash from which the escape character has
removed its special meaning. Consequently, ‘<samp class="samp">\\</samp>’ is not an escape
sequence in the usual sense. In any escape sequence ‘<samp class="samp">\<var class="var">X</var></samp>’
that GNU <code class="code">troff</code> does not recognize, the escape character is
ignored and <var class="var">X</var> is output. An unrecognized escape sequence causes
a warning in category ‘<samp class="samp">escape</samp>’, with two exceptions—‘<samp class="samp">\\</samp>’ is
the first.
</p></dd></dl>
<a class="index-entry-id" id="index-_005c_005c_002c-when-reading-text-for-a-macro"></a>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_002e-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\.</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_002e-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005c_002e"></a>
<p><code class="code">\.</code> escapes the control character. It is similar to <code class="code">\\</code> in
that it isn’t a true escape sequence. It is used to permit nested macro
definitions to end without a named macro call to conclude them. Without
a syntax for escaping the control character, this would not be possible.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de m1
foo
.
. de m2
bar
\\..
.
..
.m1
.m2
⇒ foo bar
</pre></div></div>
<p>The first backslash is consumed while the macro is read, and the second
is interpreted when macro <code class="code">m1</code> is called.
</p></dd></dl>
<p><code class="code">roff</code> documents should not use the <code class="code">\\</code> or <code class="code">\.</code>
character sequences outside of copy mode; they serve only to obfuscate
the input. Use <code class="code">\e</code> to represent the escape character,
<code class="code">\[rs]</code> to obtain a backslash glyph, and <code class="code">\&</code> before ‘<samp class="samp">.</samp>’
and ‘<samp class="samp">'</samp>’ where GNU <code class="code">troff</code> expects them as control characters
if you mean to use them literally (recall <a class="ref" href="#Requests-and-Macros">Requests and Macros</a>).
</p>
<p>Macro definitions can be nested to arbitrary depth. The mechanics of
parsing the escape character have significant consequences for this
practice.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de M1
\\$1
. de M2
\\\\$1
. de M3
\\\\\\\\$1
\\\\..
. M3 hand.
\\..
. M2 of
..
This understeer is getting
.M1 out
⇒ This understeer is getting out of hand.
</pre></div></div>
<p>Each escape character is interpreted twice—once in copy mode, when the
macro is defined, and once in interpretation mode, when the macro is
called. As seen above, this fact leads to exponential growth in the
quantity of escape characters required to delay interpolation of
<code class="code">\n</code>, <code class="code">\g</code>, <code class="code">\$</code>, <code class="code">\*</code>, <code class="code">\V</code>, and <code class="code">\?</code> at
each nesting level, which can be daunting. GNU <code class="code">troff</code> offers a
solution.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cE-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\E</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cE-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cE"></a>
<p><code class="code">\E</code> represents an escape character that is not interpreted in copy
mode. You can use it to ease the writing of nested macro definitions.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de M1
. nop \E$1
. de M2
. nop \E$1
. de M3
. nop \E$1
\\\\..
. M3 better.
\\..
. M2 bit
..
This vehicle handles
.M1 a
⇒ This vehicle handles a bit better.
</pre></div></div>
<p>Observe that because <code class="code">\.</code> is not a true escape sequence, we can’t
use <code class="code">\E</code> to keep ‘<samp class="samp">..</samp>’ from ending a macro definition
prematurely. If the multiplicity of backslashes complicates
maintenance, use end macros.
</p>
<p><code class="code">\E</code> is also convenient to define strings containing escape
sequences that need to work when used in copy mode (for example, as
macro arguments), or which will be interpolated at varying macro nesting
depths. We might define strings to begin and end superscripting
as follows.<a class="footnote" id="DOCF102" href="#FOOT102"><sup>102</sup></a>
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ds { \v'-.9m\s'\En[.s]*7u/10u'+.7m'
.ds } \v'-.7m\s0+.9m'
</pre></div></div>
<p>When the <code class="code">ec</code> request is used to redefine the escape character,
<code class="code">\E</code> also makes it easier to distinguish the semantics of an escape
character from the other meaning(s) its character might have. Consider
the use of an unusual escape character, ‘<samp class="samp">-</samp>’.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.nr a 1
.ec -
.de xx
--na
..
.xx
⇒ -na
</pre></div></div>
<p>This result may surprise you; some people expect ‘<samp class="samp">1</samp>’ to be output
since register ‘<samp class="samp">a</samp>’ has clearly been defined with that value. What
has happened? The robotic replacement of ‘<samp class="samp">\</samp>’ with ‘<samp class="samp">-</samp>’ has led
us astray. You might recognize the sequence ‘<samp class="samp">--</samp>’ more readily with
the default escape character as ‘<samp class="samp">\-</samp>’, the special character escape
sequence for the minus sign glyph.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.nr a 1
.ec -
.de xx
-Ena
..
.xx
⇒ 1
</pre></div></div>
</dd></dl>
<hr>
</div>
</div>
<div class="section-level-extent" id="Page-Motions">
<div class="nav-panel">
<p>
Next: <a href="#Drawing-Geometric-Objects" accesskey="n" rel="next">Drawing Geometric Objects</a>, Previous: <a href="#Writing-Macros" accesskey="p" rel="prev">Writing Macros</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Page-Motions-1">5.25 Page Motions</h3>
<a class="index-entry-id" id="index-page-motions"></a>
<a class="index-entry-id" id="index-motions_002c-page"></a>
<p>See <a class="xref" href="#Manipulating-Spacing">Manipulating Spacing</a>, for a discussion of the most commonly used
request for vertical motion, <code class="code">sp</code>, which spaces downward by one
vee.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002emk"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.mk</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">reg</i></span>]</var><a class="copiable-link" href='#index-_002emk'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-mk"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002ert"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.rt</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">dist</i></span>]</var><a class="copiable-link" href='#index-_002ert'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-rt"></a>
<a class="index-entry-id" id="index-marking-vertical-page-location-_0028mk_0029"></a>
<a class="index-entry-id" id="index-page-location_002c-vertical_002c-marking-_0028mk_0029"></a>
<a class="index-entry-id" id="index-location_002c-vertical_002c-page_002c-marking-_0028mk_0029"></a>
<a class="index-entry-id" id="index-vertical-page-location_002c-marking-_0028mk_0029"></a>
<a class="index-entry-id" id="index-returning-to-marked-vertical-page-location-_0028rt_0029"></a>
<a class="index-entry-id" id="index-page-location_002c-vertical_002c-returning-to-marked-_0028rt_0029"></a>
<a class="index-entry-id" id="index-location_002c-vertical_002c-page_002c-returning-to-marked-_0028rt_0029"></a>
<a class="index-entry-id" id="index-vertical-page-location_002c-returning-to-marked-_0028rt_0029"></a>
<p>You can <em class="dfn">mark</em> a location on a page for subsequent <em class="dfn">return</em>.
<code class="code">mk</code> takes an argument, a register name in which to store the
current page location. If given no argument, it stores the location in
an internal register. This location can be used later by the <code class="code">rt</code>
or the <code class="code">sp</code> requests (or the <code class="code">\v</code> escape).
</p>
<p>The <code class="code">rt</code> request returns <em class="emph">upward</em> to the location marked with
the last <code class="code">mk</code> request. If used with an argument, it returns to a
vertical position <var class="var">dist</var> from the top of the page (no previous
call to <code class="code">mk</code> is necessary in this case). The default scaling
unit is ‘<samp class="samp">v</samp>’.
</p>
<p>If a page break occurs between a <code class="code">mk</code> request and its matching
<code class="code">rt</code> request, the <code class="code">rt</code> request is silently ignored.
</p>
<p>A simple implementation of a macro to set text in two columns follows.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.nr column-length 1.5i
.nr column-gap 4m
.nr bottom-margin 1m
.
.de 2c
. br
. mk
. ll \\n[column-length]u
. wh -\\n[bottom-margin]u 2c-trap
. nr right-side 0
..
.
.de 2c-trap
. ie \\n[right-side] \{\
. nr right-side 0
. po -(\\n[column-length]u + \\n[column-gap]u)
. \" remove trap
. wh -\\n[bottom-margin]u
. \}
. el \{\
. \" switch to right side
. nr right-side 1
. po +(\\n[column-length]u + \\n[column-gap]u)
. rt
. \}
..
</pre></div></div>
<p>Now let us apply our two-column macro.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.pl 1.5i
.ll 4i
This is a small test that shows how the
rt request works in combination with mk.
.2c
Starting here, text is typeset in two columns.
Note that this implementation isn't robust
and thus not suited for a real two-column
macro.
⇒ This is a small test that shows how the
⇒ rt request works in combination with mk.
⇒
⇒ Starting here, isn't robust
⇒ text is typeset and thus not
⇒ in two columns. suited for a
⇒ Note that this real two-column
⇒ implementation macro.
</pre></div></div>
</dd></dl>
<p>Several escape sequences enable fine control of movement about the page.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cv_0027expr_0027"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\v<code class="code">'</code></code><span class="r"><i class="slanted">expr</i></span><code class="t"><code class="code">'</code></code></strong><a class="copiable-link" href='#index-_005cv_0027expr_0027'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cv"></a>
<a class="index-entry-id" id="index-vertical-motion-_0028_005cv_0029"></a>
<a class="index-entry-id" id="index-motion_002c-vertical-_0028_005cv_0029"></a>
<p>Vertically move the drawing position. <var class="var">expr</var> indicates the
magnitude of motion: positive is downward and and negative upward. The
default scaling unit is ‘<samp class="samp">v</samp>’. The motion is relative to the current
drawing position unless <var class="var">expr</var> begins with the boundary-relative
motion operator ‘<samp class="samp">|</samp>’. See <a class="xref" href="#Numeric-Expressions">Numeric Expressions</a>.
</p>
<p>Text processing continues at the new drawing position; usually, vertical
motions should be in balanced pairs to avoid a confusing page layout.
</p>
<p><code class="code">\v</code> will not spring a vertical position trap. This can be useful;
for example, consider a page bottom trap macro that prints a marker in
the margin to indicate continuation of a footnote. See <a class="xref" href="#Traps">Traps</a>.
</p></dd></dl>
<p>A few escape sequences that produce vertical motion are unusual. They
are thought to originate early in AT&T <code class="code">nroff</code> history to achieve
super- and subscripting by half-line motions on line printers and
teletypewriters before the phototypesetter made more precise positioning
available. They are reckoned in ems—not vees—to maintain continuity
with their original purpose of moving relative to the size of the type
rather than the distance between text baselines (vees).<a class="footnote" id="DOCF103" href="#FOOT103"><sup>103</sup></a>
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cr-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\r</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cr-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cr"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cu-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\u</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cu-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cu"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cd-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\d</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cd-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cd"></a>
<p>Move upward 1<span class="dmn">m</span>, upward .5<span class="dmn">m</span>, and
downward .5<span class="dmn">m</span>, respectively.
</p></dd></dl>
<p>Let us see these escape sequences in use.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">Obtain 100 cm\u3\d of \ka\d\092\h'|\nau'\r233\dU.
</pre></div></div>
<p>In the foregoing we have paired <code class="code">\u</code> and <code class="code">\d</code> to typeset a
superscript, and later a full em negative (“reverse”) motion to place
a superscript above a subscript. A numeral-width horizontal motion
escape sequence aligns the proton and nucleon numbers, while <code class="code">\k</code>
marks a horizontal position to which <code class="code">\h</code> returns so that we could
stack them. (We shall discuss these horizontal motion escape sequences
presently.) In serious applications, we often want to alter the type
size of the -scripts and to fine-tune the vertical motions, as the
<code class="code">groff</code> <samp class="file">ms</samp> package does with its super- and subscripting
string definitions.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005ch_0027expr_0027"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\h<code class="code">'</code></code><span class="r"><i class="slanted">expr</i></span><code class="t"><code class="code">'</code></code></strong><a class="copiable-link" href='#index-_005ch_0027expr_0027'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005ch"></a>
<a class="index-entry-id" id="index-inserting-horizontal-space-_0028_005ch_0029"></a>
<a class="index-entry-id" id="index-horizontal-space-_0028_005ch_0029"></a>
<a class="index-entry-id" id="index-space_002c-horizontal-_0028_005ch_0029"></a>
<a class="index-entry-id" id="index-horizontal-motion-_0028_005ch_0029"></a>
<a class="index-entry-id" id="index-motion_002c-horizontal-_0028_005ch_0029"></a>
<p>Horizontally move the drawing position. <var class="var">expr</var> indicates the
magnitude of motion: positive is rightward and negative leftward. The
default scaling unit is ‘<samp class="samp">m</samp>’. The motion is relative to the current
drawing position unless <var class="var">expr</var> begins with the boundary-relative
motion operator ‘<samp class="samp">|</samp>’. See <a class="xref" href="#Numeric-Expressions">Numeric Expressions</a>.
</p></dd></dl>
<p>The following string definition sets the TeX
logo.<a class="footnote" id="DOCF104" href="#FOOT104"><sup>104</sup></a>
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ds TeX T\h'-.1667m'\v'.224m'E\v'-.224m'\h'-.125m'X\"
</pre></div></div>
<p>There are a number of special-case escape sequences for horizontal
motion.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cSP-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\<kbd class="key">SP</kbd></code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cSP-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cSP"></a>
<a class="index-entry-id" id="index-space_002c-unbreakable-and-unadjustable-_0028_005cSP_0029"></a>
<a class="index-entry-id" id="index-unbreakable-and-unadjustable-space-_0028_005cSP_0029"></a>
<a class="index-entry-id" id="index-unadjustable-and-unbreakable-space-_0028_005cSP_0029"></a>
<a class="index-entry-id" id="index-_005cspace"></a>
<p>Move right one word space. (The input is a backslash followed by a
space.) This escape sequence can be thought of as a non-adjustable,
unbreakable space. Usually you want <code class="code">\~</code> instead; see
<a class="ref" href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a>.
</p></dd></dl>
<a class="index-entry-id" id="index-thin-space-_0028_005c_007c_0029"></a>
<a class="index-entry-id" id="index-space_002c-thin-_0028_005c_007c_0029"></a>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_007c-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\|</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_007c-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005c_007c"></a>
<p>Move one-sixth <span class="dmn">em</span> to the right on typesetting output devices. If
a glyph named ‘<samp class="samp">\|</samp>’ is defined in the current font, its width is
used instead, even on terminal output devices.
</p></dd></dl>
<a class="index-entry-id" id="index-hair-space-_0028_005c_005e_0029"></a>
<a class="index-entry-id" id="index-space_002c-hair-_0028_005c_005e_0029"></a>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_005e-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\^</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_005e-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005c_005e"></a>
<p>Move one-twelfth <span class="dmn">em</span> to the right on typesetting output devices.
If a glyph named ‘<samp class="samp">\^</samp>’ is defined in the current font, its width is
used instead, even on terminal output devices.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c0-1"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\0</code><span class="r"><i class="slanted"></i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c0-1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005c0"></a>
<a class="index-entry-id" id="index-space_002c-width-of-a-digit-_0028numeral_0029-_0028_005c0_0029"></a>
<a class="index-entry-id" id="index-digit_002dwidth-space-_0028_005c0_0029"></a>
<a class="index-entry-id" id="index-figure-space-_0028_005c0_0029"></a>
<a class="index-entry-id" id="index-numeral_002dwidth-space-_0028_005c0_0029"></a>
<p>Move right by the width of a numeral in the current font.
</p></dd></dl>
<p>Horizontal motions are not discarded at the end of an output line as
word spaces are. See <a class="xref" href="#Breaking">Breaking</a>.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cw_0027anything_0027"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\w<code class="code">'</code></code><span class="r"><i class="slanted">anything</i></span><code class="t"><code class="code">'</code></code></strong><a class="copiable-link" href='#index-_005cw_0027anything_0027'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cw"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005bst_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[st]</code></strong><a class="copiable-link" href='#index-_005cn_005bst_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-st"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005bsb_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[sb]</code></strong><a class="copiable-link" href='#index-_005cn_005bsb_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-sb"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005brst_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[rst]</code></strong><a class="copiable-link" href='#index-_005cn_005brst_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-rst"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005brsb_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[rsb]</code></strong><a class="copiable-link" href='#index-_005cn_005brsb_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-rsb"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005bct_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[ct]</code></strong><a class="copiable-link" href='#index-_005cn_005bct_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ct"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005bssc_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[ssc]</code></strong><a class="copiable-link" href='#index-_005cn_005bssc_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ssc"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005bskw_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[skw]</code></strong><a class="copiable-link" href='#index-_005cn_005bskw_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-skw"></a>
<a class="index-entry-id" id="index-width-escape-_0028_005cw_0029"></a>
<p>Interpolate the width of <var class="var">anything</var> in basic units. This escape
sequence allows several properties of formatted output to be measured
without writing it out.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">The length of the string 'abc' is \w'abc'u.
⇒ The length of the string 'abc' is 72u.
</pre></div></div>
<a class="index-entry-id" id="index-dummy-environment_002c-used-by-_005cw-escape-sequence"></a>
<a class="index-entry-id" id="index-environment_002c-dummy_002c-used-by-_005cw-escape-sequence"></a>
<p><var class="var">anything</var> is processed in a dummy environment: this means that
font and type size changes, for example, may occur within it without
affecting subsequent output.
</p>
<p>After each use, <code class="code">\w</code> sets several registers.
</p>
<a class="index-entry-id" id="index-CSTR-_002354-errata-5"></a>
<a class="index-entry-id" id="index-CSTR-_002354-erratum_002c-sb-register"></a>
<a class="index-entry-id" id="index-CSTR-_002354-erratum_002c-st-register"></a>
<dl class="table">
<dt><code class="code">st</code></dt>
<dt><code class="code">sb</code></dt>
<dd><p>The maximum vertical displacements of the text baseline above and below,
respectively. The sign convention is opposite that of relative vertical
motions; that is, depth below the (original) baseline is negative.
These registers are incorrectly documented in the <abbr class="acronym">AT&T</abbr>
<code class="code">troff</code> manual as “the highest and lowest extent of [the argument
to <code class="code">\w</code>] relative to the baseline”.
</p>
</dd>
<dt><code class="code">rst</code></dt>
<dt><code class="code">rsb</code></dt>
<dd><p>Like <code class="code">st</code> and <code class="code">sb</code>, but taking account of the heights and
depths of glyphs. In other words, these registers store the highest and
lowest vertical positions attained by <var class="var">anything</var>, doing what
<abbr class="acronym">AT&T</abbr> <code class="code">troff</code> documented <code class="code">st</code> and <code class="code">sb</code> as doing.
</p>
</dd>
<dt><code class="code">ct</code></dt>
<dd><p>Characterizes the geometry of glyphs occurring in <var class="var">anything</var>.
</p>
<dl class="table">
<dt>0</dt>
<dd><p>only short glyphs, no descenders or tall glyphs
</p>
</dd>
<dt>1</dt>
<dd><p>at least one descender
</p>
</dd>
<dt>2</dt>
<dd><p>at least one tall glyph
</p>
</dd>
<dt>3</dt>
<dd><p>at least one each of a descender and a tall glyph
</p></dd>
</dl>
</dd>
<dt><code class="code">ssc</code></dt>
<dd><p>The amount of horizontal space (possibly negative) that should be added
to the last glyph before a subscript.
</p>
</dd>
<dt><code class="code">skw</code></dt>
<dd><p>How far to right of the center of the last glyph in the <code class="code">\w</code>
argument, the center of an accent from a roman font should be placed
over that glyph.
</p></dd>
</dl>
</dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005ckp"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\k</code><span class="r"><i class="slanted">p</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005ckp'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005ck"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005ck_0028ps"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\k(</code><span class="r"><i class="slanted">ps</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005ck_0028ps'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005ck_005bposition_005d"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\k[</code><span class="r"><i class="slanted">position</i></span><code class="t">]</code></strong><a class="copiable-link" href='#index-_005ck_005bposition_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-saving-horizontal-input-line-position-_0028_005ck_0029"></a>
<a class="index-entry-id" id="index-horizontal-input-line-position_002c-saving-_0028_005ck_0029"></a>
<a class="index-entry-id" id="index-input-line-position_002c-horizontal_002c-saving-_0028_005ck_0029"></a>
<a class="index-entry-id" id="index-position_002c-horizontal-input-line_002c-saving-_0028_005ck_0029"></a>
<a class="index-entry-id" id="index-line_002c-input_002c-horizontal-position_002c-saving-_0028_005ck_0029"></a>
<p>Store the current horizontal position in the <em class="emph">input</em> line in a
register with the name <var class="var">position</var> (one-character name <var class="var">p</var>,
two-character name <var class="var">ps</var>). Use this, for example, to return to the
beginning of a string for highlighting or other decoration.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005bhp_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[hp]</code></strong><a class="copiable-link" href='#index-_005cn_005bhp_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-hp"></a>
<a class="index-entry-id" id="index-horizontal-input-line-position-register-_0028hp_0029"></a>
<a class="index-entry-id" id="index-input-line_002c-horizontal-position_002c-register-_0028hp_0029"></a>
<a class="index-entry-id" id="index-position_002c-horizontal_002c-in-input-line_002c-register-_0028hp_0029"></a>
<a class="index-entry-id" id="index-line_002c-input_002c-horizontal-position_002c-register-_0028hp_0029"></a>
<p>The current horizontal position at the input line.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005b_002ek_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.k]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ek_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ek"></a>
<a class="index-entry-id" id="index-horizontal-output-line-position-register-_0028_002ek_0029"></a>
<a class="index-entry-id" id="index-output-line_002c-horizontal-position_002c-register-_0028_002ek_0029"></a>
<a class="index-entry-id" id="index-position_002c-horizontal_002c-in-output-line_002c-register-_0028_002ek_0029"></a>
<a class="index-entry-id" id="index-line_002c-output_002c-horizontal-position_002c-register-_0028_002ek_0029"></a>
<p>A read-only register containing the current horizontal output position
(relative to the current indentation).
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005co_0027abc_2026_0027"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\o<code class="code">'</code></code><span class="r"><i class="slanted">abc…</i></span><code class="t"><code class="code">'</code></code></strong><a class="copiable-link" href='#index-_005co_0027abc_2026_0027'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005co"></a>
<a class="index-entry-id" id="index-overstriking-glyphs-_0028_005co_0029"></a>
<a class="index-entry-id" id="index-glyphs_002c-overstriking-_0028_005co_0029"></a>
<p>Overstrike the glyphs of characters <var class="var">a</var>, <var class="var">b</var>, <var class="var">c</var>, …;
the glyphs are centered, written, and the drawing position advanced by
the widest of the glyphs.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005czc"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\z</code><span class="r"><i class="slanted">c</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005czc'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cz"></a>
<a class="index-entry-id" id="index-zero_002dwidth-printing-_0028_005cz_002c-_005cZ_0029"></a>
<a class="index-entry-id" id="index-printing_002c-zero_002dwidth-_0028_005cz_002c-_005cZ_0029"></a>
<p>Format the character <var class="var">c</var> with zero width; that is, without advancing
the drawing position. Use <code class="code">\z</code> to overstrike glyphs aligned to
their left edges, in contrast to <code class="code">\o</code>’s centering.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cZ_0027anything_0027"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\Z<code class="code">'</code></code><span class="r"><i class="slanted">anything</i></span><code class="t"><code class="code">'</code></code></strong><a class="copiable-link" href='#index-_005cZ_0027anything_0027'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cZ"></a>
<a class="index-entry-id" id="index-zero_002dwidth-printing-_0028_005cz_002c-_005cZ_0029-1"></a>
<a class="index-entry-id" id="index-printing_002c-zero_002dwidth-_0028_005cz_002c-_005cZ_0029-1"></a>
<p>Save the drawing position, format <var class="var">anything</var>, then restore it. Tabs
and leaders in the argument are ignored with an error diagnostic.
</p>
<p>We might implement a strike-through macro thus.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de ST
.nr width \w'\\$1'
\Z@\v'-.25m'\l'\\n[width]u'@\\$1
..
.
This is
.ST "a test"
an actual emergency!
</pre></div></div>
</dd></dl>
<hr>
</div>
<div class="section-level-extent" id="Drawing-Geometric-Objects">
<div class="nav-panel">
<p>
Next: <a href="#Traps" accesskey="n" rel="next">Traps</a>, Previous: <a href="#Page-Motions" accesskey="p" rel="prev">Page Motions</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Drawing-Geometric-Objects-1">5.26 Drawing Geometric Objects</h3>
<a class="index-entry-id" id="index-drawing-requests"></a>
<a class="index-entry-id" id="index-requests-for-drawing"></a>
<p>A few of the formatter’s escape sequences draw lines and other geometric
objects. Combined with each other and with page motion commands
(see <a class="pxref" href="#Page-Motions">Page Motions</a>), a wide variety of figures is possible. For
complex drawings, these operations can be cumbersome; the preprocessors
<code class="code">gpic</code> or <code class="code">ggrn</code> are typically used instead.
</p>
<p>The <code class="code">\l</code> and <code class="code">\L</code> escape sequences draw horizontal and
vertical sequences of glyphs, respectively. Even the simplest of
output devices supports them.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cl_0027l_0027"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\l<code class="code">'</code></code><span class="r"><i class="slanted">l</i></span><code class="t"><code class="code">'</code></code></strong><a class="copiable-link" href='#index-_005cl_0027l_0027'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cl"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cl_0027lc_0027"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\l<code class="code">'</code></code><span class="r"><i class="slanted">lc</i></span><code class="t"><code class="code">'</code></code></strong><a class="copiable-link" href='#index-_005cl_0027lc_0027'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-drawing-horizontal-lines-_0028_005cl_0029"></a>
<a class="index-entry-id" id="index-horizontal-line_002c-drawing-_0028_005cl_0029"></a>
<a class="index-entry-id" id="index-line_002c-horizontal_002c-drawing-_0028_005cl_0029"></a>
<p>Draw a horizontal line of length <var class="var">l</var> from the drawing position.
Rightward motion is positive. Afterward, the drawing position is at the
right end of the line. The default scaling unit is ‘<samp class="samp">m</samp>’.
</p>
<a class="index-entry-id" id="index-baseline-rule-special-character_0028_005c_005bru_005d_0029"></a>
<a class="index-entry-id" id="index-glyph_002c-underscore-_0028_005c_005bru_005d_0029"></a>
<a class="index-entry-id" id="index-line-drawing-glyph"></a>
<a class="index-entry-id" id="index-glyph_002c-for-line-drawing"></a>
<p>The optional second parameter <var class="var">c</var> is a character with which to
draw the line. The default is the baseline rule special character,
<code class="code">\[ru]</code>.
</p>
<a class="index-entry-id" id="index-dummy-character-_0028_005c_0026_0029_002c-effect-on-_005cl-escape-sequence"></a>
<a class="index-entry-id" id="index-character_002c-dummy-_0028_005c_0026_0029_002c-effect-on-_005cl-escape-sequence"></a>
<p>If <var class="var">c</var> is a valid scaling unit, put <code class="code">\&</code> after <var class="var">l</var> to
disambiguate the input.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de textbox
\[br]\\$*\[br]\l'|0\[rn]'\l'|0\[ul]'
..
</pre></div></div>
<p>The foregoing outputs a box rule (a vertical line), the text
argument(s), and another box rule. We employ the boundary-relative
motion operator ‘<samp class="samp">|</samp>’. Finally, the line-drawing escape sequences
draw a radical extender (a form of overline) and an underline from the
drawing position to the position coresponding to beginning of the
<em class="emph">input</em> line. The drawing position returns to just after the
right-hand box rule because the lengths of the drawn lines are negative,
as noted above.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cL_0027l_0027"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\L<code class="code">'</code></code><span class="r"><i class="slanted">l</i></span><code class="t"><code class="code">'</code></code></strong><a class="copiable-link" href='#index-_005cL_0027l_0027'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cL"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cL_0027lc_0027"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\L<code class="code">'</code></code><span class="r"><i class="slanted">lc</i></span><code class="t"><code class="code">'</code></code></strong><a class="copiable-link" href='#index-_005cL_0027lc_0027'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-drawing-vertical-lines-_0028_005cL_0029"></a>
<a class="index-entry-id" id="index-vertical-line-drawing-_0028_005cL_0029"></a>
<a class="index-entry-id" id="index-line_002c-vertical_002c-drawing-_0028_005cL_0029"></a>
<a class="index-entry-id" id="index-line-drawing-glyph-1"></a>
<a class="index-entry-id" id="index-glyph-for-line-drawing"></a>
<a class="index-entry-id" id="index-box-rule-glyph-_0028_005c_005bbr_005d_0029"></a>
<a class="index-entry-id" id="index-glyph_002c-box-rule-_0028_005c_005bbr_005d_0029"></a>
<p>Draw a vertical line of length <var class="var">l</var> from the drawing position.
Downward motion is positive. The default scaling unit is ‘<samp class="samp">v</samp>’. The
default character is the box rule, <code class="code">\[br]</code>. As with vertical
motion escape sequences, text processing continues where the line ends.
<code class="code">\L</code> is otherwise similar to <code class="code">\l</code>.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">$ nroff <<EOF
This is a \L'3v'test.
EOF
⇒ This is a
⇒ |
⇒ |
⇒ |test.
</pre></div></div>
<p>When writing text, the drawing position is at the text baseline; recall
<a class="ref" href="#Page-Geometry">Page Geometry</a>.
</p></dd></dl>
<p>The <code class="code">\D</code> escape sequence provides <em class="dfn">drawing commands</em> that
direct the output device to render geometrical objects rather than
glyphs. Specific devices may support only a subset, or may feature
additional ones; consult the man page for the output driver in use.
Terminal devices in particular implement almost none. See <a class="xref" href="#Graphics-Commands">Graphics Commands</a>.
</p>
<p>Rendering starts at the drawing position; when finished, the drawing
position is left at the rightmost point of the object, even for closed
figures, except where noted. GNU <code class="code">troff</code> draws stroked (outlined)
objects with the stroke color, and shades filled ones with the fill
color. See <a class="xref" href="#Colors">Colors</a>. Coordinates <var class="var">h</var> and <var class="var">v</var> are horizontal
and vertical motions relative to the drawing position or previous point
in the command. The default scaling unit for horizontal measurements
(and diameters of circles) is ‘<samp class="samp">m</samp>’; for vertical ones, ‘<samp class="samp">v</samp>’.
</p>
<p>Circles, ellipses, and polygons can be drawn filled or stroked. These
are independent properties; if you want a filled, stroked figure, you
must draw the same figure twice using each drawing command. A filled
figure is always smaller than an outlined one because the former is
drawn only within its defined area, whereas strokes have a line
thickness (set with ‘<samp class="samp">\D't'</samp>’).
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">\h'1i'\v'1i'\
\# increase line thickness
\Z'\D't 5p''\
\# draw stroked (unfilled) polygon
\Z'\D'p 3 3 -6 0''\
\# draw filled (solid) polygon
\Z'\D'P 3 3 -6 0''
</pre></div></div>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cD_0027command-argument-_2026_0027"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\D<code class="code">'</code></code><span class="r"><i class="slanted">command argument …</i></span><code class="t"><code class="code">'</code></code></strong><a class="copiable-link" href='#index-_005cD_0027command-argument-_2026_0027'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cD"></a>
<p>Drawing command escape sequence parameters begin with an ordinary
character, <var class="var">command</var>, selecting the type of object to be drawn,
followed by <var class="var">argument</var>s whose meaning is determined by
<var class="var">command</var>.
</p>
<dl class="table">
<dt id='index-drawing-a-spline-_0028_005cD_0027_007e-_2026_0027_0029'><span><code class="code">\D'~ <var class="var">h1</var> <var class="var">v1</var> … <var class="var">hn</var> <var class="var">vn</var>'</code><a class="copiable-link" href='#index-drawing-a-spline-_0028_005cD_0027_007e-_2026_0027_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-spline_002c-drawing-_0028_005cD_0027_007e-_2026_0027_0029"></a>
<p>Draw a B-spline to each point in sequence, leaving the drawing position
at (<var class="var">hn</var>, <var class="var">vn</var>).
</p>
</dd>
<dt id='index-arc_002c-drawing-_0028_005cD_0027a-_2026_0027_0029'><span><code class="code">\D'a <var class="var">hc</var> <var class="var">vc</var> <var class="var">h</var> <var class="var">v</var>'</code><a class="copiable-link" href='#index-arc_002c-drawing-_0028_005cD_0027a-_2026_0027_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-drawing-an-arc-_0028_005cD_0027a-_2026_0027_0029"></a>
<p>Draw a circular arc centered at (<var class="var">hc</var>, <var class="var">vc</var>) counterclockwise
from the drawing position to a point (<var class="var">h</var>, <var class="var">v</var>) relative to the
center. <a class="footnote" id="DOCF105" href="#FOOT105"><sup>105</sup></a>
</p>
</dd>
<dt id='index-circle_002c-stroked_002c-drawing-_0028_005cD_0027c-_2026_0027_0029'><span><code class="code">\D'c <var class="var">d</var>'</code><a class="copiable-link" href='#index-circle_002c-stroked_002c-drawing-_0028_005cD_0027c-_2026_0027_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-drawing-a-stroked-circle-_0028_005cD_0027c-_2026_0027_0029"></a>
<a class="index-entry-id" id="index-stroked-circle_002c-drawing-_0028_005cD_0027c-_2026_0027_0029"></a>
<a class="index-entry-id" id="index-circle_002c-outlined_002c-drawing-_0028_005cD_0027c-_2026_0027_0029"></a>
<a class="index-entry-id" id="index-drawing-an-outlined-circle-_0028_005cD_0027c-_2026_0027_0029"></a>
<a class="index-entry-id" id="index-outlined-circle_002c-drawing-_0028_005cD_0027c-_2026_0027_0029"></a>
<p>Draw a circle of diameter <var class="var">d</var> with its leftmost point at the drawing
position.
</p>
</dd>
<dt id='index-circle_002c-filled_002c-drawing-_0028_005cD_0027C-_2026_0027_0029'><span><code class="code">\D'C <var class="var">d</var>'</code><a class="copiable-link" href='#index-circle_002c-filled_002c-drawing-_0028_005cD_0027C-_2026_0027_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-drawing-a-filled-circle-_0028_005cD_0027C-_2026_0027_0029"></a>
<a class="index-entry-id" id="index-filled-circle_002c-drawing-_0028_005cD_0027C-_2026_0027_0029"></a>
<a class="index-entry-id" id="index-circle_002c-solid_002c-drawing-_0028_005cD_0027C-_2026_0027_0029"></a>
<a class="index-entry-id" id="index-drawing-a-solid-circle-_0028_005cD_0027C-_2026_0027_0029"></a>
<a class="index-entry-id" id="index-solid-circle_002c-drawing-_0028_005cD_0027C-_2026_0027_0029"></a>
<p>As ‘<samp class="samp">\D'C <span class="r">…</span>'</samp>’, but the circle is filled.
</p>
</dd>
<dt id='index-ellipse_002c-stroked_002c-drawing-_0028_005cD_0027e-_2026_0027_0029'><span><code class="code">\D'e <var class="var">h</var> <var class="var">v</var>'</code><a class="copiable-link" href='#index-ellipse_002c-stroked_002c-drawing-_0028_005cD_0027e-_2026_0027_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-drawing-a-stroked-ellipse-_0028_005cD_0027e-_2026_0027_0029"></a>
<a class="index-entry-id" id="index-stroked-ellipse_002c-drawing-_0028_005cD_0027e-_2026_0027_0029"></a>
<a class="index-entry-id" id="index-ellipse_002c-outlined_002c-drawing-_0028_005cD_0027e-_2026_0027_0029"></a>
<a class="index-entry-id" id="index-drawing-an-outlined-ellipse-_0028_005cD_0027e-_2026_0027_0029"></a>
<a class="index-entry-id" id="index-outlined-ellipse_002c-drawing-_0028_005cD_0027e-_2026_0027_0029"></a>
<p>Draw an ellipse of width <var class="var">h</var> and height <var class="var">v</var> with its leftmost
point at the drawing position.
</p>
</dd>
<dt id='index-ellipse_002c-filled_002c-drawing-_0028_005cD_0027E-_2026_0027_0029'><span><code class="code">\D'E <var class="var">x</var> <var class="var">y</var>'</code><a class="copiable-link" href='#index-ellipse_002c-filled_002c-drawing-_0028_005cD_0027E-_2026_0027_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-drawing-a-filled-ellipse-_0028_005cD_0027E-_2026_0027_0029"></a>
<a class="index-entry-id" id="index-filled-ellipse_002c-drawing-_0028_005cD_0027E-_2026_0027_0029"></a>
<a class="index-entry-id" id="index-ellipse_002c-solid_002c-drawing-_0028_005cD_0027E-_2026_0027_0029"></a>
<a class="index-entry-id" id="index-drawing-a-solid-ellipse-_0028_005cD_0027E-_2026_0027_0029"></a>
<a class="index-entry-id" id="index-solid-ellipse_002c-drawing-_0028_005cD_0027E-_2026_0027_0029"></a>
<p>As ‘<samp class="samp">\D'e <span class="r">…</span>'</samp>’, but the ellipse is filled.
</p>
</dd>
<dt id='index-line_002c-drawing-_0028_005cD_0027l-_2026_0027_0029'><span><code class="code">\D'l <var class="var">dx</var> <var class="var">dy</var>'</code><a class="copiable-link" href='#index-line_002c-drawing-_0028_005cD_0027l-_2026_0027_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-drawing-a-line-_0028_005cD_0027l-_2026_0027_0029"></a>
<p>Draw line from the drawing position to (<var class="var">h</var>, <var class="var">v</var>).
</p>
<p>The following is a macro for drawing a box around a text argument; for
simplicity, the box margin is a fixed at 0.2<span class="dmn">m</span>.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de TEXTBOX
. nr @wd \w'\\$1'
\h'.2m'\
\h'-.2m'\v'(.2m - \\n[rsb]u)'\
\D'l 0 -(\\n[rst]u - \\n[rsb]u + .4m)'\
\D'l (\\n[@wd]u + .4m) 0'\
\D'l 0 (\\n[rst]u - \\n[rsb]u + .4m)'\
\D'l -(\\n[@wd]u + .4m) 0'\
\h'.2m'\v'-(.2m - \\n[rsb]u)'\
\\$1\
\h'.2m'
..
</pre></div></div>
<p>The argument is measured with the <code class="code">\w</code> escape sequence. Its width
is stored in register <code class="code">@wd</code>. <code class="code">\w</code> also sets the registers
<code class="code">rst</code> and <code class="code">rsb</code>; these contain its maximum vertical extents of
the argument. Then, four lines are drawn to form a box, offset by the
box margin.
</p>
</dd>
<dt id='index-polygon_002c-stroked_002c-drawing-_0028_005cD_0027p-_2026_0027_0029'><span><code class="code">\D'p <var class="var">h1</var> <var class="var">v1</var> … <var class="var">hn</var> <var class="var">vn</var>'</code><a class="copiable-link" href='#index-polygon_002c-stroked_002c-drawing-_0028_005cD_0027p-_2026_0027_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-drawing-a-stroked-polygon-_0028_005cD_0027p-_2026_0027_0029"></a>
<a class="index-entry-id" id="index-stroked-polygon_002c-drawing-_0028_005cD_0027p-_2026_0027_0029"></a>
<a class="index-entry-id" id="index-polygon_002c-outlined_002c-drawing-_0028_005cD_0027p-_2026_0027_0029"></a>
<a class="index-entry-id" id="index-drawing-an-outlined-polygon-_0028_005cD_0027p-_2026_0027_0029"></a>
<a class="index-entry-id" id="index-outlined-polygon_002c-drawing-_0028_005cD_0027p-_2026_0027_0029"></a>
<p>Draw polygon with vertices at drawing position and each point in
sequence. GNU <code class="code">troff</code> closes the polygon by drawing a line from
(<var class="var">hn</var>, <var class="var">vn</var>) back to the initial drawing position.
Afterward, the drawing position is left at (<var class="var">hn</var>, <var class="var">vn</var>).
</p>
</dd>
<dt id='index-polygon_002c-filled_002c-drawing-_0028_005cD_0027P-_2026_0027_0029'><span><code class="code">\D'P <var class="var">dx1</var> <var class="var">dy1</var> <var class="var">dx2</var> <var class="var">dy2</var> …'</code><a class="copiable-link" href='#index-polygon_002c-filled_002c-drawing-_0028_005cD_0027P-_2026_0027_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-drawing-a-filled-polygon-_0028_005cD_0027P-_2026_0027_0029"></a>
<a class="index-entry-id" id="index-filled-polygon_002c-drawing-_0028_005cD_0027P-_2026_0027_0029"></a>
<a class="index-entry-id" id="index-polygon_002c-solid_002c-drawing-_0028_005cD_0027P-_2026_0027_0029"></a>
<a class="index-entry-id" id="index-drawing-a-solid-polygon-_0028_005cD_0027P-_2026_0027_0029"></a>
<a class="index-entry-id" id="index-solid-polygon_002c-drawing-_0028_005cD_0027P-_2026_0027_0029"></a>
<p>As ‘<samp class="samp">\D'P <span class="r">…</span>'</samp>’, but the polygon is filled.
</p>
<p>The following macro is like the ‘<samp class="samp">\D'l'</samp>’ example, but shades the
box. We draw the box before writing the text because colors in GNU
<code class="code">troff</code> have no transparency; in othe opposite order, the filled
polygon would occlude the text.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de TEXTBOX
. nr @wd \w'\\$1'
\h'.2m'\
\h'-.2m'\v'(.2m - \\n[rsb]u)'\
\M[lightcyan]\
\D'P 0 -(\\n[rst]u - \\n[rsb]u + .4m) \
(\\n[@wd]u + .4m) 0 \
0 (\\n[rst]u - \\n[rsb]u + .4m) \
-(\\n[@wd]u + .4m) 0'\
\h'.2m'\v'-(.2m - \\n[rsb]u)'\
\M[]\
\\$1\
\h'.2m'
..
</pre></div></div>
</dd>
<dt id='index-line-thickness-_0028_005cD_0027t-_2026_0027_0029'><span><code class="code">\D't <var class="var">n</var>'</code><a class="copiable-link" href='#index-line-thickness-_0028_005cD_0027t-_2026_0027_0029'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-thickness-of-lines-_0028_005cD_0027t-_2026_0027_0029"></a>
<p>Set the stroke thickness of geometric objects to <var class="var">n</var> basic units. A
zero <var class="var">n</var> selects the minimal supported thickness. A negative
<var class="var">n</var> selects a thickness proportional to the type size; this is the
default.
</p></dd>
</dl>
</dd></dl>
<p>In a hazy penumbra between text rendering and drawing commands we locate
the bracket-building escape sequence, <code class="code">\b</code>. It can assemble
apparently large glyphs by vertically stacking ordinary ones.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cb_0027contents_0027"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\b<code class="code">'</code></code><span class="r"><i class="slanted">contents</i></span><code class="t"><code class="code">'</code></code></strong><a class="copiable-link" href='#index-_005cb_0027contents_0027'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cb"></a>
<a class="index-entry-id" id="index-pile_002c-glyph-_0028_005cb_0029"></a>
<a class="index-entry-id" id="index-glyph-pile-_0028_005cb_0029"></a>
<a class="index-entry-id" id="index-stacking-glyphs-_0028_005cb_0029"></a>
<p>Pile and center a sequence of glyphs vertically on the output line.
<em class="dfn">Piling</em> stacks glyphs corresponding to each character in
<var class="var">contents</var>, read from left to right, and placed from top to bottom.
GNU <code class="code">troff</code> separates the glyphs vertically by 1<span class="dmn">m</span>, and the
pile itself is centered 0.5<span class="dmn">m</span> above the text baseline. The
horizontal drawing position is then advanced by the width of the widest
glyph in the pile.
</p>
<a class="index-entry-id" id="index-_005cb_002c-limitations-of"></a>
<a class="index-entry-id" id="index-limitations-of-_005cb-escape-sequence"></a>
<p>This rather inflexible positioning algorithm doesn’t work with the
<code class="code">dvi</code> output device since its bracket pieces vary in height.
Instead, use the <code class="code">geqn</code> preprocessor.
</p>
<p><a class="ref" href="#Manipulating-Spacing">Manipulating Spacing</a> describes how to adjust the vertical spacing
of the output line with the <code class="code">\x</code> escape sequence.
</p>
<p>The application of <code class="code">\b</code> that lends its name is construction of
brackets, braces, and parentheses when typesetting mathematics. We
might construct a large opening (left) brace as follows.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">\b'\[lt]\[bv]\[lk]\[bv]\[lb]'
</pre></div></div>
<p>See <cite class="cite">groff_char<span class="r">(7)</span></cite> for a list of special character
identifiers.
</p></dd></dl>
<hr>
</div>
<div class="section-level-extent" id="Deferring-Output">
<div class="nav-panel">
<p>
Next: <a href="#Traps" accesskey="n" rel="next">Traps</a>, Previous: <a href="#Drawing-Geometric-Objects" accesskey="p" rel="prev">Drawing Geometric Objects</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Deferring-Output-1">5.27 Deferring Output</h3>
<a class="index-entry-id" id="index-deferred-output"></a>
<a class="index-entry-id" id="index-environment"></a>
<a class="index-entry-id" id="index-diversion"></a>
<a class="index-entry-id" id="index-trap"></a>
<p>A few <code class="code">roff</code> language elements are generally not used in simple
documents, but arise as page layouts become more sophisticated and
demanding. <em class="dfn">Environments</em> collect formatting parameters like line
length and typeface. A <em class="dfn">diversion</em> stores formatted output for
later use. A <em class="dfn">trap</em> is a condition on the input or output, tested
automatically by the formatter, that is associated with a macro, causing
it to be called when that condition is fulfilled.
</p>
<p>Footnote support often exercises all three of the foregoing features. A
simple implementation might work as follows. A pair of macros is
defined: one starts a footnote and the other ends it. The author calls
the first macro where a footnote marker is desired. The macro
establishes a diversion so that the footnote text is collected at the
place in the body text where its corresponding marker appears. An
environment is created for the footnote so that it is set at a smaller
typeface. The footnote text is formatted in the diversion using that
environment, but it does not yet appear in the output. The document
author calls the footnote end macro, which returns to the previous
environment and ends the diversion. Later, after much more body text in
the document, a trap, set a small distance above the page bottom, is
sprung. The macro called by the trap draws a line across the page and
emits the stored diversion. Thus, the footnote is rendered.
</p>
<p>Diversions and traps make the text formatting process non-linear. Let
us imagine a set of text lines or paragraphs labelled ‘<samp class="samp">A</samp>’,
‘<samp class="samp">B</samp>’, and so on. If we set up a trap that produces text ‘<samp class="samp">T</samp>’
(as a page footer, say), and we also use a diversion to store the
formatted text ‘<samp class="samp">D</samp>’, then a document with input text in the order
‘<samp class="samp">A B C D E F</samp>’ might render as ‘<samp class="samp">A B C E T F</samp>’. The diversion
‘<samp class="samp">D</samp>’ will never be output if we do not call for it.
</p>
<p>Environments of themselves are not a source of non-linearity in document
formatting: environment switches have immediate effect. One could
always write a macro to change as many formatting parameters as desired
with a single convenient call. But because diversions can be nested and
macros called by traps that are sprung by other trap-called macros, they
may be called upon in varying contexts. For example, consider a page
header that is always to be set in Helvetica. A document that uses
Times for most of its body text, but Courier for displayed code
examples, poses a challenge if a page break occurs in the middle of a
code display; if the header trap assumes that the “previous font” is
always Times, the rest of the example will be formatted in the wrong
typeface. One could carefully save all formatting parameters upon
entering the trap and restore them upon leaving it, but this is verbose,
error-prone, and not future-proof as the <code class="code">groff</code> language develops.
Environments save us considerable effort.
</p>
<hr>
</div>
<div class="section-level-extent" id="Traps">
<div class="nav-panel">
<p>
Next: <a href="#Diversions" accesskey="n" rel="next">Diversions</a>, Previous: <a href="#Deferring-Output" accesskey="p" rel="prev">Deferring Output</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Traps-1">5.28 Traps</h3>
<a class="index-entry-id" id="index-traps"></a>
<p><em class="dfn">Traps</em> are locations in the output or conditions on the input that,
when reached or fulfilled, call a specified macro. These traps can
occur at a given location on the page, at a given location in the
current diversion (together, these are known as <i class="slanted">vertical
position traps</i>), at a blank line, at a line with leading space
characters, after a quantity of input lines, or at the end of input.
Macros called by traps are passed no arguments.
<a class="index-entry-id" id="index-planting-a-trap"></a>
<a class="index-entry-id" id="index-trap_002c-planting"></a>
Setting a trap is also called <em class="dfn">planting</em> one.
<a class="index-entry-id" id="index-trap_002c-springing"></a>
<a class="index-entry-id" id="index-springing-a-trap"></a>
It is said that a trap is <em class="dfn">sprung</em> if its condition is fulfilled.
</p>
<ul class="mini-toc">
<li><a href="#Vertical-Position-Traps" accesskey="1">Vertical Position Traps</a></li>
<li><a href="#Input-Line-Traps" accesskey="2">Input Line Traps</a></li>
<li><a href="#Blank-Line-Traps" accesskey="3">Blank Line Traps</a></li>
<li><a href="#Leading-Space-Traps" accesskey="4">Leading Space Traps</a></li>
<li><a href="#End_002dof_002dinput-Traps" accesskey="5">End-of-input Traps</a></li>
</ul>
<hr>
<div class="subsection-level-extent" id="Vertical-Position-Traps">
<div class="nav-panel">
<p>
Next: <a href="#Page-Location-Traps" accesskey="n" rel="next">Page Location Traps</a>, Previous: <a href="#Traps" accesskey="p" rel="prev">Traps</a>, Up: <a href="#Traps" accesskey="u" rel="up">Traps</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Vertical-Position-Traps-1">5.28.1 Vertical Position Traps</h4>
<a class="index-entry-id" id="index-vertical-position-traps"></a>
<a class="index-entry-id" id="index-traps_002c-vertical-position"></a>
<p>A <em class="dfn">vertical position trap</em> calls a macro when the formatter’s
vertical drawing position reaches or passes, in the downward direction,
a certain location on the output page or in a diversion. Its
applications include setting page headers and footers, body text in
multiple columns, and footnotes.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002evpt"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.vpt</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">flag</i></span>]</var><a class="copiable-link" href='#index-_002evpt'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-vpt"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002evpt_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.vpt]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002evpt_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002evpt-1"></a>
<a class="index-entry-id" id="index-enabling-vertical-position-traps-_0028vpt_0029"></a>
<a class="index-entry-id" id="index-vertical-position-traps_002c-enabling-_0028vpt_0029"></a>
<a class="index-entry-id" id="index-vertical-position-trap-enable-register-_0028_002evpt_0029"></a>
<p>Enable vertical position traps if <var class="var">flag</var> is non-zero or absent;
disable them otherwise. Vertical position traps are those set by the
<code class="code">wh</code> request or by <code class="code">dt</code> within a diversion. The parameter
that controls whether vertical position traps are enabled is global.
Initially, vertical position traps are enabled. The current value is
stored in the <code class="code">.vpt</code> read-only register.
</p>
<a class="index-entry-id" id="index-page-break_002c-prevented-by-vpt"></a>
<a class="index-entry-id" id="index-break_002c-page_002c-prevented-by-vpt"></a>
<a class="index-entry-id" id="index-page-ejection_002c-prevented-by-vpt"></a>
<a class="index-entry-id" id="index-ejection_002c-page_002c-prevented-by-vpt"></a>
<p>A page can’t be ejected if <code class="code">vpt</code> is set to zero; see <a class="ref" href="#The-Implicit-Page-Trap">The Implicit Page Trap</a>.
</p></dd></dl>
<ul class="mini-toc">
<li><a href="#Page-Location-Traps" accesskey="1">Page Location Traps</a></li>
<li><a href="#The-Implicit-Page-Trap" accesskey="2">The Implicit Page Trap</a></li>
<li><a href="#Diversion-Traps" accesskey="3">Diversion Traps</a></li>
</ul>
<hr>
<div class="subsubsection-level-extent" id="Page-Location-Traps">
<div class="nav-panel">
<p>
Next: <a href="#The-Implicit-Page-Trap" accesskey="n" rel="next">The Implicit Page Trap</a>, Previous: <a href="#Vertical-Position-Traps" accesskey="p" rel="prev">Vertical Position Traps</a>, Up: <a href="#Vertical-Position-Traps" accesskey="u" rel="up">Vertical Position Traps</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsubsection" id="Page-Location-Traps-1">5.28.1.1 Page Location Traps</h4>
<a class="index-entry-id" id="index-page-location-traps"></a>
<a class="index-entry-id" id="index-traps_002c-page-location"></a>
<p>A <em class="dfn">page location trap</em> is a vertical position trap that applies to
the page; that is, to undiverted output. Many can be present; manage
them with the <code class="code">wh</code> and <code class="code">ch</code> requests.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ewh"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.wh</code></strong> <var class="def-var-arguments">dist [<span class="r"><i class="slanted">name</i></span>]</var><a class="copiable-link" href='#index-_002ewh'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-wh"></a>
<p>Plant macro <var class="var">name</var> as page location trap at <var class="var">dist</var>. The default
scaling unit is ‘<samp class="samp">v</samp>’. Non-negative values for <var class="var">dist</var> set the
trap relative to the top of the page; negative values set the trap
relative to the bottom of the page. It is not possible to plant a trap
less than one basic unit from the page bottom: a <var class="var">dist</var> of <code class="code">-0</code>
is interpreted as <code class="code">0</code>, the top of the page.<a class="footnote" id="DOCF106" href="#FOOT106"><sup>106</sup></a> An existing <em class="emph">visible</em> trap (see below) at
<var class="var">dist</var> is removed; this is <code class="code">wh</code>’s sole function if <var class="var">name</var>
is missing.
</p>
<p>A trap is sprung only if it is <em class="dfn">visible</em>, meaning that its location
is reachable on the page<a class="footnote" id="DOCF107" href="#FOOT107"><sup>107</sup></a> and it
is not hidden by another trap at the same location already planted
there.
</p>
<a class="index-entry-id" id="index-page-headers"></a>
<a class="index-entry-id" id="index-page-footers"></a>
<a class="index-entry-id" id="index-headers-1"></a>
<a class="index-entry-id" id="index-footers-1"></a>
<a class="index-entry-id" id="index-top-margin"></a>
<a class="index-entry-id" id="index-margin_002c-top"></a>
<a class="index-entry-id" id="index-bottom-margin"></a>
<a class="index-entry-id" id="index-margin_002c-bottom"></a>
<p>A macro package might set headers and footers as follows; this example
configures vertical margins of one inch to the body text, and one
half-inch to the titles. Observe the use of the no-break control
character with <code class="code">sp</code> request to position our text baselines,
and the page number character ‘<samp class="samp">%</samp>’ used with the <code class="code">tl</code> request.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.\" hdfo.roff
.de hd \" page header
' sp .5i
' tl '\\*(Ti''\\*(Da' \" title and date strings
' sp .5i
..
.de fo \" page footer
' sp .5i
. tl ''%''
. bp
..
.wh 0 hd \" trap at top of the page
.wh -1i fo \" trap 1 inch from bottom
</pre></div></div>
<p>To use these traps, copy the above (or load it from a file with the
<code class="code">so</code> or <code class="code">mso</code> requests), then set up the strings it uses.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.so hdfo.roff
.ds Ti Final Report\"
.ds Da 21 May 2023\"
.ti
On 5 August of last year,
this committee tasked me with the investigation of the
CFIT (controlled flight into terrain) incident of
.\" <i class="i">...and so on...</i>
</pre></div></div>
<p>A trap above the top or at or below the bottom of the page can be made
visible by either moving it into the page area or increasing the page
length so that the trap is on the page. Negative trap values always use
the <em class="emph">current</em> page length; they are not converted to an absolute
vertical position.
<a class="index-entry-id" id="index-page-location-traps_002c-debugging"></a>
<a class="index-entry-id" id="index-debugging-page-location-traps"></a>
We can use the <code class="code">ptr</code> request to dump our page location traps to the
standard error stream (see <a class="pxref" href="#Debugging">Debugging</a>). Their positions are reported
in basic units; an <code class="code">nroff</code> device example follows.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.pl 5i
.wh -1i xx
.ptr
error→ xx -240
.pl 100i
.ptr
error→ xx -240
</pre></div></div>
<p>It is possible to have more than one trap at the same location (although
only one at a time can be visible); to achieve this, the traps must be
defined at different locations, then moved to the same place with the
<code class="code">ch</code> request. In the following example, the many empty lines
caused by the <code class="code">bp</code> request are not shown in the output.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de a
. nop a
..
.de b
. nop b
..
.de c
. nop c
..
.
.wh 1i a
.wh 2i b
.wh 3i c
.bp
⇒ a b c
</pre></div></div>
<div class="example">
<div class="group"><pre class="example-preformatted">.ch b 1i
.ch c 1i
.bp
⇒ a
</pre></div></div>
<div class="example">
<div class="group"><pre class="example-preformatted">.ch a 0.5i
.bp
⇒ a b
</pre></div></div>
</dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005b_002et_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.t]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002et_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002et"></a>
<a class="index-entry-id" id="index-distance-to-next-vertical-position-trap-register-_0028_002et_0029"></a>
<a class="index-entry-id" id="index-trap_002c-distance-to-next-vertical-position_002c-register-_0028_002et_0029"></a>
<p>The read-only register <code class="code">.t</code> holds the distance to the next vertical
position trap. If there are no traps between the current position and
the bottom of the page, it contains the distance to the page bottom.
Within a diversion, in the absence of a diversion trap, this distance is
the largest representable integer in basic units—effectively infinite.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ech"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ch</code></strong> <var class="def-var-arguments">name [<span class="r"><i class="slanted">dist</i></span>]</var><a class="copiable-link" href='#index-_002ech'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ch"></a>
<a class="index-entry-id" id="index-changing-trap-location-_0028ch_0029"></a>
<a class="index-entry-id" id="index-trap_002c-changing-location-_0028ch_0029"></a>
<p>Change the location of a trap by moving macro <var class="var">name</var> to new location
<var class="var">dist</var>, or by unplanting it altogether if <var class="var">dist</var> is absent. The
default scaling unit is ‘<samp class="samp">v</samp>’. Parameters to <code class="code">ch</code> are specified
in the opposite order from <code class="code">wh</code>. If <var class="var">name</var> is the earliest
planted macro of multiple traps at the same location, (re)moving it from
that location exposes the macro next least recently planted at the same
place.<a class="footnote" id="DOCF108" href="#FOOT108"><sup>108</sup></a>
</p>
<p>Changing a trap’s location is useful for building up footnotes in a
diversion to allow more space at the bottom of the page for them.
</p>
</dd></dl>
<p>The same macro can be installed simultaneously at multiple locations;
however, only the earliest-planted instance—that has not yet been
deleted with <code class="code">wh</code>—will be moved by <code class="code">ch</code>. The following
example (using an <code class="code">nroff</code> device) illustrates this behavior. Blank
lines have been elided from the output.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de T
Trap sprung at \\n(nlu.
.br
..
.wh 1i T
.wh 2i T
foo
.sp 11i
.bp
.ch T 4i
bar
.sp 11i
.bp
.ch T 5i
baz
.sp 11i
.bp
.wh 5i
.ch T 6i
qux
.sp 11i
</pre></div></div>
<div class="example">
<div class="group"><pre class="example-preformatted"> ⇒ foo
⇒ Trap sprung at 240u.
⇒ Trap sprung at 480u.
⇒ bar
⇒ Trap sprung at 480u.
⇒ Trap sprung at 960u.
⇒ baz
⇒ Trap sprung at 480u.
⇒ Trap sprung at 1200u.
⇒ qux
⇒ Trap sprung at 1440u.
</pre></div></div>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005b_002ene_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.ne]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ene_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ene-1"></a>
<p>The read-only register <code class="code">.ne</code> contains the amount of space that was
needed in the last <code class="code">ne</code> request that caused a trap to be sprung;
it is useful in conjunction with the <code class="code">.trunc</code> register. See <a class="xref" href="#Page-Control">Page Control</a>. Since the <code class="code">.ne</code> register is set only by traps, it
doesn’t make sense to interpolate it outside of macros called by traps.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005b_002etrunc_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.trunc]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002etrunc_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002etrunc"></a>
<a class="index-entry-id" id="index-ne-request_002c-and-the-_002etrunc-register"></a>
<a class="index-entry-id" id="index-truncated-vertical-space-register-_0028_002etrunc_0029"></a>
<p>A read-only register containing the amount of vertical space truncated
from an <code class="code">sp</code> request by the most recently sprung vertical
position trap, or, if the trap was sprung by an <code class="code">ne</code> request,
minus the amount of vertical motion produced by the <code class="code">ne</code>
request. In other words, at the point a trap is sprung, it
represents the difference of what the vertical position would have
been but for the trap, and what the vertical position actually is.
Since the <code class="code">.trunc</code> register is set only by traps, it doesn’t make
sense to interpolate it outside of macros called by traps.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005b_002epe_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.pe]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002epe_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002epe"></a>
<a class="index-entry-id" id="index-bp-request_002c-and-traps-_0028_002epe_0029"></a>
<a class="index-entry-id" id="index-traps_002c-sprung-by-bp-request-_0028_002epe_0029"></a>
<a class="index-entry-id" id="index-page-ejection-status-register-_0028_002epe_0029"></a>
<p>This Boolean-valued, read-only register interpolates 1 while a page
is being ejected, and 0 otherwise.
</p>
<p>In the following example, we plant the same trap at the top and the
bottom of the page. We also make the trap report its name and the
vertical drawing position.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de T
.tm \\$0: page \\n%, nl=\\n[nl] .pe=\\n[.pe]
..
.ll 46n
.wh 0 T
.wh -1v T
Those who can make you believe absurdities can make you
commit atrocities. \[em] Voltaire
error→ T: page 1, nl=0 .pe=0
error→ T: page 1, nl=2600 .pe=1
⇒ Those who can make you believe absurdities can
⇒ make you commit atrocities. -- Voltaire
</pre></div></div>
</dd></dl>
<a class="index-entry-id" id="index-diversions_002c-and-traps"></a>
<a class="index-entry-id" id="index-traps_002c-and-diversions"></a>
<p>When designing macros, keep in mind that diversions and traps do
normally interact. For example, if a trap calls a header macro (while
outputting a diversion) that tries to change the font on the current
page, the effect is not visible before the diversion has completely been
printed (except for input protected with <code class="code">\!</code> or <code class="code">\?</code>) since
the data in the diversion is already formatted. In most cases, this is
not the expected behaviour.
</p>
<hr>
</div>
<div class="subsubsection-level-extent" id="The-Implicit-Page-Trap">
<div class="nav-panel">
<p>
Next: <a href="#Diversion-Traps" accesskey="n" rel="next">Diversion Traps</a>, Previous: <a href="#Page-Location-Traps" accesskey="p" rel="prev">Page Location Traps</a>, Up: <a href="#Vertical-Position-Traps" accesskey="u" rel="up">Vertical Position Traps</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsubsection" id="The-Implicit-Page-Trap-1">5.28.1.2 The Implicit Page Trap</h4>
<a class="index-entry-id" id="index-implicit-trap"></a>
<a class="index-entry-id" id="index-trap_002c-implicit"></a>
<a class="index-entry-id" id="index-page-break-2"></a>
<a class="index-entry-id" id="index-break_002c-page-2"></a>
<a class="index-entry-id" id="index-page-ejection-2"></a>
<a class="index-entry-id" id="index-ejection_002c-page-2"></a>
<p>If, after starting GNU <code class="code">troff</code> without loading a macro package, you
use the <code class="code">ptr</code> request to dump a list of the active traps to the
standard error stream,<a class="footnote" id="DOCF109" href="#FOOT109"><sup>109</sup></a> nothing is reported.
Yet the <code class="code">.t</code> register will report a steadily decreasing value with
every output line your document produces, and once the value of
<code class="code">.t</code> gets to within <code class="code">.V</code> of zero, you will notice that
something trap-like happens—the page is ejected, a new one begins, and
the value of <code class="code">.t</code> becomes large once more.
</p>
<p>This <em class="dfn">implicit page trap</em> always exists in the top-level
diversion;<a class="footnote" id="DOCF110" href="#FOOT110"><sup>110</sup></a> it works like a trap in some
ways but not others. Its purpose is to eject the current page and start
the next one. It has no name, so it cannot be moved or deleted with
<code class="code">wh</code> or <code class="code">ch</code> requests. You cannot hide it by placing another
trap at its location, and can move it only by redefining the page length
with <code class="code">pl</code>. Its operation is suppressed when vertical page traps
are disabled with GNU <code class="code">troff</code>’s <code class="code">vpt</code> request.
</p>
<hr>
</div>
<div class="subsubsection-level-extent" id="Diversion-Traps">
<div class="nav-panel">
<p>
Next: <a href="#Input-Line-Traps" accesskey="n" rel="next">Input Line Traps</a>, Previous: <a href="#The-Implicit-Page-Trap" accesskey="p" rel="prev">The Implicit Page Trap</a>, Up: <a href="#Vertical-Position-Traps" accesskey="u" rel="up">Vertical Position Traps</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsubsection" id="Diversion-Traps-1">5.28.1.3 Diversion Traps</h4>
<a class="index-entry-id" id="index-diversion-traps"></a>
<a class="index-entry-id" id="index-traps_002c-diversion"></a>
<p>A diversion is not formatted in the context of a page, so it lacks page
location traps; instead it can have a <em class="dfn">diversion trap</em>. There can
exist at most one such vertical position trap per diversion.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002edt"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.dt</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">dist</i></span> <span class="r"><i class="slanted">name</i></span>]</var><a class="copiable-link" href='#index-_002edt'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-dt"></a>
<a class="index-entry-id" id="index-_002et-register_002c-and-diversions"></a>
<a class="index-entry-id" id="index-setting-diversion-trap-_0028dt_0029"></a>
<a class="index-entry-id" id="index-diversion-trap_002c-setting-_0028dt_0029"></a>
<a class="index-entry-id" id="index-trap_002c-diversion_002c-setting-_0028dt_0029"></a>
<p>Set a trap <em class="emph">within</em> a diversion at location <var class="var">dist</var>, which is
interpreted relative to diversion rather than page boundaries. If invoked with
fewer than two arguments, any diversion trap in the current diversion is
removed. The register <code class="code">.t</code> works within diversions. It is an
error to invoke <code class="code">dt</code> in the top-level diversion.
See <a class="xref" href="#Diversions">Diversions</a>.
</p></dd></dl>
<hr>
</div>
</div>
<div class="subsection-level-extent" id="Input-Line-Traps">
<div class="nav-panel">
<p>
Next: <a href="#Blank-Line-Traps" accesskey="n" rel="next">Blank Line Traps</a>, Previous: <a href="#Diversion-Traps" accesskey="p" rel="prev">Diversion Traps</a>, Up: <a href="#Traps" accesskey="u" rel="up">Traps</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Input-Line-Traps-1">5.28.2 Input Line Traps</h4>
<a class="index-entry-id" id="index-input-line-traps"></a>
<a class="index-entry-id" id="index-traps_002c-input-line"></a>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eit"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.it</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">n</i></span> <span class="r"><i class="slanted">name</i></span>]</var><a class="copiable-link" href='#index-_002eit'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-it"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002eitc"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.itc</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">n</i></span> <span class="r"><i class="slanted">name</i></span>]</var><a class="copiable-link" href='#index-_002eitc'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-itc"></a>
<a class="index-entry-id" id="index-setting-input-line-trap-_0028it_002c-itc_0029"></a>
<a class="index-entry-id" id="index-input-line-trap_002c-setting-_0028it_002c-itc_0029"></a>
<a class="index-entry-id" id="index-trap_002c-input-line_002c-setting-_0028it_002c-itc_0029"></a>
<a class="index-entry-id" id="index-clearing-input-line-trap-_0028it_002c-itc_0029"></a>
<a class="index-entry-id" id="index-input-line-trap_002c-clearing-_0028it_002c-itc_0029"></a>
<a class="index-entry-id" id="index-trap_002c-input-line_002c-clearing-_0028it_002c-itc_0029"></a>
<p>Set an input line trap, calling macro <var class="var">name</var> after processing the
next <var class="var">n</var> productive input lines (recall <a class="ref" href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a>). Any existing input line trap in the
environment is replaced. Without arguments, <code class="code">it</code> and <code class="code">itc</code>
clear any input line trap that has not yet sprung.
</p>
<p>Consider a macro ‘<samp class="samp">.ST <var class="var">s n</var></samp>’ which sets the next
<var class="var">n</var> input lines in the font style <var class="var">s</var>.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de ST \" Use style $1 for next $2 text lines.
. it \\$2 ES
. ft \\$1
..
.de ES \" end ST
. ft R
..
.ST I 1
oblique
face
.ST I 1
oblique\c
face
⇒ <i class="i">oblique</i> face <i class="i">oblique</i>face <span class="r">(second “face” upright)</span>
</pre></div></div>
<a class="index-entry-id" id="index-input-line-traps-and-interrupted-lines-_0028itc_0029"></a>
<a class="index-entry-id" id="index-interrupted-lines-and-input-line-traps-_0028itc_0029"></a>
<a class="index-entry-id" id="index-traps_002c-input-line_002c-and-interrupted-lines-_0028itc_0029"></a>
<a class="index-entry-id" id="index-lines_002c-interrupted_002c-and-input-line-traps-_0028itc_0029"></a>
<p>Unlike the <code class="code">ce</code> and <code class="code">rj</code> requests, <code class="code">it</code> counts lines
interrupted with the <code class="code">\c</code> escape sequence separately (see <a class="pxref" href="#Line-Continuation">Line Continuation</a>); <code class="code">itc</code> does not. To see the difference, let’s
change the previous example to use <code class="code">itc</code> instead.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted"><span class="r">…</span>
. itc \\$2 ES
<span class="r">…</span>
⇒ <i class="i">oblique</i> face <i class="i">obliqueface</i> <span class="r">(second “face” oblique)</span>
</pre></div></div>
<p>You can think of the <code class="code">ce</code> and <code class="code">rj</code> requests as implicitly
creating an input line trap with <code class="code">itc</code> that schedules a break when
the trap is sprung.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de BR
. br
. <i class="slanted">internal: disable centering-without-filling</i>
..
.
.de ce
. if \\n[.br] .br
. itc \\$1 BR
. <i class="slanted">internal: enable centering-without-filling</i>
..
</pre></div></div>
<p>Let us consider in more detail the sorts of input lines that are or are
not “productive”.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de Trap
TRAP SPRUNG
..
.de Mac
.if r a \l'5n'
..
.it 2 Trap
.
foo
.Mac
bar
baz
.it 1 Trap
.sp \" moves, but does not write or draw
qux
.itc 1 Trap
\h'5n'\c \" moves, but does not write or draw
jat
</pre></div></div>
<p>When ‘<samp class="samp">Trap</samp>’ gets called depends on whether the ‘<samp class="samp">a</samp>’ register is
defined; the control line with the <code class="code">if</code> request may or may not
produce written output. We also see that the spacing request <code class="code">sp</code>,
while certainly affecting the output, does not spring the input line
trap. Similarly, the horizontal motion escape sequence <code class="code">\h</code> also
affected the output, but was not “written”. Observe that we had to
follow it with <code class="code">\c</code> and use <code class="code">itc</code> to prevent the newline at
the end of the text line from causing a word break, which, like an
ordinary space character, counts as written output.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">$ groff -Tascii input-trap-example.groff
⇒ foo bar TRAP SPRUNG baz
⇒
⇒ qux TRAP SPRUNG jat TRAP SPRUNG
$ groff -Tascii -ra1 input-trap-example.groff
⇒ foo _____ TRAP SPRUNG bar baz
⇒
⇒ qux TRAP SPRUNG jat TRAP SPRUNG
</pre></div></div>
</dd></dl>
<p>Input line traps are associated with the environment
(see <a class="pxref" href="#Environments">Environments</a>); switching to another environment suspends the
current input line trap, and going back resumes it, restoring the count
of qualifying lines enumerated in that environment.
</p>
<hr>
</div>
<div class="subsection-level-extent" id="Blank-Line-Traps">
<div class="nav-panel">
<p>
Next: <a href="#Leading-Space-Traps" accesskey="n" rel="next">Leading Space Traps</a>, Previous: <a href="#Input-Line-Traps" accesskey="p" rel="prev">Input Line Traps</a>, Up: <a href="#Traps" accesskey="u" rel="up">Traps</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Blank-Line-Traps-1">5.28.3 Blank Line Traps</h4>
<a class="index-entry-id" id="index-blank-line-traps"></a>
<a class="index-entry-id" id="index-traps_002c-blank-line"></a>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eblm"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.blm</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">name</i></span>]</var><a class="copiable-link" href='#index-_002eblm'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-blm"></a>
<a class="index-entry-id" id="index-blank-line-macro-_0028blm_0029-2"></a>
<p>Set a blank line trap, calling the macro <var class="var">name</var> when GNU
<code class="code">troff</code> encounters a blank line in an input file, instead of the
usual behavior (see <a class="pxref" href="#Breaking">Breaking</a>). A line consisting only of spaces is
also treated as blank and subject to this trap. If no argument is
supplied, the default blank line behavior is (re-)established.
</p></dd></dl>
<hr>
</div>
<div class="subsection-level-extent" id="Leading-Space-Traps">
<div class="nav-panel">
<p>
Next: <a href="#End_002dof_002dinput-Traps" accesskey="n" rel="next">End-of-input Traps</a>, Previous: <a href="#Blank-Line-Traps" accesskey="p" rel="prev">Blank Line Traps</a>, Up: <a href="#Traps" accesskey="u" rel="up">Traps</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Leading-Space-Traps-1">5.28.4 Leading Space Traps</h4>
<a class="index-entry-id" id="index-leading-space-traps"></a>
<a class="index-entry-id" id="index-traps_002c-leading-space"></a>
<dl class="first-deffn">
<dt class="deffn" id="index-_002elsm"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.lsm</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">name</i></span>]</var><a class="copiable-link" href='#index-_002elsm'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-lsm"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005blsn_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[lsn]</code></strong><a class="copiable-link" href='#index-_005cn_005blsn_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-lsn"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005blss_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[lss]</code></strong><a class="copiable-link" href='#index-_005cn_005blss_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-lss"></a>
<a class="index-entry-id" id="index-leading-spaces-macro-_0028lsm_0029"></a>
<p>Set a leading space trap, calling the macro <var class="var">name</var> when GNU
<code class="code">troff</code> encounters leading spaces in an input line; the implicit
line break that normally happens in this case is suppressed. If no
argument is supplied, the default leading space behavior is
(re-)established (see <a class="pxref" href="#Breaking">Breaking</a>).
</p>
<p>The count of leading spaces on an input line is stored in register
<code class="code">lsn</code>, and the amount of corresponding horizontal motion in
register <code class="code">lss</code>, irrespective of whether a leading space trap is
set. When it is, the leading spaces are removed from the input line,
and no motion is produced before calling <var class="var">name</var>.
</p>
</dd></dl>
<hr>
</div>
<div class="subsection-level-extent" id="End_002dof_002dinput-Traps">
<div class="nav-panel">
<p>
Previous: <a href="#Leading-Space-Traps" accesskey="p" rel="prev">Leading Space Traps</a>, Up: <a href="#Traps" accesskey="u" rel="up">Traps</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="End_002dof_002dinput-Traps-1">5.28.5 End-of-input Traps</h4>
<a class="index-entry-id" id="index-end_002dof_002dinput-traps"></a>
<a class="index-entry-id" id="index-traps_002c-end_002dof_002dinput"></a>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eem"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.em</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">name</i></span>]</var><a class="copiable-link" href='#index-_002eem'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-em"></a>
<a class="index-entry-id" id="index-setting-end_002dof_002dinput-trap-_0028em_0029"></a>
<a class="index-entry-id" id="index-end_002dof_002dinput-trap_002c-setting-_0028em_0029"></a>
<a class="index-entry-id" id="index-trap_002c-end_002dof_002dinput_002c-setting-_0028em_0029"></a>
<a class="index-entry-id" id="index-end_002dof_002dinput-macro-_0028em_0029"></a>
<a class="index-entry-id" id="index-macro_002c-end_002dof_002dinput-_0028em_0029"></a>
<p>Set a trap at the end of input, calling macro <var class="var">name</var> after the last
line of the last input file has been processed. If no argument is
given, any existing end-of-input trap is removed.
</p>
<p>For example, if the document had to have a section at the bottom of the
last page for someone to approve it, the <code class="code">em</code> request could be
used.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de approval
\c
. ne 3v
. sp (\\n[.t]u - 3v)
. in +4i
. lc _
. br
Approved:\t\a
. sp
Date:\t\t\a
..
.
.em approval
</pre></div></div>
<p>The <code class="code">\c</code> in the above example needs explanation. For historical
reasons (compatibility with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code>), the
end-of-input macro exits as soon as it causes a page break if no
partially collected line remains.<a class="footnote" id="DOCF111" href="#FOOT111"><sup>111</sup></a>
</p>
<a class="index-entry-id" id="index-page-break_002c-final"></a>
<a class="index-entry-id" id="index-break_002c-page_002c-final"></a>
<a class="index-entry-id" id="index-page-ejection_002c-of-final-page"></a>
<a class="index-entry-id" id="index-ejection_002c-page_002c-of-final-page"></a>
<p>Let us assume that there is no <code class="code">\c</code> in the above <code class="code">approval</code>
macro, that the page is full, and last output line has been broken with,
say, a <code class="code">br</code> request. Because there is no more room, a <code class="code">ne</code>
request at this point causes a page ejection, which in turn makes
<code class="code">troff</code> exit immediately as just described. In most situations,
this is not desired; people generally want to format the input after
<code class="code">ne</code>.
</p>
<p>To force processing of the whole end-of-input macro independently of
this behavior, it is thus advisable to (invisibly) ensure the existence
of a partially collected line (<code class="code">\c</code>) whenever there is a chance
that a page break can happen. In the above example, invoking the
<code class="code">ne</code> request ensures that there is room for the subsequent
formatted output on the same page, so we need insert <code class="code">\c</code> only
once.
</p>
<p>The next example shows how to append three lines, then start a new page
unconditionally. Since ‘<samp class="samp">.ne 1</samp>’<!-- /@w --> doesn’t give the desired
effect—there is always one line available or we are already at the
beginning of the next page—we temporarily increase the page length by
one line so that we can use ‘<samp class="samp">.ne 2</samp>’<!-- /@w -->.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de EM
.pl +1v
\c
.ne 2
line one
.br
\c
.ne 2
line two
.br
\c
.ne 2
line three
.br
.pl -1v
\c
'bp
..
.em EM
</pre></div></div>
<p>This specific feature affects only the first potential page break caused
by the end-of-input macro; further page breaks emitted by the macro are
handled normally.
</p>
<p>Another possible use of the <code class="code">em</code> request is to make GNU
<code class="code">troff</code> emit a single large page instead of multiple pages. For
example, one may want to produce a long plain text file for reading
in a terminal or emulator without page footers and headers interrupting
the body of the document. One approach is to set the page length at the
beginning of the document to a very large value to hold all the
text,<a class="footnote" id="DOCF112" href="#FOOT112"><sup>112</sup></a> and
automatically adjust it to the exact height of the document after the
text has been output.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de adjust-page-length
. br
. pl \\n[nl]u \" \n[nl]: current vertical position
..
.
.de single-page-mode
. pl 99999
. em adjust-page-length
..
.
.\" Activate the above code if configured.
.if \n[do-continuous-rendering] \
. single-page-mode
</pre></div></div>
<p>Since only one end-of-input trap exists and another macro package may
already use it, care must be taken not to break the mechanism. A simple
solution would be to append the above macro to the macro package’s
end-of-input macro using the <code class="code">am</code> request.
</p></dd></dl>
<hr>
</div>
</div>
<div class="section-level-extent" id="Diversions">
<div class="nav-panel">
<p>
Next: <a href="#Punning-Names" accesskey="n" rel="next">Punning Names</a>, Previous: <a href="#Traps" accesskey="p" rel="prev">Traps</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Diversions-1">5.29 Diversions</h3>
<a class="index-entry-id" id="index-diversions"></a>
<p>In <code class="code">roff</code> systems it is possible to format text as if for output,
but instead of writing it immediately, one can <em class="dfn">divert</em> the
formatted text into a named storage area. It is retrieved later by
specifying its name after a control character. The same name space is
used for such <i class="slanted">diversions</i> as for strings and macros; see
<a class="ref" href="#Identifiers">Identifiers</a>. Such text is sometimes said to be “stored in a
macro”, but this coinage obscures the important distinction between
macros and strings on one hand and diversions on the other; the former
store <em class="emph">unformatted</em> input text, and the latter capture
<em class="emph">formatted</em> output. Diversions also do not interpret arguments.
Applications of diversions include “keeps” (preventing a page break
from occurring at an inconvenient place by forcing a set of output lines
to be set as a group), footnotes, tables of contents, and indices.
<a class="index-entry-id" id="index-top_002dlevel-diversion"></a>
<a class="index-entry-id" id="index-diversion_002c-top_002dlevel"></a>
For orthogonality it is said that GNU <code class="code">troff</code> is in the
<em class="dfn">top-level diversion</em> if no diversion is active (that is, formatted
output is being “diverted” immediately to the output device).
</p>
<p>Dereferencing an undefined diversion will create an empty one of that
name and cause a warning in category ‘<samp class="samp">mac</samp>’ to be emitted.
See <a class="xref" href="#Warnings">Warnings</a>, for information about the enablement and suppression of
warnings. A diversion does not exist for the purpose of testing with
the <code class="code">d</code> conditional operator until its initial definition ends
(see <a class="pxref" href="#Operators-in-Conditionals">Operators in Conditionals</a>). The following requests are used to
create and alter diversions.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002edi"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.di</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">name</i></span>]</var><a class="copiable-link" href='#index-_002edi'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-di"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002eda"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.da</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">name</i></span>]</var><a class="copiable-link" href='#index-_002eda'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-da"></a>
<a class="index-entry-id" id="index-beginning-diversion-_0028di_002c-box_0029"></a>
<a class="index-entry-id" id="index-diversion_002c-beginning-_0028di_002c-box_0029"></a>
<a class="index-entry-id" id="index-ending-diversion-_0028di_002c-box_0029"></a>
<a class="index-entry-id" id="index-diversion_002c-ending-_0028di_002c-box_0029"></a>
<a class="index-entry-id" id="index-appending-to-a-diversion-_0028da_002c-boxa_0029"></a>
<a class="index-entry-id" id="index-diversion_002c-appending-to-_0028da_002c-boxa_0029"></a>
<p>Start collecting formatted output in a diversion called <var class="var">name</var>. The
<code class="code">da</code> request appends to a diversion called <var class="var">name</var>, creating it
if necessary. If <var class="var">name</var> already exists as an alias, the target of
the alias is replaced or appended to; recall <a class="ref" href="#Strings">Strings</a>. The pending
output line is diverted as well. Switching to another environment (with
the <code class="code">ev</code> request) before invoking <code class="code">di</code> or <code class="code">da</code> avoids
including any pending output line in the diversion; see
<a class="ref" href="#Environments">Environments</a>.
</p>
<p>Invoking <code class="code">di</code> or <code class="code">da</code> without an argument stops diverting
output to the diversion named by the most recent corresponding request.
If <code class="code">di</code> or <code class="code">da</code> is called without an argument when there is no
current diversion, a warning in category ‘<samp class="samp">di</samp>’ is produced.
See <a class="xref" href="#Warnings">Warnings</a>, for information about the enablement and suppression
of warnings.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">Before the diversion.
.di yyy
In the diversion.
.br
.di
After the diversion.
.br
⇒ After the diversion.
.yyy
⇒ Before the diversion. In the diversion.
</pre></div></div>
</dd></dl>
<a class="index-entry-id" id="index-box-_0028diversion-operation_0029"></a>
<p>GNU <code class="code">troff</code> supports <em class="dfn">box</em> requests to exclude a partially
collected line from a diversion, as this is often desirable.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ebox"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.box</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">name</i></span>]</var><a class="copiable-link" href='#index-_002ebox'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-box"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002eboxa"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.boxa</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">name</i></span>]</var><a class="copiable-link" href='#index-_002eboxa'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-boxa"></a>
<p>Divert (or append) output to <var class="var">name</var>, similarly to the <code class="code">di</code> and
<code class="code">da</code> requests, respectively. Any pending output line is <em class="emph">not</em>
included in the diversion. Without an argument, stop diverting output;
any pending output line inside the diversion is discarded.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">Before the box.
.box xxx
In the box.
.br
Hidden treasure.
.box
After the box.
.br
⇒ Before the box. After the box.
.xxx
⇒ In the box.
</pre></div></div>
</dd></dl>
<p>Apart from pending output line inclusion and the request names that
populate them, boxes are handled exactly as diversions are. All of the
following <code class="code">groff</code> language elements can be used with them
interchangeably.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005b_002ez_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.z]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ez_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ez"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002ed_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.d]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ed_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ed"></a>
<a class="index-entry-id" id="index-nl-register_002c-and-_002ed"></a>
<a class="index-entry-id" id="index-nested-diversions"></a>
<a class="index-entry-id" id="index-diversion_002c-nested"></a>
<a class="index-entry-id" id="index-diversion-name-register-_0028_002ez_0029"></a>
<a class="index-entry-id" id="index-vertical-position-in-diversion-register-_0028_002ed_0029"></a>
<a class="index-entry-id" id="index-position_002c-vertical_002c-in-diversion_002c-register-_0028_002ed_0029"></a>
<a class="index-entry-id" id="index-diversion_002c-vertical-position-in_002c-register-_0028_002ed_0029"></a>
<p>Diversions may be nested. The read-only string-valued register
<code class="code">.z</code> contains the name of the current diversion. The read-only
register <code class="code">.d</code> contains the current vertical place in the diversion.
If the input text is not being diverted, <code class="code">.d</code> reports the same
location as the register <code class="code">nl</code>.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005b_002eh_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.h]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002eh_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002eh"></a>
<a class="index-entry-id" id="index-high_002dwater-mark-register-_0028_002eh_0029"></a>
<a class="index-entry-id" id="index-mark_002c-high_002dwater_002c-register-_0028_002eh_0029"></a>
<a class="index-entry-id" id="index-position-of-lowest-text-line-_0028_002eh_0029"></a>
<a class="index-entry-id" id="index-text-line_002c-position-of-lowest-_0028_002eh_0029"></a>
<p>The read-only register <code class="code">.h</code> stores the <em class="dfn">high-water mark</em> on the
current page or in the current diversion. It corresponds to the text
baseline of the lowest line on the page.<a class="footnote" id="DOCF113" href="#FOOT113"><sup>113</sup></a>
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.tm .h==\n[.h], nl==\n[nl]
⇒ .h==0, nl==-1
This is a test.
.br
.sp 2
.tm .h==\n[.h], nl==\n[nl]
⇒ .h==40, nl==120
</pre></div></div>
<a class="index-entry-id" id="index-_002eh-register_002c-difference-from-nl"></a>
<a class="index-entry-id" id="index-nl-register_002c-difference-from-_002eh"></a>
<p>As implied by the example, vertical motion does not produce text
baselines and thus does not increase the value interpolated by
‘<samp class="samp">\n[.h]</samp>’.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005bdn_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[dn]</code></strong><a class="copiable-link" href='#index-_005cn_005bdn_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-dn"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005bdl_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[dl]</code></strong><a class="copiable-link" href='#index-_005cn_005bdl_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-dl"></a>
<a class="index-entry-id" id="index-dn-register_002c-and-da-_0028boxa_0029"></a>
<a class="index-entry-id" id="index-dl-register_002c-and-da-_0028boxa_0029"></a>
<a class="index-entry-id" id="index-da-request_002c-and-dn-_0028dl_0029"></a>
<a class="index-entry-id" id="index-boxa-request_002c-and-dn-_0028dl_0029"></a>
<p>After completing a diversion, the writable registers <code class="code">dn</code> and
<code class="code">dl</code> contain its vertical and horizontal sizes. Only the lines
just processed are counted: for the computation of <code class="code">dn</code> and
<code class="code">dl</code>, the requests <code class="code">da</code> and <code class="code">boxa</code> are handled as if
<code class="code">di</code> and <code class="code">box</code> had been used, respectively—lines that have
been already stored in the diversion (box) are not taken into account.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.\" Center text both horizontally and vertically.
.\" Macro .(c starts centering mode; .)c terminates it.
.
.\" Disable the escape character with .eo so that we
.\" don't have to double backslashes on the "\n"s.
.eo
.de (c
. br
. ev (c
. evc 0
. in 0
. nf
. di @c
..
</pre></div></div>
<div class="example">
<div class="group"><pre class="example-preformatted">.de )c
. br
. ev
. di
. nr @s (((\n[.t]u - \n[dn]u) / 2u) - 1v)
. sp \n[@s]u
. ce 1000
. @c
. ce 0
. sp \n[@s]u
. br
. fi
. rr @s
. rm @c
..
.ec
</pre></div></div>
</dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005c_0021anything"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\!</code><span class="r"><i class="slanted">anything</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005c_0021anything'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005c_0021"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005c_003fanything_005c_003f"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\?</code><span class="r"><i class="slanted">anything</i></span><code class="t">\?</code></strong><a class="copiable-link" href='#index-_005c_003fanything_005c_003f'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005c_003f"></a>
<a class="index-entry-id" id="index-transparent-output-_0028_005c_0021_002c-_005c_003f_0029"></a>
<a class="index-entry-id" id="index-output_002c-transparent-_0028_005c_0021_002c-_005c_003f_0029"></a>
<p><em class="dfn">Transparently</em> embed <var class="var">anything</var> into the current diversion,
preventing requests, macro calls, and escape sequences from being
interpreted when read into a diversion. This is useful for preventing
them from taking effect until the diverted text is actually output. The
<code class="code">\!</code> escape sequence transparently embeds input up to and including
the end of the line. The <code class="code">\?</code> escape sequence transparently embeds
input until its own next occurrence.
</p>
<a class="index-entry-id" id="index-_005c_003f_002c-and-copy-mode-1"></a>
<a class="index-entry-id" id="index-copy-mode_002c-and-_005c_003f-1"></a>
<a class="index-entry-id" id="index-mode_002c-copy_002c-and-_005c_003f-1"></a>
<a class="index-entry-id" id="index-_005c_0021_002c-and-copy-mode"></a>
<a class="index-entry-id" id="index-copy-mode_002c-and-_005c_0021"></a>
<a class="index-entry-id" id="index-mode_002c-copy_002c-and-_005c_0021"></a>
<p><var class="var">anything</var> may not contain newlines; use <code class="code">\!</code> by itself to
embed newlines in a diversion. The escape sequence <code class="code">\?</code> is also
recognized in copy mode and turned into a single internal code; it is
this code that terminates <var class="var">anything</var>. Thus the following example
prints 4.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.nr x 1
.nf
.di d
\?\\?\\\\?\\\\\\\\nx\\\\?\\?\?
.di
.nr x 2
.di e
.d
.di
.nr x 3
.di f
.e
.di
.nr x 4
.f
</pre></div></div>
<p>Both escape sequences read the data in copy mode.
</p>
<a class="index-entry-id" id="index-_005c_0021_002c-in-top_002dlevel-diversion"></a>
<a class="index-entry-id" id="index-top_002dlevel-diversion_002c-and-_005c_0021"></a>
<a class="index-entry-id" id="index-diversion_002c-top_002dlevel_002c-and-_005c_0021"></a>
<p>If <code class="code">\!</code> is used in the top-level diversion, its argument is
directly embedded into GNU <code class="code">troff</code>’s intermediate output. This can
be used, for example, to control a postprocessor that processes the data
before it is sent to an output driver.
</p>
<a class="index-entry-id" id="index-_005c_003f_002c-in-top_002dlevel-diversion"></a>
<a class="index-entry-id" id="index-top_002dlevel-diversion_002c-and-_005c_003f"></a>
<a class="index-entry-id" id="index-diversion_002c-top_002dlevel_002c-and-_005c_003f"></a>
<p>The <code class="code">\?</code> escape used in the top-level diversion produces no output
at all; its argument is simply ignored.
</p></dd></dl>
<a class="index-entry-id" id="index-_005c_0021_002c-and-output-request"></a>
<a class="index-entry-id" id="index-output-request_002c-and-_005c_0021"></a>
<a class="index-entry-id" id="index-output-request_002c-and-copy-mode"></a>
<a class="index-entry-id" id="index-copy-mode_002c-and-output-request"></a>
<a class="index-entry-id" id="index-mode_002c-copy_002c-and-output-request"></a>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eoutput"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.output</code></strong> <var class="def-var-arguments">contents</var><a class="copiable-link" href='#index-_002eoutput'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-output"></a>
<p>Emit <var class="var">contents</var> directly to GNU <code class="code">troff</code>’s intermediate output
(subject to copy mode interpretation); this is similar to <code class="code">\!</code> used
at the top level. An initial neutral double quote in <var class="var">contents</var> is
stripped to allow embedding of leading spaces.
</p>
<p>This request can’t be used before the first page has started—if you
get an error, simply insert <code class="code">.br</code> before the <code class="code">output</code> request.
</p>
<p>Use with caution! It is normally only needed for mark-up used by a
postprocessor that does something with the output before sending it to
the output device, filtering out <var class="var">contents</var> again.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002easciify"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.asciify</code></strong> <var class="def-var-arguments">div</var><a class="copiable-link" href='#index-_002easciify'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-asciify"></a>
<a class="index-entry-id" id="index-unformatting-diversions-_0028asciify_0029"></a>
<a class="index-entry-id" id="index-diversion_002c-unformatting-_0028asciify_0029"></a>
<a class="index-entry-id" id="index-trin-request_002c-and-asciify"></a>
<p><em class="dfn">Unformat</em> the diversion <var class="var">div</var> in a way such that Unicode basic
Latin (<abbr class="acronym">ASCII</abbr>) characters, characters translated with the
<code class="code">trin</code> request, space characters, and some escape sequences, that
were formatted and diverted into <var class="var">div</var> are treated like ordinary
input characters when <var class="var">div</var> is reread. Doing so can be useful in
conjunction with the <code class="code">writem</code> request. <code class="code">asciify</code> can be also
used for gross hacks; for example, the following sets
register <code class="code">n</code> to 1.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.tr @.
.di x
@nr n 1
.br
.di
.tr @@
.asciify x
.x
</pre></div></div>
<p><code class="code">asciify</code> cannot return all items in a diversion to their source
equivalent: nodes such as those produced by the <code class="code">\N</code> escape
sequence will remain nodes, so the result cannot be guaranteed to be a
pure string. See <a class="xref" href="#Copy-Mode">Copy Mode</a>. Glyph parameters such as the type face
and size are not preserved; use <code class="code">unformat</code> to achieve that.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eunformat"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.unformat</code></strong> <var class="def-var-arguments">div</var><a class="copiable-link" href='#index-_002eunformat'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-unformat"></a>
<p>Like <code class="code">asciify</code>, unformat the diversion <var class="var">div</var>. However,
<code class="code">unformat</code> handles only tabs and spaces between words, the latter
usually arising from spaces or newlines in the input. Tabs are treated
as input tokens, and spaces become adjustable again. The vertical sizes
of lines are not preserved, but glyph information (font, type size,
space width, and so on) is retained.
</p></dd></dl>
<hr>
</div>
<div class="section-level-extent" id="Punning-Names">
<div class="nav-panel">
<p>
Next: <a href="#Environments" accesskey="n" rel="next">Environments</a>, Previous: <a href="#Diversions" accesskey="p" rel="prev">Diversions</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Punning-Names-1">5.30 Punning Names</h3>
<a class="index-entry-id" id="index-diversions-1"></a>
<p>Macros, strings, and diversions share a name space; recall
<a class="ref" href="#Identifiers">Identifiers</a>. Internally, the same mechanism is used to store
them. You can thus call a macro with string interpolation syntax and
vice versa.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de subject
Typesetting
..
.de predicate
rewards attention to detail
..
\*[subject] \*[predicate].
Truly.
⇒ Typesetting
⇒ rewards attention to detail Truly.
</pre></div></div>
<p>What went wrong? Strings don’t contain newlines, but macros do. String
interpolation placed a newline at the end of ‘<samp class="samp">\*[subject]</samp>’, and the
next thing on the input was a space. Then when ‘<samp class="samp">\*[predicate]</samp>’ was
interpolated, it was followed by the empty request ‘<samp class="samp">.</samp>’ on a line by
itself. If we want to use macros as strings, we must take interpolation
behavior into account.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de subject
Typesetting\\
..
.de predicate
rewards attention to detail\\
..
\*[subject] \*[predicate].
Truly.
⇒ Typesetting rewards attention to detail. Truly.
</pre></div></div>
<p>By ending each text line of the macros with an escaped
<code class="code">\<kbd class="key">RET</kbd></code>, we get the desired effect (see <a class="pxref" href="#Line-Continuation">Line Continuation</a>).<a class="footnote" id="DOCF114" href="#FOOT114"><sup>114</sup></a>
What would have happened if we had used only one backslash at a time
instead?
</p>
<p>Interpolating a string does not hide existing macro arguments. We can
also place the escaped newline outside the string interpolation instead
of within the string definition. Thus, in a macro, a more efficient way
of doing
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.xx \\$@
</pre></div></div>
<p>is
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">\\*[xx]\\
</pre></div></div>
<p>The latter calling syntax doesn’t change the value of <code class="code">\$0</code>, which
is then inherited from the calling macro (see <a class="pxref" href="#Parameters">Parameters</a>).
</p>
<p>Diversions can be also called with string syntax. It is sometimes
convenient to copy one-line diversions to a string.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.di xx
the
.ft I
interpolation system
.ft
.br
.di
.ds yy This is a test of \*(xx\c
\*(yy.
⇒ This is a test of the <i class="i">interpolation system</i>.
</pre></div></div>
<p>As the previous example shows, it is possible to store formatted output
in strings. The <code class="code">\c</code> escape sequence prevents the subsequent
newline from being interpreted as a break (again,
see <a class="pxref" href="#Line-Continuation">Line Continuation</a>).
</p>
<p>Copying multi-output line diversions produces unexpected results.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.di xxx
a funny
.br
test
.br
.di
.ds yyy This is \*[xxx]\c
\*[yyy].
⇒ test This is a funny.
</pre></div></div>
<p>Usually, it is not predictable whether a diversion contains one or more
output lines, so this mechanism should be avoided. With <abbr class="acronym">AT&T</abbr>
<code class="code">troff</code>, this was the only solution to strip off a final newline
from a diversion. Another disadvantage is that the spaces in the copied
string are already formatted, preventing their adjustment. This can
cause ugly results.
</p>
<a class="index-entry-id" id="index-stripping-final-newline-in-diversions"></a>
<a class="index-entry-id" id="index-diversion_002c-stripping-final-newline"></a>
<a class="index-entry-id" id="index-final-newline_002c-stripping-in-diversions"></a>
<a class="index-entry-id" id="index-newline_002c-final_002c-stripping-in-diversions"></a>
<a class="index-entry-id" id="index-horizontal-space_002c-unformatting"></a>
<a class="index-entry-id" id="index-space_002c-horizontal_002c-unformatting"></a>
<a class="index-entry-id" id="index-unformatting-horizontal-space"></a>
<p>A clean solution to this problem is available in GNU <code class="code">troff</code>, using
the requests <code class="code">chop</code> to remove the final newline of a diversion, and
<code class="code">unformat</code> to make the horizontal spaces adjustable again.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.box xxx
a funny
.br
test
.br
.box
.chop xxx
.unformat xxx
This is \*[xxx].
⇒ This is a funny test.
</pre></div></div>
<p>See <a class="xref" href="#Gtroff-Internals"><code class="code">gtroff</code> Internals</a>.
</p>
<hr>
</div>
<div class="section-level-extent" id="Environments">
<div class="nav-panel">
<p>
Next: <a href="#Suppressing-Output" accesskey="n" rel="next">Suppressing Output</a>, Previous: <a href="#Diversions" accesskey="p" rel="prev">Diversions</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Environments-1">5.31 Environments</h3>
<a class="index-entry-id" id="index-environments"></a>
<p>As discussed in <a class="ref" href="#Deferring-Output">Deferring Output</a>, environments store most of the
parameters that determine the appearance of text. A default environment
named ‘<samp class="samp">0</samp>’ exists when GNU <code class="code">troff</code> starts up; it is modified by
formatting-related requests and escape sequences.
</p>
<a class="index-entry-id" id="index-stack"></a>
<p>You can create new environments and switch among them. Only one is
current at any given time. Active environments are managed using a
<em class="dfn">stack</em>, a data structure supporting “push” and “pop”
operations. The current environment is at the top of the stack.
The same environment name can be pushed onto the stack multiple times,
possibly interleaved with others. Popping the environment stack does
not destroy the current environment; it remains accessible by name and
can be made current again by pushing it at any time. Environments
cannot be renamed or deleted, and can only be modified when current. To
inspect the environment stack, use the <code class="code">pev</code> request; see
<a class="ref" href="#Debugging">Debugging</a>.
</p>
<p>Environments store the following information.
</p>
<ul class="itemize mark-bullet">
<li>a partially collected line, if any
</li><li>data about the most recently output glyph and line (registers
<code class="code">.cdp</code>, <code class="code">.cht</code>, <code class="code">.csk</code>, <code class="code">.n</code>, <code class="code">.w</code>)
</li><li>typeface parameters (size, family, style, height and slant, inter-word
and inter-sentence space sizes)
</li><li>page parameters (line length, title length, vertical spacing, line
spacing, indentation, line numbering, centering, right-alignment,
underlining, hyphenation parameters)
</li><li>filling enablement; adjustment enablement and mode
</li><li>tab stops; tab, leader, escape, control, no-break control, hyphenation,
and margin characters
</li><li>input line traps
</li><li>stroke and fill colors
</li></ul>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eev"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ev</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">ident</i></span>]</var><a class="copiable-link" href='#index-_002eev'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ev"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002eev_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.ev]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002eev_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002eev-1"></a>
<a class="index-entry-id" id="index-switching-environments-_0028ev_0029"></a>
<a class="index-entry-id" id="index-environment_002c-switching-_0028ev_0029"></a>
<a class="index-entry-id" id="index-environment-number_002fname-register-_0028_002eev_0029"></a>
<p>Enter the environment <var class="var">ident</var>, which is created if it does not
already exist, using the same parameters as for the default environment
used at startup. With no argument, GNU <code class="code">troff</code> switches to the
previous environment.
</p>
<p>Invoking <code class="code">ev</code> with an argument puts environment <var class="var">ident</var> onto
the top of the environment stack. (If it isn’t already present in the
stack, this is a proper push.) Without an argument, <code class="code">ev</code> pops the
environment stack, making the previous environment current. It is an
error to pop the environment stack with no previous environment
available. The read-only string-valued register <code class="code">.ev</code> contains the
name of the current environment—the one at the top of the stack.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ev footnote-env
.fam N
.ps 6
.vs 8
.ll -.5i
.ev
<span class="r">…</span>
.ev footnote-env
\[dg] Observe the smaller text and vertical spacing.
.ev
</pre></div></div>
<p>We can familiarize ourselves with stack behavior by wrapping the
<code class="code">ev</code> request with a macro that reports the contents of the
<code class="code">.ev</code> register to the standard error stream.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de EV
. ev \\$1
. tm environment is now \\n[.ev]
..
.
.EV foo
.EV bar
.EV
.EV baz
.EV
.EV
.EV
</pre></div></div>
<div class="example">
<div class="group"><pre class="example-preformatted"> error→ environment is now foo
error→ environment is now bar
error→ environment is now foo
error→ environment is now baz
error→ environment is now foo
error→ environment is now 0
error→ error: environment stack underflow
error→ environment is now 0
</pre></div></div>
</dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eevc"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.evc</code></strong> <var class="def-var-arguments">environment</var><a class="copiable-link" href='#index-_002eevc'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-evc"></a>
<a class="index-entry-id" id="index-copying-environment-_0028evc_0029"></a>
<a class="index-entry-id" id="index-environment_002c-copying-_0028evc_0029"></a>
<p>Copy the contents of <var class="var">environment</var> to the current environment.
</p>
<p>The following environment data are not copied.
</p>
<ul class="itemize mark-bullet">
<li>a partially collected line, if present;
</li><li>the interruption status of the previous input line (due to use of the
<code class="code">\c</code> escape sequence);
</li><li>the count of remaining lines to center, to right-justify, or to
underline (with or without underlined spaces)—these are set to zero;
</li><li>the activation status of temporary indentation;
</li><li>input line traps and their associated data;
</li><li>the activation status of line numbering (which can be reactivated with
‘<samp class="samp">.nm +0</samp>’<!-- /@w -->); and
</li><li>the count of consecutive hyphenated lines (set to zero).
</li></ul>
</dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005b_002ew_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.w]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ew_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ew"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002echt_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.cht]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002echt_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002echt"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002ecdp_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.cdp]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ecdp_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ecdp"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002ecsk_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.csk]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ecsk_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ecsk"></a>
<a class="index-entry-id" id="index-environment_002c-dimensions-of-last-glyph-_0028_002ew_002c-_002echt_002c-_002ecdp_002c-_002ecsk_0029"></a>
<a class="index-entry-id" id="index-width_002c-of-last-glyph-_0028_002ew_0029"></a>
<a class="index-entry-id" id="index-height_002c-of-last-glyph-_0028_002echt_0029"></a>
<a class="index-entry-id" id="index-depth_002c-of-last-glyph-_0028_002ecdp_0029"></a>
<a class="index-entry-id" id="index-skew_002c-of-last-glyph-_0028_002ecsk_0029"></a>
<a class="index-entry-id" id="index-last-glyph_002c-dimensions-_0028_002ew_002c-_002echt_002c-_002ecdp_002c-_002ecsk_0029"></a>
<a class="index-entry-id" id="index-glyph_002c-last_002c-dimensions-_0028_002ew_002c-_002echt_002c-_002ecdp_002c-_002ecsk_0029"></a>
<p>The <code class="code">\n[.w]</code> register contains the width of the last glyph
formatted in the environment.
</p>
<p>The <code class="code">\n[.cht]</code> register contains the height of the last glyph
formatted in the environment.
</p>
<p>The <code class="code">\n[.cdp]</code> register contains the depth of the last glyph
formatted in the environment. It is positive for glyphs extending below
the baseline.
</p>
<p>The <code class="code">\n[.csk]</code> register contains the <em class="dfn">skew</em> (how far to the
right of the glyph’s center that GNU <code class="code">troff</code> should place an
accent) of the last glyph formatted in the environment.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005b_002en_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.n]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002en_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002en"></a>
<a class="index-entry-id" id="index-environment_002c-previous-line-length-_0028_002en_0029"></a>
<a class="index-entry-id" id="index-line-length_002c-previous-_0028_002en_0029"></a>
<a class="index-entry-id" id="index-length-of-previous-line-_0028_002en_0029"></a>
<a class="index-entry-id" id="index-previous-line-length-_0028_002en_0029"></a>
<p>The <code class="code">\n[.n]</code> register contains the length of the previous output
line emitted in the environment.
</p></dd></dl>
<hr>
</div>
<div class="section-level-extent" id="Suppressing-Output">
<div class="nav-panel">
<p>
Next: <a href="#Colors" accesskey="n" rel="next">Colors</a>, Previous: <a href="#Environments" accesskey="p" rel="prev">Environments</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Suppressing-Output-1">5.32 Suppressing Output</h3>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cO_005bnum_005d"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\O[</code><span class="r"><i class="slanted">num</i></span><code class="t">]</code></strong><a class="copiable-link" href='#index-_005cO_005bnum_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cO"></a>
<a class="index-entry-id" id="index-suppressing-output-_0028_005cO_0029"></a>
<a class="index-entry-id" id="index-output_002c-suppressing-_0028_005cO_0029"></a>
<p>Suppress GNU <code class="code">troff</code> output of glyphs and geometric objects. The
sequences <code class="code">\O2</code>, <code class="code">\O3</code>, <code class="code">\O4</code>, and <code class="code">\O5</code> are
intended for internal use by <code class="code">grohtml</code>.
</p>
<dl class="table">
<dt>‘<samp class="samp">\O0</samp>’</dt>
<dd><p>Disable the emission of glyphs and geometric objects to the output
driver, provided that this sequence occurs at the outermost suppression
level (see <code class="code">\O3</code> and <code class="code">\04</code> below). Horizontal motions
corresponding to non-overstruck glyph widths still occur.
</p>
</dd>
<dt>‘<samp class="samp">\O1</samp>’</dt>
<dd><p>Enable the emission of glyphs and geometric objects to the output
driver, provided that this sequence occurs at the outermost suppression
level.
</p></dd>
</dl>
<a class="index-entry-id" id="index-opminx"></a>
<a class="index-entry-id" id="index-opminy"></a>
<a class="index-entry-id" id="index-opmaxx"></a>
<a class="index-entry-id" id="index-opmaxy"></a>
<p><code class="code">\O0</code> and <code class="code">\O1</code> also reset the four registers <code class="code">opminx</code>,
<code class="code">opminy</code>, <code class="code">opmaxx</code>, and <code class="code">opmaxy</code> to −1. These
four registers mark the top left and bottom right hand corners of a box
encompassing all written or drawn output.
</p>
<dl class="table">
<dt>‘<samp class="samp">\O2</samp>’</dt>
<dd><p>At the outermost suppression level, enable emission of glyphs and
geometric objects, and write to the standard error stream the page
number and values of the four aforementioned registers encompassing
glyphs written since the last interpolation of a <code class="code">\O</code> sequence, as
well as the page offset, line length, image file name (if any),
horizontal and vertical device motion quanta, and input file name.
Numeric values are in basic units.
</p>
</dd>
<dt>‘<samp class="samp">\O3</samp>’</dt>
<dd><p>Begin a nested suppression level. <code class="command">grohtml</code> uses this mechanism
to create images of output preprocessed with <code class="command">gpic</code>,
<code class="command">geqn</code>, and <code class="command">gtbl</code>. At startup, GNU <code class="code">troff</code> is at
the outermost suppression level. <code class="command">pre-grohtml</code> generates these
sequences when processing the document, using GNU <code class="command">troff</code> with
the <code class="code">ps</code> output device, Ghostscript, and the PNM tools to produce
images in PNG format. They start a new page if the device is not
<code class="code">html</code> or <code class="code">xhtml</code>, to reduce the number of images crossing a
page boundary.
</p>
</dd>
<dt>‘<samp class="samp">\O4</samp>’</dt>
<dd><p>End a nested suppression level.
</p></dd>
</dl>
<dl class="table">
<dt>‘<samp class="samp">\O[5<var class="var">P</var><var class="var">file</var>]</samp>’</dt>
<dd><p>At the outermost suppression level, write the name <code class="code">file</code> to the
standard error stream at position <var class="var">P</var>, which must be one of
<code class="code">l</code>, <code class="code">r</code>, <code class="code">c</code>, or <code class="code">i</code>, corresponding to left,
right, centered, and inline alignments within the document,
respectively. <var class="var">file</var> is a name associated with the production of
the next image.
</p></dd>
</dl>
</dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005b_002eO_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.O]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002eO_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002eO"></a>
<a class="index-entry-id" id="index-suppression-nesting-level-register"></a>
<a class="index-entry-id" id="index-nesting-level_002c-suppression_002c-register"></a>
<a class="index-entry-id" id="index-level_002c-suppression-nesting_002c-register"></a>
<p>Output suppression nesting level applied by <code class="code">\O3</code> and <code class="code">\O4</code>
escape sequences.
</p></dd></dl>
<hr>
</div>
<div class="section-level-extent" id="I_002fO">
<div class="nav-panel">
<p>
Next: <a href="#Postprocessor-Access" accesskey="n" rel="next">Postprocessor Access</a>, Previous: <a href="#Suppressing-Output" accesskey="p" rel="prev">Suppressing Output</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="I_002fO-1">5.33 I/O</h3>
<a class="index-entry-id" id="index-i_002fo"></a>
<a class="index-entry-id" id="index-input-and-output-requests"></a>
<a class="index-entry-id" id="index-requests-for-input-and-output"></a>
<a class="index-entry-id" id="index-output-and-input-requests"></a>
<p><code class="code">gtroff</code> has several requests for including files:
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eso"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.so</code></strong> <var class="def-var-arguments">file</var><a class="copiable-link" href='#index-_002eso'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-so"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002esoquiet"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.soquiet</code></strong> <var class="def-var-arguments">file</var><a class="copiable-link" href='#index-_002esoquiet'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-soquiet"></a>
<a class="index-entry-id" id="index-including-a-file-_0028so_0029"></a>
<a class="index-entry-id" id="index-file_002c-inclusion-_0028so_0029"></a>
<p>Replace the <code class="code">so</code> request’s control line with the contents of the
file named by the argument, “sourcing” it. <var class="var">file</var> is sought in
the directories specified by <samp class="option">-I</samp> command-line option. If
<var class="var">file</var> does not exist, a warning in category ‘<samp class="samp">file</samp>’ is produced
and the request has no further effect. See <a class="xref" href="#Warnings">Warnings</a>, for
information about the enablement and suppression of warnings.
</p>
<p><code class="code">so</code> can be useful for large documents; e.g., allowing each chapter
of a book to be kept in a separate file. However, files interpolated
with <code class="code">so</code> are not preprocessed; to overcome this limitation, see
the <cite class="cite">gsoelim<span class="r">(1)</span></cite> man page.
</p>
<p>Since GNU <code class="code">troff</code> replaces the entire control line with the
contents of a file, it matters whether <code class="code">file</code> is terminated with a
newline or not. Assume that file <samp class="file">xxx</samp> contains only the word
‘<samp class="samp">foo</samp>’ without a trailing newline.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">$ printf 'foo' > xxx
The situation is
.so xxx
bar.
⇒ The situation is foobar.
</pre></div></div>
<p><code class="code">soquiet</code> works the same way, except that no warning diagnostic is
issued if <var class="var">file</var> does not exist.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002epso"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.pso</code></strong> <var class="def-var-arguments">command</var><a class="copiable-link" href='#index-_002epso'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-pso"></a>
<p>Read the standard output from the specified <var class="var">command</var> and include
it in place of the <code class="code">pso</code> request.
</p>
<a class="index-entry-id" id="index-safer-mode-3"></a>
<a class="index-entry-id" id="index-mode_002c-safer-3"></a>
<a class="index-entry-id" id="index-unsafe-mode-3"></a>
<a class="index-entry-id" id="index-mode_002c-unsafe-3"></a>
<p>It is an error to use this request in safer mode, which is the
default. Invoke GNU <code class="code">troff</code> or a front end with the <samp class="option">-U</samp>
option to enable unsafe mode.
</p>
<p>The comment regarding a final newline for the <code class="code">so</code> request is valid
for <code class="code">pso</code> also.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002emso"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.mso</code></strong> <var class="def-var-arguments">file</var><a class="copiable-link" href='#index-_002emso'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-mso"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002emsoquiet"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.msoquiet</code></strong> <var class="def-var-arguments">file</var><a class="copiable-link" href='#index-_002emsoquiet'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-msoquiet"></a>
<p>Identical to the <code class="code">so</code> and <code class="code">soquiet</code> requests, respectively,
except that <code class="code">gtroff</code> searches for the specified <var class="var">file</var> in the
same directories as macro files for the <samp class="option">-m</samp> command-line option.
If the file name to be included has the form <samp class="file"><var class="var">name</var>.tmac</samp> and
it isn’t found, these requests try to include <samp class="file">tmac.<var class="var">name</var></samp> and
vice versa.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002etrf"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.trf</code></strong> <var class="def-var-arguments">file</var><a class="copiable-link" href='#index-_002etrf'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-trf"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002ecf"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.cf</code></strong> <var class="def-var-arguments">file</var><a class="copiable-link" href='#index-_002ecf'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-cf"></a>
<a class="index-entry-id" id="index-transparent-output-_0028cf_002c-trf_0029"></a>
<a class="index-entry-id" id="index-output_002c-transparent-_0028cf_002c-trf_0029"></a>
<a class="index-entry-id" id="index-cf-request_002c-and-copy-mode"></a>
<a class="index-entry-id" id="index-copy-mode_002c-and-cf-request"></a>
<a class="index-entry-id" id="index-mode_002c-copy_002c-and-cf-request"></a>
<a class="index-entry-id" id="index-trf-request_002c-and-copy-mode"></a>
<a class="index-entry-id" id="index-copy-mode_002c-and-trf-request"></a>
<a class="index-entry-id" id="index-mode_002c-copy_002c-and-trf-request"></a>
<p>Transparently output the contents of <var class="var">file</var>. Each line is output as
if it were preceded by <code class="code">\!</code>; however, the lines are <em class="emph">not</em>
subject to copy mode interpretation. If the file does not end with a
newline, <code class="code">trf</code> adds one. Both requests cause a break.
</p>
<p>When used in a diversion, these requests embed a node (see <a class="pxref" href="#Gtroff-Internals"><code class="code">gtroff</code> Internals</a>) in it that, when reread, causes the contents of <var class="var">file</var>
to be transparently copied to the output. In <abbr class="acronym">AT&T</abbr>
<code class="code">troff</code>, the contents of <var class="var">file</var> are immediately copied to the
output regardless of whether there is a current diversion; this
behaviour is so anomalous that it must be considered a bug.
</p>
<a class="index-entry-id" id="index-trf-request_002c-and-invalid-characters"></a>
<a class="index-entry-id" id="index-characters_002c-invalid-for-trf-request"></a>
<a class="index-entry-id" id="index-invalid-characters-for-trf-request"></a>
<p>While <code class="code">cf</code> copies the contents of <var class="var">file</var> completely
unprocessed, <code class="code">trf</code> disallows characters such as NUL that are not
valid <code class="code">gtroff</code> input characters (see <a class="pxref" href="#Identifiers">Identifiers</a>).
</p>
<p>For <code class="code">cf</code>, within a diversion, “completely unprocessed” means that
each line of a file to be inserted is handled as if it were preceded by
<code class="code">\!\\!</code>.
</p>
<p>To define a macro <code class="code">x</code> containing the contents of
file <samp class="file">f</samp>, use
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ev 1
.di x
.trf f
.di
.ev
</pre></div></div>
<p>The calls to <code class="code">ev</code> prevent the partially collected output line
from becoming part of the diversion (see <a class="pxref" href="#Diversions">Diversions</a>).
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002enx"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.nx</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">file</i></span>]</var><a class="copiable-link" href='#index-_002enx'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-nx"></a>
<a class="index-entry-id" id="index-processing-next-file-_0028nx_0029"></a>
<a class="index-entry-id" id="index-file_002c-processing-next-_0028nx_0029"></a>
<a class="index-entry-id" id="index-next-file_002c-processing-_0028nx_0029"></a>
<p>Force <code class="code">gtroff</code> to continue processing of the file specified as an
argument. If no argument is given, immediately jump to the end of file.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002erd"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.rd</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">prompt</i></span> [<span class="r"><i class="slanted">arg1</i></span> <span class="r"><i class="slanted">arg2</i></span> …]]</var><a class="copiable-link" href='#index-_002erd'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-rd"></a>
<a class="index-entry-id" id="index-reading-from-standard-input-_0028rd_0029"></a>
<a class="index-entry-id" id="index-standard-input_002c-reading-from-_0028rd_0029"></a>
<a class="index-entry-id" id="index-input_002c-standard_002c-reading-from-_0028rd_0029"></a>
<p>Read from standard input, and include what is read as though it were
part of the input file. Text is read until a blank line is encountered.
</p>
<p>If standard input is a TTY input device (keyboard), write <var class="var">prompt</var>
to standard error, followed by a colon (or send BEL for a beep if no
argument is given).
</p>
<p>Arguments after <var class="var">prompt</var> are available for the input. For example,
the line
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.rd data foo bar
</pre></div></div>
<p>with the input ‘<samp class="samp">This is \$2.</samp>’<!-- /@w --> prints
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">This is bar.
</pre></div></div>
</dd></dl>
<a class="index-entry-id" id="index-form-letters"></a>
<a class="index-entry-id" id="index-letters_002c-form"></a>
<p>Using the <code class="code">nx</code> and <code class="code">rd</code> requests, it is easy to set up form
letters. The form letter template is constructed like this, putting the
following lines into a file called <samp class="file">repeat.let</samp>:
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ce
\*(td
.sp 2
.nf
.rd
.sp
.rd
.fi
Body of letter.
.bp
.nx repeat.let
</pre></div></div>
<a class="index-entry-id" id="index-ex-request_002c-used-with-nx-and-rd"></a>
<p>When this is run, a file containing the following lines should be
redirected in. Requests included in this file are executed as though
they were part of the form letter. The last block of input is the
<code class="code">ex</code> request, which tells GNU <code class="code">troff</code> to stop processing. If
this were not there, <code class="code">troff</code> would not know when to stop.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">Trent A. Fisher
708 NW 19th Av., #202
Portland, OR 97209
Dear Trent,
Len Adollar
4315 Sierra Vista
San Diego, CA 92103
Dear Mr. Adollar,
.ex
</pre></div></div>
<dl class="first-deffn">
<dt class="deffn" id="index-_002epi"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.pi</code></strong> <var class="def-var-arguments">pipe</var><a class="copiable-link" href='#index-_002epi'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-pi"></a>
<p>Pipe the output of <code class="code">gtroff</code> to the shell command(s) specified by
<var class="var">pipe</var>. This request must occur before <code class="code">gtroff</code> has a chance
to print anything.
</p>
<a class="index-entry-id" id="index-safer-mode-4"></a>
<a class="index-entry-id" id="index-mode_002c-safer-4"></a>
<a class="index-entry-id" id="index-unsafe-mode-4"></a>
<a class="index-entry-id" id="index-mode_002c-unsafe-4"></a>
<p>It is an error to use this request in safer mode, which is the
default. Invoke GNU <code class="code">troff</code> or a front end with the <samp class="option">-U</samp>
option to enable unsafe mode.
</p>
<p>Multiple calls to <code class="code">pi</code> are allowed, acting as a chain. For
example,
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.pi foo
.pi bar
...
</pre></div></div>
<p>is the same as ‘<samp class="samp">.pi foo | bar</samp>’<!-- /@w -->.
</p>
<a class="index-entry-id" id="index-groff_002c-and-pi-request"></a>
<a class="index-entry-id" id="index-pi-request_002c-and-groff"></a>
<p>The intermediate output format of GNU <code class="code">troff</code> is piped to the
specified commands. Consequently, calling <code class="code">groff</code> without the
<samp class="option">-Z</samp> option normally causes a fatal error.
</p></dd></dl>
<a class="index-entry-id" id="index-system-commands_002c-running"></a>
<a class="index-entry-id" id="index-running-system-commands"></a>
<dl class="first-deffn">
<dt class="deffn" id="index-_002esy"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.sy</code></strong> <var class="def-var-arguments">cmds</var><a class="copiable-link" href='#index-_002esy'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-sy"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005bsystat_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[systat]</code></strong><a class="copiable-link" href='#index-_005cn_005bsystat_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-systat"></a>
<p>Execute the shell command(s) specified by <var class="var">cmds</var>. The output is not
saved anywhere, so it is up to the user to do so.
</p>
<a class="index-entry-id" id="index-safer-mode-5"></a>
<a class="index-entry-id" id="index-mode_002c-safer-5"></a>
<a class="index-entry-id" id="index-unsafe-mode-5"></a>
<a class="index-entry-id" id="index-mode_002c-unsafe-5"></a>
<p>It is an error to use this request in safer mode; this is the default.
Give GNU <code class="code">troff</code> or a front end program the <samp class="option">-U</samp> option to
enable unsafe mode.
</p>
<p>The following code fragment introduces the current time into a document.
</p>
<a class="index-entry-id" id="index-perl"></a>
<div class="example">
<div class="group"><pre class="example-preformatted">.sy perl -e 'printf ".nr H %d\\n.nr M %d\\n.nr S %d\\n",\
(localtime(time))[2,1,0]' > /tmp/x\n[$$]
.so /tmp/x\n[$$]
.sy rm /tmp/x\n[$$]
\nH:\nM:\nS
</pre></div></div>
<p>This works by having the Perl script (run by <code class="code">sy</code>) write
<code class="code">nr</code> requests that set the registers <code class="code">H</code>, <code class="code">M</code>, and
<code class="code">S</code> to a temporary file. The <code class="code">roff</code> document then reads the
temporary file using the <code class="code">so</code> request.
</p>
<a class="index-entry-id" id="index-time_002c-formatting"></a>
<a class="index-entry-id" id="index-formatting-the-time"></a>
<p>The registers <code class="code">seconds</code>, <code class="code">minutes</code>, and <code class="code">hours</code>,
initialized at startup of GNU <code class="code">troff</code>, should satisfy most
requirements. Use the <code class="code">af</code> request to format their values for
output.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.af hours 00
.af minutes 00
.af seconds 00
\n[hours]:\n[minutes]:\n[seconds]
⇒ 02:17:54
</pre></div></div>
<a class="index-entry-id" id="index-system_0028_0029-return-value-register-_0028systat_0029"></a>
<p>The writable register <code class="code">systat</code> contains the return value of the
<code class="code">system()</code> function executed by the last <code class="code">sy</code> request.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eopen"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.open</code></strong> <var class="def-var-arguments">stream file</var><a class="copiable-link" href='#index-_002eopen'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-open"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002eopena"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.opena</code></strong> <var class="def-var-arguments">stream file</var><a class="copiable-link" href='#index-_002eopena'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-opena"></a>
<a class="index-entry-id" id="index-opening-file-_0028open_0029"></a>
<a class="index-entry-id" id="index-file_002c-opening-_0028open_0029"></a>
<a class="index-entry-id" id="index-appending-to-a-file-_0028opena_0029"></a>
<a class="index-entry-id" id="index-file_002c-appending-to-_0028opena_0029"></a>
<p>Open the specified <var class="var">file</var> for writing and associates the specified
<var class="var">stream</var> with it.
</p>
<p>The <code class="code">opena</code> request is like <code class="code">open</code>, but if the file exists,
append to it instead of truncating it.
</p>
<a class="index-entry-id" id="index-safer-mode-6"></a>
<a class="index-entry-id" id="index-mode_002c-safer-6"></a>
<a class="index-entry-id" id="index-unsafe-mode-6"></a>
<a class="index-entry-id" id="index-mode_002c-unsafe-6"></a>
<p>It is an error to use these requests in safer mode; this is the default.
Give GNU <code class="code">troff</code> or a front end program the <samp class="option">-U</samp> option to
enable unsafe mode.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ewrite"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.write</code></strong> <var class="def-var-arguments">stream data</var><a class="copiable-link" href='#index-_002ewrite'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-write"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002ewritec"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.writec</code></strong> <var class="def-var-arguments">stream data</var><a class="copiable-link" href='#index-_002ewritec'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-writec"></a>
<a class="index-entry-id" id="index-copy-mode_002c-and-write-request"></a>
<a class="index-entry-id" id="index-write-request_002c-and-copy-mode"></a>
<a class="index-entry-id" id="index-mode_002c-copy_002c-and-write-request"></a>
<a class="index-entry-id" id="index-copy-mode_002c-and-writec-request"></a>
<a class="index-entry-id" id="index-writec-request_002c-and-copy-mode"></a>
<a class="index-entry-id" id="index-mode_002c-copy_002c-and-writec-request"></a>
<a class="index-entry-id" id="index-writing-to-file-_0028write_002c-writec_0029"></a>
<a class="index-entry-id" id="index-file_002c-writing-to-_0028write_002c-writec_0029"></a>
<p>Write to the file associated with the specified <var class="var">stream</var>. The
stream must previously have been the subject of an open request. The
remainder of the line is interpreted as the <code class="code">ds</code> request reads its
second argument: an initial neutral double quote in <var class="var">contents</var> is
stripped to allow embedding of leading spaces, and it is read in copy
mode.
</p>
<p>The <code class="code">writec</code> request is like <code class="code">write</code>, but only <code class="code">write</code>
appends a newline to the data.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ewritem"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.writem</code></strong> <var class="def-var-arguments">stream xx</var><a class="copiable-link" href='#index-_002ewritem'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-writem"></a>
<a class="index-entry-id" id="index-asciify-request_002c-and-writem"></a>
<p>Write the contents of the macro or string <var class="var">xx</var> to the file
associated with the specified <var class="var">stream</var>.
</p>
<a class="index-entry-id" id="index-writem-request_002c-and-copy-mode"></a>
<a class="index-entry-id" id="index-copy-mode_002c-and-writem-request"></a>
<a class="index-entry-id" id="index-mode_002c-copy_002c-and-writem-request"></a>
<p><var class="var">xx</var> is read in copy mode, i.e., already formatted elements are
ignored. Consequently, diversions must be unformatted with the
<code class="code">asciify</code> request before calling <code class="code">writem</code>. Usually, this
means a loss of information.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eclose"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.close</code></strong> <var class="def-var-arguments">stream</var><a class="copiable-link" href='#index-_002eclose'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-close"></a>
<a class="index-entry-id" id="index-closing-file-_0028close_0029"></a>
<a class="index-entry-id" id="index-file_002c-closing-_0028close_0029"></a>
<p>Close the specified <var class="var">stream</var>; the stream is no longer an acceptable
argument to the <code class="code">write</code> request.
</p>
<p>Here a simple macro to write an index entry.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.open idx test.idx
.
.de IX
. write idx \\n[%] \\$*
..
.
.IX test entry
.
.close idx
</pre></div></div>
</dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cVe"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\V</code><span class="r"><i class="slanted">e</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cVe'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cV"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cV_0028ev"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\V(</code><span class="r"><i class="slanted">ev</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cV_0028ev'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005cV_005benv_005d"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\V[</code><span class="r"><i class="slanted">env</i></span><code class="t">]</code></strong><a class="copiable-link" href='#index-_005cV_005benv_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cV_002c-and-copy-mode"></a>
<a class="index-entry-id" id="index-copy-mode_002c-and-_005cV"></a>
<a class="index-entry-id" id="index-mode_002c-copy_002c-and-_005cV"></a>
<p>Interpolate the contents of the specified environment variable <var class="var">env</var>
(one-character name <var class="var">e</var>, two-character name <var class="var">ev</var>) as
returned by the function <cite class="cite">getenv<span class="r">(3)</span></cite>. <code class="code">\V</code> is interpreted
even in copy mode (see <a class="pxref" href="#Copy-Mode">Copy Mode</a>).
</p></dd></dl>
<hr>
</div>
<div class="section-level-extent" id="Postprocessor-Access">
<div class="nav-panel">
<p>
Next: <a href="#Miscellaneous" accesskey="n" rel="next">Miscellaneous</a>, Previous: <a href="#I_002fO" accesskey="p" rel="prev">I/O</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Postprocessor-Access-1">5.34 Postprocessor Access</h3>
<a class="index-entry-id" id="index-postprocessor-access"></a>
<a class="index-entry-id" id="index-access-to-postprocessor"></a>
<p>Two escape sequences and two requests enable documents to pass
information directly to a postprocessor. These are useful for
exercising device-specific capabilities that the <code class="code">groff</code> language
does not abstract or generalize; examples include the embedding of
hyperlinks and image files. Device-specific functions are documented in
each output driver’s man page, such as <cite class="cite">gropdf<span class="r">(1)</span></cite>,
<cite class="cite">grops<span class="r">(1)</span></cite>, or <cite class="cite">grotty<span class="r">(1)</span></cite>.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002edevice"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.device</code></strong> <var class="def-var-arguments">xxx <span class="r">…</span></var><a class="copiable-link" href='#index-_002edevice'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-device"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cX_0027xxx-_2026_0027"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\X<code class="code">'</code></code><span class="r"><i class="slanted">xxx <span class="r">…</span></i></span><code class="t"><code class="code">'</code></code></strong><a class="copiable-link" href='#index-_005cX_0027xxx-_2026_0027'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cX"></a>
<p>Embed all <var class="var">xxx</var> arguments into GNU <code class="code">troff</code> output as parameters
to a device control command ‘<samp class="samp">x X</samp>’<!-- /@w -->. The meaning and
interpretation of such parameters is determined by the output driver or
other postprocessor.
</p>
<a class="index-entry-id" id="index-device-request_002c-and-copy-mode"></a>
<a class="index-entry-id" id="index-copy-mode_002c-and-device-request"></a>
<a class="index-entry-id" id="index-mode_002c-copy_002c-and-device-request"></a>
<p>The <code class="code">device</code> request processes its arguments in copy mode
(see <a class="pxref" href="#Copy-Mode">Copy Mode</a>). An initial neutral double quote in <var class="var">contents</var>
is stripped to allow embedding of leading spaces.
<a class="index-entry-id" id="index-_005c_0026_002c-in-_005cX"></a>
<a class="index-entry-id" id="index-_005c_0029_002c-in-_005cX"></a>
<a class="index-entry-id" id="index-_005c_0025_002c-in-_005cX"></a>
<a class="index-entry-id" id="index-_005c_003a_002c-in-_005cX"></a>
By contrast, within <code class="code">\X</code> arguments, the escape sequences <code class="code">\&</code>,
<code class="code">\)</code>, <code class="code">\%</code>, and <code class="code">\:</code> are ignored; <code class="code">\<kbd class="key">SP</kbd></code> and
<code class="code">\~</code> are converted to single space characters; and <code class="code">\\</code> has
its escape character stripped. So that the basic Latin subset of the
Unicode character set<a class="footnote" id="DOCF115" href="#FOOT115"><sup>115</sup></a> can be reliably encoded in device control
commands, seven special character escape sequences (‘<samp class="samp">\-</samp>’,
‘<samp class="samp">\[aq]</samp>’, ‘<samp class="samp">\[dq]</samp>’, ‘<samp class="samp">\[ga]</samp>’, ‘<samp class="samp">\[ha]</samp>’, ‘<samp class="samp">\[rs]</samp>’,
and ‘<samp class="samp">\[ti]</samp>’,) are mapped to basic Latin characters; see the
<cite class="cite">groff_char<span class="r">(7)</span></cite> man page. For this transformation, character
translations and special character definitions are
ignored.<a class="footnote" id="DOCF116" href="#FOOT116"><sup>116</sup></a> The use of any
other escape sequence in <code class="code">\X</code> parameters is normally an error.
</p>
<a class="index-entry-id" id="index-use_005fcharnames_005fin_005fspecial"></a>
<a class="index-entry-id" id="index-DESC-file_002c-and-use_005fcharnames_005fin_005fspecial-keyword"></a>
<a class="index-entry-id" id="index-_005cX_002c-and-special-characters"></a>
<p>If the <code class="code">use_charnames_in_special</code> directive appears in the output
device’s <samp class="file">DESC</samp> file, the use of special character escape sequences
is <em class="emph">not</em> an error; they are simply output verbatim (with the
exception of the seven mapped to Unicode basic Latin characters,
discussed above). <code class="code">use_charnames_in_special</code> is currently employed
only by <code class="code">grohtml</code>.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002edevicem"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.devicem</code></strong> <var class="def-var-arguments">name</var><a class="copiable-link" href='#index-_002edevicem'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-devicem"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cYn"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\Y</code><span class="r"><i class="slanted">n</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cYn'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_005cY"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cY_0028nm"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\Y(</code><span class="r"><i class="slanted">nm</i></span><code class="t"></code></strong><a class="copiable-link" href='#index-_005cY_0028nm'> ¶</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-_005cY_005bname_005d"><span class="category-def">Escape sequence: </span><span><strong class="def-name"><code class="t">\Y[</code><span class="r"><i class="slanted">name</i></span><code class="t">]</code></strong><a class="copiable-link" href='#index-_005cY_005bname_005d'> ¶</a></span></dt>
<dd><p>This is approximately equivalent to ‘<samp class="samp">\X'\*[<var class="var">name</var>]'</samp>’
(one-character name <var class="var">n</var>, two-character name <var class="var">nm</var>).
However, the contents of the string or macro <var class="var">name</var> are not
interpreted; also it is permitted for <var class="var">name</var> to have been defined as
a macro and thus contain newlines (it is not permitted for the argument
to <code class="code">\X</code> to contain newlines). The inclusion of newlines requires
an extension to the <abbr class="acronym">AT&T</abbr> <code class="code">troff</code> output format, and
confuses drivers that do not know about this extension (see <a class="pxref" href="#Device-Control-Commands">Device Control Commands</a>).
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002etag"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.tag</code></strong> <var class="def-var-arguments">name</var><a class="copiable-link" href='#index-_002etag'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-tag"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002etaga"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.taga</code></strong> <var class="def-var-arguments">name</var><a class="copiable-link" href='#index-_002etaga'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-taga"></a>
<p>Reserved for internal use.
</p></dd></dl>
<hr>
</div>
<div class="section-level-extent" id="Miscellaneous">
<div class="nav-panel">
<p>
Next: <a href="#Gtroff-Internals" accesskey="n" rel="next"><code class="code">gtroff</code> Internals</a>, Previous: <a href="#Postprocessor-Access" accesskey="p" rel="prev">Postprocessor Access</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Miscellaneous-1">5.35 Miscellaneous</h3>
<p>We document here GNU <code class="code">troff</code> features that fit poorly elsewhere.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002enm"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.nm</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">start</i></span> [<span class="r"><i class="slanted">increment</i></span> [<span class="r"><i class="slanted">space</i></span> [<span class="r"><i class="slanted">indentation</i></span>]]]]</var><a class="copiable-link" href='#index-_002enm'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-nm"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005bln_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[ln]</code></strong><a class="copiable-link" href='#index-_005cn_005bln_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ln"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002enm_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.nm]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002enm_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002enm-1"></a>
<a class="index-entry-id" id="index-printing-line-numbers-_0028nm_0029"></a>
<a class="index-entry-id" id="index-line-numbers_002c-printing-_0028nm_0029"></a>
<a class="index-entry-id" id="index-numbers_002c-line_002c-printing-_0028nm_0029"></a>
<p>Begin (or, with no arguments, cease) numbering output lines.
<var class="var">start</var> assigns the number of the <em class="emph">next</em> output line. Only
line numbers divisible by <var class="var">increment</var> are marked (default:
‘<samp class="samp">1</samp>’). <var class="var">space</var> configures the horizontal spacing between the
number and the text (default: ‘<samp class="samp">1</samp>’). Any given <var class="var">indentation</var> is
applied to the numbers (default: ‘<samp class="samp">0</samp>’). The third and fourth
arguments are reckoned in numeral widths (<code class="code">\0</code>). <var class="var">start</var> must
be non-negative and <var class="var">increment</var> positive.
</p>
<p>The formatter aligns the number to the right in a width of three numeral
spaces plus <var class="var">indentation</var>, then catenates <var class="var">space</var> and the output
line. The line length is <em class="emph">not</em> reduced. Depending on the value of
the page offset,<a class="footnote" id="DOCF117" href="#FOOT117"><sup>117</sup></a> numbers wider than
the allocated space protrude into the left margin, or shift the output
line to the right.
</p>
<p>Line numbering parameters corresponding to missing arguments are not
altered. After numbering is disabled, ‘<samp class="samp">.nm +0</samp>’ resumes it using
the previously active parameters.
</p>
<p>The parameters of <code class="code">nm</code> are associated with the environment
(see <a class="pxref" href="#Environments">Environments</a>).
</p>
<a class="index-entry-id" id="index-output-line-number-register-_0028ln_0029"></a>
<a class="index-entry-id" id="index-line-number_002c-output_002c-register-_0028ln_0029"></a>
<p>While numbering is enabled, the output line number register <code class="code">ln</code> is
updated as each line is output, even if no line number is formatted with
it because it is being skipped (it is not a multiple of <var class="var">increment</var>)
or because numbering is suppressed (see the <code class="code">nn</code> request below).
</p>
<p>The <code class="code">.nm</code> register tracks the enablement status of numbering.
Temporary suspension of numbering with the <code class="code">nn</code> request does
<em class="emph">not</em> alter its value.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.po 5n
.ll 44n
Programming,
when stripped of all its circumstantial irrelevancies,
.nm 999 1 1 -4
boils down to no more and no less than
.nm +0 3
very effective thinking so as to avoid unmastered
.nn 2
complexity,
to very vigorous separation of your many
different concerns.
.br
\(em Edsger Dijkstra
.sp
.nm 1 1 1
This guy's arrogance takes your breath away.
.br
\(em John Backus
⇒ Programming, when stripped of all its cir-
⇒ 999 cumstantial irrelevancies, boils down to no
⇒ more and no less than very effective think-
⇒ ing so as to avoid unmastered complexity, to
⇒ very vigorous separation of your many dif-
⇒ ferent concerns.
⇒ 1002 -- Edsger Dijkstra
⇒
⇒ 1 This guy’s arrogance takes your breath away.
⇒ 2 -- John Backus
</pre></div></div>
</dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002enn"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.nn</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">skip</i></span>]</var><a class="copiable-link" href='#index-_002enn'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-nn"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002enn_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.nn]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002enn_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002enn-1"></a>
<p>Suppress numbering of the next <var class="var">skip</var> output lines that would
otherwise be numbered. The default is 1. <code class="code">nn</code> can be invoked
when line numbering is not active; suppression of numbering will take
effect for <var class="var">skip</var> lines once <code class="code">nm</code> enables it.
</p>
<p>The <code class="code">.nn</code> register stores the count of output lines still to have
their numbering suppressed.
</p>
<p>This count is associated with the environment (see <a class="pxref" href="#Environments">Environments</a>).
</p></dd></dl>
<p>To test whether the current output line will be numbered, you must check
both the <code class="code">.nm</code> and <code class="code">.nn</code> registers.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted"> .de is-numbered
. nop This line
. ie (\\n[.nm] & (1-\\n[.nn])) IS
. el ISN'T
. nop numbered.
. br
..
Test line numbering.
.is-numbered
.nm 1
.nn 1
.is-numbered
.is-numbered
.nm
.is-numbered
⇒ Test line numbering. This line ISN’T numbered.
⇒ This line ISN’T numbered.
⇒ 1 This line IS numbered.
⇒ This line ISN’T numbered.
</pre></div></div>
<dl class="first-deffn">
<dt class="deffn" id="index-_002emc"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.mc</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">margin-character</i></span> [<span class="r"><i class="slanted">distance</i></span>]</var><a class="copiable-link" href='#index-_002emc'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-mc"></a>
<a class="index-entry-id" id="index-margin-glyph-_0028mc_0029"></a>
<a class="index-entry-id" id="index-glyph_002c-for-margins-_0028mc_0029"></a>
<p>Begin (or, with no arguments, cease) writing a <em class="dfn">margin-character</em> to
the right of each output line. The <var class="var">distance</var> argument separates
<var class="var">margin-character</var> from the right margin. If absent, the most
recent value is used; the default is 10 points. If an output line
exceeds the line length, the margin character is appended to it.
<a class="index-entry-id" id="index-tl-request_002c-and-mc"></a>
No margin character is written on lines produced by the <code class="code">tl</code>
request.
</p>
<p>The margin character is a property of the output line; the margin
character last configured when the line is output controls. If the
margin character is disabled before an output line breaks, none is
output (but see below).
</p>
<p>The margin character is associated with the environment
(see <a class="pxref" href="#Environments">Environments</a>).
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ll 5i
.nf
.mc \[br]
This paragraph is marked with a margin character.
.sp
As seen above, vertical space isn't thus marked.
\&
An output line that is present, but empty, is.
⇒ This paragraph is marked with a margin character. |
⇒
⇒ As seen above, vertical space isn’t thus marked. |
⇒ |
⇒ An output line that is present, but empty, is. |
</pre></div></div>
</dd></dl>
<p>For compatibility with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code>, a call to <code class="code">mc</code>
to set the margin character can’t be undone immediately; at least one
line gets a margin character.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ll 10n
.nf
.mc |
.mc *
.mc
foo
bar
⇒ foo *
⇒ bar
</pre></div></div>
<a class="index-entry-id" id="index-gdiffmk"></a>
<a class="index-entry-id" id="index-nrchbar"></a>
<a class="index-entry-id" id="index-changebar"></a>
<a class="index-entry-id" id="index-diffmk"></a>
<p>The margin character mechanism is commonly used to annotate changes in
documents. The <code class="code">groff</code> distribution ships a program,
<code class="command">gdiffmk</code>, to assist with this task.<a class="footnote" id="DOCF118" href="#FOOT118"><sup>118</sup></a>
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002epsbb"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.psbb</code></strong> <var class="def-var-arguments">file</var><a class="copiable-link" href='#index-_002epsbb'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-psbb"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005bllx_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[llx]</code></strong><a class="copiable-link" href='#index-_005cn_005bllx_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-llx"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005blly_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[lly]</code></strong><a class="copiable-link" href='#index-_005cn_005blly_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-lly"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005burx_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[urx]</code></strong><a class="copiable-link" href='#index-_005cn_005burx_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-urx"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005bury_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[ury]</code></strong><a class="copiable-link" href='#index-_005cn_005bury_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ury"></a>
<a class="index-entry-id" id="index-PostScript_002c-bounding-box"></a>
<a class="index-entry-id" id="index-bounding-box"></a>
<p>Retrieve the bounding box of the PostScript image found in <var class="var">file</var>,
which must conform to Adobe’s <em class="dfn">Document Structuring Conventions</em>
(DSC), locate a <code class="code">%%BoundingBox</code> comment, and store the (upper-,
lower-, <span class="w-nolinebreak-text">-left</span><!-- /@w -->, <span class="w-nolinebreak-text">-right</span><!-- /@w -->) values into the registers <code class="code">llx</code>,
<code class="code">lly</code>, <code class="code">urx</code>, and <code class="code">ury</code>. If an error occurs (for
example, if no <code class="code">%%BoundingBox</code> comment is present), the formatter
sets these registers to 0.
</p>
<p>The search path for <var class="var">file</var> can be controlled with the <samp class="option">-I</samp>
command-line option.
</p></dd></dl>
<hr>
</div>
<div class="section-level-extent" id="Gtroff-Internals">
<div class="nav-panel">
<p>
Next: <a href="#Debugging" accesskey="n" rel="next">Debugging</a>, Previous: <a href="#Miscellaneous" accesskey="p" rel="prev">Miscellaneous</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="gtroff-Internals">5.36 <code class="code">gtroff</code> Internals</h3>
<a class="index-entry-id" id="index-input-token"></a>
<a class="index-entry-id" id="index-token_002c-input"></a>
<a class="index-entry-id" id="index-output-node"></a>
<a class="index-entry-id" id="index-node_002c-output"></a>
<p><code class="code">gtroff</code> processes input in three steps. One or more input
characters are converted to an <em class="dfn">input token</em>.<a class="footnote" id="DOCF119" href="#FOOT119"><sup>119</sup></a> Then, one or more input tokens are converted to
an <em class="dfn">output node</em>. Finally, output nodes are converted to the
intermediate output language understood by all output devices.
</p>
<p>Actually, before step one happens, <code class="code">gtroff</code> converts certain escape
sequences into reserved input characters (not accessible by the user);
such reserved characters are used for other internal processing also –
this is the very reason why not all characters are valid input.
See <a class="xref" href="#Identifiers">Identifiers</a>, for more on this topic.
</p>
<p>For example, the input string ‘<samp class="samp">fi\[:u]</samp>’ is converted into a
character token ‘<samp class="samp">f</samp>’, a character token ‘<samp class="samp">i</samp>’, and a special
token ‘<samp class="samp">:u</samp>’ (representing u umlaut). Later on, the character
tokens ‘<samp class="samp">f</samp>’ and ‘<samp class="samp">i</samp>’ are merged to a single output node
representing the ligature glyph ‘<samp class="samp">fi</samp>’ (provided the current font has
a glyph for this ligature); the same happens with ‘<samp class="samp">:u</samp>’. All output
glyph nodes are ‘processed’, which means that they are invariably
associated with a given font, font size, advance width, etc. During the
formatting process, <code class="code">gtroff</code> itself adds various nodes to control
the data flow.
</p>
<p>Macros, diversions, and strings collect elements in two chained lists: a
list of input tokens that have been passed unprocessed, and a list of
output nodes. Consider the following diversion.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.di xxx
a
\!b
c
.br
.di
</pre></div></div>
<p>It contains these elements.
</p>
<table class="multitable">
<tbody><tr><td>node list</td><td>token list</td><td>element number</td></tr>
<tr><td><i class="i">line start node</i></td><td>—</td><td>1</td></tr>
<tr><td><i class="i">glyph node <code class="code">a</code></i></td><td>—</td><td>2</td></tr>
<tr><td><i class="i">word space node</i></td><td>—</td><td>3</td></tr>
<tr><td>—</td><td><code class="code">b</code></td><td>4</td></tr>
<tr><td>—</td><td><code class="code">\n</code></td><td>5</td></tr>
<tr><td><i class="i">glyph node <code class="code">c</code></i></td><td>—</td><td>6</td></tr>
<tr><td><i class="i">vertical size node</i></td><td>—</td><td>7</td></tr>
<tr><td><i class="i">vertical size node</i></td><td>—</td><td>8</td></tr>
<tr><td>—</td><td><code class="code">\n</code></td><td>9</td></tr>
</tbody>
</table>
<a class="index-entry-id" id="index-_005cv_002c-internal-representation"></a>
<p>Elements 1, 7, and 8 are inserted by <code class="code">gtroff</code>; the latter two
(which are always present) specify the vertical extent of the last line,
possibly modified by <code class="code">\x</code>. The <code class="code">br</code> request finishes the
pending output line, inserting a newline input token, which is
subsequently converted to a space when the diversion is reread. Note
that the word space node has a fixed width that isn’t adjustable
anymore. To convert horizontal space nodes back to input tokens, use
the <code class="code">unformat</code> request.
</p>
<p>Macros only contain elements in the token list (and the node list is
empty); diversions and strings can contain elements in both lists.
</p>
<p>The <code class="code">chop</code> request simply reduces the number of elements in a
macro, string, or diversion by one. Exceptions are <em class="dfn">compatibility
save</em> and <em class="dfn">compatibility ignore</em> input tokens, which are ignored.
The <code class="code">substring</code> request also ignores those input tokens.
</p>
<p>Some requests like <code class="code">tr</code> or <code class="code">cflags</code> work on glyph identifiers
only; this means that the associated glyph can be changed without
destroying this association. This can be very helpful for substituting
glyphs. In the following example, we assume that glyph ‘<samp class="samp">foo</samp>’ isn’t
available by default, so we provide a substitution using the
<code class="code">fchar</code> request and map it to input character ‘<samp class="samp">x</samp>’.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.fchar \[foo] foo
.tr x \[foo]
</pre></div></div>
<p>Now let us assume that we install an additional special font ‘<samp class="samp">bar</samp>’
that has glyph ‘<samp class="samp">foo</samp>’.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.special bar
.rchar \[foo]
</pre></div></div>
<p>Since glyphs defined with <code class="code">fchar</code> are searched before glyphs in
special fonts, we must call <code class="code">rchar</code> to remove the definition of the
fallback glyph. Anyway, the translation is still active; ‘<samp class="samp">x</samp>’ now
maps to the real glyph ‘<samp class="samp">foo</samp>’.
</p>
<a class="index-entry-id" id="index-compatibility-mode_002c-and-parameters"></a>
<a class="index-entry-id" id="index-mode_002c-compatibility_002c-and-parameters"></a>
<a class="index-entry-id" id="index-arguments_002c-and-compatibility-mode"></a>
<a class="index-entry-id" id="index-parameters_002c-and-compatibility-mode"></a>
<a class="index-entry-id" id="index-macro-arguments_002c-and-compatibility-mode"></a>
<a class="index-entry-id" id="index-request-arguments_002c-and-compatibility-mode"></a>
<p>Macro and request arguments preserve compatibility mode enablement.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.cp 1 \" switch to compatibility mode
.de xx
\\$1
..
.cp 0 \" switch compatibility mode off
.xx caf\['e]
⇒ caf
</pre></div></div>
<p>Since compatibility mode is enabled while <code class="code">de</code> is invoked, the
macro <code class="code">xx</code> enables compatibility mode when it is called. Argument
<code class="code">$1</code> can still be handled properly because it inherits the
compatibility mode enablement status that was active at the point where
<code class="code">xx</code> was called.
</p>
<p>After interpolation of the parameters, the compatibility save and
restore tokens are removed.
</p>
<hr>
</div>
<div class="section-level-extent" id="Debugging">
<div class="nav-panel">
<p>
Next: <a href="#Implementation-Differences" accesskey="n" rel="next">Implementation Differences</a>, Previous: <a href="#Gtroff-Internals" accesskey="p" rel="prev"><code class="code">gtroff</code> Internals</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Debugging-1">5.37 Debugging</h3>
<a class="index-entry-id" id="index-debugging"></a>
<div class="flushright"><p class="flushright-paragraph"><i class="slanted">Standard troff voodoo, just put a power of two backslashes in
front of it until it works and if you still have problems add a \c.</i>
— Ron Natalie
</p></div>
<p>GNU <code class="code">troff</code> is not the easiest language to debug, in part thanks to
its design features of recursive interpolation and the use of
multi-stage pipeline processing in the surrounding system. Nevertheless
there exist several features useful for troubleshooting.
</p>
<p>Preprocessors use the <code class="code">lf</code> request to preserve the identity of the
line numbers and names of input files. GNU <code class="code">troff</code> emits a variety
of error diagnostics and supports several categories of warning; the
output of these can be selectively suppressed. A trace of the
formatter’s input processing stack can be emitted when errors or
warnings occur by means of GNU <code class="code">troff</code>’s <samp class="option">-b</samp> option, or
produced on demand with the <code class="code">backtrace</code> request. The <code class="code">tm</code>
and related requests can be used to emit customized diagnostic messages
or for instrumentation while troubleshooting. The <code class="code">ex</code> and
<code class="code">ab</code> requests cause early termination with successful and error
exit codes respectively, to halt further processing when continuing
would be fruitless. Examine the state of the formatter with requests
that write lists of defined names (macros, strings, and diversions),
environments, registers, and page location traps to the standard error
stream.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002elf"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.lf</code></strong> <var class="def-var-arguments">line [<span class="r"><i class="slanted">file</i></span>]</var><a class="copiable-link" href='#index-_002elf'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-lf"></a>
<a class="index-entry-id" id="index-soelim"></a>
<a class="index-entry-id" id="index-multi_002dfile-documents"></a>
<a class="index-entry-id" id="index-documents_002c-multi_002dfile"></a>
<a class="index-entry-id" id="index-setting-input-line-number-_0028lf_0029"></a>
<a class="index-entry-id" id="index-input-line-number_002c-setting-_0028lf_0029"></a>
<a class="index-entry-id" id="index-number_002c-input-line_002c-setting-_0028lf_0029"></a>
<p>Set the input line number (and, optionally, the file name) GNU
<code class="code">troff</code> shall use for error and warning messages. <var class="var">line</var> is
the input line number of the <em class="emph">next</em> line. Without an argument, the
request is ignored.
</p>
<p><code class="code">lf</code>’s primary purpose is to aid the debugging of documents that
undergo preprocessing. Programs like <code class="command">tbl</code> that transform input
in their own languages into <code class="code">roff</code> requests use it so that any
diagnostic messages emitted by <code class="code">troff</code> correspond to the source
document.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002etm"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.tm</code></strong> <var class="def-var-arguments">message</var><a class="copiable-link" href='#index-_002etm'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-tm"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002etm1"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.tm1</code></strong> <var class="def-var-arguments">message</var><a class="copiable-link" href='#index-_002etm1'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-tm1"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_002etmc"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.tmc</code></strong> <var class="def-var-arguments">message</var><a class="copiable-link" href='#index-_002etmc'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-tmc"></a>
<a class="index-entry-id" id="index-printing-to-stderr-_0028tm_002c-tm1_002c-tmc_0029"></a>
<a class="index-entry-id" id="index-stderr_002c-printing-to-_0028tm_002c-tm1_002c-tmc_0029"></a>
<p>Send <var class="var">message</var>, which consumes the remainder of the input line and
cannot contain special characters, to the standard error stream,
followed by a newline. Leading spaces in <var class="var">message</var> are ignored.
</p>
<p><code class="code">tm1</code> is similar, but recognizes and strips a leading neutral
double quote from <var class="var">message</var> to allow the embedding of leading
spaces.
</p>
<p><code class="code">tmc</code> works as <code class="code">tm1</code>, but does not append a newline.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eab"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ab</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">message</i></span>]</var><a class="copiable-link" href='#index-_002eab'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ab"></a>
<a class="index-entry-id" id="index-aborting-_0028ab_0029"></a>
<p>Write any <var class="var">message</var> to the standard error stream (like <code class="code">tm</code>)
and then abort GNU <code class="code">troff</code>; that is, stop processing and terminate
with a failure status.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eex"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ex</code></strong><a class="copiable-link" href='#index-_002eex'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ex"></a>
<a class="index-entry-id" id="index-ex-request_002c-use-in-debugging"></a>
<a class="index-entry-id" id="index-exiting-_0028ex_0029"></a>
<p>Exit GNU <code class="code">troff</code>; that is, stop processing and terminate with a
successful status. To stop processing only the current file, use the
<code class="code">nx</code> request; see <a class="ref" href="#I_002fO">I/O</a>.
</p></dd></dl>
<p>When doing something involved, it is useful to leave the debugging
statements in the code and have them turned on by a command-line flag.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.if \n[DB] .tm debugging output
</pre></div></div>
<p>To activate such statements, use the <samp class="option">-r</samp> option to set the
register.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">groff -rDB=1 <i class="slanted">file</i>
</pre></div></div>
<p>If it is known in advance that there are many errors and no useful
output, GNU <code class="code">troff</code> can be forced to suppress formatted output with
the <samp class="option">-z</samp> option.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002epev"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.pev</code></strong><a class="copiable-link" href='#index-_002epev'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-pev"></a>
<a class="index-entry-id" id="index-dumping-environments-_0028pev_0029"></a>
<a class="index-entry-id" id="index-environments_002c-dumping-_0028pev_0029"></a>
<p>Report the state of the current environment followed by that of all
other environments to the standard error stream.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002epm"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.pm</code></strong><a class="copiable-link" href='#index-_002epm'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-pm"></a>
<a class="index-entry-id" id="index-dumping-symbol-table-_0028pm_0029"></a>
<a class="index-entry-id" id="index-symbol-table_002c-dumping-_0028pm_0029"></a>
<p>Report, to the standard error stream, the names of all defined macros,
strings, and diversions with their sizes in bytes.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002epnr"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.pnr</code></strong><a class="copiable-link" href='#index-_002epnr'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-pnr"></a>
<a class="index-entry-id" id="index-dumping-registers-_0028pnr_0029"></a>
<a class="index-entry-id" id="index-registers_002c-dumping-_0028pnr_0029"></a>
<p>Report the names and contents of all currently defined registers to the
standard error stream.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002eptr"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.ptr</code></strong><a class="copiable-link" href='#index-_002eptr'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-ptr"></a>
<a class="index-entry-id" id="index-dumping-page-location-traps-_0028ptr_0029"></a>
<a class="index-entry-id" id="index-listing-page-location-traps-_0028ptr_0029"></a>
<a class="index-entry-id" id="index-traps_002c-page-location_002c-dumping-_0028ptr_0029"></a>
<a class="index-entry-id" id="index-traps_002c-page-location_002c-listing-_0028ptr_0029"></a>
<p>Report the names and positions of all page location traps to the
standard error stream. Empty slots in the list, where a trap has been
planted but subsequently (re)moved, are printed as well.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002efl"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.fl</code></strong><a class="copiable-link" href='#index-_002efl'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-fl"></a>
<a class="index-entry-id" id="index-flush-output-_0028fl_0029"></a>
<a class="index-entry-id" id="index-output_002c-flush-_0028fl_0029"></a>
<a class="index-entry-id" id="index-interactive-use-of-gtroff"></a>
<a class="index-entry-id" id="index-gtroff_002c-interactive-use"></a>
<p>Instruct <code class="code">gtroff</code> to flush its output immediately. The intent is
for interactive use, but this behaviour is currently not implemented in
<code class="code">gtroff</code>. Contrary to Unix <code class="code">troff</code>, TTY output is sent to a
device driver also (<code class="code">grotty</code>), making it non-trivial to communicate
interactively.
</p>
<p>This request causes a line break.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ebacktrace"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.backtrace</code></strong><a class="copiable-link" href='#index-_002ebacktrace'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-backtrace"></a>
<a class="index-entry-id" id="index-backtrace-of-input-stack-_0028backtrace_0029"></a>
<a class="index-entry-id" id="index-input-stack_002c-backtrace-_0028backtrace_0029"></a>
<p>Write the state of the input stack to the standard error stream.
</p>
<p>Consider the following in a file <samp class="file">test</samp>.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de xxx
. backtrace
..
.de yyy
. xxx
..
.
.yyy
error→ troff: backtrace: 'test':2: macro 'xxx'
error→ troff: backtrace: 'test':5: macro 'yyy'
error→ troff: backtrace: file 'test':8
</pre></div></div>
<p>The <samp class="option">-b</samp> option of GNU <code class="code">troff</code> causes a backtrace to be
generated on each error or warning. Some warnings have to be enabled;
See <a class="xref" href="#Warnings">Warnings</a>.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_005cn_005bslimit_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[slimit]</code></strong><a class="copiable-link" href='#index-_005cn_005bslimit_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-slimit"></a>
<a class="index-entry-id" id="index-input-stack_002c-setting-limit"></a>
<p>If greater than 0, sets the maximum quantity of objects on GNU
<code class="code">troff</code>’s internal input stack. If less than or equal to 0,
there is no limit: recursion can continue until program memory is
exhausted. The default is 1,000.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ewarnscale"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.warnscale</code></strong> <var class="def-var-arguments">su</var><a class="copiable-link" href='#index-_002ewarnscale'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-warnscale"></a>
<p>Set the scaling unit used in certain warnings to <var class="var">su</var>, which can take the values ‘<samp class="samp">u</samp>’, ‘<samp class="samp">i</samp>’, ‘<samp class="samp">c</samp>’,
‘<samp class="samp">p</samp>’, and ‘<samp class="samp">P</samp>’. The default is ‘<samp class="samp">i</samp>’.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002espreadwarn"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.spreadwarn</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">limit</i></span>]</var><a class="copiable-link" href='#index-_002espreadwarn'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-spreadwarn"></a>
<p>Emit a <code class="code">break</code> warning if the additional space inserted for each
space between words in an output line adjusted to both margins with
‘<samp class="samp">.ad b</samp>’<!-- /@w --> is larger than or equal to <var class="var">limit</var>. A negative
value is treated as zero; an absent argument toggles the warning on and
off without changing <var class="var">limit</var>. The default scaling unit is ‘<samp class="samp">m</samp>’.
At startup, <code class="code">spreadwarn</code> is inactive and <var class="var">limit</var> is 3<span class="dmn">m</span>.
</p>
<p>For example,
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.spreadwarn 0.2m
</pre></div></div>
<p>causes a warning if <code class="code">break</code> warnings are not suppressed and
<code class="code">gtroff</code> must add 0.2<span class="dmn">m</span> or more for each inter-word space in a
line. See <a class="xref" href="#Warnings">Warnings</a>.
</p></dd></dl>
<a class="index-entry-id" id="index-warnings"></a>
<p>GNU <code class="code">troff</code> has command-line options for reporting warnings
(<samp class="option">-w</samp>) and backtraces (<samp class="option">-b</samp>) when a warning or an error
occurs.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ewarn"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.warn</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">n</i></span>]</var><a class="copiable-link" href='#index-_002ewarn'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-warn"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002ewarn_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.warn]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ewarn_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ewarn-1"></a>
<a class="index-entry-id" id="index-warning-level-_0028warn_0029"></a>
<p>Select the categories, or “types”, of reported warnings.
<var class="var">n</var> is the sum of the numeric codes associated with each
warning category that is to be enabled; all other categories are
disabled. The categories and their associated codes are listed in
<a class="ref" href="#Warnings">Warnings</a>. For example, ‘<samp class="samp">.warn 0</samp>’ disables all warnings, and
‘<samp class="samp">.warn 1</samp>’ disables all warnings except those about missing glyphs.
If no argument is given, all warning categories are enabled.
</p>
<p>The read-only register <code class="code">.warn</code> contains the sum of the numeric
codes of enabled warning categories.
</p></dd></dl>
<ul class="mini-toc">
<li><a href="#Warnings" accesskey="1">Warnings</a></li>
</ul>
<hr>
<div class="subsection-level-extent" id="Warnings">
<div class="nav-panel">
<p>
Previous: <a href="#Debugging" accesskey="p" rel="prev">Debugging</a>, Up: <a href="#Debugging" accesskey="u" rel="up">Debugging</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Warnings-1">5.37.1 Warnings</h4>
<a class="index-entry-id" id="index-warnings-1"></a>
<p>Warning diagnostics emitted by GNU <code class="code">troff</code> are divided into named,
numbered categories. The name associated with each warning category is
used by the <samp class="option">-w</samp> and <samp class="option">-W</samp> options. Each category is also
assigned a power of two; the sum of enabled category values is used by
the <code class="code">warn</code> request and the <code class="code">.warn</code> register.
</p>
<p>Warnings of each category are produced under the following
circumstances.
</p>
<a class="index-entry-id" id="index-categories_002c-warning"></a>
<a class="index-entry-id" id="index-warning-categories"></a>
<dl class="table">
<dt>‘<samp class="samp">char</samp>’</dt>
<dt>‘<samp class="samp">1</samp>’</dt>
<dd><p>No mounted font defines a glyph for the requested character. This
category is enabled by default.
</p>
</dd>
<dt>‘<samp class="samp">number</samp>’</dt>
<dt>‘<samp class="samp">2</samp>’</dt>
<dd><p>An invalid numeric expression was encountered. This category is enabled
by default.
See <a class="xref" href="#Numeric-Expressions">Numeric Expressions</a>.
</p>
</dd>
<dt id='index-filling_002c-and-break-warnings'><span>‘<samp class="samp">break</samp>’<a class="copiable-link" href='#index-filling_002c-and-break-warnings'> ¶</a></span></dt>
<dt>‘<samp class="samp">4</samp>’</dt>
<dd><a class="index-entry-id" id="index-mode_002c-fill_002c-and-break-warnings"></a>
<p>A filled output line could not be broken such that its length was less
than the output line length ‘<samp class="samp">\n[.l]</samp>’. This category is enabled by
default.
</p>
</dd>
<dt>‘<samp class="samp">delim</samp>’</dt>
<dt>‘<samp class="samp">8</samp>’</dt>
<dd><p>The closing delimiter in an escape sequence was missing or mismatched.
</p>
</dd>
<dt id='index-ie-request_002c-and-warnings'><span>‘<samp class="samp">el</samp>’<a class="copiable-link" href='#index-ie-request_002c-and-warnings'> ¶</a></span></dt>
<dt>‘<samp class="samp">16</samp>’</dt>
<dd><a class="index-entry-id" id="index-el-request_002c-and-warnings"></a>
<p>The <code class="code">el</code> request was encountered with no prior corresponding
<code class="code">ie</code> request. See <a class="xref" href="#if_002delse">if-else</a>.
</p>
</dd>
<dt>‘<samp class="samp">scale</samp>’</dt>
<dt>‘<samp class="samp">32</samp>’</dt>
<dd><p>A scaling unit inappropriate to its context was used in a numeric
expression.
</p>
</dd>
<dt>‘<samp class="samp">range</samp>’</dt>
<dt>‘<samp class="samp">64</samp>’</dt>
<dd><p>A numeric expression was out of range for its context.
</p>
</dd>
<dt>‘<samp class="samp">syntax</samp>’</dt>
<dt>‘<samp class="samp">128</samp>’</dt>
<dd><p>A self-contradictory hyphenation mode was requested; an empty or
incomplete numeric expression was encountered; an operand to a numeric
operator was missing; an attempt was made to define a recursive, empty,
or nonsensical character class; or a <code class="code">groff</code> extension conditional
expression operator was used while in compatibility mode.
</p>
</dd>
<dt id='index-di-request_002c-and-warnings'><span>‘<samp class="samp">di</samp>’<a class="copiable-link" href='#index-di-request_002c-and-warnings'> ¶</a></span></dt>
<dt>‘<samp class="samp">256</samp>’</dt>
<dd><a class="index-entry-id" id="index-da-request_002c-and-warnings"></a>
<a class="index-entry-id" id="index-box-request_002c-and-warnings"></a>
<a class="index-entry-id" id="index-boxa-request_002c-and-warnings"></a>
<p>A <code class="code">di</code>, <code class="code">da</code>, <code class="code">box</code>, or <code class="code">boxa</code> request was invoked
without an argument when there was no current diversion.
</p>
</dd>
<dt id='index-de_002c-de1_002c-dei-requests_002c-and-warnings'><span>‘<samp class="samp">mac</samp>’<a class="copiable-link" href='#index-de_002c-de1_002c-dei-requests_002c-and-warnings'> ¶</a></span></dt>
<dt>‘<samp class="samp">512</samp>’</dt>
<dd><a class="index-entry-id" id="index-am_002c-am1_002c-ami-requests_002c-and-warnings"></a>
<a class="index-entry-id" id="index-ds_002c-ds1-requests_002c-and-warnings"></a>
<a class="index-entry-id" id="index-as_002c-as1-requests_002c-and-warnings"></a>
<a class="index-entry-id" id="index-di-request_002c-and-warnings-1"></a>
<a class="index-entry-id" id="index-da-request_002c-and-warnings-1"></a>
<a class="index-entry-id" id="index-box_002c-boxa-requests_002c-and-warnings"></a>
<a class="index-entry-id" id="index-_005c_002a_002c-and-warnings"></a>
<p>An undefined string, macro, or diversion was used. When such an object
is dereferenced, an empty one of that name is automatically created.
So, unless it is later deleted, at most one warning is given for each.
</p>
<p>This warning is also emitted upon an attempt to move an unplanted trap
macro (see <a class="pxref" href="#Page-Location-Traps">Page Location Traps</a>). In such cases, the unplanted macro
is <em class="emph">not</em> dereferenced, so it is not created if it does not exist.
</p>
</dd>
<dt id='index-nr-request_002c-and-warnings'><span>‘<samp class="samp">reg</samp>’<a class="copiable-link" href='#index-nr-request_002c-and-warnings'> ¶</a></span></dt>
<dt>‘<samp class="samp">1024</samp>’</dt>
<dd><a class="index-entry-id" id="index-_005cR_002c-and-warnings"></a>
<a class="index-entry-id" id="index-_005cn_002c-and-warnings"></a>
<p>An undefined register was used. When an undefined register is
dereferenced, it is automatically defined with a value of 0. So,
unless it is later deleted, at most one warning is given for each.
</p>
</dd>
<dt id='index-_005ct_002c-and-warnings'><span>‘<samp class="samp">tab</samp>’<a class="copiable-link" href='#index-_005ct_002c-and-warnings'> ¶</a></span></dt>
<dt>‘<samp class="samp">2048</samp>’</dt>
<dd><p>A tab character was encountered where a number was expected, or appeared
in an unquoted macro argument.
</p>
</dd>
<dt id='index-_005c_007d_002c-and-warnings'><span>‘<samp class="samp">right-brace</samp>’<a class="copiable-link" href='#index-_005c_007d_002c-and-warnings'> ¶</a></span></dt>
<dt>‘<samp class="samp">4096</samp>’</dt>
<dd><p>A right brace escape sequence <code class="code">\}</code> was encountered where a number
was expected.
</p>
</dd>
<dt>‘<samp class="samp">missing</samp>’</dt>
<dt>‘<samp class="samp">8192</samp>’</dt>
<dd><p>A request was invoked with a mandatory argument absent.
</p>
</dd>
<dt>‘<samp class="samp">input</samp>’</dt>
<dt>‘<samp class="samp">16384</samp>’</dt>
<dd><p>An invalid character occurred on the input stream.
</p>
</dd>
<dt>‘<samp class="samp">escape</samp>’</dt>
<dt>‘<samp class="samp">32768</samp>’</dt>
<dd><p>An unsupported escape sequence was encountered.
</p>
</dd>
<dt id='index-compatibility-mode'><span>‘<samp class="samp">space</samp>’<a class="copiable-link" href='#index-compatibility-mode'> ¶</a></span></dt>
<dt>‘<samp class="samp">65536</samp>’</dt>
<dd><p>A space was missing between a request or macro and its argument. This
warning is produced when an undefined name longer than two characters is
encountered and the first two characters of the name constitute a
defined name. No request is invoked, no macro called, and an empty
macro is not defined. This category is enabled by default. It never
occurs in compatibility mode.
</p>
</dd>
<dt>‘<samp class="samp">font</samp>’</dt>
<dt>‘<samp class="samp">131072</samp>’</dt>
<dd><p>A non-existent font was selected, or the selection was ignored because a
font selection escape sequence was used after the output line
continuation escape sequence on an input line. This category is enabled
by default.
</p>
</dd>
<dt>‘<samp class="samp">ig</samp>’</dt>
<dt>‘<samp class="samp">262144</samp>’</dt>
<dd><p>An invalid escape sequence occurred in input ignored using the <code class="code">ig</code>
request. This warning category diagnoses a condition that is an error
when it occurs in non-ignored input.
</p>
</dd>
<dt>‘<samp class="samp">color</samp>’</dt>
<dt>‘<samp class="samp">524288</samp>’</dt>
<dd><p>An undefined color was selected, an attempt was made to define a color
using an unrecognized color space, an invalid component in a color
definition was encountered, or an attempt was made to redefine a default
color.
</p>
</dd>
<dt>‘<samp class="samp">file</samp>’</dt>
<dt>‘<samp class="samp">1048576</samp>’</dt>
<dd><p>An attempt was made to load a file that does not exist. This category
is enabled by default.
</p></dd>
</dl>
<p>Two warning names group other warning categories for convenience.
</p>
<dl class="table">
<dt>‘<samp class="samp">all</samp>’</dt>
<dd><p>All warning categories except ‘<samp class="samp">di</samp>’, ‘<samp class="samp">mac</samp>’ and ‘<samp class="samp">reg</samp>’.
This shorthand is intended to produce all warnings that are useful with
macro packages written for <abbr class="acronym">AT&T</abbr> <code class="code">troff</code> and its
descendants, which have less fastidious diagnostics than GNU
<code class="code">troff</code>.
</p>
</dd>
<dt>‘<samp class="samp">w</samp>’</dt>
<dd><p>All warning categories. Authors of documents and macro packages
targeting <code class="code">groff</code> are encouraged to use this setting.
</p></dd>
</dl>
<hr>
</div>
</div>
<div class="section-level-extent" id="Implementation-Differences">
<div class="nav-panel">
<p>
Next: <a href="#Safer-Mode" accesskey="n" rel="next">Safer Mode</a>, Previous: <a href="#Debugging" accesskey="p" rel="prev">Debugging</a>, Up: <a href="#GNU-troff-Reference" accesskey="u" rel="up">GNU <code class="code">troff</code> Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Implementation-Differences-1">5.38 Implementation Differences</h3>
<a class="index-entry-id" id="index-implementation-differences"></a>
<a class="index-entry-id" id="index-differences-in-implementation"></a>
<a class="index-entry-id" id="index-incompatibilities-with-AT_0026T-troff"></a>
<p>GNU <code class="code">troff</code> has a number of features that cause incompatibilities
with documents written for other versions of <code class="code">troff</code>. Some GNU
extensions to <code class="code">troff</code> have become supported by other
implementations.
</p>
<ul class="mini-toc">
<li><a href="#Safer-Mode" accesskey="1">Safer Mode</a></li>
<li><a href="#Compatibility-Mode" accesskey="2">Compatibility Mode</a></li>
<li><a href="#Other-Differences" accesskey="3">Other Differences</a></li>
</ul>
<hr>
<div class="subsection-level-extent" id="Safer-Mode">
<div class="nav-panel">
<p>
Next: <a href="#Compatibility-Mode" accesskey="n" rel="next">Compatibility Mode</a>, Previous: <a href="#Implementation-Differences" accesskey="p" rel="prev">Implementation Differences</a>, Up: <a href="#Implementation-Differences" accesskey="u" rel="up">Implementation Differences</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Safer-Mode-1">5.38.1 Safer Mode</h4>
<a class="index-entry-id" id="index-safer-mode-7"></a>
<a class="index-entry-id" id="index-mode_002c-safer-7"></a>
<a class="index-entry-id" id="index-pi-request_002c-disabled-by-default"></a>
<a class="index-entry-id" id="index-sy-request_002c-disabled-by-default"></a>
<p>The formatter operates in “safer” mode by default; to mitigate risks
from untrusted input documents, the <code class="code">pi</code> and <code class="code">sy</code> requests are
disabled. GNU <code class="code">troff</code>’s <samp class="option">-U</samp> option enables “unsafe
mode”, restoring their function and enabling additional <code class="code">groff</code>
extension requests, <code class="code">open</code>, <code class="code">opena</code>, and <code class="code">pso</code>.
See <a class="xref" href="#I_002fO">I/O</a>.
</p>
<hr>
</div>
<div class="subsection-level-extent" id="Compatibility-Mode">
<div class="nav-panel">
<p>
Next: <a href="#Safer-Mode" accesskey="n" rel="next">Safer Mode</a>, Previous: <a href="#Other-Differences" accesskey="p" rel="prev">Other Differences</a>, Up: <a href="#Implementation-Differences" accesskey="u" rel="up">Implementation Differences</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Compatibility-Mode-1">5.38.2 Compatibility Mode</h4>
<a class="index-entry-id" id="index-compatibility-mode-1"></a>
<a class="index-entry-id" id="index-mode_002c-compatibility"></a>
<a class="index-entry-id" id="index-long-names"></a>
<a class="index-entry-id" id="index-names_002c-long"></a>
<a class="index-entry-id" id="index-_005c_002a_002c-incompatibilities-with-AT_0026T-troff"></a>
<a class="index-entry-id" id="index-_005cn_002c-incompatibilities-with-AT_0026T-troff"></a>
<p>Long identifier names may be GNU <code class="code">troff</code>’s most obvious innovation.
<abbr class="acronym">AT&T</abbr> <code class="code">troff</code> interprets ‘<samp class="samp">.dsabcd</samp>’ as defining a
string ‘<samp class="samp">ab</samp>’ with contents ‘<samp class="samp">cd</samp>’. Normally, GNU <code class="code">troff</code>
interprets this as a call of a macro named <code class="code">dsabcd</code>.
<abbr class="acronym">AT&T</abbr> <code class="code">troff</code> also interprets ‘<samp class="samp">\*[</samp>’ and ‘<samp class="samp">\n[</samp>’ as
an interpolation of a string or register, respectively, named ‘<samp class="samp">[</samp>’.
In GNU <code class="code">troff</code>, however, the ‘<samp class="samp">[</samp>’ is normally interpreted as
delimiting a long name. In compatibility mode, GNU <code class="code">troff</code>
interprets names in the traditional way; they thus can be two characters
long at most.
</p>
<dl class="first-deffn">
<dt class="deffn" id="index-_002ecp"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.cp</code></strong> <var class="def-var-arguments">[<span class="r"><i class="slanted">n</i></span>]</var><a class="copiable-link" href='#index-_002ecp'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-cp"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002eC_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.C]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002eC_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002eC"></a>
<p>If <var class="var">n</var> is missing or non-zero, turn on compatibility mode;
otherwise, turn it off.
</p>
<p>The read-only register <code class="code">.C</code> is 1 if compatibility mode is on,
0 otherwise.
</p>
<p>Compatibility mode can be also turned on with the <samp class="option">-C</samp>
command-line option.
</p></dd></dl>
<dl class="first-deffn">
<dt class="deffn" id="index-_002edo"><span class="category-def">Request: </span><span><strong class="def-name"><code class="t">.do</code></strong> <var class="def-var-arguments">name</var><a class="copiable-link" href='#index-_002edo'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-do"></a>
</dd><dt class="deffnx def-cmd-deffn" id="index-_005cn_005b_002ecp_005d"><span class="category-def">Register: </span><span><strong class="def-name"><code class="t">\n[.cp]</code></strong><a class="copiable-link" href='#index-_005cn_005b_002ecp_005d'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-_002ecp-1"></a>
<p>The <code class="code">do</code> request interprets the string, request, diversion, or
macro <var class="var">name</var> (along with any further arguments) with compatibility
mode disabled. Compatibility mode is restored (only if it was active)
when the <em class="emph">expansion</em> of <var class="var">name</var> is interpreted; that is, the
restored compatibility state applies to the contents of the macro,
string, or diversion <var class="var">name</var> as well as data read from files or pipes
if <var class="var">name</var> is any of the <code class="code">so</code>, <code class="code">soquiet</code>, <code class="code">mso</code>,
<code class="code">msoquiet</code>, or <code class="code">pso</code> requests.
</p>
<p>The following example illustrates several aspects of <code class="code">do</code> behavior.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de mac1
FOO
..
.de1 mac2
groff
.mac1
..
.de mac3
compatibility
.mac1
..
.de ma
\\$1
..
.cp 1
.do mac1
.do mac2 \" mac2, defined with .de1, calls "mac1"
.do mac3 \" mac3 calls "ma" with argument "c1"
.do mac3 \[ti] \" groff syntax accepted in .do arguments
⇒ FOO groff FOO compatibility c1 ~
</pre></div></div>
<p>The read-only register <code class="code">.cp</code>, meaningful only when dereferenced
from a <code class="code">do</code> request, is 1 if compatibility mode was on when
the <code class="code">do</code> request was encountered, and 0 if it was not. This
register is specialized and may require a statement of rationale.
</p>
<p>When writing macro packages or documents that use GNU <code class="code">troff</code>
features and which may be mixed with other packages or documents that do
not—common scenarios include serial processing of man pages or use of
the <code class="code">so</code> or <code class="code">mso</code> requests—you may desire correct operation
regardless of compatibility mode enablement in the surrounding context.
It may occur to you to save the existing value of ‘<samp class="samp">\n(.C</samp>’ into a
register, say, ‘<samp class="samp">_C</samp>’, at the beginning of your file, turn
compatibility mode off with ‘<samp class="samp">.cp 0</samp>’, then restore it from that
register at the end with ‘<samp class="samp">.cp \n(_C</samp>’. At the same time, a modular
design of a document or macro package may lead you to multiple layers of
inclusion. You cannot use the same register name everywhere lest you
“clobber” the value from a preceding or enclosing context. The
two-character register name space of <abbr class="acronym">AT&T</abbr> <code class="code">troff</code> is
confining and mnemonically challenging; you may wish to use the more
capacious name space of GNU <code class="code">troff</code>. However, attempting ‘<samp class="samp">.nr
_my_saved_C \n(.C</samp>’ will not work in compatibility mode; the register
name is too long. “This is exactly what <code class="code">do</code> is for,” you think,
‘<samp class="samp">.do nr _my_saved_C \n(.C</samp>’. The foregoing will always save zero to
your register, because <code class="code">do</code> turns compatibility mode <em class="emph">off</em>
while it interprets its argument list.
</p>
<p>To robustly save compatibility mode before switching it off, use
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.do nr _my_saved_C \n[.cp]
.cp 0
</pre></div></div>
<p>at the beginning of your file, followed by
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.cp \n[_my_saved_C]
.do rr _my_saved_C
</pre></div></div>
<p>at the end. As in the C language, we all have to share one big
name space, so choose a register name that is unlikely to collide with
other uses.
</p></dd></dl>
<a class="index-entry-id" id="index-input-level-in-delimited-arguments"></a>
<a class="index-entry-id" id="index-interpolation-depth-in-delimited-arguments"></a>
<a class="index-entry-id" id="index-delimited-arguments_002c-incompatibilities-with-AT_0026T-troff"></a>
<p>Normally, GNU <code class="code">troff</code> preserves the interpolation depth in
delimited arguments, but not in compatibility mode.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.ds xx '
\w'abc\*(xxdef'
⇒ 168 <span class="r">(normal mode on a terminal device)</span>
⇒ 72def' <span class="r">(compatibility mode on a terminal device)</span>
</pre></div></div>
<a class="index-entry-id" id="index-_005cf_002c-incompatibilities-with-AT_0026T-troff"></a>
<a class="index-entry-id" id="index-_005cH_002c-incompatibilities-with-AT_0026T-troff"></a>
<a class="index-entry-id" id="index-_005cs_002c-incompatibilities-with-AT_0026T-troff"></a>
<a class="index-entry-id" id="index-_005cS_002c-incompatibilities-with-AT_0026T-troff"></a>
<p>Furthermore, the escape sequences <code class="code">\f</code>, <code class="code">\H</code>, <code class="code">\m</code>,
<code class="code">\M</code>, <code class="code">\R</code>, <code class="code">\s</code>, and <code class="code">\S</code> are transparent for the
purpose of recognizing a control character at the beginning of a line
only in compatibility mode. For example, this code produces bold output
in both cases, but the text differs.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.de xx
Hello!
..
\fB.xx\fP
⇒ .xx <span class="r">(normal mode)</span>
⇒ Hello! <span class="r">(compatibility mode)</span>
</pre></div></div>
<a class="index-entry-id" id="index-_005cs_002c-incompatibilities-with-AT_0026T-troff-1"></a>
<p>Normally, the syntax form <code class="code">\s</code><var class="var">n</var> accepts only a single
character (a digit) for <var class="var">n</var>, consistently with other forms that
originated in <abbr class="acronym">AT&T</abbr> <code class="code">troff</code>, like <code class="code">\*</code>, <code class="code">\$</code>,
<code class="code">\f</code>, <code class="code">\g</code>, <code class="code">\k</code>, <code class="code">\n</code>, and <code class="code">\z</code>. In
compatibility mode only, a non-zero <var class="var">n</var> must be in the range
4–39. Legacy documents relying upon this quirk of parsing<a class="footnote" id="DOCF120" href="#FOOT120"><sup>120</sup></a> should be migrated to another
<code class="code">\s</code> form.
</p>
<hr>
</div>
<div class="subsection-level-extent" id="Other-Differences">
<div class="nav-panel">
<p>
Previous: <a href="#Compatibility-Mode" accesskey="p" rel="prev">Compatibility Mode</a>, Up: <a href="#Implementation-Differences" accesskey="u" rel="up">Implementation Differences</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Other-Differences-1">5.38.3 Other Differences</h4>
<p><code class="code">groff</code> request names unrecognized by other <code class="code">troff</code>
implementations will likely be ignored by them; escape sequences that
are <code class="code">groff</code> extensions are liable to be interpreted as if the
escape character were not present.
<a class="index-entry-id" id="index-_005c_007e_002c-incompatibilities-with-AT_0026T-troff"></a>
For example, the adjustable, non-breaking escape sequence <code class="code">\~</code>
is also supported by Heirloom Doctools <code class="code">troff</code> 050915 (September
2005), <code class="code">mandoc</code> 1.9.5 (2009-09-21), <code class="code">neatroff</code> (commit
1c6ab0f6e, 2016-09-13), and Plan 9 from User Space <code class="code">troff</code>
(commit 93f8143600, 2022-08-12), but not by Solaris or Documenter’s
Workbench <code class="code">troff</code>s.
See <a class="xref" href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a>.
</p>
<a class="index-entry-id" id="index-_005cA_002c-incompatibilities-with-AT_0026T-troff"></a>
<a class="index-entry-id" id="index-_005c_007c_002c-incompatibilities-with-AT_0026T-troff"></a>
<a class="index-entry-id" id="index-_005c_005e_002c-incompatibilities-with-AT_0026T-troff"></a>
<a class="index-entry-id" id="index-_005c_0026_002c-incompatibilities-with-AT_0026T-troff"></a>
<a class="index-entry-id" id="index-_005c_007b_002c-incompatibilities-with-AT_0026T-troff"></a>
<a class="index-entry-id" id="index-_005c_007d_002c-incompatibilities-with-AT_0026T-troff"></a>
<a class="index-entry-id" id="index-_005cSP_002c-incompatibilities-with-AT_0026T-troff"></a>
<a class="index-entry-id" id="index-_005c_0027_002c-incompatibilities-with-AT_0026T-troff"></a>
<a class="index-entry-id" id="index-_005c_0060_002c-incompatibilities-with-AT_0026T-troff"></a>
<a class="index-entry-id" id="index-_005c_002d_002c-incompatibilities-with-AT_0026T-troff"></a>
<a class="index-entry-id" id="index-_005c_005f_002c-incompatibilities-with-AT_0026T-troff"></a>
<a class="index-entry-id" id="index-_005c_0021_002c-incompatibilities-with-AT_0026T-troff"></a>
<a class="index-entry-id" id="index-_005c_0025_002c-incompatibilities-with-AT_0026T-troff"></a>
<a class="index-entry-id" id="index-_005cc_002c-incompatibilities-with-AT_0026T-troff"></a>
<p>GNU <code class="code">troff</code> does not allow the use of the escape sequences
<code class="code">\|</code>, <code class="code">\^</code>, <code class="code">\&</code>, <code class="code">\{</code>, <code class="code">\}</code>,
<code class="code">\<kbd class="key">SP</kbd></code>, <code class="code">\'</code>, <code class="code">\`</code>, <code class="code">\-</code>, <code class="code">\_</code>, <code class="code">\!</code>,
<code class="code">\%</code>, and <code class="code">\c</code> in identifiers; <abbr class="acronym">AT&T</abbr> <code class="code">troff</code>
does. The <code class="code">\A</code> escape sequence (see <a class="pxref" href="#Identifiers">Identifiers</a>) may be
helpful in avoiding use of these escape sequences in names.
</p>
<a class="index-entry-id" id="index-adjustment-to-both-margins_002c-difference-from-AT_0026T-troff"></a>
<a class="index-entry-id" id="index-rivers"></a>
<p>When adjusting to both margins, <abbr class="acronym">AT&T</abbr> <code class="code">troff</code> at first
adjusts spaces starting from the right; GNU <code class="code">troff</code> begins from
the left. Both implementations adjust spaces from opposite ends on
alternating output lines in this adjustment mode to prevent “rivers”
in the text.
</p>
<a class="index-entry-id" id="index-hyphenation_002c-incompatibilities-with-AT_0026T-troff"></a>
<p>GNU <code class="code">troff</code> does not always hyphenate words as <abbr class="acronym">AT&T</abbr>
<code class="code">troff</code> does. The <abbr class="acronym">AT&T</abbr> implementation uses a set of
hard-coded rules specific to English, while GNU <code class="code">troff</code> uses
language-specific hyphenation pattern files derived from TeX.
Furthermore, in old versions of <code class="code">troff</code> there was a limited amount
of space to store hyphenation exceptions (arguments to the <code class="code">hw</code>
request); GNU <code class="code">troff</code> has no such restriction.
</p>
<a class="index-entry-id" id="index-output-device-name-string-_0028_002eT_0029_002c-in-other-implementations"></a>
<p>GNU <code class="code">troff</code> predefines a string <code class="code">.T</code> containing the argument
given to the <samp class="option">-T</samp> command-line option, namely the current output
device (for example, ‘<samp class="samp">pdf</samp>’ or ‘<samp class="samp">utf8</samp>’). The existence of this
string is a common feature of post-CSTR #54
<code class="code">troff</code>s<a class="footnote" id="DOCF121" href="#FOOT121"><sup>121</sup></a> but valid values are specific
to each implementation.
</p>
<a class="index-entry-id" id="index-removal-of-read_002donly-registers_002c-incompatibility-with-AT_0026T-troff"></a>
<a class="index-entry-id" id="index-register_002c-read_002donly_002c-removal_002c-incompatibility-with-AT_0026T-troff"></a>
<a class="index-entry-id" id="index-read_002donly-register-removal_002c-incompatibility-with-AT_0026T-troff"></a>
<p><abbr class="acronym">AT&T</abbr> <code class="code">troff</code> ignored attempts to remove read-only
registers; GNU <code class="code">troff</code> honors such requests. See <a class="xref" href="#Built_002din-Registers">Built-in Registers</a>.
</p>
<a class="index-entry-id" id="index-output-device-usage-register-_0028_002eT_0029_002c-incompatibility-with-AT_0026T-troff"></a>
<p>The (read-only) register <code class="code">.T</code> interpolates 1 if GNU
<code class="code">troff</code> is called with the <samp class="option">-T</samp> command-line option, and
0 otherwise. This behavior differs from AT&T <code class="code">troff</code>, which
interpolated 1 only if <code class="code">nroff</code> was the formatter and was
called with <samp class="option">-T</samp>.
</p>
<a class="index-entry-id" id="index-lf-request_002c-incompatibilities-with-AT_0026T-troff"></a>
<p><abbr class="acronym">AT&T</abbr> <code class="code">troff</code> and other implementations handle the
<code class="code">lf</code> request differently. For them, its <var class="var">line</var> argument
changes the line number of the <em class="emph">current</em> line.
</p>
<a class="index-entry-id" id="index-environment-availability-and-naming_002c-incompatibilities-with"></a>
<p><abbr class="acronym">AT&T</abbr> <code class="code">troff</code> had only environments named ‘<samp class="samp">0</samp>’,
‘<samp class="samp">1</samp>’, and ‘<samp class="samp">2</samp>’. In GNU <code class="code">troff</code>, any number of environments
may exist, using any valid identifiers for their names
(see <a class="pxref" href="#Identifiers">Identifiers</a>.)
</p>
<a class="index-entry-id" id="index-fractional-point-sizes-1"></a>
<a class="index-entry-id" id="index-fractional-type-sizes-1"></a>
<a class="index-entry-id" id="index-point-sizes_002c-fractional-1"></a>
<a class="index-entry-id" id="index-type-sizes_002c-fractional-1"></a>
<a class="index-entry-id" id="index-sizes_002c-fractional"></a>
<a class="index-entry-id" id="index-ps-request_002c-incompatibilities-with-AT_0026T-troff"></a>
<p>Fractional type sizes cause one noteworthy incompatibility. In
<abbr class="acronym">AT&T</abbr> <code class="code">troff</code> the <code class="code">ps</code> request ignores scaling units
and thus ‘<samp class="samp">.ps 10u</samp>’ sets the type size to 10 points, whereas in
GNU <code class="code">troff</code> it sets the type size to 10 <em class="emph">scaled</em> points.
See <a class="xref" href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a>.
</p>
<a class="index-entry-id" id="index-ab-request_002c-incompatibilities-with-AT_0026T-troff"></a>
<p>The <code class="code">ab</code> request differs from <abbr class="acronym">AT&T</abbr> <code class="code">troff</code>:
GNU <code class="code">troff</code> writes no message to the standard error stream if no
arguments are given, and it exits with a failure status instead of a
successful one.
</p>
<a class="index-entry-id" id="index-bp-request_002c-incompatibilities-with-AT_0026T-troff"></a>
<p>The <code class="code">bp</code> request differs from <abbr class="acronym">AT&T</abbr> <code class="code">troff</code>:
GNU <code class="code">troff</code> does not accept a scaling unit on the argument, a page
number; the former (somewhat uselessly) does.
</p>
<a class="index-entry-id" id="index-pm-request_002c-incompatibilities-with-AT_0026T-troff"></a>
<p>The <code class="code">pm</code> request differs from <abbr class="acronym">AT&T</abbr> <code class="code">troff</code>:
GNU <code class="code">troff</code> reports the sizes of macros, strings, and diversions in
bytes and ignores an argument to report only the sum of the sizes.
</p>
<a class="index-entry-id" id="index-ss-request_002c-incompatibilities-with-AT_0026T-troff"></a>
<p>Unlike <abbr class="acronym">AT&T</abbr> <code class="code">troff</code>, GNU <code class="code">troff</code> does not ignore the
<code class="code">ss</code> request if the output is a terminal device; instead, the
values of minimal inter-word and additional inter-sentence space are
each rounded down to the nearest multiple of 12.
</p>
<a class="index-entry-id" id="index-bd-request_002c-incompatibilities-with-AT_0026T-troff"></a>
<a class="index-entry-id" id="index-cs-request_002c-incompatibilities-with-AT_0026T-troff"></a>
<a class="index-entry-id" id="index-tr-request_002c-incompatibilities-with-AT_0026T-troff"></a>
<a class="index-entry-id" id="index-fp-request_002c-incompatibilities-with-AT_0026T-troff"></a>
<a class="index-entry-id" id="index-input-characters-and-output-glyphs_002c-compatibility-with-AT_0026T-troff"></a>
<a class="index-entry-id" id="index-output-glyphs_002c-and-input-characters_002c-compatibility-with-AT_0026T-troff"></a>
<a class="index-entry-id" id="index-characters_002c-input_002c-and-output-glyphs_002c-compatibility-with-AT_0026T-troff"></a>
<a class="index-entry-id" id="index-glyphs_002c-output_002c-and-input-characters_002c-compatibility-with-AT_0026T-troff"></a>
<p>In GNU <code class="code">troff</code> there is a fundamental difference between
(unformatted) characters and (formatted) glyphs. Everything that
affects how a glyph is output is stored with the glyph node; once a
glyph node has been constructed, it is unaffected by any subsequent
requests that are executed, including <code class="code">bd</code>, <code class="code">cs</code>, <code class="code">tkf</code>,
<code class="code">tr</code>, or <code class="code">fp</code> requests. Normally, glyphs are constructed from
characters immediately before the glyph is added to an output line.
Macros, diversions, and strings are all, in fact, the same type of
object; they contain a sequence of intermixed character and glyph nodes.
Special characters transform from one to the other: before being added
to the output, they behave as characters; afterward, they are glyphs. A
glyph node does not behave like a character node when it is processed by
a macro: it does not inherit any of the special properties that the
character from which it was constructed might have had. For example,
the input
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">.di x
\\\\
.br
.di
.x
</pre></div></div>
<p>produces ‘<samp class="samp">\\</samp>’ in GNU <code class="code">troff</code>. Each pair of backslashes
becomes one backslash <em class="emph">glyph</em>; the resulting backslashes are thus
not interpreted as escape <em class="emph">characters</em> when they are reread as the
diversion is output. <abbr class="acronym">AT&T</abbr> <code class="code">troff</code> <em class="emph">would</em> interpret
them as escape characters when rereading them and end up printing one
‘<samp class="samp">\</samp>’.
</p>
<a class="index-entry-id" id="index-printing-backslash-_0028_005c_005c_002c-_005ce_002c-_005cE_002c-_005c_005brs_005d_0029"></a>
<a class="index-entry-id" id="index-backslash_002c-printing-_0028_005c_005c_002c-_005ce_002c-_005cE_002c-_005c_005brs_005d_0029"></a>
<a class="index-entry-id" id="index-_005ce_002c-incompatibilities-with-AT_0026T-troff"></a>
<a class="index-entry-id" id="index-_005c_0021_002c-incompatibilities-with-AT_0026T-troff-1"></a>
<a class="index-entry-id" id="index-_005c_003f_002c-incompatibilities-with-AT_0026T-troff"></a>
<a class="index-entry-id" id="index-transparent-output_002c-incompatibilities-with-AT_0026T-troff"></a>
<a class="index-entry-id" id="index-output_002c-transparent_002c-incompatibilities-with-AT_0026T-troff"></a>
<p>One correct way to obtain a printable backslash in most documents is to
use the <code class="code">\e</code> escape sequence; this always prints a single instance
of the current escape character,<a class="footnote" id="DOCF122" href="#FOOT122"><sup>122</sup></a> regardless of whether or not it is used in a diversion; it
also works in both GNU <code class="code">troff</code> and <abbr class="acronym">AT&T</abbr> <code class="code">troff</code>.
</p>
<p>The other correct way, appropriate in contexts independent of the
backslash’s common use as a <code class="code">troff</code> escape character—perhaps in
discussion of character sets or other programming languages—is
the character escape <code class="code">\(rs</code> or <code class="code">\[rs]</code>, for “reverse
solidus”, from its name in the <abbr class="acronym">ECMA-6</abbr> (<abbr class="acronym">ISO/IEC</abbr> 646)
standard.<a class="footnote" id="DOCF123" href="#FOOT123"><sup>123</sup></a>
</p>
<p>To store an escape sequence in a diversion that is interpreted when the
diversion is reread, either use the traditional <code class="code">\!</code> transparent
output facility, or, if this is unsuitable, the new <code class="code">\?</code> escape
sequence. See <a class="xref" href="#Diversions">Diversions</a> and <a class="ref" href="#Gtroff-Internals"><code class="code">gtroff</code> Internals</a>.
</p>
<p>In the somewhat pathological case where a diversion exists containing a
partially collected line and a partially collected line at the top-level
diversion has never existed, <abbr class="acronym">AT&T</abbr> <code class="code">troff</code> will output the
partially collected line at the end of input; GNU <code class="code">troff</code> will not.
</p>
<hr>
</div>
</div>
</div>
<div class="chapter-level-extent" id="File-Formats">
<div class="nav-panel">
<p>
Next: <a href="#Copying-This-Manual" accesskey="n" rel="next">Copying This Manual</a>, Previous: <a href="#GNU-troff-Reference" accesskey="p" rel="prev">GNU <code class="code">troff</code> Reference</a>, Up: <a href="#Top" accesskey="u" rel="up">GNU <code class="code">troff</code></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h2 class="chapter" id="File-Formats-1">6 File Formats</h2>
<a class="index-entry-id" id="index-file-formats"></a>
<a class="index-entry-id" id="index-formats_002c-file"></a>
<p>All files read and written by <code class="code">gtroff</code> are text files. The
following two sections describe their format.
</p>
<ul class="mini-toc">
<li><a href="#gtroff-Output" accesskey="1"><code class="code">gtroff</code> Output</a></li>
<li><a href="#Device-and-Font-Description-Files" accesskey="2">Device and Font Description Files</a></li>
</ul>
<hr>
<div class="section-level-extent" id="gtroff-Output">
<div class="nav-panel">
<p>
Next: <a href="#Device-and-Font-Description-Files" accesskey="n" rel="next">Device and Font Description Files</a>, Previous: <a href="#File-Formats" accesskey="p" rel="prev">File Formats</a>, Up: <a href="#File-Formats" accesskey="u" rel="up">File Formats</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="gtroff-Output-1">6.1 <code class="code">gtroff</code> Output</h3>
<a class="index-entry-id" id="index-gtroff_002c-output"></a>
<a class="index-entry-id" id="index-output_002c-gtroff"></a>
<p>This section describes the <code class="code">groff</code> intermediate output format
produced by GNU <code class="code">troff</code>.
</p>
<p>As <code class="code">groff</code> is a wrapper program around GNU <code class="code">troff</code> and
automatically calls an output driver (or “postprocessor”), this output
does not show up normally. This is why it is called
<em class="emph">intermediate</em>. <code class="code">groff</code> provides the option <samp class="option">-Z</samp> to
inhibit postprocessing such that the produced intermediate output is
sent to standard output just as it is when calling GNU <code class="code">troff</code>
directly.
</p>
<a class="index-entry-id" id="index-troff-output"></a>
<a class="index-entry-id" id="index-output_002c-troff"></a>
<a class="index-entry-id" id="index-intermediate-output"></a>
<a class="index-entry-id" id="index-output_002c-intermediate"></a>
<p>Here, the term <em class="dfn">troff output</em> describes what is output by
GNU <code class="code">troff</code>, while <em class="dfn">intermediate output</em> refers to the language
that is accepted by the parser that prepares this output for the output
drivers. This parser handles whitespace more flexibly than
<abbr class="acronym">AT&T</abbr>’s implementation and implements obsolete elements for
compatibility; otherwise, both formats are the same.<a class="footnote" id="DOCF124" href="#FOOT124"><sup>124</sup></a>
</p>
<p>The main purpose of the intermediate output concept is to facilitate the
development of postprocessors by providing a common programming
interface for all devices. It has a language of its own that is
completely different from the <code class="code">gtroff</code> language. While the
<code class="code">gtroff</code> language is a high-level programming language for text
processing, the intermediate output language is a kind of low-level
assembler language by specifying all positions on the page for writing
and drawing.
</p>
<p>The intermediate output produced by <code class="code">gtroff</code> is fairly readable,
while output from <abbr class="acronym">AT&T</abbr> <code class="code">troff</code> is rather hard to
understand because of strange habits that are still supported, but not
used any longer by <code class="code">gtroff</code>.
</p>
<ul class="mini-toc">
<li><a href="#Language-Concepts" accesskey="1">Language Concepts</a></li>
<li><a href="#Command-Reference" accesskey="2">Command Reference</a></li>
<li><a href="#Intermediate-Output-Examples" accesskey="3">Intermediate Output Examples</a></li>
<li><a href="#Output-Language-Compatibility" accesskey="4">Output Language Compatibility</a></li>
</ul>
<hr>
<div class="subsection-level-extent" id="Language-Concepts">
<div class="nav-panel">
<p>
Next: <a href="#Command-Reference" accesskey="n" rel="next">Command Reference</a>, Previous: <a href="#gtroff-Output" accesskey="p" rel="prev"><code class="code">gtroff</code> Output</a>, Up: <a href="#gtroff-Output" accesskey="u" rel="up"><code class="code">gtroff</code> Output</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Language-Concepts-1">6.1.1 Language Concepts</h4>
<p>The fundamental operation of the GNU <code class="code">troff</code> formatter is the
translation of the <code class="code">groff</code> input language into a device-independent
form primarily concerned with what has to be written or drawn at
specific positions on the output device. This language is simple and
imperative. In the following discussion, the term <em class="dfn">command</em> always
refers to this intermediate output language, and never to the
<code class="code">groff</code> language intended for direct use by document authors.
Intermediate output commands comprise several categories: glyph output;
font, color, and text size selection; motion of the printing position;
page advancement; drawing of geometric objects; and device control
commands, a catch-all for operations not easily classified as any of the
foregoing, such as directives to start and stop output, identify the
intended output device, or place URL hyperlinks in supported output
formats.
</p>
<ul class="mini-toc">
<li><a href="#Separation" accesskey="1">Separation</a></li>
<li><a href="#Argument-Units" accesskey="2">Argument Units</a></li>
<li><a href="#Document-Parts" accesskey="3">Document Parts</a></li>
</ul>
<hr>
<div class="subsubsection-level-extent" id="Separation">
<div class="nav-panel">
<p>
Next: <a href="#Argument-Units" accesskey="n" rel="next">Argument Units</a>, Previous: <a href="#Language-Concepts" accesskey="p" rel="prev">Language Concepts</a>, Up: <a href="#Language-Concepts" accesskey="u" rel="up">Language Concepts</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsubsection" id="Separation-1">6.1.1.1 Separation</h4>
<p><abbr class="acronym">AT&T</abbr> <code class="code">troff</code> output has strange requirements regarding
whitespace. The <code class="code">gtroff</code> output parser, however, is more tolerant,
making whitespace maximally optional. Such characters, i.e., the tab,
space, and newline, always have a syntactical meaning. They are never
printable because spacing within the output is always done by
positioning commands.
</p>
<p>Any sequence of space or tab characters is treated as a single
<em class="dfn">syntactical space</em>. It separates commands and arguments, but is
only required when there would occur a clashing between the command code
and the arguments without the space. Most often, this happens when
variable-length command names, arguments, argument lists, or command
clusters meet. Commands and arguments with a known, fixed length need
not be separated by syntactical space.
</p>
<p>A line break is a syntactical element, too. Every command argument can
be followed by whitespace, a comment, or a newline character. Thus a
<em class="dfn">syntactical line break</em> is defined to consist of optional
syntactical space that is optionally followed by a comment, and a
newline character.
</p>
<p>The normal commands, those for positioning and text, consist of a single
letter taking a fixed number of arguments. For historical reasons, the
parser allows stacking of such commands on the same line, but
fortunately, in <code class="code">gtroff</code>’s intermediate output, every command with
at least one argument is followed by a line break, thus providing
excellent readability.
</p>
<p>The other commands—those for drawing and device controlling—have a
more complicated structure; some recognize long command names, and some
take a variable number of arguments. So all ‘<samp class="samp">D</samp>’ and ‘<samp class="samp">x</samp>’
commands were designed to request a syntactical line break after their
last argument. Only one command, ‘<samp class="samp">x X</samp>’<!-- /@w -->, has an argument that
can span several input lines; all other commands must have all of
their arguments on the same line as the command, i.e., the arguments may
not be split by a line break.
</p>
<p>Empty lines (these are lines containing only space and/or a comment),
can occur everywhere. They are just ignored.
</p>
<hr>
</div>
<div class="subsubsection-level-extent" id="Argument-Units">
<div class="nav-panel">
<p>
Next: <a href="#Document-Parts" accesskey="n" rel="next">Document Parts</a>, Previous: <a href="#Separation" accesskey="p" rel="prev">Separation</a>, Up: <a href="#Language-Concepts" accesskey="u" rel="up">Language Concepts</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsubsection" id="Argument-Units-1">6.1.1.2 Argument Units</h4>
<p>Some commands take integer arguments that are assumed to represent
values in a measurement unit, but the letter for the corresponding
scaling unit is not written with the output command arguments. Most
commands assume the scaling unit ‘<samp class="samp">u</samp>’, the basic unit of the device,
some use ‘<samp class="samp">z</samp>’, the scaled point unit of the device, while others,
such as the color commands, expect plain integers.
</p>
<p>Single characters can have the eighth bit set, as can the names of
fonts and special characters. The names of characters and fonts can be
of arbitrary length. A character that is to be printed is always in
the current font.
</p>
<p>A string argument is always terminated by the next whitespace character
(space, tab, or newline); an embedded ‘<samp class="samp">#</samp>’ character is regarded as
part of the argument, not as the beginning of a comment command. An
integer argument is already terminated by the next non-digit character,
which then is regarded as the first character of the next argument or
command.
</p>
<hr>
</div>
<div class="subsubsection-level-extent" id="Document-Parts">
<div class="nav-panel">
<p>
Previous: <a href="#Argument-Units" accesskey="p" rel="prev">Argument Units</a>, Up: <a href="#Language-Concepts" accesskey="u" rel="up">Language Concepts</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsubsection" id="Document-Parts-1">6.1.1.3 Document Parts</h4>
<p>A correct intermediate output document consists of two parts, the
<em class="dfn">prologue</em> and the <em class="dfn">body</em>.
</p>
<p>The task of the prologue is to set the general device parameters using
three exactly specified commands. <code class="code">gtroff</code>’s prologue is
guaranteed to consist of the following three lines (in that order):
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">x T <var class="var">device</var>
x res <var class="var">n</var> <var class="var">h</var> <var class="var">v</var>
x init
</pre></div></div>
<p>with the arguments set as outlined in <a class="ref" href="#Device-Control-Commands">Device Control Commands</a>.
The parser for the intermediate output format is able to interpret
additional whitespace and comments as well even in the prologue.
</p>
<p>The body is the main section for processing the document data.
Syntactically, it is a sequence of any commands different from the ones
used in the prologue. Processing is terminated as soon as the first
‘<samp class="samp">x stop</samp>’<!-- /@w --> command is encountered; the last line of any
<code class="code">gtroff</code> intermediate output always contains such a command.
</p>
<p>Semantically, the body is page oriented. A new page is started by a
‘<samp class="samp">p</samp>’ command. Positioning, writing, and drawing commands are always
done within the current page, so they cannot occur before the first
‘<samp class="samp">p</samp>’ command. Absolute positioning (by the ‘<samp class="samp">H</samp>’ and ‘<samp class="samp">V</samp>’
commands) is done relative to the current page; all other positioning is
done relative to the current location within this page.
</p>
<hr>
</div>
</div>
<div class="subsection-level-extent" id="Command-Reference">
<div class="nav-panel">
<p>
Next: <a href="#Intermediate-Output-Examples" accesskey="n" rel="next">Intermediate Output Examples</a>, Previous: <a href="#Language-Concepts" accesskey="p" rel="prev">Language Concepts</a>, Up: <a href="#gtroff-Output" accesskey="u" rel="up"><code class="code">gtroff</code> Output</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Command-Reference-1">6.1.2 Command Reference</h4>
<p>This section describes all intermediate output commands, both from
<abbr class="acronym">AT&T</abbr> <code class="code">troff</code> as well as the <code class="code">gtroff</code> extensions.
</p>
<ul class="mini-toc">
<li><a href="#Comment-Command" accesskey="1">Comment Command</a></li>
<li><a href="#Simple-Commands" accesskey="2">Simple Commands</a></li>
<li><a href="#Graphics-Commands" accesskey="3">Graphics Commands</a></li>
<li><a href="#Device-Control-Commands" accesskey="4">Device Control Commands</a></li>
<li><a href="#Obsolete-Command" accesskey="5">Obsolete Command</a></li>
</ul>
<hr>
<div class="subsubsection-level-extent" id="Comment-Command">
<div class="nav-panel">
<p>
Next: <a href="#Simple-Commands" accesskey="n" rel="next">Simple Commands</a>, Previous: <a href="#Command-Reference" accesskey="p" rel="prev">Command Reference</a>, Up: <a href="#Command-Reference" accesskey="u" rel="up">Command Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsubsection" id="Comment-Command-1">6.1.2.1 Comment Command</h4>
<dl class="table">
<dt><code class="code">#<var class="var">anything</var>‹<span class="r">end of line</span>›</code></dt>
<dd><p>A comment. Ignore any characters from the ‘<samp class="samp">#</samp>’ character up to the
next newline character.
</p>
<p>This command is the only possibility for commenting in the intermediate
output. Each comment can be preceded by arbitrary syntactical space;
every command can be terminated by a comment.
</p></dd>
</dl>
<hr>
</div>
<div class="subsubsection-level-extent" id="Simple-Commands">
<div class="nav-panel">
<p>
Next: <a href="#Graphics-Commands" accesskey="n" rel="next">Graphics Commands</a>, Previous: <a href="#Comment-Command" accesskey="p" rel="prev">Comment Command</a>, Up: <a href="#Command-Reference" accesskey="u" rel="up">Command Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsubsection" id="Simple-Commands-1">6.1.2.2 Simple Commands</h4>
<p>The commands in this subsection have a command code consisting of a
single character, taking a fixed number of arguments. Most of them are
commands for positioning and text writing. These commands are tolerant
of whitespace. Optionally, syntactical space can be inserted before,
after, and between the command letter and its arguments. All of these
commands are stackable; i.e., they can be preceded by other simple
commands or followed by arbitrary other commands on the same line. A
separating syntactical space is necessary only when two integer
arguments would clash or if the preceding argument ends with a string
argument.
</p>
<dl class="table">
<dt><code class="code">C <var class="var">id</var>‹<span class="r">whitespace</span>›</code></dt>
<dd><p>Typeset the glyph of the special character <var class="var">id</var>. Trailing
syntactical space is necessary to allow special character names of
arbitrary length. The drawing position is not advanced.
</p>
</dd>
<dt><code class="code">c <var class="var">g</var></code></dt>
<dd><p>Typeset the glyph of the ordinary character <var class="var">c</var>. The drawing
position is not advanced.
</p>
</dd>
<dt><code class="code">f <var class="var">n</var></code></dt>
<dd><p>Select the font mounted at position <var class="var">n</var>. <var class="var">n</var> cannot
be negative.
</p>
</dd>
<dt><code class="code">H <var class="var">n</var></code></dt>
<dd><p>Horizontally move the drawing position to <var class="var">n</var> basic units from
the left edge of the page. <var class="var">n</var> cannot be negative.
</p>
</dd>
<dt><code class="code">h <var class="var">n</var></code></dt>
<dd><p>Move the drawing position right <var class="var">n</var> basic units. <abbr class="acronym">AT&T</abbr>
<code class="code">troff</code> allowed negative <var class="var">n</var>; GNU <code class="code">troff</code> does not produce
such values, but <code class="code">groff</code>’s output driver library handles them.
</p>
</dd>
<dt><code class="code">m <var class="var">color-scheme</var> <span class="r">[</span><var class="var">component</var> …<span class="r">]</span></code></dt>
<dd><p>Select the stroke color using the <var class="var">component</var>s in the color space
<var class="var">scheme</var>. Each <var class="var">component</var> is an integer between 0 and 65535.
The quantity of components and their meanings vary with each
<var class="var">scheme</var>. This command is a <code class="code">groff</code> extension.
</p>
<dl class="table">
<dt><code class="code">mc <var class="var">cyan</var> <var class="var">magenta</var> <var class="var">yellow</var></code></dt>
<dd><p>Use the CMY color scheme with components cyan, magenta, and yellow.
</p>
</dd>
<dt><code class="code">md</code></dt>
<dd><p>Use the default color (no components; black in most cases).
</p>
</dd>
<dt><code class="code">mg <var class="var">gray</var></code></dt>
<dd><p>Use a grayscale color scheme with a component ranging between 0 (black)
and 65535 (white).
</p>
</dd>
<dt><code class="code">mk <var class="var">cyan</var> <var class="var">magenta</var> <var class="var">yellow</var> <var class="var">black</var></code></dt>
<dd><p>Use the CMYK color scheme with components cyan, magenta, yellow, and
black.
</p>
</dd>
<dt><code class="code">mr <var class="var">red</var> <var class="var">green</var> <var class="var">blue</var></code></dt>
<dd><p>Use the RGB color scheme with components red, green, and blue.
</p></dd>
</dl>
</dd>
<dt><code class="code">N <var class="var">n</var></code></dt>
<dd><p>Typeset the glyph with index <var class="var">n</var> in the current font.
<var class="var">n</var> is normally a non-negative integer. The drawing position
is not advanced. The <code class="code">html</code> and <code class="code">xhtml</code> devices use this
command with negative <var class="var">n</var> to produce unbreakable space; the
absolute value of <var class="var">n</var> is taken and interpreted in basic units.
</p>
</dd>
<dt><code class="code">n <var class="var">b</var> <var class="var">a</var></code></dt>
<dd><p>Indicate a break. No action is performed; the command is present to
make the output more easily parsed. The integers <var class="var">b</var>
and <var class="var">a</var> describe the vertical space amounts before and after
the break, respectively. GNU <code class="code">troff</code> issues this command but
<code class="code">groff</code>’s output driver library ignores it. See <code class="code">v</code> and
<code class="code">V</code> below.
</p>
</dd>
<dt><code class="code">p <var class="var">n</var></code></dt>
<dd><p>Begin a new page, setting its number to <var class="var">n</var>. Each page is
independent, even from those using the same number. The vertical
drawing position is set to 0. All positioning, writing, and
drawing commands are interpreted in the context of a page, so a
<code class="code">p</code> command must precede them.
</p>
</dd>
<dt><code class="code">s <var class="var">n</var></code></dt>
<dd><p>Set type size to <var class="var">n</var> scaled points (unit <code class="code">z</code> in GNU
<code class="code">troff</code>.
<abbr class="acronym">AT&T</abbr> <code class="code">troff</code> used unscaled points <code class="code">p</code> instead;
see <a class="ref" href="#Output-Language-Compatibility">Output Language Compatibility</a>.
</p>
</dd>
<dt><code class="code">t <var class="var">xyz</var>‹<span class="r">whitespace</span>›</code></dt>
<dt><code class="code">t <var class="var">xyz</var> <var class="var">dummy-arg</var>‹<span class="r">whitespace</span>›</code></dt>
<dd><p>Typeset a word <var class="var">xyz</var>; that is, set a sequence of ordinary glyphs
named <var class="var">x</var>, <var class="var">y</var>, <var class="var">z</var>, …, terminated by a space
character or a line break; an optional second integer argument is
ignored (this allows the formatter to generate an even number of
arguments). Each glyph is set at the current drawing position, and the position is
then advanced horizontally by the glyph’s width. A glyph’s width is
read from its metrics in the font description file, scaled to the
current type size, and rounded to a multiple of the horizontal motion
quantum. Use the <code class="code">C</code> command to emplace glyphs of special
characters. The <code class="code">t</code> command is a <code class="code">groff</code> extension and
is output only for devices whose <samp class="file">DESC</samp> file contains the
<code class="code">tcommand</code> directive; see <a class="ref" href="#DESC-File-Format"><samp class="file">DESC</samp> File Format</a>.
</p>
</dd>
<dt><code class="code">u <var class="var">n</var> <var class="var">xyz</var>‹<span class="r">whitespace</span>›</code></dt>
<dd><p>Typeset word <var class="var">xyz</var> with track kerning. As <code class="code">t</code>, but after
placing each glyph, the drawing position is further advanced
horizontally by <var class="var">n</var> basic units (<code class="code">u</code>). The
<code class="code">u</code> command is a <code class="code">groff</code> extension and is output only for
devices whose <samp class="file">DESC</samp> file contains the <code class="code">tcommand</code> directive;
see <a class="ref" href="#DESC-File-Format"><samp class="file">DESC</samp> File Format</a>.
</p>
</dd>
<dt><code class="code">V <var class="var">n</var></code></dt>
<dd><p>Vertically move the drawing position to <var class="var">n</var> basic units from
the top edge of the page. <var class="var">n</var> cannot be negative.
</p>
</dd>
<dt><code class="code">v <var class="var">n</var></code></dt>
<dd><p>Move the drawing position down <var class="var">n</var> basic units. <abbr class="acronym">AT&T</abbr>
<code class="code">troff</code> allowed negative <var class="var">n</var>; GNU <code class="code">troff</code> does not produce
such values, but <code class="code">groff</code>’s output driver library handles them.
</p>
</dd>
<dt><code class="code">w</code></dt>
<dd><p>Indicate an inter-word space. No action is performed; the command is
present to make the output more easily parsed. Only adjustable,
breakable inter-word spaces are thus described; those resulting from
<code class="code">\~</code> or horizontal motion escape sequences are not. GNU
<code class="code">troff</code> issues this command but <code class="code">groff</code>’s output driver
library ignores it. See <code class="code">h</code> and <code class="code">H</code> above.
</p></dd>
</dl>
<hr>
</div>
<div class="subsubsection-level-extent" id="Graphics-Commands">
<div class="nav-panel">
<p>
Next: <a href="#Device-Control-Commands" accesskey="n" rel="next">Device Control Commands</a>, Previous: <a href="#Simple-Commands" accesskey="p" rel="prev">Simple Commands</a>, Up: <a href="#Command-Reference" accesskey="u" rel="up">Command Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsubsection" id="Graphics-Commands-1">6.1.2.3 Graphics Commands</h4>
<p>Each graphics or drawing command in the intermediate output starts with
the letter ‘<samp class="samp">D</samp>’, followed by one or two characters that specify a
subcommand; this is followed by a fixed or variable number of integer
arguments that are separated by a single space character. A ‘<samp class="samp">D</samp>’
command may not be followed by another command on the same line (apart
from a comment), so each ‘<samp class="samp">D</samp>’ command is terminated by a syntactical
line break.
</p>
<p><code class="code">gtroff</code> output follows the classical spacing rules (no space
between command and subcommand, all arguments are preceded by a single
space character), but the parser allows optional space between the
command letters and makes the space before the first argument optional.
As usual, each space can be any sequence of tab and space characters.
</p>
<p>Some graphics commands can take a variable number of arguments. In this
case, they are integers representing a size measured in basic units
‘<samp class="samp">u</samp>’. The arguments called <var class="var">h1</var>, <var class="var">h2</var>, …, <var class="var">hn</var>
stand for horizontal distances where positive means right, negative
left. The arguments called <var class="var">v1</var>, <var class="var">v2</var>, …, <var class="var">vn</var> stand
for vertical distances where positive means down, negative up. All
these distances are offsets relative to the current location.
</p>
<p>Each graphics command directly corresponds to a similar <code class="code">gtroff</code>
<code class="code">\D</code> escape sequence. See <a class="xref" href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a>.
</p>
<p>Unknown ‘<samp class="samp">D</samp>’ commands are assumed to be device-specific. Its
arguments are parsed as strings; the whole information is then sent to
the postprocessor.
</p>
<p>In the following command reference, the syntax element ‹<span class="r">line
break</span>› means a syntactical line break as defined above.
</p>
<dl class="table">
<dt><code class="code">D~ <var class="var">h1</var> <var class="var">v1</var> <var class="var">h2</var> <var class="var">v2</var> … <var class="var">hn</var> <var class="var">vn</var>‹<span class="r">line break</span>›</code></dt>
<dd><p>Draw B-spline from current position to offset (<var class="var">h1</var>,<var class="var">v1</var>), then
to offset (<var class="var">h2</var>,<var class="var">v2</var>), if given, etc., up to
(<var class="var">hn</var>,<var class="var">vn</var>). This command takes a variable number of argument
pairs; the current position is moved to the terminal point of the drawn
curve.
</p>
</dd>
<dt><code class="code">Da <var class="var">h1</var> <var class="var">v1</var> <var class="var">h2</var> <var class="var">v2</var>‹<span class="r">line break</span>›</code></dt>
<dd><p>Draw arc from current position to
(<var class="var">h1</var>,<var class="var">v1</var>)<em class="math">+</em>(<var class="var">h2</var>,<var class="var">v2</var>) with center at
(<var class="var">h1</var>,<var class="var">v1</var>); then move the current position to the final point
of the arc.
</p>
</dd>
<dt><code class="code">DC <var class="var">d</var>‹<span class="r">line break</span>›</code></dt>
<dt><code class="code">DC <var class="var">d</var> <var class="var">dummy-arg</var>‹<span class="r">line break</span>›</code></dt>
<dd><p>Draw a solid circle using the current fill color with
diameter <var class="var">d</var> (integer in basic units ‘<samp class="samp">u</samp>’) with leftmost
point at the current position; then move the current position to the
rightmost point of the circle. An optional second integer argument is
ignored (this allows the formatter to generate an even number of
arguments). This command is a <code class="code">gtroff</code> extension.
</p>
</dd>
<dt><code class="code">Dc <var class="var">d</var>‹<span class="r">line break</span>›</code></dt>
<dd><p>Draw circle line with diameter <var class="var">d</var> (integer in basic units
‘<samp class="samp">u</samp>’) with leftmost point at the current position; then move the
current position to the rightmost point of the circle.
</p>
</dd>
<dt><code class="code">DE <var class="var">h</var> <var class="var">v</var>‹<span class="r">line break</span>›</code></dt>
<dd><p>Draw a solid ellipse in the current fill color with a horizontal
diameter of <var class="var">h</var> and a vertical diameter of <var class="var">v</var> (both
integers in basic units ‘<samp class="samp">u</samp>’) with the leftmost point at the current
position; then move to the rightmost point of the ellipse. This command
is a <code class="code">gtroff</code> extension.
</p>
</dd>
<dt><code class="code">De <var class="var">h</var> <var class="var">v</var>‹<span class="r">line break</span>›</code></dt>
<dd><p>Draw an outlined ellipse with a horizontal diameter of <var class="var">h</var> and
a vertical diameter of <var class="var">v</var> (both integers in basic units
‘<samp class="samp">u</samp>’) with the leftmost point at current position; then move to the
rightmost point of the ellipse.
</p>
</dd>
<dt><code class="code">DF <var class="var">color-scheme</var> <span class="r">[</span><var class="var">component</var> …<span class="r">]</span>‹<span class="r">line break</span>›</code></dt>
<dd><p>Set fill color for solid drawing objects using different color schemes;
the analogous command for setting the color of text, line graphics, and
the outline of graphic objects is ‘<samp class="samp">m</samp>’. The color components are
specified as integer arguments between 0 and 65535. The number of color
components and their meaning vary for the different color schemes.
These commands are generated by <code class="code">gtroff</code>’s escape sequences
‘<samp class="samp">\D'F …'</samp>’ and <code class="code">\M</code> (with no other corresponding
graphics commands). No position changing. This command is a
<code class="code">gtroff</code> extension.
</p>
<dl class="table">
<dt><code class="code">DFc <var class="var">cyan</var> <var class="var">magenta</var> <var class="var">yellow</var>‹<span class="r">line break</span>›</code></dt>
<dd><p>Set fill color for solid drawing objects using the CMY color scheme,
having the 3 color components <var class="var">cyan</var>, <var class="var">magenta</var>, and
<var class="var">yellow</var>.
</p>
</dd>
<dt><code class="code">DFd‹<span class="r">line break</span>›</code></dt>
<dd><p>Set fill color for solid drawing objects to the default fill color value
(black in most cases). No component arguments.
</p>
</dd>
<dt><code class="code">DFg <var class="var">gray</var>‹<span class="r">line break</span>›</code></dt>
<dd><p>Set fill color for solid drawing objects to the shade of gray given by
the argument, an integer between 0 (black) and 65535 (white).
</p>
</dd>
<dt><code class="code">DFk <var class="var">cyan</var> <var class="var">magenta</var> <var class="var">yellow</var> <var class="var">black</var>‹<span class="r">line break</span>›</code></dt>
<dd><p>Set fill color for solid drawing objects using the CMYK color scheme,
having the 4 color components <var class="var">cyan</var>, <var class="var">magenta</var>,
<var class="var">yellow</var>, and <var class="var">black</var>.
</p>
</dd>
<dt><code class="code">DFr <var class="var">red</var> <var class="var">green</var> <var class="var">blue</var>‹<span class="r">line break</span>›</code></dt>
<dd><p>Set fill color for solid drawing objects using the RGB color scheme,
having the 3 color components <var class="var">red</var>, <var class="var">green</var>, and
<var class="var">blue</var>.
</p></dd>
</dl>
</dd>
<dt><code class="code">Df <var class="var">n</var>‹<span class="r">line break</span>›</code></dt>
<dd><p>The argument <var class="var">n</var> must be an integer in the range <em class="math">-32767</em>
to 32767.
</p>
<dl class="table">
<dt><em class="math">0 ≤ <var class="var">n</var> ≤ 1000</em></dt>
<dd><p>Set the color for filling solid drawing objects to a shade of gray,
where 0 corresponds to solid white, 1000 (the default) to solid black,
and values in between to intermediate shades of gray; this is obsoleted
by command ‘<samp class="samp">DFg</samp>’.
</p>
</dd>
<dt><em class="math"><var class="var">n</var> < 0</em> or <em class="math"><var class="var">n</var> > 1000</em></dt>
<dd><p>Set the filling color to the color that is currently being used for the
text and the outline, see command ‘<samp class="samp">m</samp>’. For example, the command
sequence
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">mg 0 0 65535
Df -1
</pre></div></div>
<p>sets all colors to blue.
</p></dd>
</dl>
<p>No position changing. This command is a <code class="code">gtroff</code> extension.
</p>
</dd>
<dt><code class="code">Dl <var class="var">h</var> <var class="var">v</var>‹<span class="r">line break</span>›</code></dt>
<dd><p>Draw line from current position to offset (<var class="var">h</var>,<var class="var">v</var>) (integers in
basic units ‘<samp class="samp">u</samp>’); then set current position to the end of the drawn
line.
</p>
</dd>
<dt><code class="code">Dp <var class="var">h1</var> <var class="var">v1</var> <var class="var">h2</var> <var class="var">v2</var> … <var class="var">hn</var> <var class="var">vn</var>‹<span class="r">line break</span>›</code></dt>
<dd><p>Draw a polygon line from current position to offset (<var class="var">h1</var>,<var class="var">v1</var>),
from there to offset (<var class="var">h2</var>,<var class="var">v2</var>), etc., up to offset
(<var class="var">hn</var>,<var class="var">vn</var>), and from there back to the starting position. For
historical reasons, the position is changed by adding the sum of all
arguments with odd index to the actual horizontal position and the even
ones to the vertical position. Although this doesn’t make sense it is
kept for compatibility.
This command is a <code class="code">gtroff</code> extension.
</p>
</dd>
<dt><code class="code">DP <var class="var">h1</var> <var class="var">v1</var> <var class="var">h2</var> <var class="var">v2</var> … <var class="var">hn</var> <var class="var">vn</var>‹<span class="r">line break</span>›</code></dt>
<dd><p>Draw a solid polygon in the current fill color rather than an outlined
polygon, using the same arguments and positioning as the corresponding
‘<samp class="samp">Dp</samp>’ command.
This command is a <code class="code">gtroff</code> extension.
</p>
</dd>
<dt><code class="code">Dt <var class="var">n</var>‹<span class="r">line break</span>›</code></dt>
<dd><p>Set the current line thickness to <var class="var">n</var> (an integer in basic
units ‘<samp class="samp">u</samp>’) if <em class="math"><var class="var">n</var>>0</em>; if <em class="math"><var class="var">n</var>=0</em> select the
smallest available line thickness; if <em class="math"><var class="var">n</var><0</em> set the line
thickness proportional to the type size (this is the default before the
first ‘<samp class="samp">Dt</samp>’ command was specified). For historical reasons, the
horizontal position is changed by adding the argument to the actual
horizontal position, while the vertical position is not changed.
Although this doesn’t make sense it is kept for compatibility.
This command is a <code class="code">gtroff</code> extension.
</p></dd>
</dl>
<hr>
</div>
<div class="subsubsection-level-extent" id="Device-Control-Commands">
<div class="nav-panel">
<p>
Next: <a href="#Obsolete-Command" accesskey="n" rel="next">Obsolete Command</a>, Previous: <a href="#Graphics-Commands" accesskey="p" rel="prev">Graphics Commands</a>, Up: <a href="#Command-Reference" accesskey="u" rel="up">Command Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsubsection" id="Device-Control-Commands-1">6.1.2.4 Device Control Commands</h4>
<p>Each device control command starts with the letter ‘<samp class="samp">x</samp>’, followed by
a space character (optional or arbitrary space or tab in <code class="code">gtroff</code>)
and a subcommand letter or word; each argument (if any) must be preceded
by a syntactical space. All ‘<samp class="samp">x</samp>’ commands are terminated by a
syntactical line break; no device control command can be followed by
another command on the same line (except a comment).
</p>
<p>The subcommand is basically a single letter, but to increase
readability, it can be written as a word, i.e., an arbitrary sequence of
characters terminated by the next tab, space, or newline character. All
characters of the subcommand word but the first are simply ignored. For
example, <code class="code">gtroff</code> outputs the initialization command ‘<samp class="samp">x i</samp>’<!-- /@w -->
as ‘<samp class="samp">x init</samp>’<!-- /@w --> and the resolution command ‘<samp class="samp">x r</samp>’<!-- /@w --> as
‘<samp class="samp">x res</samp>’<!-- /@w -->.
</p>
<p>In the following, the syntax element ‹<span class="r">line break</span>› means a
syntactical line break (see <a class="pxref" href="#Separation">Separation</a>).
</p>
<dl class="table">
<dt><code class="code">xF <var class="var">name</var>‹<span class="r">line break</span>›</code></dt>
<dd><p>The ‘<samp class="samp">F</samp>’ stands for <var class="var">Filename</var>.
</p>
<p>Use <var class="var">name</var> as the intended name for the current file in error
reports. This is useful for remembering the original file name when
<code class="code">gtroff</code> uses an internal piping mechanism. The input file is not
changed by this command. This command is a <code class="code">gtroff</code> extension.
</p>
</dd>
<dt><code class="code">xf <var class="var">n</var> <var class="var">s</var>‹<span class="r">line break</span>›</code></dt>
<dd><p>The ‘<samp class="samp">f</samp>’ stands for <var class="var">font</var>.
</p>
<p>Mount font position <var class="var">n</var> (a non-negative integer) with font
named <var class="var">s</var> (a text word). See <a class="xref" href="#Font-Positions">Font Positions</a>.
</p>
</dd>
<dt><code class="code">xH <var class="var">n</var>‹<span class="r">line break</span>›</code></dt>
<dd><p>The ‘<samp class="samp">H</samp>’ stands for <var class="var">Height</var>.
</p>
<p>Set glyph height to <var class="var">n</var> (a positive integer in scaled points
‘<samp class="samp">z</samp>’). <abbr class="acronym">AT&T</abbr> <code class="code">troff</code> uses the unit points (‘<samp class="samp">p</samp>’)
instead. See <a class="xref" href="#Output-Language-Compatibility">Output Language Compatibility</a>.
</p>
</dd>
<dt><code class="code">xi‹<span class="r">line break</span>›</code></dt>
<dd><p>The ‘<samp class="samp">i</samp>’ stands for <var class="var">init</var>.
</p>
<p>Initialize device. This is the third command of the prologue.
</p>
</dd>
<dt><code class="code">xp‹<span class="r">line break</span>›</code></dt>
<dd><p>The ‘<samp class="samp">p</samp>’ stands for <var class="var">pause</var>.
</p>
<p>Parsed but ignored. The <abbr class="acronym">AT&T</abbr> <code class="code">troff</code> manual documents
this command as
</p>
<div class="display">
<pre class="display-preformatted">pause device, can be restarted
</pre></div>
<p>but GNU <code class="code">troff</code> output drivers do nothing with this command.
</p>
</dd>
<dt><code class="code">xr <var class="var">n</var> <var class="var">h</var> <var class="var">v</var>‹<span class="r">line break</span>›</code></dt>
<dd><p>The ‘<samp class="samp">r</samp>’ stands for <var class="var">resolution</var>.
</p>
<p>Resolution is <var class="var">n</var>, while <var class="var">h</var> is the minimal horizontal
motion, and <var class="var">v</var> the minimal vertical motion possible with this
device; all arguments are positive integers in basic units ‘<samp class="samp">u</samp>’ per
inch. This is the second command of the prologue.
</p>
</dd>
<dt><code class="code">xS <var class="var">n</var>‹<span class="r">line break</span>›</code></dt>
<dd><p>The ‘<samp class="samp">S</samp>’ stands for <var class="var">Slant</var>.
</p>
<p>Set slant to <var class="var">n</var> (an integer in basic units ‘<samp class="samp">u</samp>’).
</p>
</dd>
<dt><code class="code">xs‹<span class="r">line break</span>›</code></dt>
<dd><p>The ‘<samp class="samp">s</samp>’ stands for <var class="var">stop</var>.
</p>
<p>Terminates the processing of the current file; issued as the last
command of any intermediate <code class="code">troff</code> output.
</p>
</dd>
<dt><code class="code">xt‹<span class="r">line break</span>›</code></dt>
<dd><p>The ‘<samp class="samp">t</samp>’ stands for <var class="var">trailer</var>.
</p>
<p>Generate trailer information, if any. In GNU <code class="code">troff</code>, this is
ignored.
</p>
</dd>
<dt><code class="code">xT <var class="var">xxx</var>‹<span class="r">line break</span>›</code></dt>
<dd><p>The ‘<samp class="samp">T</samp>’ stands for <var class="var">Typesetter</var>.
</p>
<p>Set the name of the output driver to <var class="var">xxx</var>, a sequence of
non-whitespace characters terminated by whitespace. The possible names
correspond to those of <code class="code">groff</code>’s <samp class="option">-T</samp> option. This is the
first command of the prologue.
</p>
</dd>
<dt><code class="code">xu <var class="var">n</var>‹<span class="r">line break</span>›</code></dt>
<dd><p>The ‘<samp class="samp">u</samp>’ stands for <var class="var">underline</var>.
</p>
<p>Configure underlining of spaces. If <var class="var">n</var> is 1, start
underlining of spaces; if <var class="var">n</var> is 0, stop underlining of spaces.
This is needed for the <code class="code">cu</code> request in <code class="code">nroff</code> mode and is
ignored otherwise. This command is a <code class="code">gtroff</code> extension.
</p>
</dd>
<dt><code class="code">xX <var class="var">anything</var>‹<span class="r">line break</span>›</code></dt>
<dd><p>The ‘<samp class="samp">x</samp>’ stands for <var class="var">X-escape</var>.
</p>
<p>Send string <var class="var">anything</var> uninterpreted to the device. If the line
following this command starts with a ‘<samp class="samp">+</samp>’ character this line is
interpreted as a continuation line in the following sense. The ‘<samp class="samp">+</samp>’
is ignored, but a newline character is sent instead to the device, the
rest of the line is sent uninterpreted. The same applies to all
following lines until the first character of a line is not a ‘<samp class="samp">+</samp>’
character. This command is generated by the <code class="code">gtroff</code> escape
sequence <code class="code">\X</code>. The line-continuing feature is a <code class="code">gtroff</code>
extension.
</p></dd>
</dl>
<hr>
</div>
<div class="subsubsection-level-extent" id="Obsolete-Command">
<div class="nav-panel">
<p>
Previous: <a href="#Device-Control-Commands" accesskey="p" rel="prev">Device Control Commands</a>, Up: <a href="#Command-Reference" accesskey="u" rel="up">Command Reference</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsubsection" id="Obsolete-Command-1">6.1.2.5 Obsolete Command</h4>
<p>In <abbr class="acronym">AT&T</abbr> <code class="code">troff</code> output, the writing of a single glyph is
mostly done by a very strange command that combines a horizontal move
and a single character giving the glyph name. It doesn’t have a command
code, but is represented by a 3-character argument consisting of exactly
2 digits and a character.
</p>
<dl class="table">
<dt><var class="var">dd</var><var class="var">g</var></dt>
<dd><p>Move right <var class="var">dd</var> (exactly two decimal digits) basic units ‘<samp class="samp">u</samp>’,
then print glyph <var class="var">g</var> (represented as a single character).
</p>
<p>In GNU <code class="code">troff</code>, arbitrary syntactical space around and within this
command is allowed. Only when a preceding command on the same line ends
with an argument of variable length is a separating space obligatory.
In <abbr class="acronym">AT&T</abbr> <code class="code">troff</code>, large clusters of these and other
commands are used, mostly without spaces; this made such output almost
unreadable.
</p></dd>
</dl>
<p>For modern high-resolution devices, this command does not make sense
because the width of the glyphs can become much larger than two decimal
digits. In <code class="code">gtroff</code>, this is only used for the devices <code class="code">X75</code>,
<code class="code">X75-12</code>, <code class="code">X100</code>, and <code class="code">X100-12</code>. For other devices, the
commands ‘<samp class="samp">t</samp>’ and ‘<samp class="samp">u</samp>’ provide a better functionality.
</p>
<hr>
</div>
</div>
<div class="subsection-level-extent" id="Intermediate-Output-Examples">
<div class="nav-panel">
<p>
Next: <a href="#Output-Language-Compatibility" accesskey="n" rel="next">Output Language Compatibility</a>, Previous: <a href="#Command-Reference" accesskey="p" rel="prev">Command Reference</a>, Up: <a href="#gtroff-Output" accesskey="u" rel="up"><code class="code">gtroff</code> Output</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Intermediate-Output-Examples-1">6.1.3 Intermediate Output Examples</h4>
<p>This section presents the intermediate output generated from the same
input for three different devices. The input is the sentence ‘<samp class="samp">hell
world</samp>’ fed into <code class="code">gtroff</code> on the command line.
</p>
<dl class="table">
<dt>High-resolution device <code class="code">ps</code></dt>
<dd>
<p>This is the standard output of <code class="code">gtroff</code> if no <samp class="option">-T</samp> option is
given.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">shell> echo "hell world" | groff -Z -T ps
x T ps
x res 72000 1 1
x init
</pre></div><pre class="example-preformatted">p1
x font 5 TR
f5
s10000
V12000
H72000
thell
wh2500
tw
H96620
torld
n12000 0
</pre><div class="group"><pre class="example-preformatted">x trailer
V792000
x stop
</pre></div></div>
<p>This output can be fed into <code class="code">grops</code> to get its representation as a
PostScript file.
</p>
</dd>
<dt>Low-resolution device <code class="code">latin1</code></dt>
<dd>
<p>This is similar to the high-resolution device except that the
positioning is done at a minor scale. Some comments (lines starting
with ‘<samp class="samp">#</samp>’) were added for clarification; they were not generated by
the formatter.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">shell> echo "hell world" | groff -Z -T latin1
# prologue
x T latin1
x res 240 24 40
x init
</pre></div><pre class="example-preformatted"># begin a new page
p1
# font setup
x font 1 R
f1
s10
# initial positioning on the page
V40
H0
# write text 'hell'
thell
# inform about space, and issue a horizontal jump
wh24
# write text 'world'
tworld
# announce line break, but do nothing because...
n40 0
</pre><div class="group"><pre class="example-preformatted"># ...the end of the document has been reached
x trailer
V2640
x stop
</pre></div></div>
<p>This output can be fed into <code class="code">grotty</code> to get a formatted text
document.
</p>
</dd>
<dt><abbr class="acronym">AT&T</abbr> <code class="code">troff</code> output</dt>
<dd><p>Since a computer monitor has a much lower resolution than modern
printers, the intermediate output for X11 devices can use the
jump-and-write command with its 2-digit displacements.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">shell> echo "hell world" | groff -Z -T X100
x T X100
x res 100 1 1
x init
</pre></div><pre class="example-preformatted">p1
x font 5 TR
f5
s10
V16
H100
# write text with jump-and-write commands
ch07e07l03lw06w11o07r05l03dh7
n16 0
</pre><div class="group"><pre class="example-preformatted">x trailer
V1100
x stop
</pre></div></div>
<p>This output can be fed into <code class="code">xditview</code> or <code class="code">gxditview</code> for
displaying in X.
</p>
<p>Due to the obsolete jump-and-write command, the text clusters in the
<abbr class="acronym">AT&T</abbr> <code class="code">troff</code> output are almost unreadable.
</p></dd>
</dl>
<hr>
</div>
<div class="subsection-level-extent" id="Output-Language-Compatibility">
<div class="nav-panel">
<p>
Previous: <a href="#Intermediate-Output-Examples" accesskey="p" rel="prev">Intermediate Output Examples</a>, Up: <a href="#gtroff-Output" accesskey="u" rel="up"><code class="code">gtroff</code> Output</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Output-Language-Compatibility-1">6.1.4 Output Language Compatibility</h4>
<p>The intermediate output language of <abbr class="acronym">AT&T</abbr> <code class="code">troff</code> was
first documented in <cite class="cite">A Typesetter-independent TROFF</cite>, by Brian
Kernighan, and by 1992 the <abbr class="acronym">AT&T</abbr> <code class="code">troff</code> manual was
updated to incorprate a description of it.
</p>
<p>The GNU <code class="code">troff</code> intermediate output format is compatible with this
specification except for the following features.
</p>
<ul class="itemize mark-bullet">
<li>The classical quasi-device independence is not yet implemented.
</li><li>The old hardware was very different from what we use today. So the
<code class="code">groff</code> devices are also fundamentally different from the ones
in <abbr class="acronym">AT&T</abbr> <code class="code">troff</code>. For example, the <abbr class="acronym">AT&T</abbr>
PostScript device is called <code class="code">post</code> and has a resolution of only 720
units per inch, suitable for printers 20 years ago, while <code class="code">groff</code>’s
<code class="code">ps</code> device has a resolution of 72000 units per inch. Maybe, by
implementing some rescaling mechanism similar to the classical
quasi-device independence, <code class="code">groff</code> could emulate <abbr class="acronym">AT&T</abbr>’s
<code class="code">post</code> device.
</li><li>The B-spline command ‘<samp class="samp">D~</samp>’ is correctly handled by the intermediate
output parser, but the drawing routines aren’t implemented in some of
the postprocessor programs.
</li><li>The argument of the commands ‘<samp class="samp">s</samp>’ and ‘<samp class="samp">x H</samp>’<!-- /@w --> has the
implicit unit scaled point ‘<samp class="samp">z</samp>’ in <code class="code">gtroff</code>, while
<abbr class="acronym">AT&T</abbr> <code class="code">troff</code> has point (‘<samp class="samp">p</samp>’). This isn’t an
incompatibility but a compatible extension, for both units coincide for
all devices without a <code class="code">sizescale</code> parameter in the <samp class="file">DESC</samp>
file, including all postprocessors from <abbr class="acronym">AT&T</abbr> and
<code class="code">groff</code>’s text devices. The few <code class="code">groff</code> devices with a
<code class="code">sizescale</code> parameter either do not exist for <abbr class="acronym">AT&T</abbr>
<code class="code">troff</code>, have a different name, or seem to have a different
resolution. So conflicts are very unlikely.
</li><li>The position changing after the commands ‘<samp class="samp">Dp</samp>’, ‘<samp class="samp">DP</samp>’, and
‘<samp class="samp">Dt</samp>’ is illogical, but as old versions of <code class="code">gtroff</code> used this
feature it is kept for compatibility reasons.
</li></ul>
<hr>
</div>
</div>
<div class="section-level-extent" id="Device-and-Font-Description-Files">
<div class="nav-panel">
<p>
Previous: <a href="#gtroff-Output" accesskey="p" rel="prev"><code class="code">gtroff</code> Output</a>, Up: <a href="#File-Formats" accesskey="u" rel="up">File Formats</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h3 class="section" id="Device-and-Font-Description-Files-1">6.2 Device and Font Description Files</h3>
<a class="index-entry-id" id="index-font-files"></a>
<a class="index-entry-id" id="index-files_002c-font"></a>
<p>The <code class="code">groff</code> font and output device description formats are slight
extensions of those used by <abbr class="acronym">AT&T</abbr> device-independent
<code class="code">troff</code>. In distinction to the <abbr class="acronym">AT&T</abbr> implementation,
<code class="code">groff</code> lacks a binary format; all files are text
files.<a class="footnote" id="DOCF125" href="#FOOT125"><sup>125</sup></a> The device and font description files for a device <var class="var">name</var>
are stored in a <samp class="file">dev<var class="var">name</var></samp> directory. The device description
file is called <samp class="file">DESC</samp>, and, for each font supported by the device,
a font description file is called <samp class="file"><var class="var">f</var></samp>, where
<var class="var">f</var> is usually an abbreviation of a font’s name and/or style.
For example, the <code class="code">ps</code> (PostScript) device has <code class="code">groff</code> font
description files for Times roman (<samp class="file">TR</samp>) and Zapf Chancery Medium
italic (<samp class="file">ZCMI</samp>), among many others, while the <code class="code">utf8</code> device
(for terminal emulators) has only font descriptions for the roman,
italic, bold, and bold-italic styles (<samp class="file">R</samp>, <samp class="file">I</samp>, <samp class="file">B</samp>, and
<samp class="file">BI</samp>, respectively).
</p>
<p>Device and font description files are read both by the formatter, GNU
<code class="code">troff</code>, and by output drivers. The programs delegate these files’
processing to an internal library, <samp class="file">libgroff</samp>, ensuring their
consistent interpretation.
</p>
<ul class="mini-toc">
<li><a href="#DESC-File-Format" accesskey="1"><samp class="file">DESC</samp> File Format</a></li>
<li><a href="#Font-Description-File-Format" accesskey="2">Font Description File Format</a></li>
</ul>
<hr>
<div class="subsection-level-extent" id="DESC-File-Format">
<div class="nav-panel">
<p>
Next: <a href="#Font-Description-File-Format" accesskey="n" rel="next">Font Description File Format</a>, Previous: <a href="#Device-and-Font-Description-Files" accesskey="p" rel="prev">Device and Font Description Files</a>, Up: <a href="#Device-and-Font-Description-Files" accesskey="u" rel="up">Device and Font Description Files</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="DESC-File-Format-1">6.2.1 <samp class="file">DESC</samp> File Format</h4>
<a class="index-entry-id" id="index-DESC-file-format"></a>
<a class="index-entry-id" id="index-font-description-file-format"></a>
<a class="index-entry-id" id="index-format-of-font-description-file"></a>
<p>The <samp class="file">DESC</samp> file contains a series of directives; each begins a
line. Their order is not important, with two exceptions: (1) the
<code class="code">res</code> directive must precede any <code class="code">papersize</code> directive; and
(2) the <code class="code">charset</code> directive must come last (if at all). If a
directive name is repeated, later entries in the file override previous
ones (except that the paper dimensions are computed based on the
<code class="code">res</code> directive last seen when <code class="code">papersize</code> is encountered).
Spaces and/or tabs separate words and are ignored at line boundaries.
<a class="index-entry-id" id="index-comments-in-device-description-files"></a>
<a class="index-entry-id" id="index-device-description-files_002c-comments"></a>
<a class="index-entry-id" id="index-_0023"></a>
Comments start with the ‘<samp class="samp">#</samp>’ character and extend to the end of a
line. Empty lines are ignored.
</p>
<dl class="table">
<dt id='index-family-1'><span><code class="code">family <var class="var">fam</var></code><a class="copiable-link" href='#index-family-1'> ¶</a></span></dt>
<dd><p>The default font family is <var class="var">fam</var>.
</p>
</dd>
<dt id='index-fonts-2'><span><code class="code">fonts <var class="var">n</var> <var class="var">F1</var> <span class="r">…</span> <var class="var">Fn</var></code><a class="copiable-link" href='#index-fonts-2'> ¶</a></span></dt>
<dd><p>Fonts <var class="var">F1</var>, …, <var class="var">Fn</var> are mounted at font positions
<var class="var">m</var>+1, …, <var class="var">m</var>+<var class="var">n</var> where <var class="var">m</var> is the number of
<code class="code">styles</code> (see below). This directive may extend over more than one
line. A font name of <code class="code">0</code> causes no font to be mounted at the
corresponding position.
</p>
</dd>
<dt id='index-hor'><span><code class="code">hor <var class="var">n</var></code><a class="copiable-link" href='#index-hor'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-horizontal-motion-quantum"></a>
<a class="index-entry-id" id="index-motion-quantum_002c-horizontal"></a>
<a class="index-entry-id" id="index-quantum_002c-horizontal-motion"></a>
<a class="index-entry-id" id="index-horizontal-resolution"></a>
<a class="index-entry-id" id="index-resolution_002c-horizontal"></a>
<p>The horizontal motion quantum is <var class="var">n</var> basic units. All
horizontal quantities are rounded to multiples of <var class="var">n</var>.
</p>
</dd>
<dt id='index-image_005fgenerator'><span><code class="code">image_generator <var class="var">program</var></code><a class="copiable-link" href='#index-image_005fgenerator'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-PostScript_002c-PNG-image-generation"></a>
<a class="index-entry-id" id="index-PNG-image-generation-from-PostScript"></a>
<p>Use <var class="var">program</var> to generate PNG images from PostScript input. Under
GNU/Linux, this is usually <code class="code">gs</code>, but under other systems (notably
Cygwin) it might be set to another name. The <code class="code">grohtml</code> driver uses
this directive.
</p>
</dd>
<dt id='index-paperlength'><span><code class="code">paperlength <var class="var">n</var></code><a class="copiable-link" href='#index-paperlength'> ¶</a></span></dt>
<dd><p>The vertical dimension of the output medium is <var class="var">n</var> basic units
(deprecated: use <code class="code">papersize</code> instead).
</p>
</dd>
<dt id='index-papersize'><span><code class="code">papersize <var class="var">format-or-dimension-pair-or-file-name</var> <span class="r">…</span></code><a class="copiable-link" href='#index-papersize'> ¶</a></span></dt>
<dd><p>The dimensions of the output medium are as according to the
argument, which is either a standard paper format, a pair of dimensions,
or the name of a plain text file containing either of the foregoing.
</p>
<p>Recognized paper formats are the ISO and DIN formats
<code class="code">A0</code>–<code class="code">A7</code>, <code class="code">B0</code>–<code class="code">B7</code>, <code class="code">C0</code>–<code class="code">C7</code>,
<code class="code">D0</code>–<code class="code">D7</code>; the U.S. paper types <code class="code">letter</code>,
<code class="code">legal</code>, <code class="code">tabloid</code>, <code class="code">ledger</code>, <code class="code">statement</code>, and
<code class="code">executive</code>; and the envelope formats <code class="code">com10</code>, <code class="code">monarch</code>,
and <code class="code">DL</code>. Matching is performed without regard for lettercase.
</p>
<p>Alternatively, the argument can be a custom paper format in the format
<code class="code"><var class="var">length</var>,<var class="var">width</var></code> (with no spaces before or after the
comma). Both <var class="var">length</var> and <var class="var">width</var> must have a unit appended;
valid units are ‘<samp class="samp">i</samp>’ for inches, ‘<samp class="samp">c</samp>’ for centimeters, ‘<samp class="samp">p</samp>’
for points, and ‘<samp class="samp">P</samp>’ for picas. Example: ‘<samp class="samp">12c,235p</samp>’. An
argument that starts with a digit is always treated as a custom paper
format.
</p>
<p>Finally, the argument can be a file name (e.g., <samp class="file">/etc/papersize</samp>);
if the file can be opened, the first line is read and a match attempted
against each of the other forms. No comment syntax is supported.
</p>
<p>More than one argument can be specified;
each is scanned in turn and the first valid paper specification used.
</p>
</dd>
<dt id='index-paperwidth'><span><code class="code">paperwidth <var class="var">n</var></code><a class="copiable-link" href='#index-paperwidth'> ¶</a></span></dt>
<dd><p>The horizontal dimension of the output medium is <var class="var">n</var> basic
units (deprecated: use <code class="code">papersize</code> instead).
</p>
</dd>
<dt id='index-pass_005ffilenames'><span><code class="code">pass_filenames</code><a class="copiable-link" href='#index-pass_005ffilenames'> ¶</a></span></dt>
<dd><p>Direct GNU <code class="code">troff</code> to emit the name of the source file being
processed. This is achieved with the intermediate output command
‘<samp class="samp">x F</samp>’, which <code class="code">grohtml</code> interprets.
</p>
</dd>
<dt id='index-postpro'><span><code class="code">postpro <var class="var">program</var></code><a class="copiable-link" href='#index-postpro'> ¶</a></span></dt>
<dd><p>Use <var class="var">program</var> as the postprocessor.
</p>
</dd>
<dt id='index-prepro'><span><code class="code">prepro <var class="var">program</var></code><a class="copiable-link" href='#index-prepro'> ¶</a></span></dt>
<dd><p>Use <var class="var">program</var> as a preprocessor. The <code class="code">html</code> and <code class="code">xhtml</code>
output devices use this directive.
</p>
</dd>
<dt id='index-print'><span><code class="code">print <var class="var">program</var></code><a class="copiable-link" href='#index-print'> ¶</a></span></dt>
<dd><p>Use <var class="var">program</var> as a spooler program for printing. If omitted, the
<samp class="option">-l</samp> and <samp class="option">-L</samp> options of <code class="code">groff</code> are ignored.
</p>
</dd>
<dt id='index-res'><span><code class="code">res <var class="var">n</var></code><a class="copiable-link" href='#index-res'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-device-resolution-1"></a>
<a class="index-entry-id" id="index-resolution_002c-device-1"></a>
<p>The device resolution is <var class="var">n</var> basic units per inch.
</p>
</dd>
<dt id='index-sizes'><span><code class="code">sizes <var class="var">s1</var> <span class="r">…</span> <var class="var">sn</var> 0</code><a class="copiable-link" href='#index-sizes'> ¶</a></span></dt>
<dd><p>The device has fonts at <var class="var">s1</var>, …, <var class="var">sn</var> scaled points (see
below). The list of sizes must be terminated by <code class="code">0</code>. Each
<var class="var">si</var> can also be a range of sizes <var class="var">m</var>–<var class="var">n</var>. The list can
extend over more than one line.
</p>
</dd>
<dt id='index-sizescale'><span><code class="code">sizescale <var class="var">n</var></code><a class="copiable-link" href='#index-sizescale'> ¶</a></span></dt>
<dd><p>A typographical point is subdivided into <var class="var">n</var> scaled points.
The default is <code class="code">1</code>. See <a class="xref" href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a>.
</p>
</dd>
<dt id='index-styles-2'><span><code class="code">styles <var class="var">S1</var> <span class="r">…</span> <var class="var">Sm</var></code><a class="copiable-link" href='#index-styles-2'> ¶</a></span></dt>
<dd><p>The first <var class="var">m</var> mounting positions are associated with styles
<var class="var">S1</var>, …, <var class="var">Sm</var>.
</p>
</dd>
<dt id='index-tcommand'><span><code class="code">tcommand</code><a class="copiable-link" href='#index-tcommand'> ¶</a></span></dt>
<dd><p>The postprocessor can handle the ‘<samp class="samp">t</samp>’ and ‘<samp class="samp">u</samp>’ intermediate
output commands.
</p>
</dd>
<dt id='index-unicode'><span><code class="code">unicode</code><a class="copiable-link" href='#index-unicode'> ¶</a></span></dt>
<dd><p>The output device supports the complete Unicode repertoire. This
directive is useful only for devices that produce character entities
instead of glyphs.
</p>
<p>If <code class="code">unicode</code> is present, no <code class="code">charset</code> section is required in
the font description files since the Unicode handling built into
<code class="code">groff</code> is used. However, if there are entries in a font
description file’s <code class="code">charset</code> section, they either override the
default mappings for those particular characters or add new mappings
(normally for composite characters).
</p>
<p>The <code class="code">utf8</code>, <code class="code">html</code>, and <code class="code">xhtml</code> output devices use this
directive.
</p>
</dd>
<dt id='index-unitwidth'><span><code class="code">unitwidth <var class="var">n</var></code><a class="copiable-link" href='#index-unitwidth'> ¶</a></span></dt>
<dd><p>Quantities in the font description files are in basic units for fonts
whose type size is <var class="var">n</var> scaled points.
</p>
</dd>
<dt id='index-unscaled_005fcharwidths'><span><code class="code">unscaled_charwidths</code><a class="copiable-link" href='#index-unscaled_005fcharwidths'> ¶</a></span></dt>
<dd><p>Make the font handling module always return unscaled character widths.
The <code class="code">grohtml</code> driver uses this directive.
</p>
</dd>
<dt id='index-use_005fcharnames_005fin_005fspecial-1'><span><code class="code">use_charnames_in_special</code><a class="copiable-link" href='#index-use_005fcharnames_005fin_005fspecial-1'> ¶</a></span></dt>
<dd><p>GNU <code class="code">troff</code> should encode special characters inside device control
commands; see <a class="ref" href="#Postprocessor-Access">Postprocessor Access</a>. The <code class="code">grohtml</code> driver
uses this directive.
</p>
</dd>
<dt id='index-vert'><span><code class="code">vert <var class="var">n</var></code><a class="copiable-link" href='#index-vert'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-vertical-motion-quantum"></a>
<a class="index-entry-id" id="index-motion-quantum_002c-vertical"></a>
<a class="index-entry-id" id="index-quantum_002c-vertical-motion"></a>
<a class="index-entry-id" id="index-vertical-resolution"></a>
<a class="index-entry-id" id="index-resolution_002c-vertical"></a>
<p>The vertical motion quantum is <var class="var">n</var> basic units. All vertical
quantities are rounded to multiples of <var class="var">n</var>.
</p>
</dd>
<dt id='index-charset'><span><code class="code">charset</code><a class="copiable-link" href='#index-charset'> ¶</a></span></dt>
<dd><p>This line and everything following it in the file are ignored. It is
recognized for compatibility with other <code class="code">troff</code> implementations.
In GNU <code class="code">troff</code>, character set repertoire is described on a
per-font basis.
</p></dd>
</dl>
<a class="index-entry-id" id="index-spare1"></a>
<a class="index-entry-id" id="index-spare2"></a>
<a class="index-entry-id" id="index-biggestfont"></a>
<p>GNU <code class="code">troff</code> recognizes but ignores the directives <code class="code">spare1</code>,
<code class="code">spare2</code>, and <code class="code">biggestfont</code>.
</p>
<p>The <code class="code">res</code>, <code class="code">unitwidth</code>, <code class="code">fonts</code>, and <code class="code">sizes</code> lines
are mandatory. Directives not listed above are ignored by GNU
<code class="code">troff</code> but may be used by postprocessors to obtain further
information about the device.
</p>
<hr>
</div>
<div class="subsection-level-extent" id="Font-Description-File-Format">
<div class="nav-panel">
<p>
Previous: <a href="#DESC-File-Format" accesskey="p" rel="prev"><samp class="file">DESC</samp> File Format</a>, Up: <a href="#Device-and-Font-Description-Files" accesskey="u" rel="up">Device and Font Description Files</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="subsection" id="Font-Description-File-Format-1">6.2.2 Font Description File Format</h4>
<a class="index-entry-id" id="index-font-file_002c-format"></a>
<a class="index-entry-id" id="index-font-description-file_002c-format"></a>
<a class="index-entry-id" id="index-format-of-font-files"></a>
<a class="index-entry-id" id="index-format-of-font-description-files"></a>
<p>On typesetting output devices, each font is typically available at
multiple sizes. While paper measurements in the device description file
are in absolute units, measurements applicable to fonts must be
proportional to the type size. <code class="code">groff</code> achieves this using the
precedent set by <abbr class="acronym">AT&T</abbr> device-independent <code class="code">troff</code>: one
font size is chosen as a norm, and all others are scaled linearly
relative to that basis. The “unit width” is the number of basic units
per point when the font is rendered at this nominal size.
</p>
<p>For instance, <code class="code">groff</code>’s <code class="code">lbp</code> device uses a <code class="code">unitwidth</code>
of 800. Its Times roman font ‘<samp class="samp">TR</samp>’ has a <code class="code">spacewidth</code>
of 833; this is also the width of its comma, period, centered
period, and mathematical asterisk, while its ‘<samp class="samp">M</samp>’ is 2,963 basic
units. Thus, an ‘<samp class="samp">M</samp>’ on the <code class="code">lbp</code> device is 2,963 basic units
wide at a notional type size of 800 points.<a class="footnote" id="DOCF126" href="#FOOT126"><sup>126</sup></a>
</p>
<p>A font description file has two sections. The first is a sequence of
directives, and is parsed similarly to the <samp class="file">DESC</samp> file described
above. Except for the directive names that begin the second section,
their ordering is immaterial. Later directives of the same name
override earlier ones, spaces and tabs are handled in the same way,
<a class="index-entry-id" id="index-comments-in-font-description-files"></a>
<a class="index-entry-id" id="index-font-description-files_002c-comments"></a>
<a class="index-entry-id" id="index-_0023-1"></a>
and the same comment syntax is supported. Empty lines are ignored
throughout.
</p>
<dl class="table">
<dt id='index-name'><span><code class="code">name <var class="var">f</var></code><a class="copiable-link" href='#index-name'> ¶</a></span></dt>
<dd><p>The name of the font is <var class="var">f</var>. ‘<samp class="samp">DESC</samp>’ is an invalid font
name. Simple integers are valid, but their use is
discouraged.<a class="footnote" id="DOCF127" href="#FOOT127"><sup>127</sup></a>
</p>
</dd>
<dt id='index-spacewidth'><span><code class="code">spacewidth <var class="var">n</var></code><a class="copiable-link" href='#index-spacewidth'> ¶</a></span></dt>
<dd><p>The width of an unadjusted inter-word space is <var class="var">n</var> basic units.
</p></dd>
</dl>
<p>The directives above must appear in the first section; those below are
optional.
</p>
<dl class="table">
<dt id='index-slant'><span><code class="code">slant <var class="var">n</var></code><a class="copiable-link" href='#index-slant'> ¶</a></span></dt>
<dd><p>The font’s glyphs have a slant of <var class="var">n</var> degrees; a positive
<var class="var">n</var> slants in the direction of text flow.
</p>
</dd>
<dt id='index-ligatures'><span><code class="code">ligatures <var class="var">lig1</var> <span class="r">…</span> <var class="var">lign</var> <span class="r">[</span>0<span class="r">]</span></code><a class="copiable-link" href='#index-ligatures'> ¶</a></span></dt>
<dd><p>Glyphs <var class="var">lig1</var>, …, <var class="var">lign</var> are ligatures; possible ligatures
are ‘<samp class="samp">ff</samp>’, ‘<samp class="samp">fi</samp>’, ‘<samp class="samp">fl</samp>’, ‘<samp class="samp">ffi</samp>’ and ‘<samp class="samp">ffl</samp>’. For
compatibility with other <code class="code">troff</code> implementations, the list of
ligatures may be terminated with a <code class="code">0</code>. The list of ligatures
must not extend over more than one line.
</p>
</dd>
<dt id='index-special-fonts-2'><span><code class="code">special</code><a class="copiable-link" href='#index-special-fonts-2'> ¶</a></span></dt>
<dd><a class="index-entry-id" id="index-special-1"></a>
<p>The font is <em class="dfn">special</em>: when a glyph is requested that is not present
in the current font, it is sought in any mounted fonts that bear this
property.
</p></dd>
</dl>
<p>Other directives in this section are ignored by GNU <code class="code">troff</code>, but
may be used by postprocessors to obtain further information about the
font.
</p>
<p>The second section contains one or two subsections. These can appear in
either order; the first one encountered commences the second section.
Each starts with a directive on a line by itself. A <code class="code">charset</code>
subsection is mandatory unless the associated <samp class="file">DESC</samp> file contains
the <code class="code">unicode</code> directive. Another subsection, <code class="code">kernpairs</code>,
is optional.
</p>
<a class="index-entry-id" id="index-charset-1"></a>
<p>The directive <code class="code">charset</code> starts the character set
subsection.<a class="footnote" id="DOCF128" href="#FOOT128"><sup>128</sup></a> It precedes a series
of glyph descriptions, one per line. Each such glyph description
comprises a set of fields separated by spaces or tabs and organized as
follows.
</p>
<blockquote class="quotation">
<p><var class="var">name</var> <var class="var">metrics</var> <var class="var">type</var> <var class="var">code</var> [<var class="var">entity-name</var>]
[<code class="code">--</code> <var class="var">comment</var>]
</p></blockquote>
<a class="index-entry-id" id="index-8_002dbit-input"></a>
<a class="index-entry-id" id="index-input_002c-8_002dbit"></a>
<a class="index-entry-id" id="index-accessing-unnamed-glyphs-with-_005cN"></a>
<a class="index-entry-id" id="index-unnamed-glyphs_002c-accessing-with-_005cN"></a>
<a class="index-entry-id" id="index-characters_002c-unnamed_002c-accessing-with-_005cN"></a>
<a class="index-entry-id" id="index-glyphs_002c-unnamed_002c-accessing-with-_005cN"></a>
<a class="index-entry-id" id="index-_002d_002d_002d"></a>
<p><var class="var">name</var> identifies the glyph:
if <var class="var">name</var> is a printable character <var class="var">c</var>, it corresponds to
the <code class="code">troff</code> ordinary character <var class="var">c</var>. If <var class="var">name</var> is a
multi-character sequence not beginning with <code class="code">\</code>, it corresponds to
the GNU <code class="code">troff</code> special character escape sequence
‘<samp class="samp">\[<var class="var">name</var>]</samp>’. A name consisting of three minus signs,
‘<samp class="samp">---</samp>’, is special and indicates that the glyph is unnamed: such
glyphs can be accessed only by the <code class="code">\N</code> escape sequence in
<code class="code">troff</code>. A special character named ‘<samp class="samp">---</samp>’ can still be defined
using <code class="code">char</code> and similar requests. The <var class="var">name</var> ‘<samp class="samp">\-</samp>’
defines the minus sign glyph. Finally, <var class="var">name</var> can be the
unbreakable one-sixth and one-twelfth space escape sequences, <code class="code">\|</code>
and <code class="code">\^</code> (“thin” and “hair” spaces, respectively), in which
case only the width metric described below is interpreted; a font can
thus customize the widths of these spaces.
</p>
<p>The form of the <var class="var">metrics</var> field is as follows.
</p>
<div class="display">
<div class="group"><pre class="display-preformatted"><var class="var">width</var>[<code class="code">,</code>[<var class="var">height</var>[<code class="code">,</code>[<var class="var">depth</var>[<code class="code">,</code>[<var class="var">italic-correction</var>
[<code class="code">,</code>[<var class="var">left-italic-correction</var>[<code class="code">,</code>[<var class="var">subscript-correction</var>]]]]]]]]]]
</pre></div></div>
<p>There must not be any spaces, tabs, or newlines between these
<em class="dfn">subfields</em> (which have been split here into two lines only for
better legibility). The subfields are in basic units expressed as
decimal integers. Unspecified subfields default to <code class="code">0</code>.
Since there is no associated binary format, these values are not
required to fit into the C language data type ‘<samp class="samp">char</samp>’ as they are in
<abbr class="acronym">AT&T</abbr> device-independent <code class="code">troff</code>.
</p>
<p>The <var class="var">width</var> subfield gives the width of the glyph. The <var class="var">height</var>
subfield gives the height of the glyph (upward is positive); if a glyph
does not extend above the baseline, it should be given a zero height,
rather than a negative height. The <var class="var">depth</var> subfield gives the depth
of the glyph, that is, the distance below the baseline to which the
glyph extends (downward is positive); if a glyph does not extend below
the baseline, it should be given a zero depth, rather than a negative
depth. Italic corrections are relevant to glyphs in italic or oblique
styles. The <var class="var">italic-correction</var> is the amount of space that should
be added after an oblique glyph to be followed immediately by an upright
glyph. The <var class="var">left-italic-correction</var> is the amount of space that
should be added before an oblique glyph to be preceded immediately by an
upright glyph. The <var class="var">subscript-correction</var> is the amount of space
that should be added after an oblique glyph to be followed by a
subscript; it should be less than the italic correction.
</p>
<p>For fonts used with typesetting devices, the <var class="var">type</var> field gives a
featural description of the glyph: it is a bit mask recording whether
the glyph is an ascender, descender, both, or neither. When a <code class="code">\w</code>
escape sequence is interpolated, these values are bitwise or-ed
together for each glyph and stored in the <code class="code">nr</code> register. In font
descriptions for terminal devices, all glyphs might have a type of zero,
regardless of their appearance.
</p>
<dl class="table">
<dt><code class="code">0</code></dt>
<dd><p>means the glyph lies entirely between the baseline and a horizontal line
at the “x-height” of the font; typical examples are ‘<samp class="samp">a</samp>’,
‘<samp class="samp">c</samp>’, and ‘<samp class="samp">x</samp>’;
</p>
</dd>
<dt><code class="code">1</code></dt>
<dd><p>means the glyph descends below the baseline, like ‘<samp class="samp">p</samp>’;
</p>
</dd>
<dt><code class="code">2</code></dt>
<dd><p>means the glyph ascends above the font’s x-height, like ‘<samp class="samp">A</samp>’ or
‘<samp class="samp">b</samp>’; and
</p>
</dd>
<dt><code class="code">3</code></dt>
<dd><p>means the glyph is both an ascender and a descender—this is true of
parentheses in some fonts.
</p></dd>
</dl>
<p>The <var class="var">code</var> field gives a numeric identifier that the postprocessor
uses to render the glyph. The glyph can be specified to <code class="code">troff</code>
using this code by means of the <code class="code">\N</code> escape sequence. <var class="var">code</var>
can be any integer.<a class="footnote" id="DOCF129" href="#FOOT129"><sup>129</sup></a>
</p>
<p>The <var class="var">entity-name</var> field defines an identifier for the glyph that the
postprocessor uses to print the GNU <code class="code">troff</code> glyph <var class="var">name</var>. This
field is optional; it was introduced so that the <code class="code">grohtml</code> output
driver could encode its character set. For example, the glyph
‘<samp class="samp">\[Po]</samp>’ is represented by ‘<samp class="samp">&pound;</samp>’ in <abbr class="acronym">HTML</abbr> 4.0.
For efficiency, these data are now compiled directly into
<code class="code">grohtml</code>. <code class="code">grops</code> uses the field to build sub-encoding
arrays for PostScript fonts containing more than 256 glyphs. Anything
on the line after the <var class="var">entity-name</var> field or ‘<samp class="samp">--</samp>’ is ignored.
</p>
<p>A line in the <code class="code">charset</code> section can also have the form
</p>
<div class="example">
<div class="group"><pre class="example-preformatted"><var class="var">name</var> "
</pre></div></div>
<p>identifying <var class="var">name</var> as another name for the glyph mentioned in the
preceding line. Such aliases can be chained.
</p>
<a class="index-entry-id" id="index-kernpairs"></a>
<p>The directive <code class="code">kernpairs</code> starts a list of kerning adjustments to
be made to adjacent glyph pairs from this font. It contains a sequence
of lines formatted as follows.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted"><var class="var">g1</var> <var class="var">g2</var> <var class="var">n</var>
</pre></div></div>
<p>The foregoing means that when glyph <var class="var">g1</var> is typeset immediately
before <var class="var">g2</var>, the space between them should be increased
by <var class="var">n</var>. Most kerning pairs should have a negative value
for <var class="var">n</var>.
</p>
<hr>
</div>
</div>
</div>
<div class="appendix-level-extent" id="Copying-This-Manual">
<div class="nav-panel">
<p>
Next: <a href="#Request-Index" accesskey="n" rel="next">Request Index</a>, Previous: <a href="#Font-Description-File-Format" accesskey="p" rel="prev">Font Description File Format</a>, Up: <a href="#Top" accesskey="u" rel="up">GNU <code class="code">troff</code></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h2 class="appendix" id="Copying-This-Manual-1">Appendix A Copying This Manual</h2>
<div class="center">Version 1.3, 3 November 2008
</div>
<div class="display">
<pre class="display-preformatted">Copyright © 2000-2018 Free Software Foundation, Inc.
<a class="uref" href="http://fsf.org/">http://fsf.org/</a>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
</pre></div>
<ol class="enumerate" start="0">
<li> PREAMBLE
<p>The purpose of this License is to make a manual, textbook, or other
functional and useful document <em class="dfn">free</em> in the sense of freedom: to
assure everyone the effective freedom to copy and redistribute it,
with or without modifying it, either commercially or noncommercially.
Secondarily, this License preserves for the author and publisher a way
to get credit for their work, while not being considered responsible
for modifications made by others.
</p>
<p>This License is a kind of “copyleft”, which means that derivative
works of the document must themselves be free in the same sense. It
complements the GNU General Public License, which is a copyleft
license designed for free software.
</p>
<p>We have designed this License in order to use it for manuals for free
software, because free software needs free documentation: a free
program should come with manuals providing the same freedoms that the
software does. But this License is not limited to software manuals;
it can be used for any textual work, regardless of subject matter or
whether it is published as a printed book. We recommend this License
principally for works whose purpose is instruction or reference.
</p>
</li><li> APPLICABILITY AND DEFINITIONS
<p>This License applies to any manual or other work, in any medium, that
contains a notice placed by the copyright holder saying it can be
distributed under the terms of this License. Such a notice grants a
world-wide, royalty-free license, unlimited in duration, to use that
work under the conditions stated herein. The “Document”, below,
refers to any such manual or work. Any member of the public is a
licensee, and is addressed as “you”. You accept the license if you
copy, modify or distribute the work in a way requiring permission
under copyright law.
</p>
<p>A “Modified Version” of the Document means any work containing the
Document or a portion of it, either copied verbatim, or with
modifications and/or translated into another language.
</p>
<p>A “Secondary Section” is a named appendix or a front-matter section
of the Document that deals exclusively with the relationship of the
publishers or authors of the Document to the Document’s overall
subject (or to related matters) and contains nothing that could fall
directly within that overall subject. (Thus, if the Document is in
part a textbook of mathematics, a Secondary Section may not explain
any mathematics.) The relationship could be a matter of historical
connection with the subject or with related matters, or of legal,
commercial, philosophical, ethical or political position regarding
them.
</p>
<p>The “Invariant Sections” are certain Secondary Sections whose titles
are designated, as being those of Invariant Sections, in the notice
that says that the Document is released under this License. If a
section does not fit the above definition of Secondary then it is not
allowed to be designated as Invariant. The Document may contain zero
Invariant Sections. If the Document does not identify any Invariant
Sections then there are none.
</p>
<p>The “Cover Texts” are certain short passages of text that are listed,
as Front-Cover Texts or Back-Cover Texts, in the notice that says that
the Document is released under this License. A Front-Cover Text may
be at most 5 words, and a Back-Cover Text may be at most 25 words.
</p>
<p>A “Transparent” copy of the Document means a machine-readable copy,
represented in a format whose specification is available to the
general public, that is suitable for revising the document
straightforwardly with generic text editors or (for images composed of
pixels) generic paint programs or (for drawings) some widely available
drawing editor, and that is suitable for input to text formatters or
for automatic translation to a variety of formats suitable for input
to text formatters. A copy made in an otherwise Transparent file
format whose markup, or absence of markup, has been arranged to thwart
or discourage subsequent modification by readers is not Transparent.
An image format is not Transparent if used for any substantial amount
of text. A copy that is not “Transparent” is called “Opaque”.
</p>
<p>Examples of suitable formats for Transparent copies include plain
ASCII without markup, Texinfo input format, LaTeX input
format, SGML or XML using a publicly available
DTD, and standard-conforming simple HTML,
PostScript or PDF designed for human modification. Examples
of transparent image formats include PNG, XCF and
JPG. Opaque formats include proprietary formats that can be
read and edited only by proprietary word processors, SGML or
XML for which the DTD and/or processing tools are
not generally available, and the machine-generated HTML,
PostScript or PDF produced by some word processors for
output purposes only.
</p>
<p>The “Title Page” means, for a printed book, the title page itself,
plus such following pages as are needed to hold, legibly, the material
this License requires to appear in the title page. For works in
formats which do not have any title page as such, “Title Page” means
the text near the most prominent appearance of the work’s title,
preceding the beginning of the body of the text.
</p>
<p>The “publisher” means any person or entity that distributes copies
of the Document to the public.
</p>
<p>A section “Entitled XYZ” means a named subunit of the Document whose
title either is precisely XYZ or contains XYZ in parentheses following
text that translates XYZ in another language. (Here XYZ stands for a
specific section name mentioned below, such as “Acknowledgements”,
“Dedications”, “Endorsements”, or “History”.) To “Preserve the Title”
of such a section when you modify the Document means that it remains a
section “Entitled XYZ” according to this definition.
</p>
<p>The Document may include Warranty Disclaimers next to the notice which
states that this License applies to the Document. These Warranty
Disclaimers are considered to be included by reference in this
License, but only as regards disclaiming warranties: any other
implication that these Warranty Disclaimers may have is void and has
no effect on the meaning of this License.
</p>
</li><li> VERBATIM COPYING
<p>You may copy and distribute the Document in any medium, either
commercially or noncommercially, provided that this License, the
copyright notices, and the license notice saying this License applies
to the Document are reproduced in all copies, and that you add no other
conditions whatsoever to those of this License. You may not use
technical measures to obstruct or control the reading or further
copying of the copies you make or distribute. However, you may accept
compensation in exchange for copies. If you distribute a large enough
number of copies you must also follow the conditions in section 3.
</p>
<p>You may also lend copies, under the same conditions stated above, and
you may publicly display copies.
</p>
</li><li> COPYING IN QUANTITY
<p>If you publish printed copies (or copies in media that commonly have
printed covers) of the Document, numbering more than 100, and the
Document’s license notice requires Cover Texts, you must enclose the
copies in covers that carry, clearly and legibly, all these Cover
Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
the back cover. Both covers must also clearly and legibly identify
you as the publisher of these copies. The front cover must present
the full title with all words of the title equally prominent and
visible. You may add other material on the covers in addition.
Copying with changes limited to the covers, as long as they preserve
the title of the Document and satisfy these conditions, can be treated
as verbatim copying in other respects.
</p>
<p>If the required texts for either cover are too voluminous to fit
legibly, you should put the first ones listed (as many as fit
reasonably) on the actual cover, and continue the rest onto adjacent
pages.
</p>
<p>If you publish or distribute Opaque copies of the Document numbering
more than 100, you must either include a machine-readable Transparent
copy along with each Opaque copy, or state in or with each Opaque copy
a computer-network location from which the general network-using
public has access to download using public-standard network protocols
a complete Transparent copy of the Document, free of added material.
If you use the latter option, you must take reasonably prudent steps,
when you begin distribution of Opaque copies in quantity, to ensure
that this Transparent copy will remain thus accessible at the stated
location until at least one year after the last time you distribute an
Opaque copy (directly or through your agents or retailers) of that
edition to the public.
</p>
<p>It is requested, but not required, that you contact the authors of the
Document well before redistributing any large number of copies, to give
them a chance to provide you with an updated version of the Document.
</p>
</li><li> MODIFICATIONS
<p>You may copy and distribute a Modified Version of the Document under
the conditions of sections 2 and 3 above, provided that you release
the Modified Version under precisely this License, with the Modified
Version filling the role of the Document, thus licensing distribution
and modification of the Modified Version to whoever possesses a copy
of it. In addition, you must do these things in the Modified Version:
</p>
<ol class="enumerate" type="A" start="1">
<li> Use in the Title Page (and on the covers, if any) a title distinct
from that of the Document, and from those of previous versions
(which should, if there were any, be listed in the History section
of the Document). You may use the same title as a previous version
if the original publisher of that version gives permission.
</li><li> List on the Title Page, as authors, one or more persons or entities
responsible for authorship of the modifications in the Modified
Version, together with at least five of the principal authors of the
Document (all of its principal authors, if it has fewer than five),
unless they release you from this requirement.
</li><li> State on the Title page the name of the publisher of the
Modified Version, as the publisher.
</li><li> Preserve all the copyright notices of the Document.
</li><li> Add an appropriate copyright notice for your modifications
adjacent to the other copyright notices.
</li><li> Include, immediately after the copyright notices, a license notice
giving the public permission to use the Modified Version under the
terms of this License, in the form shown in the Addendum below.
</li><li> Preserve in that license notice the full lists of Invariant Sections
and required Cover Texts given in the Document’s license notice.
</li><li> Include an unaltered copy of this License.
</li><li> Preserve the section Entitled “History”, Preserve its Title, and add
to it an item stating at least the title, year, new authors, and
publisher of the Modified Version as given on the Title Page. If
there is no section Entitled “History” in the Document, create one
stating the title, year, authors, and publisher of the Document as
given on its Title Page, then add an item describing the Modified
Version as stated in the previous sentence.
</li><li> Preserve the network location, if any, given in the Document for
public access to a Transparent copy of the Document, and likewise
the network locations given in the Document for previous versions
it was based on. These may be placed in the “History” section.
You may omit a network location for a work that was published at
least four years before the Document itself, or if the original
publisher of the version it refers to gives permission.
</li><li> For any section Entitled “Acknowledgements” or “Dedications”, Preserve
the Title of the section, and preserve in the section all the
substance and tone of each of the contributor acknowledgements and/or
dedications given therein.
</li><li> Preserve all the Invariant Sections of the Document,
unaltered in their text and in their titles. Section numbers
or the equivalent are not considered part of the section titles.
</li><li> Delete any section Entitled “Endorsements”. Such a section
may not be included in the Modified Version.
</li><li> Do not retitle any existing section to be Entitled “Endorsements” or
to conflict in title with any Invariant Section.
</li><li> Preserve any Warranty Disclaimers.
</li></ol>
<p>If the Modified Version includes new front-matter sections or
appendices that qualify as Secondary Sections and contain no material
copied from the Document, you may at your option designate some or all
of these sections as invariant. To do this, add their titles to the
list of Invariant Sections in the Modified Version’s license notice.
These titles must be distinct from any other section titles.
</p>
<p>You may add a section Entitled “Endorsements”, provided it contains
nothing but endorsements of your Modified Version by various
parties—for example, statements of peer review or that the text has
been approved by an organization as the authoritative definition of a
standard.
</p>
<p>You may add a passage of up to five words as a Front-Cover Text, and a
passage of up to 25 words as a Back-Cover Text, to the end of the list
of Cover Texts in the Modified Version. Only one passage of
Front-Cover Text and one of Back-Cover Text may be added by (or
through arrangements made by) any one entity. If the Document already
includes a cover text for the same cover, previously added by you or
by arrangement made by the same entity you are acting on behalf of,
you may not add another; but you may replace the old one, on explicit
permission from the previous publisher that added the old one.
</p>
<p>The author(s) and publisher(s) of the Document do not by this License
give permission to use their names for publicity for or to assert or
imply endorsement of any Modified Version.
</p>
</li><li> COMBINING DOCUMENTS
<p>You may combine the Document with other documents released under this
License, under the terms defined in section 4 above for modified
versions, provided that you include in the combination all of the
Invariant Sections of all of the original documents, unmodified, and
list them all as Invariant Sections of your combined work in its
license notice, and that you preserve all their Warranty Disclaimers.
</p>
<p>The combined work need only contain one copy of this License, and
multiple identical Invariant Sections may be replaced with a single
copy. If there are multiple Invariant Sections with the same name but
different contents, make the title of each such section unique by
adding at the end of it, in parentheses, the name of the original
author or publisher of that section if known, or else a unique number.
Make the same adjustment to the section titles in the list of
Invariant Sections in the license notice of the combined work.
</p>
<p>In the combination, you must combine any sections Entitled “History”
in the various original documents, forming one section Entitled
“History”; likewise combine any sections Entitled “Acknowledgements”,
and any sections Entitled “Dedications”. You must delete all
sections Entitled “Endorsements.”
</p>
</li><li> COLLECTIONS OF DOCUMENTS
<p>You may make a collection consisting of the Document and other documents
released under this License, and replace the individual copies of this
License in the various documents with a single copy that is included in
the collection, provided that you follow the rules of this License for
verbatim copying of each of the documents in all other respects.
</p>
<p>You may extract a single document from such a collection, and distribute
it individually under this License, provided you insert a copy of this
License into the extracted document, and follow this License in all
other respects regarding verbatim copying of that document.
</p>
</li><li> AGGREGATION WITH INDEPENDENT WORKS
<p>A compilation of the Document or its derivatives with other separate
and independent documents or works, in or on a volume of a storage or
distribution medium, is called an “aggregate” if the copyright
resulting from the compilation is not used to limit the legal rights
of the compilation’s users beyond what the individual works permit.
When the Document is included in an aggregate, this License does not
apply to the other works in the aggregate which are not themselves
derivative works of the Document.
</p>
<p>If the Cover Text requirement of section 3 is applicable to these
copies of the Document, then if the Document is less than one half of
the entire aggregate, the Document’s Cover Texts may be placed on
covers that bracket the Document within the aggregate, or the
electronic equivalent of covers if the Document is in electronic form.
Otherwise they must appear on printed covers that bracket the whole
aggregate.
</p>
</li><li> TRANSLATION
<p>Translation is considered a kind of modification, so you may
distribute translations of the Document under the terms of section 4.
Replacing Invariant Sections with translations requires special
permission from their copyright holders, but you may include
translations of some or all Invariant Sections in addition to the
original versions of these Invariant Sections. You may include a
translation of this License, and all the license notices in the
Document, and any Warranty Disclaimers, provided that you also include
the original English version of this License and the original versions
of those notices and disclaimers. In case of a disagreement between
the translation and the original version of this License or a notice
or disclaimer, the original version will prevail.
</p>
<p>If a section in the Document is Entitled “Acknowledgements”,
“Dedications”, or “History”, the requirement (section 4) to Preserve
its Title (section 1) will typically require changing the actual
title.
</p>
</li><li> TERMINATION
<p>You may not copy, modify, sublicense, or distribute the Document
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense, or distribute it is void, and
will automatically terminate your rights under this License.
</p>
<p>However, if you cease all violation of this License, then your license
from a particular copyright holder is reinstated (a) provisionally,
unless and until the copyright holder explicitly and finally
terminates your license, and (b) permanently, if the copyright holder
fails to notify you of the violation by some reasonable means prior to
60 days after the cessation.
</p>
<p>Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
</p>
<p>Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, receipt of a copy of some or all of the same material does
not give you any rights to use it.
</p>
</li><li> FUTURE REVISIONS OF THIS LICENSE
<p>The Free Software Foundation may publish new, revised versions
of the GNU Free Documentation License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns. See
<a class="uref" href="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</a>.
</p>
<p>Each version of the License is given a distinguishing version number.
If the Document specifies that a particular numbered version of this
License “or any later version” applies to it, you have the option of
following the terms and conditions either of that specified version or
of any later version that has been published (not as a draft) by the
Free Software Foundation. If the Document does not specify a version
number of this License, you may choose any version ever published (not
as a draft) by the Free Software Foundation. If the Document
specifies that a proxy can decide which future versions of this
License can be used, that proxy’s public statement of acceptance of a
version permanently authorizes you to choose that version for the
Document.
</p>
</li><li> RELICENSING
<p>“Massive Multiauthor Collaboration Site” (or “MMC Site”) means any
World Wide Web server that publishes copyrightable works and also
provides prominent facilities for anybody to edit those works. A
public wiki that anybody can edit is an example of such a server. A
“Massive Multiauthor Collaboration” (or “MMC”) contained in the
site means any set of copyrightable works thus published on the MMC
site.
</p>
<p>“CC-BY-SA” means the Creative Commons Attribution-Share Alike 3.0
license published by Creative Commons Corporation, a not-for-profit
corporation with a principal place of business in San Francisco,
California, as well as future copyleft versions of that license
published by that same organization.
</p>
<p>“Incorporate” means to publish or republish a Document, in whole or
in part, as part of another Document.
</p>
<p>An MMC is “eligible for relicensing” if it is licensed under this
License, and if all works that were first published under this License
somewhere other than this MMC, and subsequently incorporated in whole
or in part into the MMC, (1) had no cover texts or invariant sections,
and (2) were thus incorporated prior to November 1, 2008.
</p>
<p>The operator of an MMC Site may republish an MMC contained in the site
under CC-BY-SA on the same site at any time before August 1, 2009,
provided the MMC is eligible for relicensing.
</p>
</li></ol>
<h3 class="heading" id="ADDENDUM_003a-How-to-use-this-License-for-your-documents">ADDENDUM: How to use this License for your documents</h3>
<p>To use this License in a document you have written, include a copy of
the License in the document and put the following copyright and
license notices just after the title page:
</p>
<div class="example smallexample">
<div class="group"><pre class="example-preformatted"> Copyright (C) <var class="var">year</var> <var class="var">your name</var>.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
Texts. A copy of the license is included in the section entitled ``GNU
Free Documentation License''.
</pre></div></div>
<p>If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
replace the “with…Texts.” line with this:
</p>
<div class="example smallexample">
<div class="group"><pre class="example-preformatted"> with the Invariant Sections being <var class="var">list their titles</var>, with
the Front-Cover Texts being <var class="var">list</var>, and with the Back-Cover Texts
being <var class="var">list</var>.
</pre></div></div>
<p>If you have Invariant Sections without Cover Texts, or some other
combination of the three, merge those two alternatives to suit the
situation.
</p>
<p>If your document contains nontrivial examples of program code, we
recommend releasing these examples in parallel under your choice of
free software license, such as the GNU General Public License,
to permit their use in free software.
</p>
<hr>
</div>
<div class="appendix-level-extent" id="Request-Index">
<div class="nav-panel">
<p>
Next: <a href="#Escape-Sequence-Index" accesskey="n" rel="next">Escape Sequence Index</a>, Previous: <a href="#Copying-This-Manual" accesskey="p" rel="prev">Copying This Manual</a>, Up: <a href="#Top" accesskey="u" rel="up">GNU <code class="code">troff</code></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h2 class="appendix" id="Request-Index-1">Appendix B Request Index</h2>
<p>Request names appear without a leading control character; the defaults
are <code class="code">.</code> for the regular control character and <code class="code">'</code> for the
no-break control character.
</p>
<div class="printindex rq-printindex">
<table class="rq-letters-header-printindex"><tr><th>Jump to: </th><td><a class="summary-letter-printindex" href="#Request-Index_rq_letter-A"><b>A</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-B"><b>B</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-C"><b>C</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-D"><b>D</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-E"><b>E</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-F"><b>F</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-G"><b>G</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-H"><b>H</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-I"><b>I</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-K"><b>K</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-L"><b>L</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-M"><b>M</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-N"><b>N</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-O"><b>O</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-P"><b>P</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-R"><b>R</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-S"><b>S</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-T"><b>T</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-U"><b>U</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-V"><b>V</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-W"><b>W</b></a>
</td></tr></table>
<table class="rq-entries-printindex" border="0">
<tr><td></td><th class="entries-header-printindex">Index Entry</th><td> </td><th class="sections-header-printindex"> Section</th></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Request-Index_rq_letter-A">A</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ab"><code>ab</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ad"><code>ad</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-af"><code>af</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Assigning-Register-Formats">Assigning Register Formats</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-aln"><code>aln</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Setting-Registers">Setting Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-als"><code>als</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-am"><code>am</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Writing-Macros">Writing Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-am1"><code>am1</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Writing-Macros">Writing Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ami"><code>ami</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Writing-Macros">Writing Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ami1"><code>ami1</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Writing-Macros">Writing Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-as"><code>as</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-as1"><code>as1</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-asciify"><code>asciify</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Request-Index_rq_letter-B">B</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-backtrace"><code>backtrace</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-bd"><code>bd</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-blm"><code>blm</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Blank-Line-Traps">Blank Line Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-box"><code>box</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-boxa"><code>boxa</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-bp"><code>bp</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-br"><code>br</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-break-2"><code>break</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#while">while</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-brp"><code>brp</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Request-Index_rq_letter-C">C</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-c2"><code>c2</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Control-Characters">Control Characters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-cc"><code>cc</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Control-Characters">Control Characters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ce"><code>ce</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-cf"><code>cf</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-cflags"><code>cflags</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ch"><code>ch</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Location-Traps">Page Location Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-char"><code>char</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-chop"><code>chop</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-class"><code>class</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Classes">Character Classes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-close"><code>close</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-color"><code>color</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Colors">Colors</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-composite"><code>composite</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-continue"><code>continue</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#while">while</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-cp"><code>cp</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Compatibility-Mode">Compatibility Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-cs"><code>cs</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-cu"><code>cu</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Request-Index_rq_letter-D">D</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-da"><code>da</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-de"><code>de</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Writing-Macros">Writing Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-de1"><code>de1</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Writing-Macros">Writing Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-defcolor"><code>defcolor</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Colors">Colors</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-dei"><code>dei</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Writing-Macros">Writing Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-dei1"><code>dei1</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Writing-Macros">Writing Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-device"><code>device</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Postprocessor-Access">Postprocessor Access</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-devicem"><code>devicem</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Postprocessor-Access">Postprocessor Access</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-di"><code>di</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-do"><code>do</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Compatibility-Mode">Compatibility Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ds"><code>ds</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ds-1"><code>ds</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ds1"><code>ds1</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-dt"><code>dt</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversion-Traps">Diversion Traps</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Request-Index_rq_letter-E">E</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ec"><code>ec</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Escape-Sequences">Using Escape Sequences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ecr"><code>ecr</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Escape-Sequences">Using Escape Sequences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ecs"><code>ecs</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Escape-Sequences">Using Escape Sequences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-el"><code>el</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#if_002delse">if-else</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-em"><code>em</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#End_002dof_002dinput-Traps">End-of-input Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-eo"><code>eo</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Escape-Sequences">Using Escape Sequences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ev"><code>ev</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Environments">Environments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-evc"><code>evc</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Environments">Environments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ex"><code>ex</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Request-Index_rq_letter-F">F</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fam"><code>fam</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Families">Font Families</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fc"><code>fc</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Fields">Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fchar"><code>fchar</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fcolor"><code>fcolor</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Colors">Colors</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fi"><code>fi</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fl"><code>fl</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fp"><code>fp</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Positions">Font Positions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fschar"><code>fschar</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fspecial"><code>fspecial</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Special-Fonts">Special Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ft"><code>ft</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ftr"><code>ftr</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fzoom"><code>fzoom</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Request-Index_rq_letter-G">G</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-gcolor"><code>gcolor</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Colors">Colors</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Request-Index_rq_letter-H">H</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hc"><code>hc</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hcode"><code>hcode</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hla"><code>hla</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hlm"><code>hlm</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hpf"><code>hpf</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hpfa"><code>hpfa</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hpfcode"><code>hpfcode</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hw"><code>hw</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hy"><code>hy</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hym"><code>hym</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hys"><code>hys</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Request-Index_rq_letter-I">I</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ie"><code>ie</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#if_002delse">if-else</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-if"><code>if</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#if_002dthen">if-then</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ig"><code>ig</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Comments">Comments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-in-1"><code>in</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Layout">Line Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-it"><code>it</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Line-Traps">Input Line Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-itc"><code>itc</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Line-Traps">Input Line Traps</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Request-Index_rq_letter-K">K</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-kern"><code>kern</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Ligatures-and-Kerning">Ligatures and Kerning</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Request-Index_rq_letter-L">L</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-lc"><code>lc</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Leaders">Leaders</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-length"><code>length</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-lf"><code>lf</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-lg"><code>lg</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Ligatures-and-Kerning">Ligatures and Kerning</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-linetabs"><code>linetabs</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Fields">Tabs and Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ll-1"><code>ll</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Layout">Line Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ls"><code>ls</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Spacing">Manipulating Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-lsm"><code>lsm</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Leading-Space-Traps">Leading Space Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-lt"><code>lt</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Request-Index_rq_letter-M">M</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mc"><code>mc</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Miscellaneous">Miscellaneous</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mk"><code>mk</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mso"><code>mso</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-msoquiet"><code>msoquiet</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Request-Index_rq_letter-N">N</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-na"><code>na</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ne"><code>ne</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-nf"><code>nf</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-nh"><code>nh</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-nm"><code>nm</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Miscellaneous">Miscellaneous</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-nn"><code>nn</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Miscellaneous">Miscellaneous</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-nop"><code>nop</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#if_002dthen">if-then</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-nr"><code>nr</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-nr-1"><code>nr</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Setting-Registers">Setting Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-nr-2"><code>nr</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Setting-Registers">Setting Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-nr-3"><code>nr</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Auto_002dincrement">Auto-increment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-nroff"><code>nroff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#troff-and-nroff-Modes"><code class="code">troff</code> and <code class="code">nroff</code> Modes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ns"><code>ns</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Spacing">Manipulating Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-nx"><code>nx</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Request-Index_rq_letter-O">O</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-open"><code>open</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-opena"><code>opena</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-os"><code>os</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output"><code>output</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Request-Index_rq_letter-P">P</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-pc"><code>pc</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-pev"><code>pev</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-pi"><code>pi</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-pl"><code>pl</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-pm"><code>pm</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-pn"><code>pn</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-pnr"><code>pnr</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-po-1"><code>po</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Layout">Line Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ps"><code>ps</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Type-Size">Changing the Type Size</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-psbb"><code>psbb</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Miscellaneous">Miscellaneous</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-pso"><code>pso</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ptr"><code>ptr</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-pvs"><code>pvs</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Vertical-Spacing">Changing the Vertical Spacing</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Request-Index_rq_letter-R">R</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-rchar"><code>rchar</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-rd"><code>rd</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-return"><code>return</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Writing-Macros">Writing Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-rfschar"><code>rfschar</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-rj"><code>rj</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-rm"><code>rm</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-rn"><code>rn</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-rnn"><code>rnn</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Setting-Registers">Setting Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-rr"><code>rr</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Setting-Registers">Setting Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-rs"><code>rs</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Spacing">Manipulating Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-rt"><code>rt</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Request-Index_rq_letter-S">S</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-schar"><code>schar</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-shc"><code>shc</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-shift"><code>shift</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Parameters">Parameters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-sizes-1"><code>sizes</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Type-Size">Changing the Type Size</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-so"><code>so</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-soquiet"><code>soquiet</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-sp"><code>sp</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Spacing">Manipulating Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-special-2"><code>special</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Special-Fonts">Special Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-spreadwarn"><code>spreadwarn</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ss"><code>ss</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-stringdown"><code>stringdown</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-stringup"><code>stringup</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-sty"><code>sty</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Families">Font Families</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-substring"><code>substring</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-sv"><code>sv</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-sy"><code>sy</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Request-Index_rq_letter-T">T</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ta"><code>ta</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Fields">Tabs and Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tag"><code>tag</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Postprocessor-Access">Postprocessor Access</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-taga"><code>taga</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Postprocessor-Access">Postprocessor Access</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tc"><code>tc</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Fields">Tabs and Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ti"><code>ti</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Layout">Line Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tkf"><code>tkf</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Ligatures-and-Kerning">Ligatures and Kerning</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tl"><code>tl</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tm"><code>tm</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tm1"><code>tm1</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tmc"><code>tmc</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tr"><code>tr</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-trf"><code>trf</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-trin"><code>trin</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-trnt"><code>trnt</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-troff"><code>troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#troff-and-nroff-Modes"><code class="code">troff</code> and <code class="code">nroff</code> Modes</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Request-Index_rq_letter-U">U</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-uf"><code>uf</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ul"><code>ul</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unformat"><code>unformat</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Request-Index_rq_letter-V">V</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-vpt"><code>vpt</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Vertical-Position-Traps">Vertical Position Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-vs"><code>vs</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Vertical-Spacing">Changing the Vertical Spacing</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Request-Index_rq_letter-W">W</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-warn"><code>warn</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-warnscale"><code>warnscale</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-wh"><code>wh</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Location-Traps">Page Location Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-while-1"><code>while</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#while">while</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-write"><code>write</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-writec"><code>writec</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-writem"><code>writem</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
</table>
<table class="rq-letters-footer-printindex"><tr><th>Jump to: </th><td><a class="summary-letter-printindex" href="#Request-Index_rq_letter-A"><b>A</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-B"><b>B</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-C"><b>C</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-D"><b>D</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-E"><b>E</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-F"><b>F</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-G"><b>G</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-H"><b>H</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-I"><b>I</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-K"><b>K</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-L"><b>L</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-M"><b>M</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-N"><b>N</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-O"><b>O</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-P"><b>P</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-R"><b>R</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-S"><b>S</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-T"><b>T</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-U"><b>U</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-V"><b>V</b></a>
<a class="summary-letter-printindex" href="#Request-Index_rq_letter-W"><b>W</b></a>
</td></tr></table>
</div>
<hr>
</div>
<div class="appendix-level-extent" id="Escape-Sequence-Index">
<div class="nav-panel">
<p>
Next: <a href="#Operator-Index" accesskey="n" rel="next">Operator Index</a>, Previous: <a href="#Request-Index" accesskey="p" rel="prev">Request Index</a>, Up: <a href="#Top" accesskey="u" rel="up">GNU <code class="code">troff</code></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h2 class="appendix" id="Escape-Sequence-Index-1">Appendix C Escape Sequence Index</h2>
<p>The escape character, <code class="code">\</code> by default, is always followed by at
least one more input character, making an escape <em class="emph">sequence</em>. Any
input token <code class="code">\<var class="var">X</var></code> with <var class="var">X</var> not in the list below emits a
warning and interpolates glyph <var class="var">X</var>. Note the entries for <code class="code">\.</code>,
which may be obscured by the leader dots, and for <code class="code">\<kbd class="key">RET</kbd></code> and
<code class="code">\<kbd class="key">SP</kbd></code>, which are sorted alphabetically, not by code point
order.
</p>
<div class="printindex es-printindex">
<table class="es-entries-printindex" border="0">
<tr><td></td><th class="entries-header-printindex">Index Entry</th><td> </td><th class="sections-header-printindex"> Section</th></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Escape-Sequence-Index_es_symbol-1">\</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c"><code>\</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Escape-Sequences">Using Escape Sequences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c-1"><code>\</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0021"><code>\!</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0022"><code>\"</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Comments">Comments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0023"><code>\#</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Comments">Comments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0024"><code>\$</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Parameters">Parameters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0024_002a"><code>\$*</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Parameters">Parameters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_00240"><code>\$0</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Parameters">Parameters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0024_0040"><code>\$@</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Parameters">Parameters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0024_005e"><code>\$^</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Parameters">Parameters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0025"><code>\%</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0026"><code>\&</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Dummy-Characters">Dummy Characters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0027"><code>\<code class="code">'</code></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0028"><code>\(</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0029"><code>\)</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Dummy-Characters">Dummy Characters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_002a"><code>\*</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_002c"><code>\,</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Italic-Corrections">Italic Corrections</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_002d"><code>\-</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_002e"><code>\.</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Copy-Mode">Copy Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_002f"><code>\/</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Italic-Corrections">Italic Corrections</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c0"><code>\0</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_003a"><code>\:</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_003f"><code>\?</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cA"><code>\A</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Identifiers">Identifiers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005ca"><code>\a</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Leaders">Leaders</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cB"><code>\B</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cb"><code>\b</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cc"><code>\c</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Continuation">Line Continuation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cC"><code>\C</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cd"><code>\d</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cD"><code>\D</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005ce"><code>\e</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Escape-Sequences">Using Escape Sequences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cE"><code>\E</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Copy-Mode">Copy Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cf"><code>\f</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cF"><code>\F</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Families">Font Families</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cg"><code>\g</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Assigning-Register-Formats">Assigning Register Formats</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cH"><code>\H</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005ch"><code>\h</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005ck"><code>\k</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cl"><code>\l</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cL"><code>\L</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cm"><code>\m</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Colors">Colors</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cM"><code>\M</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Colors">Colors</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cn"><code>\n</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Interpolating-Registers">Interpolating Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cn-1"><code>\n</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Auto_002dincrement">Auto-increment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cN"><code>\N</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cnewline"><code>\<i class="slanted">newline</i></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Continuation">Line Continuation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005co"><code>\o</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cO"><code>\O</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Suppressing-Output">Suppressing Output</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cp"><code>\p</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cR"><code>\R</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Setting-Registers">Setting Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cR-1"><code>\R</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Setting-Registers">Setting Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cr"><code>\r</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cRET"><code>\<kbd class="key">RET</kbd></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Continuation">Line Continuation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cS"><code>\S</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cs"><code>\s</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Type-Size">Changing the Type Size</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cSP"><code>\<kbd class="key">SP</kbd></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cspace"><code>\<i class="slanted">space</i></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005ct"><code>\t</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Fields">Tabs and Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cu"><code>\u</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cv"><code>\v</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cV"><code>\V</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cw"><code>\w</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cx"><code>\x</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Spacing">Manipulating Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cX"><code>\X</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Postprocessor-Access">Postprocessor Access</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cY"><code>\Y</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Postprocessor-Access">Postprocessor Access</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cz"><code>\z</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cZ"><code>\Z</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_005b"><code>\[</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_005c"><code>\\</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Copy-Mode">Copy Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_005e"><code>\^</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_005f"><code>\_</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0060"><code>\<code class="code">`</code></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_007b"><code>\{</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Conditional-Blocks">Conditional Blocks</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_007b-1"><code>\{</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Conditional-Blocks">Conditional Blocks</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_007c"><code>\|</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_007d"><code>\}</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Conditional-Blocks">Conditional Blocks</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_007e"><code>\~</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
</table>
</div>
<hr>
</div>
<div class="appendix-level-extent" id="Operator-Index">
<div class="nav-panel">
<p>
Next: <a href="#Register-Index" accesskey="n" rel="next">Register Index</a>, Previous: <a href="#Escape-Sequence-Index" accesskey="p" rel="prev">Escape Sequence Index</a>, Up: <a href="#Top" accesskey="u" rel="up">GNU <code class="code">troff</code></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h2 class="appendix" id="Operator-Index-1">Appendix D Operator Index</h2>
<div class="printindex op-printindex">
<table class="op-letters-header-printindex"><tr><th>Jump to: </th><td><a class="summary-letter-printindex" href="#Operator-Index_op_symbol-1"><b>!</b></a>
<a class="summary-letter-printindex" href="#Operator-Index_op_symbol-2"><b>%</b></a>
<a class="summary-letter-printindex" href="#Operator-Index_op_symbol-3"><b>&</b></a>
<a class="summary-letter-printindex" href="#Operator-Index_op_symbol-4"><b>(</b></a>
<a class="summary-letter-printindex" href="#Operator-Index_op_symbol-5"><b>)</b></a>
<a class="summary-letter-printindex" href="#Operator-Index_op_symbol-6"><b>*</b></a>
<a class="summary-letter-printindex" href="#Operator-Index_op_symbol-7"><b>+</b></a>
<a class="summary-letter-printindex" href="#Operator-Index_op_symbol-8"><b>-</b></a>
<a class="summary-letter-printindex" href="#Operator-Index_op_symbol-9"><b>/</b></a>
<a class="summary-letter-printindex" href="#Operator-Index_op_symbol-10"><b>:</b></a>
<a class="summary-letter-printindex" href="#Operator-Index_op_symbol-11"><b>;</b></a>
<a class="summary-letter-printindex" href="#Operator-Index_op_symbol-12"><b><</b></a>
<a class="summary-letter-printindex" href="#Operator-Index_op_symbol-13"><b>=</b></a>
<a class="summary-letter-printindex" href="#Operator-Index_op_symbol-14"><b>></b></a>
<a class="summary-letter-printindex" href="#Operator-Index_op_symbol-15"><b>|</b></a>
</td></tr></table>
<table class="op-entries-printindex" border="0">
<tr><td></td><th class="entries-header-printindex">Index Entry</th><td> </td><th class="sections-header-printindex"> Section</th></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Operator-Index_op_symbol-1">!</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_0021"><code>!</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Operator-Index_op_symbol-2">%</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_0025"><code>%</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Operator-Index_op_symbol-3">&</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_0026"><code>&</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Operator-Index_op_symbol-4">(</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_0028"><code>(</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Operator-Index_op_symbol-5">)</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_0029"><code>)</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Operator-Index_op_symbol-6">*</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002a"><code>*</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Operator-Index_op_symbol-7">+</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002b"><code>+</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002b-1"><code>+</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002b-_0028unary_0029"><code>+ <span class="r">(unary)</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Operator-Index_op_symbol-8">-</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002d"><code>-</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002d-1"><code>-</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002d-_0028unary_0029"><code>- <span class="r">(unary)</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Operator-Index_op_symbol-9">/</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002f"><code>/</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Operator-Index_op_symbol-10">:</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_003a"><code>:</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Operator-Index_op_symbol-11">;</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_003b"><code>;</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Operator-Index_op_symbol-12"><</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_003c"><code><</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_003c_003d"><code><=</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_003c_003f"><code><?</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Operator-Index_op_symbol-13">=</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_003d"><code>=</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_003d_003d"><code>==</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Operator-Index_op_symbol-14">></th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_003e"><code>></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_003e_003d"><code>>=</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_003e_003f"><code>>?</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Operator-Index_op_symbol-15">|</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_007c"><code>|</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
</table>
<table class="op-letters-footer-printindex"><tr><th>Jump to: </th><td><a class="summary-letter-printindex" href="#Operator-Index_op_symbol-1"><b>!</b></a>
<a class="summary-letter-printindex" href="#Operator-Index_op_symbol-2"><b>%</b></a>
<a class="summary-letter-printindex" href="#Operator-Index_op_symbol-3"><b>&</b></a>
<a class="summary-letter-printindex" href="#Operator-Index_op_symbol-4"><b>(</b></a>
<a class="summary-letter-printindex" href="#Operator-Index_op_symbol-5"><b>)</b></a>
<a class="summary-letter-printindex" href="#Operator-Index_op_symbol-6"><b>*</b></a>
<a class="summary-letter-printindex" href="#Operator-Index_op_symbol-7"><b>+</b></a>
<a class="summary-letter-printindex" href="#Operator-Index_op_symbol-8"><b>-</b></a>
<a class="summary-letter-printindex" href="#Operator-Index_op_symbol-9"><b>/</b></a>
<a class="summary-letter-printindex" href="#Operator-Index_op_symbol-10"><b>:</b></a>
<a class="summary-letter-printindex" href="#Operator-Index_op_symbol-11"><b>;</b></a>
<a class="summary-letter-printindex" href="#Operator-Index_op_symbol-12"><b><</b></a>
<a class="summary-letter-printindex" href="#Operator-Index_op_symbol-13"><b>=</b></a>
<a class="summary-letter-printindex" href="#Operator-Index_op_symbol-14"><b>></b></a>
<a class="summary-letter-printindex" href="#Operator-Index_op_symbol-15"><b>|</b></a>
</td></tr></table>
</div>
<hr>
</div>
<div class="appendix-level-extent" id="Register-Index">
<div class="nav-panel">
<p>
Next: <a href="#Macro-Index" accesskey="n" rel="next">Macro Index</a>, Previous: <a href="#Operator-Index" accesskey="p" rel="prev">Operator Index</a>, Up: <a href="#Top" accesskey="u" rel="up">GNU <code class="code">troff</code></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h2 class="appendix" id="Register-Index-1">Appendix E Register Index</h2>
<p>The macro package or program a specific register belongs to is appended
in brackets.
</p>
<p>A register name <code class="code">x</code> consisting of exactly one character can be
accessed as ‘<samp class="samp">\nx</samp>’. A register name <code class="code">xx</code> consisting of exactly
two characters can be accessed as ‘<samp class="samp">\n(xx</samp>’. Register names
<code class="code">xxx</code> of any length can be accessed as ‘<samp class="samp">\n[xxx]</samp>’.
</p>
<div class="printindex vr-printindex">
<table class="vr-letters-header-printindex"><tr><th>Jump to: </th><td><a class="summary-letter-printindex" href="#Register-Index_vr_symbol-1"><b>$</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_symbol-2"><b>%</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_symbol-3"><b>.</b></a>
<br>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-C"><b>C</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-D"><b>D</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-F"><b>F</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-G"><b>G</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-H"><b>H</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-L"><b>L</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-M"><b>M</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-N"><b>N</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-O"><b>O</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-P"><b>P</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-Q"><b>Q</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-R"><b>R</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-S"><b>S</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-T"><b>T</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-U"><b>U</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-V"><b>V</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-Y"><b>Y</b></a>
</td></tr></table>
<table class="vr-entries-printindex" border="0">
<tr><td></td><th class="entries-header-printindex">Index Entry</th><td> </td><th class="sections-header-printindex"> Section</th></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Register-Index_vr_symbol-1">$</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_0024_0024"><code>$$</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Register-Index_vr_symbol-2">%</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_0025-1"><code>%</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_0025-2"><code>%</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Register-Index_vr_symbol-3">.</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002e_0024"><code>.$</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Parameters">Parameters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002eA"><code>.A</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ea"><code>.a</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Spacing">Manipulating Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002eb"><code>.b</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ebr-1"><code>.br</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Control-Characters">Control Characters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ec"><code>.c</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002eC"><code>.C</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Compatibility-Mode">Compatibility Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ecdp"><code>.cdp</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Environments">Environments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ece-1"><code>.ce</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002echt"><code>.cht</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Environments">Environments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ecolor-1"><code>.color</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Colors">Colors</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ecp-1"><code>.cp</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Compatibility-Mode">Compatibility Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ecsk"><code>.csk</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Environments">Environments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ed"><code>.d</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002eev-1"><code>.ev</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Environments">Environments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002eF"><code>.F</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ef"><code>.f</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Positions">Font Positions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002efam-1"><code>.fam</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Families">Font Families</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002efn"><code>.fn</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002efp-1"><code>.fp</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Positions">Font Positions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002eg"><code>.g</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002eH"><code>.H</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Motion-Quanta">Motion Quanta</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002eh"><code>.h</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002eheight"><code>.height</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ehla-1"><code>.hla</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ehlc"><code>.hlc</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ehlm-1"><code>.hlm</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ehy-1"><code>.hy</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ehym-1"><code>.hym</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ehys-1"><code>.hys</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ei"><code>.i</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Layout">Line Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ein-3"><code>.in</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Layout">Line Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002eint"><code>.int</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Continuation">Line Continuation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ej"><code>.j</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ek"><code>.k</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ekern-1"><code>.kern</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Ligatures-and-Kerning">Ligatures and Kerning</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002eL"><code>.L</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Spacing">Manipulating Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002el"><code>.l</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Layout">Line Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002elg-1"><code>.lg</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Ligatures-and-Kerning">Ligatures and Kerning</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002elinetabs-1"><code>.linetabs</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Fields">Tabs and Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ell-3"><code>.ll</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Layout">Line Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002elt-3"><code>.lt</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002em"><code>.m</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Colors">Colors</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002eM"><code>.M</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Colors">Colors</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002en"><code>.n</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Environments">Environments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ene-1"><code>.ne</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Location-Traps">Page Location Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002enm-1"><code>.nm</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Miscellaneous">Miscellaneous</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002enn-1"><code>.nn</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Miscellaneous">Miscellaneous</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ens-1"><code>.ns</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Spacing">Manipulating Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002eo"><code>.o</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Layout">Line Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002eO"><code>.O</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Suppressing-Output">Suppressing Output</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002eP"><code>.P</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ep"><code>.p</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002epe"><code>.pe</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Location-Traps">Page Location Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002epn-3"><code>.pn</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002eps-3"><code>.ps</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002epsr"><code>.psr</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002epvs-3"><code>.pvs</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Vertical-Spacing">Changing the Vertical Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002eR-2"><code>.R</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002erj-1"><code>.rj</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002es"><code>.s</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Type-Size">Changing the Type Size</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002eslant"><code>.slant</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002esr"><code>.sr</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ess-1"><code>.ss</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002esss"><code>.sss</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002esty-1"><code>.sty</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Families">Font Families</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002eT-2"><code>.T</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002et"><code>.t</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Location-Traps">Page Location Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002etabs"><code>.tabs</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Fields">Tabs and Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002etrunc"><code>.trunc</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Location-Traps">Page Location Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002eU"><code>.U</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002eu"><code>.u</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002eV"><code>.V</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Motion-Quanta">Motion Quanta</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ev"><code>.v</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Vertical-Spacing">Changing the Vertical Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002evpt-1"><code>.vpt</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Vertical-Position-Traps">Vertical Position Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ew"><code>.w</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Environments">Environments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ewarn-1"><code>.warn</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ex"><code>.x</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ey"><code>.y</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002eY"><code>.Y</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ez"><code>.z</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002ezoom"><code>.zoom</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Register-Index_vr_letter-C">C</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-c_002e"><code>c.</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ct"><code>ct</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Register-Index_vr_letter-D">D</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-DD-_005bms_005d"><code>DD <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-DI-_005bms_005d"><code>DI <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-dl"><code>dl</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-dn"><code>dn</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-dw"><code>dw</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-dy"><code>dy</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Register-Index_vr_letter-F">F</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-FF-_005bms_005d"><code>FF <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-FI-_005bms_005d"><code>FI <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-FM-_005bms_005d"><code>FM <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-FPD-_005bms_005d"><code>FPD <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-FPS-_005bms_005d"><code>FPS <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-FVS-_005bms_005d"><code>FVS <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Register-Index_vr_letter-G">G</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-GROWPS-_005bms_005d"><code>GROWPS <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-GS-_005bms_005d"><code>GS <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Differences-from-AT_0026T-ms">Differences from AT&T ms</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Register-Index_vr_letter-H">H</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-HM-_005bms_005d"><code>HM <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-HORPHANS-_005bms_005d"><code>HORPHANS <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hours"><code>hours</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hp"><code>hp</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-HY-_005bms_005d"><code>HY <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Register-Index_vr_letter-L">L</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-LL-_005bms_005d"><code>LL <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-llx"><code>llx</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Miscellaneous">Miscellaneous</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-lly"><code>lly</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Miscellaneous">Miscellaneous</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ln"><code>ln</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Miscellaneous">Miscellaneous</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-lsn"><code>lsn</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Leading-Space-Traps">Leading Space Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-lss"><code>lss</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Leading-Space-Traps">Leading Space Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-LT-_005bms_005d"><code>LT <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Register-Index_vr_letter-M">M</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-MINGW-_005bms_005d"><code>MINGW <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-minutes"><code>minutes</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mo"><code>mo</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Register-Index_vr_letter-N">N</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-nl"><code>nl</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Register-Index_vr_letter-O">O</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-opmaxx"><code>opmaxx</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Suppressing-Output">Suppressing Output</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-opmaxy"><code>opmaxy</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Suppressing-Output">Suppressing Output</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-opminx"><code>opminx</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Suppressing-Output">Suppressing Output</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-opminy"><code>opminy</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Suppressing-Output">Suppressing Output</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Register-Index_vr_letter-P">P</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-PD-_005bms_005d"><code>PD <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-PI-_005bms_005d"><code>PI <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-PO-_005bms_005d"><code>PO <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-PORPHANS-_005bms_005d"><code>PORPHANS <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-PS-_005bms_005d-1"><code>PS <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-PSINCR-_005bms_005d"><code>PSINCR <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Register-Index_vr_letter-Q">Q</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-QI-_005bms_005d"><code>QI <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Register-Index_vr_letter-R">R</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-rsb"><code>rsb</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-rst"><code>rst</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Register-Index_vr_letter-S">S</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-sb"><code>sb</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-seconds"><code>seconds</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-skw"><code>skw</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-slimit"><code>slimit</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ssc"><code>ssc</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-st"><code>st</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-systat"><code>systat</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Register-Index_vr_letter-T">T</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-TC_002dMARGIN-_005bms_005d"><code>TC-MARGIN <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Register-Index_vr_letter-U">U</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-urx"><code>urx</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Miscellaneous">Miscellaneous</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ury"><code>ury</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Miscellaneous">Miscellaneous</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Register-Index_vr_letter-V">V</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-VS-_005bms_005d"><code>VS <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Register-Index_vr_letter-Y">Y</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-year"><code>year</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-yr"><code>yr</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
</table>
<table class="vr-letters-footer-printindex"><tr><th>Jump to: </th><td><a class="summary-letter-printindex" href="#Register-Index_vr_symbol-1"><b>$</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_symbol-2"><b>%</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_symbol-3"><b>.</b></a>
<br>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-C"><b>C</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-D"><b>D</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-F"><b>F</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-G"><b>G</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-H"><b>H</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-L"><b>L</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-M"><b>M</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-N"><b>N</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-O"><b>O</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-P"><b>P</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-Q"><b>Q</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-R"><b>R</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-S"><b>S</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-T"><b>T</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-U"><b>U</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-V"><b>V</b></a>
<a class="summary-letter-printindex" href="#Register-Index_vr_letter-Y"><b>Y</b></a>
</td></tr></table>
</div>
<hr>
</div>
<div class="appendix-level-extent" id="Macro-Index">
<div class="nav-panel">
<p>
Next: <a href="#String-Index" accesskey="n" rel="next">String Index</a>, Previous: <a href="#Register-Index" accesskey="p" rel="prev">Register Index</a>, Up: <a href="#Top" accesskey="u" rel="up">GNU <code class="code">troff</code></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h2 class="appendix" id="Macro-Index-1">Appendix F Macro Index</h2>
<p>The macro package a specific macro belongs to is appended in brackets.
They appear without the leading control character (normally ‘<samp class="samp">.</samp>’).
</p>
<div class="printindex ma-printindex">
<table class="ma-letters-header-printindex"><tr><th>Jump to: </th><td><a class="summary-letter-printindex" href="#Macro-Index_ma_symbol-1"><b>1</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_symbol-2"><b>2</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_symbol-3"><b>[</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_symbol-4"><b>]</b></a>
<br>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-A"><b>A</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-B"><b>B</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-C"><b>C</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-D"><b>D</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-E"><b>E</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-F"><b>F</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-G"><b>G</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-H"><b>H</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-I"><b>I</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-K"><b>K</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-L"><b>L</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-M"><b>M</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-N"><b>N</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-O"><b>O</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-P"><b>P</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-Q"><b>Q</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-R"><b>R</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-S"><b>S</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-T"><b>T</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-U"><b>U</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-V"><b>V</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-X"><b>X</b></a>
</td></tr></table>
<table class="ma-entries-printindex" border="0">
<tr><td></td><th class="entries-header-printindex">Index Entry</th><td> </td><th class="sections-header-printindex"> Section</th></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Macro-Index_ma_symbol-1">1</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-1C-_005bms_005d"><code>1C <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Multiple-Columns">ms Multiple Columns</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Macro-Index_ma_symbol-2">2</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-2C-_005bms_005d"><code>2C <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Multiple-Columns">ms Multiple Columns</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Macro-Index_ma_symbol-3">[</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005b-_005bms_005d"><code>[ <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Insertions">ms Insertions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Macro-Index_ma_symbol-4">]</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005d-_005bms_005d"><code>] <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Insertions">ms Insertions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Macro-Index_ma_letter-A">A</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-AB-_005bms_005d"><code>AB <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Description-Macros">ms Document Description Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-AE-_005bms_005d"><code>AE <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Description-Macros">ms Document Description Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-AI-_005bms_005d"><code>AI <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Description-Macros">ms Document Description Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-AM-_005bms_005d"><code>AM <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-AU-_005bms_005d"><code>AU <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Description-Macros">ms Document Description Macros</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Macro-Index_ma_letter-B">B</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-B-_005bms_005d"><code>B <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Typeface-and-decoration">Typeface and decoration</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-B1-_005bms_005d"><code>B1 <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-keeps-and-displays">ms keeps and displays</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-B2-_005bms_005d"><code>B2 <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-keeps-and-displays">ms keeps and displays</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-BD-_005bms_005d"><code>BD <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-keeps-and-displays">ms keeps and displays</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-BI-_005bms_005d"><code>BI <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Typeface-and-decoration">Typeface and decoration</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-BT-_005bman_005d"><code>BT <span class="r">[</span>man<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Optional-man-extensions">Optional man extensions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-BX-_005bms_005d"><code>BX <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Typeface-and-decoration">Typeface and decoration</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Macro-Index_ma_letter-C">C</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-CD-_005bms_005d"><code>CD <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-keeps-and-displays">ms keeps and displays</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-CT-_005bman_005d"><code>CT <span class="r">[</span>man<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Optional-man-extensions">Optional man extensions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-CW-_005bman_005d"><code>CW <span class="r">[</span>man<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Optional-man-extensions">Optional man extensions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-CW-_005bms_005d"><code>CW <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Typeface-and-decoration">Typeface and decoration</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Macro-Index_ma_letter-D">D</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-DA-_005bms_005d"><code>DA <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Description-Macros">ms Document Description Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-De-_005bman_005d"><code>De <span class="r">[</span>man<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Optional-man-extensions">Optional man extensions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-DE-_005bms_005d"><code>DE <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-keeps-and-displays">ms keeps and displays</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-Ds-_005bman_005d"><code>Ds <span class="r">[</span>man<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Optional-man-extensions">Optional man extensions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-DS-_005bms_005d"><code>DS <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-keeps-and-displays">ms keeps and displays</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-DS-_005bms_005d-1"><code>DS <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-keeps-and-displays">ms keeps and displays</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-DS-_005bms_005d-2"><code>DS <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-keeps-and-displays">ms keeps and displays</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-DS-_005bms_005d-3"><code>DS <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-keeps-and-displays">ms keeps and displays</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-DS-_005bms_005d-4"><code>DS <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-keeps-and-displays">ms keeps and displays</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Macro-Index_ma_letter-E">E</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-EE-_005bman_005d"><code>EE <span class="r">[</span>man<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Optional-man-extensions">Optional man extensions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-EF-_005bms_005d"><code>EF <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Headers-and-Footers">ms Headers and Footers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-EH-_005bms_005d"><code>EH <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Headers-and-Footers">ms Headers and Footers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-EN-_005bms_005d"><code>EN <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Insertions">ms Insertions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-EQ-_005bms_005d"><code>EQ <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Insertions">ms Insertions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-EX-_005bman_005d"><code>EX <span class="r">[</span>man<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Optional-man-extensions">Optional man extensions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Macro-Index_ma_letter-F">F</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-FE-_005bms_005d"><code>FE <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Footnotes">ms Footnotes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-FS-_005bms_005d"><code>FS <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Footnotes">ms Footnotes</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Macro-Index_ma_letter-G">G</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-G-_005bman_005d"><code>G <span class="r">[</span>man<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Optional-man-extensions">Optional man extensions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-GL-_005bman_005d"><code>GL <span class="r">[</span>man<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Optional-man-extensions">Optional man extensions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Macro-Index_ma_letter-H">H</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-HB-_005bman_005d"><code>HB <span class="r">[</span>man<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Optional-man-extensions">Optional man extensions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Macro-Index_ma_letter-I">I</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-I-_005bms_005d"><code>I <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Typeface-and-decoration">Typeface and decoration</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ID-_005bms_005d"><code>ID <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-keeps-and-displays">ms keeps and displays</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-IP-_005bms_005d"><code>IP <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Paragraphs-in-ms">Paragraphs in ms</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Macro-Index_ma_letter-K">K</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-KE-_005bms_005d"><code>KE <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-keeps-and-displays">ms keeps and displays</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-KF-_005bms_005d"><code>KF <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-keeps-and-displays">ms keeps and displays</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-KS-_005bms_005d"><code>KS <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-keeps-and-displays">ms keeps and displays</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Macro-Index_ma_letter-L">L</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-LD-_005bms_005d"><code>LD <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-keeps-and-displays">ms keeps and displays</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-LG-_005bms_005d"><code>LG <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Typeface-and-decoration">Typeface and decoration</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-LP-_005bms_005d"><code>LP <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Paragraphs-in-ms">Paragraphs in ms</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Macro-Index_ma_letter-M">M</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-MC-_005bms_005d"><code>MC <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Multiple-Columns">ms Multiple Columns</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-MS-_005bman_005d"><code>MS <span class="r">[</span>man<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Optional-man-extensions">Optional man extensions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Macro-Index_ma_letter-N">N</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ND-_005bms_005d"><code>ND <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Description-Macros">ms Document Description Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-NE-_005bman_005d"><code>NE <span class="r">[</span>man<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Optional-man-extensions">Optional man extensions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-NH-_005bms_005d"><code>NH <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Headings-in-ms">Headings in ms</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-NL-_005bms_005d"><code>NL <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Typeface-and-decoration">Typeface and decoration</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-NT-_005bman_005d"><code>NT <span class="r">[</span>man<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Optional-man-extensions">Optional man extensions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Macro-Index_ma_letter-O">O</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-OF-_005bms_005d"><code>OF <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Headers-and-Footers">ms Headers and Footers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-OH-_005bms_005d"><code>OH <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Headers-and-Footers">ms Headers and Footers</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Macro-Index_ma_letter-P">P</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-P1-_005bms_005d"><code>P1 <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Headers-and-Footers">ms Headers and Footers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-PE-_005bms_005d"><code>PE <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Insertions">ms Insertions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-PF-_005bms_005d"><code>PF <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Insertions">ms Insertions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-PN-_005bman_005d"><code>PN <span class="r">[</span>man<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Optional-man-extensions">Optional man extensions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-Pn-_005bman_005d"><code>Pn <span class="r">[</span>man<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Optional-man-extensions">Optional man extensions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-PP-_005bms_005d"><code>PP <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Paragraphs-in-ms">Paragraphs in ms</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-PS-_005bms_005d"><code>PS <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Insertions">ms Insertions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-PT-_005bman_005d"><code>PT <span class="r">[</span>man<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Optional-man-extensions">Optional man extensions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-PX-_005bms_005d"><code>PX <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-TOC">ms TOC</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Macro-Index_ma_letter-Q">Q</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-QE-_005bms_005d"><code>QE <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Paragraphs-in-ms">Paragraphs in ms</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-QP-_005bms_005d"><code>QP <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Paragraphs-in-ms">Paragraphs in ms</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-QS-_005bms_005d"><code>QS <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Paragraphs-in-ms">Paragraphs in ms</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Macro-Index_ma_letter-R">R</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-R-_005bman_005d"><code>R <span class="r">[</span>man<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Optional-man-extensions">Optional man extensions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-R-_005bms_005d"><code>R <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Typeface-and-decoration">Typeface and decoration</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-RD-_005bms_005d"><code>RD <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-keeps-and-displays">ms keeps and displays</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-RE-_005bms_005d"><code>RE <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Indented-regions-in-ms">Indented regions in ms</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-RN-_005bman_005d"><code>RN <span class="r">[</span>man<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Optional-man-extensions">Optional man extensions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-RP-_005bms_005d"><code>RP <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Description-Macros">ms Document Description Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-RS-_005bms_005d"><code>RS <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Indented-regions-in-ms">Indented regions in ms</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Macro-Index_ma_letter-S">S</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-SH-_005bms_005d"><code>SH <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Headings-in-ms">Headings in ms</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-SM-_005bms_005d"><code>SM <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Typeface-and-decoration">Typeface and decoration</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Macro-Index_ma_letter-T">T</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-TA-_005bms_005d"><code>TA <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Tab-Stops-in-ms">Tab Stops in ms</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-TB-_005bman_005d"><code>TB <span class="r">[</span>man<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Optional-man-extensions">Optional man extensions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-TC-_005bms_005d"><code>TC <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-TOC">ms TOC</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-TE-_005bms_005d"><code>TE <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Insertions">ms Insertions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-TL-_005bms_005d"><code>TL <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Description-Macros">ms Document Description Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-TS-_005bms_005d"><code>TS <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Insertions">ms Insertions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Macro-Index_ma_letter-U">U</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-UL-_005bms_005d"><code>UL <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Typeface-and-decoration">Typeface and decoration</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Macro-Index_ma_letter-V">V</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-VE-_005bman_005d"><code>VE <span class="r">[</span>man<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Optional-man-extensions">Optional man extensions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-VS-_005bman_005d"><code>VS <span class="r">[</span>man<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Optional-man-extensions">Optional man extensions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Macro-Index_ma_letter-X">X</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-XA-_005bms_005d"><code>XA <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-TOC">ms TOC</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-XE-_005bms_005d"><code>XE <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-TOC">ms TOC</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-XH-_005bms_005d"><code>XH <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-TOC">ms TOC</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-XH_002dREPLACEMENT-_005bms_005d"><code>XH-REPLACEMENT <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-TOC">ms TOC</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-XH_002dUPDATE_002dTOC-_005bms_005d"><code>XH-UPDATE-TOC <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-TOC">ms TOC</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-XN-_005bms_005d"><code>XN <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-TOC">ms TOC</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-XN_002dINIT-_005bms_005d"><code>XN-INIT <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-TOC">ms TOC</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-XN_002dREPLACEMENT-_005bms_005d"><code>XN-REPLACEMENT <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-TOC">ms TOC</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-XP-_005bms_005d"><code>XP <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Paragraphs-in-ms">Paragraphs in ms</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-XS-_005bms_005d"><code>XS <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-TOC">ms TOC</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
</table>
<table class="ma-letters-footer-printindex"><tr><th>Jump to: </th><td><a class="summary-letter-printindex" href="#Macro-Index_ma_symbol-1"><b>1</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_symbol-2"><b>2</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_symbol-3"><b>[</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_symbol-4"><b>]</b></a>
<br>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-A"><b>A</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-B"><b>B</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-C"><b>C</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-D"><b>D</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-E"><b>E</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-F"><b>F</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-G"><b>G</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-H"><b>H</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-I"><b>I</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-K"><b>K</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-L"><b>L</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-M"><b>M</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-N"><b>N</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-O"><b>O</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-P"><b>P</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-Q"><b>Q</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-R"><b>R</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-S"><b>S</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-T"><b>T</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-U"><b>U</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-V"><b>V</b></a>
<a class="summary-letter-printindex" href="#Macro-Index_ma_letter-X"><b>X</b></a>
</td></tr></table>
</div>
<hr>
</div>
<div class="appendix-level-extent" id="String-Index">
<div class="nav-panel">
<p>
Next: <a href="#File-Keyword-Index" accesskey="n" rel="next">File Keyword Index</a>, Previous: <a href="#Macro-Index" accesskey="p" rel="prev">Macro Index</a>, Up: <a href="#Top" accesskey="u" rel="up">GNU <code class="code">troff</code></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h2 class="appendix" id="String-Index-1">Appendix G String Index</h2>
<p>The macro package or program a that defines or uses each string is
appended in brackets. (Only one string, <code class="code">.T</code>, is defined by the
<code class="code">troff</code> formatter itself.) See <a class="xref" href="#Strings">Strings</a>.
</p>
<div class="printindex st-printindex">
<table class="st-letters-header-printindex"><tr><th>Jump to: </th><td><a class="summary-letter-printindex" href="#String-Index_st_symbol-1"><b>!</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-2"><b>'</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-3"><b>*</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-4"><b>,</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-5"><b>-</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-6"><b>.</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-7"><b>/</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-8"><b>3</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-9"><b>8</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-10"><b>:</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-11"><b><</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-12"><b>></b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-13"><b>?</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-14"><b>^</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-15"><b>_</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-16"><b>`</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-17"><b>{</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-18"><b>}</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-19"><b>~</b></a>
<br>
<a class="summary-letter-printindex" href="#String-Index_st_letter-A"><b>A</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_letter-C"><b>C</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_letter-D"><b>D</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_letter-F"><b>F</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_letter-L"><b>L</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_letter-M"><b>M</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_letter-O"><b>O</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_letter-Q"><b>Q</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_letter-R"><b>R</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_letter-S"><b>S</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_letter-T"><b>T</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_letter-U"><b>U</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_letter-V"><b>V</b></a>
</td></tr></table>
<table class="st-entries-printindex" border="0">
<tr><td></td><th class="entries-header-printindex">Index Entry</th><td> </td><th class="sections-header-printindex"> Section</th></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_symbol-1">!</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_0021-_005bms_005d"><code>! <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_symbol-2">'</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_0027-_005bms_005d"><code><code class="code">'</code> <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_0027-_005bms_005d-1"><code><code class="code">'</code> <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_symbol-3">*</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002a-_005bms_005d"><code>* <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Footnotes">ms Footnotes</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_symbol-4">,</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002c-_005bms_005d"><code>, <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002c-_005bms_005d-1"><code>, <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_symbol-5">-</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002d-_005bms_005d"><code>- <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Typographical-symbols-in-ms">Typographical symbols in ms</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_symbol-6">.</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002e-_005bms_005d"><code>. <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002eT"><code>.T</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002eT-1"><code>.T</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_symbol-7">/</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002f-_005bms_005d"><code>/ <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_symbol-8">3</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-3-_005bms_005d"><code>3 <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_symbol-9">8</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-8-_005bms_005d"><code>8 <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_symbol-10">:</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_003a-_005bms_005d"><code>: <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_003a-_005bms_005d-1"><code>: <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_symbol-11"><</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_003c-_005bms_005d"><code>< <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Typeface-and-decoration">Typeface and decoration</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_symbol-12">></th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_003e-_005bms_005d"><code>> <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Typeface-and-decoration">Typeface and decoration</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_symbol-13">?</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_003f-_005bms_005d"><code>? <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_symbol-14">^</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005e-_005bms_005d"><code>^ <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005e-_005bms_005d-1"><code>^ <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_symbol-15">_</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005f-_005bms_005d"><code>_ <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_symbol-16">`</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_0060-_005bms_005d"><code><code class="code">`</code> <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_0060-_005bms_005d-1"><code><code class="code">`</code> <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_symbol-17">{</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_007b-_005bms_005d"><code>{ <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Typeface-and-decoration">Typeface and decoration</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_symbol-18">}</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_007d-_005bms_005d"><code>} <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Typeface-and-decoration">Typeface and decoration</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_symbol-19">~</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_007e-_005bms_005d"><code>~ <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_007e-_005bms_005d-1"><code>~ <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_letter-A">A</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ABSTRACT-_005bms_005d"><code>ABSTRACT <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-language-and-localization">ms language and localization</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ae-_005bms_005d"><code>ae <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-Ae-_005bms_005d"><code>Ae <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_letter-C">C</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-C-_005bms_005d"><code>C <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-CF-_005bms_005d"><code>CF <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-CH-_005bms_005d"><code>CH <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_letter-D">D</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-d_002d-_005bms_005d"><code>d- <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-D_002d-_005bms_005d"><code>D- <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_letter-F">F</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-FAM-_005bms_005d"><code>FAM <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-FR-_005bms_005d"><code>FR <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_letter-L">L</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-LF-_005bms_005d"><code>LF <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-LH-_005bms_005d"><code>LH <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_letter-M">M</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-MONTH1-_005bms_005d"><code>MONTH1 <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-language-and-localization">ms language and localization</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-MONTH10-_005bms_005d"><code>MONTH10 <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-language-and-localization">ms language and localization</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-MONTH11-_005bms_005d"><code>MONTH11 <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-language-and-localization">ms language and localization</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-MONTH12-_005bms_005d"><code>MONTH12 <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-language-and-localization">ms language and localization</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-MONTH2-_005bms_005d"><code>MONTH2 <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-language-and-localization">ms language and localization</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-MONTH3-_005bms_005d"><code>MONTH3 <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-language-and-localization">ms language and localization</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-MONTH4-_005bms_005d"><code>MONTH4 <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-language-and-localization">ms language and localization</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-MONTH5-_005bms_005d"><code>MONTH5 <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-language-and-localization">ms language and localization</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-MONTH6-_005bms_005d"><code>MONTH6 <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-language-and-localization">ms language and localization</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-MONTH7-_005bms_005d"><code>MONTH7 <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-language-and-localization">ms language and localization</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-MONTH8-_005bms_005d"><code>MONTH8 <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-language-and-localization">ms language and localization</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-MONTH9-_005bms_005d"><code>MONTH9 <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-language-and-localization">ms language and localization</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_letter-O">O</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-o-_005bms_005d"><code>o <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-oe-_005bms_005d"><code>oe <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-OE-_005bms_005d"><code>OE <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_letter-Q">Q</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-Q-_005bms_005d"><code>Q <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Typographical-symbols-in-ms">Typographical symbols in ms</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-q-_005bms_005d"><code>q <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_letter-R">R</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-REFERENCES-_005bms_005d"><code>REFERENCES <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-language-and-localization">ms language and localization</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-RF-_005bms_005d"><code>RF <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-RH-_005bms_005d"><code>RH <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_letter-S">S</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-SN-_005bms_005d"><code>SN <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Headings-in-ms">Headings in ms</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-SN_002dDOT-_005bms_005d"><code>SN-DOT <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Headings-in-ms">Headings in ms</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-SN_002dNO_002dDOT-_005bms_005d"><code>SN-NO-DOT <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Headings-in-ms">Headings in ms</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-SN_002dSTYLE-_005bms_005d"><code>SN-STYLE <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-SN_002dSTYLE-_005bms_005d-1"><code>SN-STYLE <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Headings-in-ms">Headings in ms</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_letter-T">T</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-th-_005bms_005d"><code>th <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-Th-_005bms_005d"><code>Th <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-TOC-_005bms_005d"><code>TOC <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-language-and-localization">ms language and localization</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_letter-U">U</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-U-_005bms_005d"><code>U <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Typographical-symbols-in-ms">Typographical symbols in ms</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="String-Index_st_letter-V">V</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-v-_005bms_005d"><code>v <span class="r">[</span>ms<span class="r">]</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
</table>
<table class="st-letters-footer-printindex"><tr><th>Jump to: </th><td><a class="summary-letter-printindex" href="#String-Index_st_symbol-1"><b>!</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-2"><b>'</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-3"><b>*</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-4"><b>,</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-5"><b>-</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-6"><b>.</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-7"><b>/</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-8"><b>3</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-9"><b>8</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-10"><b>:</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-11"><b><</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-12"><b>></b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-13"><b>?</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-14"><b>^</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-15"><b>_</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-16"><b>`</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-17"><b>{</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-18"><b>}</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_symbol-19"><b>~</b></a>
<br>
<a class="summary-letter-printindex" href="#String-Index_st_letter-A"><b>A</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_letter-C"><b>C</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_letter-D"><b>D</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_letter-F"><b>F</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_letter-L"><b>L</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_letter-M"><b>M</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_letter-O"><b>O</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_letter-Q"><b>Q</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_letter-R"><b>R</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_letter-S"><b>S</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_letter-T"><b>T</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_letter-U"><b>U</b></a>
<a class="summary-letter-printindex" href="#String-Index_st_letter-V"><b>V</b></a>
</td></tr></table>
</div>
<hr>
</div>
<div class="appendix-level-extent" id="File-Keyword-Index">
<div class="nav-panel">
<p>
Next: <a href="#Program-and-File-Index" accesskey="n" rel="next">Program and File Index</a>, Previous: <a href="#String-Index" accesskey="p" rel="prev">String Index</a>, Up: <a href="#Top" accesskey="u" rel="up">GNU <code class="code">troff</code></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h2 class="appendix" id="File-Keyword-Index-1">Appendix H File Keyword Index</h2>
<div class="printindex ky-printindex">
<table class="ky-letters-header-printindex"><tr><th>Jump to: </th><td><a class="summary-letter-printindex" href="#File-Keyword-Index_ky_symbol-1"><b>#</b></a>
<a class="summary-letter-printindex" href="#File-Keyword-Index_ky_symbol-2"><b>-</b></a>
<br>
<a class="summary-letter-printindex" href="#File-Keyword-Index_ky_letter-B"><b>B</b></a>
<a class="summary-letter-printindex" href="#File-Keyword-Index_ky_letter-C"><b>C</b></a>
<a class="summary-letter-printindex" href="#File-Keyword-Index_ky_letter-F"><b>F</b></a>
<a class="summary-letter-printindex" href="#File-Keyword-Index_ky_letter-H"><b>H</b></a>
<a class="summary-letter-printindex" href="#File-Keyword-Index_ky_letter-I"><b>I</b></a>
<a class="summary-letter-printindex" href="#File-Keyword-Index_ky_letter-K"><b>K</b></a>
<a class="summary-letter-printindex" href="#File-Keyword-Index_ky_letter-L"><b>L</b></a>
<a class="summary-letter-printindex" href="#File-Keyword-Index_ky_letter-N"><b>N</b></a>
<a class="summary-letter-printindex" href="#File-Keyword-Index_ky_letter-P"><b>P</b></a>
<a class="summary-letter-printindex" href="#File-Keyword-Index_ky_letter-R"><b>R</b></a>
<a class="summary-letter-printindex" href="#File-Keyword-Index_ky_letter-S"><b>S</b></a>
<a class="summary-letter-printindex" href="#File-Keyword-Index_ky_letter-T"><b>T</b></a>
<a class="summary-letter-printindex" href="#File-Keyword-Index_ky_letter-U"><b>U</b></a>
<a class="summary-letter-printindex" href="#File-Keyword-Index_ky_letter-V"><b>V</b></a>
</td></tr></table>
<table class="ky-entries-printindex" border="0">
<tr><td></td><th class="entries-header-printindex">Index Entry</th><td> </td><th class="sections-header-printindex"> Section</th></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="File-Keyword-Index_ky_symbol-1">#</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_0023"><code>#</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_0023-1"><code>#</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Description-File-Format">Font Description File Format</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="File-Keyword-Index_ky_symbol-2">-</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002d_002d_002d"><code>---</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Description-File-Format">Font Description File Format</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="File-Keyword-Index_ky_letter-B">B</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-biggestfont"><code>biggestfont</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="File-Keyword-Index_ky_letter-C">C</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-charset"><code>charset</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-charset-1"><code>charset</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Description-File-Format">Font Description File Format</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="File-Keyword-Index_ky_letter-F">F</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-family"><code>family</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-family-1"><code>family</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fonts"><code>fonts</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fonts-1"><code>fonts</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Special-Fonts">Special Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fonts-2"><code>fonts</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="File-Keyword-Index_ky_letter-H">H</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hor"><code>hor</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="File-Keyword-Index_ky_letter-I">I</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-image_005fgenerator"><code>image_generator</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="File-Keyword-Index_ky_letter-K">K</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-kernpairs"><code>kernpairs</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Description-File-Format">Font Description File Format</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="File-Keyword-Index_ky_letter-L">L</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ligatures"><code>ligatures</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Description-File-Format">Font Description File Format</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="File-Keyword-Index_ky_letter-N">N</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-name"><code>name</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Description-File-Format">Font Description File Format</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="File-Keyword-Index_ky_letter-P">P</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-paperlength"><code>paperlength</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-papersize"><code>papersize</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-paperwidth"><code>paperwidth</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-pass_005ffilenames"><code>pass_filenames</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-postpro"><code>postpro</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-prepro"><code>prepro</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-print"><code>print</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="File-Keyword-Index_ky_letter-R">R</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-res"><code>res</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="File-Keyword-Index_ky_letter-S">S</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-sizes"><code>sizes</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-sizescale"><code>sizescale</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-slant"><code>slant</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Description-File-Format">Font Description File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-spacewidth"><code>spacewidth</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Description-File-Format">Font Description File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-spare1"><code>spare1</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-spare2"><code>spare2</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-special"><code>special</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-special-1"><code>special</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Description-File-Format">Font Description File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-styles"><code>styles</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-styles-1"><code>styles</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Families">Font Families</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-styles-2"><code>styles</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="File-Keyword-Index_ky_letter-T">T</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tcommand"><code>tcommand</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="File-Keyword-Index_ky_letter-U">U</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unicode"><code>unicode</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unitwidth"><code>unitwidth</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unscaled_005fcharwidths"><code>unscaled_charwidths</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-use_005fcharnames_005fin_005fspecial"><code>use_charnames_in_special</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Postprocessor-Access">Postprocessor Access</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-use_005fcharnames_005fin_005fspecial-1"><code>use_charnames_in_special</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="File-Keyword-Index_ky_letter-V">V</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-vert"><code>vert</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
</table>
<table class="ky-letters-footer-printindex"><tr><th>Jump to: </th><td><a class="summary-letter-printindex" href="#File-Keyword-Index_ky_symbol-1"><b>#</b></a>
<a class="summary-letter-printindex" href="#File-Keyword-Index_ky_symbol-2"><b>-</b></a>
<br>
<a class="summary-letter-printindex" href="#File-Keyword-Index_ky_letter-B"><b>B</b></a>
<a class="summary-letter-printindex" href="#File-Keyword-Index_ky_letter-C"><b>C</b></a>
<a class="summary-letter-printindex" href="#File-Keyword-Index_ky_letter-F"><b>F</b></a>
<a class="summary-letter-printindex" href="#File-Keyword-Index_ky_letter-H"><b>H</b></a>
<a class="summary-letter-printindex" href="#File-Keyword-Index_ky_letter-I"><b>I</b></a>
<a class="summary-letter-printindex" href="#File-Keyword-Index_ky_letter-K"><b>K</b></a>
<a class="summary-letter-printindex" href="#File-Keyword-Index_ky_letter-L"><b>L</b></a>
<a class="summary-letter-printindex" href="#File-Keyword-Index_ky_letter-N"><b>N</b></a>
<a class="summary-letter-printindex" href="#File-Keyword-Index_ky_letter-P"><b>P</b></a>
<a class="summary-letter-printindex" href="#File-Keyword-Index_ky_letter-R"><b>R</b></a>
<a class="summary-letter-printindex" href="#File-Keyword-Index_ky_letter-S"><b>S</b></a>
<a class="summary-letter-printindex" href="#File-Keyword-Index_ky_letter-T"><b>T</b></a>
<a class="summary-letter-printindex" href="#File-Keyword-Index_ky_letter-U"><b>U</b></a>
<a class="summary-letter-printindex" href="#File-Keyword-Index_ky_letter-V"><b>V</b></a>
</td></tr></table>
</div>
<hr>
</div>
<div class="appendix-level-extent" id="Program-and-File-Index">
<div class="nav-panel">
<p>
Next: <a href="#Concept-Index" accesskey="n" rel="next">Concept Index</a>, Previous: <a href="#File-Keyword-Index" accesskey="p" rel="prev">File Keyword Index</a>, Up: <a href="#Top" accesskey="u" rel="up">GNU <code class="code">troff</code></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h2 class="appendix" id="Program-and-File-Index-1">Appendix I Program and File Index</h2>
<div class="printindex pg-printindex">
<table class="pg-letters-header-printindex"><tr><th>Jump to: </th><td><a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-A"><b>A</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-C"><b>C</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-D"><b>D</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-E"><b>E</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-F"><b>F</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-G"><b>G</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-I"><b>I</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-J"><b>J</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-L"><b>L</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-M"><b>M</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-N"><b>N</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-P"><b>P</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-R"><b>R</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-S"><b>S</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-T"><b>T</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-V"><b>V</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-Z"><b>Z</b></a>
</td></tr></table>
<table class="pg-entries-printindex" border="0">
<tr><td></td><th class="entries-header-printindex">Index Entry</th><td> </td><th class="sections-header-printindex"> Section</th></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Program-and-File-Index_pg_letter-A">A</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-an_002etmac"><code>an.tmac</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#man">man</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Program-and-File-Index_pg_letter-C">C</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-changebar"><code>changebar</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Miscellaneous">Miscellaneous</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-composite_002etmac"><code>composite.tmac</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-cp1047_002etmac"><code>cp1047.tmac</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Encodings">Input Encodings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-cs_002etmac"><code>cs.tmac</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Program-and-File-Index_pg_letter-D">D</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-de_002etmac"><code>de.tmac</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-DESC"><code>DESC</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-DESC-1"><code>DESC</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Families">Font Families</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-DESC-2"><code>DESC</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-DESC-3"><code>DESC</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-DESC-4"><code>DESC</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Special-Fonts">Special Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-diffmk"><code>diffmk</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Miscellaneous">Miscellaneous</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Program-and-File-Index_pg_letter-E">E</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ec_002etmac"><code>ec.tmac</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Encodings">Input Encodings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-en_002etmac"><code>en.tmac</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-eqn"><code>eqn</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Insertions">ms Insertions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Program-and-File-Index_pg_letter-F">F</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fr_002etmac"><code>fr.tmac</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-freeeuro_002epfa"><code>freeeuro.pfa</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Encodings">Input Encodings</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Program-and-File-Index_pg_letter-G">G</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-gchem"><code>gchem</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-gdiffmk"><code>gdiffmk</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Miscellaneous">Miscellaneous</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-geqn"><code>geqn</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ggrn"><code>ggrn</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-gpic"><code>gpic</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-grap"><code>grap</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-grefer"><code>grefer</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-groff"><code>groff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-gsoelim"><code>gsoelim</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-gtbl"><code>gtbl</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-gtroff"><code>gtroff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Program-and-File-Index_pg_letter-I">I</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-it_002etmac"><code>it.tmac</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Program-and-File-Index_pg_letter-J">J</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ja_002etmac"><code>ja.tmac</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Program-and-File-Index_pg_letter-L">L</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-latin1_002etmac"><code>latin1.tmac</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Encodings">Input Encodings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-latin2_002etmac"><code>latin2.tmac</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Encodings">Input Encodings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-latin5_002etmac"><code>latin5.tmac</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Encodings">Input Encodings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-latin9_002etmac"><code>latin9.tmac</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Encodings">Input Encodings</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Program-and-File-Index_pg_letter-M">M</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-makeindex"><code>makeindex</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Indexing">Indexing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-man_002elocal"><code>man.local</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Optional-man-extensions">Optional man extensions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-man_002etmac"><code>man.tmac</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#man">man</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-man_002eultrix"><code>man.ultrix</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Optional-man-extensions">Optional man extensions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Program-and-File-Index_pg_letter-N">N</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-nrchbar"><code>nrchbar</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Miscellaneous">Miscellaneous</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Program-and-File-Index_pg_letter-P">P</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-papersize_002etmac"><code>papersize.tmac</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Paper-Format">Paper Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-perl"><code>perl</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-pic"><code>pic</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Insertions">ms Insertions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-post_002dgrohtml"><code>post-grohtml</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-pre_002dgrohtml"><code>pre-grohtml</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-preconv"><code>preconv</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Program-and-File-Index_pg_letter-R">R</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-refer"><code>refer</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Insertions">ms Insertions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Program-and-File-Index_pg_letter-S">S</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-soelim"><code>soelim</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-sv_002etmac"><code>sv.tmac</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Program-and-File-Index_pg_letter-T">T</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tbl"><code>tbl</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Insertions">ms Insertions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-trace_002etmac"><code>trace.tmac</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Writing-Macros">Writing Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-troffrc"><code>troffrc</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-troffrc-1"><code>troffrc</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Paper-Format">Paper Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-troffrc-2"><code>troffrc</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-troffrc-3"><code>troffrc</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-troffrc-4"><code>troffrc</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#troff-and-nroff-Modes"><code class="code">troff</code> and <code class="code">nroff</code> Modes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-troffrc_002dend"><code>troffrc-end</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-troffrc_002dend-1"><code>troffrc-end</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-troffrc_002dend-2"><code>troffrc-end</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#troff-and-nroff-Modes"><code class="code">troff</code> and <code class="code">nroff</code> Modes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tty_002etmac"><code>tty.tmac</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#troff-and-nroff-Modes"><code class="code">troff</code> and <code class="code">nroff</code> Modes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tty_002etmac-1"><code>tty.tmac</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Layout">Line Layout</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Program-and-File-Index_pg_letter-V">V</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-vtroff"><code>vtroff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Operators-in-Conditionals">Operators in Conditionals</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Program-and-File-Index_pg_letter-Z">Z</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-zh_002etmac"><code>zh.tmac</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
</table>
<table class="pg-letters-footer-printindex"><tr><th>Jump to: </th><td><a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-A"><b>A</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-C"><b>C</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-D"><b>D</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-E"><b>E</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-F"><b>F</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-G"><b>G</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-I"><b>I</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-J"><b>J</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-L"><b>L</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-M"><b>M</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-N"><b>N</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-P"><b>P</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-R"><b>R</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-S"><b>S</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-T"><b>T</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-V"><b>V</b></a>
<a class="summary-letter-printindex" href="#Program-and-File-Index_pg_letter-Z"><b>Z</b></a>
</td></tr></table>
</div>
<hr>
</div>
<div class="appendix-level-extent" id="Concept-Index">
<div class="nav-panel">
<p>
Previous: <a href="#Program-and-File-Index" accesskey="p" rel="prev">Program and File Index</a>, Up: <a href="#Top" accesskey="u" rel="up">GNU <code class="code">troff</code></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h2 class="appendix" id="Concept-Index-1">Appendix J Concept Index</h2>
<div class="printindex cp-printindex">
<table class="cp-letters-header-printindex"><tr><th>Jump to: </th><td><a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-1"><b>"</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-2"><b>%</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-3"><b>&</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-4"><b>'</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-5"><b>(</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-6"><b>)</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-7"><b>*</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-8"><b>+</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-9"><b>-</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-10"><b>.</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-11"><b>/</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-12"><b>8</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-13"><b>:</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-14"><b><</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-15"><b>=</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-16"><b>></b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-17"><b>[</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-18"><b>\</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-19"><b>]</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-20"><b>|</b></a>
<br>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-A"><b>A</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-B"><b>B</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-C"><b>C</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-D"><b>D</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-E"><b>E</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-F"><b>F</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-G"><b>G</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-H"><b>H</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-I"><b>I</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-J"><b>J</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-K"><b>K</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-L"><b>L</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-M"><b>M</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-N"><b>N</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-O"><b>O</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-P"><b>P</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-Q"><b>Q</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-R"><b>R</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-S"><b>S</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-T"><b>T</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-U"><b>U</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-V"><b>V</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-W"><b>W</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-Y"><b>Y</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-Z"><b>Z</b></a>
</td></tr></table>
<table class="cp-entries-printindex" border="0">
<tr><td></td><th class="entries-header-printindex">Index Entry</th><td> </td><th class="sections-header-printindex"> Section</th></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_symbol-1">"</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_0022_002c-as-delimiter"><code class="code">"</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_0022_002c-at-end-of-sentence"><code class="code">"</code>, at end of sentence</a>:</td><td> </td><td class="printindex-index-section"><a href="#Sentences">Sentences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_0022_002c-at-end-of-sentence-1"><code class="code">"</code>, at end of sentence</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_0022_002c-embedding-in-a-macro-argument"><code class="code">"</code>, embedding in a macro argument</a>:</td><td> </td><td class="printindex-index-section"><a href="#Calling-Macros">Calling Macros</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_symbol-2">%</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_0025_002c-as-delimiter"><code class="code">%</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_symbol-3">&</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_0026_002c-as-delimiter"><code class="code">&</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_symbol-4">'</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_0027_002c-as-a-comment"><code class="code">'</code>, as a comment</a>:</td><td> </td><td class="printindex-index-section"><a href="#Comments">Comments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_0027_002c-as-delimiter"><code class="code">'</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_0027_002c-at-end-of-sentence"><code class="code">'</code>, at end of sentence</a>:</td><td> </td><td class="printindex-index-section"><a href="#Sentences">Sentences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_0027_002c-at-end-of-sentence-1"><code class="code">'</code>, at end of sentence</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_symbol-5">(</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_0028_002c-as-delimiter"><code class="code">(</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_symbol-6">)</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_0029_002c-as-delimiter"><code class="code">)</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_0029_002c-at-end-of-sentence"><code class="code">)</code>, at end of sentence</a>:</td><td> </td><td class="printindex-index-section"><a href="#Sentences">Sentences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_0029_002c-at-end-of-sentence-1"><code class="code">)</code>, at end of sentence</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_symbol-7">*</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002a_002c-as-delimiter"><code class="code">*</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002a_002c-at-end-of-sentence"><code class="code">*</code>, at end of sentence</a>:</td><td> </td><td class="printindex-index-section"><a href="#Sentences">Sentences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002a_002c-at-end-of-sentence-1"><code class="code">*</code>, at end of sentence</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_symbol-8">+</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002b_002c-and-page-motion"><code class="code">+</code>, and page motion</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002b_002c-as-delimiter"><code class="code">+</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_symbol-9">-</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002d_002c-and-page-motion"><code class="code">-</code>, and page motion</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002d_002c-as-delimiter"><code class="code">-</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_symbol-10">.</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002e_002c-as-delimiter"><code class="code">.</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002eh-register_002c-difference-from-nl"><code class="code">.h</code> register, difference from <code class="code">nl</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002eps-register_002c-in-comparison-with-_002epsr"><code class="code">.ps</code> register, in comparison with <code class="code">.psr</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002es-register_002c-in-comparison-with-_002esr"><code class="code">.s</code> register, in comparison with <code class="code">.sr</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002eS-register_002c-Plan-9-alias-for-_002etabs"><code class="code">.S</code> register, Plan 9 alias for <code class="code">.tabs</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Fields">Tabs and Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002et-register_002c-and-diversions"><code class="code">.t</code> register, and diversions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversion-Traps">Diversion Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002etabs-register_002c-Plan-9-alias-_0028_002eS_0029"><code class="code">.tabs</code> register, Plan 9 alias (<code class="code">.S</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Fields">Tabs and Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002eV-register_002c-and-vs"><code class="code">.V</code> register, and <code class="code">vs</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Vertical-Spacing">Changing the Vertical Spacing</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_symbol-11">/</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_002f_002c-as-delimiter"><code class="code">/</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_symbol-12">8</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-8_002dbit-input">8-bit input</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Description-File-Format">Font Description File Format</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_symbol-13">:</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_003a_002c-as-delimiter"><code class="code">:</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_symbol-14"><</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_003c_002c-as-delimiter"><code class="code"><</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_symbol-15">=</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_003d_002c-as-delimiter"><code class="code">=</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_symbol-16">></th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_003e_002c-as-delimiter"><code class="code">></code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_symbol-17">[</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005b_002c-macro-names-starting-with_002c-and-refer"><code class="code">[</code>, macro names starting with, and <code class="code">refer</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Identifiers">Identifiers</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_symbol-18">\</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0021_002c-and-copy-mode"><code class="code">\!</code>, and copy mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0021_002c-and-output-request"><code class="code">\!</code>, and <code class="code">output</code> request</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0021_002c-and-trnt"><code class="code">\!</code>, and <code class="code">trnt</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0021_002c-as-delimiter"><code class="code">\!</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0021_002c-as-delimiter-1"><code class="code">\!</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0021_002c-in-top_002dlevel-diversion"><code class="code">\!</code>, in top-level diversion</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0021_002c-incompatibilities-with-AT_0026T-troff"><code class="code">\!</code>, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0021_002c-incompatibilities-with-AT_0026T-troff-1"><code class="code">\!</code>, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0024_002c-when-reading-text-for-a-macro"><code class="code">\$</code>, when reading text for a macro</a>:</td><td> </td><td class="printindex-index-section"><a href="#Copy-Mode">Copy Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0025_002c-and-translations"><code class="code">\%</code>, and translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0025_002c-as-delimiter"><code class="code">\%</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0025_002c-as-delimiter-1"><code class="code">\%</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0025_002c-following-_005cX-or-_005cY"><code class="code">\%</code>, following <code class="code">\X</code> or <code class="code">\Y</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0025_002c-in-_005cX"><code class="code">\%</code>, in <code class="code">\X</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Postprocessor-Access">Postprocessor Access</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0025_002c-incompatibilities-with-AT_0026T-troff"><code class="code">\%</code>, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0026_002c-and-glyph-definitions"><code class="code">\&</code>, and glyph definitions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0026_002c-and-translations"><code class="code">\&</code>, and translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0026_002c-as-delimiter"><code class="code">\&</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0026_002c-at-end-of-sentence"><code class="code">\&</code>, at end of sentence</a>:</td><td> </td><td class="printindex-index-section"><a href="#Sentences">Sentences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0026_002c-in-_005cX"><code class="code">\&</code>, in <code class="code">\X</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Postprocessor-Access">Postprocessor Access</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0026_002c-incompatibilities-with-AT_0026T-troff"><code class="code">\&</code>, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0027_002c-and-translations"><code class="code">\'</code>, and translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0027_002c-as-delimiter"><code class="code">\'</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0027_002c-as-delimiter-1"><code class="code">\'</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0027_002c-incompatibilities-with-AT_0026T-troff"><code class="code">\'</code>, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0028_002c-and-translations"><code class="code">\(</code>, and translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0029_002c-as-delimiter"><code class="code">\)</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0029_002c-in-_005cX"><code class="code">\)</code>, in <code class="code">\X</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Postprocessor-Access">Postprocessor Access</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_002a_002c-and-warnings"><code class="code">\*</code>, and warnings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Warnings">Warnings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_002a_002c-incompatibilities-with-AT_0026T-troff"><code class="code">\*</code>, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Compatibility-Mode">Compatibility Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_002a_002c-when-reading-text-for-a-macro"><code class="code">\*</code>, when reading text for a macro</a>:</td><td> </td><td class="printindex-index-section"><a href="#Copy-Mode">Copy Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_002c-disabling-_0028eo_0029"><code class="code">\</code>, disabling (<code class="code">eo</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Escape-Sequences">Using Escape Sequences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_002c-embedding-in-a-macro-argument"><code class="code">\</code>, embedding in a macro argument</a>:</td><td> </td><td class="printindex-index-section"><a href="#Calling-Macros">Calling Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_002c_002c-as-delimiter"><code class="code">\,</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_002d-glyph_002c-and-cflags"><code class="code">\-</code> glyph, and <code class="code">cflags</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_002d_002c-and-translations"><code class="code">\-</code>, and translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_002d_002c-as-delimiter"><code class="code">\-</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_002d_002c-as-delimiter-1"><code class="code">\-</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_002d_002c-incompatibilities-with-AT_0026T-troff"><code class="code">\-</code>, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_002f_002c-as-delimiter"><code class="code">\/</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_002f_002c-as-delimiter-1"><code class="code">\/</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c0_002c-as-delimiter"><code class="code">\0</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_003a_002c-as-delimiter"><code class="code">\:</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_003a_002c-as-delimiter-1"><code class="code">\:</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_003a_002c-in-_005cX"><code class="code">\:</code>, in <code class="code">\X</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Postprocessor-Access">Postprocessor Access</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_003f_002c-and-copy-mode"><code class="code">\?</code>, and copy mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Operators-in-Conditionals">Operators in Conditionals</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_003f_002c-and-copy-mode-1"><code class="code">\?</code>, and copy mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_003f_002c-as-delimiter"><code class="code">\?</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_003f_002c-in-top_002dlevel-diversion"><code class="code">\?</code>, in top-level diversion</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_003f_002c-incompatibilities-with-AT_0026T-troff"><code class="code">\?</code>, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005ca_002c-and-copy-mode"><code class="code">\a</code>, and copy mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Leaders">Leaders</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005ca_002c-and-translations"><code class="code">\a</code>, and translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005ca_002c-as-delimiter"><code class="code">\a</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cA_002c-delimiters-allowed-by"><code class="code">\A</code>, delimiters allowed by</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cA_002c-incompatibilities-with-AT_0026T-troff"><code class="code">\A</code>, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cb_002c-delimiters-allowed-by"><code class="code">\b</code>, delimiters allowed by</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cb_002c-limitations-of"><code class="code">\b</code>, limitations of</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cC_002c-and-translations"><code class="code">\C</code>, and translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cc_002c-as-delimiter"><code class="code">\c</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cc_002c-as-delimiter-1"><code class="code">\c</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cc_002c-incompatibilities-with-AT_0026T-troff"><code class="code">\c</code>, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cc_002c-when-filling-disabled"><code class="code">\c</code>, when filling disabled</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Continuation">Line Continuation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cc_002c-when-filling-enabled"><code class="code">\c</code>, when filling enabled</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Continuation">Line Continuation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cd_002c-as-delimiter"><code class="code">\d</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cD_002c-delimiters-allowed-by"><code class="code">\D</code>, delimiters allowed by</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005ce_002c-and-glyph-definitions"><code class="code">\e</code>, and glyph definitions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005ce_002c-and-translations"><code class="code">\e</code>, and translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005ce_002c-as-delimiter"><code class="code">\e</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cE_002c-as-delimiter"><code class="code">\E</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005ce_002c-as-delimiter-1"><code class="code">\e</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005ce_002c-incompatibilities-with-AT_0026T-troff"><code class="code">\e</code>, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cF_002c-and-changing-fonts"><code class="code">\F</code>, and changing fonts</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cf_002c-and-font-translations"><code class="code">\f</code>, and font translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cf_002c-incompatibilities-with-AT_0026T-troff"><code class="code">\f</code>, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Compatibility-Mode">Compatibility Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005ch_002c-delimiters-allowed-by"><code class="code">\h</code>, delimiters allowed by</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cH_002c-delimiters-allowed-by"><code class="code">\H</code>, delimiters allowed by</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cH_002c-incompatibilities-with-AT_0026T-troff"><code class="code">\H</code>, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Compatibility-Mode">Compatibility Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cH_002c-using-_002b-and-_002d-with"><code class="code">\H</code>, using <code class="code">+</code> and <code class="code">-</code> with</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cH_002c-with-fractional-type-sizes"><code class="code">\H</code>, with fractional type sizes</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cl_002c-and-glyph-definitions"><code class="code">\l</code>, and glyph definitions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cL_002c-and-glyph-definitions"><code class="code">\L</code>, and glyph definitions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cl_002c-delimiters-allowed-by"><code class="code">\l</code>, delimiters allowed by</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cL_002c-delimiters-allowed-by"><code class="code">\L</code>, delimiters allowed by</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cN_002c-and-translations"><code class="code">\N</code>, and translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cn_002c-and-warnings"><code class="code">\n</code>, and warnings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Warnings">Warnings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cN_002c-delimiters-allowed-by"><code class="code">\N</code>, delimiters allowed by</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cn_002c-incompatibilities-with-AT_0026T-troff"><code class="code">\n</code>, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Compatibility-Mode">Compatibility Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cn_002c-when-reading-text-for-a-macro"><code class="code">\n</code>, when reading text for a macro</a>:</td><td> </td><td class="printindex-index-section"><a href="#Copy-Mode">Copy Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005co_002c-delimiters-allowed-by"><code class="code">\o</code>, delimiters allowed by</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cp_002c-as-delimiter"><code class="code">\p</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cp_002c-as-delimiter-1"><code class="code">\p</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cR_002c-after-_005cc"><code class="code">\R</code>, after <code class="code">\c</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Continuation">Line Continuation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cR_002c-and-warnings"><code class="code">\R</code>, and warnings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Warnings">Warnings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cr_002c-as-delimiter"><code class="code">\r</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cR_002c-delimiters-allowed-by"><code class="code">\R</code>, delimiters allowed by</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cR_002c-difference-from-nr"><code class="code">\R</code>, difference from <code class="code">nr</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Auto_002dincrement">Auto-increment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cR_002c-using-_002b-and-_002d-with"><code class="code">\R</code>, using <code class="code">+</code> and <code class="code">-</code> with</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cRET_002c-when-reading-text-for-a-macro">\<kbd class="key">RET</kbd>, when reading text for a macro</a>:</td><td> </td><td class="printindex-index-section"><a href="#Copy-Mode">Copy Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cs_002c-delimiters-allowed-by"><code class="code">\s</code>, delimiters allowed by</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cS_002c-delimiters-allowed-by"><code class="code">\S</code>, delimiters allowed by</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cs_002c-incompatibilities-with-AT_0026T-troff"><code class="code">\s</code>, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Compatibility-Mode">Compatibility Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cS_002c-incompatibilities-with-AT_0026T-troff"><code class="code">\S</code>, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Compatibility-Mode">Compatibility Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cs_002c-incompatibilities-with-AT_0026T-troff-1"><code class="code">\s</code>, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Compatibility-Mode">Compatibility Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cs_002c-using-_002b-and-_002d-with"><code class="code">\s</code>, using <code class="code">+</code> and <code class="code">-</code> with</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cs_002c-with-fractional-type-sizes"><code class="code">\s</code>, with fractional type sizes</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cSP_002c-as-delimiter"><code class="code">\<kbd class="key">SP</kbd></code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cSP_002c-difference-from-_005c_007e"><code class="code">\<kbd class="key">SP</kbd></code>, difference from <code class="code">\~</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Calling-Macros">Calling Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cSP_002c-incompatibilities-with-AT_0026T-troff"><code class="code">\<kbd class="key">SP</kbd></code>, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005ct_002c-and-copy-mode"><code class="code">\t</code>, and copy mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Fields">Tabs and Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005ct_002c-and-translations"><code class="code">\t</code>, and translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005ct_002c-and-warnings"><code class="code">\t</code>, and warnings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Warnings">Warnings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005ct_002c-as-delimiter"><code class="code">\t</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cu_002c-as-delimiter"><code class="code">\u</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cV_002c-and-copy-mode"><code class="code">\V</code>, and copy mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cv_002c-delimiters-allowed-by"><code class="code">\v</code>, delimiters allowed by</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cv_002c-internal-representation"><code class="code">\v</code>, internal representation</a>:</td><td> </td><td class="printindex-index-section"><a href="#Gtroff-Internals">Gtroff Internals</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cw_002c-delimiters-allowed-by"><code class="code">\w</code>, delimiters allowed by</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cX_002c-and-special-characters"><code class="code">\X</code>, and special characters</a>:</td><td> </td><td class="printindex-index-section"><a href="#Postprocessor-Access">Postprocessor Access</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cX_002c-delimiters-allowed-by"><code class="code">\X</code>, delimiters allowed by</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cx_002c-delimiters-allowed-by"><code class="code">\x</code>, delimiters allowed by</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cX_002c-followed-by-_005c_0025"><code class="code">\X</code>, followed by <code class="code">\%</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cY_002c-followed-by-_005c_0025"><code class="code">\Y</code>, followed by <code class="code">\%</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005cZ_002c-delimiters-allowed-by"><code class="code">\Z</code>, delimiters allowed by</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_005b_002c-and-translations"><code class="code">\[</code>, and translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_005c_002c-when-reading-text-for-a-macro"><code class="code">\\</code>, when reading text for a macro</a>:</td><td> </td><td class="printindex-index-section"><a href="#Copy-Mode">Copy Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_005e_002c-as-delimiter"><code class="code">\^</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_005e_002c-incompatibilities-with-AT_0026T-troff"><code class="code">\^</code>, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_005f_002c-and-translations"><code class="code">\_</code>, and translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_005f_002c-as-delimiter"><code class="code">\_</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_005f_002c-as-delimiter-1"><code class="code">\_</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_005f_002c-incompatibilities-with-AT_0026T-troff"><code class="code">\_</code>, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0060_002c-and-translations"><code class="code">\`</code>, and translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0060_002c-as-delimiter"><code class="code">\`</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0060_002c-as-delimiter-1"><code class="code">\`</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_0060_002c-incompatibilities-with-AT_0026T-troff"><code class="code">\`</code>, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_007b_002c-as-delimiter"><code class="code">\{</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_007b_002c-as-delimiter-1"><code class="code">\{</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_007b_002c-incompatibilities-with-AT_0026T-troff"><code class="code">\{</code>, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_007c_002c-as-delimiter"><code class="code">\|</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_007c_002c-incompatibilities-with-AT_0026T-troff"><code class="code">\|</code>, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_007d_002c-and-warnings"><code class="code">\}</code>, and warnings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Warnings">Warnings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_007d_002c-as-delimiter"><code class="code">\}</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_007d_002c-as-delimiter-1"><code class="code">\}</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_007d_002c-incompatibilities-with-AT_0026T-troff"><code class="code">\}</code>, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_007e_002c-and-translations"><code class="code">\~</code>, and translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_007e_002c-as-delimiter"><code class="code">\~</code>, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_007e_002c-difference-from-_005cSP"><code class="code">\~</code>, difference from <code class="code">\<kbd class="key">SP</kbd></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Calling-Macros">Calling Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005c_007e_002c-incompatibilities-with-AT_0026T-troff"><code class="code">\~</code>, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_symbol-19">]</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005d_002c-as-part-of-an-identifier"><code class="code">]</code>, as part of an identifier</a>:</td><td> </td><td class="printindex-index-section"><a href="#Identifiers">Identifiers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005d_002c-at-end-of-sentence"><code class="code">]</code>, at end of sentence</a>:</td><td> </td><td class="printindex-index-section"><a href="#Sentences">Sentences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005d_002c-at-end-of-sentence-1"><code class="code">]</code>, at end of sentence</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_005d_002c-macro-names-starting-with_002c-and-refer"><code class="code">]</code>, macro names starting with, and <code class="code">refer</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Identifiers">Identifiers</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_symbol-20">|</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-_007c_002c-and-page-motion"><code class="code">|</code>, and page motion</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-A">A</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ab-request_002c-incompatibilities-with-AT_0026T-troff"><code class="code">ab</code> request, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-aborting-_0028ab_0029">aborting (<code class="code">ab</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-absolute-_0028sic_0029-position-operator-_0028_007c_0029">absolute <i class="slanted">(sic)</i> position operator (<code class="code">|</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-abstract-font-style">abstract font style</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fonts">Using Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-abstract-font-style_002c-setting-up-_0028sty_0029">abstract font style, setting up (<code class="code">sty</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Families">Font Families</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-accent-marks-_005bms_005d">accent marks [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-access-to-postprocessor">access to postprocessor</a>:</td><td> </td><td class="printindex-index-section"><a href="#Postprocessor-Access">Postprocessor Access</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-accessing-unnamed-glyphs-with-_005cN">accessing unnamed glyphs with <code class="code">\N</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Description-File-Format">Font Description File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-activating-kerning-_0028kern_0029">activating kerning (<code class="code">kern</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Ligatures-and-Kerning">Ligatures and Kerning</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-activating-ligatures-_0028lg_0029">activating ligatures (<code class="code">lg</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Ligatures-and-Kerning">Ligatures and Kerning</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-activating-track-kerning-_0028tkf_0029">activating track kerning (<code class="code">tkf</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Ligatures-and-Kerning">Ligatures and Kerning</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ad-request_002c-and-hyphenation-margin"><code class="code">ad</code> request, and hyphenation margin</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ad-request_002c-and-hyphenation-space"><code class="code">ad</code> request, and hyphenation space</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-addition">addition</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-additional-inter_002dsentence-space">additional inter-sentence space</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-adjustment-and-filling_002c-manipulating">adjustment and filling, manipulating</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-adjustment-mode-register-_0028_002ej_0029">adjustment mode register (<code class="code">.j</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-adjustment-to-both-margins_002c-difference-from-AT_0026T-troff">adjustment to both margins, difference from <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-Adobe-Glyph-List-_0028AGL_0029">Adobe Glyph List (AGL)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-alias_002c-diversion_002c-creating-_0028als_0029">alias, diversion, creating (<code class="code">als</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-alias_002c-diversion_002c-removing-_0028rm_0029">alias, diversion, removing (<code class="code">rm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-alias_002c-macro_002c-creating-_0028als_0029">alias, macro, creating (<code class="code">als</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-alias_002c-macro_002c-removing-_0028rm_0029">alias, macro, removing (<code class="code">rm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-alias_002c-register_002c-creating-_0028aln_0029">alias, register, creating (<code class="code">aln</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Setting-Registers">Setting Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-alias_002c-register_002c-removing-_0028rr_0029">alias, register, removing (<code class="code">rr</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Setting-Registers">Setting Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-alias_002c-string_002c-creating-_0028als_0029">alias, string, creating (<code class="code">als</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-alias_002c-string_002c-removing-_0028rm_0029">alias, string, removing (<code class="code">rm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-aliasing-fonts-with-third-argument-to-fp-request">aliasing fonts with third argument to <code class="code">fp</code> request</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Positions">Font Positions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-als-request_002c-and-_005c_00240"><code class="code">als</code> request, and <code class="code">\$0</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Parameters">Parameters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-am_002c-am1_002c-ami-requests_002c-and-warnings"><code class="code">am</code>, <code class="code">am1</code>, <code class="code">ami</code> requests, and warnings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Warnings">Warnings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-appending-to-a-diversion-_0028da_002c-boxa_0029">appending to a diversion (<code class="code">da</code>, <code class="code">boxa</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-appending-to-a-file-_0028opena_0029">appending to a file (<code class="code">opena</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-appending-to-a-macro-_0028am_0029">appending to a macro (<code class="code">am</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Writing-Macros">Writing Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-appending-to-a-string-_0028as_0029">appending to a string (<code class="code">as</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-approximation-output-register-_0028_002eA_0029">approximation output register (<code class="code">.A</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-arc_002c-drawing-_0028_005cD_0027a-_2026_0027_0029">arc, drawing (‘<samp class="samp">\D'a …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-argument">argument</a>:</td><td> </td><td class="printindex-index-section"><a href="#Requests-and-Macros">Requests and Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-arguments-to-macros">arguments to macros</a>:</td><td> </td><td class="printindex-index-section"><a href="#Calling-Macros">Calling Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-arguments-to-macros_002c-and-tabs">arguments to macros, and tabs</a>:</td><td> </td><td class="printindex-index-section"><a href="#Invoking-Requests">Invoking Requests</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-arguments-to-requests">arguments to requests</a>:</td><td> </td><td class="printindex-index-section"><a href="#Invoking-Requests">Invoking Requests</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-arguments-to-requests_002c-and-tabs">arguments to requests, and tabs</a>:</td><td> </td><td class="printindex-index-section"><a href="#Invoking-Requests">Invoking Requests</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-arguments_002c-and-compatibility-mode">arguments, and compatibility mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Gtroff-Internals">Gtroff Internals</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-arguments_002c-to-escape-sequences_002c-delimiting">arguments, to escape sequences, delimiting</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-arguments_002c-to-strings">arguments, to strings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-arithmetic-operators">arithmetic operators</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-artificial-fonts">artificial fonts</a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-as_002c-as1-requests_002c-and-comments"><code class="code">as</code>, <code class="code">as1</code> requests, and comments</a>:</td><td> </td><td class="printindex-index-section"><a href="#Comments">Comments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-as_002c-as1-requests_002c-and-warnings"><code class="code">as</code>, <code class="code">as1</code> requests, and warnings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Warnings">Warnings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ASCII-output-encoding"><abbr class="acronym">ASCII</abbr> output encoding</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-asciify-request_002c-and-writem"><code class="code">asciify</code> request, and <code class="code">writem</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-assertion-_0028arithmetic-operator_0029">assertion (arithmetic operator)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-assign-number-format-to-register-_0028af_0029">assign number format to register (<code class="code">af</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Assigning-Register-Formats">Assigning Register Formats</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-assignments_002c-indirect">assignments, indirect</a>:</td><td> </td><td class="printindex-index-section"><a href="#Interpolating-Registers">Interpolating Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-assignments_002c-nested">assignments, nested</a>:</td><td> </td><td class="printindex-index-section"><a href="#Interpolating-Registers">Interpolating Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-AT_0026T-ms_002c-macro-package-differences"><abbr class="acronym">AT&T</abbr> <samp class="file">ms</samp>, macro package differences</a>:</td><td> </td><td class="printindex-index-section"><a href="#Differences-from-AT_0026T-ms">Differences from AT&T ms</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-attributes_002c-character-cell">attributes, character cell</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fonts">Using Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-auto_002dincrementation-of-a-register">auto-incrementation of a register</a>:</td><td> </td><td class="printindex-index-section"><a href="#Auto_002dincrement">Auto-increment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-automatic-font-mounting">automatic font mounting</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-automatic-hyphenation">automatic hyphenation</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-automatic-hyphenation-parameters">automatic hyphenation parameters</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-auxiliary-macro-package">auxiliary macro package</a>:</td><td> </td><td class="printindex-index-section"><a href="#Major-Macro-Packages">Major Macro Packages</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-available-glyphs_002c-list-of-_0028groff_005fchar_00287_0029-man-page_0029">available glyphs, list of (<cite class="cite">groff_char<span class="r">(7)</span></cite> man page)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-B">B</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-background">background</a>:</td><td> </td><td class="printindex-index-section"><a href="#Background">Background</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-background-color-name-register-_0028_002eM_0029">background color name register (<code class="code">.M</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Colors">Colors</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-backslash-glyph_002c-formatting-_0028_005c_005brs_005d_0029">backslash glyph, formatting (<code class="code">\[rs]</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Escape-Sequences">Using Escape Sequences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-backslash_002c-embedding-in-a-macro-argument">backslash, embedding in a macro argument</a>:</td><td> </td><td class="printindex-index-section"><a href="#Calling-Macros">Calling Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-backslash_002c-printing-_0028_005c_005c_002c-_005ce_002c-_005cE_002c-_005c_005brs_005d_0029">backslash, printing (<code class="code">\\</code>, <code class="code">\e</code>, <code class="code">\E</code>, <code class="code">\[rs]</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-backspace-character_002c-and-translations">backspace character, and translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-backtrace-of-input-stack-_0028backtrace_0029">backtrace of input stack (<code class="code">backtrace</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-baseline-rule-special-character_0028_005c_005bru_005d_0029">baseline rule special character(<code class="code">\[ru]</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-baseline_002c-text">baseline, text</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Geometry">Page Geometry</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-baseline_002c-text-1">baseline, text</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Type-Size-and-Vertical-Spacing">Manipulating Type Size and Vertical Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-basic-scaling-unit-_0028u_0029">basic scaling unit (<code class="code">u</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-basic-units">basic units</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Geometry">Page Geometry</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-basic-units_002c-conversion-to">basic units, conversion to</a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-basics-of-macro-package-usage">basics of macro package usage</a>:</td><td> </td><td class="printindex-index-section"><a href="#Basics">Basics</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-bd-request_002c-and-font-styles"><code class="code">bd</code> request, and font styles</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Families">Font Families</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-bd-request_002c-and-font-translations"><code class="code">bd</code> request, and font translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-bd-request_002c-incompatibilities-with-AT_0026T-troff"><code class="code">bd</code> request, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-beginning-diversion-_0028di_002c-box_0029">beginning diversion (<code class="code">di</code>, <code class="code">box</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-beginning-of-conditional-block-_0028_005c_007b_0029">beginning of conditional block (<code class="code">\{</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Conditional-Blocks">Conditional Blocks</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-blank-line">blank line</a>:</td><td> </td><td class="printindex-index-section"><a href="#Breaking">Breaking</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-blank-line-macro-_0028blm_0029">blank line macro (<code class="code">blm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Breaking">Breaking</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-blank-line-macro-_0028blm_0029-1">blank line macro (<code class="code">blm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Invoking-Requests">Invoking Requests</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-blank-line-macro-_0028blm_0029-2">blank line macro (<code class="code">blm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Blank-Line-Traps">Blank Line Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-blank-line-trap-_0028blm_0029">blank line trap (<code class="code">blm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Invoking-Requests">Invoking Requests</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-blank-line-traps">blank line traps</a>:</td><td> </td><td class="printindex-index-section"><a href="#Blank-Line-Traps">Blank Line Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-blank-lines_002c-disabling">blank lines, disabling</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Spacing">Manipulating Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-block_002c-conditional_002c-beginning-_0028_005c_007b_0029">block, conditional, beginning (<code class="code">\{</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Conditional-Blocks">Conditional Blocks</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-block_002c-conditional_002c-end-_0028_005c_007d_0029">block, conditional, end (<code class="code">\}</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Conditional-Blocks">Conditional Blocks</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-blocks_002c-conditional">blocks, conditional</a>:</td><td> </td><td class="printindex-index-section"><a href="#Conditional-Blocks">Conditional Blocks</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-body_002c-of-a-while-request">body, of a while request</a>:</td><td> </td><td class="printindex-index-section"><a href="#while">while</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-boldface_002c-imitating-_0028bd_0029">boldface, imitating (<code class="code">bd</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-bottom-margin">bottom margin</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Location-Traps">Page Location Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-boundary_002drelative-motion-operator-_0028_007c_0029">boundary-relative motion operator (<code class="code">|</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-bounding-box">bounding box</a>:</td><td> </td><td class="printindex-index-section"><a href="#Miscellaneous">Miscellaneous</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-box-_0028diversion-operation_0029">box (diversion operation)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-box-request_002c-and-warnings"><code class="code">box</code> request, and warnings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Warnings">Warnings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-box-rule-glyph-_0028_005c_005bbr_005d_0029">box rule glyph (<code class="code">\[br]</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-box_002c-boxa-requests_002c-and-warnings"><code class="code">box</code>, <code class="code">boxa</code> requests, and warnings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Warnings">Warnings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-boxa-request_002c-and-dn-_0028dl_0029"><code class="code">boxa</code> request, and <code class="code">dn</code> (<code class="code">dl</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-boxa-request_002c-and-warnings"><code class="code">boxa</code> request, and warnings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Warnings">Warnings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-boxes-_005bms_005d">boxes [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-keeps-and-displays">ms keeps and displays</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-bp-request_002c-and-top_002dlevel-diversion"><code class="code">bp</code> request, and top-level diversion</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-bp-request_002c-and-traps-_0028_002epe_0029"><code class="code">bp</code> request, and traps (<code class="code">.pe</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Location-Traps">Page Location Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-bp-request_002c-causing-implicit-break"><code class="code">bp</code> request, causing implicit break</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-bp-request_002c-incompatibilities-with-AT_0026T-troff"><code class="code">bp</code> request, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-bp-request_002c-using-_002b-and-_002d-with"><code class="code">bp</code> request, using <code class="code">+</code> and <code class="code">-</code> with</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-br-glyph_002c-and-cflags"><code class="code">br</code> glyph, and <code class="code">cflags</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-brace-escape-sequence_002c-closing-_0028_005c_007d_0029">brace escape sequence, closing (<code class="code">\})</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Conditional-Blocks">Conditional Blocks</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-brace-escape-sequence_002c-opening-_0028_005c_007d_0029">brace escape sequence, opening (<code class="code">\})</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Conditional-Blocks">Conditional Blocks</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-brace-escape-sequences-_0028_005c_007b_002c-_005c_007d_0029">brace escape sequences (<code class="code">\{</code>, <code class="code">\}</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Conditional-Blocks">Conditional Blocks</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-break">break</a>:</td><td> </td><td class="printindex-index-section"><a href="#Breaking">Breaking</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-break-1">break</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-break-_0028introduction_0029">break (introduction)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Basics">Basics</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-break-request_002c-in-a-while-loop"><code class="code">break</code> request, in a <code class="code">while</code> loop</a>:</td><td> </td><td class="printindex-index-section"><a href="#while">while</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-break_002c-page">break, page</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Geometry">Page Geometry</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-break_002c-page-1">break, page</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-break_002c-page-2">break, page</a>:</td><td> </td><td class="printindex-index-section"><a href="#The-Implicit-Page-Trap">The Implicit Page Trap</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-break_002c-page-_0028introduction_0029">break, page (introduction)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Basics">Basics</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-break_002c-page_002c-final">break, page, final</a>:</td><td> </td><td class="printindex-index-section"><a href="#End_002dof_002dinput-Traps">End-of-input Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-break_002c-page_002c-prevented-by-vpt">break, page, prevented by <code class="code">vpt</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Vertical-Position-Traps">Vertical Position Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-breaking-file-names-_0028_005c_003a_0029">breaking file names (<code class="code">\:</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-breaking-URLs-_0028_005c_003a_0029">breaking URLs (<code class="code">\:</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-breaking-without-hyphens-_0028_005c_003a_0029">breaking without hyphens (<code class="code">\:</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-built_002din-register_002c-removing">built-in register, removing</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-built_002din-registers">built-in registers</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-bulleted-list_002c-example-markup-_005bms_005d">bulleted list, example markup [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#Lists-in-ms">Lists in ms</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-C">C</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-c-scaling-unit"><code class="code">c</code> scaling unit</a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-calling-a-macro">calling a macro</a>:</td><td> </td><td class="printindex-index-section"><a href="#Requests-and-Macros">Requests and Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-calling-macros">calling macros</a>:</td><td> </td><td class="printindex-index-section"><a href="#Calling-Macros">Calling Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-capabilities-of-groff">capabilities of <code class="code">groff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#groff-Capabilities"><code class="code">groff</code> Capabilities</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-case_002dtransforming-a-string-_0028stringdown_002c-stringup_0029">case-transforming a string (<code class="code">stringdown</code>, <code class="code">stringup</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-categories_002c-warning">categories, warning</a>:</td><td> </td><td class="printindex-index-section"><a href="#Warnings">Warnings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-CCSID-1047-output-encoding-_0028EBCDIC_0029">CCSID 1047 output encoding (EBCDIC)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ce-request_002c-causing-implicit-break"><code class="code">ce</code> request, causing implicit break</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ce-request_002c-difference-from-_002ead-c"><code class="code">ce</code> request, difference from ‘<samp class="samp">.ad c</samp>’<!-- /@w --></a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-cell_002c-character_002c-attributes">cell, character, attributes</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fonts">Using Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-centered-text-_0028filled_0029">centered text (filled)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-centered-text-_0028unfilled_0029">centered text (unfilled)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-centering-lines-_0028ce_0029">centering lines (<code class="code">ce</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-centering-lines-_0028introduction_0029">centering lines (introduction)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Basics">Basics</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-centimeter-scaling-unit-_0028c_0029">centimeter scaling unit (<code class="code">c</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-cf-request_002c-and-copy-mode"><code class="code">cf</code> request, and copy mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-cf-request_002c-causing-implicit-break"><code class="code">cf</code> request, causing implicit break</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-changing-control-characters">changing control characters</a>:</td><td> </td><td class="printindex-index-section"><a href="#Control-Characters">Control Characters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-changing-font-family-_0028fam_002c-_005cF_0029">changing font family (<code class="code">fam</code>, <code class="code">\F</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Families">Font Families</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-changing-fonts-_0028ft_002c-_005cf_0029">changing fonts (<code class="code">ft</code>, <code class="code">\f</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-changing-format_002c-and-read_002donly-registers">changing format, and read-only registers</a>:</td><td> </td><td class="printindex-index-section"><a href="#Assigning-Register-Formats">Assigning Register Formats</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-changing-the-font-height-_0028_005cH_0029">changing the font height (<code class="code">\H</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-changing-the-font-slant-_0028_005cS_0029">changing the font slant (<code class="code">\S</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-changing-the-page-number-character-_0028pc_0029">changing the page number character (<code class="code">pc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-changing-trap-location-_0028ch_0029">changing trap location (<code class="code">ch</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Location-Traps">Page Location Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-changing-type-sizes-_0028ps_002c-_005cs_0029">changing type sizes (<code class="code">ps</code>, <code class="code">\s</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Type-Size">Changing the Type Size</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-changing-vertical-line-spacing-_0028vs_0029">changing vertical line spacing (<code class="code">vs</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Vertical-Spacing">Changing the Vertical Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-char-request_002c-and-soft-hyphen-character"><code class="code">char</code> request, and soft hyphen character</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-char-request_002c-and-translations"><code class="code">char</code> request, and translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-char-request_002c-used-with-_005cN"><code class="code">char</code> request, used with <code class="code">\N</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character">character</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character-cell-attributes">character cell attributes</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fonts">Using Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character-class-_0028class_0029">character class (<code class="code">class</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Classes">Character Classes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character-classes">character classes</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Classes">Character Classes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character-properties-_0028cflags_0029">character properties (<code class="code">cflags</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character-translations">character translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-backspace_002c-and-translations">character, backspace, and translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-control-_0028_002e_0029">character, control (<code class="code">.</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Requests-and-Macros">Requests and Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-control_002c-changing-_0028cc_0029">character, control, changing (<code class="code">cc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Control-Characters">Control Characters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-defining-_0028char_0029">character, defining (<code class="code">char</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-defining-fallback-_0028fchar_002c-fschar_002c-schar_0029">character, defining fallback (<code class="code">fchar</code>, <code class="code">fschar</code>, <code class="code">schar</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-distinguished-from-glyph">character, distinguished from glyph</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-dummy-_0028_005c_0026_0029">character, dummy (<code class="code">\&</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Dummy-Characters">Dummy Characters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-dummy-_0028_005c_0026_0029_002c-as-control-character-suppressor">character, dummy (<code class="code">\&</code>), as control character suppressor</a>:</td><td> </td><td class="printindex-index-section"><a href="#Requests-and-Macros">Requests and Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-dummy-_0028_005c_0026_0029_002c-effect-on-kerning">character, dummy (<code class="code">\&</code>), effect on kerning</a>:</td><td> </td><td class="printindex-index-section"><a href="#Ligatures-and-Kerning">Ligatures and Kerning</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-dummy-_0028_005c_0026_0029_002c-effect-on-_005cl-escape-sequence">character, dummy (<code class="code">\&</code>), effect on <code class="code">\l</code> escape sequence</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-escape_002c-changing-_0028ec_0029">character, escape, changing (<code class="code">ec</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Escape-Sequences">Using Escape Sequences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-escape_002c-while-defining-glyph">character, escape, while defining glyph</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-field-delimiting-_0028fc_0029">character, field delimiting (<code class="code">fc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Fields">Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-field-padding-_0028fc_0029">character, field padding (<code class="code">fc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Fields">Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-horizontal-tab">character, horizontal tab</a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Leaders">Tabs and Leaders</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-hyphenation-_0028_005c_0025_0029">character, hyphenation (<code class="code">\%</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-leader">character, leader</a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Leaders">Tabs and Leaders</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-leader-repetition-_0028lc_0029">character, leader repetition (<code class="code">lc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Leaders">Leaders</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-leader_002c-and-translations">character, leader, and translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-leader_002c-non_002dinterpreted-_0028_005ca_0029">character, leader, non-interpreted (<code class="code">\a</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Leaders">Leaders</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-named-_0028_005cC_0029">character, named (<code class="code">\C</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-newline_002c-and-translations">character, newline, and translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-no_002dbreak-control-_0028_0027_0029">character, no-break control (<code class="code">'</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Requests-and-Macros">Requests and Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-no_002dbreak-control_002c-changing-_0028c2_0029">character, no-break control, changing (<code class="code">c2</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Control-Characters">Control Characters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-ordinary">character, ordinary</a>:</td><td> </td><td class="printindex-index-section"><a href="#Identifiers">Identifiers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-soft-hyphen_002c-setting-_0028shc_0029">character, soft hyphen, setting (<code class="code">shc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-special">character, special</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-tab-repetition-_0028tc_0029">character, tab repetition (<code class="code">tc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Fields">Tabs and Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-tab_002c-and-translations">character, tab, and translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-tab_002c-non_002dinterpreted-_0028_005ct_0029">character, tab, non-interpreted (<code class="code">\t</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Fields">Tabs and Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-transparent">character, transparent</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-character_002c-transparent-dummy-_0028_005c_0029_0029">character, transparent dummy (<code class="code">\)</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Dummy-Characters">Dummy Characters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-characters_002c-end_002dof_002dsentence">characters, end-of-sentence</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-characters_002c-end_002dof_002dsentence-transparent">characters, end-of-sentence transparent</a>:</td><td> </td><td class="printindex-index-section"><a href="#Sentences">Sentences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-characters_002c-hyphenation">characters, hyphenation</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-characters_002c-input_002c-and-output-glyphs_002c-compatibility-with-AT_0026T-troff">characters, input, and output glyphs, compatibility with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-characters_002c-invalid-for-trf-request">characters, invalid for <code class="code">trf</code> request</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-characters_002c-invalid-input">characters, invalid input</a>:</td><td> </td><td class="printindex-index-section"><a href="#Identifiers">Identifiers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-characters_002c-overlapping">characters, overlapping</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-characters_002c-special">characters, special</a>:</td><td> </td><td class="printindex-index-section"><a href="#Sentences">Sentences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-characters_002c-special_002c-list-of-_0028groff_005fchar_00287_0029-man-page_0029">characters, special, list of (<cite class="cite">groff_char<span class="r">(7)</span></cite> man page)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-characters_002c-unnamed_002c-accessing-with-_005cN">characters, unnamed, accessing with <code class="code">\N</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Description-File-Format">Font Description File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-circle_002c-filled_002c-drawing-_0028_005cD_0027C-_2026_0027_0029">circle, filled, drawing (‘<samp class="samp">\D'C …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-circle_002c-outlined_002c-drawing-_0028_005cD_0027c-_2026_0027_0029">circle, outlined, drawing (‘<samp class="samp">\D'c …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-circle_002c-solid_002c-drawing-_0028_005cD_0027C-_2026_0027_0029">circle, solid, drawing (‘<samp class="samp">\D'C …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-circle_002c-stroked_002c-drawing-_0028_005cD_0027c-_2026_0027_0029">circle, stroked, drawing (‘<samp class="samp">\D'c …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-class-of-characters-_0028class_0029">class of characters (<code class="code">class</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Classes">Character Classes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-classes_002c-character">classes, character</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Classes">Character Classes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-clearing-input-line-trap-_0028it_002c-itc_0029">clearing input line trap (<code class="code">it</code>, <code class="code">itc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Line-Traps">Input Line Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-closing-brace-escape-sequence-_0028_005c_007d_0029">closing brace escape sequence (<code class="code">\})</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Conditional-Blocks">Conditional Blocks</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-closing-file-_0028close_0029">closing file (<code class="code">close</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-code-page-1047-output-encoding">code page 1047 output encoding</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-code-page-1047_002c-input-encoding">code page 1047, input encoding</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Encodings">Input Encodings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-code_002c-hyphenation-_0028hcode_0029">code, hyphenation (<code class="code">hcode</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-color-name_002c-background_002c-register-_0028_002eM_0029">color name, background, register (<code class="code">.M</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Colors">Colors</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-color-name_002c-fill_002c-register-_0028_002eM_0029">color name, fill, register (<code class="code">.M</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Colors">Colors</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-color-name_002c-stroke_002c-register-_0028_002em_0029">color name, stroke, register (<code class="code">.m</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Colors">Colors</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-color_002c-default">color, default</a>:</td><td> </td><td class="printindex-index-section"><a href="#Colors">Colors</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-color_002c-fill">color, fill</a>:</td><td> </td><td class="printindex-index-section"><a href="#Colors">Colors</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-color_002c-stroke">color, stroke</a>:</td><td> </td><td class="printindex-index-section"><a href="#Colors">Colors</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-colors">colors</a>:</td><td> </td><td class="printindex-index-section"><a href="#Colors">Colors</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-command-prefix">command prefix</a>:</td><td> </td><td class="printindex-index-section"><a href="#Environment">Environment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-command_002dline-options">command-line options</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-comments">comments</a>:</td><td> </td><td class="printindex-index-section"><a href="#Comments">Comments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-comments-in-device-description-files">comments in device description files</a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-comments-in-font-description-files">comments in font description files</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Description-File-Format">Font Description File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-comments_002c-lining-up-with-tabs">comments, lining up with tabs</a>:</td><td> </td><td class="printindex-index-section"><a href="#Comments">Comments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-comments_002c-with-ds">comments, with <code class="code">ds</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-common-features">common features</a>:</td><td> </td><td class="printindex-index-section"><a href="#Common-Features">Common Features</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-common-name-space-of-macros_002c-diversions_002c-and-strings">common name space of macros, diversions, and strings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Identifiers">Identifiers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-comparison-of-strings">comparison of strings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Operators-in-Conditionals">Operators in Conditionals</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-comparison-operators">comparison operators</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-compatibility-mode">compatibility mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Warnings">Warnings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-compatibility-mode-1">compatibility mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Compatibility-Mode">Compatibility Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-compatibility-mode_002c-and-parameters">compatibility mode, and parameters</a>:</td><td> </td><td class="printindex-index-section"><a href="#Gtroff-Internals">Gtroff Internals</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-complementation_002c-logical">complementation, logical</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-composite-glyph-names">composite glyph names</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-conditional-block_002c-beginning-_0028_005c_007b_0029">conditional block, beginning (<code class="code">\{</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Conditional-Blocks">Conditional Blocks</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-conditional-block_002c-end-_0028_005c_007d_0029">conditional block, end (<code class="code">\}</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Conditional-Blocks">Conditional Blocks</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-conditional-blocks">conditional blocks</a>:</td><td> </td><td class="printindex-index-section"><a href="#Conditional-Blocks">Conditional Blocks</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-conditional-expressions">conditional expressions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Operators-in-Conditionals">Operators in Conditionals</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-conditional-output-for-terminal-_0028TTY_0029">conditional output for terminal (TTY)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Operators-in-Conditionals">Operators in Conditionals</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-conditional-page-break-_0028ne_0029">conditional page break (<code class="code">ne</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-conditionals-and-loops">conditionals and loops</a>:</td><td> </td><td class="printindex-index-section"><a href="#Conditionals-and-Loops">Conditionals and Loops</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-configuring-control-characters">configuring control characters</a>:</td><td> </td><td class="printindex-index-section"><a href="#Control-Characters">Control Characters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-configuring-the-page-length-_0028pl_0029">configuring the page length (<code class="code">pl</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-consecutive-hyphenated-lines-_0028hlm_0029">consecutive hyphenated lines (<code class="code">hlm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-constant-glyph-space-mode-_0028cs_0029">constant glyph space mode (<code class="code">cs</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-contents_002c-table-of">contents, table of</a>:</td><td> </td><td class="printindex-index-section"><a href="#Table-of-Contents">Table of Contents</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-contents_002c-table-of-1">contents, table of</a>:</td><td> </td><td class="printindex-index-section"><a href="#Leaders">Leaders</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-continuation_002c-input-line-_0028_005cRET_0029">continuation, input line (<code class="code">\<kbd class="key">RET</kbd></code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Continuation">Line Continuation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-continuation_002c-output-line-_0028_005cc_0029">continuation, output line (<code class="code">\c</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Continuation">Line Continuation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-continue-request_002c-in-a-while-loop"><code class="code">continue</code> request, in a <code class="code">while</code> loop</a>:</td><td> </td><td class="printindex-index-section"><a href="#while">while</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-continued-output-line-register-_0028_002eint_0029">continued output line register (<code class="code">.int</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Continuation">Line Continuation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-continuous-underlining-_0028cu_0029">continuous underlining (<code class="code">cu</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-control-character-_0028_002e_0029">control character (<code class="code">.</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Requests-and-Macros">Requests and Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-control-character_002c-changing-_0028cc_0029">control character, changing (<code class="code">cc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Control-Characters">Control Characters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-control-character_002c-no_002dbreak-_0028_0027_0029">control character, no-break (<code class="code">'</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Requests-and-Macros">Requests and Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-control-character_002c-no_002dbreak_002c-changing-_0028c2_0029">control character, no-break, changing (<code class="code">c2</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Control-Characters">Control Characters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-control-characters">control characters</a>:</td><td> </td><td class="printindex-index-section"><a href="#Control-Characters">Control Characters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-control-line">control line</a>:</td><td> </td><td class="printindex-index-section"><a href="#Requests-and-Macros">Requests and Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-control_002c-line">control, line</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Continuation">Line Continuation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-control_002c-page">control, page</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-conventions-for-input">conventions for input</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Conventions">Input Conventions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-conversion-to-basic-units">conversion to basic units</a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-copy-mode">copy mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Copy-Mode">Copy Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-copy-mode-1">copy mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Copy-Mode">Copy Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-copy-mode_002c-and-cf-request">copy mode, and <code class="code">cf</code> request</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-copy-mode_002c-and-device-request">copy mode, and <code class="code">device</code> request</a>:</td><td> </td><td class="printindex-index-section"><a href="#Postprocessor-Access">Postprocessor Access</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-copy-mode_002c-and-length-request">copy mode, and <code class="code">length</code> request</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-copy-mode_002c-and-macro-parameters">copy mode, and macro parameters</a>:</td><td> </td><td class="printindex-index-section"><a href="#Parameters">Parameters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-copy-mode_002c-and-output-request">copy mode, and <code class="code">output</code> request</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-copy-mode_002c-and-trf-request">copy mode, and <code class="code">trf</code> request</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-copy-mode_002c-and-write-request">copy mode, and <code class="code">write</code> request</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-copy-mode_002c-and-writec-request">copy mode, and <code class="code">writec</code> request</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-copy-mode_002c-and-writem-request">copy mode, and <code class="code">writem</code> request</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-copy-mode_002c-and-_005c_0021">copy mode, and <code class="code">\!</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-copy-mode_002c-and-_005c_003f">copy mode, and <code class="code">\?</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Operators-in-Conditionals">Operators in Conditionals</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-copy-mode_002c-and-_005c_003f-1">copy mode, and <code class="code">\?</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-copy-mode_002c-and-_005ca">copy mode, and <code class="code">\a</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Leaders">Leaders</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-copy-mode_002c-and-_005ct">copy mode, and <code class="code">\t</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Fields">Tabs and Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-copy-mode_002c-and-_005cV">copy mode, and <code class="code">\V</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-copying-environment-_0028evc_0029">copying environment (<code class="code">evc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Environments">Environments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-correction-between-oblique-and-upright-glyph-_0028_005c_002f_002c-_005c_002c_0029">correction between oblique and upright glyph (<code class="code">\/</code>, <code class="code">\,</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Italic-Corrections">Italic Corrections</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-correction-between-upright-and-oblique-glyph-_0028_005c_002f_002c-_005c_002c_0029">correction between upright and oblique glyph (<code class="code">\/</code>, <code class="code">\,</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Italic-Corrections">Italic Corrections</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-correction_002c-italic-_0028_005c_002f_0029">correction, italic (<code class="code">\/</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Italic-Corrections">Italic Corrections</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-correction_002c-left-italic-_0028_005c_002c_0029">correction, left italic (<code class="code">\,</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Italic-Corrections">Italic Corrections</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-cover-page-in-_005bms_005d_002c-example-markup">cover page in [<samp class="file">ms</samp>], example markup</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Description-Macros">ms Document Description Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-cp-request_002c-and-glyph-definitions"><code class="code">cp</code> request, and glyph definitions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-cq-glyph_002c-at-end-of-sentence"><code class="code">cq</code> glyph, at end of sentence</a>:</td><td> </td><td class="printindex-index-section"><a href="#Sentences">Sentences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-cq-glyph_002c-at-end-of-sentence-1"><code class="code">cq</code> glyph, at end of sentence</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-creating-alias-for-register-_0028aln_0029">creating alias for register (<code class="code">aln</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Setting-Registers">Setting Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-creating-alias_002c-for-diversion-_0028als_0029">creating alias, for diversion (<code class="code">als</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-creating-alias_002c-for-macro-_0028als_0029">creating alias, for macro (<code class="code">als</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-creating-alias_002c-for-string-_0028als_0029">creating alias, for string (<code class="code">als</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-creating-new-characters-_0028char_0029">creating new characters (<code class="code">char</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-credits">credits</a>:</td><td> </td><td class="printindex-index-section"><a href="#Credits">Credits</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-cs-request_002c-and-font-styles"><code class="code">cs</code> request, and font styles</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Families">Font Families</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-cs-request_002c-and-font-translations"><code class="code">cs</code> request, and font translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-cs-request_002c-incompatibilities-with-AT_0026T-troff"><code class="code">cs</code> request, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-cs-request_002c-with-fractional-type-sizes"><code class="code">cs</code> request, with fractional type sizes</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-CSTR-_002354-errata">CSTR #54 errata</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-CSTR-_002354-errata-1">CSTR #54 errata</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Layout">Line Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-CSTR-_002354-errata-2">CSTR #54 errata</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-CSTR-_002354-errata-3">CSTR #54 errata</a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-CSTR-_002354-errata-4">CSTR #54 errata</a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Type-Size">Changing the Type Size</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-CSTR-_002354-errata-5">CSTR #54 errata</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-CSTR-_002354-erratum_002c-bp-request">CSTR #54 erratum, <code class="code">bp</code> request</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-CSTR-_002354-erratum_002c-po-request">CSTR #54 erratum, <code class="code">po</code> request</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Layout">Line Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-CSTR-_002354-erratum_002c-ps-request">CSTR #54 erratum, <code class="code">ps</code> request</a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Type-Size">Changing the Type Size</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-CSTR-_002354-erratum_002c-sb-register">CSTR #54 erratum, <code class="code">sb</code> register</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-CSTR-_002354-erratum_002c-st-register">CSTR #54 erratum, <code class="code">st</code> register</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-CSTR-_002354-erratum_002c-yr-register">CSTR #54 erratum, <code class="code">yr</code> register</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-CSTR-_002354-erratum_002c-_005cS-escape">CSTR #54 erratum, <code class="code">\S</code> escape</a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-CSTR-_002354-erratum_002c-_005cs-escape-sequence">CSTR #54 erratum, <code class="code">\s</code> escape sequence</a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Type-Size">Changing the Type Size</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-current-directory">current directory</a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Directories">Macro Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-current-input-file-name-register-_0028_002eF_0029">current input file name register (<code class="code">.F</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-current-page-number-_0028_0025_0029">current page number (<code class="code">%</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-current-time_002c-hours-_0028hours_0029">current time, hours (<code class="code">hours</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-current-time_002c-minutes-_0028minutes_0029">current time, minutes (<code class="code">minutes</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-current-time_002c-seconds-_0028seconds_0029">current time, seconds (<code class="code">seconds</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-D">D</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-da-request_002c-and-dn-_0028dl_0029"><code class="code">da</code> request, and <code class="code">dn</code> (<code class="code">dl</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-da-request_002c-and-warnings"><code class="code">da</code> request, and warnings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Warnings">Warnings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-da-request_002c-and-warnings-1"><code class="code">da</code> request, and warnings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Warnings">Warnings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-date_002c-day-of-the-month-register-_0028dy_0029">date, day of the month register (<code class="code">dy</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-date_002c-day-of-the-week-register-_0028dw_0029">date, day of the week register (<code class="code">dw</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-date_002c-month-of-the-year-register-_0028mo_0029">date, month of the year register (<code class="code">mo</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-date_002c-year-register-_0028year_002c-yr_0029">date, year register (<code class="code">year</code>, <code class="code">yr</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-day-of-the-month-register-_0028dy_0029">day of the month register (<code class="code">dy</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-day-of-the-week-register-_0028dw_0029">day of the week register (<code class="code">dw</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-dd-glyph_002c-at-end-of-sentence"><code class="code">dd</code> glyph, at end of sentence</a>:</td><td> </td><td class="printindex-index-section"><a href="#Sentences">Sentences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-dd-glyph_002c-at-end-of-sentence-1"><code class="code">dd</code> glyph, at end of sentence</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-de-request_002c-and-while"><code class="code">de</code> request, and <code class="code">while</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#while">while</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-de_002c-de1_002c-dei-requests_002c-and-warnings"><code class="code">de</code>, <code class="code">de1</code>, <code class="code">dei</code> requests, and warnings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Warnings">Warnings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-debugging">debugging</a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-debugging-page-location-traps">debugging page location traps</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Location-Traps">Page Location Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-decimal-point_002c-as-delimiter">decimal point, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-decrementation_002c-automatic_002c-of-a-register">decrementation, automatic, of a register</a>:</td><td> </td><td class="printindex-index-section"><a href="#Auto_002dincrement">Auto-increment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-default-color">default color</a>:</td><td> </td><td class="printindex-index-section"><a href="#Colors">Colors</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-default-tab-stops">default tab stops</a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Fields">Tabs and Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-default-units">default units</a>:</td><td> </td><td class="printindex-index-section"><a href="#Default-Units">Default Units</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-deferred-output">deferred output</a>:</td><td> </td><td class="printindex-index-section"><a href="#Deferring-Output">Deferring Output</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-defining-character-_0028char_0029">defining character (<code class="code">char</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-defining-character-class-_0028class_0029">defining character class (<code class="code">class</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Classes">Character Classes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-defining-fallback-character-_0028fchar_002c-fschar_002c-schar_0029">defining fallback character (<code class="code">fchar</code>, <code class="code">fschar</code>, <code class="code">schar</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-defining-glyph-_0028char_0029">defining glyph (<code class="code">char</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-defining-symbol-_0028char_0029">defining symbol (<code class="code">char</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-delimited-arguments_002c-incompatibilities-with-AT_0026T-troff">delimited arguments, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Compatibility-Mode">Compatibility Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-delimiters_002c-for-escape-sequence-arguments">delimiters, for escape sequence arguments</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-delimiting-character_002c-for-fields-_0028fc_0029">delimiting character, for fields (<code class="code">fc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Fields">Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-delimiting-escape-sequence-arguments">delimiting escape sequence arguments</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-depth_002c-interpolation">depth, interpolation</a>:</td><td> </td><td class="printindex-index-section"><a href="#Calling-Macros">Calling Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-depth_002c-of-last-glyph-_0028_002ecdp_0029">depth, of last glyph (<code class="code">.cdp</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Environments">Environments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-DESC-file-format"><samp class="file">DESC</samp> file format</a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-DESC-file_002c-and-font-mounting"><samp class="file">DESC</samp> file, and font mounting</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Positions">Font Positions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-DESC-file_002c-and-use_005fcharnames_005fin_005fspecial-keyword"><samp class="file">DESC</samp> file, and <code class="code">use_charnames_in_special</code> keyword</a>:</td><td> </td><td class="printindex-index-section"><a href="#Postprocessor-Access">Postprocessor Access</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-description-file_002c-font">description file, font</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fonts">Using Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-device-description-files_002c-comments">device description files, comments</a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-device-request_002c-and-copy-mode"><code class="code">device</code> request, and copy mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Postprocessor-Access">Postprocessor Access</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-device-resolution">device resolution</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Geometry">Page Geometry</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-device-resolution-1">device resolution</a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-device-resolution_002c-obtaining-in-the-formatter">device resolution, obtaining in the formatter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-devices-for-output">devices for output</a>:</td><td> </td><td class="printindex-index-section"><a href="#Output-Device-Intro">Output Device Intro</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-dg-glyph_002c-at-end-of-sentence"><code class="code">dg</code> glyph, at end of sentence</a>:</td><td> </td><td class="printindex-index-section"><a href="#Sentences">Sentences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-dg-glyph_002c-at-end-of-sentence-1"><code class="code">dg</code> glyph, at end of sentence</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-di-request_002c-and-warnings"><code class="code">di</code> request, and warnings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Warnings">Warnings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-di-request_002c-and-warnings-1"><code class="code">di</code> request, and warnings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Warnings">Warnings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-differences-in-implementation">differences in implementation</a>:</td><td> </td><td class="printindex-index-section"><a href="#Implementation-Differences">Implementation Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-digit_002dwidth-space-_0028_005c0_0029">digit-width space (<code class="code">\0</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-digits_002c-as-delimiters">digits, as delimiters</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-dimensions_002c-line">dimensions, line</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Layout">Line Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-directories-for-fonts">directories for fonts</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Directories">Font Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-directories-for-macros">directories for macros</a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Directories">Macro Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-directory_002c-current">directory, current</a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Directories">Macro Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-directory_002c-for-tmac-files">directory, for tmac files</a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Directories">Macro Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-directory_002c-home">directory, home</a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Directories">Macro Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-directory_002c-platform_002dspecific">directory, platform-specific</a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Directories">Macro Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-directory_002c-site_002dlocal">directory, site-local</a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Directories">Macro Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-directory_002c-site_002dlocal-1">directory, site-local</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Directories">Font Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-disabling-hyphenation-_0028_005c_0025_0029">disabling hyphenation (<code class="code">\%</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-disabling-_005c-_0028eo_0029">disabling <code class="code">\</code> (<code class="code">eo</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Escape-Sequences">Using Escape Sequences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-discardable-horizontal-space">discardable horizontal space</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-displays">displays</a>:</td><td> </td><td class="printindex-index-section"><a href="#Displays-and-Keeps">Displays and Keeps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-displays-_005bms_005d">displays [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-keeps-and-displays">ms keeps and displays</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-displays_002c-and-footnotes-_005bms_005d">displays, and footnotes [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Footnotes">ms Footnotes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-distance-to-next-vertical-position-trap-register-_0028_002et_0029">distance to next vertical position trap register (<code class="code">.t</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Location-Traps">Page Location Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-diversion">diversion</a>:</td><td> </td><td class="printindex-index-section"><a href="#Deferring-Output">Deferring Output</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-diversion-name-register-_0028_002ez_0029">diversion name register (<code class="code">.z</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-diversion-trap_002c-setting-_0028dt_0029">diversion trap, setting (<code class="code">dt</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversion-Traps">Diversion Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-diversion-traps">diversion traps</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversion-Traps">Diversion Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-diversion_002c-appending-to-_0028da_002c-boxa_0029">diversion, appending to (<code class="code">da</code>, <code class="code">boxa</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-diversion_002c-beginning-_0028di_002c-box_0029">diversion, beginning (<code class="code">di</code>, <code class="code">box</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-diversion_002c-creating-alias-for-_0028als_0029">diversion, creating alias for (<code class="code">als</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-diversion_002c-ending-_0028di_002c-box_0029">diversion, ending (<code class="code">di</code>, <code class="code">box</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-diversion_002c-nested">diversion, nested</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-diversion_002c-removing-_0028rm_0029">diversion, removing (<code class="code">rm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-diversion_002c-removing-alias-for-_0028rm_0029">diversion, removing alias for (<code class="code">rm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-diversion_002c-renaming-_0028rn_0029">diversion, renaming (<code class="code">rn</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-diversion_002c-stripping-final-newline">diversion, stripping final newline</a>:</td><td> </td><td class="printindex-index-section"><a href="#Punning-Names">Punning Names</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-diversion_002c-top_002dlevel">diversion, top-level</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-diversion_002c-top_002dlevel_002c-and-bp">diversion, top-level, and <code class="code">bp</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-diversion_002c-top_002dlevel_002c-and-_005c_0021">diversion, top-level, and <code class="code">\!</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-diversion_002c-top_002dlevel_002c-and-_005c_003f">diversion, top-level, and <code class="code">\?</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-diversion_002c-unformatting-_0028asciify_0029">diversion, unformatting (<code class="code">asciify</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-diversion_002c-vertical-position-in_002c-register-_0028_002ed_0029">diversion, vertical position in, register (<code class="code">.d</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-diversions">diversions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-diversions-1">diversions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Punning-Names">Punning Names</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-diversions_002c-and-traps">diversions, and traps</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Location-Traps">Page Location Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-diversions_002c-shared-name-space-with-macros-and-strings">diversions, shared name space with macros and strings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Identifiers">Identifiers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-division_002c-truncating">division, truncating</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-dl-register_002c-and-da-_0028boxa_0029"><code class="code">dl</code> register, and <code class="code">da</code> (<code class="code">boxa</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-dn-register_002c-and-da-_0028boxa_0029"><code class="code">dn</code> register, and <code class="code">da</code> (<code class="code">boxa</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-document-description-macros_002c-_005bms_005d">document description macros, [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Description-Macros">ms Document Description Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-document-formats">document formats</a>:</td><td> </td><td class="printindex-index-section"><a href="#Document-Formats">Document Formats</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-documents_002c-multi_002dfile">documents, multi-file</a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-documents_002c-structuring-the-source-of">documents, structuring the source of</a>:</td><td> </td><td class="printindex-index-section"><a href="#Invoking-Requests">Invoking Requests</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-dot_002c-as-delimiter">dot, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-double-quote_002c-embedding-in-a-macro-argument">double quote, embedding in a macro argument</a>:</td><td> </td><td class="printindex-index-section"><a href="#Calling-Macros">Calling Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-double-quotes_002c-trailing_002c-in-strings">double quotes, trailing, in strings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-double_002dspacing-_0028ls_0029">double-spacing (<code class="code">ls</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Spacing">Manipulating Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-double_002dspacing-_0028vs_002c-pvs_0029">double-spacing (<code class="code">vs</code>, <code class="code">pvs</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Vertical-Spacing">Changing the Vertical Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-down_002dcasing-a-string-_0028stringdown_0029">down-casing a string (<code class="code">stringdown</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-drawing-a-filled-circle-_0028_005cD_0027C-_2026_0027_0029">drawing a filled circle (‘<samp class="samp">\D'C …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-drawing-a-filled-ellipse-_0028_005cD_0027E-_2026_0027_0029">drawing a filled ellipse (‘<samp class="samp">\D'E …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-drawing-a-filled-polygon-_0028_005cD_0027P-_2026_0027_0029">drawing a filled polygon (‘<samp class="samp">\D'P …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-drawing-a-line-_0028_005cD_0027l-_2026_0027_0029">drawing a line (‘<samp class="samp">\D'l …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-drawing-a-solid-circle-_0028_005cD_0027C-_2026_0027_0029">drawing a solid circle (‘<samp class="samp">\D'C …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-drawing-a-solid-ellipse-_0028_005cD_0027E-_2026_0027_0029">drawing a solid ellipse (‘<samp class="samp">\D'E …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-drawing-a-solid-polygon-_0028_005cD_0027P-_2026_0027_0029">drawing a solid polygon (‘<samp class="samp">\D'P …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-drawing-a-spline-_0028_005cD_0027_007e-_2026_0027_0029">drawing a spline (‘<samp class="samp">\D'~ …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-drawing-a-stroked-circle-_0028_005cD_0027c-_2026_0027_0029">drawing a stroked circle (‘<samp class="samp">\D'c …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-drawing-a-stroked-ellipse-_0028_005cD_0027e-_2026_0027_0029">drawing a stroked ellipse (‘<samp class="samp">\D'e …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-drawing-a-stroked-polygon-_0028_005cD_0027p-_2026_0027_0029">drawing a stroked polygon (‘<samp class="samp">\D'p …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-drawing-an-arc-_0028_005cD_0027a-_2026_0027_0029">drawing an arc (‘<samp class="samp">\D'a …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-drawing-an-outlined-circle-_0028_005cD_0027c-_2026_0027_0029">drawing an outlined circle (‘<samp class="samp">\D'c …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-drawing-an-outlined-ellipse-_0028_005cD_0027e-_2026_0027_0029">drawing an outlined ellipse (‘<samp class="samp">\D'e …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-drawing-an-outlined-polygon-_0028_005cD_0027p-_2026_0027_0029">drawing an outlined polygon (‘<samp class="samp">\D'p …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-drawing-horizontal-lines-_0028_005cl_0029">drawing horizontal lines (<code class="code">\l</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-drawing-position">drawing position</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Geometry">Page Geometry</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-drawing-position_002c-vertical-_0028nl_0029">drawing position, vertical (<code class="code">nl</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-drawing-requests">drawing requests</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-drawing-vertical-lines-_0028_005cL_0029">drawing vertical lines (<code class="code">\L</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ds-request_002c-and-comments"><code class="code">ds</code> request, and comments</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ds-request_002c-and-double-quotes"><code class="code">ds</code> request, and double quotes</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ds-request_002c-and-leading-spaces"><code class="code">ds</code> request, and leading spaces</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ds_002c-ds1-requests_002c-and-comments"><code class="code">ds</code>, <code class="code">ds1</code> requests, and comments</a>:</td><td> </td><td class="printindex-index-section"><a href="#Comments">Comments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ds_002c-ds1-requests_002c-and-warnings"><code class="code">ds</code>, <code class="code">ds1</code> requests, and warnings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Warnings">Warnings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-dummy-character-_0028_005c_0026_0029">dummy character (<code class="code">\&</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Dummy-Characters">Dummy Characters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-dummy-character-_0028_005c_0026_0029_002c-as-control-character-suppressor">dummy character (<code class="code">\&</code>), as control character suppressor</a>:</td><td> </td><td class="printindex-index-section"><a href="#Requests-and-Macros">Requests and Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-dummy-character-_0028_005c_0026_0029_002c-effect-on-kerning">dummy character (<code class="code">\&</code>), effect on kerning</a>:</td><td> </td><td class="printindex-index-section"><a href="#Ligatures-and-Kerning">Ligatures and Kerning</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-dummy-character-_0028_005c_0026_0029_002c-effect-on-_005cl-escape-sequence">dummy character (<code class="code">\&</code>), effect on <code class="code">\l</code> escape sequence</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-dummy-character_002c-transparent-_0028_005c_0029_0029">dummy character, transparent (<code class="code">\)</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Dummy-Characters">Dummy Characters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-dummy-environment_002c-used-by-_005cw-escape-sequence">dummy environment, used by <code class="code">\w</code> escape sequence</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-dumping-environments-_0028pev_0029">dumping environments (<code class="code">pev</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-dumping-page-location-traps-_0028ptr_0029">dumping page location traps (<code class="code">ptr</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-dumping-registers-_0028pnr_0029">dumping registers (<code class="code">pnr</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-dumping-symbol-table-_0028pm_0029">dumping symbol table (<code class="code">pm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-E">E</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-EBCDIC-output-encoding"><abbr class="acronym">EBCDIC</abbr> output encoding</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-EBCDIC_002c-input-encoding"><abbr class="acronym">EBCDIC</abbr>, input encoding</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Encodings">Input Encodings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ejection_002c-page">ejection, page</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Geometry">Page Geometry</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ejection_002c-page-1">ejection, page</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ejection_002c-page-2">ejection, page</a>:</td><td> </td><td class="printindex-index-section"><a href="#The-Implicit-Page-Trap">The Implicit Page Trap</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ejection_002c-page_002c-of-final-page">ejection, page, of final page</a>:</td><td> </td><td class="printindex-index-section"><a href="#End_002dof_002dinput-Traps">End-of-input Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ejection_002c-page_002c-prevented-by-vpt">ejection, page, prevented by <code class="code">vpt</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Vertical-Position-Traps">Vertical Position Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-el-request_002c-and-warnings"><code class="code">el</code> request, and warnings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Warnings">Warnings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ellipse_002c-filled_002c-drawing-_0028_005cD_0027E-_2026_0027_0029">ellipse, filled, drawing (‘<samp class="samp">\D'E …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ellipse_002c-outlined_002c-drawing-_0028_005cD_0027e-_2026_0027_0029">ellipse, outlined, drawing (‘<samp class="samp">\D'e …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ellipse_002c-solid_002c-drawing-_0028_005cD_0027E-_2026_0027_0029">ellipse, solid, drawing (‘<samp class="samp">\D'E …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ellipse_002c-stroked_002c-drawing-_0028_005cD_0027e-_2026_0027_0029">ellipse, stroked, drawing (‘<samp class="samp">\D'e …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-em-glyph_002c-and-cflags"><code class="code">em</code> glyph, and <code class="code">cflags</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-em-scaling-unit-_0028m_0029">em scaling unit (<code class="code">m</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-embolding-of-special-fonts">embolding of special fonts</a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-empty-line">empty line</a>:</td><td> </td><td class="printindex-index-section"><a href="#Breaking">Breaking</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-en-scaling-unit-_0028n_0029">en scaling unit (<code class="code">n</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-enabling-vertical-position-traps-_0028vpt_0029">enabling vertical position traps (<code class="code">vpt</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Vertical-Position-Traps">Vertical Position Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-encoding_002c-input_002c-code-page-1047">encoding, input, code page 1047</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Encodings">Input Encodings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-encoding_002c-input_002c-EBCDIC">encoding, input, <abbr class="acronym">EBCDIC</abbr></a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Encodings">Input Encodings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-encoding_002c-input_002c-Latin_002d1-_0028ISO-8859_002d1_0029">encoding, input, <span class="w-nolinebreak-text">Latin-1</span><!-- /@w --> (ISO <span class="w-nolinebreak-text">8859-1</span><!-- /@w -->)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Encodings">Input Encodings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-encoding_002c-input_002c-Latin_002d2-_0028ISO-8859_002d2_0029">encoding, input, <span class="w-nolinebreak-text">Latin-2</span><!-- /@w --> (ISO <span class="w-nolinebreak-text">8859-2</span><!-- /@w -->)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Encodings">Input Encodings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-encoding_002c-input_002c-Latin_002d5-_0028ISO-8859_002d9_0029">encoding, input, <span class="w-nolinebreak-text">Latin-5</span><!-- /@w --> (ISO <span class="w-nolinebreak-text">8859-9</span><!-- /@w -->)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Encodings">Input Encodings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-encoding_002c-input_002c-Latin_002d9-_0028ISO-8859_002d15_0029">encoding, input, <span class="w-nolinebreak-text">Latin-9</span><!-- /@w --> (ISO <span class="w-nolinebreak-text">8859-15</span><!-- /@w -->)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Encodings">Input Encodings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-encoding_002c-output_002c-ASCII">encoding, output, <abbr class="acronym">ASCII</abbr></a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-encoding_002c-output_002c-code-page-1047">encoding, output, code page 1047</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-encoding_002c-output_002c-EBCDIC">encoding, output, <abbr class="acronym">EBCDIC</abbr></a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-encoding_002c-output_002c-ISO-646">encoding, output, ISO 646</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-encoding_002c-output_002c-Latin_002d1-_0028ISO-8859_002d1_0029">encoding, output, <span class="w-nolinebreak-text">Latin-1</span><!-- /@w --> (ISO <span class="w-nolinebreak-text">8859-1</span><!-- /@w -->)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-encoding_002c-output_002c-UTF_002d8">encoding, output, <span class="w-nolinebreak-text">UTF-8</span><!-- /@w --></a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-end-of-conditional-block-_0028_005c_007d_0029">end of conditional block (<code class="code">\}</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Conditional-Blocks">Conditional Blocks</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-end_002dof_002dinput-macro-_0028em_0029">end-of-input macro (<code class="code">em</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#End_002dof_002dinput-Traps">End-of-input Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-end_002dof_002dinput-trap_002c-setting-_0028em_0029">end-of-input trap, setting (<code class="code">em</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#End_002dof_002dinput-Traps">End-of-input Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-end_002dof_002dinput-traps">end-of-input traps</a>:</td><td> </td><td class="printindex-index-section"><a href="#End_002dof_002dinput-Traps">End-of-input Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-end_002dof_002dsentence-characters">end-of-sentence characters</a>:</td><td> </td><td class="printindex-index-section"><a href="#Sentences">Sentences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-end_002dof_002dsentence-characters-1">end-of-sentence characters</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-end_002dof_002dsentence-transparent-characters">end-of-sentence transparent characters</a>:</td><td> </td><td class="printindex-index-section"><a href="#Sentences">Sentences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ending-diversion-_0028di_002c-box_0029">ending diversion (<code class="code">di</code>, <code class="code">box</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-endnotes">endnotes</a>:</td><td> </td><td class="printindex-index-section"><a href="#Footnotes-and-Endnotes">Footnotes and Endnotes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-environment">environment</a>:</td><td> </td><td class="printindex-index-section"><a href="#Deferring-Output">Deferring Output</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-environment-availability-and-naming_002c-incompatibilities-with">environment availability and naming, incompatibilities with</a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-environment-number_002fname-register-_0028_002eev_0029">environment number/name register (<code class="code">.ev</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Environments">Environments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-environment-variables">environment variables</a>:</td><td> </td><td class="printindex-index-section"><a href="#Environment">Environment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-environment_002c-copying-_0028evc_0029">environment, copying (<code class="code">evc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Environments">Environments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-environment_002c-dimensions-of-last-glyph-_0028_002ew_002c-_002echt_002c-_002ecdp_002c-_002ecsk_0029">environment, dimensions of last glyph (<code class="code">.w</code>, <code class="code">.cht</code>, <code class="code">.cdp</code>, <code class="code">.csk</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Environments">Environments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-environment_002c-dummy_002c-used-by-_005cw-escape-sequence">environment, dummy, used by <code class="code">\w</code> escape sequence</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-environment_002c-previous-line-length-_0028_002en_0029">environment, previous line length (<code class="code">.n</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Environments">Environments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-environment_002c-switching-_0028ev_0029">environment, switching (<code class="code">ev</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Environments">Environments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-environments">environments</a>:</td><td> </td><td class="printindex-index-section"><a href="#Environments">Environments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-environments_002c-dumping-_0028pev_0029">environments, dumping (<code class="code">pev</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-equality-operator">equality operator</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-equation-example-_005bms_005d">equation example [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Insertions">ms Insertions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-equations-_005bms_005d">equations [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Insertions">ms Insertions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-escape-character_002c-changing-_0028ec_0029">escape character, changing (<code class="code">ec</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Escape-Sequences">Using Escape Sequences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-escape-character_002c-formatting-_0028_005ce_0029">escape character, formatting (<code class="code">\e</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Escape-Sequences">Using Escape Sequences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-escape-character_002c-while-defining-glyph">escape character, while defining glyph</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-escape-sequence">escape sequence</a>:</td><td> </td><td class="printindex-index-section"><a href="#Formatter-Instructions">Formatter Instructions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-escape-sequence-argument-delimiters">escape sequence argument delimiters</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-escape-sequences">escape sequences</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Escape-Sequences">Using Escape Sequences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-escape-sequences_002c-brace-_0028_005c_007b_002c-_005c_007d_0029">escape sequences, brace (<code class="code">\{</code>, <code class="code">\}</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Conditional-Blocks">Conditional Blocks</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-escaping-newline-characters_002c-in-strings">escaping newline characters, in strings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ex-request_002c-use-in-debugging"><code class="code">ex</code> request, use in debugging</a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ex-request_002c-used-with-nx-and-rd"><code class="code">ex</code> request, used with <code class="code">nx</code> and <code class="code">rd</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-example-markup_002c-bulleted-list-_005bms_005d">example markup, bulleted list [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#Lists-in-ms">Lists in ms</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-example-markup_002c-cover-page-in-_005bms_005d">example markup, cover page in [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Description-Macros">ms Document Description Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-example-markup_002c-glossary_002dstyle-list-_005bms_005d">example markup, glossary-style list [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#Lists-in-ms">Lists in ms</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-example-markup_002c-numbered-list-_005bms_005d">example markup, numbered list [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#Lists-in-ms">Lists in ms</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-examples-of-invocation">examples of invocation</a>:</td><td> </td><td class="printindex-index-section"><a href="#Invocation-Examples">Invocation Examples</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-exiting-_0028ex_0029">exiting (<code class="code">ex</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-expansion-of-strings-_0028_005c_002a_0029">expansion of strings (<code class="code">\*</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-explicit-hyphen-_0028_005c_0025_0029">explicit hyphen (<code class="code">\%</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-explicit-hyphenation">explicit hyphenation</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-expression_002c-limitation-of-logical-not-in">expression, limitation of logical not in</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-expression_002c-order-of-evaluation">expression, order of evaluation</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-expressions_002c-and-register-format">expressions, and register format</a>:</td><td> </td><td class="printindex-index-section"><a href="#Assigning-Register-Formats">Assigning Register Formats</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-expressions_002c-and-space-characters">expressions, and space characters</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-expressions_002c-conditional">expressions, conditional</a>:</td><td> </td><td class="printindex-index-section"><a href="#Operators-in-Conditionals">Operators in Conditionals</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-expressions_002c-numeric">expressions, numeric</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-extra-post_002dvertical-line-space-_0028_005cx_0029">extra post-vertical line space (<code class="code">\x</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Vertical-Spacing">Changing the Vertical Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-extra-post_002dvertical-line-space-register-_0028_002ea_0029">extra post-vertical line space register (<code class="code">.a</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Spacing">Manipulating Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-extra-pre_002dvertical-line-space-_0028_005cx_0029">extra pre-vertical line space (<code class="code">\x</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Vertical-Spacing">Changing the Vertical Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-extra-spaces-between-words">extra spaces between words</a>:</td><td> </td><td class="printindex-index-section"><a href="#Adjustment">Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-extreme-values-representable-with-Roman-numerals">extreme values representable with Roman numerals</a>:</td><td> </td><td class="printindex-index-section"><a href="#Assigning-Register-Formats">Assigning Register Formats</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-extremum-operators-_0028_003e_003f_002c-_003c_003f_0029">extremum operators (<code class="code">>?</code>, <code class="code"><?</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-F">F</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-f-scaling-unit"><code class="code">f</code> scaling unit</a>:</td><td> </td><td class="printindex-index-section"><a href="#Colors">Colors</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-factor_002c-zoom_002c-of-a-font-_0028fzoom_0029">factor, zoom, of a font (<code class="code">fzoom</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fallback-character_002c-defining-_0028fchar_002c-fschar_002c-schar_0029">fallback character, defining (<code class="code">fchar</code>, <code class="code">fschar</code>, <code class="code">schar</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fallback-glyph_002c-removing-definition-_0028rchar_002c-rfschar_0029">fallback glyph, removing definition (<code class="code">rchar</code>, <code class="code">rfschar</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fam-request_002c-and-changing-fonts"><code class="code">fam</code> request, and changing fonts</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-families_002c-font">families, font</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Families">Font Families</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-family_002c-font">family, font</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fonts">Using Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-features_002c-common">features, common</a>:</td><td> </td><td class="printindex-index-section"><a href="#Common-Features">Common Features</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fi-request_002c-causing-implicit-break"><code class="code">fi</code> request, causing implicit break</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-field-delimiting-character-_0028fc_0029">field delimiting character (<code class="code">fc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Fields">Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-field-padding-character-_0028fc_0029">field padding character (<code class="code">fc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Fields">Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fields">fields</a>:</td><td> </td><td class="printindex-index-section"><a href="#Fields">Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fields_002c-and-tabs">fields, and tabs</a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Fields">Tabs and Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-figure-space-_0028_005c0_0029">figure space (<code class="code">\0</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-figures-_005bms_005d">figures [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Insertions">ms Insertions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-file-formats">file formats</a>:</td><td> </td><td class="printindex-index-section"><a href="#File-Formats">File Formats</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-file-names_002c-breaking-_0028_005c_003a_0029">file names, breaking (<code class="code">\:</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-file_002c-appending-to-_0028opena_0029">file, appending to (<code class="code">opena</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-file_002c-closing-_0028close_0029">file, closing (<code class="code">close</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-file_002c-font-description">file, font description</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fonts">Using Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-file_002c-inclusion-_0028so_0029">file, inclusion (<code class="code">so</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-file_002c-macro_002c-search-path">file, macro, search path</a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Directories">Macro Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-file_002c-opening-_0028open_0029">file, opening (<code class="code">open</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-file_002c-processing-next-_0028nx_0029">file, processing next (<code class="code">nx</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-file_002c-writing-to-_0028write_002c-writec_0029">file, writing to (<code class="code">write</code>, <code class="code">writec</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-files_002c-font">files, font</a>:</td><td> </td><td class="printindex-index-section"><a href="#Device-and-Font-Description-Files">Device and Font Description Files</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fill-color">fill color</a>:</td><td> </td><td class="printindex-index-section"><a href="#Colors">Colors</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fill-color-name-register-_0028_002eM_0029">fill color name register (<code class="code">.M</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Colors">Colors</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fill-mode-_0028fi_0029_002c-enabling">fill mode (<code class="code">fi</code>), enabling</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fill-mode_002c-and-_005cc">fill mode, and <code class="code">\c</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Continuation">Line Continuation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fill-mode_002c-disabling">fill mode, disabling</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-filled-circle_002c-drawing-_0028_005cD_0027C-_2026_0027_0029">filled circle, drawing (‘<samp class="samp">\D'C …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-filled-ellipse_002c-drawing-_0028_005cD_0027E-_2026_0027_0029">filled ellipse, drawing (‘<samp class="samp">\D'E …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-filled-polygon_002c-drawing-_0028_005cD_0027P-_2026_0027_0029">filled polygon, drawing (‘<samp class="samp">\D'P …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-filling">filling</a>:</td><td> </td><td class="printindex-index-section"><a href="#Filling">Filling</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-filling-and-adjustment_002c-manipulating">filling and adjustment, manipulating</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-filling-of-output_002c-disabling-_0028nf_0029">filling of output, disabling (<code class="code">nf</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-filling-of-output_002c-enabling-_0028fi_0029">filling of output, enabling (<code class="code">fi</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-filling_002c-and-break-warnings">filling, and <code class="code">break</code> warnings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Warnings">Warnings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-filling_002c-and-inter_002dsentence-space">filling, and inter-sentence space</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-final-newline_002c-stripping-in-diversions">final newline, stripping in diversions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Punning-Names">Punning Names</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fl-request_002c-causing-implicit-break"><code class="code">fl</code> request, causing implicit break</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-floating-keep">floating keep</a>:</td><td> </td><td class="printindex-index-section"><a href="#Displays-and-Keeps">Displays and Keeps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-flush-output-_0028fl_0029">flush output (<code class="code">fl</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font">font</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fonts">Using Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font-aliasing-with-third-argument-to-fp-request">font aliasing with third argument to <code class="code">fp</code> request</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Positions">Font Positions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font-description-file">font description file</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fonts">Using Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font-description-file-format">font description file format</a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font-description-file_002c-format">font description file, format</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Description-File-Format">Font Description File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font-description-files_002c-comments">font description files, comments</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Description-File-Format">Font Description File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font-directories">font directories</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Directories">Font Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font-families">font families</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Families">Font Families</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font-family">font family</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fonts">Using Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font-family_002c-changing-_0028fam_002c-_005cF_0029">font family, changing (<code class="code">fam</code>, <code class="code">\F</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Families">Font Families</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font-file_002c-format">font file, format</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Description-File-Format">Font Description File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font-files">font files</a>:</td><td> </td><td class="printindex-index-section"><a href="#Device-and-Font-Description-Files">Device and Font Description Files</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font-for-underlining-_0028uf_0029">font for underlining (<code class="code">uf</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font-height_002c-changing-_0028_005cH_0029">font height, changing (<code class="code">\H</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font-metrics">font metrics</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fonts">Using Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font-mounting_002c-automatic">font mounting, automatic</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font-path">font path</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Directories">Font Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font-position-register-_0028_002ef_0029">font position register (<code class="code">.f</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Positions">Font Positions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font-positions">font positions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Positions">Font Positions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font-slant_002c-changing-_0028_005cS_0029">font slant, changing (<code class="code">\S</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font-style">font style</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fonts">Using Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font-style_002c-abstract">font style, abstract</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fonts">Using Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font-style_002c-abstract_002c-setting-up-_0028sty_0029">font style, abstract, setting up (<code class="code">sty</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Families">Font Families</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font-styles">font styles</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Families">Font Families</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font-translation-_0028ftr_0029">font translation (<code class="code">ftr</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font_002c-magnification-_0028fzoom_0029">font, magnification (<code class="code">fzoom</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font_002c-mounting-_0028fp_0029">font, mounting (<code class="code">fp</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Positions">Font Positions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font_002c-optical-size">font, optical size</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font_002c-previous_002c-selecting-_0028_005cf_005b_005d_002c-_005cfP_0029">font, previous, selecting (<code class="code">\f[]</code>, <code class="code">\fP</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font_002c-previous_002c-slecting-_0028ft_0029">font, previous, slecting (<code class="code">ft</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font_002c-selection">font, selection</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font_002c-special">font, special</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fonts">Using Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font_002c-text">font, text</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fonts">Using Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font_002c-unstyled">font, unstyled</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fonts">Using Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-font_002c-zoom-factor-_0028fzoom_0029">font, zoom factor (<code class="code">fzoom</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fonts_002c-artificial">fonts, artificial</a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fonts_002c-changing-_0028ft_002c-_005cf_0029">fonts, changing (<code class="code">ft</code>, <code class="code">\f</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fonts_002c-searching">fonts, searching</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Directories">Font Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fonts_002c-special">fonts, special</a>:</td><td> </td><td class="printindex-index-section"><a href="#Special-Fonts">Special Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-footers">footers</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-footers-1">footers</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Location-Traps">Page Location Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-footers-_005bms_005d">footers [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Headers-and-Footers">ms Headers and Footers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-footnote-marker-_005bms_005d">footnote marker [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Footnotes">ms Footnotes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-footnotes">footnotes</a>:</td><td> </td><td class="printindex-index-section"><a href="#Footnotes-and-Endnotes">Footnotes and Endnotes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-footnotes-_005bms_005d">footnotes [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Footnotes">ms Footnotes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-footnotes_002c-and-displays-_005bms_005d">footnotes, and displays [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Footnotes">ms Footnotes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-footnotes_002c-and-keeps-_005bms_005d">footnotes, and keeps [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Footnotes">ms Footnotes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-form-letters">form letters</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-format-of-font-description-file">format of font description file</a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-format-of-font-description-files">format of font description files</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Description-File-Format">Font Description File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-format-of-font-files">format of font files</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Description-File-Format">Font Description File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-format-of-register-_0028_005cg_0029">format of register (<code class="code">\g</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Assigning-Register-Formats">Assigning Register Formats</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-format_002c-paper">format, paper</a>:</td><td> </td><td class="printindex-index-section"><a href="#Paper-Format">Paper Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-formats_002c-file">formats, file</a>:</td><td> </td><td class="printindex-index-section"><a href="#File-Formats">File Formats</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-formatter-instructions">formatter instructions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Formatter-Instructions">Formatter Instructions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-formatting-a-backslash-glyph-_0028_005c_005brs_005d_0029">formatting a backslash glyph (<code class="code">\[rs]</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Escape-Sequences">Using Escape Sequences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-formatting-a-title-line-_0028tl_0029">formatting a title line (<code class="code">tl</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-formatting-the-escape-character-_0028_005ce_0029">formatting the escape character (<code class="code">\e</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Escape-Sequences">Using Escape Sequences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-formatting-the-time">formatting the time</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fp-request_002c-and-font-translations"><code class="code">fp</code> request, and font translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fp-request_002c-incompatibilities-with-AT_0026T-troff"><code class="code">fp</code> request, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fractional-point-sizes">fractional point sizes</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fractional-point-sizes-1">fractional point sizes</a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fractional-type-sizes">fractional type sizes</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fractional-type-sizes-1">fractional type sizes</a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fractional-type-sizes-in-ms-macros">fractional type sizes in <samp class="file">ms</samp> macros</a>:</td><td> </td><td class="printindex-index-section"><a href="#Differences-from-AT_0026T-ms">Differences from AT&T ms</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-French-spacing">French spacing</a>:</td><td> </td><td class="printindex-index-section"><a href="#Sentences">Sentences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fspecial-request_002c-and-font-styles"><code class="code">fspecial</code> request, and font styles</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Families">Font Families</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fspecial-request_002c-and-font-translations"><code class="code">fspecial</code> request, and font translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fspecial-request_002c-and-glyph-search-order"><code class="code">fspecial</code> request, and glyph search order</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-fspecial-request_002c-and-imitating-bold"><code class="code">fspecial</code> request, and imitating bold</a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ft-request_002c-and-font-translations"><code class="code">ft</code> request, and font translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-full_002dservice-macro-package">full-service macro package</a>:</td><td> </td><td class="printindex-index-section"><a href="#Major-Macro-Packages">Major Macro Packages</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-G">G</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-geometry_002c-page">geometry, page</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Geometry">Page Geometry</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-GGL-_0028groff-glyph-list_0029">GGL (<code class="code">groff</code> glyph list)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-GGL-_0028groff-glyph-list_0029-1">GGL (<code class="code">groff</code> glyph list)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Classes">Character Classes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-glossary_002dstyle-list_002c-example-markup-_005bms_005d">glossary-style list, example markup [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#Lists-in-ms">Lists in ms</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-glyph">glyph</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-glyph-for-line-drawing">glyph for line drawing</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-glyph-names_002c-composite">glyph names, composite</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-glyph-pile-_0028_005cb_0029">glyph pile (<code class="code">\b</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-glyph-properties-_0028cflags_0029">glyph properties (<code class="code">cflags</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-glyph_002c-box-rule-_0028_005c_005bbr_005d_0029">glyph, box rule (<code class="code">\[br]</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-glyph_002c-constant-space">glyph, constant space</a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-glyph_002c-defining-_0028char_0029">glyph, defining (<code class="code">char</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-glyph_002c-distinguished-from-character">glyph, distinguished from character</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-glyph_002c-for-line-drawing">glyph, for line drawing</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-glyph_002c-for-margins-_0028mc_0029">glyph, for margins (<code class="code">mc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Miscellaneous">Miscellaneous</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-glyph_002c-last_002c-dimensions-_0028_002ew_002c-_002echt_002c-_002ecdp_002c-_002ecsk_0029">glyph, last, dimensions (<code class="code">.w</code>, <code class="code">.cht</code>, <code class="code">.cdp</code>, <code class="code">.csk</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Environments">Environments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-glyph_002c-leader-repetition-_0028lc_0029">glyph, leader repetition (<code class="code">lc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Leaders">Leaders</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-glyph_002c-numbered-_0028_005cN_0029">glyph, numbered (<code class="code">\N</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-glyph_002c-numbered-_0028_005cN_0029-1">glyph, numbered (<code class="code">\N</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-glyph_002c-removing-definition-_0028rchar_002c-rfschar_0029">glyph, removing definition (<code class="code">rchar</code>, <code class="code">rfschar</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-glyph_002c-soft-hyphen-_0028hy_0029">glyph, soft hyphen (<code class="code">hy</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-glyph_002c-tab-repetition-_0028tc_0029">glyph, tab repetition (<code class="code">tc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Fields">Tabs and Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-glyph_002c-underscore-_0028_005c_005bru_005d_0029">glyph, underscore (<code class="code">\[ru]</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-glyphs_002c-available_002c-list-of-_0028groff_005fchar_00287_0029-man-page_0029">glyphs, available, list of (<cite class="cite">groff_char<span class="r">(7)</span></cite> man page)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-glyphs_002c-output_002c-and-input-characters_002c-compatibility-with-AT_0026T-troff">glyphs, output, and input characters, compatibility with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-glyphs_002c-overstriking-_0028_005co_0029">glyphs, overstriking (<code class="code">\o</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-glyphs_002c-unnamed">glyphs, unnamed</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-glyphs_002c-unnamed_002c-accessing-with-_005cN">glyphs, unnamed, accessing with <code class="code">\N</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Description-File-Format">Font Description File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-GNU-troff_002c-identification-register-_0028_002eg_0029">GNU <code class="code">troff</code>, identification register (<code class="code">.g</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-GNU-troff_002c-PID-register-_0028_0024_0024_0029">GNU <code class="code">troff</code>, PID register (<code class="code">$$</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-GNU-troff_002c-process-ID-register-_0028_0024_0024_0029">GNU <code class="code">troff</code>, process ID register (<code class="code">$$</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-GNU_002dspecific-register-_0028_002eg_0029">GNU-specific register (<code class="code">.g</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-graphic-renditions">graphic renditions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fonts">Using Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-greater-than-_0028or-equal-to_0029-operator">greater than (or equal to) operator</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-groff-capabilities"><code class="code">groff</code> capabilities</a>:</td><td> </td><td class="printindex-index-section"><a href="#groff-Capabilities"><code class="code">groff</code> Capabilities</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-groff-glyph-list-_0028GGL_0029"><code class="code">groff</code> glyph list (GGL)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-groff-glyph-list-_0028GGL_0029-1"><code class="code">groff</code> glyph list (GGL)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Classes">Character Classes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-groff-invocation"><code class="code">groff</code> invocation</a>:</td><td> </td><td class="printindex-index-section"><a href="#Invoking-groff">Invoking groff</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-groff_002c-and-pi-request"><code class="code">groff</code>, and <code class="code">pi</code> request</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-groff_002d_002d_002dwhat-is-it_003f"><code class="code">groff</code>—what is it?</a>:</td><td> </td><td class="printindex-index-section"><a href="#What-Is-groff_003f">What Is <code class="code">groff</code>?</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-GROFF_005fBIN_005fPATH_002c-environment-variable"><code>GROFF_BIN_PATH<span class="r">, environment variable</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Environment">Environment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-GROFF_005fCOMMAND_005fPREFIX_002c-environment-variable"><code>GROFF_COMMAND_PREFIX<span class="r">, environment variable</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Environment">Environment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-GROFF_005fENCODING_002c-environment-variable"><code>GROFF_ENCODING<span class="r">, environment variable</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Environment">Environment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-GROFF_005fFONT_005fPATH_002c-environment-variable"><code>GROFF_FONT_PATH<span class="r">, environment variable</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Environment">Environment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-GROFF_005fFONT_005fPATH_002c-environment-variable-1"><code>GROFF_FONT_PATH<span class="r">, environment variable</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Directories">Font Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-GROFF_005fTMAC_005fPATH_002c-environment-variable"><code>GROFF_TMAC_PATH<span class="r">, environment variable</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Environment">Environment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-GROFF_005fTMAC_005fPATH_002c-environment-variable-1"><code>GROFF_TMAC_PATH<span class="r">, environment variable</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Directories">Macro Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-GROFF_005fTMPDIR_002c-environment-variable"><code>GROFF_TMPDIR<span class="r">, environment variable</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Environment">Environment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-GROFF_005fTYPESETTER_002c-environment-variable"><code>GROFF_TYPESETTER<span class="r">, environment variable</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Environment">Environment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-grohtml_002c-the-program"><code class="code">grohtml</code>, the program</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-gtroff_002c-interactive-use"><code class="code">gtroff</code>, interactive use</a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-gtroff_002c-output"><code class="code">gtroff</code>, output</a>:</td><td> </td><td class="printindex-index-section"><a href="#gtroff-Output">gtroff Output</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-gtroff_002c-reference"><code class="code">gtroff</code>, reference</a>:</td><td> </td><td class="printindex-index-section"><a href="#GNU-troff-Reference">GNU troff Reference</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-H">H</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hair-space-_0028_005c_005e_0029">hair space (<code class="code">\^</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hcode-request_002c-and-glyph-definitions"><code class="code">hcode</code> request, and glyph definitions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-headers">headers</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-headers-1">headers</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Location-Traps">Page Location Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-headers-_005bms_005d">headers [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Headers-and-Footers">ms Headers and Footers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-height_002c-font_002c-changing-_0028_005cH_0029">height, font, changing (<code class="code">\H</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-height_002c-of-last-glyph-_0028_002echt_0029">height, of last glyph (<code class="code">.cht</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Environments">Environments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-high_002dwater-mark-register-_0028_002eh_0029">high-water mark register (<code class="code">.h</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-home-directory">home directory</a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Directories">Macro Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-horizontal-discardable-space">horizontal discardable space</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-horizontal-input-line-position-register-_0028hp_0029">horizontal input line position register (<code class="code">hp</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-horizontal-input-line-position_002c-saving-_0028_005ck_0029">horizontal input line position, saving (<code class="code">\k</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-horizontal-line_002c-drawing-_0028_005cl_0029">horizontal line, drawing (<code class="code">\l</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-horizontal-motion-_0028_005ch_0029">horizontal motion (<code class="code">\h</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-horizontal-motion-quantum">horizontal motion quantum</a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-horizontal-motion-quantum-register-_0028_002eH_0029">horizontal motion quantum register (<code class="code">.H</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Motion-Quanta">Motion Quanta</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-horizontal-output-line-position-register-_0028_002ek_0029">horizontal output line position register (<code class="code">.k</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-horizontal-resolution">horizontal resolution</a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-horizontal-resolution-register-_0028_002eH_0029">horizontal resolution register (<code class="code">.H</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Motion-Quanta">Motion Quanta</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-horizontal-space-_0028_005ch_0029">horizontal space (<code class="code">\h</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-horizontal-space_002c-unformatting">horizontal space, unformatting</a>:</td><td> </td><td class="printindex-index-section"><a href="#Punning-Names">Punning Names</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-horizontal-tab-character">horizontal tab character</a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Leaders">Tabs and Leaders</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hours_002c-current-time-_0028hours_0029">hours, current time (<code class="code">hours</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hpf-request_002c-and-hyphenation-language"><code class="code">hpf</code> request, and hyphenation language</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hw-request_002c-and-hy-restrictions"><code class="code">hw</code> request, and <code class="code">hy</code> restrictions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hw-request_002c-and-hyphenation-language"><code class="code">hw</code> request, and hyphenation language</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hy-glyph_002c-and-cflags"><code class="code">hy</code> glyph, and <code class="code">cflags</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hyphen_002c-explicit-_0028_005c_0025_0029">hyphen, explicit (<code class="code">\%</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hyphenated-lines_002c-consecutive-_0028hlm_0029">hyphenated lines, consecutive (<code class="code">hlm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hyphenating-characters">hyphenating characters</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hyphenation">hyphenation</a>:</td><td> </td><td class="printindex-index-section"><a href="#Hyphenation">Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hyphenation-character-_0028_005c_0025_0029">hyphenation character (<code class="code">\%</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hyphenation-code-_0028hcode_0029">hyphenation code (<code class="code">hcode</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hyphenation-consecutive-line-count-register-_0028_002ehlc_0029">hyphenation consecutive line count register (<code class="code">.hlc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hyphenation-consecutive-line-limit-register-_0028_002ehlm_0029">hyphenation consecutive line limit register (<code class="code">.hlm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hyphenation-exceptions">hyphenation exceptions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hyphenation-language-register-_0028_002ehla_0029">hyphenation language register (<code class="code">.hla</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hyphenation-margin-_0028hym_0029">hyphenation margin (<code class="code">hym</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hyphenation-margin-register-_0028_002ehym_0029">hyphenation margin register (<code class="code">.hym</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hyphenation-mode-register-_0028_002ehy_0029">hyphenation mode register (<code class="code">.hy</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hyphenation-parameters_002c-automatic">hyphenation parameters, automatic</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hyphenation-pattern-files">hyphenation pattern files</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hyphenation-patterns-_0028hpf_0029">hyphenation patterns (<code class="code">hpf</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hyphenation-space-_0028hys_0029">hyphenation space (<code class="code">hys</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hyphenation-space-adjustment-threshold">hyphenation space adjustment threshold</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hyphenation-space-adjustment-threshold-register-_0028_002ehys_0029">hyphenation space adjustment threshold register (<code class="code">.hys</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hyphenation_002c-automatic">hyphenation, automatic</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hyphenation_002c-disabling-_0028_005c_0025_0029">hyphenation, disabling (<code class="code">\%</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hyphenation_002c-explicit">hyphenation, explicit</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hyphenation_002c-incompatibilities-with-AT_0026T-troff">hyphenation, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hyphenation_002c-manipulating">hyphenation, manipulating</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-hyphenation_002c-manual">hyphenation, manual</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-I">I</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-i-scaling-unit"><code class="code">i</code> scaling unit</a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-i_002fo">i/o</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-IBM-code-page-1047-input-encoding">IBM code page 1047 input encoding</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Encodings">Input Encodings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-IBM-code-page-1047-output-encoding">IBM code page 1047 output encoding</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-identifiers">identifiers</a>:</td><td> </td><td class="printindex-index-section"><a href="#Identifiers">Identifiers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-identifiers_002c-undefined">identifiers, undefined</a>:</td><td> </td><td class="printindex-index-section"><a href="#Identifiers">Identifiers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ie-request_002c-and-font-translations"><code class="code">ie</code> request, and font translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ie-request_002c-and-warnings"><code class="code">ie</code> request, and warnings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Warnings">Warnings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ie-request_002c-operators-to-use-with"><code class="code">ie</code> request, operators to use with</a>:</td><td> </td><td class="printindex-index-section"><a href="#Operators-in-Conditionals">Operators in Conditionals</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-if-request_002c-and-font-translations"><code class="code">if</code> request, and font translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-if-request_002c-and-the-_0021-operator"><code class="code">if</code> request, and the ‘<samp class="samp">!</samp>’ operator</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-if-request_002c-operators-to-use-with"><code class="code">if</code> request, operators to use with</a>:</td><td> </td><td class="printindex-index-section"><a href="#Operators-in-Conditionals">Operators in Conditionals</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-if_002delse">if-else</a>:</td><td> </td><td class="printindex-index-section"><a href="#if_002delse">if-else</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-if_002dthen">if-then</a>:</td><td> </td><td class="printindex-index-section"><a href="#if_002dthen">if-then</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-imitating-boldface-_0028bd_0029">imitating boldface (<code class="code">bd</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-implementation-differences">implementation differences</a>:</td><td> </td><td class="printindex-index-section"><a href="#Implementation-Differences">Implementation Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-implicit-line-break">implicit line break</a>:</td><td> </td><td class="printindex-index-section"><a href="#Breaking">Breaking</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-implicit-trap">implicit trap</a>:</td><td> </td><td class="printindex-index-section"><a href="#The-Implicit-Page-Trap">The Implicit Page Trap</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-in-request_002c-causing-implicit-break"><code class="code">in</code> request, causing implicit break</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-in-request_002c-using-_002b-and-_002d-with"><code class="code">in</code> request, using <code class="code">+</code> and <code class="code">-</code> with</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-inch-scaling-unit-_0028i_0029">inch scaling unit (<code class="code">i</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-including-a-file-_0028so_0029">including a file (<code class="code">so</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-incompatibilities-with-AT_0026T-troff">incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Implementation-Differences">Implementation Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-increment-value-without-changing-the-register">increment value without changing the register</a>:</td><td> </td><td class="printindex-index-section"><a href="#Auto_002dincrement">Auto-increment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-incrementation_002c-automatic_002c-of-a-register">incrementation, automatic, of a register</a>:</td><td> </td><td class="printindex-index-section"><a href="#Auto_002dincrement">Auto-increment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-indentation-_0028in_0029">indentation (<code class="code">in</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Layout">Line Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-indentation_002c-of-roff-source-code">indentation, of <code class="code">roff</code> source code</a>:</td><td> </td><td class="printindex-index-section"><a href="#Invoking-Requests">Invoking Requests</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-index_002c-in-macro-package">index, in macro package</a>:</td><td> </td><td class="printindex-index-section"><a href="#Indexing">Indexing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-indicator_002c-scaling">indicator, scaling</a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-indirect-assignments">indirect assignments</a>:</td><td> </td><td class="printindex-index-section"><a href="#Interpolating-Registers">Interpolating Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-input-and-output-requests">input and output requests</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-input-characters-and-output-glyphs_002c-compatibility-with-AT_0026T-troff">input characters and output glyphs, compatibility with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-input-characters_002c-invalid">input characters, invalid</a>:</td><td> </td><td class="printindex-index-section"><a href="#Identifiers">Identifiers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-input-conventions">input conventions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Conventions">Input Conventions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-input-encoding_002c-code-page-1047">input encoding, code page 1047</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Encodings">Input Encodings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-input-encoding_002c-EBCDIC">input encoding, <abbr class="acronym">EBCDIC</abbr></a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Encodings">Input Encodings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-input-encoding_002c-Latin_002d1-_0028ISO-8859_002d1_0029">input encoding, <span class="w-nolinebreak-text">Latin-1</span><!-- /@w --> (ISO <span class="w-nolinebreak-text">8859-1</span><!-- /@w -->)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Encodings">Input Encodings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-input-encoding_002c-Latin_002d2-_0028ISO-8859_002d2_0029">input encoding, <span class="w-nolinebreak-text">Latin-2</span><!-- /@w --> (ISO <span class="w-nolinebreak-text">8859-2</span><!-- /@w -->)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Encodings">Input Encodings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-input-encoding_002c-Latin_002d5-_0028ISO-8859_002d9_0029">input encoding, <span class="w-nolinebreak-text">Latin-5</span><!-- /@w --> (ISO <span class="w-nolinebreak-text">8859-9</span><!-- /@w -->)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Encodings">Input Encodings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-input-encoding_002c-Latin_002d9-_0028ISO-8859_002d15_0029">input encoding, <span class="w-nolinebreak-text">Latin-9</span><!-- /@w --> (ISO <span class="w-nolinebreak-text">8859-15</span><!-- /@w -->)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Encodings">Input Encodings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-input-file-name_002c-current_002c-register-_0028_002eF_0029">input file name, current, register (<code class="code">.F</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-input-level">input level</a>:</td><td> </td><td class="printindex-index-section"><a href="#Calling-Macros">Calling Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-input-level-in-delimited-arguments">input level in delimited arguments</a>:</td><td> </td><td class="printindex-index-section"><a href="#Compatibility-Mode">Compatibility Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-input-line-continuation-_0028_005cRET_0029">input line continuation (<code class="code">\<kbd class="key">RET</kbd></code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Continuation">Line Continuation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-input-line-number-register-_0028_002ec_002c-c_002e_0029">input line number register (<code class="code">.c</code>, <code class="code">c.</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-input-line-number_002c-setting-_0028lf_0029">input line number, setting (<code class="code">lf</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-input-line-position_002c-horizontal_002c-saving-_0028_005ck_0029">input line position, horizontal, saving (<code class="code">\k</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-input-line-trap_002c-clearing-_0028it_002c-itc_0029">input line trap, clearing (<code class="code">it</code>, <code class="code">itc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Line-Traps">Input Line Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-input-line-trap_002c-setting-_0028it_002c-itc_0029">input line trap, setting (<code class="code">it</code>, <code class="code">itc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Line-Traps">Input Line Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-input-line-traps">input line traps</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Line-Traps">Input Line Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-input-line-traps-and-interrupted-lines-_0028itc_0029">input line traps and interrupted lines (<code class="code">itc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Line-Traps">Input Line Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-input-line_002c-horizontal-position_002c-register-_0028hp_0029">input line, horizontal position, register (<code class="code">hp</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-input-line_002c-productive">input line, productive</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-input-stack_002c-backtrace-_0028backtrace_0029">input stack, backtrace (<code class="code">backtrace</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-input-stack_002c-setting-limit">input stack, setting limit</a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-input-token">input token</a>:</td><td> </td><td class="printindex-index-section"><a href="#Gtroff-Internals">Gtroff Internals</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-input_002c-8_002dbit">input, 8-bit</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Description-File-Format">Font Description File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-input_002c-standard_002c-reading-from-_0028rd_0029">input, standard, reading from (<code class="code">rd</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-inserting-horizontal-space-_0028_005ch_0029">inserting horizontal space (<code class="code">\h</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-installation">installation</a>:</td><td> </td><td class="printindex-index-section"><a href="#Installation">Installation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-instructing-the-formatter">instructing the formatter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Formatter-Instructions">Formatter Instructions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-inter_002dsentence-space-size-register-_0028_002esss_0029">inter-sentence space size register (<code class="code">.sss</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-inter_002dsentence-space_002c-additional">inter-sentence space, additional</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-inter_002dword-spacing_002c-minimal">inter-word spacing, minimal</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-interactive-use-of-gtroff">interactive use of <code class="code">gtroff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-intercepting-requests">intercepting requests</a>:</td><td> </td><td class="printindex-index-section"><a href="#Control-Characters">Control Characters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-intermediate-output">intermediate output</a>:</td><td> </td><td class="printindex-index-section"><a href="#gtroff-Output">gtroff Output</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-interpolating-registers-_0028_005cn_0029">interpolating registers (<code class="code">\n</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Interpolating-Registers">Interpolating Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-interpolation">interpolation</a>:</td><td> </td><td class="printindex-index-section"><a href="#Requests-and-Macros">Requests and Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-interpolation-depth">interpolation depth</a>:</td><td> </td><td class="printindex-index-section"><a href="#Calling-Macros">Calling Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-interpolation-depth-in-delimited-arguments">interpolation depth in delimited arguments</a>:</td><td> </td><td class="printindex-index-section"><a href="#Compatibility-Mode">Compatibility Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-interpolation-of-strings-_0028_005c_002a_0029">interpolation of strings (<code class="code">\*</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-interpretation-mode">interpretation mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Copy-Mode">Copy Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-interrupted-line">interrupted line</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Continuation">Line Continuation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-interrupted-line-register-_0028_002eint_0029">interrupted line register (<code class="code">.int</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Continuation">Line Continuation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-interrupted-lines-and-input-line-traps-_0028itc_0029">interrupted lines and input line traps (<code class="code">itc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Line-Traps">Input Line Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-introduction">introduction</a>:</td><td> </td><td class="printindex-index-section"><a href="#Introduction">Introduction</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-invalid-characters-for-trf-request">invalid characters for <code class="code">trf</code> request</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-invalid-input-characters">invalid input characters</a>:</td><td> </td><td class="printindex-index-section"><a href="#Identifiers">Identifiers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-invocation-examples">invocation examples</a>:</td><td> </td><td class="printindex-index-section"><a href="#Invocation-Examples">Invocation Examples</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-invoking-groff">invoking <code class="code">groff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Invoking-groff">Invoking groff</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-invoking-requests">invoking requests</a>:</td><td> </td><td class="printindex-index-section"><a href="#Invoking-Requests">Invoking Requests</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ISO-646-output-encoding">ISO 646 output encoding</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ISO-8859_002d1-_0028Latin_002d1_0029-output-encoding">ISO <span class="w-nolinebreak-text">8859-1</span><!-- /@w --> (<span class="w-nolinebreak-text">Latin-1</span><!-- /@w -->) output encoding</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ISO-8859_002d1-_0028Latin_002d1_0029_002c-input-encoding">ISO <span class="w-nolinebreak-text">8859-1</span><!-- /@w --> (<span class="w-nolinebreak-text">Latin-1</span><!-- /@w -->), input encoding</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Encodings">Input Encodings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ISO-8859_002d15-_0028Latin_002d9_0029_002c-input-encoding">ISO <span class="w-nolinebreak-text">8859-15</span><!-- /@w --> (<span class="w-nolinebreak-text">Latin-9</span><!-- /@w -->), input encoding</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Encodings">Input Encodings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ISO-8859_002d2-_0028Latin_002d2_0029_002c-input-encoding">ISO <span class="w-nolinebreak-text">8859-2</span><!-- /@w --> (<span class="w-nolinebreak-text">Latin-2</span><!-- /@w -->), input encoding</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Encodings">Input Encodings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ISO-8859_002d9-_0028Latin_002d5_0029_002c-input-encoding">ISO <span class="w-nolinebreak-text">8859-9</span><!-- /@w --> (<span class="w-nolinebreak-text">Latin-5</span><!-- /@w -->), input encoding</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Encodings">Input Encodings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-italic-correction-_0028_005c_002f_0029">italic correction (<code class="code">\/</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Italic-Corrections">Italic Corrections</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-J">J</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-justifying-text">justifying text</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-justifying-text-_0028rj_0029">justifying text (<code class="code">rj</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-K">K</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-keep_002c-floating">keep, floating</a>:</td><td> </td><td class="printindex-index-section"><a href="#Displays-and-Keeps">Displays and Keeps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-keeps-_0028introduction_0029">keeps (introduction)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Displays-and-Keeps">Displays and Keeps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-keeps-_005bms_005d">keeps [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-keeps-and-displays">ms keeps and displays</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-keeps_002c-and-footnotes-_005bms_005d">keeps, and footnotes [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Footnotes">ms Footnotes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-kerning-and-ligatures">kerning and ligatures</a>:</td><td> </td><td class="printindex-index-section"><a href="#Ligatures-and-Kerning">Ligatures and Kerning</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-kerning-enabled-register-_0028_002ekern_0029">kerning enabled register (<code class="code">.kern</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Ligatures-and-Kerning">Ligatures and Kerning</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-kerning_002c-activating-_0028kern_0029">kerning, activating (<code class="code">kern</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Ligatures-and-Kerning">Ligatures and Kerning</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-kerning_002c-track">kerning, track</a>:</td><td> </td><td class="printindex-index-section"><a href="#Ligatures-and-Kerning">Ligatures and Kerning</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-L">L</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-landscape-page-orientation">landscape page orientation</a>:</td><td> </td><td class="printindex-index-section"><a href="#Paper-Format">Paper Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-language-_005bms_005d">language [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-language-and-localization">ms language and localization</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-last-glyph_002c-dimensions-_0028_002ew_002c-_002echt_002c-_002ecdp_002c-_002ecsk_0029">last glyph, dimensions (<code class="code">.w</code>, <code class="code">.cht</code>, <code class="code">.cdp</code>, <code class="code">.csk</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Environments">Environments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-last_002drequested-point-size-registers-_0028_002epsr_002c-_002esr_0029">last-requested point size registers (<code class="code">.psr</code>, <code class="code">.sr</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-last_002drequested-type-size-registers-_0028_002epsr_002c-_002esr_0029">last-requested type size registers (<code class="code">.psr</code>, <code class="code">.sr</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-Latin_002d1-_0028ISO-8859_002d1_0029-output-encoding"><span class="w-nolinebreak-text">Latin-1</span><!-- /@w --> (ISO <span class="w-nolinebreak-text">8859-1</span><!-- /@w -->) output encoding</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-Latin_002d1-_0028ISO-8859_002d1_0029_002c-input-encoding"><span class="w-nolinebreak-text">Latin-1</span><!-- /@w --> (ISO <span class="w-nolinebreak-text">8859-1</span><!-- /@w -->), input encoding</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Encodings">Input Encodings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-Latin_002d2-_0028ISO-8859_002d2_0029_002c-input-encoding"><span class="w-nolinebreak-text">Latin-2</span><!-- /@w --> (ISO <span class="w-nolinebreak-text">8859-2</span><!-- /@w -->), input encoding</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Encodings">Input Encodings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-Latin_002d5-_0028ISO-8859_002d9_0029_002c-input-encoding"><span class="w-nolinebreak-text">Latin-5</span><!-- /@w --> (ISO <span class="w-nolinebreak-text">8859-9</span><!-- /@w -->), input encoding</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Encodings">Input Encodings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-Latin_002d9-_0028ISO-8859_002d15_0029_002c-input-encoding"><span class="w-nolinebreak-text">Latin-9</span><!-- /@w --> (ISO <span class="w-nolinebreak-text">8859-15</span><!-- /@w -->), input encoding</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Encodings">Input Encodings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-layout_002c-line">layout, line</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Layout">Line Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-layout_002c-page">layout, page</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-lc-request_002c-and-glyph-definitions"><code class="code">lc</code> request, and glyph definitions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-leader-character">leader character</a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Leaders">Tabs and Leaders</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-leader-character-1">leader character</a>:</td><td> </td><td class="printindex-index-section"><a href="#Leaders">Leaders</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-leader-character_002c-and-translations">leader character, and translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-leader-character_002c-non_002dinterpreted-_0028_005ca_0029">leader character, non-interpreted (<code class="code">\a</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Leaders">Leaders</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-leader-repetition-character-_0028lc_0029">leader repetition character (<code class="code">lc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Leaders">Leaders</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-leaders">leaders</a>:</td><td> </td><td class="printindex-index-section"><a href="#Leaders">Leaders</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-leading">leading</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Type-Size-and-Vertical-Spacing">Manipulating Type Size and Vertical Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-leading-space-macro-_0028lsm_0029">leading space macro (<code class="code">lsm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Breaking">Breaking</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-leading-space-traps">leading space traps</a>:</td><td> </td><td class="printindex-index-section"><a href="#Leading-Space-Traps">Leading Space Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-leading-spaces">leading spaces</a>:</td><td> </td><td class="printindex-index-section"><a href="#Breaking">Breaking</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-leading-spaces-macro-_0028lsm_0029">leading spaces macro (<code class="code">lsm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Leading-Space-Traps">Leading Space Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-leading-spaces-with-ds">leading spaces with <code class="code">ds</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-left-italic-correction-_0028_005c_002c_0029">left italic correction (<code class="code">\,</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Italic-Corrections">Italic Corrections</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-left-margin-_0028po_0029">left margin (<code class="code">po</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Layout">Line Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-length-of-a-string-_0028length_0029">length of a string (<code class="code">length</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-length-of-line-_0028ll_0029">length of line (<code class="code">ll</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Layout">Line Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-length-of-previous-line-_0028_002en_0029">length of previous line (<code class="code">.n</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Environments">Environments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-length-of-the-page_002c-configuring-_0028pl_0029">length of the page, configuring (<code class="code">pl</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-length-of-title-line_002c-configuring-_0028lt_0029">length of title line, configuring (<code class="code">lt</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-length-request_002c-and-copy-mode"><code class="code">length</code> request, and copy mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-less-than-_0028or-equal-to_0029-operator">less than (or equal to) operator</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-letters_002c-form">letters, form</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-level_002c-input">level, input</a>:</td><td> </td><td class="printindex-index-section"><a href="#Calling-Macros">Calling Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-level_002c-suppression-nesting_002c-register">level, suppression nesting, register</a>:</td><td> </td><td class="printindex-index-section"><a href="#Suppressing-Output">Suppressing Output</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-lf-request_002c-incompatibilities-with-AT_0026T-troff"><code class="code">lf</code> request, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ligature">ligature</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ligatures-and-kerning">ligatures and kerning</a>:</td><td> </td><td class="printindex-index-section"><a href="#Ligatures-and-Kerning">Ligatures and Kerning</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ligatures-enabled-register-_0028_002elg_0029">ligatures enabled register (<code class="code">.lg</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Ligatures-and-Kerning">Ligatures and Kerning</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ligatures_002c-activating-_0028lg_0029">ligatures, activating (<code class="code">lg</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Ligatures-and-Kerning">Ligatures and Kerning</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-limitations-of-_005cb-escape-sequence">limitations of <code class="code">\b</code> escape sequence</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line-break">line break</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line-break-_0028introduction_0029">line break (introduction)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Basics">Basics</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line-break_002c-output">line break, output</a>:</td><td> </td><td class="printindex-index-section"><a href="#Breaking">Breaking</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line-control">line control</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Continuation">Line Continuation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line-dimensions">line dimensions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Layout">Line Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line-drawing-glyph">line drawing glyph</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line-drawing-glyph-1">line drawing glyph</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line-indentation-_0028in_0029">line indentation (<code class="code">in</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Layout">Line Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line-layout">line layout</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Layout">Line Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line-length-_0028ll_0029">line length (<code class="code">ll</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Layout">Line Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line-length-register-_0028_002el_0029">line length register (<code class="code">.l</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Layout">Line Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line-length_002c-previous-_0028_002en_0029">line length, previous (<code class="code">.n</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Environments">Environments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line-number_002c-input_002c-register-_0028_002ec_002c-c_002e_0029">line number, input, register (<code class="code">.c</code>, <code class="code">c.</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line-number_002c-output_002c-register-_0028ln_0029">line number, output, register (<code class="code">ln</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Miscellaneous">Miscellaneous</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line-numbers_002c-printing-_0028nm_0029">line numbers, printing (<code class="code">nm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Miscellaneous">Miscellaneous</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line-space_002c-extra-post_002dvertical-_0028_005cx_0029">line space, extra post-vertical (<code class="code">\x</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Vertical-Spacing">Changing the Vertical Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line-space_002c-extra-pre_002dvertical-_0028_005cx_0029">line space, extra pre-vertical (<code class="code">\x</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Vertical-Spacing">Changing the Vertical Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line-spacing-register-_0028_002eL_0029">line spacing register (<code class="code">.L</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Spacing">Manipulating Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line-spacing_002c-post_002dvertical-_0028pvs_0029">line spacing, post-vertical (<code class="code">pvs</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Vertical-Spacing">Changing the Vertical Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line-thickness-_0028_005cD_0027t-_2026_0027_0029">line thickness (‘<samp class="samp">\D't …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line_002c-blank">line, blank</a>:</td><td> </td><td class="printindex-index-section"><a href="#Breaking">Breaking</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line_002c-drawing-_0028_005cD_0027l-_2026_0027_0029">line, drawing (‘<samp class="samp">\D'l …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line_002c-horizontal_002c-drawing-_0028_005cl_0029">line, horizontal, drawing (<code class="code">\l</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line_002c-input_002c-continuation-_0028_005cRET_0029">line, input, continuation (<code class="code">\<kbd class="key">RET</kbd></code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Continuation">Line Continuation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line_002c-input_002c-horizontal-position_002c-register-_0028hp_0029">line, input, horizontal position, register (<code class="code">hp</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line_002c-input_002c-horizontal-position_002c-saving-_0028_005ck_0029">line, input, horizontal position, saving (<code class="code">\k</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line_002c-interrupted">line, interrupted</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Continuation">Line Continuation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line_002c-output_002c-continuation-_0028_005cc_0029">line, output, continuation (<code class="code">\c</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Continuation">Line Continuation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line_002c-output_002c-horizontal-position_002c-register-_0028_002ek_0029">line, output, horizontal position, register (<code class="code">.k</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line_002c-productive-input">line, productive input</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line_002c-vertical_002c-drawing-_0028_005cL_0029">line, vertical, drawing (<code class="code">\L</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-line_002dtabs-mode">line-tabs mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Fields">Tabs and Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-lines_002c-blank_002c-disabling">lines, blank, disabling</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Spacing">Manipulating Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-lines_002c-centering-_0028ce_0029">lines, centering (<code class="code">ce</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-lines_002c-centering-_0028introduction_0029">lines, centering (introduction)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Basics">Basics</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-lines_002c-consecutive-hyphenated-_0028hlm_0029">lines, consecutive hyphenated (<code class="code">hlm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-lines_002c-interrupted_002c-and-input-line-traps-_0028itc_0029">lines, interrupted, and input line traps (<code class="code">itc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Line-Traps">Input Line Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-lines_002c-right_002daligning-_0028introduction_0029">lines, right-aligning (introduction)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Basics">Basics</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-lines_002c-right_002djustifying-_0028introduction_0029">lines, right-justifying (introduction)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Basics">Basics</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-list-of-special-characters-_0028groff_005fchar_00287_0029-man-page_0029">list of special characters (<cite class="cite">groff_char<span class="r">(7)</span></cite> man page)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-listing-page-location-traps-_0028ptr_0029">listing page location traps (<code class="code">ptr</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-lists">lists</a>:</td><td> </td><td class="printindex-index-section"><a href="#Paragraphs">Paragraphs</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ll-request_002c-using-_002b-and-_002d-with"><code class="code">ll</code> request, using <code class="code">+</code> and <code class="code">-</code> with</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-localization">localization</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-localization-_005bms_005d">localization [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-language-and-localization">ms language and localization</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-locating-macro-files">locating macro files</a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Directories">Macro Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-locating-macro-packages">locating macro packages</a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Directories">Macro Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-location_002c-vertical_002c-page_002c-marking-_0028mk_0029">location, vertical, page, marking (<code class="code">mk</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-location_002c-vertical_002c-page_002c-returning-to-marked-_0028rt_0029">location, vertical, page, returning to marked (<code class="code">rt</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-logical-_0060_0060and_0027_0027-operator">logical “and” operator</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-logical-_0060_0060or_0027_0027-operator">logical “or” operator</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-logical-complementation-operator">logical complementation operator</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-logical-conjunction-operator">logical conjunction operator</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-logical-disjunction-operator">logical disjunction operator</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-logical-not_002c-limitation-in-expression">logical not, limitation in expression</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-logical-operators">logical operators</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-long-names">long names</a>:</td><td> </td><td class="printindex-index-section"><a href="#Compatibility-Mode">Compatibility Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-loops-and-conditionals">loops and conditionals</a>:</td><td> </td><td class="printindex-index-section"><a href="#Conditionals-and-Loops">Conditionals and Loops</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-lowercasing-a-string-_0028stringdown_0029">lowercasing a string (<code class="code">stringdown</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ls-request_002c-alternative-to-_0028pvs_0029"><code class="code">ls</code> request, alternative to (<code class="code">pvs</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Vertical-Spacing">Changing the Vertical Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-lt-request_002c-using-_002b-and-_002d-with"><code class="code">lt</code> request, using <code class="code">+</code> and <code class="code">-</code> with</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-M">M</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-m-scaling-unit"><code class="code">m</code> scaling unit</a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-M-scaling-unit"><code class="code">M</code> scaling unit</a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-machine-units">machine units</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Geometry">Page Geometry</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-macro">macro</a>:</td><td> </td><td class="printindex-index-section"><a href="#Requests-and-Macros">Requests and Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-macro-arguments">macro arguments</a>:</td><td> </td><td class="printindex-index-section"><a href="#Calling-Macros">Calling Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-macro-arguments_002c-and-compatibility-mode">macro arguments, and compatibility mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Gtroff-Internals">Gtroff Internals</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-macro-arguments_002c-and-tabs">macro arguments, and tabs</a>:</td><td> </td><td class="printindex-index-section"><a href="#Invoking-Requests">Invoking Requests</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-macro-directories">macro directories</a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Directories">Macro Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-macro-file-search-path">macro file search path</a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Directories">Macro Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-macro-name-register-_0028_005c_00240_0029">macro name register (<code class="code">\$0</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Parameters">Parameters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-macro-names_002c-starting-with-_005b-or-_005d_002c-and-refer">macro names, starting with <code class="code">[</code> or <code class="code">]</code>, and <code class="code">refer</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Identifiers">Identifiers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-macro-package">macro package</a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Packages">Macro Packages</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-macro-package-search-path">macro package search path</a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Directories">Macro Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-macro-package-usage_002c-basics-of">macro package usage, basics of</a>:</td><td> </td><td class="printindex-index-section"><a href="#Basics">Basics</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-macro-package_002c-auxiliary">macro package, auxiliary</a>:</td><td> </td><td class="printindex-index-section"><a href="#Major-Macro-Packages">Major Macro Packages</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-macro-package_002c-full_002dservice">macro package, full-service</a>:</td><td> </td><td class="printindex-index-section"><a href="#Major-Macro-Packages">Major Macro Packages</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-macro-package_002c-introduction">macro package, introduction</a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Package-Intro">Macro Package Intro</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-macro-package_002c-major">macro package, major</a>:</td><td> </td><td class="printindex-index-section"><a href="#Major-Macro-Packages">Major Macro Packages</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-macro-package_002c-minor">macro package, minor</a>:</td><td> </td><td class="printindex-index-section"><a href="#Major-Macro-Packages">Major Macro Packages</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-macro-package_002c-structuring-the-source-of">macro package, structuring the source of</a>:</td><td> </td><td class="printindex-index-section"><a href="#Invoking-Requests">Invoking Requests</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-macro_002c-appending-to-_0028am_0029">macro, appending to (<code class="code">am</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Writing-Macros">Writing Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-macro_002c-creating-alias-for-_0028als_0029">macro, creating alias for (<code class="code">als</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-macro_002c-end_002dof_002dinput-_0028em_0029">macro, end-of-input (<code class="code">em</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#End_002dof_002dinput-Traps">End-of-input Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-macro_002c-parameters-_0028_005c_0024_0029">macro, parameters (<code class="code">\$</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Parameters">Parameters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-macro_002c-removing-_0028rm_0029">macro, removing (<code class="code">rm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-macro_002c-removing-alias-for-_0028rm_0029">macro, removing alias for (<code class="code">rm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-macro_002c-renaming-_0028rn_0029">macro, renaming (<code class="code">rn</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-macros_002c-recursive">macros, recursive</a>:</td><td> </td><td class="printindex-index-section"><a href="#while">while</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-macros_002c-searching">macros, searching</a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Directories">Macro Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-macros_002c-shared-name-space-with-strings-and-diversions">macros, shared name space with strings and diversions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Identifiers">Identifiers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-macros_002c-tutorial-for-users">macros, tutorial for users</a>:</td><td> </td><td class="printindex-index-section"><a href="#Tutorial-for-Macro-Users">Tutorial for Macro Users</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-macros_002c-writing">macros, writing</a>:</td><td> </td><td class="printindex-index-section"><a href="#Writing-Macros">Writing Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-magnification-of-a-font-_0028fzoom_0029">magnification of a font (<code class="code">fzoom</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-major-macro-package">major macro package</a>:</td><td> </td><td class="printindex-index-section"><a href="#Major-Macro-Packages">Major Macro Packages</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-major-version-number-register-_0028_002ex_0029">major version number register (<code class="code">.x</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-man-macros_002c-custom-headers-and-footers"><code class="code">man</code> macros, custom headers and footers</a>:</td><td> </td><td class="printindex-index-section"><a href="#Optional-man-extensions">Optional man extensions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-man-macros_002c-Ultrix_002dspecific"><code class="code">man</code> macros, Ultrix-specific</a>:</td><td> </td><td class="printindex-index-section"><a href="#Optional-man-extensions">Optional man extensions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-man-pages">man pages</a>:</td><td> </td><td class="printindex-index-section"><a href="#man">man</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-manipulating-filling-and-adjustment">manipulating filling and adjustment</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-manipulating-hyphenation">manipulating hyphenation</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-manipulating-spacing">manipulating spacing</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Spacing">Manipulating Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-manipulating-type-size-and-vertical-spacing">manipulating type size and vertical spacing</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Type-Size-and-Vertical-Spacing">Manipulating Type Size and Vertical Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-manual-hyphenation">manual hyphenation</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-manual-pages">manual pages</a>:</td><td> </td><td class="printindex-index-section"><a href="#man">man</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-margin-for-hyphenation-_0028hym_0029">margin for hyphenation (<code class="code">hym</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-margin-glyph-_0028mc_0029">margin glyph (<code class="code">mc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Miscellaneous">Miscellaneous</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-margin_002c-bottom">margin, bottom</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Location-Traps">Page Location Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-margin_002c-left-_0028po_0029">margin, left (<code class="code">po</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Layout">Line Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-margin_002c-right">margin, right</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Layout">Line Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-margin_002c-top">margin, top</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Location-Traps">Page Location Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mark_002c-high_002dwater_002c-register-_0028_002eh_0029">mark, high-water, register (<code class="code">.h</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-marker_002c-footnote-_005bms_005d">marker, footnote [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Footnotes">ms Footnotes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-marking-vertical-page-location-_0028mk_0029">marking vertical page location (<code class="code">mk</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-maximum-operator">maximum operator</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-maximum-value-representable-with-Roman-numerals">maximum value representable with Roman numerals</a>:</td><td> </td><td class="printindex-index-section"><a href="#Assigning-Register-Formats">Assigning Register Formats</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mdoc-macros"><code class="code">mdoc</code> macros</a>:</td><td> </td><td class="printindex-index-section"><a href="#mdoc">mdoc</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-me-macro-package"><code class="code">me</code> macro package</a>:</td><td> </td><td class="printindex-index-section"><a href="#me">me</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-measurement-units">measurement units</a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-measurements">measurements</a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-measurements_002c-specifying-safely">measurements, specifying safely</a>:</td><td> </td><td class="printindex-index-section"><a href="#Default-Units">Default Units</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-metrics_002c-font">metrics, font</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fonts">Using Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-minimal-inter_002dword-spacing">minimal inter-word spacing</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-minimum-operator">minimum operator</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-minimum-value-representable-with-Roman-numerals">minimum value representable with Roman numerals</a>:</td><td> </td><td class="printindex-index-section"><a href="#Assigning-Register-Formats">Assigning Register Formats</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-minor-macro-package">minor macro package</a>:</td><td> </td><td class="printindex-index-section"><a href="#Major-Macro-Packages">Major Macro Packages</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-minor-version-number-register-_0028_002ey_0029">minor version number register (<code class="code">.y</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-minutes_002c-current-time-_0028minutes_0029">minutes, current time (<code class="code">minutes</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mm-macro-package"><code class="code">mm</code> macro package</a>:</td><td> </td><td class="printindex-index-section"><a href="#mm">mm</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode-for-constant-glyph-space-_0028cs_0029">mode for constant glyph space (<code class="code">cs</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-compatibility">mode, compatibility</a>:</td><td> </td><td class="printindex-index-section"><a href="#Compatibility-Mode">Compatibility Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-compatibility_002c-and-parameters">mode, compatibility, and parameters</a>:</td><td> </td><td class="printindex-index-section"><a href="#Gtroff-Internals">Gtroff Internals</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-copy">mode, copy</a>:</td><td> </td><td class="printindex-index-section"><a href="#Copy-Mode">Copy Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-copy-1">mode, copy</a>:</td><td> </td><td class="printindex-index-section"><a href="#Copy-Mode">Copy Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-copy_002c-and-cf-request">mode, copy, and <code class="code">cf</code> request</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-copy_002c-and-device-request">mode, copy, and <code class="code">device</code> request</a>:</td><td> </td><td class="printindex-index-section"><a href="#Postprocessor-Access">Postprocessor Access</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-copy_002c-and-length-request">mode, copy, and <code class="code">length</code> request</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-copy_002c-and-macro-parameters">mode, copy, and macro parameters</a>:</td><td> </td><td class="printindex-index-section"><a href="#Parameters">Parameters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-copy_002c-and-output-request">mode, copy, and <code class="code">output</code> request</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-copy_002c-and-trf-request">mode, copy, and <code class="code">trf</code> request</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-copy_002c-and-write-request">mode, copy, and <code class="code">write</code> request</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-copy_002c-and-writec-request">mode, copy, and <code class="code">writec</code> request</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-copy_002c-and-writem-request">mode, copy, and <code class="code">writem</code> request</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-copy_002c-and-_005c_0021">mode, copy, and <code class="code">\!</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-copy_002c-and-_005c_003f">mode, copy, and <code class="code">\?</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Operators-in-Conditionals">Operators in Conditionals</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-copy_002c-and-_005c_003f-1">mode, copy, and <code class="code">\?</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-copy_002c-and-_005ca">mode, copy, and <code class="code">\a</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Leaders">Leaders</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-copy_002c-and-_005ct">mode, copy, and <code class="code">\t</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Fields">Tabs and Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-copy_002c-and-_005cV">mode, copy, and <code class="code">\V</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-fill-_0028fi_0029_002c-enabling">mode, fill (<code class="code">fi</code>), enabling</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-fill_002c-and-break-warnings">mode, fill, and <code class="code">break</code> warnings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Warnings">Warnings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-fill_002c-and-inter_002dsentence-space">mode, fill, and inter-sentence space</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-fill_002c-and-_005cc">mode, fill, and <code class="code">\c</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Continuation">Line Continuation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-fill_002c-disabling">mode, fill, disabling</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-interpretation">mode, interpretation</a>:</td><td> </td><td class="printindex-index-section"><a href="#Copy-Mode">Copy Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-line_002dtabs">mode, line-tabs</a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Fields">Tabs and Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-no_002dfill">mode, no-fill</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-no_002dfill_002c-and-_005cc">mode, no-fill, and <code class="code">\c</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Continuation">Line Continuation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-no_002dspace-_0028ns_0029">mode, no-space (<code class="code">ns</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Spacing">Manipulating Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-nroff">mode, <code class="code">nroff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#troff-and-nroff-Modes"><code class="code">troff</code> and <code class="code">nroff</code> Modes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-safer">mode, safer</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-safer-1">mode, safer</a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Directories">Macro Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-safer-2">mode, safer</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-safer-3">mode, safer</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-safer-4">mode, safer</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-safer-5">mode, safer</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-safer-6">mode, safer</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-safer-7">mode, safer</a>:</td><td> </td><td class="printindex-index-section"><a href="#Safer-Mode">Safer Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-troff">mode, <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#troff-and-nroff-Modes"><code class="code">troff</code> and <code class="code">nroff</code> Modes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-unsafe">mode, unsafe</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-unsafe-1">mode, unsafe</a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Directories">Macro Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-unsafe-2">mode, unsafe</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-unsafe-3">mode, unsafe</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-unsafe-4">mode, unsafe</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-unsafe-5">mode, unsafe</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mode_002c-unsafe-6">mode, unsafe</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-modifying-requests">modifying requests</a>:</td><td> </td><td class="printindex-index-section"><a href="#Control-Characters">Control Characters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-modulus">modulus</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mom-macro-package"><code class="code">mom</code> macro package</a>:</td><td> </td><td class="printindex-index-section"><a href="#mom">mom</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-month-of-the-year-register-_0028mo_0029">month of the year register (<code class="code">mo</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-motion-operators">motion operators</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-motion-quanta">motion quanta</a>:</td><td> </td><td class="printindex-index-section"><a href="#Motion-Quanta">Motion Quanta</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-motion-quantum_002c-horizontal">motion quantum, horizontal</a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-motion-quantum_002c-horizontal_002c-register-_0028_002eH_0029">motion quantum, horizontal, register (<code class="code">.H</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Motion-Quanta">Motion Quanta</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-motion-quantum_002c-vertical">motion quantum, vertical</a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-motion_002c-horizontal-_0028_005ch_0029">motion, horizontal (<code class="code">\h</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-motion_002c-vertical-_0028_005cv_0029">motion, vertical (<code class="code">\v</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-motions_002c-page">motions, page</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mounting-a-font-_0028fp_0029">mounting a font (<code class="code">fp</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Positions">Font Positions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mounting-position">mounting position</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fonts">Using Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mounting-position-1">mounting position</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fonts">Using Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-mounting_002c-font_002c-automatic">mounting, font, automatic</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros"><samp class="file">ms</samp> macros</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms">ms</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-accent-marks"><samp class="file">ms</samp> macros, accent marks</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-body-text"><samp class="file">ms</samp> macros, body text</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Body-Text">ms Body Text</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-creating-table-of-contents"><samp class="file">ms</samp> macros, creating table of contents</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-TOC">ms TOC</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-displays"><samp class="file">ms</samp> macros, displays</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-keeps-and-displays">ms keeps and displays</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-document-control-settings"><samp class="file">ms</samp> macros, document control settings</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Control-Settings">ms Document Control Settings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-document-description"><samp class="file">ms</samp> macros, document description</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Description-Macros">ms Document Description Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-equations"><samp class="file">ms</samp> macros, equations</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Insertions">ms Insertions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-figures"><samp class="file">ms</samp> macros, figures</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Insertions">ms Insertions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-footers"><samp class="file">ms</samp> macros, footers</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Headers-and-Footers">ms Headers and Footers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-footnotes"><samp class="file">ms</samp> macros, footnotes</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Footnotes">ms Footnotes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-fractional-type-sizes-in"><samp class="file">ms</samp> macros, fractional type sizes in</a>:</td><td> </td><td class="printindex-index-section"><a href="#Differences-from-AT_0026T-ms">Differences from AT&T ms</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-general-structure"><samp class="file">ms</samp> macros, general structure</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Document-Structure">ms Document Structure</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-groff-differences-from-AT_0026T"><samp class="file">ms</samp> macros, <code class="code">groff</code> differences from <abbr class="acronym">AT&T</abbr></a>:</td><td> </td><td class="printindex-index-section"><a href="#Differences-from-AT_0026T-ms">Differences from AT&T ms</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-headers"><samp class="file">ms</samp> macros, headers</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Headers-and-Footers">ms Headers and Footers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-headings"><samp class="file">ms</samp> macros, headings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Headings-in-ms">Headings in ms</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-keeps"><samp class="file">ms</samp> macros, keeps</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-keeps-and-displays">ms keeps and displays</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-language"><samp class="file">ms</samp> macros, language</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-language-and-localization">ms language and localization</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-lists"><samp class="file">ms</samp> macros, lists</a>:</td><td> </td><td class="printindex-index-section"><a href="#Lists-in-ms">Lists in ms</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-localization"><samp class="file">ms</samp> macros, localization</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-language-and-localization">ms language and localization</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-margins"><samp class="file">ms</samp> macros, margins</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Margins">ms Margins</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-multiple-columns"><samp class="file">ms</samp> macros, multiple columns</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Multiple-Columns">ms Multiple Columns</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-naming-conventions"><samp class="file">ms</samp> macros, naming conventions</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Naming-Conventions">ms Naming Conventions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-nested-lists"><samp class="file">ms</samp> macros, nested lists</a>:</td><td> </td><td class="printindex-index-section"><a href="#Indented-regions-in-ms">Indented regions in ms</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-obtaining-typographical-symbols"><samp class="file">ms</samp> macros, obtaining typographical symbols</a>:</td><td> </td><td class="printindex-index-section"><a href="#Typographical-symbols-in-ms">Typographical symbols in ms</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-page-layout"><samp class="file">ms</samp> macros, page layout</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Page-Layout">ms Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-paragraph-handling"><samp class="file">ms</samp> macros, paragraph handling</a>:</td><td> </td><td class="printindex-index-section"><a href="#Paragraphs-in-ms">Paragraphs in ms</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-references"><samp class="file">ms</samp> macros, references</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Insertions">ms Insertions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-special-characters"><samp class="file">ms</samp> macros, special characters</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-strings"><samp class="file">ms</samp> macros, strings</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-tables"><samp class="file">ms</samp> macros, tables</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Insertions">ms Insertions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ms-macros_002c-text-settings"><samp class="file">ms</samp> macros, text settings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Text-settings-in-ms">Text settings in ms</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-multi_002dfile-documents">multi-file documents</a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-multi_002dline-strings">multi-line strings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-multi_002dpage-table-example-_005bms_005d">multi-page table example [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Insertions">ms Insertions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-multiple-columns-_005bms_005d">multiple columns [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Multiple-Columns">ms Multiple Columns</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-multiplication">multiplication</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-N">N</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-n-scaling-unit"><code class="code">n</code> scaling unit</a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-name-space_002c-common_002c-of-macros_002c-diversions_002c-and-strings">name space, common, of macros, diversions, and strings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Identifiers">Identifiers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-name_002c-background-color_002c-register-_0028_002eM_0029">name, background color, register (<code class="code">.M</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Colors">Colors</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-name_002c-fill-color_002c-register-_0028_002eM_0029">name, fill color, register (<code class="code">.M</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Colors">Colors</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-name_002c-stroke-color_002c-register-_0028_002em_0029">name, stroke color, register (<code class="code">.m</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Colors">Colors</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-named-character-_0028_005cC_0029">named character (<code class="code">\C</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-names_002c-long">names, long</a>:</td><td> </td><td class="printindex-index-section"><a href="#Compatibility-Mode">Compatibility Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-naming-conventions_002c-ms-macros">naming conventions, <samp class="file">ms</samp> macros</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Naming-Conventions">ms Naming Conventions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ne-request_002c-and-the-_002etrunc-register"><code class="code">ne</code> request, and the <code class="code">.trunc</code> register</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Location-Traps">Page Location Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ne-request_002c-comparison-with-sv"><code class="code">ne</code> request, comparison with <code class="code">sv</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-negating-register-values">negating register values</a>:</td><td> </td><td class="printindex-index-section"><a href="#Setting-Registers">Setting Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-negation">negation</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-nested-assignments">nested assignments</a>:</td><td> </td><td class="printindex-index-section"><a href="#Interpolating-Registers">Interpolating Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-nested-diversions">nested diversions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-nested-lists-_005bms_005d">nested lists [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#Indented-regions-in-ms">Indented regions in ms</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-nesting-level_002c-suppression_002c-register">nesting level, suppression, register</a>:</td><td> </td><td class="printindex-index-section"><a href="#Suppressing-Output">Suppressing Output</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-new-page-_0028bp_0029">new page (<code class="code">bp</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-newline-character_002c-and-translations">newline character, and translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-newline-character_002c-in-strings_002c-escaping">newline character, in strings, escaping</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-newline_002c-as-delimiter">newline, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-newline_002c-final_002c-stripping-in-diversions">newline, final, stripping in diversions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Punning-Names">Punning Names</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-next-file_002c-processing-_0028nx_0029">next file, processing (<code class="code">nx</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-next-free-font-position-register-_0028_002efp_0029">next free font position register (<code class="code">.fp</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Positions">Font Positions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-next-page-number-register-_0028_002epn_0029">next page number register (<code class="code">.pn</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-next-page-number_002c-configuring-_0028pn_0029">next page number, configuring (<code class="code">pn</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-nf-request_002c-causing-implicit-break"><code class="code">nf</code> request, causing implicit break</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-nl-register_002c-and-_002ed"><code class="code">nl</code> register, and <code class="code">.d</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-nl-register_002c-difference-from-_002eh"><code class="code">nl</code> register, difference from <code class="code">.h</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-nm-request_002c-using-_002b-and-_002d-with"><code class="code">nm</code> request, using <code class="code">+</code> and <code class="code">-</code> with</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-no_002dbreak-control-character-_0028_0027_0029">no-break control character (<code class="code">'</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Requests-and-Macros">Requests and Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-no_002dbreak-control-character_002c-changing-_0028c2_0029">no-break control character, changing (<code class="code">c2</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Control-Characters">Control Characters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-no_002dfill-mode">no-fill mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-no_002dfill-mode_002c-and-_005cc">no-fill mode, and <code class="code">\c</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Continuation">Line Continuation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-no_002dspace-mode-_0028ns_0029">no-space mode (<code class="code">ns</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Spacing">Manipulating Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-node_002c-output">node, output</a>:</td><td> </td><td class="printindex-index-section"><a href="#Gtroff-Internals">Gtroff Internals</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-non_002dprinting-break-point-_0028_005c_003a_0029">non-printing break point (<code class="code">\:</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-nr-request_002c-and-warnings"><code class="code">nr</code> request, and warnings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Warnings">Warnings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-nr-request_002c-using-_002b-and-_002d-with"><code class="code">nr</code> request, using <code class="code">+</code> and <code class="code">-</code> with</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-nroff-mode"><code class="code">nroff</code> mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#troff-and-nroff-Modes"><code class="code">troff</code> and <code class="code">nroff</code> Modes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-number-formats_002c-assigning-to-register-_0028af_0029">number formats, assigning to register (<code class="code">af</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Assigning-Register-Formats">Assigning Register Formats</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-number-of-registers-register-_0028_002eR_0029">number of registers register (<code class="code">.R</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-number_002c-input-line_002c-setting-_0028lf_0029">number, input line, setting (<code class="code">lf</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-number_002c-page_002c-next_002c-configuring-_0028pn_0029">number, page, next, configuring (<code class="code">pn</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-numbered-glyph-_0028_005cN_0029">numbered glyph (<code class="code">\N</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-numbered-glyph-_0028_005cN_0029-1">numbered glyph (<code class="code">\N</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-numbered-list_002c-example-markup-_005bms_005d">numbered list, example markup [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#Lists-in-ms">Lists in ms</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-numbers_002c-line_002c-printing-_0028nm_0029">numbers, line, printing (<code class="code">nm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Miscellaneous">Miscellaneous</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-numeral_002dwidth-space-_0028_005c0_0029">numeral-width space (<code class="code">\0</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-numerals_002c-as-delimiters">numerals, as delimiters</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-numerals_002c-Roman">numerals, Roman</a>:</td><td> </td><td class="printindex-index-section"><a href="#Assigning-Register-Formats">Assigning Register Formats</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-numeric-expression_002c-valid">numeric expression, valid</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-numeric-expressions">numeric expressions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-O">O</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-object-creation">object creation</a>:</td><td> </td><td class="printindex-index-section"><a href="#Writing-Macros">Writing Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-offset_002c-page">offset, page</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Geometry">Page Geometry</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-offset_002c-page-_0028po_0029">offset, page (<code class="code">po</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Layout">Line Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-open-request_002c-and-safer-mode"><code class="code">open</code> request, and safer mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-opena-request_002c-and-safer-mode"><code class="code">opena</code> request, and safer mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-opening-brace-escape-sequence-_0028_005c_007d_0029">opening brace escape sequence (<code class="code">\}</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Conditional-Blocks">Conditional Blocks</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-opening-file-_0028open_0029">opening file (<code class="code">open</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-operator_002c-scaling">operator, scaling</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-operators_002c-arithmetic">operators, arithmetic</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-operators_002c-as-delimiters">operators, as delimiters</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-operators_002c-comparison">operators, comparison</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-operators_002c-extremum-_0028_003e_003f_002c-_003c_003f_0029">operators, extremum (<code class="code">>?</code>, <code class="code"><?</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-operators_002c-logical">operators, logical</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-operators_002c-motion">operators, motion</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-operators_002c-unary-arithmetic">operators, unary arithmetic</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-optical-size-of-a-font">optical size of a font</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-options">options</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-order-of-evaluation-in-expressions">order of evaluation in expressions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ordinary-character">ordinary character</a>:</td><td> </td><td class="printindex-index-section"><a href="#Identifiers">Identifiers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-orientation_002c-landscape">orientation, landscape</a>:</td><td> </td><td class="printindex-index-section"><a href="#Paper-Format">Paper Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-orphan">orphan</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-orphan-lines_002c-preventing-with-ne">orphan lines, preventing with <code class="code">ne</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-os-request_002c-and-no_002dspace-mode"><code class="code">os</code> request, and no-space mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-outlined-circle_002c-drawing-_0028_005cD_0027c-_2026_0027_0029">outlined circle, drawing (‘<samp class="samp">\D'c …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-outlined-ellipse_002c-drawing-_0028_005cD_0027e-_2026_0027_0029">outlined ellipse, drawing (‘<samp class="samp">\D'e …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-outlined-polygon_002c-drawing-_0028_005cD_0027p-_2026_0027_0029">outlined polygon, drawing (‘<samp class="samp">\D'p …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output-and-input-requests">output and input requests</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output-comparison-operator">output comparison operator</a>:</td><td> </td><td class="printindex-index-section"><a href="#Operators-in-Conditionals">Operators in Conditionals</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output-device-name-string-_0028_002eT_0029">output device name string (<code class="code">.T</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output-device-name-string-_0028_002eT_0029-1">output device name string (<code class="code">.T</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output-device-name-string-_0028_002eT_0029_002c-in-other-implementations">output device name string (<code class="code">.T</code>), in other implementations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output-device-usage-register-_0028_002eT_0029">output device usage register (<code class="code">.T</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output-device-usage-register-_0028_002eT_0029_002c-incompatibility-with-AT_0026T-troff">output device usage register (<code class="code">.T</code>), incompatibility with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output-devices">output devices</a>:</td><td> </td><td class="printindex-index-section"><a href="#Output-Device-Intro">Output Device Intro</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output-encoding_002c-ASCII">output encoding, <abbr class="acronym">ASCII</abbr></a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output-encoding_002c-code-page-1047">output encoding, code page 1047</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output-encoding_002c-EBCDIC">output encoding, <abbr class="acronym">EBCDIC</abbr></a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output-encoding_002c-ISO-646">output encoding, ISO 646</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output-encoding_002c-Latin_002d1-_0028ISO-8859_002d1_0029">output encoding, <span class="w-nolinebreak-text">Latin-1</span><!-- /@w --> (ISO <span class="w-nolinebreak-text">8859-1</span><!-- /@w -->)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output-encoding_002c-UTF_002d8">output encoding, <span class="w-nolinebreak-text">UTF-8</span><!-- /@w --></a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output-glyphs_002c-and-input-characters_002c-compatibility-with-AT_0026T-troff">output glyphs, and input characters, compatibility with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output-line-break">output line break</a>:</td><td> </td><td class="printindex-index-section"><a href="#Breaking">Breaking</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output-line-number-register-_0028ln_0029">output line number register (<code class="code">ln</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Miscellaneous">Miscellaneous</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output-line-properties">output line properties</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output-line_002c-continuation-_0028_005cc_0029">output line, continuation (<code class="code">\c</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Continuation">Line Continuation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output-line_002c-horizontal-position_002c-register-_0028_002ek_0029">output line, horizontal position, register (<code class="code">.k</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output-node">output node</a>:</td><td> </td><td class="printindex-index-section"><a href="#Gtroff-Internals">Gtroff Internals</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output-request_002c-and-copy-mode"><code class="code">output</code> request, and copy mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output-request_002c-and-_005c_0021"><code class="code">output</code> request, and <code class="code">\!</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output_002c-filling_002c-disablement-of-_0028nf_0029">output, filling, disablement of (<code class="code">nf</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output_002c-filling_002c-enablement-of-_0028fi_0029">output, filling, enablement of (<code class="code">fi</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output_002c-flush-_0028fl_0029">output, flush (<code class="code">fl</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output_002c-gtroff">output, <code class="code">gtroff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#gtroff-Output">gtroff Output</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output_002c-intermediate">output, intermediate</a>:</td><td> </td><td class="printindex-index-section"><a href="#gtroff-Output">gtroff Output</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output_002c-suppressing-_0028_005cO_0029">output, suppressing (<code class="code">\O</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Suppressing-Output">Suppressing Output</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output_002c-transparent-_0028cf_002c-trf_0029">output, transparent (<code class="code">cf</code>, <code class="code">trf</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output_002c-transparent-_0028_005c_0021_002c-_005c_003f_0029">output, transparent (<code class="code">\!</code>, <code class="code">\?</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output_002c-transparent_002c-incompatibilities-with-AT_0026T-troff">output, transparent, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-output_002c-troff">output, <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#gtroff-Output">gtroff Output</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-overlapping-characters">overlapping characters</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-overstriking-glyphs-_0028_005co_0029">overstriking glyphs (<code class="code">\o</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-P">P</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-p-scaling-unit"><code class="code">p</code> scaling unit</a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-P-scaling-unit"><code class="code">P</code> scaling unit</a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-package_002c-macro">package, macro</a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Packages">Macro Packages</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-package_002c-macro_002c-auxiliary">package, macro, auxiliary</a>:</td><td> </td><td class="printindex-index-section"><a href="#Major-Macro-Packages">Major Macro Packages</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-package_002c-macro_002c-full_002dservice">package, macro, full-service</a>:</td><td> </td><td class="printindex-index-section"><a href="#Major-Macro-Packages">Major Macro Packages</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-package_002c-macro_002c-introduction">package, macro, introduction</a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Package-Intro">Macro Package Intro</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-package_002c-macro_002c-major">package, macro, major</a>:</td><td> </td><td class="printindex-index-section"><a href="#Major-Macro-Packages">Major Macro Packages</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-package_002c-macro_002c-minor">package, macro, minor</a>:</td><td> </td><td class="printindex-index-section"><a href="#Major-Macro-Packages">Major Macro Packages</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-package_002c-macro_002c-search-path">package, macro, search path</a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Directories">Macro Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-package_002c-package_002c-structuring-the-source-of">package, package, structuring the source of</a>:</td><td> </td><td class="printindex-index-section"><a href="#Invoking-Requests">Invoking Requests</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-padding-character_002c-for-fields-_0028fc_0029">padding character, for fields (<code class="code">fc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Fields">Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page">page</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Geometry">Page Geometry</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-break">page break</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Geometry">Page Geometry</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-break-1">page break</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-break-2">page break</a>:</td><td> </td><td class="printindex-index-section"><a href="#The-Implicit-Page-Trap">The Implicit Page Trap</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-break-_0028introduction_0029">page break (introduction)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Basics">Basics</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-break_002c-conditional-_0028ne_0029">page break, conditional (<code class="code">ne</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-break_002c-final">page break, final</a>:</td><td> </td><td class="printindex-index-section"><a href="#End_002dof_002dinput-Traps">End-of-input Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-break_002c-prevented-by-vpt">page break, prevented by <code class="code">vpt</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Vertical-Position-Traps">Vertical Position Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-control">page control</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-ejection">page ejection</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Geometry">Page Geometry</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-ejection-1">page ejection</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-ejection-2">page ejection</a>:</td><td> </td><td class="printindex-index-section"><a href="#The-Implicit-Page-Trap">The Implicit Page Trap</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-ejection-status-register-_0028_002epe_0029">page ejection status register (<code class="code">.pe</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Location-Traps">Page Location Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-ejection_002c-of-final-page">page ejection, of final page</a>:</td><td> </td><td class="printindex-index-section"><a href="#End_002dof_002dinput-Traps">End-of-input Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-ejection_002c-prevented-by-vpt">page ejection, prevented by <code class="code">vpt</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Vertical-Position-Traps">Vertical Position Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-footers">page footers</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Location-Traps">Page Location Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-headers">page headers</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Location-Traps">Page Location Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-layout">page layout</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-layout-_005bms_005d">page layout [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Page-Layout">ms Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-length-register-_0028_002ep_0029">page length register (<code class="code">.p</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-length_002c-configuring-_0028pl_0029">page length, configuring (<code class="code">pl</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-location-traps">page location traps</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Location-Traps">Page Location Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-location-traps_002c-debugging">page location traps, debugging</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Location-Traps">Page Location Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-location_002c-vertical_002c-marking-_0028mk_0029">page location, vertical, marking (<code class="code">mk</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-location_002c-vertical_002c-returning-to-marked-_0028rt_0029">page location, vertical, returning to marked (<code class="code">rt</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-motions">page motions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-number-character-_0028_0025_0029">page number character (<code class="code">%</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-number-character_002c-changing-_0028pc_0029">page number character, changing (<code class="code">pc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-number-register-_0028_0025_0029">page number register (<code class="code">%</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-number_002c-configuring-next-_0028pn_0029">page number, configuring next (<code class="code">pn</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-number_002c-next_002c-register-_0028_002epn_0029">page number, next, register (<code class="code">.pn</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-offset">page offset</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Geometry">Page Geometry</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-offset-_0028po_0029">page offset (<code class="code">po</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Layout">Line Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page-orientation_002c-landscape">page orientation, landscape</a>:</td><td> </td><td class="printindex-index-section"><a href="#Paper-Format">Paper Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page_002c-geometry-of">page, geometry of</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Geometry">Page Geometry</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-page_002c-new-_0028bp_0029">page, new (<code class="code">bp</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-paper-format">paper format</a>:</td><td> </td><td class="printindex-index-section"><a href="#Paper-Format">Paper Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-paper-size">paper size</a>:</td><td> </td><td class="printindex-index-section"><a href="#Paper-Format">Paper Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-paragraphs">paragraphs</a>:</td><td> </td><td class="printindex-index-section"><a href="#Paragraphs">Paragraphs</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-parameter-count-register-_0028_002e_0024_0029">parameter count register (<code class="code">.$</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Parameters">Parameters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-parameters">parameters</a>:</td><td> </td><td class="printindex-index-section"><a href="#Parameters">Parameters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-parameters_002c-and-compatibility-mode">parameters, and compatibility mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Gtroff-Internals">Gtroff Internals</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-parameters_002c-macro-_0028_005c_0024_0029">parameters, macro (<code class="code">\$</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Parameters">Parameters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-parentheses">parentheses</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-partially-collected-line">partially collected line</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-path_002c-for-font-files">path, for font files</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Directories">Font Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-path_002c-for-tmac-files">path, for tmac files</a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Directories">Macro Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-pattern-files_002c-for-hyphenation">pattern files, for hyphenation</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-patterns-for-hyphenation-_0028hpf_0029">patterns for hyphenation (<code class="code">hpf</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-pending-output-line">pending output line</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-pi-request_002c-and-groff"><code class="code">pi</code> request, and <code class="code">groff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-pi-request_002c-and-safer-mode"><code class="code">pi</code> request, and safer mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-pi-request_002c-disabled-by-default"><code class="code">pi</code> request, disabled by default</a>:</td><td> </td><td class="printindex-index-section"><a href="#Safer-Mode">Safer Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-pica-scaling-unit-_0028P_0029">pica scaling unit (<code class="code">P</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-PID-of-GNU-troff-register-_0028_0024_0024_0029">PID of GNU <code class="code">troff</code> register (<code class="code">$$</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-pile_002c-glyph-_0028_005cb_0029">pile, glyph (<code class="code">\b</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-pl-request_002c-using-_002b-and-_002d-with"><code class="code">pl</code> request, using <code class="code">+</code> and <code class="code">-</code> with</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-plain-text-approximation-output-register-_0028_002eA_0029">plain text approximation output register (<code class="code">.A</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-plain-text-approximation-output-register-_0028_002eA_0029-1">plain text approximation output register (<code class="code">.A</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-planting-a-trap">planting a trap</a>:</td><td> </td><td class="printindex-index-section"><a href="#Traps">Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-platform_002dspecific-directory">platform-specific directory</a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Directories">Macro Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-pm-request_002c-incompatibilities-with-AT_0026T-troff"><code class="code">pm</code> request, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-pn-request_002c-using-_002b-and-_002d-with"><code class="code">pn</code> request, using <code class="code">+</code> and <code class="code">-</code> with</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-PNG-image-generation-from-PostScript">PNG image generation from PostScript</a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-po-request_002c-using-_002b-and-_002d-with"><code class="code">po</code> request, using <code class="code">+</code> and <code class="code">-</code> with</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-point-scaling-unit-_0028p_0029">point scaling unit (<code class="code">p</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-point-size-registers-_0028_002es_002c-_002eps_0029">point size registers (<code class="code">.s</code>, <code class="code">.ps</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Type-Size">Changing the Type Size</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-point-size-registers_002c-last_002drequested-_0028_002epsr_002c-_002esr_0029">point size registers, last-requested (<code class="code">.psr</code>, <code class="code">.sr</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-point-sizes_002c-changing-_0028ps_002c-_005cs_0029">point sizes, changing (<code class="code">ps</code>, <code class="code">\s</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Type-Size">Changing the Type Size</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-point-sizes_002c-fractional">point sizes, fractional</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-point-sizes_002c-fractional-1">point sizes, fractional</a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-polygon_002c-filled_002c-drawing-_0028_005cD_0027P-_2026_0027_0029">polygon, filled, drawing (‘<samp class="samp">\D'P …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-polygon_002c-outlined_002c-drawing-_0028_005cD_0027p-_2026_0027_0029">polygon, outlined, drawing (‘<samp class="samp">\D'p …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-polygon_002c-solid_002c-drawing-_0028_005cD_0027P-_2026_0027_0029">polygon, solid, drawing (‘<samp class="samp">\D'P …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-polygon_002c-stroked_002c-drawing-_0028_005cD_0027p-_2026_0027_0029">polygon, stroked, drawing (‘<samp class="samp">\D'p …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-position-of-lowest-text-line-_0028_002eh_0029">position of lowest text line (<code class="code">.h</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-position_002c-absolute-_0028sic_0029-operator-_0028_007c_0029">position, absolute <i class="slanted">(sic)</i> operator (<code class="code">|</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-position_002c-drawing">position, drawing</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Geometry">Page Geometry</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-position_002c-horizontal-input-line_002c-saving-_0028_005ck_0029">position, horizontal input line, saving (<code class="code">\k</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-position_002c-horizontal_002c-in-input-line_002c-register-_0028hp_0029">position, horizontal, in input line, register (<code class="code">hp</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-position_002c-horizontal_002c-in-output-line_002c-register-_0028_002ek_0029">position, horizontal, in output line, register (<code class="code">.k</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-position_002c-mounting">position, mounting</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fonts">Using Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-position_002c-vertical_002c-in-diversion_002c-register-_0028_002ed_0029">position, vertical, in diversion, register (<code class="code">.d</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-positions_002c-font">positions, font</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Positions">Font Positions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-post_002dvertical-line-spacing">post-vertical line spacing</a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Vertical-Spacing">Changing the Vertical Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-post_002dvertical-line-spacing-register-_0028_002epvs_0029">post-vertical line spacing register (<code class="code">.pvs</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Vertical-Spacing">Changing the Vertical Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-post_002dvertical-line-spacing_002c-changing-_0028pvs_0029">post-vertical line spacing, changing (<code class="code">pvs</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Vertical-Spacing">Changing the Vertical Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-postprocessor-access">postprocessor access</a>:</td><td> </td><td class="printindex-index-section"><a href="#Postprocessor-Access">Postprocessor Access</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-postprocessors">postprocessors</a>:</td><td> </td><td class="printindex-index-section"><a href="#Output-Device-Intro">Output Device Intro</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-PostScript_002c-bounding-box">PostScript, bounding box</a>:</td><td> </td><td class="printindex-index-section"><a href="#Miscellaneous">Miscellaneous</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-PostScript_002c-PNG-image-generation">PostScript, PNG image generation</a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-prefix_002c-for-commands">prefix, for commands</a>:</td><td> </td><td class="printindex-index-section"><a href="#Environment">Environment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-preprocessors">preprocessors</a>:</td><td> </td><td class="printindex-index-section"><a href="#Preprocessor-Intro">Preprocessor Intro</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-previous-font_002c-selecting-_0028ft_0029">previous font, selecting (<code class="code">ft</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-previous-font_002c-selecting-_0028_005cf_005b_005d_002c-_005cfP_0029">previous font, selecting (<code class="code">\f[]</code>, <code class="code">\fP</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-previous-line-length-_0028_002en_0029">previous line length (<code class="code">.n</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Environments">Environments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-print-current-page-register-_0028_002eP_0029">print current page register (<code class="code">.P</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-printing-backslash-_0028_005c_005c_002c-_005ce_002c-_005cE_002c-_005c_005brs_005d_0029">printing backslash (<code class="code">\\</code>, <code class="code">\e</code>, <code class="code">\E</code>, <code class="code">\[rs]</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-printing-line-numbers-_0028nm_0029">printing line numbers (<code class="code">nm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Miscellaneous">Miscellaneous</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-printing-to-stderr-_0028tm_002c-tm1_002c-tmc_0029">printing to stderr (<code class="code">tm</code>, <code class="code">tm1</code>, <code class="code">tmc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-printing_002c-zero_002dwidth-_0028_005cz_002c-_005cZ_0029">printing, zero-width (<code class="code">\z</code>, <code class="code">\Z</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-printing_002c-zero_002dwidth-_0028_005cz_002c-_005cZ_0029-1">printing, zero-width (<code class="code">\z</code>, <code class="code">\Z</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-process-ID-of-GNU-troff-register-_0028_0024_0024_0029">process ID of GNU <code class="code">troff</code> register (<code class="code">$$</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-processing-next-file-_0028nx_0029">processing next file (<code class="code">nx</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-productive-input-line">productive input line</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-properties-of-characters-_0028cflags_0029">properties of characters (<code class="code">cflags</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-properties-of-glyphs-_0028cflags_0029">properties of glyphs (<code class="code">cflags</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-properties-of-output-lines">properties of output lines</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ps-request_002c-and-constant-glyph-space-mode"><code class="code">ps</code> request, and constant glyph space mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ps-request_002c-incompatibilities-with-AT_0026T-troff"><code class="code">ps</code> request, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ps-request_002c-using-_002b-and-_002d-with"><code class="code">ps</code> request, using <code class="code">+</code> and <code class="code">-</code> with</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ps-request_002c-with-fractional-type-sizes"><code class="code">ps</code> request, with fractional type sizes</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-pso-request_002c-and-safer-mode"><code class="code">pso</code> request, and safer mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-pvs-request_002c-using-_002b-and-_002d-with"><code class="code">pvs</code> request, using <code class="code">+</code> and <code class="code">-</code> with</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-Q">Q</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-quanta_002c-motion">quanta, motion</a>:</td><td> </td><td class="printindex-index-section"><a href="#Motion-Quanta">Motion Quanta</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-quantum_002c-horizontal-motion">quantum, horizontal motion</a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-quantum_002c-vertical-motion">quantum, vertical motion</a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-R">R</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-radicalex-glyph_002c-and-cflags"><code class="code">radicalex</code> glyph, and <code class="code">cflags</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ragged_002dleft-text">ragged-left text</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ragged_002dright-text">ragged-right text</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-rc-request_002c-and-glyph-definitions"><code class="code">rc</code> request, and glyph definitions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-read_002donly-register-removal_002c-incompatibility-with-AT_0026T-troff">read-only register removal, incompatibility with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-read_002donly-register_002c-changing-format">read-only register, changing format</a>:</td><td> </td><td class="printindex-index-section"><a href="#Assigning-Register-Formats">Assigning Register Formats</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-reading-from-standard-input-_0028rd_0029">reading from standard input (<code class="code">rd</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-recursive-macros">recursive macros</a>:</td><td> </td><td class="printindex-index-section"><a href="#while">while</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-refer_002c-and-macro-names-starting-with-_005b-or-_005d"><code class="code">refer</code>, and macro names starting with <code class="code">[</code> or <code class="code">]</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Identifiers">Identifiers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-reference_002c-gtroff">reference, <code class="code">gtroff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#GNU-troff-Reference">GNU troff Reference</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-references-_005bms_005d">references [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Insertions">ms Insertions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-register-format_002c-in-expressions">register format, in expressions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Assigning-Register-Formats">Assigning Register Formats</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-register_002c-assigning-number-format-to-_0028af_0029">register, assigning number format to (<code class="code">af</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Assigning-Register-Formats">Assigning Register Formats</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-register_002c-built_002din_002c-removing">register, built-in, removing</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-register_002c-creating-alias-for-_0028aln_0029">register, creating alias for (<code class="code">aln</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Setting-Registers">Setting Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-register_002c-format-_0028_005cg_0029">register, format (<code class="code">\g</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Assigning-Register-Formats">Assigning Register Formats</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-register_002c-read_002donly_002c-removal_002c-incompatibility-with-AT_0026T-troff">register, read-only, removal, incompatibility with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-register_002c-removing-_0028rr_0029">register, removing (<code class="code">rr</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Setting-Registers">Setting Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-register_002c-removing-alias-for-_0028rr_0029">register, removing alias for (<code class="code">rr</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Setting-Registers">Setting Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-register_002c-renaming-_0028rnn_0029">register, renaming (<code class="code">rnn</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Setting-Registers">Setting Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-registers">registers</a>:</td><td> </td><td class="printindex-index-section"><a href="#Registers">Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-registers_002c-built_002din">registers, built-in</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-registers_002c-dumping-_0028pnr_0029">registers, dumping (<code class="code">pnr</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-registers_002c-interpolating-_0028_005cn_0029">registers, interpolating (<code class="code">\n</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Interpolating-Registers">Interpolating Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-registers_002c-number-of_002c-register-_0028_002eR_0029">registers, number of, register (<code class="code">.R</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-registers_002c-setting-_0028nr_002c-_005cR_0029">registers, setting (<code class="code">nr</code>, <code class="code">\R</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Setting-Registers">Setting Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-removal-of-read_002donly-registers_002c-incompatibility-with-AT_0026T-troff">removal of read-only registers, incompatibility with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-removing-a-built_002din-register">removing a built-in register</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-removing-a-register-_0028rr_0029">removing a register (<code class="code">rr</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Setting-Registers">Setting Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-removing-alias-for-register-_0028rr_0029">removing alias for register (<code class="code">rr</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Setting-Registers">Setting Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-removing-alias_002c-for-diversion-_0028rm_0029">removing alias, for diversion (<code class="code">rm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-removing-alias_002c-for-macro-_0028rm_0029">removing alias, for macro (<code class="code">rm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-removing-alias_002c-for-string-_0028rm_0029">removing alias, for string (<code class="code">rm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-removing-diversion-_0028rm_0029">removing diversion (<code class="code">rm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-removing-glyph-definition-_0028rchar_002c-rfschar_0029">removing glyph definition (<code class="code">rchar</code>, <code class="code">rfschar</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-removing-macro-_0028rm_0029">removing macro (<code class="code">rm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-removing-request-_0028rm_0029">removing request (<code class="code">rm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-removing-string-_0028rm_0029">removing string (<code class="code">rm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-renaming-a-register-_0028rnn_0029">renaming a register (<code class="code">rnn</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Setting-Registers">Setting Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-renaming-diversion-_0028rn_0029">renaming diversion (<code class="code">rn</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-renaming-macro-_0028rn_0029">renaming macro (<code class="code">rn</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-renaming-request-_0028rn_0029">renaming request (<code class="code">rn</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-renaming-string-_0028rn_0029">renaming string (<code class="code">rn</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-renditions_002c-graphic">renditions, graphic</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fonts">Using Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-request">request</a>:</td><td> </td><td class="printindex-index-section"><a href="#Requests-and-Macros">Requests and Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-request-1">request</a>:</td><td> </td><td class="printindex-index-section"><a href="#Formatter-Instructions">Formatter Instructions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-request-arguments">request arguments</a>:</td><td> </td><td class="printindex-index-section"><a href="#Invoking-Requests">Invoking Requests</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-request-arguments_002c-and-compatibility-mode">request arguments, and compatibility mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Gtroff-Internals">Gtroff Internals</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-request-arguments_002c-and-tabs">request arguments, and tabs</a>:</td><td> </td><td class="printindex-index-section"><a href="#Invoking-Requests">Invoking Requests</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-request_002c-removing-_0028rm_0029">request, removing (<code class="code">rm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-request_002c-renaming-_0028rn_0029">request, renaming (<code class="code">rn</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-request_002c-undefined">request, undefined</a>:</td><td> </td><td class="printindex-index-section"><a href="#Comments">Comments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-requests-for-drawing">requests for drawing</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-requests-for-input-and-output">requests for input and output</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-requests_002c-intercepting">requests, intercepting</a>:</td><td> </td><td class="printindex-index-section"><a href="#Control-Characters">Control Characters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-requests_002c-invoking">requests, invoking</a>:</td><td> </td><td class="printindex-index-section"><a href="#Invoking-Requests">Invoking Requests</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-requests_002c-modifying">requests, modifying</a>:</td><td> </td><td class="printindex-index-section"><a href="#Control-Characters">Control Characters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-resolution_002c-device">resolution, device</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Geometry">Page Geometry</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-resolution_002c-device-1">resolution, device</a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-resolution_002c-device_002c-obtaining-in-the-formatter">resolution, device, obtaining in the formatter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-resolution_002c-horizontal">resolution, horizontal</a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-resolution_002c-horizontal_002c-register-_0028_002eH_0029">resolution, horizontal, register (<code class="code">.H</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Motion-Quanta">Motion Quanta</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-resolution_002c-vertical">resolution, vertical</a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-returning-to-marked-vertical-page-location-_0028rt_0029">returning to marked vertical page location (<code class="code">rt</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-revision-number-register-_0028_002eY_0029">revision number register (<code class="code">.Y</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-right-margin">right margin</a>:</td><td> </td><td class="printindex-index-section"><a href="#Line-Layout">Line Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-right_002daligning-lines-_0028introduction_0029">right-aligning lines (introduction)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Basics">Basics</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-right_002djustifying-_0028rj_0029">right-justifying (<code class="code">rj</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-right_002djustifying-lines-_0028introduction_0029">right-justifying lines (introduction)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Basics">Basics</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-rivers">rivers</a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-rj-request_002c-causing-implicit-break"><code class="code">rj</code> request, causing implicit break</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-rn-glyph_002c-and-cflags"><code class="code">rn</code> glyph, and <code class="code">cflags</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-roman-glyph_002c-correction-after-italic-glyph-_0028_005c_002f_0029">roman glyph, correction after italic glyph (<code class="code">\/</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Italic-Corrections">Italic Corrections</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-roman-glyph_002c-correction-before-italic-glyph-_0028_005c_002c_0029">roman glyph, correction before italic glyph (<code class="code">\,</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Italic-Corrections">Italic Corrections</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-Roman-numerals">Roman numerals</a>:</td><td> </td><td class="printindex-index-section"><a href="#Assigning-Register-Formats">Assigning Register Formats</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-Roman-numerals_002c-extrema-_0028maximum-and-minimum_0029">Roman numerals, extrema (maximum and minimum)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Assigning-Register-Formats">Assigning Register Formats</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-rq-glyph_002c-at-end-of-sentence"><code class="code">rq</code> glyph, at end of sentence</a>:</td><td> </td><td class="printindex-index-section"><a href="#Sentences">Sentences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-rq-glyph_002c-at-end-of-sentence-1"><code class="code">rq</code> glyph, at end of sentence</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-rt-request_002c-using-_002b-and-_002d-with"><code class="code">rt</code> request, using <code class="code">+</code> and <code class="code">-</code> with</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ru-glyph_002c-and-cflags"><code class="code">ru</code> glyph, and <code class="code">cflags</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-running-system-commands">running system commands</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-S">S</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-s-scaling-unit"><code class="code">s</code> scaling unit</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-safer-mode">safer mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-safer-mode-1">safer mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Directories">Macro Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-safer-mode-2">safer mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-safer-mode-3">safer mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-safer-mode-4">safer mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-safer-mode-5">safer mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-safer-mode-6">safer mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-safer-mode-7">safer mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Safer-Mode">Safer Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-saving-horizontal-input-line-position-_0028_005ck_0029">saving horizontal input line position (<code class="code">\k</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-scaling-indicator">scaling indicator</a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-scaling-operator">scaling operator</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-scaling-unit-c">scaling unit <code class="code">c</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-scaling-unit-f">scaling unit <code class="code">f</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Colors">Colors</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-scaling-unit-i">scaling unit <code class="code">i</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-scaling-unit-m">scaling unit <code class="code">m</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-scaling-unit-M">scaling unit <code class="code">M</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-scaling-unit-n">scaling unit <code class="code">n</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-scaling-unit-p">scaling unit <code class="code">p</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-scaling-unit-P">scaling unit <code class="code">P</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-scaling-unit-s">scaling unit <code class="code">s</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-scaling-unit-u">scaling unit <code class="code">u</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-scaling-unit-v">scaling unit <code class="code">v</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-scaling-unit-z">scaling unit <code class="code">z</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-searching-fonts">searching fonts</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Directories">Font Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-searching-macros">searching macros</a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Directories">Macro Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-seconds_002c-current-time-_0028seconds_0029">seconds, current time (<code class="code">seconds</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-selecting-the-previous-font-_0028ft_0029">selecting the previous font (<code class="code">ft</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-sentence-space">sentence space</a>:</td><td> </td><td class="printindex-index-section"><a href="#Sentences">Sentences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-sentence-space-size-register-_0028_002esss_0029">sentence space size register (<code class="code">.sss</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-sentences">sentences</a>:</td><td> </td><td class="printindex-index-section"><a href="#Sentences">Sentences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-sequence_002c-escape">sequence, escape</a>:</td><td> </td><td class="printindex-index-section"><a href="#Formatter-Instructions">Formatter Instructions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-setting-diversion-trap-_0028dt_0029">setting diversion trap (<code class="code">dt</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversion-Traps">Diversion Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-setting-end_002dof_002dinput-trap-_0028em_0029">setting end-of-input trap (<code class="code">em</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#End_002dof_002dinput-Traps">End-of-input Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-setting-input-line-number-_0028lf_0029">setting input line number (<code class="code">lf</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-setting-input-line-trap-_0028it_002c-itc_0029">setting input line trap (<code class="code">it</code>, <code class="code">itc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Line-Traps">Input Line Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-setting-registers-_0028nr_002c-_005cR_0029">setting registers (<code class="code">nr</code>, <code class="code">\R</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Setting-Registers">Setting Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-setting-the-page-length-_0028pl_0029">setting the page length (<code class="code">pl</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-setting-up-an-abstract-font-style-_0028sty_0029">setting up an abstract font style (<code class="code">sty</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Families">Font Families</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-shc-request_002c-and-translations"><code class="code">shc</code> request, and translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-site_002dlocal-directory">site-local directory</a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Directories">Macro Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-site_002dlocal-directory-1">site-local directory</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Directories">Font Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-size-of-sentence-space-register-_0028_002esss_0029">size of sentence space register (<code class="code">.sss</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-size-of-word-space-register-_0028_002ess_0029">size of word space register (<code class="code">.ss</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-size_002c-optical_002c-of-a-font">size, optical, of a font</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-size_002c-paper">size, paper</a>:</td><td> </td><td class="printindex-index-section"><a href="#Paper-Format">Paper Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-size_002c-size">size, size</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Type-Size-and-Vertical-Spacing">Manipulating Type Size and Vertical Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-sizes_002c-fractional">sizes, fractional</a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-sizes_002c-fractional-type">sizes, fractional type</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-skew_002c-of-last-glyph-_0028_002ecsk_0029">skew, of last glyph (<code class="code">.csk</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Environments">Environments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-slant_002c-font_002c-changing-_0028_005cS_0029">slant, font, changing (<code class="code">\S</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-soft-hyphen-character_002c-setting-_0028shc_0029">soft hyphen character, setting (<code class="code">shc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-soft-hyphen-glyph-_0028hy_0029">soft hyphen glyph (<code class="code">hy</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-solid-circle_002c-drawing-_0028_005cD_0027C-_2026_0027_0029">solid circle, drawing (‘<samp class="samp">\D'C …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-solid-ellipse_002c-drawing-_0028_005cD_0027E-_2026_0027_0029">solid ellipse, drawing (‘<samp class="samp">\D'E …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-solid-polygon_002c-drawing-_0028_005cD_0027P-_2026_0027_0029">solid polygon, drawing (‘<samp class="samp">\D'P …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-SOURCE_005fDATE_005fEPOCH_002c-environment-variable"><code>SOURCE_DATE_EPOCH<span class="r">, environment variable</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Environment">Environment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-sp-request_002c-and-no_002dspace-mode"><code class="code">sp</code> request, and no-space mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Spacing">Manipulating Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-sp-request_002c-causing-implicit-break"><code class="code">sp</code> request, causing implicit break</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-space-between-sentences">space between sentences</a>:</td><td> </td><td class="printindex-index-section"><a href="#Sentences">Sentences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-space-between-sentences-register-_0028_002esss_0029">space between sentences register (<code class="code">.sss</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-space-between-words-register-_0028_002ess_0029">space between words register (<code class="code">.ss</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-space-character_002c-as-delimiter">space character, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-space-characters_002c-in-expressions">space characters, in expressions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-space_002c-between-sentences">space, between sentences</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-space_002c-between-words">space, between words</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-space_002c-discardable_002c-horizontal">space, discardable, horizontal</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-space_002c-hair-_0028_005c_005e_0029">space, hair (<code class="code">\^</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-space_002c-horizontal-_0028_005ch_0029">space, horizontal (<code class="code">\h</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-space_002c-horizontal_002c-unformatting">space, horizontal, unformatting</a>:</td><td> </td><td class="printindex-index-section"><a href="#Punning-Names">Punning Names</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-space_002c-thin-_0028_005c_007c_0029">space, thin (<code class="code">\|</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-space_002c-unbreakable-_0028_005c_007e_0029">space, unbreakable (<code class="code">\~</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-space_002c-unbreakable-and-unadjustable-_0028_005cSP_0029">space, unbreakable and unadjustable (<code class="code">\<kbd class="key">SP</kbd></code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-space_002c-vertical_002c-unit-_0028v_0029">space, vertical, unit (<code class="code">v</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-space_002c-width-of-a-digit-_0028numeral_0029-_0028_005c0_0029">space, width of a digit (numeral) (<code class="code">\0</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-spaces-with-ds">spaces with <code class="code">ds</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-spaces_002c-in-a-macro-argument">spaces, in a macro argument</a>:</td><td> </td><td class="printindex-index-section"><a href="#Calling-Macros">Calling Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-spaces_002c-leading-and-trailing">spaces, leading and trailing</a>:</td><td> </td><td class="printindex-index-section"><a href="#Breaking">Breaking</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-spacing-_0028introduction_0029">spacing (introduction)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Basics">Basics</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-spacing_002c-manipulating">spacing, manipulating</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Spacing">Manipulating Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-spacing_002c-vertical">spacing, vertical</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Geometry">Page Geometry</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-spacing_002c-vertical-1">spacing, vertical</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Type-Size-and-Vertical-Spacing">Manipulating Type Size and Vertical Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-spacing_002c-vertical-_0028introduction_0029">spacing, vertical (introduction)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Basics">Basics</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-special-characters">special characters</a>:</td><td> </td><td class="printindex-index-section"><a href="#Sentences">Sentences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-special-characters-1">special characters</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-special-characters-_005bms_005d">special characters [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-special-characters_002c-list-of-_0028groff_005fchar_00287_0029-man-page_0029">special characters, list of (<cite class="cite">groff_char<span class="r">(7)</span></cite> man page)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-special-font">special font</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fonts">Using Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-special-fonts">special fonts</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-special-fonts-1">special fonts</a>:</td><td> </td><td class="printindex-index-section"><a href="#Special-Fonts">Special Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-special-fonts-2">special fonts</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Description-File-Format">Font Description File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-special-fonts_002c-emboldening">special fonts, emboldening</a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-special-request_002c-and-font-translations"><code class="code">special</code> request, and font translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-special-request_002c-and-glyph-search-order"><code class="code">special</code> request, and glyph search order</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-spline_002c-drawing-_0028_005cD_0027_007e-_2026_0027_0029">spline, drawing (‘<samp class="samp">\D'~ …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-springing-a-trap">springing a trap</a>:</td><td> </td><td class="printindex-index-section"><a href="#Traps">Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-sqrtex-glyph_002c-and-cflags"><code class="code">sqrtex</code> glyph, and <code class="code">cflags</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ss-request_002c-incompatibilities-with-AT_0026T-troff"><code class="code">ss</code> request, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-stack">stack</a>:</td><td> </td><td class="printindex-index-section"><a href="#Environments">Environments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-stacking-glyphs-_0028_005cb_0029">stacking glyphs (<code class="code">\b</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-standard-input_002c-reading-from-_0028rd_0029">standard input, reading from (<code class="code">rd</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-stderr_002c-printing-to-_0028tm_002c-tm1_002c-tmc_0029">stderr, printing to (<code class="code">tm</code>, <code class="code">tm1</code>, <code class="code">tmc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-stops_002c-tab">stops, tab</a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Leaders">Tabs and Leaders</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-string-arguments">string arguments</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-string-comparison">string comparison</a>:</td><td> </td><td class="printindex-index-section"><a href="#Operators-in-Conditionals">Operators in Conditionals</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-string-expansion-_0028_005c_002a_0029">string expansion (<code class="code">\*</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-string-interpolation-_0028_005c_002a_0029">string interpolation (<code class="code">\*</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-string_002c-appending-_0028as_0029">string, appending (<code class="code">as</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-string_002c-creating-alias-for-_0028als_0029">string, creating alias for (<code class="code">als</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-string_002c-length-of-_0028length_0029">string, length of (<code class="code">length</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-string_002c-removing-_0028rm_0029">string, removing (<code class="code">rm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-string_002c-removing-alias-for-_0028rm_0029">string, removing alias for (<code class="code">rm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-string_002c-renaming-_0028rn_0029">string, renaming (<code class="code">rn</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-strings">strings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-strings-_005bms_005d">strings [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Legacy-Features">ms Legacy Features</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-strings_002c-multi_002dline">strings, multi-line</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-strings_002c-shared-name-space-with-macros-and-diversions">strings, shared name space with macros and diversions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Identifiers">Identifiers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-stripping-final-newline-in-diversions">stripping final newline in diversions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Punning-Names">Punning Names</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-stroke-color">stroke color</a>:</td><td> </td><td class="printindex-index-section"><a href="#Colors">Colors</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-stroke-color-name-register-_0028_002em_0029">stroke color name register (<code class="code">.m</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Colors">Colors</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-stroked-circle_002c-drawing-_0028_005cD_0027c-_2026_0027_0029">stroked circle, drawing (‘<samp class="samp">\D'c …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-stroked-ellipse_002c-drawing-_0028_005cD_0027e-_2026_0027_0029">stroked ellipse, drawing (‘<samp class="samp">\D'e …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-stroked-polygon_002c-drawing-_0028_005cD_0027p-_2026_0027_0029">stroked polygon, drawing (‘<samp class="samp">\D'p …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-structuring-source-code-of-documents-or-macro-packages">structuring source code of documents or macro packages</a>:</td><td> </td><td class="printindex-index-section"><a href="#Invoking-Requests">Invoking Requests</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-sty-request_002c-and-changing-fonts"><code class="code">sty</code> request, and changing fonts</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-sty-request_002c-and-font-translations"><code class="code">sty</code> request, and font translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-style_002c-font">style, font</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fonts">Using Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-style_002c-font_002c-abstract">style, font, abstract</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fonts">Using Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-style_002c-font_002c-abstract_002c-setting-up-_0028sty_0029">style, font, abstract, setting up (<code class="code">sty</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Families">Font Families</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-styles_002c-font">styles, font</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Families">Font Families</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-substring-_0028substring_0029">substring (<code class="code">substring</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-subtraction">subtraction</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-suppressing-output-_0028_005cO_0029">suppressing output (<code class="code">\O</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Suppressing-Output">Suppressing Output</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-suppression-nesting-level-register">suppression nesting level register</a>:</td><td> </td><td class="printindex-index-section"><a href="#Suppressing-Output">Suppressing Output</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-sv-request_002c-and-no_002dspace-mode"><code class="code">sv</code> request, and no-space mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-switching-environments-_0028ev_0029">switching environments (<code class="code">ev</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Environments">Environments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-sy-request_002c-and-safer-mode"><code class="code">sy</code> request, and safer mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-sy-request_002c-disabled-by-default"><code class="code">sy</code> request, disabled by default</a>:</td><td> </td><td class="printindex-index-section"><a href="#Safer-Mode">Safer Mode</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-symbol">symbol</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-symbol-table_002c-dumping-_0028pm_0029">symbol table, dumping (<code class="code">pm</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-symbol_002c-defining-_0028char_0029">symbol, defining (<code class="code">char</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-symbols_002c-using">symbols, using</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-system-commands_002c-running">system commands, running</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-system_0028_0029-return-value-register-_0028systat_0029"><code class="code">system()</code> return value register (<code class="code">systat</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-T">T</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tab-character">tab character</a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Leaders">Tabs and Leaders</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tab-character-encoding">tab character encoding</a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Fields">Tabs and Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tab-character_002c-and-translations">tab character, and translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tab-character_002c-as-delimiter">tab character, as delimiter</a>:</td><td> </td><td class="printindex-index-section"><a href="#Delimiters">Delimiters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tab-character_002c-non_002dinterpreted-_0028_005ct_0029">tab character, non-interpreted (<code class="code">\t</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Fields">Tabs and Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tab-repetition-character-_0028tc_0029">tab repetition character (<code class="code">tc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Fields">Tabs and Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tab-stop-settings-register-_0028_002etabs_0029">tab stop settings register (<code class="code">.tabs</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Fields">Tabs and Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tab-stops">tab stops</a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Leaders">Tabs and Leaders</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tab-stops_002c-default">tab stops, default</a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Fields">Tabs and Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tab_002c-line_002dtabs-mode">tab, line-tabs mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Fields">Tabs and Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-table-of-contents">table of contents</a>:</td><td> </td><td class="printindex-index-section"><a href="#Table-of-Contents">Table of Contents</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-table-of-contents-1">table of contents</a>:</td><td> </td><td class="printindex-index-section"><a href="#Leaders">Leaders</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-table-of-contents_002c-creating-_005bms_005d">table of contents, creating [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-TOC">ms TOC</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-table_002c-multi_002dpage_002c-example-_005bms_005d">table, multi-page, example [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Insertions">ms Insertions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tables-_005bms_005d">tables [<samp class="file">ms</samp>]</a>:</td><td> </td><td class="printindex-index-section"><a href="#ms-Insertions">ms Insertions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tabs_002c-and-fields">tabs, and fields</a>:</td><td> </td><td class="printindex-index-section"><a href="#Tabs-and-Fields">Tabs and Fields</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tabs_002c-and-macro-arguments">tabs, and macro arguments</a>:</td><td> </td><td class="printindex-index-section"><a href="#Invoking-Requests">Invoking Requests</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tabs_002c-and-request-arguments">tabs, and request arguments</a>:</td><td> </td><td class="printindex-index-section"><a href="#Invoking-Requests">Invoking Requests</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tabs_002c-before-comments">tabs, before comments</a>:</td><td> </td><td class="printindex-index-section"><a href="#Comments">Comments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tagged-paragraphs">tagged paragraphs</a>:</td><td> </td><td class="printindex-index-section"><a href="#Paragraphs">Paragraphs</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tags_002c-paragraph">tags, paragraph</a>:</td><td> </td><td class="printindex-index-section"><a href="#Paragraphs">Paragraphs</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-terminal_002c-conditional-output-for">terminal, conditional output for</a>:</td><td> </td><td class="printindex-index-section"><a href="#Operators-in-Conditionals">Operators in Conditionals</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-text-baseline">text baseline</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Geometry">Page Geometry</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-text-baseline-1">text baseline</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Type-Size-and-Vertical-Spacing">Manipulating Type Size and Vertical Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-text-font">text font</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fonts">Using Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-text-line">text line</a>:</td><td> </td><td class="printindex-index-section"><a href="#Requests-and-Macros">Requests and Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-text-line_002c-position-of-lowest-_0028_002eh_0029">text line, position of lowest (<code class="code">.h</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-text_002c-GNU-troff-processing">text, GNU <code class="code">troff</code> processing</a>:</td><td> </td><td class="printindex-index-section"><a href="#Text">Text</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-text_002c-justifying">text, justifying</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-text_002c-justifying-_0028rj_0029">text, justifying (<code class="code">rj</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-thickness-of-lines-_0028_005cD_0027t-_2026_0027_0029">thickness of lines (‘<samp class="samp">\D't …'</samp>’)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-thin-space-_0028_005c_007c_0029">thin space (<code class="code">\|</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-three_002dpart-title-_0028tl_0029">three-part title (<code class="code">tl</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ti-request_002c-causing-implicit-break"><code class="code">ti</code> request, causing implicit break</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ti-request_002c-using-_002b-and-_002d-with"><code class="code">ti</code> request, using <code class="code">+</code> and <code class="code">-</code> with</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-time_002c-current_002c-hours-_0028hours_0029">time, current, hours (<code class="code">hours</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-time_002c-current_002c-minutes-_0028minutes_0029">time, current, minutes (<code class="code">minutes</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-time_002c-current_002c-seconds-_0028seconds_0029">time, current, seconds (<code class="code">seconds</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-time_002c-formatting">time, formatting</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-title-length_002c-configuring-_0028lt_0029">title length, configuring (<code class="code">lt</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-title-line-length-register-_0028_002elt_0029">title line length register (<code class="code">.lt</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-title-line_002c-formatting-_0028tl_0029">title line, formatting (<code class="code">tl</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-titles">titles</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Layout">Page Layout</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tkf-request_002c-and-font-styles"><code class="code">tkf</code> request, and font styles</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Families">Font Families</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tkf-request_002c-and-font-translations"><code class="code">tkf</code> request, and font translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tkf-request_002c-with-fractional-type-sizes"><code class="code">tkf</code> request, with fractional type sizes</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tl-request_002c-and-mc"><code class="code">tl</code> request, and <code class="code">mc</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Miscellaneous">Miscellaneous</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tmac_002c-directory">tmac, directory</a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Directories">Macro Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tmac_002c-path">tmac, path</a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Directories">Macro Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-TMPDIR_002c-environment-variable"><code>TMPDIR<span class="r">, environment variable</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Environment">Environment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-token_002c-input">token, input</a>:</td><td> </td><td class="printindex-index-section"><a href="#Gtroff-Internals">Gtroff Internals</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-top-margin">top margin</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Location-Traps">Page Location Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-top_002dlevel-diversion">top-level diversion</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-top_002dlevel-diversion_002c-and-bp">top-level diversion, and <code class="code">bp</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-top_002dlevel-diversion_002c-and-_005c_0021">top-level diversion, and <code class="code">\!</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-top_002dlevel-diversion_002c-and-_005c_003f">top-level diversion, and <code class="code">\?</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tr-request_002c-and-glyph-definitions"><code class="code">tr</code> request, and glyph definitions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tr-request_002c-and-soft-hyphen-character"><code class="code">tr</code> request, and soft hyphen character</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tr-request_002c-incompatibilities-with-AT_0026T-troff"><code class="code">tr</code> request, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-track-kerning">track kerning</a>:</td><td> </td><td class="printindex-index-section"><a href="#Ligatures-and-Kerning">Ligatures and Kerning</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-track-kerning_002c-activating-_0028tkf_0029">track kerning, activating (<code class="code">tkf</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Ligatures-and-Kerning">Ligatures and Kerning</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-trailing-double-quotes-in-strings">trailing double quotes in strings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-trailing-spaces-in-string-definitions-and-appendments">trailing spaces in string definitions and appendments</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-trailing-spaces-on-text-lines">trailing spaces on text lines</a>:</td><td> </td><td class="printindex-index-section"><a href="#Breaking">Breaking</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-translations-of-characters">translations of characters</a>:</td><td> </td><td class="printindex-index-section"><a href="#Character-Translations">Character Translations</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-transparent-characters">transparent characters</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-transparent-dummy-character-_0028_005c_0029_0029">transparent dummy character (<code class="code">\)</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Dummy-Characters">Dummy Characters</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-transparent-output-_0028cf_002c-trf_0029">transparent output (<code class="code">cf</code>, <code class="code">trf</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-transparent-output-_0028_005c_0021_002c-_005c_003f_0029">transparent output (<code class="code">\!</code>, <code class="code">\?</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-transparent-output_002c-incompatibilities-with-AT_0026T-troff">transparent output, incompatibilities with <abbr class="acronym">AT&T</abbr> <code class="code">troff</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-trap">trap</a>:</td><td> </td><td class="printindex-index-section"><a href="#Deferring-Output">Deferring Output</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-trap_002c-changing-location-_0028ch_0029">trap, changing location (<code class="code">ch</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Location-Traps">Page Location Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-trap_002c-distance-to-next-vertical-position_002c-register-_0028_002et_0029">trap, distance to next vertical position, register (<code class="code">.t</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Location-Traps">Page Location Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-trap_002c-diversion_002c-setting-_0028dt_0029">trap, diversion, setting (<code class="code">dt</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversion-Traps">Diversion Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-trap_002c-end_002dof_002dinput_002c-setting-_0028em_0029">trap, end-of-input, setting (<code class="code">em</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#End_002dof_002dinput-Traps">End-of-input Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-trap_002c-implicit">trap, implicit</a>:</td><td> </td><td class="printindex-index-section"><a href="#The-Implicit-Page-Trap">The Implicit Page Trap</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-trap_002c-input-line_002c-clearing-_0028it_002c-itc_0029">trap, input line, clearing (<code class="code">it</code>, <code class="code">itc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Line-Traps">Input Line Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-trap_002c-input-line_002c-setting-_0028it_002c-itc_0029">trap, input line, setting (<code class="code">it</code>, <code class="code">itc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Line-Traps">Input Line Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-trap_002c-planting">trap, planting</a>:</td><td> </td><td class="printindex-index-section"><a href="#Traps">Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-trap_002c-springing">trap, springing</a>:</td><td> </td><td class="printindex-index-section"><a href="#Traps">Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-traps">traps</a>:</td><td> </td><td class="printindex-index-section"><a href="#Traps">Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-traps_002c-and-diversions">traps, and diversions</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Location-Traps">Page Location Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-traps_002c-blank-line">traps, blank line</a>:</td><td> </td><td class="printindex-index-section"><a href="#Blank-Line-Traps">Blank Line Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-traps_002c-diversion">traps, diversion</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversion-Traps">Diversion Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-traps_002c-end_002dof_002dinput">traps, end-of-input</a>:</td><td> </td><td class="printindex-index-section"><a href="#End_002dof_002dinput-Traps">End-of-input Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-traps_002c-input-line">traps, input line</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Line-Traps">Input Line Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-traps_002c-input-line_002c-and-interrupted-lines-_0028itc_0029">traps, input line, and interrupted lines (<code class="code">itc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Input-Line-Traps">Input Line Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-traps_002c-leading-space">traps, leading space</a>:</td><td> </td><td class="printindex-index-section"><a href="#Leading-Space-Traps">Leading Space Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-traps_002c-page-location">traps, page location</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Location-Traps">Page Location Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-traps_002c-page-location_002c-dumping-_0028ptr_0029">traps, page location, dumping (<code class="code">ptr</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-traps_002c-page-location_002c-listing-_0028ptr_0029">traps, page location, listing (<code class="code">ptr</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-traps_002c-sprung-by-bp-request-_0028_002epe_0029">traps, sprung by <code class="code">bp</code> request (<code class="code">.pe</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Location-Traps">Page Location Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-traps_002c-vertical-position">traps, vertical position</a>:</td><td> </td><td class="printindex-index-section"><a href="#Vertical-Position-Traps">Vertical Position Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-trf-request_002c-and-copy-mode"><code class="code">trf</code> request, and copy mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-trf-request_002c-and-invalid-characters"><code class="code">trf</code> request, and invalid characters</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-trf-request_002c-causing-implicit-break"><code class="code">trf</code> request, causing implicit break</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-trin-request_002c-and-asciify"><code class="code">trin</code> request, and <code class="code">asciify</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-troff-mode"><code class="code">troff</code> mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#troff-and-nroff-Modes"><code class="code">troff</code> and <code class="code">nroff</code> Modes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-troff-output"><code class="code">troff</code> output</a>:</td><td> </td><td class="printindex-index-section"><a href="#gtroff-Output">gtroff Output</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-truncated-vertical-space-register-_0028_002etrunc_0029">truncated vertical space register (<code class="code">.trunc</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Location-Traps">Page Location Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-truncating-division">truncating division</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-TTY_002c-conditional-output-for">TTY, conditional output for</a>:</td><td> </td><td class="printindex-index-section"><a href="#Operators-in-Conditionals">Operators in Conditionals</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-tutorial-for-macro-users">tutorial for macro users</a>:</td><td> </td><td class="printindex-index-section"><a href="#Tutorial-for-Macro-Users">Tutorial for Macro Users</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-type-size">type size</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Type-Size-and-Vertical-Spacing">Manipulating Type Size and Vertical Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-type-size-registers-_0028_002es_002c-_002eps_0029">type size registers (<code class="code">.s</code>, <code class="code">.ps</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Type-Size">Changing the Type Size</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-type-size-registers_002c-last_002drequested-_0028_002epsr_002c-_002esr_0029">type size registers, last-requested (<code class="code">.psr</code>, <code class="code">.sr</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-type-sizes_002c-changing-_0028ps_002c-_005cs_0029">type sizes, changing (<code class="code">ps</code>, <code class="code">\s</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Type-Size">Changing the Type Size</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-type-sizes_002c-fractional">type sizes, fractional</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-type-sizes_002c-fractional-1">type sizes, fractional</a>:</td><td> </td><td class="printindex-index-section"><a href="#Other-Differences">Other Differences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-typeface">typeface</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fonts">Using Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-TZ_002c-environment-variable"><code>TZ<span class="r">, environment variable</span></code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Environment">Environment</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-U">U</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-u-scaling-unit"><code class="code">u</code> scaling unit</a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-uf-request_002c-and-font-styles"><code class="code">uf</code> request, and font styles</a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Families">Font Families</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ul-glyph_002c-and-cflags"><code class="code">ul</code> glyph, and <code class="code">cflags</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-ul-request_002c-and-font-translations"><code class="code">ul</code> request, and font translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-Ultrix_002dspecific-man-macros">Ultrix-specific <code class="code">man</code> macros</a>:</td><td> </td><td class="printindex-index-section"><a href="#Optional-man-extensions">Optional man extensions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unadjustable-and-unbreakable-space-_0028_005cSP_0029">unadjustable and unbreakable space (<code class="code">\<kbd class="key">SP</kbd></code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unary-arithmetic-operators">unary arithmetic operators</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unbreakable-and-unadjustable-space-_0028_005cSP_0029">unbreakable and unadjustable space (<code class="code">\<kbd class="key">SP</kbd></code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unbreakable-space-_0028_005c_007e_0029">unbreakable space (<code class="code">\~</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-undefined-identifiers">undefined identifiers</a>:</td><td> </td><td class="printindex-index-section"><a href="#Identifiers">Identifiers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-undefined-request">undefined request</a>:</td><td> </td><td class="printindex-index-section"><a href="#Comments">Comments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-underline-font-_0028uf_0029">underline font (<code class="code">uf</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-underlining-_0028ul_0029">underlining (<code class="code">ul</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-underlining_002c-continuous-_0028cu_0029">underlining, continuous (<code class="code">cu</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Artificial-Fonts">Artificial Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unformatting-diversions-_0028asciify_0029">unformatting diversions (<code class="code">asciify</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unformatting-horizontal-space">unformatting horizontal space</a>:</td><td> </td><td class="printindex-index-section"><a href="#Punning-Names">Punning Names</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-Unicode">Unicode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Identifiers">Identifiers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-Unicode-1">Unicode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unit_002c-scaling_002c-c">unit, scaling, <code class="code">c</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unit_002c-scaling_002c-f">unit, scaling, <code class="code">f</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Colors">Colors</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unit_002c-scaling_002c-i">unit, scaling, <code class="code">i</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unit_002c-scaling_002c-m">unit, scaling, <code class="code">m</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unit_002c-scaling_002c-M">unit, scaling, <code class="code">M</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unit_002c-scaling_002c-n">unit, scaling, <code class="code">n</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unit_002c-scaling_002c-p">unit, scaling, <code class="code">p</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unit_002c-scaling_002c-P">unit, scaling, <code class="code">P</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unit_002c-scaling_002c-s">unit, scaling, <code class="code">s</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unit_002c-scaling_002c-u">unit, scaling, <code class="code">u</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unit_002c-scaling_002c-v">unit, scaling, <code class="code">v</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unit_002c-scaling_002c-z">unit, scaling, <code class="code">z</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-units-of-measurement">units of measurement</a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-units_002c-basic">units, basic</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Geometry">Page Geometry</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-units_002c-basic_002c-conversion-to">units, basic, conversion to</a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-units_002c-default">units, default</a>:</td><td> </td><td class="printindex-index-section"><a href="#Default-Units">Default Units</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-units_002c-machine">units, machine</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Geometry">Page Geometry</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unnamed-glyphs">unnamed glyphs</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unnamed-glyphs_002c-accessing-with-_005cN">unnamed glyphs, accessing with <code class="code">\N</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#Font-Description-File-Format">Font Description File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unsafe-mode">unsafe mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unsafe-mode-1">unsafe mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Macro-Directories">Macro Directories</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unsafe-mode-2">unsafe mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unsafe-mode-3">unsafe mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unsafe-mode-4">unsafe mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unsafe-mode-5">unsafe mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unsafe-mode-6">unsafe mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-unstyled-font">unstyled font</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fonts">Using Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-up_002dcasing-a-string-_0028stringup_0029">up-casing a string (<code class="code">stringup</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-uppercasing-a-string-_0028stringup_0029">uppercasing a string (<code class="code">stringup</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Strings">Strings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-upright-glyph_002c-correction-after-oblique-glyph-_0028_005c_002f_0029">upright glyph, correction after oblique glyph (<code class="code">\/</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Italic-Corrections">Italic Corrections</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-upright-glyph_002c-correction-before-oblique-glyph-_0028_005c_002c_0029">upright glyph, correction before oblique glyph (<code class="code">\,</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Italic-Corrections">Italic Corrections</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-URLs_002c-breaking-_0028_005c_003a_0029">URLs, breaking (<code class="code">\:</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Hyphenation">Manipulating Hyphenation</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-user_0027s-macro-tutorial">user’s macro tutorial</a>:</td><td> </td><td class="printindex-index-section"><a href="#Tutorial-for-Macro-Users">Tutorial for Macro Users</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-user_0027s-tutorial-for-macros">user’s tutorial for macros</a>:</td><td> </td><td class="printindex-index-section"><a href="#Tutorial-for-Macro-Users">Tutorial for Macro Users</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-using-escape-sequences">using escape sequences</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Escape-Sequences">Using Escape Sequences</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-using-symbols">using symbols</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Symbols">Using Symbols</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-UTF_002d8-output-encoding"><span class="w-nolinebreak-text">UTF-8</span><!-- /@w --> output encoding</a>:</td><td> </td><td class="printindex-index-section"><a href="#Groff-Options">Groff Options</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-V">V</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-v-scaling-unit"><code class="code">v</code> scaling unit</a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-valid-numeric-expression">valid numeric expression</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-value_002c-incrementing-without-changing-the-register">value, incrementing without changing the register</a>:</td><td> </td><td class="printindex-index-section"><a href="#Auto_002dincrement">Auto-increment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-variables-in-environment">variables in environment</a>:</td><td> </td><td class="printindex-index-section"><a href="#Environment">Environment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-vee">vee</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Geometry">Page Geometry</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-vee-scaling-unit-_0028v_0029">vee scaling unit (<code class="code">v</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-version-number_002c-major_002c-register-_0028_002ex_0029">version number, major, register (<code class="code">.x</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-version-number_002c-minor_002c-register-_0028_002ey_0029">version number, minor, register (<code class="code">.y</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-vertical-drawing-position-_0028nl_0029">vertical drawing position (<code class="code">nl</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-vertical-line-drawing-_0028_005cL_0029">vertical line drawing (<code class="code">\L</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-vertical-line-spacing-register-_0028_002ev_0029">vertical line spacing register (<code class="code">.v</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Vertical-Spacing">Changing the Vertical Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-vertical-line-spacing_002c-changing-_0028vs_0029">vertical line spacing, changing (<code class="code">vs</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Vertical-Spacing">Changing the Vertical Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-vertical-line-spacing_002c-effective-value">vertical line spacing, effective value</a>:</td><td> </td><td class="printindex-index-section"><a href="#Changing-the-Vertical-Spacing">Changing the Vertical Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-vertical-motion-_0028_005cv_0029">vertical motion (<code class="code">\v</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-vertical-motion-quantum">vertical motion quantum</a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-vertical-page-location_002c-marking-_0028mk_0029">vertical page location, marking (<code class="code">mk</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-vertical-page-location_002c-returning-to-marked-_0028rt_0029">vertical page location, returning to marked (<code class="code">rt</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-vertical-position-in-diversion-register-_0028_002ed_0029">vertical position in diversion register (<code class="code">.d</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Diversions">Diversions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-vertical-position-trap-enable-register-_0028_002evpt_0029">vertical position trap enable register (<code class="code">.vpt</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Vertical-Position-Traps">Vertical Position Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-vertical-position-traps">vertical position traps</a>:</td><td> </td><td class="printindex-index-section"><a href="#Vertical-Position-Traps">Vertical Position Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-vertical-position-traps_002c-enabling-_0028vpt_0029">vertical position traps, enabling (<code class="code">vpt</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Vertical-Position-Traps">Vertical Position Traps</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-vertical-position_002c-drawing-_0028nl_0029">vertical position, drawing (<code class="code">nl</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-vertical-resolution">vertical resolution</a>:</td><td> </td><td class="printindex-index-section"><a href="#DESC-File-Format">DESC File Format</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-vertical-space-unit-_0028v_0029">vertical space unit (<code class="code">v</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Measurements">Measurements</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-vertical-spacing">vertical spacing</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Geometry">Page Geometry</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-vertical-spacing-1">vertical spacing</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Type-Size-and-Vertical-Spacing">Manipulating Type Size and Vertical Spacing</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-vertical-spacing-_0028introduction_0029">vertical spacing (introduction)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Basics">Basics</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-W">W</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-warning-categories">warning categories</a>:</td><td> </td><td class="printindex-index-section"><a href="#Warnings">Warnings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-warning-level-_0028warn_0029">warning level (<code class="code">warn</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-warnings">warnings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Debugging">Debugging</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-warnings-1">warnings</a>:</td><td> </td><td class="printindex-index-section"><a href="#Warnings">Warnings</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-what-is-groff_003f">what is <code class="code">groff</code>?</a>:</td><td> </td><td class="printindex-index-section"><a href="#What-Is-groff_003f">What Is <code class="code">groff</code>?</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-while">while</a>:</td><td> </td><td class="printindex-index-section"><a href="#while">while</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-while-request_002c-and-font-translations"><code class="code">while</code> request, and font translations</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-while-request_002c-and-the-_0021-operator"><code class="code">while</code> request, and the ‘<samp class="samp">!</samp>’ operator</a>:</td><td> </td><td class="printindex-index-section"><a href="#Numeric-Expressions">Numeric Expressions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-while-request_002c-confusing-with-br"><code class="code">while</code> request, confusing with <code class="code">br</code></a>:</td><td> </td><td class="printindex-index-section"><a href="#while">while</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-while-request_002c-operators-to-use-with"><code class="code">while</code> request, operators to use with</a>:</td><td> </td><td class="printindex-index-section"><a href="#Operators-in-Conditionals">Operators in Conditionals</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-widow">widow</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-widow-1">widow</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Control">Page Control</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-width-escape-_0028_005cw_0029">width escape (<code class="code">\w</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-width_002c-of-last-glyph-_0028_002ew_0029">width, of last glyph (<code class="code">.w</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Environments">Environments</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-word-space-size-register-_0028_002ess_0029">word space size register (<code class="code">.ss</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Manipulating-Filling-and-Adjustment">Manipulating Filling and Adjustment</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-word_002c-definition-of">word, definition of</a>:</td><td> </td><td class="printindex-index-section"><a href="#Filling">Filling</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-write-request_002c-and-copy-mode"><code class="code">write</code> request, and copy mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-writec-request_002c-and-copy-mode"><code class="code">writec</code> request, and copy mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-writem-request_002c-and-copy-mode"><code class="code">writem</code> request, and copy mode</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-writing-macros">writing macros</a>:</td><td> </td><td class="printindex-index-section"><a href="#Writing-Macros">Writing Macros</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-writing-to-file-_0028write_002c-writec_0029">writing to file (<code class="code">write</code>, <code class="code">writec</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#I_002fO">I/O</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-Y">Y</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-year_002c-current_002c-register-_0028year_002c-yr_0029">year, current, register (<code class="code">year</code>, <code class="code">yr</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Built_002din-Registers">Built-in Registers</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-Z">Z</th><td></td><td></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-z-scaling-unit"><code class="code">z</code> scaling unit</a>:</td><td> </td><td class="printindex-index-section"><a href="#Using-Fractional-Type-Sizes">Using Fractional Type Sizes</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-zero_002dwidth-printing-_0028_005cz_002c-_005cZ_0029">zero-width printing (<code class="code">\z</code>, <code class="code">\Z</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-zero_002dwidth-printing-_0028_005cz_002c-_005cZ_0029-1">zero-width printing (<code class="code">\z</code>, <code class="code">\Z</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Page-Motions">Page Motions</a></td></tr>
<tr><td></td><td class="printindex-index-entry"><a href="#index-zoom-factor-of-a-font-_0028fzoom_0029">zoom factor of a font (<code class="code">fzoom</code>)</a>:</td><td> </td><td class="printindex-index-section"><a href="#Selecting-Fonts">Selecting Fonts</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
</table>
<table class="cp-letters-footer-printindex"><tr><th>Jump to: </th><td><a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-1"><b>"</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-2"><b>%</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-3"><b>&</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-4"><b>'</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-5"><b>(</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-6"><b>)</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-7"><b>*</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-8"><b>+</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-9"><b>-</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-10"><b>.</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-11"><b>/</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-12"><b>8</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-13"><b>:</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-14"><b><</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-15"><b>=</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-16"><b>></b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-17"><b>[</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-18"><b>\</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-19"><b>]</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_symbol-20"><b>|</b></a>
<br>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-A"><b>A</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-B"><b>B</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-C"><b>C</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-D"><b>D</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-E"><b>E</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-F"><b>F</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-G"><b>G</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-H"><b>H</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-I"><b>I</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-J"><b>J</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-K"><b>K</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-L"><b>L</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-M"><b>M</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-N"><b>N</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-O"><b>O</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-P"><b>P</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-Q"><b>Q</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-R"><b>R</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-S"><b>S</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-T"><b>T</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-U"><b>U</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-V"><b>V</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-W"><b>W</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-Y"><b>Y</b></a>
<a class="summary-letter-printindex" href="#Concept-Index_cp_letter-Z"><b>Z</b></a>
</td></tr></table>
</div>
<hr>
</div>
</div>
<div class="element-footnotes" id="SEC_Footnotes">
<div class="nav-panel">
<p>
[<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Request-Index" title="Index" rel="index">Index</a>]</p>
</div>
<h4 class="footnotes-heading">Footnotes</h4>
<h5 class="footnote-body-heading"><a id="FOOT1" href="#DOCF1">(1)</a></h5>
<p>The ‘<samp class="samp">g</samp>’ prefix is
not used on all systems; see <a class="ref" href="#Invoking-groff">Invoking <code class="code">groff</code></a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT2" href="#DOCF2">(2)</a></h5>
<p>Unix and related operating systems distinguish
standard output and standard error streams <em class="emph">because</em> of
<code class="code">troff</code>:
<a class="uref" href="https://minnie.tuhs.org/pipermail/tuhs/2013-December/006113.html">https://minnie.tuhs.org/pipermail/tuhs/2013-December/006113.html</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT3" href="#DOCF3">(3)</a></h5>
<p>See <a class="xref" href="#Line-Layout">Line Layout</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT4" href="#DOCF4">(4)</a></h5>
<p>Besides <code class="code">groff</code>, <code class="code">neatroff</code> is an
exception.</p>
<h5 class="footnote-body-heading"><a id="FOOT5" href="#DOCF5">(5)</a></h5>
<p>The
<code class="code">mso</code> request does not have these limitations. See <a class="xref" href="#I_002fO">I/O</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT6" href="#DOCF6">(6)</a></h5>
<p>The remainder of this chapter is based on
<cite class="cite">Writing Papers with nroff using -me</cite> by Eric P. Allman,
which is distributed with <code class="code">groff</code> as <samp class="file">meintro.me</samp>.</p>
<h5 class="footnote-body-heading"><a id="FOOT7" href="#DOCF7">(7)</a></h5>
<p>While manual <em class="emph">pages</em> are older, early ones used
macros supplanted by the <samp class="file">man</samp> package of Seventh Edition Unix
(1979). <samp class="file">ms</samp> shipped with Sixth Edition (1975) and was documented
by Mike Lesk in a Bell Labs internal memorandum.</p>
<h5 class="footnote-body-heading"><a id="FOOT8" href="#DOCF8">(8)</a></h5>
<p>defined in <a class="ref" href="#ms-Footnotes">Footnotes</a></p>
<h5 class="footnote-body-heading"><a id="FOOT9" href="#DOCF9">(9)</a></h5>
<p>Distinguish a
document title from “titles”, which are what <code class="code">roff</code> systems call
headers and footers collectively.</p>
<h5 class="footnote-body-heading"><a id="FOOT10" href="#DOCF10">(10)</a></h5>
<p>This idiosyncrasy arose through
feature accretion; for example, the <code class="code">B</code> macro in Version 6
Unix <samp class="file">ms</samp> (1975) accepted only one argument, the text to be set in
boldface. By Version 7 (1979) it recognized a second argument; in
1990, <code class="code">groff</code> <samp class="file">ms</samp> added a “pre” argument, placing it third
to avoid breaking support for older documents.</p>
<h5 class="footnote-body-heading"><a id="FOOT11" href="#DOCF11">(11)</a></h5>
<p>“Portable Document Format Publishing with GNU
Troff”, <samp class="file">pdfmark.ms</samp> in the <code class="code">groff</code> distribution, uses this
technique.</p>
<h5 class="footnote-body-heading"><a id="FOOT12" href="#DOCF12">(12)</a></h5>
<p>Unix Version 7 <samp class="file">ms</samp>, its descendants, and GNU
<samp class="file">ms</samp> prior to <code class="code">groff</code> version 1.23.0</p>
<h5 class="footnote-body-heading"><a id="FOOT13" href="#DOCF13">(13)</a></h5>
<p>You could reset it
after each call to <code class="code">.1C</code>, <code class="code">.2C</code>, or <code class="code">.MC</code>.</p>
<h5 class="footnote-body-heading"><a id="FOOT14" href="#DOCF14">(14)</a></h5>
<p><cite class="cite">Typing Documents on the UNIX System: Using the
-ms Macros with Troff and Nroff</cite>, M. E. Lesk, Bell Laboratories,
1978</p>
<h5 class="footnote-body-heading"><a id="FOOT15" href="#DOCF15">(15)</a></h5>
<p>Register values are converted to and stored as
basic units. See <a class="xref" href="#Measurements">Measurements</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT16" href="#DOCF16">(16)</a></h5>
<p>If you redefine the <samp class="file">ms</samp> <code class="code">PT</code> macro
and desire special treatment of certain page numbers (like ‘<samp class="samp">1</samp>’),
you may need to handle a non-Arabic page number format, as <code class="code">groff</code>
<samp class="file">ms</samp>’s <code class="code">PT</code> does; see the macro package source. <code class="code">groff</code>
<samp class="file">ms</samp> aliases the <code class="code">PN</code> register to <code class="code">%</code>.</p>
<h5 class="footnote-body-heading"><a id="FOOT17" href="#DOCF17">(17)</a></h5>
<p>The removal beforehand is necessary
because <code class="code">groff</code> <samp class="file">ms</samp> aliases these macros to a diagnostic
macro, and you want to redefine the aliased name, not its target.</p>
<h5 class="footnote-body-heading"><a id="FOOT18" href="#DOCF18">(18)</a></h5>
<p>See <a class="xref" href="#Device-and-Font-Description-Files">Device and Font Description Files</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT19" href="#DOCF19">(19)</a></h5>
<p><i class="slanted">Tabs</i> and <i class="slanted">leaders</i> also separate
words. <i class="slanted">Escape sequences</i> can function as word characters, word
separators, or neither—the last simply have no effect on GNU
<code class="code">troff</code>’s idea of whether an input character is within a word.
We’ll discuss all of these in due course.</p>
<h5 class="footnote-body-heading"><a id="FOOT20" href="#DOCF20">(20)</a></h5>
<p>A
well-researched jeremiad appreciated by <code class="code">groff</code> contributors on
both sides of the sentence-spacing debate can be found at
<a class="uref" href="https://web.archive.org/web/20171217060354/http://www.heracliteanriver.com/?p=324">https://web.archive.org/web/20171217060354/http://www.heracliteanriver.com/?p=324</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT21" href="#DOCF21">(21)</a></h5>
<p>This statement oversimplifies; there are
escape sequences whose purpose is precisely to produce glyphs on the
output device, and input characters that <em class="emph">aren’t</em> part of escape
sequences can undergo a great deal of processing before getting to the
output.</p>
<h5 class="footnote-body-heading"><a id="FOOT22" href="#DOCF22">(22)</a></h5>
<p>The mnemonics for the special
characters shown here are “dagger”, “double dagger”, “right
(double) quote”, and “closing (single) quote”. See the
<cite class="cite">groff_char<span class="r">(7)</span></cite> man page.</p>
<h5 class="footnote-body-heading"><a id="FOOT23" href="#DOCF23">(23)</a></h5>
<p>“Text lines” are defined in <a class="ref" href="#Requests-and-Macros">Requests and Macros</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT24" href="#DOCF24">(24)</a></h5>
<p>“Tab”
is short for “tabulation”, revealing the term’s origin as a spacing
mechanism for table arrangement.</p>
<h5 class="footnote-body-heading"><a id="FOOT25" href="#DOCF25">(25)</a></h5>
<p>The <code class="code">\<kbd class="key">RET</kbd></code> escape sequence can alter how an
input line is classified; see <a class="ref" href="#Line-Continuation">Line Continuation</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT26" href="#DOCF26">(26)</a></h5>
<p>Argument handling in
macros is more flexible but also more complex. See <a class="xref" href="#Calling-Macros">Calling Macros</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT27" href="#DOCF27">(27)</a></h5>
<p>Some escape sequences undergo
interpolation as well.</p>
<h5 class="footnote-body-heading"><a id="FOOT28" href="#DOCF28">(28)</a></h5>
<p>GNU <code class="code">troff</code> offers additional ones. See <a class="xref" href="#Writing-Macros">Writing Macros</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT29" href="#DOCF29">(29)</a></h5>
<p>Macro files and packages
frequently define registers and strings as well.</p>
<h5 class="footnote-body-heading"><a id="FOOT30" href="#DOCF30">(30)</a></h5>
<p>The
<em class="emph">semantics</em> of certain punctuation code points have gotten stricter
with the successive standards, a cause of some frustration among man
page writers; see the <cite class="cite">groff_char<span class="r">(7)</span></cite> man page.</p>
<h5 class="footnote-body-heading"><a id="FOOT31" href="#DOCF31">(31)</a></h5>
<p>The
DVI output device defaults to using the Computer Modern (CM) fonts;
<samp class="file">ec.tmac</samp> loads the EC fonts instead, which provide Euro
‘<samp class="samp">\[Eu]</samp>’ and per mille ‘<samp class="samp">\[%0]</samp>’ glyphs.</p>
<h5 class="footnote-body-heading"><a id="FOOT32" href="#DOCF32">(32)</a></h5>
<p>Emacs: <code class="code">fill-column: 72</code>; Vim: <code class="code">textwidth=72</code></p>
<h5 class="footnote-body-heading"><a id="FOOT33" href="#DOCF33">(33)</a></h5>
<p><code class="code">groff</code> does not yet support right-to-left
scripts.</p>
<h5 class="footnote-body-heading"><a id="FOOT34" href="#DOCF34">(34)</a></h5>
<p><code class="code">groff</code>’s terminal output devices have page
offsets of zero.</p>
<h5 class="footnote-body-heading"><a id="FOOT35" href="#DOCF35">(35)</a></h5>
<p>Provision is made for interpreting and
reporting decimal fractions in certain cases.</p>
<h5 class="footnote-body-heading"><a id="FOOT36" href="#DOCF36">(36)</a></h5>
<p>If that’s not enough, see the <cite class="cite">groff_tmac<span class="r">(5)</span></cite>
man page for the <samp class="file">62bit.tmac</samp> macro package.</p>
<h5 class="footnote-body-heading"><a id="FOOT37" href="#DOCF37">(37)</a></h5>
<p>See <a class="xref" href="#Conditionals-and-Loops">Conditionals and Loops</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT38" href="#DOCF38">(38)</a></h5>
<p>Control structure syntax
creates an exception to this rule, but is designed to remain useful:
recalling our example, ‘<samp class="samp">.if 1 .Underline this</samp>’ would underline only
“this”, precisely. See <a class="xref" href="#Conditionals-and-Loops">Conditionals and Loops</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT39" href="#DOCF39">(39)</a></h5>
<p>See <a class="xref" href="#Diversions">Diversions</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT40" href="#DOCF40">(40)</a></h5>
<p>Historically, control characters like
ASCII STX, ETX, and BEL (<kbd class="key">Control+B</kbd>, <kbd class="key">Control+C</kbd>, and
<kbd class="key">Control+G</kbd>) have been observed in <code class="code">roff</code> documents,
particularly in macro packages employing them as delimiters with the
output comparison operator to try to avoid collisions with the content
of arbitrary user-supplied parameters (see <a class="pxref" href="#Operators-in-Conditionals">Operators in Conditionals</a>). We discourage this expedient; in GNU <code class="code">troff</code> it is
unnecessary (outside of compatibility mode) because delimited arguments
are parsed at a different input level than the surrounding context.
See <a class="xref" href="#Implementation-Differences">Implementation Differences</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT41" href="#DOCF41">(41)</a></h5>
<p>Consider what happens when a C1 control
<code class="code">0x80</code>–<code class="code">0x9F</code> is necessary as a continuation byte in a UTF-8
sequence.</p>
<h5 class="footnote-body-heading"><a id="FOOT42" href="#DOCF42">(42)</a></h5>
<p>Recall <a class="ref" href="#Identifiers">Identifiers</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT43" href="#DOCF43">(43)</a></h5>
<p>In compatibility
mode, a space is not necessary after a request or macro name of two
characters’ length. Also, Plan 9 <code class="code">troff</code> allows tabs to
separate arguments.</p>
<h5 class="footnote-body-heading"><a id="FOOT44" href="#DOCF44">(44)</a></h5>
<p><code class="code">\~</code> is fairly
portable; see <a class="ref" href="#Other-Differences">Other Differences</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT45" href="#DOCF45">(45)</a></h5>
<p>Strictly, you can neglect to
close the last quoted macro argument, relying on the end of the control
line to do so. We consider this lethargic practice poor style.</p>
<h5 class="footnote-body-heading"><a id="FOOT46" href="#DOCF46">(46)</a></h5>
<p>The omission of spaces before the comment
escape sequences is necessary; see <a class="ref" href="#Strings">Strings</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT47" href="#DOCF47">(47)</a></h5>
<p>TeX does have such a mechanism.</p>
<h5 class="footnote-body-heading"><a id="FOOT48" href="#DOCF48">(48)</a></h5>
<p>This claim may be more aspirational than descriptive.</p>
<h5 class="footnote-body-heading"><a id="FOOT49" href="#DOCF49">(49)</a></h5>
<p>See <a class="xref" href="#Conditional-Blocks">Conditional Blocks</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT50" href="#DOCF50">(50)</a></h5>
<p>Exception: auto-incrementing registers defined outside
the ignored region <em class="emph">will</em> be modified if interpolated with
<code class="code">\n</code> inside it. See <a class="xref" href="#Auto_002dincrement">Auto-increment</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT51" href="#DOCF51">(51)</a></h5>
<p>A negative auto-increment can be
considered an “auto-decrement”.</p>
<h5 class="footnote-body-heading"><a id="FOOT52" href="#DOCF52">(52)</a></h5>
<p>GNU <code class="code">troff</code> dynamically allocates memory for
as many registers as required.</p>
<h5 class="footnote-body-heading"><a id="FOOT53" href="#DOCF53">(53)</a></h5>
<p>unless diverted; see <a class="ref" href="#Diversions">Diversions</a></p>
<h5 class="footnote-body-heading"><a id="FOOT54" href="#DOCF54">(54)</a></h5>
<p>See <a class="xref" href="#Line-Continuation">Line Continuation</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT55" href="#DOCF55">(55)</a></h5>
<p>Recall <a class="ref" href="#Filling">Filling</a> and <a class="ref" href="#Sentences">Sentences</a> for the
definitions of word and sentence boundaries, respectively.</p>
<h5 class="footnote-body-heading"><a id="FOOT56" href="#DOCF56">(56)</a></h5>
<p>Whether a perfect algorithm for this application is
even possible is an unsolved problem in computer science:
<a class="url" href="https://tug.org/docs/liang/liang-thesis.pdf">https://tug.org/docs/liang/liang-thesis.pdf</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT57" href="#DOCF57">(57)</a></h5>
<p><code class="code">\%</code> itself stops marking
hyphenation points but still produces no output glyph.</p>
<h5 class="footnote-body-heading"><a id="FOOT58" href="#DOCF58">(58)</a></h5>
<p>“Soft” because it appears in output
only where a hyphenation break is performed; a “hard” hyphen, as in
“long-term”, always appears.</p>
<h5 class="footnote-body-heading"><a id="FOOT59" href="#DOCF59">(59)</a></h5>
<p>The mode is a vector of Booleans encoded as an integer.
To a programmer, this fact is easily deduced from the exclusive use of
powers of two for the configuration parameters; they are computationally
easy to “mask off” and compare to zero. To almost everyone else, the
arrangement seems recondite and unfriendly.</p>
<h5 class="footnote-body-heading"><a id="FOOT60" href="#DOCF60">(60)</a></h5>
<p>Hyphenation is
prevented if the next page location trap is closer to the vertical
drawing position than the next text baseline would be. See <a class="xref" href="#Page-Location-Traps">Page Location Traps</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT61" href="#DOCF61">(61)</a></h5>
<p>For more on localization, see the
<cite class="cite">groff_tmac<span class="r">(5)</span></cite> man page.</p>
<h5 class="footnote-body-heading"><a id="FOOT62" href="#DOCF62">(62)</a></h5>
<p>See <a class="xref" href="#Page-Location-Traps">Page Location Traps</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT63" href="#DOCF63">(63)</a></h5>
<p>See <a class="xref" href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT64" href="#DOCF64">(64)</a></h5>
<p>or geometric objects; see <a class="ref" href="#Drawing-Geometric-Objects">Drawing Geometric Objects</a></p>
<h5 class="footnote-body-heading"><a id="FOOT65" href="#DOCF65">(65)</a></h5>
<p>to the top-level diversion;
see <a class="ref" href="#Diversions">Diversions</a></p>
<h5 class="footnote-body-heading"><a id="FOOT66" href="#DOCF66">(66)</a></h5>
<p>Plan 9 <code class="code">troff</code>
uses the register <code class="code">.S</code> for this purpose.</p>
<h5 class="footnote-body-heading"><a id="FOOT67" href="#DOCF67">(67)</a></h5>
<p>This is pronounced to rhyme with “feeder”, and
refers to how the glyphs “lead” the eye across the page to the
corresponding page number or other datum.</p>
<h5 class="footnote-body-heading"><a id="FOOT68" href="#DOCF68">(68)</a></h5>
<p>A
GNU <code class="command">nroff</code> program is available for convenience; it calls GNU
<code class="code">troff</code> to perform the formatting.</p>
<h5 class="footnote-body-heading"><a id="FOOT69" href="#DOCF69">(69)</a></h5>
<p>Historically, the <code class="code">\c</code>
escape sequence has proven challenging to characterize. Some sources
say it “connects the next input text” (to the input line on which it
appears); others describe it as “interrupting” text, on the grounds
that a text line is interrupted without breaking, perhaps to inject a
request invocation or macro call.</p>
<h5 class="footnote-body-heading"><a id="FOOT70" href="#DOCF70">(70)</a></h5>
<p>See <a class="xref" href="#Traps">Traps</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT71" href="#DOCF71">(71)</a></h5>
<p>See <a class="xref" href="#Diversions">Diversions</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT72" href="#DOCF72">(72)</a></h5>
<p>Terminals and some output devices have fonts that render
at only one or two sizes. As examples of the latter, take the
<code class="code">groff</code> <code class="code">lj4</code> device’s Lineprinter, and <code class="code">lbp</code>’s Courier
and Elite faces.</p>
<h5 class="footnote-body-heading"><a id="FOOT73" href="#DOCF73">(73)</a></h5>
<p>Font designers prepare families such that the styles
share esthetic properties.</p>
<h5 class="footnote-body-heading"><a id="FOOT74" href="#DOCF74">(74)</a></h5>
<p>Historically, the fonts
<code class="code">troff</code>s dealt with were not Free Software or, as with the Graphic
Systems C/A/T, did not even exist in the digital domain.</p>
<h5 class="footnote-body-heading"><a id="FOOT75" href="#DOCF75">(75)</a></h5>
<p>See <a class="xref" href="#Font-Description-File-Format">Font Description File Format</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT76" href="#DOCF76">(76)</a></h5>
<p>See <a class="xref" href="#DESC-File-Format"><samp class="file">DESC</samp> File Format</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT77" href="#DOCF77">(77)</a></h5>
<p>Not all versions of the <code class="code">man</code> program
support the <samp class="option">-T</samp> option; use the subsequent example for an
alternative.</p>
<h5 class="footnote-body-heading"><a id="FOOT78" href="#DOCF78">(78)</a></h5>
<p>This is “Normalization Form D”
as documented in Unicode Standard Annex #15
(<a class="uref" href="https://unicode.org/reports/tr15/">https://unicode.org/reports/tr15/</a>).</p>
<h5 class="footnote-body-heading"><a id="FOOT79" href="#DOCF79">(79)</a></h5>
<p>See <a class="xref" href="#Compatibility-Mode">Compatibility Mode</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT80" href="#DOCF80">(80)</a></h5>
<p>Output glyphs
don’t—to GNU <code class="code">troff</code>, a glyph is simply a box with an index into
a font, a given height above and depth below the baseline, and a width.</p>
<h5 class="footnote-body-heading"><a id="FOOT81" href="#DOCF81">(81)</a></h5>
<p>Opinions of this escape sequence’s name abound.
“Zero-width space” is a popular misnomer: <code class="code">roff</code> formatters do
not treat it like a space. Ossanna called it a “non-printing,
zero-width character”, but the character causes <em class="emph">output</em> even
though it does not “print”. If no output line is pending, the dummy
character starts one. Contrast an empty input document with one
containing only <code class="code">\&</code>. The former produces no output; the latter, a
blank page.</p>
<h5 class="footnote-body-heading"><a id="FOOT82" href="#DOCF82">(82)</a></h5>
<p>In text fonts, the tallest glyphs are typically
parentheses. Unfortunately, in many cases the actual dimensions of the
glyphs in a font do not closely match its declared type size! For
example, in the standard PostScript font families, 10-point Times sets
better with 9-point Helvetica and 11-point Courier than if all three
were used at 10 points.</p>
<h5 class="footnote-body-heading"><a id="FOOT83" href="#DOCF83">(83)</a></h5>
<p>Rhyme with “sledding”; mechanical typography
used lead metal (Latin <em class="emph">plumbum</em>).</p>
<h5 class="footnote-body-heading"><a id="FOOT84" href="#DOCF84">(84)</a></h5>
<p>The claim appears to have been true of Ossanna
<code class="code">troff</code> for the C/A/T device; Kernighan made device-independent
<code class="code">troff</code> more flexible.</p>
<h5 class="footnote-body-heading"><a id="FOOT85" href="#DOCF85">(85)</a></h5>
<p>See <a class="xref" href="#Device-and-Font-Description-Files">Device and Font Description Files</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT86" href="#DOCF86">(86)</a></h5>
<p>also
known vulgarly as “ANSI colors”</p>
<h5 class="footnote-body-heading"><a id="FOOT87" href="#DOCF87">(87)</a></h5>
<p>See <a class="xref" href="#Copy-Mode">Copy Mode</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT88" href="#DOCF88">(88)</a></h5>
<p>This refers to
<code class="code">vtroff</code>, a translator that would convert the C/A/T output from
early-vintage <abbr class="acronym">AT&T</abbr> <code class="code">troff</code> to a form suitable for
Versatec and Benson-Varian plotters.</p>
<h5 class="footnote-body-heading"><a id="FOOT89" href="#DOCF89">(89)</a></h5>
<p>Strictly, letters not otherwise recognized <em class="emph">are</em> treated
as output comparison delimiters. For portability, it is wise to avoid
using letters not in the list above; for example, Plan 9
<code class="code">troff</code> uses ‘<samp class="samp">h</samp>’ to test a mode it calls <code class="code">htmlroff</code>, and
GNU <code class="code">troff</code> may provide additional operators in the future.</p>
<h5 class="footnote-body-heading"><a id="FOOT90" href="#DOCF90">(90)</a></h5>
<p>Because formatting of the comparands takes place
in a dummy environment, vertical motions within them cannot spring
traps.</p>
<h5 class="footnote-body-heading"><a id="FOOT91" href="#DOCF91">(91)</a></h5>
<p>All
of this is to say that the lists of output nodes created by formatting
<var class="var">xxx</var> and <var class="var">yyy</var> must be identical. See <a class="xref" href="#Gtroff-Internals"><code class="code">gtroff</code> Internals</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT92" href="#DOCF92">(92)</a></h5>
<p>This bizarre behavior maintains compatibility with
<abbr class="acronym">AT&T</abbr> <code class="code">troff</code>.</p>
<h5 class="footnote-body-heading"><a id="FOOT93" href="#DOCF93">(93)</a></h5>
<p>See <a class="xref" href="#while">while</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT94" href="#DOCF94">(94)</a></h5>
<p>See <a class="xref" href="#Copy-Mode">Copy Mode</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT95" href="#DOCF95">(95)</a></h5>
<p>unless you redefine it</p>
<h5 class="footnote-body-heading"><a id="FOOT96" href="#DOCF96">(96)</a></h5>
<p>“somewhat less” because
things other than macro calls can be on the input stack</p>
<h5 class="footnote-body-heading"><a id="FOOT97" href="#DOCF97">(97)</a></h5>
<p>See <a class="xref" href="#Copy-Mode">Copy Mode</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT98" href="#DOCF98">(98)</a></h5>
<p>While it is possible to define and
call a macro ‘<samp class="samp">.</samp>’, you can’t use it as an end macro: during a macro
definition, ‘<samp class="samp">..</samp>’ is never handled as calling ‘<samp class="samp">.</samp>’, even if
‘<samp class="samp">.de <var class="var">name</var> .</samp>’ explicitly precedes it.</p>
<h5 class="footnote-body-heading"><a id="FOOT99" href="#DOCF99">(99)</a></h5>
<p>Its structure is
adapted from, and isomorphic to, part of a solution by Tadziu Hoffman to
the problem of reflowing text multiple times to find an optimal
configuration for it.
<a class="uref" href="https://lists.gnu.org/archive/html/groff/2008-12/msg00006.html">https://lists.gnu.org/archive/html/groff/2008-12/msg00006.html</a></p>
<h5 class="footnote-body-heading"><a id="FOOT100" href="#DOCF100">(100)</a></h5>
<p>If they were not,
parameter interpolations would be similar to command-line
parameters—fixed for the entire duration of a <code class="code">roff</code> program’s
run. The advantage of interpolating <code class="code">\$</code> escape sequences even in
copy mode is that they can interpolate different contents from one call
to the next, like function parameters in a procedural language. The
additional escape character is the price of this power.</p>
<h5 class="footnote-body-heading"><a id="FOOT101" href="#DOCF101">(101)</a></h5>
<p>Compare this to the <code class="code">\def</code> and <code class="code">\edef</code>
commands in TeX.</p>
<h5 class="footnote-body-heading"><a id="FOOT102" href="#DOCF102">(102)</a></h5>
<p>These are lightly adapted from the <code class="code">groff</code>
implementation of the <samp class="file">ms</samp> macros.</p>
<h5 class="footnote-body-heading"><a id="FOOT103" href="#DOCF103">(103)</a></h5>
<p>At the
<code class="code">grops</code> defaults of 10-point type on 12-point vertical spacing, the
difference between half a vee and half an em can be subtle: large
spacings like ‘<samp class="samp">.vs .5i</samp>’ make it obvious.</p>
<h5 class="footnote-body-heading"><a id="FOOT104" href="#DOCF104">(104)</a></h5>
<p>See <a class="xref" href="#Strings">Strings</a>, for an explanation of the trailing
‘<samp class="samp">\"</samp>’.</p>
<h5 class="footnote-body-heading"><a id="FOOT105" href="#DOCF105">(105)</a></h5>
<p>(<var class="var">hc</var>, <var class="var">vc</var>) is adjusted to the point nearest
the perpendicular bisector of the arc’s chord.</p>
<h5 class="footnote-body-heading"><a id="FOOT106" href="#DOCF106">(106)</a></h5>
<p>See <a class="xref" href="#The-Implicit-Page-Trap">The Implicit Page Trap</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT107" href="#DOCF107">(107)</a></h5>
<p>A trap planted at ‘<samp class="samp">20i</samp>’ or
‘<samp class="samp">-30i</samp>’ will not be sprung on a page of length ‘<samp class="samp">11i</samp>’.</p>
<h5 class="footnote-body-heading"><a id="FOOT108" href="#DOCF108">(108)</a></h5>
<p>It may help to think of each trap location as
maintaining a queue; <code class="code">wh</code> operates on the head of the queue, and
<code class="code">ch</code> operates on its tail. Only the trap at the head of the queue
is visible.</p>
<h5 class="footnote-body-heading"><a id="FOOT109" href="#DOCF109">(109)</a></h5>
<p>See <a class="xref" href="#Debugging">Debugging</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT110" href="#DOCF110">(110)</a></h5>
<p>See <a class="xref" href="#Diversions">Diversions</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT111" href="#DOCF111">(111)</a></h5>
<p>While processing an
end-of-input macro, the formatter assumes that the next page break must
be the last; it goes into “sudden death overtime”.</p>
<h5 class="footnote-body-heading"><a id="FOOT112" href="#DOCF112">(112)</a></h5>
<p>Another, taken by the <code class="code">groff</code> <code class="code">man</code> macros, is
to intercept <code class="code">ne</code> requests and wrap <code class="code">bp</code> ones.</p>
<h5 class="footnote-body-heading"><a id="FOOT113" href="#DOCF113">(113)</a></h5>
<p>Thus, the “water”
gets “higher” proceeding <em class="emph">down</em> the page.</p>
<h5 class="footnote-body-heading"><a id="FOOT114" href="#DOCF114">(114)</a></h5>
<p>The backslash is doubled. See <a class="xref" href="#Copy-Mode">Copy Mode</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT115" href="#DOCF115">(115)</a></h5>
<p>that is, ISO 646:1991-IRV or,
popularly, “US-ASCII”</p>
<h5 class="footnote-body-heading"><a id="FOOT116" href="#DOCF116">(116)</a></h5>
<p>They are bypassed because these parameters are not
rendered as glyphs in the output; instead, they remain abstract
characters—in a PDF bookmark or a URL, for example.</p>
<h5 class="footnote-body-heading"><a id="FOOT117" href="#DOCF117">(117)</a></h5>
<p>Recall <a class="ref" href="#Line-Layout">Line Layout</a>.</p>
<h5 class="footnote-body-heading"><a id="FOOT118" href="#DOCF118">(118)</a></h5>
<p>Historically,
tools named <code class="command">nrchbar</code> and <code class="command">changebar</code> were developed for
marking changes with margin characters and could be found in archives of
the <code class="code">comp.sources.unix</code> <abbr class="acronym">USENET</abbr> group. Some proprietary
Unices also offer(ed) a <code class="command">diffmk</code> program.</p>
<h5 class="footnote-body-heading"><a id="FOOT119" href="#DOCF119">(119)</a></h5>
<p>Except the
escape sequences <code class="code">\f</code>, <code class="code">\F</code>, <code class="code">\H</code>, <code class="code">\m</code>, <code class="code">\M</code>,
<code class="code">\R</code>, <code class="code">\s</code>, and <code class="code">\S</code>, which are processed immediately if
not in copy mode.</p>
<h5 class="footnote-body-heading"><a id="FOOT120" href="#DOCF120">(120)</a></h5>
<p>The
Graphic Systems C/A/T phototypesetter (the original device target for
<abbr class="acronym">AT&T</abbr> <code class="code">troff</code>) supported only a few discrete type sizes
in the range 6–36 points, so Ossanna contrived a special case in the
parser to do what the user must have meant. Kernighan warned of this in
the 1992 revision of CSTR #54 (2.3), and more recently, McIlroy
referred to it as a “living fossil”.</p>
<h5 class="footnote-body-heading"><a id="FOOT121" href="#DOCF121">(121)</a></h5>
<p>DWB 3.3, Solaris, Heirloom Doctools, and
Plan 9 <code class="code">troff</code> all support it.</p>
<h5 class="footnote-body-heading"><a id="FOOT122" href="#DOCF122">(122)</a></h5>
<p>Naturally, if you’ve changed
the escape character, you need to prefix the <code class="code">e</code> with whatever it
is—and you’ll likely get something other than a backslash in the
output.</p>
<h5 class="footnote-body-heading"><a id="FOOT123" href="#DOCF123">(123)</a></h5>
<p>The <code class="code">rs</code> special character identifier was not
defined in <abbr class="acronym">AT&T</abbr> <code class="code">troff</code>’s font description files, but is
in those of its lineal descendant, Heirloom Doctools <code class="code">troff</code>, as of
the latter’s 060716 release (July 2006).</p>
<h5 class="footnote-body-heading"><a id="FOOT124" href="#DOCF124">(124)</a></h5>
<p>The parser
and postprocessor for intermediate output can be found in the file<br>
<samp class="file"><var class="var">groff-source-dir</var>/src/libs/libdriver/input.cpp</samp>.</p>
<h5 class="footnote-body-heading"><a id="FOOT125" href="#DOCF125">(125)</a></h5>
<p>Plan 9 <code class="code">troff</code> has also abandoned the binary
format.</p>
<h5 class="footnote-body-heading"><a id="FOOT126" href="#DOCF126">(126)</a></h5>
<p>800-point type
is not practical for most purposes, but using it enables the quantities
in the font description files to be expressed as integers.</p>
<h5 class="footnote-body-heading"><a id="FOOT127" href="#DOCF127">(127)</a></h5>
<p><code class="code">groff</code> requests and escape sequences
interpret non-negative font names as mounting positions instead.
Further, a font named ‘<samp class="samp">0</samp>’ cannot be automatically mounted by the
<code class="code">fonts</code> directive of a <samp class="file">DESC</samp> file.</p>
<h5 class="footnote-body-heading"><a id="FOOT128" href="#DOCF128">(128)</a></h5>
<p>For typesetter devices, this directive is misnamed
since it starts a list of glyphs, not characters.</p>
<h5 class="footnote-body-heading"><a id="FOOT129" href="#DOCF129">(129)</a></h5>
<p>that is, any integer parsable by the C
standard library’s <cite class="cite">strtol<span class="r">(3)</span></cite> function</p>
</div>
</body>
</html>
|