summaryrefslogtreecommitdiff
path: root/support/digestif/data/teximpatient.tags
blob: 9ef1a0030c3b5468f6e3352a74d74b922b2412b8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
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
-- Copyright 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry
-- Copyright 2022 Augusto Stoffel
-- SPDX-License-Identifier: GFDL-1.3-or-later
--
-- Adapted from the book TeX for the Impatient, which can be found at
-- https://www.gnu.org/software/teximpatient.
data = {
  ["+"] = [[
`\+`, `\tabalign`

These commands begin a single line in a tabbed alignment. The only
difference between `\+` and `\tabalign` is that `\+` is an outer
macro—you can’t use it when TeX is reading tokens at high speed .

If you place an ‘`&`’ at a position to the right of all existing tabs in
a tabbing alignment, the ‘`&`’ establishes a new tab at that position.
]],
  AA = [[
`\AA` (Å), `\AE`, `\L` (Ł), `\OE`, `\O` (Ø), `\aa` (å), `\ae`, `\l` (ł),
`\oe`, `\o` (ø), `\ss` (ß)

These commands produce various letters and ligatures from European
alphabets. They are useful for occasional words and phrases in these
languages—but if you need to typeset a large amount of text in a
European language, you should probably be using a version of TeX adapted
to that language.[1]

You’ll need a space after these commands when you use them within a
word, so that TeX will treat the following letters as part of the word
rather than as part of the command. You needn’t be in math mode to use
these commands.

[1] The TeX Users Group can provide you with information about European
language versions of TeX.
]],
  TeX = [[
This command produces the TeX logo. Remember to follow it by `\!vs` or
to enclose it in a group when you want a space after it.
]],
  abovedisplayshortskip = [[
This parameter specifies the amount of vertical glue that TeX inserts
before a math display when the display starts to the right of where the
previous line ends, i.e., when it does not visually overlap the previous
line. Plain TeX sets `\abovedisplayshortskip` to `0pt plus3pt`. See
pages 188–189 of *The TeXbook* for a more detailed explanation of this
parameter.
]],
  abovedisplayskip = [[
This parameter specifies the amount of vertical glue that TeX inserts
before a display when the display starts to the left of where the
previous line ends, i.e., when it visually overlaps the previous line.
Plain TeX sets `\abovedisplayskip` to `12pt plus3pt minus9pt`. See
pages 188–189 of *The TeXbook* for a more detailed explanation of this
parameter.
]],
  accent = [[
This command puts an accent over the character following this command.
The accent is the character at position `charcode` in the current font.
TeX assumes that the accent has been designed to fit over a character
1ex high in the same font as the accent. If the character to be
accented is taller or shorter, TeX adjusts the position accordingly. You
can change fonts between the accent and the next character, thus drawing
the accent character and the character to be accented from different
fonts. If the accent character isn’t really intended to be an accent,
TeX won’t complain; it will just typeset something ridiculous.
]],
  active = [[
This command contains the category code for an active character, namely,
the number 13.
]],
  acute = [[
`\acute`, `\bar`, `\breve`, `\b`, `\check`, `\ddot`, `\dot`, `\grave`,
`\hat`, `\tilde`, `\vec`, `\widehat`, `\widetilde`

These commands produce accent marks in math formulas. You’ll ordinarily
need to leave a space after any one of them. A wide accent can be
applied to a multicharacter subformula; TeX will center the accent over
the subformula. The other accents are usefully applied only to a single
character.
]],
  adjdemerits = [[
This parameter specifies additional demerits that TeX attaches to a
breakpoint between two adjacent lines that are “visually incompatible”.
Such a pair of lines makes a paragraph appear uneven. Incompatibility is
evaluated in terms of the tightness or looseness of lines:

1.  A line is tight if its glue needs to shrink by at least $50\%$.

2.  A line is decent if its badness is 12 or less.

3.  A line is loose if its glue needs to stretch by more than $50\%$.

4.  A line is very loose if its glue needs to stretch so much that its
    badness exceeds 100.

Two adjacent lines are visually incompatible if their categories are not
adjacent, e.g., a tight line is next to a loose one or a decent line is
next to a very loose one.

Demerits are in units of badness squared, so you need to assign a rather
large value to this parameter (in the thousands) for it to have any
effect. Plain TeX sets `\adjdemerits` to 10000.
]],
  advance = [[
This command adds a compatible quantity to a register. For `glue` or
`muglue` all three components (natural value, stretch, and shrink) are
added. Any of the quantities can be negative. For purposes of these
calculations (and other assignments as well), `glue` can be converted to
a `dimen` by dropping the stretch and shrink, and a `dimen` can be
converted to a `number` by taking its value in scaled points . You can
omit the word `by` in these commands—TeX will understand them anyway.
]],
  advancepageno = [[
This command adds 1 to the page number $n$ in `\pageno` if $n\ge0$ and
subtracts 1 from it if $n<0$.
]],
  afterassignment = [[
When TeX encounters this command it saves `token` in a special place.
After it next performs an assignment, it inserts `token` into the input
and expands it. If you call `\afterassignment` more than once before an
assignment, only the last call has any effect. One use of
`\afterassignment` is in writing macros for commands intended to be
written in the form of assignments, as in the example below.

See page 279 of *The TeXbook* for a precise description of the behavior
of `\afterassignment`.
]],
  aftergroup = [[
When TeX encounters this command during input, it saves `token`. After
the end of the current group, it inserts `token` back into the input and
expands it. If a group contains several `\aftergroup`s, the
corresponding tokens are *all* inserted following the end of the group,
in the order in which they originally appeared.

The example that follows shows how you can use `\aftergroup` to postpone
processing a token that you generate within a conditional test.
]],
  allowbreak = [[
This command tells TeX to allow a page break where one could not
ordinarily occur. `\allowbreak` can also be used in horizontal mode.
]],
  alpha = [[
`\Delta` (Δ), `\Gamma` (Γ), `\Lambda` (Λ), `\Omega` (Ω), `\Phi` (Φ),
`\Pi` (Π), `\Psi` (Ψ), `\Sigma` (Σ), `\Theta` (Θ), `\Upsilon` (Υ), `\Xi`
(Ξ), `\alpha` (α), `\beta` (β), `\chi` (χ), `\delta` (δ), `\epsilon`
(ϵ), `\eta` (η), `\gamma` (γ), `\iota` (ι), `\kappa` (κ), `\lambda` (λ),
`\mu` (μ), `\nu` (ν), `\omega` (ω), `\phi` (ϕ), `\pi` (π), `\psi` (ψ),
`\rho` (ρ), `\sigma` (σ), `\tau` (τ), `\theta` (θ), `\upsilon` (υ),
`\varepsilon` (ε), `\varphi` (φ), `\varpi` (ϖ), `\varrho` (𝜚),
`\varsigma` (ς), `\vartheta` (ϑ), `\xi` (ξ), `\zeta` (ζ)

These commands produce Greek letters suitable for mathematics. You can
only use them within a math formula, so if you need a Greek letter
within ordinary text you must enclose it in dollar signs (`$`). TeX does
not have commands for Greek letters that look like their roman
counterparts, since you can get them by using those roman counterparts.
For example, you can get a lowercase omicron in a formula by writing the
letter ‘o’, i.e., ‘`{\rm o}`’ or an uppercase beta (‘B’) by writing
‘`{\rm B}`’.

Don’t confuse the following letters:

-   `\upsilon` (‘$\upsilon$’), `{\rm v}` (‘v’), and `\nu` (‘$\nu$’).

-   `\varsigma` (‘$\varsigma$’) and `\zeta` (‘$\zeta$’).

You can get slanted capital Greek letters by using the math italic
(`\mit`) font.

TeX treats Greek letters as ordinary symbols when it’s figuring how much
space to put around them.
]],
  arrowvert = [[
`\Arrowvert`, `\arrowvert`, `\bracevert`, `\lmoustache`, `\rmoustache`

These commands produce portions of certain large delimiters

and can themselves be used as delimiters. They refer to characters in
the `cmex10` math font.
]],
  asymp = [[
`\approx` (≈), `\asymp` (≍), `\bowtie` (⋈), `\cong` (≅), `\dashv` (⊣),
`\doteq` (≐), `\equiv` (≡), `\frown` (⌢), `\geq`, `\ge` (≥), `\gg` (≫),
`\in` (∈), `\leq`, `\le` (≤), `\ll` (≪), `\mid` (∣), `\models` (⊨),
`\neq` (≠), `\ne` (≠), `\ni` (∋), `\notin` (∉), `\owns` (∋), `\parallel`
(∥), `\perp` (⊥), `\preceq` (≼), `\prec` (≺), `\propto` (∝), `\simeq`
(≃), `\sim` (∼), `\smile` (⌣), `\sqsubseteq` (⊑), `\sqsupseteq` (⊒),
`\subseteq` (⊆), `\subset` (⊂), `\succeq` (≽), `\succ` (≻), `\supseteq`
(⊇), `\supset` (⊃), `\vdash` (⊢)

These commands produce the symbols for various relations. Relations are
one of TeX’s classes of math symbols. TeX puts different amounts of
space around different classes of math symbols. When TeX needs to break
a line of text within a math formula, it will consider placing the break
after a relation—but only if the relation is at the outermost level of
the formula, i.e., not enclosed in a group.

In addition to the commands listed here, TeX treats ‘`=\verb`’ and the
“arrow” commands as relations.

Certain relations have more than one command that you can use to produce
them:

-   ‘$\ge$’ (|| and `\geq`).

-   ‘$\le$’ (`\le` and `\leq`).

-   ‘$\ne$’ (`\ne`, `\neq`, and `\not=`).

-   ‘$\ni$’ (`\ni` and `\owns`).
]],
  badness = [[
This command yields the numerical value of the badness of the box
(either horizontal or vertical) that TeX has most recently produced. If
the box was overfull, `\badness` will be 1000000; in all other cases
it will be between 0 and 10000.
]],
  baselineskip = [[
`\baselineskip`, `\lineskiplimit`, `\lineskip`

These three parameters jointly determine how much space TeX leaves
between consecutive boxes of an ordinary vertical list, e.g., the lines
of a paragraph. This space is called “interline glue”. It is also
inserted between the component boxes of a vbox constructed in internal
vertical mode.

In the usual case, when the boxes aren’t abnormally high or deep,
TeX makes the distance from the baseline of one box to the baseline of
the next one equal to `\baselineskip`. It does this by inserting
interline glue equal to `\baselineskip` minus the depth of the upper box
(as given by `\prevdepth`) and the height of the lower box. But if this
interline glue would be less than `\lineskiplimit`, indicating that the
two boxes are too close together, TeX inserts the `\lineskip` glue
instead.[1] See pages 79–80 of *The TeXbook* for a precise description.

Note that `\baselineskip` and `\lineskip` measure *different things*:
the distance between baselines on the one hand and the distance between
the bottom of one box and the top of the next box on the other hand. See
page 78 of *The TeXbook* for further details. The first example below
shows the effects of `\lineskiplimit`.

You can obtain the effect of double spacing by doubling the value of
`\baselineskip` as illustrated in the second example below. A change to
`\baselineskip` at any point before the end of a paragraph affects the
entire paragraph.

[1] TeX actually accounts for the beginning of a vertical list by
setting `\prevdepth` to $-1000$pt and testing `\prevdepth` before
*every* box. If `\prevdepth`$\>\le-1000$pt it does not insert any
interline glue.
]],
  batchmode = [[
This command tells TeX not to stop for errors and to suppress all
further output to your terminal. Typing ‘`Q`’ or ‘`q`’ in response to an
error message puts you into batch mode.
]],
  begingroup = [[
`\begingroup`, `\endgroup`

These two commands begin and end a group. A `\begingroup` does not match
up with a right brace, nor an `\endgroup` with a left brace.

TeX treats `\begingroup` and `\endgroup` like any other control sequence
when it’s scanning its input. In particular, you can define a macro that
contains a `\begingroup` but not an `\endgroup`, and conversely.

This technique is often useful when you’re defining paired macros, one
of which establishes an environment and the other of which terminates
that environment. You can’t, however, use `\begingroup` and `\endgroup`
as substitutes for braces other than the ones that surround a group.
]],
  beginsection = [[
You can use this command to begin a major subdivision of your document.
`argument` is intended to serve as a section title. `\beginsection`
surrounds `argument` by extra vertical space and sets it in boldface,
left-justified. You can produce the `\par` that ends `argument` with a
blank line.
]],
  belowdisplayshortskip = [[
This parameter specifies the amount of vertical glue that TeX inserts
after a display when the display starts to the right of where the
previous line ends, i.e., when it does not visually overlap the previous
line. Plain TeX sets `\belowdisplayshortskip` to `7pt plus3pt minus4pt`.
See pages 188–189 of *The TeXbook* for a more detailed explanation of
this parameter.
]],
  belowdisplayskip = [[
This parameter specifies the amount of vertical glue that TeX inserts
after a display when the display starts to the left of where the
previous line ends, i.e., when it visually overlaps the previous line.
Plain TeX sets `\belowdisplayskip` to `12pt plus3pt minus9pt`. See
pages 188–189 of *The TeXbook* for a more detailed explanation of this
parameter.
]],
  bf = [[
`\bf`, `\it`, `\rm`, `\sl`, `\tt`

These commands select a type style without changing the typeface or the
point size.[1] Normally you would enclose one of these type style
commands in a group, together with the text to be set in the selected
font. Outside of a group a type style command is effective until the end
of the document (unless you override it with another such command).

[1] TeX does not provide predefined commands for changing just the point
size, e.g., `\eightpoint`. Supporting such commands would require a
great number of fonts, most of which would never be used. Such commands
were, however, used in typesetting *The TeXbook*.
]],
  bgroup = [[
`\bgroup`, `\egroup`

The left and right braces are commands that begin and end a group. The
`\bgroup` and `\egroup` control sequences are equivalent to ‘`{`’ and
‘`}`’, except that TeX treats `\bgroup` and `\egroup` like any other
control sequence when it’s scanning its input.

`\bgroup` and `\egroup` can be useful when you’re defining paired
macros, one of which starts a brace-delimited construct (not necessarily
a group) and the other one of which ends that construct.

You can’t define such macros using ordinary braces—if you try, your
macro definitions will contain unmatched braces and will therefore be
unacceptable to TeX. Usually you should use these commands only when you
can’t use ordinary braces.
]],
  big = [[
`\Biggl`, `\Biggm`, `\Biggr`, `\Bigg`, `\Bigl`, `\Bigm`, `\Bigr`,
`\Big`, `\biggl`, `\biggm`, `\biggr`, `\bigg`, `\bigl`, `\bigm`,
`\bigr`, `\big`

These commands make delimiters bigger than their normal size. The
commands in the four columns produce successively larger sizes. The
difference between `\big`, `\bigl`, `\bigr`, and `bigm` has to do with
the class of the enlarged delimiter:

-   `\big` produces an ordinary symbol.

-   `\bigl` produces an opening symbol.

-   `\bigr` produces a closing symbol.

-   `\bigm` produces a relation symbol.

TeX uses the class of a symbol in order to decide how much space to put
around that symbol.

These commands, unlike `\left` and `\right`, do *not* define a group.
]],
  binoppenalty = [[
This parameter specifies the penalty for breaking a math formula after a
binary operator when the formula appears in a paragraph. Plain TeX sets
`\binoppenalty` to 700.
]],
  bmod = [[
This command produces a binary operation for indicating a modulus within
a formula.
]],
  boxmaxdepth = [[
This parameter contains a dimension $D$. TeX will not construct a box
whose depth exceeds $D$. If you produce a box whose depth $d$ would
exceed $D$, TeX will transfer the excess depth to the height of the box,
effectively moving the reference point of the box down by $d-D$. If you
set `\boxmaxdepth` to zero, TeX will line up a row of vboxes so that
their bottom boundaries all lie on the same horizontal line. Plain
TeX sets `\boxmaxdepth` to `\maxdimen` , so `\boxmaxdepth` won’t affect
your boxes unless you change it.
]],
  ["break"] = [[
This command forces a page break. Unless you do something to fill out
the page, you’re likely to get an underfull vbox. `\break` can also be
used in horizontal mode.
]],
  brokenpenalty = [[
This parameter specifies the penalty for breaking a page just after a
line that ends in a discretionary item (usually a hyphen).

`\brokenpenalty` applies to page breaking, while `\hyphenpenalty`
applies to line breaking. Plain TeX sets `\brokenpenalty` to 100.
]],
  c = [[
`\H`, `\c`, `\d`, `\t`, `\u`, `\v`

These commands produce accent marks in ordinary text. You’ll usually
need to leave a space after the ones denoted by a single letter ).
]],
  cal = [[
`\cal`, `\mit`, `\oldstyle`

These commands cause TeX to typeset the following text in the specified
font. You can only use them in math mode. The `\mit` command is useful
for producing slanted capital Greek letters. You can also use the
commands given in “TeX for the Impatient”, Selecting fonts,selfont to
change fonts in math mode.
]],
  cases = [[
This command produces the mathematical form that denotes a choice among
several cases. Each case has two parts, separated by ‘`&`’. TeX treats
the first part as a math formula and the second part as ordinary text.
Each case must be followed by `\cr`.
]],
  catcode = [[
This table entry contains the category code of the character whose
ASCII code is `charcode`. The category codes are listed on in “TeX for
the Impatient”. By changing the category code of a character you can get
TeX to treat that character differently.
]],
  cdotp = [[
`\cdotp` (·), `\ldotp`

These two commands respectively produce a centered dot and a dot
positioned on the baseline. They are valid only in math mode. TeX treats
them as punctuation, putting no extra space in front of them but a
little extra space after them. In contrast, TeX puts an equal amount of
space on both sides of a centered dot generated by the `\cdot` command.
]],
  centerline = [[
`\centerline`, `\leftline`, `\rightline`

The `\centerline` command produces an hbox exactly as wide as the
current line and places `argument` at the center of the box. The
`\leftline` and `\rightline` commands are analogous; they place
`argument` at the left end or at the right end of the box. If you want
to apply one of these commands to several consecutive lines, you must
apply it to each one individually. See in “TeX for the Impatient” for an
alternate approach.

Don’t use these commands within a paragraph—if you do, TeX probably
won’t be able to break the paragraph into lines and will complain about
an overfull hbox.
]],
  char = [[
This command produces the character located at position `charcode` of
the current font.
]],
  chardef = [[
This command defines `control sequence` to be `charcode`. Although
`\chardef` is most often used to define characters, you can also use it
to give a name to a number in the range 0–255 even when you aren’t
using that number as a character code.
]],
  cleartabs = [[
This command clears all the tabs to the right of the current column. Its
main use is in applications such as typesetting computer programs in
which the tab positions change from line to line.
]],
  closeout = [[
This command tells TeX to close the output stream numbered `number`.
i.e., end the association between the output stream and its file. The
output stream with this number then becomes available for use with a
different file. You should close an output stream once you’re finished
using its file.

A `\closeout` generates a whatsit that becomes part of a box. The
`\closeout` does not take effect until TeX ships out that box to the
.dvi file, unless you’ve preceded the `\closeout` with `\immediate`.
]],
  clubpenalty = [[
This parameter specifies the penalty for breaking a page just after the
first line of a paragraph. A line by itself at the bottom of a page is
called a “club line”. Plain TeX sets `\clubpenalty` to 150.
]],
  colon = [[
This command produces a colon punctation symbol. It is valid only in
math mode. The difference between `\colon` and the colon character (`:`)
is that ‘`:`’ is an operator, so TeX puts extra space to the left of it
whereas it doesn’t put extra space to the left of `\colon`.
]],
  copy = [[
This command produces a copy of box register `register`. This command is
useful when you want to retrieve the contents of a box register but
don’t want to destroy the contents. (Retrieving the register contents
with `\box` makes the register void.)
]],
  cos = [[
`\Pr`, `\arccos`, `\arcsin`, `\arctan`, `\arg`, `\cosh`, `\cos`,
`\coth`, `\cot`, `\csc`, `\deg`, `\det`, `\dim`, `\exp`, `\gcd`, `\hom`,
`\inf`, `\ker`, `\lg`, `\liminf`, `\limsup`, `\lim`, `\ln`, `\log`,
`\max`, `\min`, `\sec`, `\sinh`, `\sin`, `\sup`, `\tanh`, `\tan`

These commands set the names of various mathematical functions in roman
type, as is customary. If you apply a superscript or subscript to one of
these commands, TeX will in most cases typeset it in the usual place. In
display style, TeX typesets superscripts and subscripts on `\det`,
`\gcd`, `\inf`, `\lim`, `\liminf`, `\limsup`, `\max`, `\min`, `\Pr`, and
`\sup` as though they were limits, i.e., directly above or directly
below the function name.
]],
  count = [[
`\count`, `\dimen`, `\muskip`, `\skip`, `\toks`

The first six commands listed here assign something to a register. The
`=`’s in the assignments are optional. The remaining five control
sequences are not true commands because they can only appear as part of
an argument. They yield the contents of the specified register. Although
you can’t use these control sequences by themselves as commands in text,
you can use `\the` to convert them to text so that you can typeset their
values.

You can name and reserve registers with the `\newcount` command and its
relatives . Using these commands is a safe way to obtain registers that
are known not to have any conflicting usage.

A `\count` register contains an integer, which can be either positive or
negative. Integers can be as large as you’re ever likely to need them to
be.[1] TeX uses count registers 0–9 to keep track of the page number
(see page 119 of *The TeXbook*). `\count255` is the only count register
available for use without a reservation.

[1] Here’s the only exercise in this book: find out what’s the largest
integer that TeX will accept.
]],
  countdef = [[
`\countdef`, `\dimendef`, `\muskipdef`, `\skipdef`, `\toksdef`

These commands define `control sequence` to refer to the register of the
indicated category whose number is `register`. Normally you should use
the commands in the previous group (`\newcount`, etc.) in preference to
these commands in order to avoid numbering conflicts. The commands in
the previous group are defined in terms of the commands in this group.
]],
  cr = [[
This command ends the preamble of a horizontal or vertical alignment, a
row of a horizontal or tabbing alignment, or a column of a vertical
alignment. You can cause TeX to take certain actions whenever it sees a
`\cr` by setting the value of the `\everycr` parameter .
]],
  crcr = [[
This command behaves just like `\cr`, except that TeX ignores it if it
comes immediately after a `\cr` or a `\noalign`. Its main application is
as a safety measure to avoid a misleading error message caused by a
macro that expects an argument ending in `\cr`. If you put `\crcr` after
the ‘`#`$n$’ that denotes such an argument in the macro’s definition,
the macro will work properly whether or not the argument ends with
`\cr`.
]],
  csname = [[
This command produces a control sequence from `token list`. It provides
a way of synthesizing control sequences, including ones that you can’t
normally write. `token list` can itself include control sequences; it is
expanded in the same way as the replacement text of an `\edef`
definition. If the final expansion yields anything that isn’t a
character, TeX will complain. `\csname` goes from a list of tokens to a
control sequence; you can go the other way with `\string` .
]],
  day = [[
TeX sets this parameter to the current day of the month. It is a number
between 1 and 31. `\day` is set at the beginning of your run (see
the comments on `\time` above).
]],
  ddots = [[
This command produces three dots on a diagonal. Its most common use is
to indicate repetition along the diagonal of a matrix.
]],
  deadcycles = [[
This parameter contains the number of times that TeX has initiated the
output routine since the last time it did a `\shipout`.[1] If
`\deadcycles` gets too big, you’ve probably gotten TeX into a loop,
e.g., one where the page builder is trying the same page break over and
over again.

[1] More precisely, TeX sets `\deadcyles` to 0 whenever it executes
`\shipout` and increments it by 1 whenever it executes `\output`.
]],
  def = [[
This command defines `control sequence` as a macro with the specified
`parameter text` and `replacement text`. See in “TeX for the Impatient”
for a full explanation of how to write a macro definition.
]],
  defaulthyphenchar = [[
When TeX reads the metrics file

for a font in response to a `\font` command, it sets the font’s
`\hyphenchar` to `\defaulthyphenchar`. If the value of
`\defaulthyphenchar` is not in the range 0–255 when you load a font,
TeX won’t hyphenate any words in that font unless you override the
decision by setting the font’s `\hyphenchar` later on. Plain TeX sets
`\defaulthyphenchar` to 45, the ASCII code for ‘`-`’.
]],
  defaultskewchar = [[
When TeX reads the metrics file

for a font in response to a `\font` command, it sets the font’s
`\skewchar` to `\defaultskewchar`. If the value of `\defaultskewchar` is
not in the range 0–255, TeX does not assign any skew characters by
default. Plain TeX sets `\defaultskewchar` to $-1$, and it’s usually
best to leave it there.
]],
  delcode = [[
This table entry specifies the delimiter code for the input character
whose ASCII code is `charcode`. The delimiter code tells TeX how to find
the best output character to use for typesetting the indicated input
character as a delimiter.

`number` is normally written in hexadecimal notation. Suppose that
`number` is the hexadecimal number $s_1s_2s_3\,
l_1l_2l_3$. Then when the character is used as a delimiter, TeX takes
the character to have small variant $s_1s_2s_3$ and large variant
$l_1l_2l_3$. Here $s_1s_2s_3$ indicates the math character found in
position $s_2s_3$ of family $s_1$, and similarly for $l_1l_2l_3$. This
is the same convention as the one used for `\mathcode`, except that
`\mathcode` also specifies a class.
]],
  delimiter = [[
This command produces a delimiter whose characteristics are given by
`number`. `number` is normally written in hexadecimal notation. You can
use the `\delimiter` command instead of a character in any context where
TeX expects a delimiter (although the command is rarely used outside of
a macro definition). Suppose that `number` is the hexadecimal number
$cs_1s_2s_3
l_1l_2l_3$. Then TeX takes the delimiter to have class $c$, small
variant $s_1s_2s_3$, and large variant $l_1l_2l_3$. Here $s_1s_2s_3$
indicates the math character found in position $s_2s_3$ of family $s_1$,
and similarly for $l_1l_2l_3$. This is the same convention as the one
used for `\mathcode`.
]],
  discretionary = [[
This command specifies a “discretionary break”, namely, a place where
TeX can break a line. It also tells TeX what text to put on either side
of the break.

-   If TeX does not break there, it uses the `no-break text`.

-   If TeX does break there, it puts the `pre-break text` just before
    the break and the `post-break text` just after the break.

Just as with `\-`, TeX isn’t obligated to break a line at a
discretionary break. In fact, `\-` is ordinarily equivalent to
`\discretionary!allowbreak{-}{}{}`.

TeX sometimes inserts discretionary breaks on its own. For example, it
inserts `\discretionary!allowbreak{}{}{}` after an explicit hyphen or
dash.
]],
  displayindent = [[
This parameter specifies the space by which TeX indents a math display.
TeX sets the value of `\displayindent` when it encounters the ‘`$$`’
that starts the display. Usually this initial value is zero, but if the
paragraph shape indicates that the display should be shifted by an
amount $s$, TeX will set `\displayindent` to $s$. See pages 188–189 of
*The TeXbook* for a more detailed explanation of this parameter.
]],
  displaylimits = [[
This command tells TeX to place limits above and below all operators
(including the integrals) if in display style, and after all operators
if in text style.

If you specify more than one of `\limits`, `\nolimits`, and
`\displaylimits`, the last command rules.
]],
  displaywidowpenalty = [[
This parameter specifies the penalty for breaking a page just before the
last line of a partial paragraph that immediately precedes a math
display. Plain TeX sets `\displaywidowpenalty` to 50.
]],
  displaywidth = [[
This parameter specifies the maximum width that TeX allows for a math
display. If TeX cannot fit the display into a space of this width, it
sets an overfull hbox and complains. TeX sets the value of
`\displaywidth` when it encounters the ‘`$$`’ that starts the display.
This initial value is `\hsize` unless it’s overridden by changes to the
paragraph shape. See pages 188–189 of *The TeXbook* for a more detailed
explanation of this parameter.
]],
  dotfill = [[
`\dotfill`, `\hrulefill`

These commands respectively fill the enclosing horizontal space with a
row of dots on the baseline and with a horizontal line on the baseline.
It’s usually a good idea to leave a space between `\dotfill` or
`\hrulefill` and any text that precedes or follows it (see the example
below).
]],
  dots = [[
This command produces an ellipsis, i.e., three dots, in ordinary text.
It’s intended for use in mathematical writing; for an ellipsis between
ordinary words, you should use `$\ldots$` instead. Since `\dots`
includes its own space, you shouldn’t follow it by `\!vs`.
]],
  doublehyphendemerits = [[
This parameter specifies additional demerits that TeX attaches to a
breakpoint when that breakpoint leads to two consecutive lines that end
in a hyphen. Increasing the value of this parameter has the effect of
discouraging TeX from hyphenating two lines in a row. Demerits are in
units of badness squared, so you need to assign a rather large value to
this parameter (in the thousands) for it to have any effect. Plain
TeX sets `\doublehyphendemerits` to 10000.
]],
  downbracefill = [[
`\downbracefill`, `\upbracefill`

These commands respectively produce upward-pointing and
downward-pointing extensible horizontal braces. TeX will make the braces
as wide as necessary. These commands are used in the definitions of
`\overbrace` and `\underbrace` .
]],
  dump = [[
This command, which must not appear inside a group, dumps the contents
of TeX’s memory to a format file. By using `virtex`, a special “virgin”
form of TeX, you can then reload the format file at high speed and
continue in the same state that TeX was in at the time of the dump.
`\dump` also ends the run. Since `\dump` can only be used in `initex`,
not in production forms of TeX, it is only useful to people who are
installing TeX.
]],
  edef = [[
This command defines a macro in the same general way as `\def`. The
difference is that TeX expands the `replacement text` of an `\edef`
immediately (but still without executing anything). Thus any definitions
within the `replacement text` are expanded, but assignments and commands
that produce things such as boxes and glue are left as is. For example,
an `\hbox` command within the `replacement text` of an `\edef` remains
as a command and is not turned into a box as TeX is processing the
definition. It isn’t always obvious what’s expanded and what isn’t, but
you’ll find a complete list of expandable control sequences on
pages 212–215 of *The TeXbook*.

You can inhibit the expansion of a control sequence that would otherwise
be expanded by using `\noexpand`. You can postpone the expansion of a
control sequence by using `\expandafter`.

The `\write`, `\message`, `\errmessage`, `\wlog`, and `\csname` commands
expand their token lists using the same rules that `\edef` uses to
expand its replacement text.
]],
  eject = [[
`\eject`, `\supereject`

These commands force a page break at the current position and end the
current paragraph. If you don’t precede them with `\vfil`,

TeX will try to stretch out the page contents (and will probably
complain about an underfull vbox). The `\supereject` command, in
addition, instructs the plain TeX output routine to force out any
leftover insertions,

such as long footnotes, so that they are produced before any more input
is processed. Thus `\supereject` is a good command to use at the end of
each chapter or other major unit of your document.
]],
  ["else"] = [[
This command introduces the “false” alternative of a conditional test.
]],
  emergencystretch = [[
By setting this parameter to be greater than zero, you can make it
easier for TeX to typeset your document without generating overfull
hboxes.

This is a better alternative than setting `\tolerance=10000`, since that
tends to produce really ugly lines. If TeX can’t typeset a paragraph
without exceeding `\tolerance`, it will try again, adding
`\emergencystretch` to the stretch of each line. The effect of the
change is to scale down the badness of each line, enabling TeX to make
spaces wider than they would otherwise be and thus choose line breaks
that are as good as possible under the circumstances.
]],
  empty = [[
This command expands to no tokens at all. It differs from `\relax` in
that it disappears after macro expansion.
]],
  ["end"] = [[
This command tells TeX to produce the last page and end the job. It does
not fill out the page, however, so it’s usually better to use `\bye`
rather than `\end`.
]],
  endgraf = [[
This command is a synonym for the `\par` primitive command. It is useful
when you’ve redefined `\par` but still want access to the original
definition of `\par`.
]],
  endinput = [[
This command tells TeX to stop reading input from the current file when
it next reaches the end of a line.
]],
  endinsert = [[
This command ends an insertion started by `\topinsert`, `\midinsert`, or
`\pageinsert`.
]],
  endline = [[
This command is a synonym for the `\cr` command. It is useful when
you’ve redefined `\cr` but still need access to the original definition.
]],
  endlinechar = [[
This parameter contains the character code for the character that
TeX appends to the end of each input line.

A value not in the range 0–255 indicates that no character should be
appended. Plain TeX leaves `\endlinechar` at `` `\^^M `` (the ASCII code
for ⟨return⟩).
]],
  enskip = [[
`\enskip`, `\qquad`, `\quad`

Each of these commands produces a glob of horizontal glue that can
neither stretch nor shrink. TeX can break a line at such glue. The width
of these glues (which are relative to the current font) are as follows
for `cmr10`, the default plain TeX font:
]],
  enspace = [[
This command produces a kern whose width is one en (half of an em, see
in “TeX for the Impatient”). TeX won’t break a line at an `\enspace`
unless it’s followed by glue. In a bulleted list, the bullets are
usually separated from the following text by an `\enspace`.
]],
  eqalign = [[
`\eqalignno`, `\eqalign`, `\leqalignno`

These commands produce a multiline math display in which certain
corresponding parts of the lines are lined up vertically. The
`\eqalignno` and `\leqalignno` commands also let you provide equation
numbers for some or all of the lines. `\eqalignno` puts the equation
numbers on the right and `\leqalignno` puts them on the left.

Each line in the display is ended by `\cr`. Each of the parts to be
aligned (most often an equals sign) is preceded by ‘`&`’. An ‘`&`’ also
precedes each equation number, which comes at the end of a line. You can
put more than one of these commands in a single display in order to
produce several groups of equations. In this case, only the rightmost or
leftmost group can be produced by `\eqalignno` or `\leqalignno`.

You can use the `\noalign` command to change the amount of space between
two lines of a multiline display.
]],
  eqno = [[
`\eqno`, `\leqno`

These commands attach an equation number to a displayed formula. `\eqno`
puts the equation number on the right and `\leqno` puts it on the left.
The commands must be given at the end of the formula. If you have a
multiline display and you want to number more than one of the lines, use
the `\eqalignno` or `\leqalignno` command .

These commands are valid only in display math mode.
]],
  errhelp = [[
This parameter contains the token list that TeX displays when you ask
for help in response to an `\errmessage` command. We recommend that when
you’re generating an error message with `\errmessage`, you set
`\errhelp` to a string that describes the nature of the error and use
`\newhelp` to produce that string. You can use the `\newlinechar`
character to produce multiline messages.
]],
  errorcontextlines = [[
This parameter determines the number of pairs of context lines, not
counting the top and bottom pairs, that TeX prints when it encounters an
error. By setting it to 0 you can get rid of long error messages. You
can still force out the full context by typing something like:

    I\errorcontextlines=100\oops

in response to an error, since the undefined control sequence `\oops`
will cause another error. Plain TeX sets `\errorcontextlines` to 5.
]],
  errorstopmode = [[
This command tells TeX to stop for interaction whenever it finds an
error. This is the normal mode of operation.
]],
  escapechar = [[
This parameter specifies the ASCII code of the character that TeX uses
to represent the escape character

when it’s converting a control sequence name to a sequence of character
tokens. This conversion occurs when you use the `\string` command and
also when TeX is producing diagnostic messages. The default value of the
escape character is 92, the ASCII character code for a backslash. If
`\escapechar` is not in the range 0–255, TeX does not include an
escape character in the result of the conversion.
]],
  everycr = [[
TeX expands `token list` whenever it executes a `\cr`—at the end of
every preamble, at the end of every row of a horizontal alignment, and
at the end of every column of a vertical alignment. The `\everycr`
commands are expanded just after the `\cr`. Thus you can cause TeX to
execute certain commands at the end of a preamble, row, or column by
assigning a list of those commands to `\everycr`.

The `\everycr` tokens shouldn’t include any commands other than
`\noalign`. That’s because the `\everycr` tokens will reappear after the
last `\cr` of the alignment. A command other than `\noalign` will then
make TeX think that it’s starting a new row or column. TeX will complain
about a missing `\cr`, insert a `\cr`, insert the `\everycr` tokens
again, and repeat these actions indefinitely.
]],
  everyhbox = [[
`\everyhbox`, `\everyvbox`

These parameters contain token lists that TeX expands at the start of
every hbox or vbox that it constructs. Any items resulting from the
expansion then become the beginning of the list of items for the box. By
default these token lists are empty.
]],
  everyjob = [[
This parameter contains a token list that TeX expands at the start of
every job. Because an assignment to `\everyjob` cannot affect the
current run (by the time you’ve done the assignment it’s already too
late), it is only useful to people who are preparing format files.
]],
  everymath = [[
`\everydisplay`, `\everymath`

These parameters specify token lists that TeX inserts at the start of
every text math or display math formula, respectively. You can take
special actions at the start of each math formula by assigning those
actions to `\everymath` or `\everydisplay`. Don’t forget that if you
want both kinds of formulas to be affected, you need to set *both*
parameters.
]],
  everypar = [[
TeX performs the commands in `token list` whenever it enters horizontal
mode, e.g., when it starts a paragraph. By default `\everypar` is empty,
but you can take extra actions at the start of every paragraph by
putting the commands for those actions into a token list and assigning
that token list to `\everypar`.
]],
  exhyphenpenalty = [[
This parameter specifies the penalty that TeX attaches to a breakpoint
at an explicit hyphen such as the one in “helter-skelter”. Increasing
this parameter has the effect of discouraging TeX from ending a line at
an explicit hyphen. Plain TeX sets `\exhyphenpenalty` to 50.
]],
  expandafter = [[
This command tells TeX to expand `token_1` according to its rules for
macro expansion *after* it has expanded `token_2` by one level. It’s
useful when `token_1` is something like ‘`{`’

or `\string` that inhibits expansion of `token_2`, but you want to
expand `token_2` nevertheless.
]],
  fam = [[
When TeX is in math mode, it ordinarily typesets a character using the
font family given in its mathcode.

However, when TeX is in math mode and encounters a character whose class
is 7 (Variable), it typesets that character using the font family
given by the value of `\fam`, provided that the value of `\fam` is
between 0 and 15. If the value of `\fam` isn’t in that range,
TeX uses the family in the character’s mathcode as in the ordinary case.
TeX sets `\fam` to $-1$ whenever it enters math mode. Outside of math
mode, `\fam` has no effect.

By assigning a value to `\fam` you can change the way that TeX typesets
ordinary characters such as variables. For instance, by setting `\fam`
to `\ttfam`, you cause TeX to typeset variables using a typewriter font.
Plain TeX defines `\tt` as a macro that, among other things, sets `\fam`
to `\ttfam`.
]],
  fi = [[
This command ends the text of a conditional test.
]],
  filbreak = [[
This command provides a kind of conditional page break. It tells TeX to
break the page—but not if the text up to a later `\filbreak` also fits
on the same page. By enclosing a paragraph in a pair of `\filbreak`s,
you can ensure that TeX will keep a paragraph on a single page if it
can. You should not use `\filbreak` within a paragraph, since it forces
TeX into vertical mode and thus ends the paragraph. See in “TeX for the
Impatient” for more advice on this subject.
]],
  finalhyphendemerits = [[
This parameter specifies additional demerits that TeX attaches to a
breakpoint that causes the next to last line of a paragraph to end with
a hyphen. Such a hyphen is generally considered to be unaesthetic
because of the possible blank space from a short last line beneath it.
Increasing the value of this parameter has the effect of discouraging
TeX from ending the next to the last line with a hyphen. Demerits are in
units of badness squared, so you need to assign a rather large value to
this parameter (in the thousands) for it to have any effect. Plain
TeX sets `\finalhyphendemerits` to 5000.
]],
  firstmark = [[
`\botmark`, `\firstmark`, `\topmark`

These commands expand to the mark text in an item generated by an
earlier `\mark` command. The mark text has the form of a token list.
TeX sets the values of these commands when it finishes placing the
contents of a page into `\box255`, just before calling the output
routine as part of its page breaking actions. TeX determines these
values as follows:

-   `\firstmark` contains the tokens of the first mark on the page.

-   `\botmark` contains the tokens of the last mark on the page.

-   `\topmark` contains the tokens of the mark that is in effect at the
    very top of the page. That mark is the last mark that *preceded* the
    page, i.e., the `\botmark` of the previous page. It is empty if no
    marks preceded the page.

If a page has no marks on it, TeX will set `\firstmark` and `\botmark`
to the same mark as `\topmark`, i.e., the most recent preceding mark.
The table at the bottom of page 258 of *The TeXbook* illustrates the
relation among `\firstmark`, `\botmark`, and `\topmark`.
]],
  fivebf = [[
`\fivebf`, `\fivei`, `\fiverm`, `\fivesy`, `\sevenbf`, `\seveni`,
`\sevenrm`, `\sevensy`, `\tenbf`, `\tenex`, `\tenit`, `\teni`, `\tenrm`,
`\tensl`, `\tensy`, `\tentt`

These commands cause TeX to typeset the following text in the specified
font. Normally you would enclose one of these font-selecting commands in
a group, together with the text to be set in the selected font. Outside
of a group a font-selecting command is effective until the end of the
document (unless you override it with another such command).
]],
  floatingpenalty = [[
This parameter specifies the penalty that TeX adds to `\insertpenalties`

when the page builder is adding an insertion to the current page and
discovers that a previous insertion of the same kind on this page has
been split, leaving part of it for subsequent pages. Plain TeX leaves
`\floatingpenalty` at 0.
]],
  fmtname = [[
`\fmtname`, `\fmtversion`

These commands produce the name and version number of the TeX format,
e.g., plain TeX or LaTeX, that you’re using.
]],
  folio = [[
This command produces the current page number, whose value is the number
$n$ contained in `\pageno`. If $n\ge0$, TeX produces $n$ as a decimal
number, while if $n<0$, TeX produces $-n$ in lowercase roman numerals.
]],
  font = [[
Used alone, the `\font` control sequence designates the current font.
`\font` isn’t a true command when it’s used alone, since it then can
appear only as an argument to another command.

For the other three forms of `\font`, `fontname` names a set of files
that define a font. These forms of `\font` are commands. Each of these
forms has two effects:

1.  It defines `control sequence` as a name that selects the font
    `fontname`, possibly magnified (see below).

2.  It causes TeX to load the font metrics file (.tfm file) for
    `fontname`.

The name of a font file usually indicates its design size. For example,
`cmr10` indicates Computer Modern roman with a design size of 10
points. The design size of a font is recorded in its metrics file.

If neither `scaled` `number` nor `at` `dimen` is present, the font is
used at its design size—the size at which it usually looks best.
Otherwise, a magnified version of the font is loaded:

-   If `scaled` `number` is present, the font is magnified by a factor
    of $\texttt{number}/1000$.

-   If `at` `dimen` is present, the font is scaled to `dimen` by
    magnifying it by $\texttt{dimen}/ds$, where $ds$ is the design size
    of `fontname`. `dimen` and $ds$ are nearly always given in points.

Magnifications of less than 1 are possible; they reduce the size.

You usually need to provide a shape file for each magnification of a
font that you load. However, some device drivers can utilize fonts that
are resident in a printer. Such fonts don’t need shape files.

See “TeX for the Impatient” and “TeX for the Impatient” for further
information.
]],
  fontdimen = [[
These parameters specify various dimensions associated with the font
named by the control sequence `font` (as distinguished from the
`fontname` that names the font files). Values of these parameters are
specified in the metrics file for `font`, but you can retrieve or change
their values during a TeX run. The numbers and meanings of the
parameters are:

TeX uses the slant per point for positioning accents. It uses the
interword parameters for producing interword spaces ) and the extra
space parameter for the additional space after a period). The values of
these parameters for the plain TeX fonts are enumerated on page 433 of
*The TeXbook*. Math symbol fonts have 15 additional parameters, which
we won’t discuss here.

Beware: assignments to these parameters are *not* undone at the end of a
group. If you want to change these parameters locally, you’ll need to
save and restore their original settings explicitly.
]],
  fontname = [[
This command produces the filename for `font`. The filename is the
`fontname` that was used to define `font`.
]],
  footnote = [[
`\footnote`, `\vfootnote`

These commands produce footnotes. `argument_1` is the “reference mark”
for the footnote and `argument_2` is its text. The text can be several
paragraphs long if necessary and can contain constructs such as math
displays, but it shouldn’t contain any insertions (such as other
footnotes).

You shouldn’t use these commands inside a subformula of a math formula,
in a box within a box being contributed to a page, or in an insertion of
any kind. If you’re unsure whether these restrictions apply, you can be
safe by only using `\footnote` and `\vfootnote` directly within a
paragraph or between paragraphs.

These restrictions aren’t as severe as they seem because you can use
`\vfootnote` to footnote most anything. Both `\footnote` and
`\vfootnote` insert the reference mark in front of the footnote itself,
but `\vfootnote` doesn’t insert the reference mark into the text. Thus,
when you use `\vfootnote` you can explicitly insert the reference mark
wherever it belongs without concern about the context and place the
`\vfootnote` in the next paragraph. If you find that the footnote lands
on the page following the one where it belongs, move the `\vfootnote`
back to the previous paragraph. There are rare circumstances where
you’ll need to alter the text of your document in order to get a
footnote to appear on the same page as its reference mark.
]],
  frenchspacing = [[
`\frenchspacing`, `\nonfrenchspacing`

TeX normally adjusts the spacing between words to account for
punctuation marks. For example, it inserts extra space at the end of a
sentence and adds some stretch to the glue following any punctuation
mark there. The `\frenchspacing` command tells TeX to make the interword
spacing independent of punctuation, while the `\nonfrenchspacing`
command tells TeX to use its normal spacing rules. If you don’t specify
`\frenchspacing`, you’ll get TeX’s normal spacing.

See in “TeX for the Impatient” for advice on how to control TeX’s
treatment of punctuation at the end of sentences.
]],
  futurelet = [[
This command tells TeX to make `token_2` the meaning of
`control sequence` (as would be done with `\let`), and then to process
`token_1` and `token_2` normally. `\futurelet` is useful at the end of
macro definitions because it gives you a way of looking beyond the token
that TeX is about to process before it processes it.
]],
  gdef = [[
This command is equivalent to `\global\def`.
]],
  global = [[
This command makes the following definition or assignment global so that
it becomes effective independent of group boundaries. You can apply a
`\global` prefix to any kind of definition or assignment, including a
macro definition or a register assignment.
]],
  globaldefs = [[
This parameter controls whether or not TeX takes definitions and other
assignments to be global:

-   If `\globaldefs` is zero (as it is by default), a definition is
    global if and only if it is preceded by `\global` either explicitly
    or implicitly. (The `\gdef` and `\xdef` commands have an implicit
    `\global` prefix).

-   If `\globaldefs` is greater than zero, all assignments and
    definitions are implicitly prefixed by `\global`.

-   If `\globaldefs` is less than zero, all `\global` prefixes are
    ignored.
]],
  goodbreak = [[
This command ends a paragraph and also indicates to TeX that this is a
good place to break the page.
]],
  halign = [[
This command produces a horizontal alignment consisting of a sequence of
rows, where each row in turn contains a sequence of column entries.
TeX adjusts the widths of the column entries to accommodate the widest
one in each column.

A horizontal alignment can only appear when TeX is in a vertical mode.
We recommend that you first study alignments in general before you
attempt to use this command.

An alignment consists of a preamble followed by the text to be aligned.
The preamble, which describes the layout of the rows that follow,
consists of a sequence of column templates, separated by ‘`&`’ and ended
by `\cr`. Each row consists of a sequence of column entries, also
separated by ‘`&`’ and ended by `\cr`. Within a template, ‘`#`’
indicates where TeX should insert the corresponding text of a column
entry. In contrast, `\settabs` uses a fixed implicit template of ‘`#`’,
i.e., it just inserts the text as is.

TeX typesets each column entry in restricted horizontal mode, i.e., as
the contents of an hbox, and implicitly encloses it in a group.

The `to` form of this command instructs TeX to make the width of the
alignment be `dimen`, adjusting the space between columns as necessary.
The `spread` form of this command instructs TeX to make the alignment
wider by `dimen` than its natural width. These forms are like the
corresponding forms of `\hbox` .

See `\tabskip` for an example using the `to` form.
]],
  hang = [[
This command indents the second and subsequent lines of a paragraph by
`\parindent`, the paragraph indentation . Since the first line is
already indented by `\parindent` (unless you’ve cancelled the
indentation with `\noindent`), the entire paragraph appears to be
indented by `\parindent`.
]],
  hangafter = [[
`\hangafter`, `\hangindent`

These two parameters jointly specify “hanging indentation” for a
paragraph. The hanging indentation indicates to TeX that certain lines
of the paragraph should be indented and the remaining lines should have
their normal width.

`\hangafter` determines which lines are indented, while `\hangindent`
determines the amount of indentation and whether it occurs on the left
or on the right:

-   Let $n$ be the value of `\hangafter`. If $n < 0$, the first $-n$
    lines of the paragraph will be indented. If $n\ge0$, all but the
    first $n$ lines of the paragraph will be indented.

-   Let $x$ be the value of `\hangindent`. If $x\ge0$, the lines will be
    indented by $x$ on the left. If $x<0$ the lines will be indented by
    $-x$ on the right.

When you specify hanging indentation, it applies only to the next
paragraph (if you’re in vertical mode) or to the current paragraph (if
you’re in horizontal mode). TeX uses the values of `\hangafter` and
`\hangindent` at the end of a paragraph, when it breaks that paragraph
into lines.

Unlike most of the other paragraph-shaping parameters, `\hangafter` and
`\hangindent` are reset to their default values at the start of each
paragraph, namely, 1 for `\hangafter` and 0 for `\hangindent`. If
you want to typeset a sequence of paragraphs with hanging indentation,
use `\everypar`.

If you specify `\hangafter` and `\hangindent` as well as `\parshape`,
TeX ignores the `\hangafter` and `\hangindent`.
]],
  hbadness = [[
`\hbadness`, `\vbadness`

These parameters specify the thresholds of horizontal and vertical
badness for reporting underfull or overfull boxes. `\hbadness` applies
to hboxes and `\vbadness` applies to vboxes. If the badness of a
constructed box exceeds the threshold, TeX will report an error. If you
raise the thresholds (the plain TeX defaults are both 1000), TeX will
be less likely to complain. Note that the settings of `\hbadness` and
`\vbadness` have no effect on the appearance of your typeset document;
they only affect the error messages that you get. See page 302 of *The
TeXbook* for a precise description of how TeX decides when to complain
about an overfull or underfull box.
]],
  hbox = [[
This command produces an hbox (horizontal box) containing
`horizontal mode material`. The braces around `horizontal mode material`
define a group. TeX doesn’t break the `horizontal mode material` into
lines, since it’s in restricted horizontal mode when it’s assembling the
box. TeX won’t change the size of the box once it’s been produced.

`\hbox` is often useful when you want to keep some text all on one line.
If your use of `\hbox` prevents TeX from breaking lines in an acceptable
way, TeX will complain about an overfull hbox.

The width of the hbox depends on the arguments to `\hbox`:

-   If you specify only `horizontal mode material`, the hbox will have
    its natural width.

-   If you specify `to` `dimen`, the width of the hbox will be `dimen`.

-   If you specify `spread` `dimen`, the width of the hbox will be its
    natural width plus `dimen`, i.e., the hbox will be spread out by
    `dimen`.

The `\hfil` command is useful for filling out an hbox with empty space
when the material in the box isn’t as wide as the width of the box.
]],
  hfil = [[
`\hfill`, `\hfil`, `\vfill`, `\vfil`

These commands produce infinitely stretchable horizontal and vertical
glue that overwhelms any finite stretch that may be present. `\hfil` and
`\hfill` produce horizontal glue, while `\vfil` and `\vfill` produce
vertical glue.

`\hfill` is infinitely larger than `\hfil`. If both `\hfill` and `\hfil`
appear in the same box, the `\hfill` will consume all the available
extra space and the `\hfil` will be effectively ignored. `\hfill` can in
turn be overwhelmed by `\hskip 0pt plus 1filll`. The glue produced by
`\hfil` and `\hfill` never shrinks.

The behavior of `\vfil` and `\vfill` is analogous.
]],
  hfilneg = [[
`\hfilneg`, `\vfilneg`

These commands cancel the effect of a preceding `\hfil` or `\vfil`.
While `\hfil` and `\vfil` produce infinitely stretchable positive glue,
`\hfilneg` and `\vfilneg` produce infinitely stretchable negative glue.
(Thus, $n$ `\hfilneg`s cancel $n$ `\hfil`s, and similarly for
`\vfilneg`.) The main use of `\hfilneg` and `\vfilneg` is to counteract
the effect of an `\hfil` or `\vfil` inserted by a macro.

`\hfilneg` and `\vfilneg` have the curious property that if they are the
only infinitely stretchable glue in a box, they produce exactly the same
effect as `\hfil` and `\vfil`.
]],
  hfuzz = [[
`\hfuzz`, `\vfuzz`

These parameters specify the amount that a box can exceed its natural
size before TeX considers it to be overfull. `\hfuzz` applies to hboxes
and `\vfuzz` applies to vboxes. Plain TeX sets both parameters to
`0.1pt`.
]],
  hglue = [[
`\hglue`, `\vglue`

The `\hglue` command produces horizontal glue that won’t disappear at a
line break; the `\vglue` command produces vertical glue that won’t
disappear at a page break. In other respects these commands are just
like `\hskip` and `\vskip`. You can use `\vglue` to produce blank space
at the top of a page, e.g., above a title on the first page of a
document, but `\topglue` (next) is usually better for this purpose.
]],
  hidewidth = [[
This command tells TeX to ignore the width of the next column entry in a
horizontal alignment. It’s useful when you have an entry that is longer
than most of the others in the same column, and you’d rather have that
entry stick out of the column than make all the entries in the column
wider. If the `\hidewidth` is at the left of the entry, the entry sticks
out to the left; if the `\hidewidth` is at the right of the entry, the
entry sticks out to the right.
]],
  hoffset = [[
`\hoffset`, `\voffset`

TeX normally takes the “origin” of a page, that is, the point where it
starts printing, as being one inch down from the top of the page and one
inch to the right of the left end of the page.[1] The values of
`\hoffset` and `\voffset` give the horizontal and vertical offset of the
actual origin from this point. Thus if `\hoffset` and `\voffset` are
both zero, TeX uses its normal origin.

[1] TeX itself is indifferent to where the origin of the page is, but
this information has to be built into the device drivers

that convert .dvi files into printable form so that different devices
will yield the same results.
]],
  holdinginserts = [[
If this parameter is greater than 0 when TeX is processing a page
break, TeX will refrain from processing insertions. Setting this
parameter to 1 can be useful when you’re writing an output routine
that needs to reprocess the contents of the page, e.g., an output
routine that uses a value of `\vsize` different from the one used by the
page builder.
]],
  hphantom = [[
`\hphantom`, `\vphantom`

These commands produce phantom boxes that don’t print anything:

-   `\hphantom` produces a box with the same width as `argument` but
    zero height and depth.

-   `\vphantom` produces a box with the same height and depth as
    `argument` but zero width.

Their main purpose is to force a subformula to have a certain minimum
horizontal or vertical dimension.
]],
  hrule = [[
`\hrule`, `\vrule`

The `\hrule` command produces a horizontal rule; the `\vrule` command
produces a vertical rule. You can specify any or all of the width,
height, and depth of the rule—TeX supplies default values for those that
you omit. You can give the dimensions of the rule in any order; the
forms listed above show just two of the possible combinations. You can
even give a dimension of a given kind more than once—if you do, the last
one is the one that counts.

If you don’t specify the width of a horizontal rule, the rule is
extended horizontally to the boundaries of the innermost box or
alignment that contains the rule. If you don’t specify the height of a
horizontal rule, it defaults to `0.4pt`; if you don’t specify the depth
of a horizontal rule, it defaults to `0pt`.

If you don’t specify the width of a vertical rule, it defaults to
`0.4pt`. If you don’t specify the height or the depth of a vertical
rule, the rule is extended to the boundary of the innermost box or
alignment that contains the rule.

TeX treats a horizontal rule as an inherently vertical item and a
vertical rule as an inherently horizontal item. Thus a horizontal rule
is legal only in a vertical mode, while a vertical rule is legal only in
a horizontal mode.

If this seems surprising, visualize it—a horizontal rule runs from left
to right and separates vertical items in a sequence, while a vertical
rule runs up and down and separates horizontal items in a sequence.
]],
  hsize = [[
This parameter specifies the current line length. See in “TeX for the
Impatient” for a more complete explanation.
]],
  hskip = [[
`\hskip`, `\vskip`

These commands produce horizontal and vertical glue respectively. In the
simplest and most common case when only `dimen_1` is present, `\hskip`
skips to the right by `dimen_1` and `\vskip` skips down the page by
`dimen_1`. More generally, these commands produce glue whose natural
size is `dimen_1`, whose stretch is `dimen_2`, and whose shrink is
`dimen_3`. Either the `plus` `dimen_2`, the `minus ``dimen_3`, or both
can be omitted. If both are present, the `plus` must come before the
`minus`. An omitted value is taken to be zero. Any of the `dimen`s can
be negative.

You can use `\hskip` in math mode, but you can’t use `mu` units for any
of the dimensions. If you want `mu` units, use `\mskip` instead.
]],
  hss = [[
`\hss`, `\vss`

These commands produce horizontal and vertical glue that is both
infinitely stretchable and infinitely shrinkable. The glue can shrink to
a negative distance, producing the effect of backspacing along a line
(for `\hss`) or moving back up a page (for `\vss`).
]],
  ht = [[
`\dp`, `\ht`, `\wd`

These parameters refer to the height, depth, and width respectively of
box register `register`. You can use them to find out the dimensions of
a box. You can also change the dimensions of a box, but it’s a tricky
business; if you want to be adventurous you can learn all about it from
pages 388–389 of *The TeXbook*.
]],
  hyphenchar = [[
TeX doesn’t necessarily use the ‘-’ character at hyphenation points.
Instead, it uses the `\hyphenchar` of the current font, which is usually
‘-’ but need not be. If a font has a negative `\hyphenchar` value,
TeX won’t hyphenate words in that font.

Note that `font` is a control sequence that names a font, not a
`fontname` that names font files. Beware: an assignment to `\hyphenchar`
is *not* undone at the end of a group. If you want to change
`\hyphenchar` locally, you’ll need to save and restore its original
value explicitly.
]],
  hyphenpenalty = [[
This parameter specifies the penalty that TeX attaches to a breakpoint
at an implicit hyphen. Implicit hyphens can come from TeX’s hyphenation
dictionary or from discretionary hyphens that you’ve inserted with
`\-` .

Increasing this parameter has the effect of discouraging TeX from
hyphenating words. Plain TeX sets `\hyphenpenalty` to 50.
]],
  i = [[
`\i` (ı), `\j` (ȷ)

These commands produce dotless versions of the letters ‘i’ and ‘j’. You
should use them instead of the ordinary ‘i’ and ‘j’ when you are putting
an accent above those letters in ordinary text.

Use the `\imath` and `\jmath` commands for dotless ‘i’s and ‘j’s in math
formulas.
]],
  ialign = [[
This command behaves just like `\halign`, except that it first sets the
`\tabskip` glue to zero and sets `\everycr` empty.
]],
  ["if"] = [[
=1em This command tests if `token_1` and `token_2` have the same
character code, independent of their category codes. Before performing
the test, TeX expands tokens following the `\if` until it obtains two
tokens that can’t be expanded further. These two tokens become `token_1`
and `token_2`. The expansion includes replacing a control sequence
`\let` equal to a character token by that character token. A control
sequence that can’t be further expanded is considered to have character
code 256.
]],
  ifcat = [[
This command tests if `token_1` and `token_2` have the same category
code. Before performing the test, TeX expands tokens following the
`\ifcat` until it obtains two tokens that can’t be expanded further.
These two tokens become `token_1` and `token_2`. The expansion includes
replacing a control sequence `\let` equal to a character token by that
character token. A control sequence that can’t be further expanded is
considered to have category code 16.
]],
  ifdim = [[
This command tests if `dimen_1` and `dimen_2` satisfy `relation`, which
must be either ‘`<`’, ‘`=`’, or ‘`>`’. The dimensions can be constants
such as `1in`, dimension registers such as `\dimen6`, or dimension
parameters such as `\parindent`. Before performing the test, TeX expands
tokens following the `\ifdim` until it obtains a sequence of tokens
having the form `dimen_1` `relation` `dimen_2`, followed by a token that
can’t be part of `dimen_2`.
]],
  ifeof = [[
This command tests an input stream for end of file. It is true if input
stream `number` has not been opened, or has been opened and the
associated file has been entirely read in (or doesn’t exist).
]],
  ifhbox = [[
`\ifhbox`, `\ifvbox`, `\ifvoid`

These commands test the contents of the box register numbered
`register`. Let `register` be $n$. Then:

-   `\ifhbox` is true if `\box`$\,n$ is an hbox.

-   `\ifvbox` is true if `\box`$\,n$ is an vbox.

-   `\ifvoid` is true if `\box`$\,n$ is void, i.e, doesn’t have a box in
    it.
]],
  ifhmode = [[
`\ifhmode`, `\ifinner`, `\ifmmode`, `\ifvmode`

These commands test what mode TeX is in:

-   `\ifhmode` is true if TeX is in ordinary or restricted horizontal
    mode.

-   `\ifvmode` is true if TeX is in ordinary or internal vertical mode.

-   `\ifmmode` is true if TeX is in text math or display math mode.

-   `\ifinner` is true if TeX is in an “internal” mode: restricted
    horizontal, internal vertical, or text math.
]],
  ifnum = [[
This command tests if `number_1` and `number_2` satisfy `relation`,
which must be either ‘`<`’, ‘`=`’, or ‘`>`’. The numbers can be
constants such as `127`, count registers such as `\pageno` or
`\count22`, or numerical parameters such as `\hbadness`. Before
performing the test, TeX expands tokens following the `\ifnum` until it
obtains a sequence of tokens having the form `number_1` `relation`
`number_2`, followed by a token that can’t be part of `number_2`.
]],
  ifodd = [[
This command tests if `number` is odd. Before performing the test,
TeX expands tokens following the `\ifodd` until it obtains a sequence of
tokens having the form `number`, followed by a token that can’t be part
of `number`.
]],
  iftrue = [[
`\iffalse`, `\iftrue`

These commands are equivalent to tests that are always true or always
false. The main use of these commands is in defining macros that keep
track of the result of a test.
]],
  ifx = [[
This command tests if `token_1` and `token_2` agree. Unlike `\if` and
`\ifcat`, `\ifx` does *not* expand the tokens following `\ifx`, so
`token_1` and `token_2` are the two tokens immediately after `\ifx`.
There are three cases:

1.  If one token is a macro and the other one isn’t, the tokens don’t
    agree.

2.  If neither token is a macro, the tokens agree if:

    1.  both tokens are characters (or control sequences denoting
        characters) and their character codes and category codes agree,
        or

    2.  both tokens refer to the same TeX command, font, etc.

3.  If both tokens are macros, the tokens agree if:

    1.  their “first level” expansions, i.e., their replacement texts,
        are identical, and

    2.  they have the same status with respect to `\long` and `\outer`.

    Note in particular that *any two undefined control sequences agree*.

This test is generally more useful than `\if`.
]],
  ignorespaces = [[
This command tells TeX to read and expand tokens until it finds one that
is not a space token, ignoring any space tokens that it finds on the
way. `\ignorespaces` is often useful at the end of a macro as a way of
making the macro insensitive to any spaces or ends of line that might
follow calls on it. (An empty line after `\ignorespaces` still produces
a `\par` token, however.)
]],
  immediate = [[
This command should precede an `\openout`, `\closeout`, or `\write`.

It tells TeX to perform the specified file operation without delay.
]],
  indent = [[
If TeX is in vertical mode, as it is after ending a paragraph, this
command inserts the `\parskip` interparagraph glue, puts TeX into
horizontal mode, starts a paragraph, and indents that paragraph by
`\parindent`. If TeX is already in horizontal mode, this command merely
produces a blank space of width `\parindent`. Two `\indent`s in a row
produce two indentations.

As the example below shows, an `\indent` at a point where TeX would
start a paragraph anyway is redundant. When TeX is in vertical mode and
sees a letter or some other inherently horizontal command, it starts a
paragraph by switching to horizontal mode, doing an `\indent`, and
processing the horizontal command.
]],
  infty = [[
`\Im` (ℑ), `\Re` (ℜ), `\Vert` (‖), `\aleph` (ℵ), `\angle` (∠),
`\backslash` (∖), `\bot` (⊥), `\clubsuit` (♣), `\diamondsuit` (♢),
`\ell` (ℓ), `\emptyset` (∅), `\exists` (∃), `\flat` (♭), `\forall` (∀),
`\hbar` (ℏ), `\heartsuit` (♡), `\imath` (𝚤), `\infty` (∞), `\jmath` (𝚥),
`\lnot` (¬), `\nabla` (∇), `\natural` (♮), `\neg` (¬), `\partial` (∂),
`\prime`, `\sharp` (♯), `\spadesuit` (♠), `\surd`, `\top` (⊤),
`\triangle` (△), `\vert`, `\wp` (℘)

These commands produce various symbols. They are called “ordinary
symbols” to distinguish them from other classes of symbols such as
relations. You can only use an ordinary symbol within a math formula, so
if you need an ordinary symbol within ordinary text you must enclose it
in dollar signs (`$`).

The commands `\imath` and `\jmath` are useful when you need to put an
accent on top of an ‘$i$’ or a ‘$j$’.

An apostrophe (`'`) is a short way of writing a superscript `\prime`.
(The `\prime` command by itself generates a big ugly prime.)

The `\|` and `\Vert` commands are synonymous, as are the `\neg` and
`\lnot` commands.

The `\vert` command produces the same result as ‘`|`’.

The symbols produced by `\backslash`, `\vert`, and `\Vert` are
delimiters. These symbols can be produced in larger sizes by using
`\bigm` et al.
]],
  input = [[
This command tells TeX to read its input from file `filename`. When that
file is exhausted, TeX returns to reading from its previous input
source. You can nest input files to any level you like (within reason).

When you’re typesetting a large document, it’s usually a good idea to
structure your main file as a sequence of `\input` commands that refer
to the subsidiary parts of the document. That way you can process the
individual parts easily as you’re working on drafts. It’s also a good
practice to put all of your macro definitions into a separate file and
summon that file with an `\input` command as the first action in your
main file.

TeX uses different rules for scanning file names than it does for
scanning tokens in general). If your implementation expects file names
to have extensions (usually indicated by a preceding dot), then
TeX provides a default extension of `.tex`.
]],
  inputlineno = [[
This command yields a number (not a string) giving the line number of
the current line, defined to be the number that would appear in an error
message if an error occurred at this point.
]],
  insert = [[
This primitive command provides the underlying mechanism for
constructing insertions, but it is hardly ever used outside of a macro
definition. The definitions of the `\footnote`, `\vfootnote`,
`\topinsert`, `\midinsert`, and `\pageinsert` commands are all built
around `\insert`.

When you design insertions for a document, you should assign a different
integer code[1] $n$ to each kind of insertion, using the `\newinsert`
command to obtain the integer codes. The `\insert` command itself
appends the `vertical mode material` to the current horizontal or
vertical list. Your output routine is responsible for moving the
inserted material from where it resides in `\box`$\,n$ to an output
page.

TeX groups together all insertions having the same code number. Each
insertion code $n$ has four registers associated with it:

-   `\box`$\,n$ is where TeX accumulates the material for insertions
    with code $n$. When TeX breaks a page, it puts into `\box`$\,n$ as
    much insertion $n$ material as will fit on the page. Your output
    routine should then move this material to the actual page. You can
    use `\ifvoid` to test if there is any material in `\box`$\,n$. If
    not all the material fits, TeX saves the leftovers for the next
    page.

-   `\count`$\,n$ is a magnification factor $f.$ When TeX is computing
    the vertical space occupied on the page by insertion $n$ material,
    it multiplies the vertical extent of this material by $f/1000$. Thus
    you would ordinarily set $f$ to 500 for a double-column insertion
    and to 0 for a marginal note.

-   `\dimen`$\,n$ specifies the maximum amount of insertion $n$ material
    that TeX will put on a single page.

-   `\skip`$\,n$ specifies extra space that TeX allocates on the page if
    the page contains any insertion $n$ material. This space is in
    addition to the space occupied by the insertion itself. For example,
    it would account for the space on a page above the footnotes (if
    there are any).

TeX sets `\box`$\,n$, and you should set the other three registers so
that TeX can correctly compute the vertical space required by the
insertion. See pages 122–125 of *The TeXbook* for further details of how
TeX processes this command and of how insertions interact with page
breaking.

[1] *The TeXbook* uses the term “class” for a code. We use a different
term to avoid confusion with the other meaning of “class”.
]],
  insertpenalties = [[
This parameter contains the sum of certain penalties that
TeX accumulates as it is placing insertions onto the current page. These
penalties are incurred when TeX is processing an `\insert` command and
discovers that a previous insertion of the same kind on this page has
been split, leaving part of it for subsequent pages. See pages 123–125
of *The TeXbook* for the details of this calculation.

`\insertpenalties` has an entirely different meaning during an

output routine—it’s the number of insertions that have been seen but
that don’t fit on the current page (see page 125 of *The TeXbook*).
]],
  interlinepenalty = [[
This parameter specifies the penalty for breaking a page between the
lines of a paragraph. By setting it to 10000 you can force all page
breaks to occur between paragraphs, provided that the pages have enough
stretch so that TeX can still compose them decently. Plain TeX leaves
`\interlinepenalty` at 0.
]],
  item = [[
`\itemitem`, `\item`

These commands are useful for creating itemized lists. The entire
paragraph following `argument` is indented by `\parindent`

(for `\item`) or by `2\parindent` (for `\itemitem`). (See in “TeX for
the Impatient” for an explanation of `\parindent`.) Then `argument`,
followed by an en space, is placed just to the left of the text of the
first line of the paragraph so that it falls within the paragraph
indentation as specified by `\parindent`.

If you want to include more than one paragraph in an item, put `\item{}`
in front of the additional paragraphs.
]],
  itfam = [[
`\bffam`, `\itfam`, `\slfam`, `\ttfam`

These commands define type families for use in math mode. Their
principal use is in defining the `\it`, `\bf`, `\sl`, and `\tt` commands
so that they work in math mode.
]],
  jobname = [[
This command produces the base name of the file with which TeX was
invoked. For example, if your main input file is `hatter.tex`,
`\jobname` will expand to `hatter`. `\jobname` is most useful when
you’re creating an auxiliary file to be associated with a document.
]],
  jot = [[
This parameter defines a distance that is equal to three points (unless
you change it). The `\jot` is a convenient unit of measure for opening
up math displays.
]],
  kern = [[
The effect of this command depends on the mode that TeX is in when it
encounters it:

-   In a horizontal mode, TeX moves its position to the right (for a
    positive kern) or to the left (for a negative kern).

-   In a vertical mode, TeX moves its position down the page (for a
    positive kern) or up the page (for a negative kern).

Thus a positive kern produces empty space while a negative kern causes
TeX to back up over something that it’s already produced. This notion of
a kern is different from the notion of a kern in some computerized
typesetting systems—in TeX, positive kerns push two letters *apart*
instead of bringing them closer together.

A kern is similar to glue, except that (a) a kern can neither stretch
nor shrink, and (b) TeX will only break a line or a page at a kern if
the kern is followed by glue and is not part of a math formula. If
TeX finds a kern at the end of a line or a page, it discards the kern.
If you want to get the effect of a kern that never disappears, use
`\hglue` or `\vglue`.

You can use `\kern` in math mode, but you can’t use `mu` units for
`dimen`. If you want `mu` units, use `\mkern` instead.
]],
  language = [[
Different languages have different sets of hyphenation rules. This
parameter determines the set of hyphenation rules that TeX uses. By
changing `\language` you can get TeX to hyphenate portions of text or
entire documents according to the hyphenation rules appropriate to a
particular language.

Your local information about TeX will tell you if any additional sets of
hyphenation rules are available (besides the ones for English) and what
the appropriate values of `\language` are. The default value of
`\language` is 0.

TeX sets the current language to 0 at the start of every paragraph,
and compares `\language` to the current language whenever it adds a
character to the current paragraph. If they are not the same, TeX adds a
whatsit indicating the language change. This whatsit is the clue in
later processing that the language rules should change.
]],
  lastkern = [[
`\lastbox`, `\lastkern`, `\lastpenalty`, `\lastskip`

These control sequences yield the value of the last item on the current
list. They aren’t true commands because they can only appear as part of
an argument. If the last item on the list isn’t of the indicated type,
they yield a zero value (or an empty box, in the case of `\lastbox`).
For example, if the last item on the current list is a kern, `\lastkern`
yields the dimension of that kern; if it isn’t a kern, it yields a
dimension of 0.

Using `\lastbox` has the additional effect of removing the last box from
the list. If you want the original `\lastbox` to remain on the list, you
have to add a copy of it to the list. `\lastbox` is not permitted in a
math list or in the main vertical list.

These control sequences are most useful after macro calls that might
have inserted entities of the indicated kinds.
]],
  lbrace = [[
`\langle` (⟨), `\lbrace`, `\lbrack`, `\lceil` (⌈), `\lfloor` (⌊),
`\rangle` (⟩), `\rbrace`, `\rbrack`, `\rceil` (⌉), `\rfloor` (⌋)

These commands produce left and right delimiters. Mathematicians use
delimiters to indicate the boundaries between parts of a formula. Left
delimiters are also called “openings”, and right delimiters are also
called “closings”. Openings and closings are two of TeX’s classes of
math symbols. TeX puts different amounts of space around different
classes of math symbols. You might expect the space that TeX puts around
openings and closings to be symmetrical, but in fact it isn’t.

Some left and right delimiters have more than one command that you can
use to produce them:

-   ‘$\{$’ (`\lbrace` and `\{`)

-   ‘$\}$’ (`\rbrace` and `\}`)

-   ‘$[$’ (`\lbrack` and ‘`[`’)

-   ‘$]$’ (`\rbrack` and ‘`]`’)

You can also use the left and right bracket characters (in either form)
outside of math mode.

In addition to these commands, TeX treats ‘`(`’ as a left delimiter and
‘`)`’ as a right delimiter.

You can have TeX choose the size for a delimiter by using `\left` and
`\right`. Alternatively, you can get a delimiter of a specific size by
using one of the `\big`$x$ commands).
]],
  lccode = [[
`\lccode`, `\uccode`

The `\lccode` and `\uccode` values for the 256 possible input
characters specify the correspondence between the lowercase and
uppercase forms of letters. These values are used by the `\lowercase`
and `\uppercase` commands respectively and by TeX’s hyphenation
algorithm.

TeX initializes the values of `\lccode` and `\uccode` as follows:

-   The `\lccode` of a lowercase letter is the ASCII code for that
    letter.

-   The `\lccode` of an uppercase letter is the ASCII code for the
    corresponding lowercase letter.

-   The `\uccode` of an uppercase letter is the ASCII code for that
    letter.

-   The `\uccode` of a lowercase letter is the ASCII code for the
    corresponding uppercase letter.

-   The `\lccode` and `\uccode` of a nonletter are both zero.

Most of the time there’s no reason to change these values, but you might
want to change them if you’re using a language that has more letters
than English.
]],
  ldots = [[
`\cdots` (⋯), `\ldots` (…)

These commands produce three dots in a row. For `\ldots`, the dots are
on the baseline; for `\cdots`, the dots are centered with respect to the
axis).
]],
  leaders = [[
`\cleaders`, `\leaders`, `\xleaders`

These commands produce leaders, i.e., they fill a horizontal or vertical
space with copies of a pattern . The `box` or `rule` specifies a leader,
i.e., a single copy of the pattern, while the `skip command` specifies a
window to be filled with a row or a column of the leaders. The pattern
is repeated as many times as will fit into the window. If `skip command`
is a horizontal skip, the window contains a row of leaders and TeX must
be in a horizontal mode; if `skip command` is a vertical skip, the
window contains a column of leaders and TeX must be in a vertical mode.

The commands differ in how they arrange the repeated pattern in the
space and where they put any leftover space:

-   For `\leaders`, TeX aligns a row of leaders with the left end of the
    innermost box $B$ that is to contain the result of the `\leaders`
    command. It aligns a column of leaders with the top of $B$. Those
    leaders that fall entirely within the window are retained. Any
    leftover space at the top and bottom of the window is left empty.

-   For `\cleaders`, the leaders are centered within the window.

-   For `\xleaders` the pattern is uniformly distributed throughout the
    window. If the leftover space is $l$ and the leader is repeated $n$
    times, TeX puts space of width or height $l/(n+1)$ between adjacent
    leaders and at the two ends (left and right or top and bottom) of
    the leaders.
]],
  left = [[
`\left`, `\right`

These commands must be used together in the pattern:

This construct causes TeX to produce `subformula`, enclosed in the
delimiters `delim_1` and `delim_2`. The vertical size of the delimiter
is adjusted to fit the vertical size (height plus depth) of
`subformula`. `delim_1` and `delim_2` need not correspond. For instance,
you could use ‘`]`’ as a left delimiter and ‘`(`’ as a right delimiter
in a single use of `\left` and `\right`.

`\left` and `\right` have the important property that they define a
group, i.e., they act like left and right braces. This grouping property
is particularly useful when you put `\over` or a related command between
`\left` and `\right`, since you don’t need to put braces around the
fraction constructed by `\over`.

If you want a left delimiter but not a right delimiter, you can use
‘`.`’ in place of the delimiter you don’t want and it will turn into
empty space (of width `\nulldelimiterspace`).
]],
  leftarrow = [[
`\Downarrow` (⇓), `\Leftarrow` (⇐), `\Leftrightarrow` (⇔),
`\Longleftarrow` (⇐), `\Longleftrightarrow` (⇔), `\Longrightarrow` (⇒),
`\Rightarrow` (⇒), `\Uparrow` (⇑), `\Updownarrow` (⇕), `\downarrow` (↓),
`\gets` (←), `\hookleftarrow` (↩), `\hookrightarrow` (↪), `\leftarrow`
(←), `\leftharpoondown` (↽), `\leftharpoonup` (↼), `\leftrightarrow`
(↔), `\longleftarrow` (←), `\longleftrightarrow` (↔), `\longmapsto` (↦),
`\longrightarrow` (→), `\mapsto` (↦), `\nearrow` (↗), `\nwarrow` (↖),
`\rightarrow` (→), `\rightharpoondown` (⇁), `\rightharpoonup` (⇀),
`\rightleftharpoons` (⇌), `\searrow` (↘), `\swarrow` (↙), `\to` (→),
`\uparrow` (↑), `\updownarrow` (↕)

These commands provide arrows of different kinds. They are classified as
relations. The vertical arrows in the list are also delimiters, so you
can make them larger by using `\big` et al.

The command `\iff` differs from `\Longleftrightarrow` in that it
produces extra space to the left and right of the arrow.

You can place symbols or other legends on top of a left or right arrow
with `\buildrel`.
]],
  leftarrowfill = [[
`\leftarrowfill`, `\rightarrowfill`

These commands fill the enclosing horizontal space with left-pointing or
right-pointing arrows.
]],
  lefthyphenmin = [[
`\lefthyphenmin`, `\righthyphenmin`

These parameters specify the smallest word fragments that TeX allows at
the left and at the right end of a hyphenated word. Plain TeX defaults
them to 2 and 3 respectively; these are the recommended values for
English.
]],
  leftskip = [[
`\leftskip`, `\rightskip`

These parameters tell TeX how much glue to place at the left and at the
right end of each line of the current paragraph. We’ll just explain how
`\leftskip` works since `\rightskip` is analogous.

You can increase the left margin by setting `\leftskip` to a fixed
nonzero dimension. If you give `\leftskip` some stretch, you can produce
ragged left text, i.e., text that has an uneven left margin.

Ordinarily, you should enclose any assignment to `\leftskip` in a group
together with the affected text in order to keep its effect from
continuing to the end of your document. However, it’s pointless to
change `\leftskip`’s value inside a group that is in turn contained
within a paragraph—the value of `\leftskip` at the *end* of a paragraph
is what determines how TeX breaks the paragraph into lines.
]],
  let = [[
This command causes `control sequence` to acquire the current meaning of
`token`. Even if you redefine `token` later, the meaning of
`control sequence` will not change. Although `token` is most commonly a
control sequence, it can also be a character token.
]],
  lgroup = [[
`\lgroup`, `\rgroup`

These commands produce large left and right parentheses that are defined
as opening and closing delimiters. The smallest available size for these
delimiters is `\Big`. If you use smaller sizes, you’ll get weird
characters.
]],
  limits = [[
In text style, TeX normally places limits after a large operator. This
command tells TeX to place limits above and below a large operator
rather than after it.

If you specify more than one of `\limits`, `\nolimits`, and
`\displaylimits`, the last command rules.
]],
  line = [[
This command produces an hbox containing `argument`. The hbox is exactly
as wide as the current line, i.e., it extends from the right margin to
the left margin.
]],
  linepenalty = [[
This parameter specifies the penalty that TeX assesses for each line
break when it is breaking a paragraph into lines. The penalty is
independent of where the line break occurs. Increasing the value of this
parameter causes TeX to try harder to set a paragraph with a minimum
number of lines, even at the cost of other aesthetic considerations such
as avoiding overly tight interword spacing. Demerits are in units of
badness squared, so you need to assign a rather large value to this
parameter (in the thousands) for it to have any effect. Plain TeX sets
`\linepenalty` to 10.
]],
  llap = [[
`\llap`, `\rlap`

These commands enable you to produce text that overlaps whatever happens
to be to the left or to the right of the current position. `\llap`
backspaces by the width of `argument` and then typesets `argument`.
`\rlap` is similar, except that it typesets `argument` first and then
backspaces. `\llap` and `\rlap` are useful for placing text outside of
the current margins. Both `\llap` and `\rlap` do their work by creating
a box of zero width.

You can also use `\llap` or `\rlap` to construct special characters by
overprinting, but don’t try it unless you’re sure that the characters
you’re using have the same width (which is the case for a monospaced
font such as `cmtt10`, the Computer Modern 10-point typewriter font).
]],
  long = [[
This command is used as a prefix to a macro definition. It tells
TeX that the arguments to the macro are permitted to include `\par`
tokens, which normally indicate the end of a paragraph.

If TeX tries to expand a macro defined without `\long` and any of the
macro’s arguments include a `\par` token, TeX will complain about a
runaway argument. The purpose of this behavior is to provide you with
some protection against unterminated macro arguments. `\long` gives you
a way of bypassing the protection.
]],
  loop = [[
`\loop`, `\repeat`

These commands provide a looping construct for TeX. Here $\alpha$ and
$\beta$ are arbitrary sequences of commands and  is any of the
conditional tests described in “TeX for the Impatient”, Conditional
tests,conds. The `\repeat` replaces the `\fi` corresponding to the test,
so you must not write an explicit `\fi` to terminate the test. Nor,
unfortunately, can you associate an `\else` with the test. If you want
to use the test in the opposite sense, you need to rearrange the test or
define an auxiliary test with `\newif` (see above) and use that test in
the sense you want (see the second example below).

TeX expands `\loop` as follows:

1.  $\alpha$ is expanded.

2.  is performed. If the result is false, the loop is terminated.

3.  $\beta$ is expanded.

4.  The cycle is repeated.
]],
  looseness = [[
This parameter gives you a way to change the total number of lines in a
paragraph from what they optimally would be. `\looseness` is so named
because it’s a measure of how loose the paragraph is, i.e., how much
extra space there is in it.

Normally, `\looseness` is 0 and TeX chooses line breaks in its usual
way. But if `\looseness` is, say, 3, TeX does the following:

1.  It chooses line breaks normally, resulting in a paragraph of $n$
    lines.

2.  It discards these line breaks and tries to find a new set of line
    breaks that gives the paragraph $n+3$ lines. (Without the previous
    step, TeX wouldn’t know the value of $n$.)

3.  If the previous attempt results in lines whose badness exceeds
    `\tolerance`,

    it tries to get $n+2$ lines—and if that also fails, $n+1$ lines, and
    finally $n$ lines again.

Similarly, if looseness is $-n$, TeX attempts to set the paragraph with
$n$ fewer lines than normal. The easiest way for TeX to make a paragraph
one line longer is to put a single word on the excess line. You can
prevent this by putting a tie between the last two words of the
paragraph.

Setting `\looseness` is the best way to force a paragraph to occupy a
given number of lines. Setting it to a negative value is useful when
you’re trying to increase the amount of text you can fit on a page.
Similarly, setting it to a positive value is useful when you’re trying
to decrease the amount of text on a page.

TeX sets `\looseness` to 0 when it ends a paragraph, after breaking
the paragraph into lines. If you want to change the looseness of several
paragraphs, you must do it individually for each one or put the change
into `\everypar` .
]],
  lower = [[
`\lower`, `\raise`

These commands move `box` up or down by `dimen` (which can be negative).
You can only apply `\raise` and `\lower` to a box that’s in a horizontal
list.
]],
  lowercase = [[
`\lowercase`, `\uppercase`

These commands convert the letters in `token list`, i.e., those tokens
with category code 11, to their lowercase and uppercase forms. The
conversion of a letter is defined by its `\lccode` (for lowercase) or
`\uccode` (for uppercase) table value. Tokens in the list that are not
letters are not affected—even if the tokens are macro calls or other
commands that expand into letters.
]],
  lq = [[
`\P` (¶), `\S` (§), `\copyright` (©), `\dag`, `\ddag`, `\lbrack`, `\lq`
(‘), `\rbrack`, `\rq` (’)

These commands produce various special characters and marks. The first
five commands are necessary because TeX by default attaches special
meanings to the characters (`#`, `$`, `%`, `&`, `_`). You needn’t be in
math mode to use these commands.

You can use the dollar sign in the Computer Modern italic fonts to get
the pound sterling symbol, as shown in the example below.
]],
  magnification = [[
`\magnification`, `\mag`

An assignment to `\magnification` establishes the “scale factor” $f$
that determines the magnification ratio of your document . The
assignment to `\magnification` must occur before the first page of your
document has been shipped out.

The assignment sets $f$ to `number` and also sets `\hsize` and `\vsize`

respectively to `6.5true in` and `8.9true in`, the values appropriate
for an $8 \frac1/2$- by-11-inch page. $f$ must be between 0 and
32768. The magnification ratio of the document is $f/1000$. A scale
factor of 1000 provides unit magnification, i.e., it leaves the size
of your document unchanged. It’s customary to use powers of $1.2$ as
scale factors, and most libraries of fonts are based on such factors.
You can use the `\magstep` and `\magstephalf` commands to specify
magnifications by these factors.

`\magnification` is not a parameter. You can’t use it to *retrieve* the
scale factor. If you write something like `\dimen0 = \magnification`,
TeX will complain about it.

The `\mag` parameter contains the scale factor. Changing the value of
`\mag` rescales the page dimensions, which is not usually what you want.
Therefore it’s usually better to change the magnification by assigning
to `\magnification` rather than to `\mag`.
]],
  magstep = [[
This command expands to the magnification ratio needed to magnify
everything in your document (other than `true` dimensions) by $1.2^r$,
where $r$ is the value of `number`. `number` must be between 0 and
5.
]],
  magstephalf = [[
This command expands to the magnification ratio needed to magnify
everything in your document (other than `true` dimensions) by
$\sqrt{1.2}$, i.e., halfway between 1 and $1.2$.
]],
  mark = [[
This command causes TeX to append a mark containing `mark text` to
whatever list it is currently constructing. Generally you shouldn’t use
`\mark` within an “inner” construct such as a math formula or a box
you’ve built with an `\hbox`, `\vbox`, or `\vtop` command, because
TeX won’t see the mark when it’s constructing the main box of the page.
But if you use `\mark` in ordinary horizontal mode or directly in an
hbox that’s part of the main vertical list, the mark migrates out to the
main vertical list. See pages 259–260 of *The TeXbook* for examples
showing how `\mark` can be used.
]],
  mathaccent = [[
This command tells TeX to typeset a math accent whose family and
character code are given by `mathcode`. (TeX ignores the class of the
mathcode.) See Appendix G of *The TeXbook* for the details of how
TeX positions such an accent. The usual way to use `\mathaccent` is to
put it in a macro definition that gives a name to a math accent.
]],
  mathchar = [[
This command produces the math character whose class, family, and font
position are given by `mathcode`. It is only legal in math mode.
]],
  mathchardef = [[
This command defines `control sequence` as a math character with the
given `mathcode`. The control sequence will only be legal in math mode.
]],
  mathchoice = [[
This command tells TeX to typeset one of the subformulas `math_1`,
`math_2`, `math_3`, or `math_4`, making its choice according to the
current style. That is, if TeX is in display style it sets the
`\mathchoice` as `math_1`; in text style it sets it as `math_2`; in
script style it sets it as `math_3`; and in scriptscript style it sets
it as `math_4`.
]],
  mathcode = [[
This table entry contains the mathcode of the character whose ASCII code
is `charcode` . The mathcode specifies that character’s interpretation
in math mode.
]],
  mathinner = [[
This command tells TeX to treat the construct that follows as an “inner
formula”, e.g., a fraction, for spacing purposes. It resembles the class
commands given just above.
]],
  mathord = [[
`\mathbin`, `\mathclose`, `\mathopen`, `\mathop`, `\mathord`,
`\mathpunct`, `\mathrel`

These commands tell TeX to treat the construct that follows as belonging
to a particular class (see page 154 of *The TeXbook* for the definition
of the classes). They are listed here in the order of the class numbers,
from 0 to 6. Their primary effect is to adjust the spacing around
the construct to be whatever it is for the specified class.
]],
  mathpalette = [[
This command provides a convenient way of producing a math construct
that works in all four styles. To use it, you’ll normally need to define
an additional macro, which we’ll call `\build`. The call on
`\mathpalette` should then have the form `\mathpalette`||`argument`.

`\build` tests what style TeX is in and typesets `argument` accordingly.
It should be defined to have two parameters. When you call
`\mathpalette`, it will in turn call `\build`, with `#1` being a command
that selects the current style and `#2` being `argument`. Thus, within
the definition of `\build` you can typeset something in the current
style by preceding it with ‘`#1`’. See page 360 of *The TeXbook* for
examples of using `\mathpalette` and page 151 of *The TeXbook* for a
further explanation of how it works.
]],
  mathstrut = [[
This command produces a phantom formula whose width is zero and whose
height and depth are the same as those of a left parenthesis.
`\mathstrut` is in fact defined as ‘`\vphantom(`’. Its main use is for
getting radicals, underbars, and overbars to line up with other
radicals, underbars, and overbars in a formula. It is much like
`\strut`, except that it adjusts itself to the different styles that can
occur in math formulas.
]],
  mathsurround = [[
This parameter specifies the amount of space that TeX inserts before and
after a math formula in text mode (i.e., a formula surrounded by single
`$`’s). See page 162 of *The TeXbook* for further details about its
behavior. Plain TeX leaves `\mathsurround` at `0pt`.
]],
  maxdeadcycles = [[
If the value of `\deadcycles` exceeds the value of `\maxdeadcycles`,
TeX assumes that the output routine has gotten into a loop. TeX then
complains and runs its own simple output routine, equivalent to
`\shipout!allowbreak\box255`, that is likely to break the loop. Plain
TeX sets `\maxdeadcycles` to 25.
]],
  maxdepth = [[
This parameter specifies the maximum depth of the bottom box on a page.
It is related to `\boxmaxdepth`. If the depth of the bottom box on a
page exceeds `\maxdepth`, TeX moves the box’s reference point down so
that it’s `\maxdepth` from the bottom of that box. Without this
adjustment, the bottom box on a page could extend well into the bottom
margin or even off the page entirely. Plain TeX sets `\maxdepth` to
`4pt`.
]],
  maxdimen = [[
This control sequence yields a `dimen` that is the largest dimension
acceptable to TeX (nearly 18 feet). It is not a true command because it
can only appear as part of an argument to another command.
]],
  meaning = [[
This command produces the meaning of `token`. It is useful for
diagnostic output. You can use the `\the` command in a similar way to
get information about the values of registers and other TeX entities.
]],
  message = [[
`\errmessage`, `\message`

These commands display the message given by `token list` on your
terminal and also enter it into the log. Any macros in the message are
expanded, but no commands are executed. This is the same rule that
TeX uses for `\edef`.

For `\errmessage`, TeX pauses in the same way that it does for one of
its own error messages and displays the `\errhelp` tokens if you ask for
help.

You can generate multiline messages by using the `\newlinechar`
character.
]],
  mkern = [[
This command produces a kern, i.e., blank space, of width `mudimen`. The
kern is measured in mathematical units, which vary according to the
style. Aside from its unit of measurement, this command behaves just
like `\kern` does in horizontal mode.
]],
  month = [[
TeX sets this parameter to the current month. It is a number between 1
and 12. `\month` is set at the beginning of your run (see the comments
on `\time` above).
]],
  moveleft = [[
`\moveleft`, `\moveright`

These commands move `box` left or right by `dimen` (which can be
negative). You can only apply `\moveleft` and `\moveright` to a box
that’s in a vertical list.
]],
  mskip = [[
This command produces horizontal glue that has natural width
`mudimen_1`, stretch `mudimen_2`, and shrink `mudimen_3`. The glue is
measured in mathematical units, which vary according to the style. Aside
from its units of measurement, this command behaves just like `\hskip`.
]],
  multiply = [[
`\divide`, `\multiply`

These commands multiply and divide the value in `register` by `number`
(which can be negative). The register can be a `\count`, `\dimen`,
`\skip`, or `\muskip` register. For a `\skip` or `\muskip` register, all
three components of the glue in the register are modified. You can omit
the word `by` in these commands—TeX will understand them anyway.

You can also obtain a multiple of a `dimen` by preceding it by a
`number`

or decimal constant, e.g., `-2.5\dimen2`. You can also use this notation
for `glue`, but watch out—the result is a `dimen`, not `glue`. Thus
`2\baselineskip` yields a `dimen` that is twice the natural size of
`\baselineskip`, with no stretch or shrink.
]],
  multispan = [[
This command tells TeX that the following `number` columns in a row of a
horizontal alignment, or `number` rows in a column of a vertical
alignment, should be combined into a single column or row (as with
`\span`) and that their templates should be omitted (as with `\omit`).
]],
  narrower = [[
This command makes paragraphs narrower, increasing the left and right
margins by `\parindent`, the current paragraph indentation. It achieves
this by increasing both `\leftskip` and `\rightskip` by `\parindent`.
Normally you place `\narrower` at the beginning of a group containing
the paragraphs that you want to make narrower. If you forget to enclose
`\narrower` within a group, you’ll find that all the rest of your
document will have narrow paragraphs.

`\narrower` affects just those paragraphs that end after you invoke it.
If you end a `\narrower` group before you’ve ended a paragraph,
TeX won’t make that paragraph narrower.
]],
  negthinspace = [[
This command produces a negative kern whose width is one-sixth of an em
, i.e., it causes TeX to move its position left by that amount. It is
useful for bringing together characters that are a little too far apart.
TeX won’t break a line at a `\negthinspace`.
]],
  newif = [[
This command names a trio of control sequences with names `\alphatrue`,
`\alphafalse`, and `\ifalpha`, where `alpha` is `test name`. You can use
them to define your own tests by creating a logical variable that
records true/false information:

-   `\alphatrue` sets the logical variable `alpha` true.

-   `\alphafalse` sets the logical variable `alpha` false

-   `\ifalpha` is a conditional test that is true if the logical
    variable `alpha` is true and false otherwise.

The logical variable `alpha` doesn’t really exist, but TeX behaves as
though it did. After `\newif\ifalpha`, the logical variable is initially
false.

`\newif` is an outer command, so you can’t use it inside a macro
definition.
]],
  newlinechar = [[
This parameter contains a character that indicates a new line on output.
When TeX encounters this character while reading the argument of a
`\write`, `\message`, or `\errmessage` command, it starts a new line. If
`\newlinechar` is not in the range 0–255, there is no character that
indicates a new line on output. Plain TeX sets `\newlinechar` to $-1$.
]],
  noalign = [[
This command inserts `vertical mode material` after the current row of a
horizontal alignment or `horizontal mode material` after the current
column of a vertical alignment. The material can be text, glue, a rule,
or anything else.

The most common use of `\noalign` is to put extra space after a row or
column. If you want to put extra space after *every* row of a horizontal
alignment, use `\openup`.
]],
  noboundary = [[
You can defeat a ligature or kern that TeX applies to the first or last
character of a word by putting `\noboundary` just before or just after
the word. Certain fonts intended for languages other than English
contain a special boundary character that TeX puts at the beginning and
end of each word. The boundary character occupies no space and is
invisible when printed. It enables TeX to provide different
typographical treatment to characters at the beginning or end of a word,
since the boundary character can be part of a sequence of characters to
be kerned or replaced by a ligature. (None of the standard TeX fonts
contain this boundary character.) The effect of `\noboundary` is to
delete the boundary character if it’s there, thus preventing TeX from
recognizing the ligature or kern.
]],
  nobreak = [[
This command prevents a page break where it otherwise might occur.
`\nobreak` can also be used in horizontal mode.
]],
  noexpand = [[
This command tells TeX to suppress expansion of `token` if `token` is a
control sequence that can be expanded. If `token` can’t be expanded,
e.g., it’s a letter, TeX acts as though the `\noexpand` wasn’t there and
processes `token` normally. In other words the expansion of
‘`\noexpand``token`’ is simply `token` no matter what `token` happens to
be.
]],
  noindent = [[
If TeX is in vertical mode, as it is after ending a paragraph, this
command inserts the `\parskip` interparagraph glue, puts TeX into
horizontal mode, and starts an unindented paragraph. It has no effect in
horizontal mode, i.e., within a paragraph. Starting a paragraph with
`\noindent` thus cancels the indentation by `\parindent` that would
normally occur there.

A common use of `\noindent` is to cancel the indentation of the first
line of a paragraph when the paragraph follows some displayed material.
]],
  nointerlineskip = [[
This command tells TeX not to insert interline glue in front of the next
line. It has no effect on subsequent lines.
]],
  nolimits = [[
In display style, TeX normally places limits above and below a large
operator. This command tells TeX to place limits after a large operator
rather than above and below it.

The integral operators `\int` and `\oint` are exceptions—TeX places
limits after them in all cases, unless overridden, as in `\int\limits`.
(plain TeX defines `\int` and `\oint` as macros that specify the
operator symbol followed by `\nolimits`—this is what causes them to
behave differently by default.)

If you specify more than one of `\limits`, `\nolimits`, and
`\displaylimits`, the last command rules.
]],
  nonscript = [[
When TeX is currently typesetting in script or scriptscript style and
encounters this command immediately in front of glue or a kern, it
cancels the glue or kern. `\nonscript` has no effect in the other
styles.

This command provides a way of “tightening up” the spacing in script and
scriptscript styles, which generally are set in smaller type. It is of
little use outside of macro definitions.
]],
  nonstopmode = [[
This command tells TeX not to stop for errors, even those pertaining to
files that it can’t find, but to continue displaying the error messages
on your terminal. Typing ‘`R`’ or ‘`r`’ in response to an error message
puts you into nonstop mode.
]],
  nopagenumbers = [[
By default, plain TeX produces a footer containing a centered page
number. This command tells TeX to produce a blank footer instead.
]],
  normalbaselineskip = [[
`\normalbaselineskip`, `\normalbaselines`, `\normallineskiplimit`,
`\normallineskip`

The three parameters contain values for `\baselineskip`, `\lineskip`,
and `\lineskiplimit` respectively.

The `\normalbaselines` command sets `\baselineskip`, `\lineskip`, and
`\lineskiplimit` to the values contained in the three parameters.
]],
  null = [[
This command produces an empty hbox.
]],
  nulldelimiterspace = [[
This parameter specifies the width of the space produced by a null
delimiter. Plain TeX sets `\nulldelimiterspace` to `1.2pt`.
]],
  nullfont = [[
This command selects a font, built into TeX, that has no characters in
it. TeX uses it as a replacement for an undefined font in a family of
math fonts.
]],
  number = [[
This command produces the representation of a number as a sequence of
character tokens. The number can be either an explicit integer, a
`number` parameter, or a `number` register.
]],
  obeylines = [[
TeX normally treats an end of line as a space. `\obeylines` instructs
TeX to treat each end of line as an end of paragraph, thus forcing a
line break. `\obeylines` is often useful when you’re typesetting verse
or computer programs.

If any of your lines are longer than the effective line length (`\hsize`
- `\parindent`), however, you may get an extra line break within those
lines.

Because TeX inserts the `\parskip` glue between lines controlled by
`\obeylines` (since it thinks each line is a paragraph), you should
normally set `\parskip` to zero when you’re using `\obeylines`.

You can use the `\obeyspaces` command to get TeX to take spaces within a
line literally. `\obeylines` and `\obeyspaces` are often used together.
]],
  obeyspaces = [[
TeX normally condenses a sequence of several spaces to a single space.
`\obeyspaces` instructs TeX to produce a space in the output for each
space in the input. `\obeyspaces` does not cause spaces at the beginning
of a line to show up, however; for that we recommend the
`\obeywhitespace` command defined in `eplain.tex` .

`\obeyspaces` is often useful when you’re typesetting something,
computer input for example, in a monospaced font (one in which each
character takes up the same amount of space) and you want to show
exactly what each line of input looks like.

You can use the `\obeylines` command to get TeX to follow the line
boundaries of your input. `\obeylines` is often used in combination with
`\obeyspaces`.
]],
  offinterlineskip = [[
This command tells TeX to stop inserting interline glue from now on.
Unless you want it to be in effect for the rest of the document (which
you probably don’t), you should enclose it in a group together with the
text you want it to affect. Its main purpose is to let you do interline
spacing yourself, e.g., using struts, without interference from TeX’s
normal interline glue. `\offinterlineskip` is often useful when you’re
constructing a horizontal alignment.
]],
  omit = [[
This command tells TeX to ignore a template in a horizontal or vertical
alignment while processing a particular column or row entry
respectively. `\omit` must appear as the first item in a column or row
entry; in effect, it overrides the template from the preamble with the
simple template ‘`#`’.
]],
  openin = [[
This command tells TeX to open the file named `filename` and make it
available for reading via the input stream designated by `number`.

`number` must be between 0 and 15. Once you’ve opened a file and
connected it to an input stream, you can read from the file using the
`\read` command with the input stream’s number.

You can associate more than one input stream with the same file. You can
then read from several different positions within the file, one for each
input stream.

You should allocate stream numbers for `\openin` using `\newread`.
]],
  openout = [[
This command tells TeX to open the file named `filename` and make it
available for writing via the output stream designated by `number`.
`number` must be between 0 and 15. Once you’ve opened a file and
connected it to an output stream, you can write to the file using the
`\write` command with the output stream’s number.

An `\openout` generates a whatsit that becomes part of a box. The
`\openout` does not take effect until TeX ships out that box to the .dvi
file, unless you’ve preceded the `\openout` with `\immediate`.

TeX won’t complain if you associate more than one output stream with the
same file, but you’ll get garbage in the file if you try it!

You should allocate stream numbers for `\openout` using `\newwrite`.
]],
  openup = [[
This command increases `\baselineskip` by `dimen`. An `\openup` command
before the end of a paragraph affects the entire paragraph, so you
shouldn’t use `\openup` to change `\baselineskip` within a paragraph.
`\openup` is most useful for typesetting tables and math displays—a
little extra space between rows often makes them more readable.
]],
  outer = [[
This command is used as a prefix to a macro definition. It tells
TeX that the macro is outer and cannot be used in certain contexts. If
the macro is used in a forbidden context, TeX will complain.
]],
  output = [[
This parameter contains the current output routine, i.e., the token list
that TeX expands when it finds a page break. TeX puts the page into
`\box255`, so `\output` is responsible for doing something with
`\box255`—either shipping it out or putting it somewhere else. The
output routine is also responsible for attaching things such as headers
and footers.
]],
  outputpenalty = [[
TeX sets this parameter when it breaks a page. If the breakpoint was at
a penalty item, TeX removes the penalty item and sets `\outputpenalty`
to the penalty value at the breakpoint; otherwise it sets
`\outputpenalty` to 0.

Suppose that you are undoing a page break in order to break the page at
a different place than the one that TeX has just chosen. In order to
reconstruct the page, you need to recreate the penalty at TeX’s chosen
breakpoint. You can accomplish this with the command
`\penalty!allowbreak\outputpenalty`.
]],
  over = [[
`\above`, `\atop`, `\brace`, `\brack`, `\choose`, `\over`

These commands stack one subformula on top of another one. We will
explain how `\over` works, and then relate the other commands to it.

`\over` is the command that you’d normally use to produce a fraction.

If you write something in one of the following forms:

    $$⟨formula1⟩\over⟨formula2⟩$$
    $⟨formula1⟩\over⟨formula2⟩$
    \left!<delim>⟨formula1⟩\over⟨formula2⟩\right!<delim>
    {⟨formula1⟩\over⟨formula2⟩}

you’ll get a fraction with numerator `formula_1` and denominator
`formula_2`, i.e., `formula_1` over `formula_2`. In the first three of
these forms the `\over` is not implicitly contained in a group; it
absorbs everything to its left and to its right until it comes to a
boundary, namely, the beginning or end of a group.

You can’t use `\over` or any of the other commands in this group more
than once in a formula. Thus a formula such as:

    $$a \over n \choose k$$

isn’t legal. This is not a severe restriction because you can always
enclose one of the commands in braces. The reason for the restriction is
that if you had two of these commands in a single formula, TeX wouldn’t
know how to group them.

The other commands are similar to `\over`, with the following
exceptions:

-   `\atop` leaves out the fraction bar.

-   `\above` provides a fraction bar of thickness `dimen`.

-   `\choose` leaves out the fraction bar and encloses the construct in
    parentheses. (It’s called “choose” because $n \choose k$ is the
    notation for the number of ways of choosing $k$ things out of $n$
    things.)

-   `\brace` leaves out the fraction bar and encloses the construct in
    braces.

-   `\brack` leaves out the fraction bar and encloses the construct in
    brackets.
]],
  overfullrule = [[
This parameter specifies the width of the rule that TeX appends to an
overfull hbox. Plain TeX sets it to `5pt`.
]],
  overwithdelims = [[
`\abovewithdelims`, `\atopwithdelims`, `\overwithdelims`

Each of these commands stacks one subformula on top of another one and
surrounds the entire construct with `delim_1` on the left and `delim_2`
on the right. These commands follow the same rules as `\over`, `\atop`,
and `\above`. The `dimen` in `\abovewithdelims` specifies the thickness
of the fraction bar.
]],
  pagedepth = [[
This parameter specifies the depth of the current page. TeX updates
`\pagedepth` as it adds items to the main vertical list.
]],
  pagegoal = [[
This parameter specifies the desired height for the current page.
TeX sets `\pagegoal` to the current value of `\vsize` when it first puts
a box or an insertion on the current page. You can shorten a page while
TeX is working on it by changing the value of `\pagegoal`—even if the
new value is less than the height of the material already on that page.
TeX will just put the extra material on the next page. But
remember—`\pagegoal` is reset to `\vsize` again when TeX starts the next
page.
]],
  pageno = [[
This parameter contains the current page number as an integer. The page
number is normally negative for front-matter pages that are numbered
with small roman numerals instead of arabic numerals. If you change the
page number within a page, the changed number will be used in any
headers or footers that appear on that page. The actual printing of page
numbers is handled by TeX’s output routine, which you can modify.

Plain TeX keeps the page number in the register `\count0`. (`\pageno`
is, in fact, a synonym for `\count0`.) Whenever it ships out a page to
the .dvi file,

TeX displays the current value of `\count0` on your terminal so that you
can tell which page it is working on. It’s possible to use registers
`\count1`–`\count9` for nested levels of page numbers (you must program
this yourself). If any of these registers are nonzero, TeX displays them
on your terminal also.[1]

[1] More precisely, it displays all registers in sequence from `\count0`
to `\count9`, but omits trailing zero registers. For instance, if the
values of `\count0`–`\count3` are $(17, 0 , 0, 7)$ and the others are
0, TeX displays the page number as \[17.0.0.7\].
]],
  pageshrink = [[
This parameter specifies the amount of shrink in the accumulated glue on
the current page. TeX updates `\pageshrink` as it adds items to the main
vertical list.
]],
  pagestretch = [[
`\pagefilllstretch`, `\pagefillstretch`, `\pagefilstretch`,
`\pagestretch`

These four parameters together specify the amount of stretch in the glue
on the current page. The amount of stretch has the form
$n_0 + n_1fil + n_2fill + n_3filll$, with the four parameters giving the
values of the four $n_i$. TeX updates these parameters as it adds items
to the main vertical list.
]],
  pagetotal = [[
This parameter specifies the accumulated natural height of the current
page. TeX updates `\pagetotal` as it adds items to the main vertical
list.
]],
  parfillskip = [[
This parameter specifies the horizontal glue that TeX inserts at the end
of a paragraph. The default value of `\parfillskip` is `0pt plus 1fil`,
which causes the last line of a paragraph to be filled out with blank
space. A value of `0pt` forces TeX to end the last line of a paragraph
at the right margin.
]],
  parindent = [[
This parameter specifies the amount by which the first line of each
paragraph is to be indented. As the example below shows, it’s a bad idea
to set both `\parindent` and `\parskip` to zero since then the paragraph
breaks are no longer apparent.
]],
  parshape = [[
This command specifies the shape of the first $n$ lines of a paragraph—
the next paragraph if you’re in vertical mode and the current paragraph
if you’re in horizontal mode. The $i$’s and $l$’s are all dimensions.
The first line is indented by $i_1$ and has length $l_1$, the second
line is indented by $i_2$ and has length $l_2$, and so forth. If the
paragraph has more than $n$ lines, the last indentation/ length pair is
used for the extra lines. To achieve special effects such as the one
shown here, you usually have to experiment a lot, insert kerns here and
there, and choose your words to fit the shape.

`\parshape`, like `\hangafter` and `\hangindent`, is effective only for
one paragraph. If you specify `\hangafter` and `\hangindent` as well as
`\parshape`, TeX ignores the `\hangafter` and `\hangindent`.
]],
  parskip = [[
This parameter specifies the “paragraph skip”, i.e., the vertical glue
that TeX inserts at the start of a paragraph.

See `\par` for more information about what happens when TeX starts a
paragraph. Plain TeX sets `\parskip` to `0pt plus 0.1pt`.
]],
  pausing = [[
If this parameter is greater than zero, TeX will pause at each line of
input to give you an opportunity to replace it with a different line. If
you type in a replacement, TeX will use that line instead of the
original one; if you respond with ⟨return⟩, TeX will use the original
line.

Setting `\pausing` to 1 can be useful as a way of patching a document
as TeX is processing it. For example, you can use this facility to
insert `\show` commands (see below).
]],
  penalty = [[
This command produces a penalty item. The penalty item makes TeX more or
less willing to break a page at the point where that item occurs. A
negative penalty, i.e., a bonus, encourages a page break; a positive
penalty discourages a page break. A penalty of 10000 or more prevents
a break altogether, while a penalty of $-10000$ or less forces a break.
`\penalty` can also be used in horizontal mode.
]],
  phantom = [[
This command produces an empty box having the same size and placement
that `argument` would have were it typeset. One use of `\phantom` is for
reserving space for a symbol that for some reason needs to be drawn in
by hand.
]],
  plainoutput = [[
This command invokes plain TeX’s output routine.

Plain TeX defines `\output` as a token list containing the single token
`\plainoutput`.
]],
  pmod = [[
This command provides a notation for indicating a modulus in parentheses
at the end of a formula.
]],
  postdisplaypenalty = [[
This parameter specifies the penalty for breaking a page just after a
math display. Plain TeX leaves `\postdisplaypenalty` at 0.
]],
  predisplaypenalty = [[
This parameter specifies the penalty for breaking a page just before a
math display. Plain TeX sets `\predisplaypenalty` to 10000.
]],
  predisplaysize = [[
TeX sets this parameter to the width of the line preceding a math
display. TeX uses `\predisplaysize` to determine whether or not the
display starts to the left of where the previous line ends, i.e.,
whether or not it visually overlaps the previous line. If there is
overlap, it uses the `\abovedisplayskip` and `\belowdisplayskip` glue in
setting the display; otherwise it uses the `\abovedisplayshortskip` and
`\belowdisplayshortskip` glue. See pages 188–189 of *The TeXbook* for a
more detailed explanation of this parameter.
]],
  pretolerance = [[
`\pretolerance`, `\tolerance`

These parameters determine the badness that TeX will tolerate on each
line when it is choosing line breaks for a paragraph. The badness is a
measure of how far the interword spacing deviates from the ideal.
`\pretolerance` specifies the tolerable badness for line breaks without
hyphenation; `\tolerance` specifies the tolerable badness for line
breaks with hyphenation. The tolerable badness can be exceeded in either
of two ways: a line is too tight (the interword spaces are too small) or
it is too loose (the interword spaces are too big).

-   If TeX must set a line too loosely, it complains about an “underfull
    hbox”.

-   If TeX must set a line too rightly, it lets the line run past the
    right margin and complains about an “overfull hbox”.

TeX chooses line breaks in the following steps:

1.  It attempts to choose line breaks without hyphenating. If none of
    the resulting lines have a badness exceeding `\pretolerance`, the
    line breaks are acceptable and the paragraph can now be set.

2.  Otherwise, it tries another set of line breaks, this time allowing
    hyphenation. If none of the resulting lines have a badness exceeding
    `\tolerance`, the new set of line breaks is acceptable and the
    paragraph can now be set.

3.  Otherwise, it adds `\emergencystretch` (see below) to the stretch of
    each line and tries again.

4.  If none of these attempts have produced an acceptable set of line
    breaks, it sets the paragraph with one or more overfull hboxes and
    complains about them.

Plain TeX sets `\tolerance` to 200 and `\pretolerance` to 100. If
you set `\tolerance` to 10000, TeX becomes infinitely tolerant and
accepts any spacing, no matter how bad (unless it encounters a word that
won’t fit on a line, even with hyphenation). Thus by changing
`\tolerance` you can avoid overfull and underfull hboxes, but at the
cost of making the spacing worse. By making `\pretolerance` larger you
can get TeX to avoid hyphenation (and also run faster), again at the
cost of possibly worse spacing. If you set `\pretolerance` to $-1$,
TeX will not even try to set the paragraph without hyphenation.

The `\hbadness` parameter determines the level of badness that TeX will
tolerate before it complains, but `\hbadness` does not affect the way
that TeX typesets your document. The `\hfuzz` parameter determines the
amount that an hbox can exceed its specified width before TeX considers
it to be erroneous.
]],
  prevdepth = [[
When TeX adds a box to a vertical list, it sets `\prevdepth` to the
depth of that box. TeX sets `\prevdepth` to $-1000$pt at the start of a
vertical list, indicating that the usual interline glue should be
suppressed.
]],
  prevgraf = [[
In horizontal mode, this parameter specifies the number of lines in the
paragraph so far; in vertical mode, it specifies the number of lines in
the previous paragraph. TeX only sets `\prevgraf` after it has finished
breaking some text into lines, i.e., at a math display or at the end of
a paragraph. See page 103 of *The TeXbook* for more details about it.
]],
  proclaim = [[
This command “proclaims” a theorem, lemma, hypothesis, etc. It sets
`argument` in boldface type and the following paragraph in italics.
`argument` must be followed by a period and a space token, which serve
to set off `argument` from `general text`. `general text` consists of
the text up to the next paragraph boundary. You can include multiple
paragraphs by using `\endgraf` instead of a blank line or `\par`.
]],
  radical = [[
This command produces a radical sign whose characteristics are given by
`number`. It uses the same representation as the delimiter code

in the `\delcode` command.
]],
  raggedbottom = [[
`\normalbottom`, `\raggedbottom`

Normally TeX tries hard to ensure that all pages have the same depth,
i.e., that their bottom margins are equal. The `\raggedbottom` command
tells TeX to allow some variability among the bottom margins on
different pages. It’s often appropriate to use `\raggedbottom` when you
have material that contains large blocks of material that should not be
split across pages. The `\normalbottom` command cancels the effect of
`\raggedbottom`.
]],
  raggedright = [[
`\raggedright`, `\ttraggedright`

These commands cause TeX to typeset your document “ragged right”.
Interword spaces all have their natural size, i.e., they all have the
same width and don’t stretch or shrink. Consequently the right margin is
generally not even. The alternative, which is TeX’s default, is to
typeset your document justified,

i.e., with uniform left and right margins. In justified text, interword
spaces are stretched in order to make the right margin even. Some
typographers prefer ragged right because it avoids distracting “rivers”
of white space on the printed page.

You should use the `\ttraggedright` command when typesetting text in a
monospaced font and the `\raggedright` command when typesetting text in
any other font.

Most of the time you’ll want to apply these commands to an entire
document, but you can limit their effects by enclosing them in a group.
]],
  relax = [[
This command tells TeX to do nothing. It’s useful in a context where you
need to provide a command but there’s nothing that you want TeX to do.
]],
  relpenalty = [[
This parameter specifies the penalty for breaking a math formula after a
relation when the formula appears in a paragraph. Plain TeX sets
`\relpenalty` to 500.
]],
  romannumeral = [[
This command produces the roman numeral representation of a number as a
sequence of character tokens. The number can be either an explicit
integer, a `number` parameter, or a `number` register. If the number is
zero or negative, `\romannumeral` produces no tokens.
]],
  root = [[
This command produces the notation for a root of `argument_2`, where the
root is given by `argument_1`.
]],
  sb = [[
`\sb`, `\sp`

The commands in each column are equivalent. The commands in the first
column typeset `argument` as a subscript, and those in the second column
typeset `argument` as a superscript. The `\sb` and `\sp` commands are
mainly useful if you’re working on a terminal that lacks an underscore
or caret, or if you’ve redefined ‘`_`’ or ‘`\verb`’ and need access to
the original definition. These commands are also used for setting lower
and upper limits on summations and integrals.

If a subscript or superscript is not a single token, you need to enclose
it in a group. TeX does not prioritize subscripts or superscripts, so it
will reject formulas such as `a_i_j`, `a^i^j`, or `a^i_j`.

Subscripts and superscripts are normally typeset in script style, or in
scriptscript style if they are second-order, e.g., a subscript on a
subscript or a superscript on a a subscript. You can set *any* text in a
math formula in a script or scriptscript style with the `\scriptstyle`
and `\scriptscriptstyle` commands.

You can apply a subscript or superscript to any of the commands that
produce named mathematical functions in roman type). In certain cases
(again, see ) the subscript or superscript appears directly above or
under the function name as shown in the examples of `\lim` and `\det`
below.
]],
  scriptspace = [[
This parameter specifies the amount of space that TeX inserts before and
after a subscript or superscript. The `\nonscript` command after a
subscript or superscript cancels this space. Plain TeX sets
`\scriptspace` to `0.5pt`.
]],
  scrollmode = [[
This command tells TeX not to stop for most errors, but to continue
displaying the error messages on your terminal. Typing ‘`S`’ or ‘`s`’ in
response to an error message puts you into scroll mode.
]],
  setbox = [[
`\box`, `\setbox`

These commands respectively set and retrieve the contents of the box
register whose number is `register`. Note that you set a box register a
little differently than you set the other kinds of registers: you use
`\setbox`$\,n$ `=` rather than `\box`$\,n$ `=`.

*Retrieving the contents of a box register with these commands has the
side effect of emptying it, so that the box register become void.* If
you don’t want that to happen, you can use `\copy` (see below) to
retrieve the contents. You should use `\box` in preference to `\copy`
when you don’t care about what’s in a box register after you’ve used it,
so as not to exhaust TeX’s memory by filling it with obsolete boxes.
]],
  setlanguage = [[
This command sets the current language to `number` by inserting the same
whatsit that you’d get by changing `\language`. However, it does not
change the value of `\language`.
]],
  settabs = [[
The first form of this command defines a set of tab stops for a tabbing
alignment. It tells TeX to set the tab stops so as to divide each line
into `number` equal parts. TeX takes the length of a line to be
`\hsize`, as usual. You can make the alignment narrower by decreasing
`\hsize`.
]],
  shipout = [[
This command instructs TeX to send `box` to the .dvi file.

TeX expands any `\write` command in `box` as part of `\shipout`.

The principal use of `\shipout` is in the output routine, but you can
use it anywhere.
]],
  show = [[
`\showbox`, `\showlists`, `\showthe`, `\show`

These commands record information in the log of your TeX run:

-   `\show` records the meaning of `token`.

-   `\showthe` records whatever tokens would be produced by `\the`
    `argument`).

-   `\showbox` records the contents of the box register numbered
    `number`. The number of leading dots in the log indicates the number
    of levels of nesting of inner boxes.

-   `\showlists` records the contents of each list that TeX is currently
    constructing. (These lists are nested one within another.) See
    pages 88–89 of *The TeXbook* for further information about
    interpreting the output of `\showlists`.

For `\show` and `\showthe`, TeX also displays the information at your
terminal. For `\showbox` and `\showlists`, TeX displays the information
at your terminal only if `\tracingonline` is greater than zero; if
`\tracingonline` is zero or less (the default case), the information is
not displayed.

Whenever TeX encounters a `\show`-type command it stops for interaction.
The request for interaction does *not* indicate an error, but it does
give you an opportunity to ask TeX to show you something else. If you
don’t want to see anything else, just press ⟨return⟩.

You can control the amount of output produced by `\showbox` by setting
`\showboxbreadth` and `\showboxdepth`.

These parameters respectively have default values of 5 and 3, which
is why just five items appear for each box described in the log output
below. (The ‘`..etc.`’ indicates additional items within the boxes that
aren’t displayed.)
]],
  showboxbreadth = [[
This parameter specifies the maximum number of list items that
TeX displays for one level of one box when it is producing the output
for `\showbox` or `\tracingoutput`. Plain TeX sets `\showboxbreadth` to
5.
]],
  showboxdepth = [[
This parameter specifies the level of the deepest list that TeX displays
when it is producing the output for `\showbox` or `\showlists`. Plain
TeX sets `\showboxdepth` is 3.
]],
  skew = [[
This command shifts the accent `argument_1` by `number` mathematical
units to the right of its normal position with respect to `argument_2`.
The most common use of this command is for modifying the position of an
accent that’s over another accent.
]],
  skewchar = [[
The `\skewchar` of a font is the character in the font whose kerns, as
defined in the font’s metrics file, determine the positions of math
accents. That is, suppose that TeX is applying a math accent to the
character ‘`x`’. TeX checks if the character pair ‘`x\skewchar`’ has a
kern; if so, it moves the accent by the amount of that kern. The
complete algorithm that TeX uses to position math accents (which
involves many more things) is in Appendix G of *The TeXbook*.

If the value of `\skewchar` is not in the range 0–255, TeX takes the
kern value to be zero.

Note that `font` is a control sequence that names a font, not a
`fontname` that names font files. Beware: an assignment to `\skewchar`
is *not* undone at the end of a group. If you want to change `\skewchar`
locally, you’ll need to save and restore its original value explicitly.
]],
  slash = [[
This command produces a solidus (/) and also tells TeX that it can break
the line after the solidus, if necessary.
]],
  smallbreak = [[
`\bigbreak`, `\medbreak`, `\smallbreak`

These commands indicate increasingly desirable places for TeX to break a
page. They also cause TeX to insert a `\smallskip`, `\medskip`, or
`\bigskip` if the page break doesn’t actually happen. TeX suppresses
this skip if it occurs just after an equal or larger skip.
]],
  smallskip = [[
`\bigskip`, `\medskip`, `\smallskip`

These commands produce successively larger amounts of vertical space:

`\smallskip` skips by 3 points and can stretch or shrink by 1 point.
`\medskip` is equivalent to two `\smallskip`s and `\bigskip` is
equivalent to two `\medskip`s.

These commands end a paragraph since they are inherently vertical. The
skips that they produce are in addition to the normal interparagraph
skip.
]],
  smallskipamount = [[
`\bigskipamount`, `\medskipamount`, `\smallskipamount`

These parameters specify the amounts of glue produced by the
`\smallskip`, `\medskip`, and `\bigskip` commands. By changing these
parameters you change the effect of the commands. The default values
(for plain TeX) correspond to a quarter of a linespace, half a
linespace, and a full linespace. We recommend that you maintain this
ratio by changing these values whenever you change `\baselineskip`.
]],
  smash = [[
This command typesets `argument`, but forces the height and depth of its
containing box to be zero. You can use `\smash` and `\vphantom` in
combination to give a subformula any height and depth that you wish.
]],
  space = [[
This command is equivalent to an input space character. It differs from
`\ ` in that its width *can* be affected by preceding punctuation.
]],
  spacefactor = [[
`\sfcode`, `\spacefactor`, `\spaceskip`, `\xspaceskip`

These primitive parameters affect how much space TeX puts between two
adjacent words, i.e., the interword spacing. The normal interword
spacing is supplied by the current font. As TeX is processing a
horizontal list, it keeps track of the space factor $f$ in
`\spacefactor`. As it processes each input character $c$, it updates $f$
according to the value of $f_c$, the space factor code of $c$ (see
below). For most characters, $f_c$ is 1000 and TeX sets $f$ to 1000.
(The initial value of $f$ is also 1000.) When TeX sees an interword
space, it adjusts the size of that space by multiplying the stretch and
shrink of that space by $f/1000$ and $1000/f$ respectively. Thus:

1.  If $f=1000$, the interword space keeps its normal value.

2.  If $f<1000$, the interword space gets less stretch and more shrink.

3.  If $f>1000$, the interword space gets more stretch and less shrink.

In addition, if $f\ge2000$ the interword space is further increased by
the “extra space” parameter associated with the current font.

Each input character $c$ has an entry in the `\sfcode` (space factor
code) table. The `\sfcode` table entry is independent of the font.
Usually TeX just sets $f$ to $f_c$ after it processes $c$. However:

-   If $f_c$ is zero, TeX leaves $f$ unchanged. Thus a character such as
    ‘`)`’ in plain TeX, for which $f_c$ is zero, is essentially
    transparent to the interword space calculation.

-   If $f<1000<f_c$, TeX sets $f$ to 1000 rather than to $f_c$, i.e.,
    it refuses to raise $f$ very rapidly.

The `\sfcode` value for a period is normally 3000, which is why
TeX usually puts extra space after a period (see the rule above for the
case $f\ge2000$). Noncharacter items in a horizontal list, e.g.,
vertical rules, generally act like characters with a space factor of
1000.

You can change the space factor explicitly by assigning a different
numerical value to `\spacefactor`. You can also override the normal
interword spacing by assigning a different numerical value to
`\xspaceskip` or to `\spaceskip`:

-   `\xspaceskip` specifies the glue to be used when $f\ge2000$; in the
    case where `\xspaceskip` is zero, the normal rules apply.

-   `\spaceskip` specifies the glue to be used when $f<2000$ or when
    `\xspaceskip` is zero; if `\spaceskip` is zero, the normal rules
    apply. The stretch and shrink of the `\spaceskip` glue, like that of
    the ordinary interword glue, is modified according to the value of
    $f$.

See page 76 of *The TeXbook* for the precise rules that TeX uses in
calculating interword glue, and pages 285–287 of *The TeXbook* for the
adjustments made to `\spacefactor` after various items in a horizontal
list.
]],
  span = [[
The meaning of this command depends on whether it appears in a preamble
or in an alignment entry.

-   Normally, TeX does not expand tokens in the preamble when it reads
    them. Putting `\span` in front of a token in the preamble causes
    that token to be expanded immediately according to TeX’s usual rules
    of macro expansion.

-   Putting `\span` instead of ‘`&`’ between two column or row entries
    causes those columns or rows to be combined. For a horizontal
    alignment, the width of the combined column is the sum of the widths
    of the component columns. For a vertical alignment, the height of
    the combined row is the sum of the heights of the component rows.
    The template of the combined column or combined row forms a single
    group, so font-setting commands preceding a `\span` affect
    everything up to the next ‘`&`’.

`\span` is rarely useful by itself outside of a template, but it
provides the basic mechanism for defining `\multispan`.
]],
  special = [[
This command tells TeX to write `token list` directly to the .dvi
file when it next ships out a page. A typical use of `\special` would be
to tell the device driver to incorporate the contents of a named
graphics file into the output page.

The `\special` command produces a whatsit that associates `token list`
with a particular position on the page, namely, the position that a
zero-size box would have had if such a box had appeared instead of the
`\special` command. Any use you might make of `\special` depends
strictly on the device drivers that you have available.
]],
  splitfirstmark = [[
`\splitbotmark`, `\splitfirstmark`

These commands expand to the mark text generated by an earlier `\mark`
command that produced an item in the item list of a vbox $V$. The mark
text has the form of a token list. When TeX splits $V$ in response to a
`\vsplit` command, it sets the values of these commands as follows:

-   `\splitfirstmark` contains the tokens of the first mark in the item
    list of $V$.

-   `\splitbotmark` contains the tokens of the last mark in the item
    list of $V$.

These commands produce no tokens if there was no preceding `\vsplit`, or
if the most recent preceding `\vsplit` didn’t contain any marks.
]],
  splitmaxdepth = [[
This parameter specifies the maximum allowable depth of a box resulting
from a `\vsplit`. `\splitmaxdepth` plays the same role that `\maxdepth`
plays for a page.
]],
  splittopskip = [[
This parameter specifies the glue that TeX inserts at the top of a box
resulting from a `\vsplit`. `\splittopskip` plays the same role that
`\topskip` plays for a page.
]],
  sqrt = [[
This command produces the notation for the square root of `argument`.
]],
  string = [[
This command produces the characters that form the name of
`control sequence`, including the escape character. The escape character
is represented by the current value of `\escapechar`.

TeX gives the characters in the list a category code of 12 (other).

You can perform the reverse operation with the `\csname` command, which
turns a string into a control sequence.
]],
  strut = [[
This command produces a box whose width is zero and whose height
(`8.5pt`) and depth (`3.5pt`) are those of a more or less typical line
of type in `cmr10`, the default plain TeX font. Its main use is in
forcing lines to have the same height when you’ve disabled TeX’s
interline glue with `\offinterlineskip` or a similar command, e.g., when
you’re constructing an alignment. If the natural height of a line is too
short, you can bring it up to standard by including a `\strut` in the
line. The strut will force the height and depth of the line to be
larger, but it won’t print anything or consume any horizontal space.

If you’re setting type in a font that’s bigger or smaller than `cmr10`,
you should redefine `\strut` for that context.
]],
  tabskip = [[
This parameter specifies the amount of horizontal or vertical glue that
TeX puts between the columns of a horizontal alignment or between the
rows of a vertical alignment. TeX also puts the `\tabskip` glue to the
left of the first column and to the right of the last column of a
horizontal alignment, and above the first row and below the last row of
a vertical alignment. You can change `\tabskip` within a template— the
change will affect the glue associated with all the following `&`’s as
well as the glue after the last row or column.
]],
  textfont = [[
`\scriptfont`, `\scriptscriptfont`, `\textfont`

Each of these parameters specifies the font that TeX is to use for
typesetting the indicated style in the indicated family. These choices
have no effect outside of math mode.
]],
  textindent = [[
This command tells TeX to start a paragraph and indent it by
`\parindent`, as usual. TeX then right-justifies `argument` within the
indentation and follows it with an en space (half an em). Plain TeX uses
this command to typeset footnotes

and items in lists).
]],
  textstyle = [[
`\displaystyle`, `\scriptscriptstyle`, `\scriptstyle`, `\textstyle`

These commands override the normal style and hence the font that
TeX uses in setting a formula. Like font-setting commands such as `\it`,
they are in effect until the end of the group containing them. They are
useful when TeX’s choice of style is inappropriate for the formula you
happen to be setting.
]],
  the = [[
This command generally expands to a list of character tokens that
represents `token`. `token` can be any of the following:

-   a TeX parameter, e.g., `\parindent` or `\deadcycles`

-   a register, e.g., `\count0`

-   a code associated with an input character, e.g., `` \catcode`( ``

-   a font parameter, e.g., `\fontdimen3\sevenbf`

-   the `\hyphenchar` or `\skewchar` of a font, e.g., `\skewchar\teni`

-   `\lastpenalty`, `\lastskip`, or `\lastkern` (values derived from the
    last item on the current horizontal or vertical list)

-   a control sequence defined by `\chardef` or `\mathchardef`

In addition, `\the` can expand to noncharacter tokens in the following
two cases:

-   `\the` `font`, which expands to the most recently defined control
    sequence that selects the same font as the control sequence `font`

-   `\the` `token variable`, which expands to a copy of the value of the
    variable, e.g., `\the\everypar`

See pages 214–215 of *The TeXbook* for a more detailed description of
what `\the` does in various cases.
]],
  thinmuskip = [[
`\medmuskip`, `\thickmuskip`, `\thinmuskip`

These parameters define thin, medium, and thick spaces in math mode.
]],
  thinspace = [[
This command produces a positive kern whose width is one-sixth of an em

i.e., it causes TeX to move its position right by that amount. It is
useful when you have a nested quotation, for example, and you want to
separate the levels of quotes. TeX won’t break a line at a `\thinspace`.
]],
  time = [[
TeX sets this parameter to the number of minutes that have elapsed since
midnight (of the current day). At noon, for instance, `\time` is 720.
This command and the next three make use of the time and date as
recorded in your computer. TeX retrieves them just once, at the
beginning of your run, so `\time` at the end of the run always has the
same value as `\time` at the beginning of the run (unless you’ve
explicitly changed it).
]],
  topglue = [[
This command[1] causes the space from the top of the page to the top of
the first box on the page to be `glue` precisely. The top of the page is
considered to be at the baseline of an imaginary line of text just above
the top line of the page. More precisely, it’s a distance `\topskip`
above the origin as given by `\hoffset` and `\voffset`.

This command is useful because TeX ordinarily adjusts the glue produced
by `\topskip` in a complex way. By using `\topglue` you can control the
position of the first box on the page without worrying about those
adjustments.

[1] `\topglue` was added to TeX in version 3.0, later than the other
enhancements introduced by new TeX . It is first described in the
*eighteenth* edition of *The TeXbook*.
]],
  topinsert = [[
`\midinsert`, `\pageinsert`, `\topinsert`

These commands produce different forms of insertions that instruct (or
allow) TeX to relocate the `vertical mode material`:

-   `\topinsert` attempts to put the material at the top of the current
    page. If it won’t fit there, `\topinsert` will move the material to
    the next available top of page.

-   `\midinsert` attempts to put the material at the current position.
    If it won’t fit there, `\midinsert` will move the material to the
    next available top of page.

-   `\pageinsert` puts the material by itself on the next page. To avoid
    an underfull page, be sure to end the inserted material with `\vfil`
    or fill out the excess space some other way.

The `vertical mode material` is said to be “floating” because TeX can
move it from one place to another. Insertions are very useful for
material such as figures and tables because you can position such
material where you want it without knowing where the page breaks will
fall.

Each of these commands implicitly ends the current paragraph, so you
should use them only between paragraphs. You should not use them within
a box or within another insertion. If you have several insertions
competing for the same space, TeX will retain their relative order.
]],
  topskip = [[
TeX inserts glue at the top of each page in order to ensure that the
baseline of the first box on the page always is the same distance $d$
from the top of the page. `\topskip` determines the amount of that glue,
called the “`\topskip` glue”, by specifying what $d$ should be (provided
that the first box on the page isn’t too tall). $d$ is given by the
natural size of the `\topskip` glue. If the height of the first box on
the page exceeds $d$, so that the glue would be negative, TeX simply
inserts no `\topskip` glue at all on that page.

To understand better the effect of these rules, assume that `\topskip`
has no stretch or shrink and that the first item on the page is indeed a
box. Then if the height of that box is no greater than `\topskip`, its
baseline will be `\topskip` from the top of the page independently of
its height. On the other hand, if the height of the box is $e$ greater
than `\topskip`, its baseline will be `\topskip` + $e$ from the top of
the page. See pages 113–114 of *The TeXbook* for the remaining details
of how `\topskip` works. Plain TeX sets `\topskip` to `10pt`.
]],
  tracingall = [[
This command tells TeX to turn on every available form of tracing. It
also sets `\tracingonline` to 1 so that the trace output will appear
at your terminal.
]],
  tracingcommands = [[
If this parameter is 1 or greater, TeX will record in the log file
most commands that it executes. If `\tracingonline` is greater than
zero, this information will also appear at your terminal. Typesetting
the first character of a word counts as a command, but (for the purposes
of the trace only) the actions of typesetting the subsequent characters
and any punctuation following them do not count as commands. If
`\tracingcommands` is 2 or greater, TeX will also record commands that
are expanded rather than executed, e.g., conditional tests and their
outcomes.
]],
  tracinglostchars = [[
If this parameter is greater than zero, TeX will record an indication in
the log file of each time that it drops an output character because that
character does not exist in the current font. If `\tracingonline` is
greater than zero, this information will also appear at your terminal.
Plain TeX defaults it to 1 (unlike the others).
]],
  tracingmacros = [[
If this parameter is 1 or greater, TeX will record in the log file the
expansion and arguments of every macro that it executes.

If `\tracingmacros` is 2 or greater, TeX will record, in addition,
every expansion of a token list such as `\output` or `\everycr`. If
`\tracingonline` is greater than zero, this information will also appear
at your terminal.
]],
  tracingonline = [[
If this parameter is greater than zero, TeX will display the results of
tracing (including `\showbox` and `\showlists`) at your terminal in
addition to recording them in the log file.
]],
  tracingoutput = [[
If this parameter is greater than zero, TeX will record in the log file
the contents of every box that it sends to the .dvi file.

If `\tracingonline` is greater than zero, this information will also
appear at your terminal. The number of leading dots in each line of the
trace output indicates the nesting level of the box at that line. You
can control the amount of tracing by setting `\showboxbreadth` and
`\showboxdepth`.

Setting `\tracingoutput` to 1 can be particularly helpful when you’re
trying to determine why you’ve gotten extra space on a page.
]],
  tracingpages = [[
If this parameter is greater than zero, TeX will record in the log file
its calculations of the cost of various page breaks that it tries.

If `\tracingonline` is greater than zero, this information will also
appear at your terminal. TeX produces a line of this output whenever it
first places a box or insertion on the current page list, and also
whenever it processes a potential break point for the page. Examining
this output can be helpful when you’re trying to determine the cause of
a bad page break. See pages 112–114 of *The TeXbook* for an illustration
and explanation of this output.

Some production forms of TeX ignore the value of `\tracingpages` so that
they can run faster. If you need to use this parameter, be sure to use a
form that responds to it.
]],
  tracingparagraphs = [[
If this parameter is greater than zero, TeX will record in the log file
its calculations of the cost of various line breaks that it tries.

If `\tracingonline` is greater than zero, this information will also
appear at your terminal. TeX produces this output when it reaches the
end of each paragraph. See pages 98–99 of *The TeXbook* for an
illustration and explanation of this output.

Some production forms of TeX ignore the value of `\tracingparagraphs` so
that they can run faster. If you need to use this parameter, be sure to
use a form that responds to it.
]],
  tracingrestores = [[
If this parameter is greater than zero, TeX will record in the log file
the values that it restores when it encounters the end of a group. If
`\tracingonline` is greater than zero, this information will also appear
at your terminal.

Some production forms of TeX ignore the value of `\tracingrestores` so
that they can run faster. If you need to use this parameter, be sure to
use a form that responds to it.
]],
  tracingstats = [[
If this parameter is 1 or greater, TeX will include a report on the
resources that it used to run your job (see page 300 of *The TeXbook*
for a list and explanation of these resources). Moreover, if
`\tracingstats` is 2 or greater, TeX will report on its memory usage
whenever it does a `\shipout` for a page. The report appears at the end
of the log file.

If `\tracingonline` is greater than zero, the information will also
appear at your terminal. If you’re having trouble with TeX exceeding one
of its capacities, the information provided by `\tracingstats` may help
you pinpoint the cause of the difficulty.

Some production forms of TeX ignore the value of `\tracingstats` so that
they can run faster. If you need to use this parameter, be sure to use a
form that responds to it.

The following example shows a sample of the tracing output you’d get on
one implementation of TeX. It may be different on other implementations.
]],
  uchyph = [[
A positive value of `\uchyph` (uppercase hyphenation) permits
hyphenation of words, such as proper names, that start with a capital
letter. A zero or negative value inhibits such hyphenation. Plain
TeX sets `\uchyph` to 1, so TeX normally tries to hyphenate words that
start with a capital letter.
]],
  underbar = [[
This command puts `argument` into an hbox and underlines it without
regard to anything that protrudes below the baseline of the box.
]],
  underbrace = [[
`\overbrace`, `\overleftarrow`, `\overline`, `\overrightarrow`,
`\underbrace`, `\underline`

These commands place extensible braces, lines, or arrows over or under
the subformula given by `argument`. TeX will make these constructs as
wide as they need to be for the context. When TeX produces the extended
braces, lines, or arrows, it considers only the dimensions of the box
containing `argument`. If you use more than one of these commands in a
single formula, the braces, lines, or arrows they produce may not line
up properly with each other. You can use the `\mathstrut` command to
overcome this difficulty.
]],
  unhbox = [[
`\unhbox`, `\unvbox`

These commands produce the list contained in box register `register` and
make that box register void. `\unhbox` applies to box registers
containing hboxes and `\unvbox` applies to box registers containing
vboxes. You should use these commands in preference to `\unhcopy` and
`\unvcopy` (see below) when you don’t care about what’s in the box
register after you’ve used it, so as not to exhaust TeX’s memory by
filling it with obsolete boxes.
]],
  unhcopy = [[
`\unhcopy`, `\unvcopy`

These commands produce the list contained in box register `register` and
leave the contents of the register undisturbed. `\unhcopy` applies to
box registers containing hboxes and `\unvcopy` applies to box registers
containing vboxes.
]],
  unkern = [[
`\unkern`, `\unpenalty`, `\unskip`

If the last item on the current list is of type kern, glue, or penalty
respectively, these commands remove it from that list. If the item isn’t
of the right type, these commands have no effect. Like `\lastbox`, you
can’t apply them to lists in math mode or to the main vertical list.
These commands are most useful after a macro call that is known to have
inserted a specific item that you don’t want there. TeX doesn’t provide
an `\unbox` command because `\lastbox` produces nearly the same effect.
]],
  vadjust = [[
This command inserts the specified `vertical mode material` just after
the output line containing the position where the command occurs.

You can use it, for instance, to cause a page eject or to insert extra
space after a certain line.
]],
  valign = [[
This command produces a vertical alignment consisting of a sequence of
columns, where each column in turn contains a sequence of row entries.
TeX adjusts the heights of the row entries to accommodate the tallest
one in each row.

A vertical alignment can only appear when TeX is in a horizontal mode.
Because vertical alignments are (a) conceptually somewhat difficult and
(b) not often used, we recommend that you learn about alignments in
general and the `\halign` command (see above) before you attempt to use
the `\valign` command.

An alignment consists of a preamble followed by the text to be aligned.
The preamble, which describes the layout of the columns that follow,
consists of a sequence of row templates, separated by ‘`&`’ and ended by
`\cr`. Each column consists of a sequence of row entries, also separated
by ‘`&`’ and ended by `\cr`. Within a template, ‘`#`’ indicates where
TeX should insert the corresponding text of a row entry.

TeX typesets each row entry in internal vertical mode, i.e., as the
contents of a vbox, and implicitly encloses the entry in a group. It
always gives the vbox zero depth. Any text or other horizontal mode
material in a row entry then puts TeX into ordinary horizontal mode.
(This is just an application of the general rules for TeX’s behavior in
internal vertical mode.) The usual paragraphing parameters apply in this
case: the row entry has an initial indentation of `\parindent` and its
lines have the `\leftskip` and `\rightskip` glue appended to them.

Note in particular that a row entry containing text has a width of
`\hsize`. Unless you reset `\hsize` to the row width that you want,
you’re likely to encounter overfull hboxes, or find that the first
column takes up the width of the entire page, or both.

Normally, you need to include a strut

in each template so that the rows don’t come out crooked as a result of
the varying heights of the entries in the alignment. You can produce a
strut with the `\strut` command.

The `to` form of this command instructs TeX to make the vertical extent
of the alignment be `dimen`, adjusting the space between rows as
necessary. The `spread` form of this command instructs TeX to make the
alignment taller by `dimen` than its natural height. These forms are
like the corresponding forms of `\vbox` .
]],
  vcenter = [[
Every math formula has an invisible “axis” that TeX treats as a kind of
horizontal centering line for that formula. For instance, the axis of a
formula consisting of a fraction is at the center of the fraction bar.
The `\vcenter` command tells TeX to place the `vertical mode material`
in a vbox and to center the vbox with respect to the axis of the formula
it is currently constructing.

The first form of the command centers the material as given. The second
and third forms expand or shrink the material vertically as in the
`\vbox` command .
]],
  vdots = [[
This command produces three vertical dots.
]],
  vee = [[
`\amalg` (∐), `\ast`, `\bigcirc` (○), `\bigtriangledown` (▽),
`\bigtriangleup` (△), `\bullet` (•), `\cap` (∩), `\cdot` (⋅), `\circ`
(∘), `\cup` (∪), `\dagger` (†), `\ddagger` (‡), `\diamond` (⋄), `\div`
(÷), `\land` (∧), `\lor` (∨), `\mp` (∓), `\odot` (⊙), `\ominus` (⊖),
`\oplus` (⊕), `\oslash` (⊘), `\otimes` (⊗), `\pm` (±), `\setminus`,
`\sqcap` (⊓), `\sqcup` (⊔), `\star` (⋆), `\times` (×), `\triangleleft`
(⊲), `\triangleright` (⊳), `\uplus` (⊎), `\vee` (∨), `\wedge` (∧), `\wr`
(≀)

These commands produce the symbols for various binary operations. Binary
operations are one of TeX’s classes of math symbols. TeX puts different
amounts of space around different classes of math symbols. When
TeX needs to break a line of text within a math formula, it will
consider placing the break after a binary operation—but only if the
operation is at the outermost level of the formula, i.e., not enclosed
in a group.

In addition to these commands, TeX also treats ‘`+`’ and ‘`-`’ as binary
operations. It considers ‘`/`’ to be an ordinary symbol, despite the
fact that mathematically it is a binary operation, because it looks
better with less space around it.
]],
  vsize = [[
This parameter specifies the current vertical extent of a page.
TeX examines it only when it is starting a page. Thus if you change
`\vsize` in the middle of a page, your change won’t affect anything
until the following page. If you want to change the vertical extent of a
page when you’re in the middle of it, you should assign the new height
to `\pagegoal` instead. (If you want the change to affect the following
pages too, you should change *both* `\vsize` and `\pagegoal`.) Plain
TeX sets `\vsize` to `8.9in`.
]],
  vsplit = [[
This command causes TeX to split the box numbered `number`, which we’ll
call $B_2$, into two parts. It uses the same algorithm that it would use
if $B_2$ was a page and it was breaking that page; the division point
then corresponds to the page break that it would find. The box $B_2$
must be a vbox, not an hbox. TeX puts the material preceding the
division point into another box $B_1$ and leaves the material after the
division point in $B_2$. The `\vsplit` command then produces $B_1$.
Normally you’d assign $B_1$ to a different box register, as in the
example below. If the division point is at the end of $B_2$, $B_2$ will
be empty after the `\vsplit`.

TeX employs its usual page-breaking algorithm

for the split. It uses `dimen` for `\pagegoal`, the desired height of
$B_1$. The vertical extent of $B_1$ may not be exactly `dimen` because
TeX may not be able to achieve its page goal perfectly. TeX does not
consider insertions in calculating the split, so insertions in the
original vertical list of $B_2$ will be retained but won’t affect the
split point.
]],
  vtop = [[
`\vbox`, `\vtop`

These commands produce a vbox (vertical box) containing
`vertical mode material`. The braces around `vertical mode material`
define a group. TeX is in internal vertical mode when it’s assembling
the box. TeX won’t change the size of the box once it’s been produced.

The difference between `\vtop` and `\vbox` lies in where TeX puts the
reference point of the constructed vbox. Ordinarily, the reference point
gotten from `\vtop` tends to be at or near the top of the constructed
vbox, while the reference point gotten from `\vbox` tends to be at or
near the bottom of the constructed vbox. Thus a row of vboxes all
constructed with `\vtop` will tend to have their tops nearly in a line,
while a row of vboxes all constructed with `\vbox` will tend to have
their bottoms nearly in a line.

`\vtop` and `\vbox` are often useful when you want to keep some text
together on a single page. (For this purpose, it usually doesn’t matter
which command you use.) If your use of these commands prevents TeX from
breaking pages in an acceptable way, TeX will complain that it’s found
an overfull or underfull vbox while `\output` is active.

The height of a vbox depends on the arguments to `\vtop` or `\vbox`. For
`\vbox`, TeX determines the height as follows:

-   If you specify only `vertical mode material`, the vbox will have its
    natural height.

-   If you specify `to` `dimen`, the height of the vbox will be `dimen`.

-   If you specify `spread` `dimen`, the height of the vbox will be its
    natural height plus `dimen`, i.e., the height of the vbox will be
    stretched vertically by `dimen`.

For `\vtop`, TeX constructs the box using its rules for `\vbox` and then
apportions the vertical extent between the height and the depth as
described below.

Ordinarily, the width of a constructed vbox is the width of the widest
item inside it.[1] The rules for apportioning the vertical extent
between the height and the depth are more complicated:

-   For `\vtop`, the height is the height of its first item, if that
    item is a box or rule. Otherwise the height is zero. The depth is
    whatever vertical extent remains after the height is subtracted.

-   For `\vbox`, the depth is the depth of its last item, if that item
    is a box or rule. Otherwise the depth is zero. The height is
    whatever vertical extent remains after the depth is subtracted. [2]

The `\vfil` command is useful for filling out a vbox

with empty space when the material in the box isn’t as tall as the
vertical extent of the box.

[1] More precisely, it’s the distance from the reference point to the
rightmost edge of the constructed vbox. Therefore, if you move any of
the items right using `\moveright` or `\moveleft` (with a negative
distance), the constructed vbox might be wider.

[2] In fact, there’s a further complication. Suppose that after the
depth has been determined using the two rules just given, the depth
turns out to be greater than `\boxmaxdepth`. Then the depth is reduced
to `\boxmaxdepth` and the height is adjusted accordingly.
]],
  widowpenalty = [[
This parameter specifies the penalty for breaking a page just before the
last line of a paragraph. A line by itself at the top of a page is
called a “widow line”. Plain TeX sets `\widowpenalty` to 150.
]],
  wlog = [[
This command writes `token list` on the log file.

TeX expands `token list` according to the same rules that it uses for
`\edef`.
]],
  write = [[
This command tells TeX to write `token list` to the file associated with
the output stream designated by `number`. It generates a whatsit that
becomes part of a box. The actual writing does not take place until
TeX ships out that box to the .dvi file, unless you’ve preceded the
`\write` with `\immediate`.

For a `\write` that is not immediate, TeX does not expand macros in
`token list` until the token list is actually written to the file. The
macro expansions follow the same rules as `\edef`. In particular, any
control sequence that is not the name of a macro is written as
`\escapechar` followed by the control sequence name and a space. Any
‘`#`’ tokens in `token list` are doubled, i.e., written as ‘`##`’.

If `number` is not in the range from 0 to 15, TeX writes
`token list` to the log file.

If `number` is greater than 15 or isn’t associated with an output
stream, TeX also writes `token list` to the terminal.
]],
  xdef = [[
This command is equivalent to `\global\edef`.
]],
  year = [[
TeX sets this parameter to the current year (A.D.). It is a number such
as 1991. `\year` is set at the beginning of your run (see the comments
on `\time` above).
]]
}