summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/texlive/texlive-zh-cn/texlive-zh-cn.tex
blob: abb8acc13abc43f1ed71866058d716a63be8b9bc (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
% $Id$
% TeX Live documentation.  Originally written by Sebastian Rahtz and
% Michel Goossens, now maintained by Karl Berry and others.
% Translated by Jjgod Jiang  <gzjjgod@gmail.com>,
%               Jinsong Zhao <jinsong.zhao@gmail.com>,
%               Yue Wang     <yulewang@gmail.com>
%               Helin Gai    <helin.gai@gmail.com>
% Public domain.
%
\documentclass{article}
\let\tldocenglish=1  % for live4ht.cfg

\usepackage{tex-live-zh-cn, indentfirst}

\begin{document}

\title{%
  {\huge \textit{\TeX\ Live 指南}\\\smallskip}%
  {\LARGE \textsf{\TL{} 2012}}
}

\author{Karl Berry 编写 \\[3mm]
        \url{http://tug.org/texlive/}
       }

\date{2012 年 6 月}

\maketitle

\begin{multicols}{2}
\tableofcontents
%\listoftables
\end{multicols}

\section{简介}
\label{sec:intro}

\subsection{\TeX\ Live 与 \TeX\ Collection}

本文档描述 \TL{} 软件的主要功能和特性,\TL{} 是 \TeX{} 及其相关程序在
\acro{GNU}/Linux 及其他类 Unix 系统、\MacOSX\ 和 Windows
系统下的一套发行版。

你可以直接下载 \TL{},也可以在 \TeX{} 用户组织给会员分发的 \TK{}
\DVD 中找到。第~\ref{sec:tl-coll-dists}~节中,简要地介绍了
\DVD 的内容。这两套发行版都是用户组织共同协作完成的。
这篇文档, 主要介绍 \TL{} 本身。

\TL{} 包括了 \TeX{}, \LaTeXe{}, \ConTeXt, \MF, \MP, \BibTeX{}
等许多可执行程序;种类繁多的宏包、字体和文档,并支持世界上许多
不同的语言。

文档末尾的第~\ref{sec:history}~节 (第~\pageref{sec:history}~页)
介绍了这一版 \TL{} 的重要改变。

\htmlanchor{platforms}
\subsection{操作系统支持}
\label{sec:os-support}

\TL{} 为多种基于 Unix 的平台提供了可执行文件,包括 \GNU/Linux、
\MacOSX{}、和 Cygwin。它还包含了源代码,可供在没有提
供可执行文件的平台上编译安装。

至于 Windows,\TL{} 仅支持 Windows \acro{XP} 或后续版本。
Windows~2000 可能可以继续工作。我们没有包含 64 位的 Windows
可执行文件,不过 32 位的可执行文件也能 64 位的系统上正常运行。

除了 \TL{} 以外,Windows 和 \MacOSX 用户还有其它的选择,请参考
第~\ref{sec:tl-coll-dists}~节。

\subsection{\protect\TL{} 的基本安装}
\label{sec:basic}

你可以使用 \DVD{} 方式或者网络方式来安装 \TL{}
(\url{http://tug.org/texlive/acquire.html})。
通过网络的安装程序本身非常小,它可以从网上下载所有的你所要求的软
件包。网络安装程序对仅使用 \TL{} 一小部分的用户来说非常适宜。

\DVD{} 安装程序可以把 \TL{} 安装到你的本地磁盘上。你不能直接从 \TK{}
\DVD{} (或者它的 \code{.iso} 镜像) 上运行 \TL{},但你可以在一个 \acro{USB} 盘上
安装一套可以运行的版本 (参见 \ref{sec:portable-tl})。安装方法将
在下面的章节介绍 (\p.\pageref{sec:install}),这里提供一个快速入门:

\begin{itemize*}

\item 安装脚本的名称是 \filename{install-tl}。它可以在指定了
\code{-gui=wizard} 选项的情况下以“向导”模式 (Windows 下的默认模式)
工作,或指定 \code{-gui=text} 选项以文本模式 (其它系统下默认模式)
工作,还有一个专家 \GUI{} 模式可以通过 \code{-gui=perltk} 选项启用。

\item 安装完成后可以得到一个名为 \prog{tlmgr} 的程序:`\TL\ Manager'。
和安装程序一样,它可以在 \GUI{} 模式或文本模式下运行。你不但可以用它
来安装或卸载软件包,还可以用来完成各种配置工作。

\end{itemize*}


\subsection{获得帮助}
\label{sec:help}

\TeX{} 社群是活跃而友好的,几乎所有认真的提问都能得到回答。尽管如此,这种由志愿者
和业余读者组成的技术支持仍然显得不太正式,所以,在提问前最好做好功课。(如果你更喜欢
有保障的商业性技术支持,可以放弃 \TL{},改为购买商业 \TeX{} 系统,在
\url{http://tug.org/interest.html#vendors} 上有一份销售商的列表。)

按照推荐使用的顺序,我们列出了这样一份资源列表:

\begin{description}
\item [起步] 如果你刚刚接触 \TeX,\url{http://tug.org/begin.html}
这个网页提供了这个系统的简短介绍。

\item [\TeX{} \acro{FAQ}] 这套庞大的 \TeX{} \acro{FAQ} 对各种各样的
问题——从最基础到最晦涩的——都给予了简明的回答,它在 \TL{} 的
\OnCD{texmf-dist/doc/generic/FAQ-en/html/index.html},也可以在
\url{http://www.tex.ac.uk/faq} 网站上找到。有问题时请先看看这里能否找
到解答。

\item [\TeX{} Catalogue] 如果你在寻找某个特定的宏包、字体、程序等等,\TeX{}
Catalogue 就是你首先该找的地方。这里是所有 \TeX{} 相关内容的一个巨大集合。参见
\url{http://mirror.ctan.org/help/Catalogue/}。

\item [\TeX{} 网上资源] \url{http://tug.org/interest.html}~页面上有
许多和 \TeX{} 相关的链接,包括讨论这个系统方方面面的许多书籍、手册和文章。

\item [支持信息的归档] 最重要的两个技术支持论坛是 Usenet 的新闻组
\url{news:comp.text.tex} 和邮件列表 \email{texhax@tug.org}。它们的内容
归档中有多年以来的提问和回答供你搜索。你可以分别从 \\
\url{http://groups.google.com/groups?group=comp.text.tex} 和 \\
\url{http://tug.org/mail-archives/texhax} 进行查询。当然,一般性的搜索
方式,比如用 \url{http://google.com} 找找,总没有坏处。

\item [提问] 如果你还是找不到答案,就可以通过 Google 或者你的新闻组阅读器在
\dirname{comp.text.tex} 上提问,或者发送邮件到 \email{texhax@tug.org}。
不过,在提问之前\emph{请一定}先阅读 \acro{FAQ} 上的这一条:
\url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=askquestion},
它能提高你获得回答的可能性。
Also worth mentioning are the \LaTeX{} Community site at
另外值得提到的有位于 \url{http://www.latex-community.org/} 的
\LaTeX{} Community 和它的论坛
\url{http://www.latex-community.org/forum/} 以及
在 \url{http://tex.stackexchange.com/} 的 \TeX\ StackExchange。

\item [\TL{} 技术支持] 如果你需要报告 bug,或者提出对 \TL{} 的发行、安装或
文档的建议和意见,可以使用 \email{tex-live@tug.org} 这个邮件列表。不过,如果问题
是针对 \TL{} 中包含的某个特定程序,那最好还是写信给这个程序的维护者或邮件列表。
用 \code{-{}-help} 参数来运行程序都一般能得到用来报告其 bug 的地址。

\end{description}

另一方面,你也不妨帮助其他有问题的朋友,\dirname{comp.text.tex} 与
\code{texhax} 都是对所有人开放的,请尽管参与进去,在你能力所及的范围内提供帮助。

% don't use \TL so the \uppercase in the headline works.  Also so
% tex4ht ends up with the right TeX.  Likewise the \protect's.
\section{\protect\TeX\protect\ Live 概览}
\label{sec:overview-tl}

这个小节描述的是 \TL{} 的内容,以及包含 \TL{} 的 \TK{}。

\subsection{\TL, pro\TeX{}t, Mac\TeX\ 的大集合:\TK}
\label{sec:tl-coll-dists}

\TK{} 的 \DVD{} 包含了以下内容:

\begin{description}

\item [\TL] 是一个完整的 \TeX{} 系统,它可以安装在本
地磁盘上。它的主页在 \url{http://tug.org/texlive/}。

\item [Mac\TeX] 在 \TL{} 的基础上增加了原生的 \MacOSX\ 的安装程序和一些其它的
Mac 应用程序。它的主页在 \url{http://tug.org/mactex/}。

\item [pro\TeX{}t] 是 Windows 下的 \MIKTEX\ 发行版的一个增强版本。\ProTeXt\ 在
\MIKTEX\ 基础上增加了一些工具,简化了安装。它完全独立于 \TL{},有其
自己的安装步骤。\ProTeXt\ 的主页在 \url{http://tug.org/protext}。

\item [CTAN] 一份 \CTAN{} 仓库的快照 (\url{http://mirror.ctan.org})。

\item[\texttt{texmf-extra}] 一个提供额外的配套软件包的目录。

\end{description}

\CTAN{}, \pkgname{protext} 和 \dirname{texmf-extra} 并不一定遵循 \TL{}
的版权协议,因此在分发或修改时要格外地小心。

\subsection{\TL{} 的顶层目录}
\label{sec:tld}

这里是 \TL{} 发行版顶层目录的一个简短的列表和描述。

\begin{ttdescription}
\item[bin] \TeX{} 系统程序,按平台组织。
%
\item[readme.html] 网页,提供了多种语言的简介和有用的链接。
\item[readme-*.dir] \TL{} 多种语言的简介和有用的链接,同时有 \HTML{}
和纯文本版本。

%
\item[source] 所有程序的源代码,包括主要的基于 \Webc{} 的 \TeX{}
  发行版。
%
\item[texmf] 见下文的 \dirname{TEXMFMAIN}。
%
\item[texmf-dist] 见下文的 \dirname{TEXMFDIST}。
%
\item[tlpkg] 用来维护安装程序所用到的脚本,程序和数据,以及对
Windows 的特殊支持。
\end{ttdescription}

上述目录之外,安装脚本和 (多种语言的) \filename{README} 文件也存放在发行版的顶层目录下。

至于文档,顶层目录下的 \OnCD{doc.html} 文件中提供的完整的链接会有帮助。
程序的文档 (手册,man page, Info 文件等) 在 \dirname{texmf/doc}
目录下,因为这些程序本身是属于 \dirname{texmf} 目录的。\TeX\ 宏包与格式文件
的文档则放在 \dirname{texmf-dist/doc} 目录。但不管放在哪个地方,你都可以使用
\cmdname{texdoc} 程序来寻找这些文档。

\TL\ 本身的文档在 \dirname{texmf/doc/texlive} 目录下,有以下这些语言的版本:

\begin{itemize*}
\item{捷克/斯洛伐克语:} \OnCD{texmf/doc/texlive/texlive-cz}
\item{德语:} \OnCD{texmf/doc/texlive/texlive-de}
\item{英语:} \OnCD{texmf/doc/texlive/texlive-en}
\item{法语:} \OnCD{texmf/doc/texlive/texlive-fr}
\item{意大利语:} \OnCD{texmf/doc/texlive/texlive-it}
\item{波兰语:} \OnCD{texmf/doc/texlive/texlive-pl}
\item{俄语:} \OnCD{texmf/doc/texlive/texlive-ru}a
\item{塞尔维亚语:} \OnCD{texmf/doc/texlive/texlive-sr}
\item{简体中文:} \OnCD{texmf/doc/texlive/texlive-zh-cn}
\end{itemize*}


\subsection{预定义的 texmf 目录树概览}
\label{sec:texmftrees}

本小节列出了系统中用于指定 texmf 目录的所有预定义变量及其用途,
以及 \TL{} 的默认布局。\texttt{tlmgr~conf} 命令可
以列出这些变量的值,这样你可以很容易找到它们和你所安装到的目录
名称的对应关系。

所有这些目录树,包括个人的,都应该遵循 \TeX\ 目录结构 (\TDS,
\url{http://tug.org/tds}),包括其中所有细小的子目录,否则文件就
可能找不到。第 \ref{sec:local-personal-macros} 节 (第
\pageref{sec:local-personal-macros} 页) 有更详细的介绍。

\begin{ttdescription}
\item [TEXMFMAIN] 存储系统核心部件的目录树,包括配置文件、辅助
脚本和程序文档。
\item [TEXMFDIST] 存储主要的宏包、字体等等。
\item [TEXMFLOCAL] 系统管理员用来安装供整个系统使用的额外的或更新过的宏包、字体的目录。
\item [TEXMFHOME] 给用户存放它们自己独立安装的的宏包、字体等等。
这个变量根据不同的用户选择不同的主目录。
\item [TEXMFCONFIG] 给 \verb+texconfig+、\verb+updmap+、和 \verb+fmtutil+
这些程序存储个人修改过的配置文件。
\item [TEXMFSYSCONFIG] 给 \verb+texconfig-sys+、\verb+updmap-sys+ 和
\verb+fmtutil-sys+ 这些程序存储修改过的全局文件.
\item [TEXMFVAR] 这个目录是给 \verb+texconfig+、\verb+updmap+ 和
  \verb+fmtutil+ 存储 (缓存) 格式文件、生成 map 文件这类运行时个人数据的。
\item [TEXMFSYSVAR] 给 \verb+texconfig-sys+、\verb+updmap-sys+ 和
\verb+fmtutil-sys+ 还有 \verb+tlmgr+ 这几个命令存储、缓存运行时使用的格式文件和
生成的 map 文件,对整个系统都有效。
\item [TEXMFCACHE] \ConTeXt\ Mk\acro{IV} 用来保存 (缓存的) 运行时数据的目录树。
\end{ttdescription}

\noindent
默认的目录结构:
\begin{description}
  \item[全系统根目录] 可以包含多个 \TL{} 版本:
  \begin{ttdescription}
    \item[2011] 上一个版本。
    \item[2012] 当前版本。
    \begin{ttdescription}
      \item [bin] ~
      \begin{ttdescription}
        \item [i386-linux] \GNU/Linux 二进制文件
        \item [...]
        \item [universal-darwin] \MacOSX\ 二进制文件
        \item [win32] Windows 二进制文件
      \end{ttdescription}
      \item [texmf\ \ \ \ \ \ \ ] 这是 \envname{TEXMFMAIN}。
      \item [texmf-dist\ \ ]      \envname{TEXMFDIST}
      \item [texmf-var \ \ ]      \envname{TEXMFSYSVAR}
      \item [texmf-config]        \envname{TEXMFSYSCONFIG}
    \end{ttdescription}
    \item [texmf-local] \envname{TEXMFLOCAL} 用来存放在不同版本间共享的数据。
  \end{ttdescription}
  \item[用户主 (home) 目录] (\texttt{\$HOME} 或
      \texttt{\%USERPROFILE\%})
    \begin{ttdescription}
      \item[.texlive2011] 给上个版本的,个人生成和配置的数据。
      \item[.texlive2012] 给这个版本的,个人生成和配置的数据。
      \begin{ttdescription}
        \item [texmf-var\ \ \ ] \envname{TEXMFVAR}, \envname{TEXMFCACHE}
        \item [texmf-config]    \envname{TEXMFCONFIG}
      \end{ttdescription}
    \item[texmf] \envname{TEXMFHOME} 个人的宏包文件,等等。
      \textit{等等。}
  \end{ttdescription}
\end{description}


\subsection{\protect\TeX\ 的扩展版本}
\label{sec:tex-extensions}

原始的 Knuth \TeX{} 本身的开发已经冻结了,仅仅修改除去发现的
极其少量的错误。它在 \TL\ 中仍然作为 \prog{tex} 程序出现,在
可见的未来也仍然如此。\TL{} 包括了一些建立在 \TeX\ 基础上的
扩展程序:

\begin{description}

\item [\eTeX] 为 \TeX\ 增加了一套新的原语 (primitive)。
\label{text:etex} (包括宏展开,字符扫描,mark 的分类,额外的调试功能,等等)
以及用于双向排版的 \TeXXeT{} 扩展模式。在默认模式下,\eTeX{} 是与原始的 \TeX\
100\% 兼容的。参见 \OnCD{texmf-dist/doc/etex/base/etex_man.pdf}。

\item [pdf\TeX] 在 \eTeX\ 扩展的基础上构建,在 \dvi{} 输出之外增加对
\acro{PDF} 输出的支持,以及许多其他的扩展。
这是针对 \prog{etex}, \prog{latex} 或 \prog{pdflatex} 这些格式使用的缺省程序。
可以在 \OnCD{texmf/doc/pdftex/manual/samplepdf/samplepdf.tex} 找到展示部分功
能的例子。

\item  [Lua\TeX] 是 pdf\TeX\ 指定的后继者,而且对 pdf\TeX\ 保持大部分
(但不是完全地) 向下兼容。它也希望包含 Aleph (见后) 的功能,尽管在技术
上未必与它兼容。它内置的 Lua 语言解释器 (\url{http://www.lua.org}) 为
许多棘手的 \TeX{} 问题提供了优雅的解决方案。
当以 \filename{texlua} 命令执行时,它就像一个标准的 Lua 解释器一样工作,
所以,Lua\TeX\ 在 \TL\ 中也被作为 Lua 程序的解释器。
见 \url{http://www.luatex.org} 和 \OnCD{texmf-dist/doc/luatex/luatexref-t.pdf}。

\item [Xe\TeX] 通过第三方库,增加对 Unicode 输入文本和 OpenType 字体的支持,
能够直接使用系统字体。参见 \url{http://tug.org/xetex}。

\item [\OMEGA\ (Omega)] 基于 Unicode (16 位字符集),因而同时支持处理世界上
几乎所有的语言。它同时还支持所谓的 `\OMEGA{} Translation Processes' (\acro{OTP}),
用于对任意输入进行复杂的变换操作。Omega 现在已经不作为单独的程序出现在 \TL{}
中了;改为只支持 Aleph:

\item [Aleph] 将 \OMEGA\ 与 \eTeX\ 扩展合并到一起得到的。
参见 \OnCD{texmf-dist/doc/aleph/base}。

\end{description}


\subsection{\protect\TL\ 中其他值得一提的程序}

这里是在 \TL{} 中其他的一些常用程序:

\begin{cmddescription}

\item [bibtex, bibtex8] 参考文献支持。

\item [makeindex, xindy] 索引支持。

\item [dvips] 将 \dvi{} 转换为 \PS{}。

\item [xdvi] X Window System 下的 \dvi{} 阅读器。

\item [dvilj] HP LaserJet 系列打印机的 \dvi{} 驱动。

\item [dviconcat, dviselect] 从 \dvi{} 文件中复制和粘贴页面。

\item [dvipdfmx] 将 \dvi{} 转换为 \acro{PDF},是 (前面提到过的)
pdf\TeX\ 的一套替换方案。

\item [psselect, psnup, \ldots] \PS{} 实用程序。

\item [pdfjam, pdfjoin, \ldots] \acro{PDF} 实用程序。

\item [texexec, texmfstart] Con\TeX{}t 和 \acro{PDF} 处理工具。

\item [tex4ht] \TeX{} 到 \acro{HTML} (还有 \acro{XML} 等其他格式)
的转换器。

\end{cmddescription}


\subsection{\TL\ 中的字体}
\label{sec:tl-fonts}

\TL{} 中包括了很多的高质量矢量字体,参见 \url{http://tug.org/fonts} 和
\OnCD{texmf-dist/doc/fonts/free-math-fonts-survey}。

\htmlanchor{installation}
\section{安装}
\label{sec:install}

\subsection{启动安装程序}
\label{sec:inst-start}

首先请找来一张 \TK{} 的 \DVD{},或者下载 \TL{} 的网络安装程序,然后
找到这个安装脚本:Unix 下是 \filename{install-tl},Windows 下是
\filename{install-tl.bat}。参见 \url{http://tug.org/texlive/acquire.html}
以了解更多关于获得这个软件的信息和方法。

\begin{description}
\item [网络安装程序:] 在 \CTAN 的 \dirname{systems/texlive/tlnet}
目录下可以下载,\url{http://mirror.ctan.org/systems/texlive/tlnet} 这个地址能
自动将你导向一个附近的、保持更新的镜像。你可以下载同时支持 Unix 和
Windows 的 \filename{install-tl.zip} 或者小得多、但只支持 Unix 的
\filename{install-unx.tar.gz}。解压后,\filename{install-tl} 和
\filename{install-tl.bat} 就会出现在 \dirname{install-tl} 子目录中。

\item [\TeX{} Collection \DVD:] 打开 \DVD\ 的 \dirname{texlive} 这个子目录。
在 Windows 下安装程序通常在插入 \DVD 后就自动启动了。要获得 \DVD 的
话可以加入一个 \TeX\ 用户组织 (推荐这么做,参见
\url{http://tug.org/usergroups.html}) 或是单独购买 (通过
\url{http://tug.org/store}),又或者是自己从 \ISO\ 镜像刻录。
在多数系统里你都可以直接挂载这个 \ISO{}。在从 \DVD\ 或者 \ISO{} 安装后,
如果还希望从 Internet 获得持续的更新,请看第 \ref{sec:dvd-install-net-updates}
节。

\end{description}

不管从哪里载入,执行的都是同一个安装程序。两者最明显的区别是通过网络安装
得到的当前可用的程序包。这和和 \DVD\ 或者 \ISO\ 镜像在主版本之间不能更新
不同。

\noindent
下面的章节介绍更详细地介绍了安装程序的启动。

\subsubsection{Unix}

\filename{install-tl} 是一个 Perl 脚本。在 Unix 兼容的系统下启动它最简单
的方法是这样的:

\begin{alltt}
> \Ucom{cd /path/to/installer}
> \Ucom{perl install-tl}
\end{alltt}
(或者你可以直接运行 \Ucom{perl /path/to/installer/install-tl},或者
\Ucom{./install-tl},如果这个文件有可执行属性,我们不会把所有这些执
行方法列出来。) 你可能需要扩大终端窗口的大小才能在一屏内显示完整的
文本安装程序界面 (图~\ref{fig:text-main})。

要在专家 \GUI\ 模式下安装 (见图~\ref{fig:gui-main}),你需要加入了
\acro{XFT} 支持的 \dirname{Perl/TK}模块,\GNU/Linux 下通常都是这样,
但其他系统下可能不是。这种情况下,你可以运行:
\begin{alltt}
> \Ucom{perl install-tl -gui}
\end{alltt}

要列出所有这些选项:
\begin{alltt}
> \Ucom{perl install-tl -help}
\end{alltt}

\textbf{关于 Unix 下权限的警告:} 在安装过程中,\TL{} 安装程序将会
遵照你的 \code{umask} 行事。所以如果你需要让你的安装能给其他用户使
用,就必须保证你设置的权限足够,比如 \code{umask 002}。更多关于
\code{umask} 的信息请参见你自己系统的文档。

\textbf{关于 Cygwin 的特殊考虑:} 和其他 Unix 兼容系统不同,Cygwin
并没有包含所有运行 \TL{} 安装程序所必须的程序,详见第~\ref{sec:cygwin}~节。

\subsubsection{Mac OS X}

如第~\ref{sec:tl-coll-dists}~节提到的,我们给 \MacOSX 准备了一套独立的
发行版,叫做 Mac\TeX\ (\url{http://tug.org/mactex})。我们推荐使用原生的
Mac\TeX\ 安装程序,而不是 \TL\ 自带的那个,因为原生的安装程序做了一些
针对 Mac 的调整,尤其方便在多个 \MacOSX 下的 \TeX\ 发行版 (Mac\TeX, Fink,
MacPorts, \ldots) 之间切换。

Mac\TeX\ 是严格依赖 \TL 构建的,所以主 \TeX\ 树也是完全一致的。不过它添
加了一些用来存放 Mac 专有文档和程序的目录。

\subsubsection{Windows}

如果你使用的是网络安装程序,又或者 \DVD 安装程序无法自动启动了,请
双击 \filename{install-tl.bat}。如果你需要更多定制选项,比如要选择
特定的包集合,请改为运行 \filename{install-tl-advanced.bat}。

你也可以从命令行提示符下启动安装程序。下面 \texttt{>} 表示的就是提示符,
用户输入用 \Ucom{\texttt{bold}} 体表示。如果你正在安装程序目录下,只需要
运行:
\begin{alltt}
> \Ucom{install-tl}
\end{alltt}

或者你也可以通过绝对路径来运行,比如:
\begin{alltt}
> \Ucom{D:\bs{}texlive\bs{}install-tl}
\end{alltt}
这是对 \TK\ \DVD 而言的,假定 \dirname{D:} 是光驱。图~\ref{fig:wizard-w32}
展示了向导安装程序,它是 Windows 下的默认形式。

要在文本模式下安装,使用:
\begin{alltt}
> \Ucom{install-tl -no-gui}
\end{alltt}

要列出所有可用的选项:
\begin{alltt}
> \Ucom{install-tl -help}
\end{alltt}

\begin{figure}[tb]
\begin{boxedverbatim}
Installing TeX Live 2012 from: ...
Platform: i386-linux => 'Intel x86 with GNU/Linux'
Distribution: inst (compressed)
...
 Detected platform: Intel x86 with GNU/Linux

 <B> platforms: 1 out of 19

 <S> installation scheme (scheme-full)
     84 collections out of 85, disk space required: 2600 MB

 Customizing installation scheme:
   <C> standard collections
   <L> language collections

 <D> directories:
   TEXDIR (the main TeX directory):
     /usr/local/texlive/2012
   ...

 <O> options:
   ...

 <V> set up for portable installation

Actions:
 <I> start installation to hard disk
 <H> help
 <Q> quit
\end{boxedverbatim}
\caption{文本安装程序主界面 (\GNU/Linux)}\label{fig:text-main}
\end{figure}

\begin{figure}[tb]
\tlpng{install-lnx-main}{\linewidth}
\caption{专家模式 \GUI{} 安装程序界面 (\GNU/Linux)}\label{fig:gui-main}
\end{figure}

\begin{figure}[tb]
\tlpng{wizard-w32}{\linewidth}
\caption{向导模式安装程序界面 (Windows)}\label{fig:wizard-w32}
\end{figure}


\htmlanchor{cygwin}
\subsubsection{Cygwin}
\label{sec:cygwin}

\TL{} 安装程序只支持 Cygwin 1.7。
在开始安装之前,请先使用 Cygwin 的 \filename{setup.exe} 程序安装
\filename{perl} 和 \filename{wget} 软件包,如果你还没装过。此外
还推荐安装下列软件包:
\begin{itemize*}
\item \filename{fontconfig} [\XeTeX\ 需要]
\item \filename{ghostscript} [各种实用工具需要]
\item \filename{libXaw7} [\code{xdvi} 需要]
\item \filename{ncurses} [给安装程序提供 \code{clear} 命令]
\end{itemize*}

\subsubsection{文本界面安装程序}

图~\ref{fig:text-main} 展示了 Unix 下文本模式的主界面,这是 Unix
下安装程序的默认界面。

这是一个完全用命令行操作的安装程序,完全不支持光标移动。所以你无法
在多选框或者输入框之间用 Tab 上下切换,只能在提示符下输入特定的字符
(大小写敏感的) 然后按下 Enter,整个终端窗口就会把新的内容刷新出来。

文本安装程序之所以这么简陋是因为它要尽可能支持最多的平台,就算
只有一个 Perl 的系统也能运行它。

\subsubsection{专家图形界面安装程序}

图~\ref{fig:gui-main} 展示了 \GNU/Linux 下的专家图形界面安装程序。
除使用了按钮和菜单以外,这个和文本模式的安装程序没什么区别。

这个模式可以通过下面的命令手工启动:
\begin{alltt}
> \Ucom{install-tl -gui=perltk}
\end{alltt}

\subsubsection{简化的向导安装程序}

在 Windows 下,缺省会使用我们所支持的最简单的安装方法,也就是“向导”安装
程序 (图~\ref{fig:wizard-w32})。它会把所有东西都装上,不提任何问题。如果
你需要定制安装,请运行其他的安装程序。

这个模式可以通过下面的命令手工启动:
\begin{alltt}
> \Ucom{install-tl -gui=wizard}
\end{alltt}


\subsection{执行安装程序}
\label{sec:runinstall}

安装程序应该不需要文档就足够明确,但下面还是对这些选项和子菜单作一点说明。

\subsubsection{二进制系统菜单 (只对 Unix 适用)}
\label{sec:binary}

\begin{figure}[tb]
\begin{boxedverbatim}
Available platforms:
===============================================================================
   a [ ] alpha-linux      DEC Alpha with GNU/Linux
   b [ ] amd64-freebsd    x86_64 with FreeBSD
   c [ ] amd64-kfreebsd   x86_64 with GNU/kFreeBSD
   d [ ] armel-linux      ARM with GNU/Linux
   e [ ] i386-cygwin      Intel x86 with Cygwin
   f [ ] i386-freebsd     Intel x86 with FreeBSD
   g [ ] i386-kfreebsd    Intel x86 with GNU/kFreeBSD
   h [X] i386-linux       Intel x86 with GNU/Linux
   i [ ] i386-solaris     Intel x86 with Solaris
   j [ ] mips-irix        SGI IRIX
   k [ ] mipsel-linux     mipsel with Linux
   l [ ] powerpc-aix      PowerPC with AIX
   m [ ] powerpc-linux    PowerPC with GNU/Linux
   o [ ] sparc-solaris    Sparc with Solaris
   p [ ] universal-darwin universal binaries for MacOSX/Darwin
   s [ ] win32            Windows
   t [ ] x86_64-darwin    x86_64 with MacOSX/Darwin
   u [ ] x86_64-linux     x86_64 with GNU/Linux
   v [ ] x86_64-solaris   x86_64 with Solaris
\end{boxedverbatim}
\caption{Binaries (二进制程序) 菜单}\label{fig:bin-text}
\end{figure}

图~\ref{fig:bin-text} 展示了文本模式下的 binaries (二进制程序)
菜单。默认情况下只会安装你当前平台下的二进制程序。在这个菜单下,
你可以选择安装其他平台的二进制程序。这对你要将 \TeX\ 树共享在
异构网络上的情况比较有用,又或者用于双启动的系统。

\subsubsection{选择要安装的组件}
\label{sec:components}

\begin{figure}[tbh]
\begin{boxedverbatim}
Select scheme:
===============================================================================
 a [X] full scheme (everything)
 b [ ] medium scheme (small + more packages and languages)
 c [ ] small scheme (basic + xetex, metapost, a few languages)
 d [ ] basic scheme (plain and latex)
 e [ ] minimal scheme (plain only)
 f [ ] ConTeXt scheme
 g [ ] GUST TeX Live scheme
 h [ ] teTeX scheme (more than medium, but nowhere near full)
 i [ ] XML scheme
 j [ ] custom selection of collections
\end{boxedverbatim}
\caption{Scheme (安装方案) 菜单}\label{fig:scheme-text}
\end{figure}

图~\ref{fig:scheme-text} 展示了 \TL\ 的安装方案菜单;从这里你选择的是
一套``安装方案'',也就是对软件包集合的一个统一划分。默认的 \optname{full}
方案会把所有可用的都装上。这是推荐方案,不过你也可以给小点的系统选择
\optname{basic} 方案,为测试选用 \optname{minimal} 方案,又或者是
介乎其间的 \optname{medium} 或 \optname{teTeX} 方案。还有许多特殊或者
专门针对特定国家的方案。

\begin{figure}[tb]
\tlpng{stdcoll}{.7\linewidth}
\caption{Collections (集合) 菜单}\label{fig:collections-gui}
\end{figure}

你可以使用 `standard collections' 与 `language collections' 菜单来详细
选择安装方案。(图~\ref{fig:collections-gui} 显示了 \GUI 模式下修改的情
况。)

Collection (安装集合) 是比 scheme (方案) 要更细的一层 \Dash 实际上一个
方案包含了多个集合,而一个集合又包含了一到多个软件包,然后每个软件包
(\TL 中最小的组织单位) 则包含了实际的 \TeX\ 宏文件,字体文件,等等。

如果你觉得 collection 菜单对安装控制还不够细,可以在安装后使用
\TeX\ Live Manager (\prog{tlmgr}) 程序 (参见第~\ref{sec:tlmgr}~节),
它能在软件包一层控制安装。

\subsubsection{目录}
\label{sec:directories}

缺省的目录布局在第~\ref{sec:texmftrees}~节有过叙述,见
第~\pageref{sec:texmftrees}~页。默认的 \dirname{TEXDIR} 路径
在 Unix 下是 \dirname{/usr/local/texlive/2012} 而 Windows 下是
|%SystemDrive%\texlive\2012|。

更改默认值的主要原因大概是你可能没有默认位置的写权限。虽然要安装
\TL 不需要是管理员或者 root 用户,但你至少得对安装的目的目录有写
权限。

一个合理的选择是你自己主目录下的一个子目录,尤其在只有你一个人
使用的时候。使用 `|~|' 来表示主目录,比如 `|~/texlive/2012|'。

我们建议在目录名称中保留年份,这样可以让你保留多个不同版本的
\TL{}。(你可能希望用一个类似 \dirname{/usr/local/texlive-cur}
这样的名字作为指向当前版本的符号链接,这样的目录名就和版本无
关了,你只要在新版本出来直接更新符号链接即可。)

在安装程序中修改 \dirname{TEXDIR} 之后还会同时修改
\dirname{TEXMFLOCAL}, \dirname{TEXMFSYSVAR} 和
\dirname{TEXMFSYSCONFIG}。

\dirname{TEXMFHOME} 是推荐用来存放个人宏文件和软件包的目录。
其缺省值是 |~/texmf|。与 \dirname{TEXDIR} 不同,其中包含的
|~| 会被不加转换地写进配置文件,因为它能在 \TeX 系统运行时
自动被替换为每个用户自己的主目录。在 Unix 它会被展开为
\dirname{$HOME},而 Windows 下展开为 \verb|%USERPROFILE%|。
多加一句:\envname{TEXMFHOME} 和所有的目录树一样,都必须按照
\TDS\ 组织,否则文件可能会找不到。

\dirname{TEXMFVAR} 是用来给每个用户存储大多数运行时缓存数据
的。\dirname{TEXMFCACHE} 则给 \ConTeXt\ Mk\acro{IV} 存储缓存
(见 \pageref{sec:context-mkiv} 页)。

\subsubsection{选项}
\label{sec:options}

\begin{figure}[tbh]
\begin{boxedverbatim}
Current setup:
 <P> use letter size instead of A4 by default: [ ]
 <E> execution of restricted list of programs: [X]
 <F> create format files:                      [X]
 <D> install font/macro doc tree:              [X]
 <S> install font/macro source tree:           [X]
 <L> create symlinks in standard directories:  [ ]
            binaries to:
            manpages to:
                info to:
 <Y> after installation, get package updates from CTAN: [X]
\end{boxedverbatim}
\caption{Options 菜单 (Unix)}\label{fig:options-text}
\end{figure}

图~\ref{fig:options-text} 显示了文本模式的选项菜单。关于这个菜单的
每个选项:

\begin{description}
\item[use letter size instead of A4 by default:] 缺省的纸张大小选择。
当然如果需要,每份文档都可以并且应该单独设定一个纸张大小。

\item[execution of restricted list of programs:] 在 \TL\ 2010 中,
默认允许执行一些外部程序。这 (很少的一部分) 允许的程序列表在
\filename{texmf.cnf} 中定义。参见 2010 版新闻 (第~\ref{sec:2010news} 节)
以了解更多信息。

\item[create format files:] 虽然创建不必要的格式文件会浪费一
点时间,也会多占一些磁盘空间,但
我们还是建议现在保持这个选项的选定状态,因为如果这次不生成,下次
用到的时候格式文件就会在用户个人的 \dirname{TEXMFVAR} 目录树内生
成。这样每次二进制文件或者断字模式更新的时候,这些格式文件也得不
到更新,所以可能会导致它们的不兼容。

\item[install font/macro \ldots\ tree:] 这些选项允许你忽略下载安装
大部分宏包中的文档和源代码文件。不建议使用。

\item[create symlinks in standard directories:]
这个选项 (只对 Unix 有效的) 可以省下设定环境变量的步骤。如果
没有选择它,就必须把 \TL{} 的对应目录添加到 \envname{PATH},
\envname{MANPATH} 和 \envname{INFOPATH} 中。如果要创建符号链
接,你需要对这些目标目录的写权限。我们强烈建议不要\emph{不要}
用这个命令来覆盖现有的 \TeX\ 系统,它主要是为了在用户已知的
标准目录中创建符号链接设计的,这些目录并不包含任何 \TeX\ 文件。

\item[after installation \ldots\ \CTAN:] 从 \DVD\ 安装时,这个选项
被缺省启用,因为通常你会希望在此后通过 \CTAN\ 安装一年内更新的软件
包。禁用它唯一可能的原因是你只安装了 \DVD\ 内容的一部分,计划在以后
扩展安装。无论如何,安装程序时和安装后的更新的软件包仓库如果需要可
以分别设置,见第~\ref{sec:location}~节和
第~\ref{sec:dvd-install-net-updates}~节。
\end{description}

如果所有的设置已经齐备,你就可以按下 `I' 来开始安装了。安装完成后,
你可以跳至第~\ref{sec:postinstall}~节来了解还需要做些什么工作。

\subsection{install-tl 命令行选项}
\label{sec:cmdline}

输入
\begin{alltt}
> \Ucom{install-tl -help}
\end{alltt}
可以列出所有的命令行参数。你既可以用 |-| 也可以用 |--| 来指定一个
参数。这里有些比较常见的:

\begin{ttdescription}
\item[-gui] 尽可能用 \GUI{} 模式的安装程序。它需要安装了
  编译进 \acro{XFT} 支持的 Perl/Tk 模块
  (\url{http://tug.org/texlive/distro.html#perltk});
  如果找不到 Perl/Tk,安装程序就会在文本模式下出现。

\item[-no-gui] 强制使用文本模式安装程序,就算在 Windows 下也是如此。

\item[-lang {\sl LL}] 指定安装程序界面的语言,使用标准的 (通常是两个
两个字符) 语言代码。安装程序会尝试自己判断出合适的语言,如果判断出的
语言没有支持就会使用英语替代。可以运行 \code{install-tl --help} 获得
支持的语言列表。

\htmlanchor{opt-in-place}
\item[-in-place] 如果你已经有一份用 rsync, svn, 或者其他方式安装的
\TL{} (参见 \url{http://tug.org/texlive/acquire-mirror.html}) 那
这个选项会使用现有的,只执行必要的安装后操作。注意 \filename{tlpkg/texlive.tlpdb}
文件会被覆盖,你需要自己备份它。另外,文件的删除必须手动完成。所以
只在你知道自己在干什么的情况下才用它。这个选项不能在安装程序界面中
选择。

\item[-portable] 为比如 \acro{USB} 盘上便携使用安装。也可以在
文本安装程序中用 \code{V} 命令选择,或者 GUI 安装程序中选择,
参见第 \ref{sec:portable-tl} 节。

\item[-profile {\sl profile}] 载入安装配置文件 \var{file} 以不需要
用户干预的方式完成安装。安装程序会在安装到的 \dirname{tlpkg}
子目录中创建一个叫 \filename{texlive.profile} 的文件。这个文件可以
用作参数,在不同的系统下完成完全一致的安装。或者你也可以使用一个定
制的配置文件,一般通过裁剪生成的文件得到,或者空文件,这样安装时会
使用所有缺省值。

\item [-repository {\sl url-or-directory}] 指定作为来源的软件包仓库,
参见下文。
\end{ttdescription}

\subsubsection{\optname{-repository} 参数}
\label{sec:location}

默认的网络软件包安装位置是由 \url{http://mirror.ctan.org} 自动选择
的 \CTAN{} 镜像。

如果你需要自己指定,地址可以是以 \texttt{ftp:}, \texttt{http:} 或
\texttt{file:/} 起始的 URL,或者本地路径。(如果给定了一个
\texttt{http:} 或 \texttt{ftp:} 地址,其末尾的 `\texttt{/}' 字符
和末尾的 `\texttt{/tlpkg}' 这段都会被忽略。)

比如你可以选择这样的一个 \CTAN\ 镜像:
\url{http://ctan.example.org/tex-archive/systems/texlive/tlnet/},
当然你应该把 |ctan.example.org/tex-archive| 替换为具体镜像的
域名和特定的顶层 \CTAN\ 路径 (\url{http://ctan.org/mirrors})
维护了一个 \CTAN\ 的镜像列表)。

如果给定的地址在本地磁盘上 (或者是路径或者是 \texttt{file:/}
开头的 URL),就会使用指定路径下 \dirname{archive} 子目录中的
压缩文件进行安装。

\subsection{安装后的操作}
\label{sec:postinstall}

安装后可能需要一些额外的操作。

\subsubsection{Unix 下的环境变量}
\label{sec:env}

如果你选择了在标准路径下创建符号连接 (在第~\ref{sec:options}~节提到),
那就不需要设置环境变量了。否则,在 Unix 系统中,你应该将自己使用的平台
下二进制程序的目录加入搜索路径中。(在 Windows 下安装程序会负责这一步。)

每个支持的平台都在 \dirname{TEXDIR/bin} 下有自己的子目录。
参见图~\ref{fig:bin-text} 以了解所有的这些子目录和它们对应的平台。

如果希望 man 和 info 能够找到,你还可以把文档的 man 和 Info 目录加
入其对应的搜索路径中。在添加 \envname{PATH} 后,手册页页可以被自动
找到。

对于 \prog{bash} 这样的 Bourne 兼容 shell 而言,以 Intel x86 下的
GNU/Linux、默认的目录设置为例,需要修改的文件是 \filename{$HOME/.profile}
(或者其他由 \filename{.profile} 载入的文件),应该添加的内容应该类似
这样:

\begin{sverbatim}
PATH=/usr/local/texlive/2012/bin/i386-linux:$PATH; export PATH
MANPATH=/usr/local/texlive/2012/texmf/doc/man:$MANPATH; export MANPATH
INFOPATH=/usr/local/texlive/2012/texmf/doc/info:$INFOPATH; export INFOPATH
\end{sverbatim}

对于 csh 或者 tcsh,需要修改的文件通常是 \filename{$HOME/.cshrc},而
应该添加的内容类似:

\begin{sverbatim}
setenv PATH /usr/local/texlive/2012/bin/i386-linux:$PATH
setenv MANPATH /usr/local/texlive/2012/texmf/doc/man:$MANPATH
setenv INFOPATH /usr/local/texlive/2012/texmf/doc/info:$INFOPATH
\end{sverbatim}

如果你已经在你的配置文件里写过了这样的路径设置,那就只需要
把 \TL\ 的这些目录加进去就行了。

\subsubsection{环境变量的全局配置}
\label{sec:envglobal}

如果你希望在整个系统范围内修改这些变量,或这样系统新增的用户自动
继承这些变量,就得自寻方法了,因为不同的系统之间这方面的配置差异
太大。

我们的建议是: 1)~你可能应该看看 \filename{/etc/manpath.config}
这个文件是否存在,如果有的话,添加下面这样的内容:

\begin{sverbatim}
MANPATH_MAP /usr/local/texlive/2012/bin/i386-linux \
            /usr/local/texlive/2012/texmf/doc/man
\end{sverbatim}

然后 2)~检查 \filename{/etc/environment} 是否定义了默认的搜索路径
和其他的默认环境变量。

在每个 (Unix) 二进制目录下,我们都会创建一个 \code{man} 符号链接
到 \dirname{texmf/doc/man} 目录。因为
有些 \code{man} 程序,比如 \MacOSX\ 标准的 \code{man} 就能够自动通
过这个链接找到对应的手册页,这样你就不必手工设置手册页路径了。

\subsubsection{\DVD\ 安装后的网络更新}
\label{sec:dvd-install-net-updates}

如果你从 \DVD\ 安装了 \TL\ 并希望从网络获取更新,需要在更新了搜索路径
(如上一节所述) \emph{之后}执行这个命令:

\begin{alltt}
> \Ucom{tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet}
\end{alltt}

这告诉 \cmdname{tlmgr} 从就近的 \CTAN\ 镜像获取未来更新。
从 \DVD{} 安装时会默认完成这一步,通过第~\ref{sec:options}~节介绍
的选项。

如果自动镜像选择出现了问题,你可以从 \url{http://ctan.org/mirrors}
列表中自己指定一个 \CTAN\ 镜像。使用与上述一致的 \dirname{tlnet}
子目录路径。

\subsubsection{\XeTeX{} 和 Lua\TeX{} 的系统字体配置}
\label{sec:font-conf-sys}

\XeTeX\ 和 Lua\TeX\ 可以使用任何系统安装的字体,而不只是 \TeX\ 目录树
中的那些。它们使用类似但不完全一致的方式实现这一功能。

在 Windows 下 \TL\ 提供的字体会自动为 \XeTeX\ 所用。
但如果你在 Unix 兼容的系统中安装了 \filename{xetex} 软件包,则需要把系
统配置一番 \XeTeX\ 才能找到随 \TL\ 安装的那些字体。

为了进行配置,\pkgname{xetex} 安装后 (不管是初始安装还是后来安装的) 都会在
\filename{TEXMFSYSVAR/fonts/conf/texlive-fontconfig.conf} 创建一个
必需的配置文件。

要在整个系统中使用 \TL{} 的字体 (假定你有足够的权限),请依照下面的
步骤来做:
\begin{enumerate*}
\item 将 \filename{texlive-fontconfig.conf} 文件复制到
\dirname{/etc/fonts/conf.d/09-texlive.conf}。
\item 运行 \Ucom{fc-cache -fsv}。
\end{enumerate*}

如果你没有足够的权限执行上述操作,或者只需要把 \TL{} 字体提供给你自
己,可以这么做:
\begin{enumerate*}
\item 将 \filename{texlive-fontconfig.conf} 文件复制到
      \filename{~/.fonts.conf},其中 \filename{~} 是你的主目录。
\item 运行 \Ucom{fc-cache -fv}。
\end{enumerate*}

你可以运行 \code{fc-list} 来查看系统字体的名称。命令
\code{fc-list : family style file spacing} 可以列出一些有趣的信息。

\subsubsection{\ConTeXt{} Mark IV}
\label{sec:context-mkiv}

“旧”的 \ConTeXt{} (Mark \acro{II}) 和“新的” \ConTeXt{} (Mark \acro{IV})
应该在 \TL{} 安装后直接就能运行,而且只要你一直用 \verb+tlmgr+ 来更新,
它不应该需要任何其他的处理。

然而,因为 \ConTeXt{} Mk\acro{IV} 没有使用 kpathsea 库,在你手动安装
文件 (没使用 \verb+tlmgr+) 后必须执行一定的设置。在每次安装后,每个
Mk\acro{IV} 用户必须执行:

\begin{sverbatim}
context --generate
\end{sverbatim}
来刷新 \ConTeXt{} 磁盘缓存数据。
生成的文件会被保存在 \code{TEXMFCACHE} 目录下,在 \TL{} 中这个目录
的默认值是 \verb+TEXMSYSVAR;TEXMFVAR+。

\ConTeXt\ Mk\acro{IV} 会读取 \verb+TEXMFCACHE+ 提到的所有路径,
并写入第一个可写东风路径。在读取时,最后找到的匹配会被优先选择。

要了解更多信息,参见
\url{http://wiki.contextgarden.net/Running_Mark_IV}。

\subsubsection{集成本地与个人宏文件}
\label{sec:local-personal-macros}

这在第~\ref{sec:texmftrees}~节已经顺带提到过了:\dirname{TEXMFLOCAL}
目录 (它的默认值是 \dirname{/usr/local/texlive/texmf-local} 或者
Windows 下的 \verb|%SystemDrive%\texlive\texmf-local|) 这个目录就是为了存储
面向整个系统的本地字体和宏文件的;而 \dirname{TEXMFHOME} 目录 (其
默认值是 \dirname{$HOME/texmf} 或者 \verb|%USERPROFILE%\texmf|),
则是用来存储个人的字体和宏文件的。这些目录应该在各个 \TL{}
版本之间共享,每个版本都能看到其内容。因此不应该把
\dirname{TEXMFLOCAL} 改得和主 \TL{} 目录差别太大,否则新的版本出来
你又得再改。

对于这两个目录树而言,文件都应该放到合适的 \TeX\ 目录结构 (\TDS)
子目录中,参见 \url{http://tug.org/tds} 或者 \filename{texmf/web2c/texmf.cnf}
文件。比如一个 \LaTeX{} 文档类或者宏包应该放在
\dirname{TEXMFLOCAL/tex/latex} 或者 \dirname{TEXMFHOME/tex/latex}
目录下,要不然就是它们的一个子目录下。

\dirname{TEXMFLOCAL} 目录需要一个保持更新的文件名数据库,否则新增
的文件就无法找到。你可以使用 \cmdname{mktexlsr} 命令或者
\TeX\ Live Manager \GUI{},configuration 选项卡中的
`Reinit file database' 按钮来刷新它。

默认情况下,这些变量的每一个都定义为所示单独的目录。这不是一个硬性
规定。如果你需要在某些大的宏包的不同版本直接方便地切换,可以维护多
个自己的目录树,这通过把 \dirname{TEXMFHOME} 设置为目录列表实现,
大括号包围,逗号分隔:

\begin{verbatim}
  TEXMFHOME = {/my/dir1,/mydir2,/a/third/dir}
\end{verbatim}

第~\ref{sec:brace-expansion}~节进一步介绍了括号展开。

\subsubsection{集成第三方字体}

不幸的是,这是一个非常混乱的问题。除非你愿意深入 \TeX{} 安装的细节,
否则请不要涉足这个领域。别忘了事先看看我们附带的字体,参见
第~\ref{sec:tl-fonts}~节。

\XeTeX\ 或 Lua\TeX\ 是可行的替代方案 (参见第~\ref{sec:tex-extensions}~节),
它们能让你使用操作系统的字体而不必将它安装到 \TeX 中。

如果你非得这么做,参见 \url{http://tug.org/fonts/fontinstall.html},
这是我们对整个过程最好的描述。如果你严格地管理自己的本地字体映射,
\texttt{tlmgr generate updmap} \textit{可能}会有用,尤其是在版本
升级时,参见 \cmdname{tlmgr} 文档。

\subsection{测试安装是否成功}
\label{sec:test-install}

在完成你所需要的 \TL{} 安装之后,自然你会希望试试看它是否正常工作,好让你在以后能够
创建优美的文档和字体。

这个小节给出了一些测试系统是否正常工作的基本步骤。我们这里使用的是 Unix 命令,在
\MacOSX{} 和 Windows 下你更可能是使用图形界面运行这些测试的,不过其原理并无不同。

\begin{enumerate}

\item 首先确认你可以执行 \cmdname{tex} 程序:
\begin{alltt}
> \Ucom{tex -{}-version}
TeX 3.1415926 (TeX Live ...)
kpathsea version 6.0.1
Copyright ... D.E. Knuth.
...
\end{alltt}
如果返回的结果是 `command not found' 而非版本和版权信息,或者显示了
旧版本的信息,很有可能是因为你没有把正确的 \dirname{bin} 子目录添加
到 \envname{PATH} 中。参见第~\pageref{sec:env}~页关于设置环境变量
的说明。

\item 处理一个基本的 \LaTeX{} 文件:
\begin{alltt}
> \Ucom{latex sample2e.tex}
pdfTeX 3.1415926-... (TeX Live ...)
...
Output written on sample2e.dvi (3 pages, 7484 bytes).
Transcript written on sample2e.log.
\end{alltt}
如果无法找到 \filename{sample2e.tex} 或其他什么文件,很可能是因为旧的环境变量
或配置文件影响了判断。我们建议你重置所有 \TeX 相关的环境变量然后重试。(你可以
让 \TeX{} 报告具体搜索的路径,以便仔细分析出错的原因。参见
第~\pageref{sec:debugging}~页的``调试操作''一节以了解更多信息。)

\item 即时预览结果:
\begin{alltt}
> \Ucom{xdvi sample2e.dvi}    # Unix
> \Ucom{dviout sample2e.dvi}  # Windows
\end{alltt}
你应该可以看到在新窗口中出现了一篇介绍 \LaTeX{} 基础的有趣文档。
(如果你刚接触 \TeX\ 系统,还是值得一读的。) \cmdname{xdvi}
需要运行在 X 窗口系统下才能工作,如果没有运行窗口环境或
\envname{DISPLAY} 环境变量设置错误,都会得到
\samp{Can't open display} 这句错误信息。

\item 创建用于打印或显示的 \PS{} 文件:
\begin{alltt}
> \Ucom{dvips sample2e.dvi -o sample2e.ps}
\end{alltt}

\item 创建 \acro{PDF} 文件而非 \dvi{},这里采用直接处理 \filename{.tex}
文件输出 \acro{PDF} 的方式:
\begin{alltt}
> \Ucom{pdflatex sample2e.tex}
\end{alltt}

\item 预览 \acro{PDF} 文件:
\begin{alltt}
> \Ucom{gv sample2e.pdf}
\textrm{或:}
> \Ucom{xpdf sample2e.pdf}
\end{alltt}
\cmdname{gv} 和 \cmdname{xpdf} 现在都不包含在 \TL{} 中,你
必须单独安装它们。请分别参阅 \url{http://www.gnu.org/software/gv} 和
\url{http://www.foolabs.com/xpdf}。(还有许多其他的 \acro{PDF} 查看器。)
Windows 下我们推荐 Sumatra PDF (\url{http://blog.kowalczyk.info/software/sumatrapdf})。

\item 除 \filename{sample2e.tex} 外可能会对你有用的标准测试文件:

\begin{ttdescription}
\item [small2e.tex] 比 \filename{sample2e} 更为简单的文档,供你在遇到问题
时尝试减少输入的内容。
\item [testpage.tex] 测试你的打印机是否带有预设的偏移量。
\item [nfssfont.tex] 打印一份字体表格 (proofsheet) 以供测试。
\item [testfont.tex] 用 plain \TeX{} 打印字体表格。
\item [story.tex] 最经典的 (plain) \TeX{} 测试文件。在执行
\samp{tex story.tex} 之后,你还要在 \code{*} 提示符下键入 \samp{\bs bye}。
\end{ttdescription}
你可以用与我们处理 \filename{sample2e.tex} 文件时相同的方式来处理这些文件。

\item 如果你安装了 \filename{xetex} 包,可以按如下步骤测试它能否访问系统字体:
\begin{alltt}
> \Ucom{xetex opentype-info.tex}
This is XeTeX, Version 3.1415926\dots
...
Output written on opentype-info.pdf (1 page).
Transcript written on opentype-info.log.
\end{alltt}
(或者对 \filename{luatex} 做同样的步骤。)

如果你收到 ``Invalid fontname `Latin Modern Roman/ICU'\dots'' 这样
的错误信息,就说明需要配置系统 \XeTeX{} 才能找到 \TL{} 自带的字体。
参见第~\ref{sec:font-conf-sys}~节。

\end{enumerate}

\subsection{其他可下载软件的链接}

如果你还是个 \TeX{} 新手,或者在编辑 \TeX{} 或 \LaTeX{} 文档时需要帮助,
请访问 \url{http://tug.org/begin.html} 寻找引导性的资源。

这里是一些你可能会考虑安装的其他工具的链接。
\begin{description}
\item[Ghostscript] \url{http://www.cs.wisc.edu/~ghost/}
\item[Perl] \url{http://www.perl.org/} 与 \acro{CPAN} 中的补充包,
    \url{http://www.cpan.org/}
\item[ImageMagick] \url{http://www.imagemagick.com}, 用于图形处理和转换
\item[NetPBM] \url{http://netpbm.sourceforge.net/}, 同样用于图形。

\item[面向 \TeX\ 的编辑器] 有很广泛的选择,一般依用户个人的口味而定。这
     里按字典序列出了一些 (部分是 Windows 才有的)。
  \begin{itemize*}
  \item \cmdname{GNU Emacs} 在 Windows 下的原生版本在
        \url{http://www.gnu.org/software/emacs/windows/ntemacs.html}。
  \item \cmdname{Emacs 的 Auc\TeX\ 包} 的 Windows 版本在 \CTAN\ 提供。
        AuC\TeX\ 的主页在 \url{http://www.gnu.org/software/auctex}。
  \item \cmdname{LEd} 在 \url{http://mirror.ctan.org/support/LEd} 提供。
  \item \cmdname{SciTE} 在
        \url{http://www.scintilla.org/SciTE.html} 提供。
  \item \cmdname{Texmaker} 是自由软件,在
        \url{http://www.xm1math.net/texmaker} 提供。
  \item \cmdname{TexMakerX} 是 \cmdname{Texmaker} 的一个
  fork,引入了额外的功能;\url{http://texmakerx.sourceforge.net}。
  \item \cmdname{TeXnicCenter} 是自由软件,在
        \url{http://www.texniccenter.org} 提供,也随 pro\TeX{}t
        发行版附带。
  \item \cmdname{TeXworks} 是自由软件,在
        \url{http://tug.org/texworks} 提供,也作为 \TL{} 的一部分在
        Windows 和 \MacOSX\ 下被安装。
  \item \cmdname{Vim} 是自由软件,在
        \url{http://www.vim.org} 提供。
  \item \cmdname{WinEdt} 是共享软件,在
        \url{http://tug.org/winedt} 或 \url{http://www.winedt.com} 提供。
  \item \cmdname{WinShell} 在 \url{http://www.winshell.de} 提供。
  \end{itemize*}
\end{description}
关于这类软件包和程序,\url{http://tug.org/interest.html} 有一份更长的列表。

\section{特殊安装}

前面的章节描述了基本的安装过程。这里我们介绍一些特殊的情形。

\htmlanchor{tlsharedinstall}
\subsection{用户共享 (或跨机器) 安装}
\label{sec:sharedinstall}

\TL{} 的设计可以使它在同一个系统的不同的用户间共享,或者可以在网络上不
同的系统间共享。在标准的目录结构下,不需要配置固定的绝对路径:\TL{} 程
序所需要的文件都能通过都在这些程序自身的相对路径找到。你可以在
\filename{$TEXMFMAIN/web2c/texmf.cnf} 配置文件中看到实际的处理,
它包含了类似下面的内容:
\begin{verbatim}
TEXMFMAIN = $SELFAUTOPARENT/texmf
...
TEXMFLOCAL = $SELFAUTOPARENT/../texmf-local
\end{verbatim}
这就意味着,其它的系统或用户只需要把 \TL{} 的可执行文件的位置添加到其
系统的搜索路径中就可以使用了。

同理,你也可以先把 \TL{} 安装在本地,然后再把整个安装目录转移到网络上。

至于 Windows,可以在 \url{http://tug.org/texlive/w32client.html}
下载到一个叫 \filename{w32client} 的示例网络安装脚本。它可以为局域
网上的 \TL{} 安装产生配置文件和菜单快捷方式。它还会注册一个叫
\filename{w32unclient} 的卸载程序,在同一个 zip 文件中。参见它的
网页以了解更多信息。

\htmlanchor{tlportable}
\section{便携 (\USB{}) 安装}
\label{sec:portable-tl}

\code{-portable} 安装程序选项 (或者文本安装程序的 \code{V} 命令,
或对应的 \GUI{} 选项) 创建的是一套在一个独立路径下完全自包含的 \TL{}
安装,而跳过系统集成。你可以在 \USB{} 盘上创建这样的安装,或者在安装
后复制到 \USB{} 盘上。

要使用这样的便携安装来运行 \TeX{},你必须将对应的二进制目录加入终端
的搜索路径,如往常一样。在 Windows 下,你可以双击安装根目录下的
\filename{tl-tray-menu} 来选择执行一些常见任务,如这个截图所示:

\medskip
\tlpng{tray-menu}{4cm}
\smallskip

\noindent `More\ldots' 项目解释了如何定制这个菜单。

\htmlanchor{tlisoinstall}
\subsection{\ISO\ (或 \DVD) 安装}
\label{sec:isoinstall}

如果你不需要经常更新或者修改安装,或者有其他可以使用 \TL{} 的系统,
创建一个 \TL{} 安装的 \ISO\ 可能会比较方便,因为:

\begin{itemize}
\item 在不同计算机之间复制 \ISO\ 要比复制普通安装快得多。
\item 如果你双启动不同的操作系统而且希望它们共享一个
  \TL{} 的安装,\ISO\ 安装不会受不同文件系统支持
  (\acro{FAT32}, \acro{NTFS}, \acro{HFS+}) 的限制。
\item 虚拟机可以直接挂载这样的 \ISO{}。
\end{itemize}

当然你还可以把 \ISO\ 刻录到 \DVD{} 上,如果有用的话。

桌面 \GNU/Linux/Unix 系统,包括 \MacOSX{},都能够挂载 \ISO{}。此外,
没有任何与普通硬盘安装不同的地方,参见第 \ref{sec:env} 节。

在准备这样的 \ISO\ 安装时,最好忽略发布年份的子目录,并让 \filename{texmf-local}
处在和其他目录树 (\filename{texmf}, \filename{texmf-dist} 等) 同级。
你可以在安装程序的普通目录选项中设置这些。

对于一个物理的 (而不是虚拟的) Windows 系统,你可以将 \ISO\ 刻录在
\acro{DVD} 上,不过花点时间在免费的 \ISO\ 挂载工具上是值得的。对于
Windows \acro{XP},微软提供了 \filename{winxpvirtualcdcontrolpanel}。

至于 Windows 系统集成,你可以包含第~\ref{sec:sharedinstall} 节描述的
\filename{w32client} 脚本 (在 \url{http://tug.org/texlive/w32client.html}),
它在 \ISO\ 里和在网络安装时一样好用。

在 \MacOSX{},如果符号链接 \filename{/usr/texbin} 指向对应的二进制目录,
TeXShop 和 \TeX{}works 会使用 \acro{DVD} 安装,比如:
\begin{verbatim}
sudo ln -s /Volumes/MyTeXLive/bin/universal-darwin /usr/texbin
\end{verbatim}

历史说明:\TL{} 2010 是第一个不支持“live”发布的 \TL{} 版本,但要在
\DVD\ 或者 \ISO\ 上执行一直是需要一定技巧的,尤其是必须设置一些环境
变量。如果你从现有的安装创建 \ISO\ 就不需要了。

\htmlanchor{tlmgr}
\section{\cmdname{tlmgr}: 管理你的安装}
\label{sec:tlmgr}


\begin{figure}[tb]
\tlpng{tlmgr-gui}{.8\linewidth}
\caption{\GUI\ 模式的 \prog{tlmgr}:按下 `Load' 后的主窗口。}
\label{fig:tlmgr-gui}
\end{figure}

\begin{figure}[tb]
\hbox to \hsize{%
  \vtop{\hsize=.59\linewidth
    \null  % make figures align at the top
    \tlpng{tlmgr-general-options}{\hsize}
    \caption{\GUI\ 模式的 \texttt{tlmgr}:通用选项}
    \label{fig:tlmgr-general-options}
  }
  \hfil
  \vtop{\hsize=.39\linewidth
    \null
    \tlpng{tlmgr-paper-options}{\hsize}
    \caption{\GUI\ 模式的 \texttt{tlmgr}:纸张尺寸选项}
    \label{fig:tlmgr-paper-options}
  }
}
\end{figure}

\TL{} 包含一个叫 \prog{tlmgr} 的程序,它可以用来管理安装后的
系统。像 \prog{updmap}, \prog{fmtutil} 和 \prog{texconfig} 这些程序
仍然包含在发行版中,而且在将来也不会剔除,但是 \prog{tlmgr} 是一个
优选的界面。它的功能包括:

\begin{itemize*}
\item 列出方案 (scheme),集合和安装包;
\item 安装、升级、备份、恢复、卸载软件包,并且能自动计算依赖关系;
\item 查找和列出软件包;
\item 列出、添加和删除不同平台的可执行文件;
\item 改变安装选项,比如纸张大小和源文件位置 (参见第~\ref{sec:location}~节)。
\end{itemize*}

\subsection{图形界面模式的 \cmdname{tlmgr}}
\prog{tlmgr} 可以用以下命令以图形模式 (图~\ref{fig:tlmgr-gui}) 启动:
\begin{alltt}
> \Ucom{tlmgr -gui}
\end{alltt}
Windows 下可以通过开始菜单:\texttt{开始},\texttt{程序},
\texttt{TeX Live 2012},\texttt{TeX Live Manager}。
在假定安装包源是有效且可及的情况下,在点击 `Load' 以后,它会列出
所有可获取的或已安装的软件包。

图~\ref{fig:tlmgr-general-options} 和~\ref{fig:tlmgr-paper-options}
展示了通用和纸张尺寸选项界面。

\subsection{\cmdname{tlmgr} 命令行使用示例}

在初始安装之后,你可以用下面的命令更新系统:
\begin{alltt}
> \Ucom{tlmgr update -all}
\end{alltt}
如果这太激进了一点,先尝试:
\begin{alltt}
> \Ucom{tlmgr update -all -dry-run}
\end{alltt}
或 (产生更少输出):
\begin{alltt}
> \Ucom{tlmgr update -list}
\end{alltt}

下面这个更复杂一点的例子从本地目录添加了一个新的软件包集合,用于 \XeTeX\ 引擎。

\begin{alltt}
> \Ucom{tlmgr -repository /local/mirror/tlnet install collection-xetex}
\end{alltt}
它会产生下面的输出 (节略部分):
\begin{fverbatim}
install: collection-xetex
install: arabxetex
...
install: xetex
install: xetexconfig
install: xetex.i386-linux
running post install action for xetex
install: xetex-def
...
running mktexlsr
mktexlsr: Updating /usr/local/texlive/2012/texmf/ls-R...
...
running fmtutil-sys --missing
...
Transcript written on xelatex.log.
fmtutil: /usr/local/texlive/2012/texmf-var/web2c/xetex/xelatex.fmt installed.
\end{fverbatim}

如你所见,\prog{tlmgr} 会安装所有依赖的包,也会处理所有包括刷新文件名
数据库和重新生成格式文件在内的所有必要的安装后工作。上面给 \XeTeX{}
生成了新的格式文件。

要描述一个包 (或者集合、安装方案):
\begin{alltt}
> \Ucom{tlmgr show collection-latexextra}
\end{alltt}
会产生
\begin{fverbatim}
package:    collection-latexextra
category:   Collection
shortdesc:  LaTeX supplementary packages
longdesc:   A large collection of add-on packages for LaTeX.
installed:  Yes
revision:   14675
\end{fverbatim}

最后也是最重要的,查阅 \url{http://tug.org/texlive/tlmgr.html}
这里的完整文档,或者:
\begin{alltt}
> \Ucom{tlmgr -help}
\end{alltt}

\section{有关 Windows 平台的说明}
\label{sec:windows}

\subsection{针对 Windows 的特征}
\label{sec:winfeatures}

在 Windows 下,安装程序额外地做了以下一些事情:
\begin{description}
\item[菜单与快捷方式。] 在开始菜单上加入了新的`\TL{}'程序菜单,主要是一些
\GUI{} 程序 (如 \prog{tlmgr}、\prog{texdoctk}、PS\_View (\prog{psv}),它是
PostScript 预览程序) 和一些文档的菜单。
\item[文件关联。] 如果启用,\prog{TeXworks}、\prog{Dviout}
和 \prog{PS\_view} 会成为它们对应文件类型的默认程序,或者在
这些文件类型的“用...打开”右键菜单中出现。
\item[位图到 eps 转换器。] 许多位图格式会在它们的“用...打开”菜单中获得一个
  \cmdname{bitmap2eps} 项目。Bitmap2eps 是一个使用 \cmdname{sam2p} 或
  \cmdname{bmeps} 的简单脚本。
\item[自动路径调整。] 不需要手动配置步骤。
\item[自动设置环境变量。] 不再需要手动的配置步骤。
\item[反安装程序。] 安装程序为 \TL{} 创建了`添加/删除程序'条目。这与
\TeX\ Live Manager \GUI\ 的删除按钮相对应。
\end{description}

\subsection{Windows 上附加的软件}

为了使安装更加完整,\TL{} 需要支持那些 Windows 机器上不常见的软件包。
\TL{} 提供了以下缺失的部分:
\begin{description}
\item[Perl 和 Ghostscript。] 由于 Perl 和  Ghostscript 的重要性,\TL{}
提供了这些程序的`隐藏'拷贝。需要这些软件支持的 \TL{} 程序知道它们的位置,
但它们不会通过环境变量和注册表设置来暴露所在的位置。它们不是完整的安装版,
也不会与任何 Perl 或 Ghostscript 系统安装程序冲突。

\item[PS\_View。] 同时安装的还有 PS\_View,一款 \PS{} 和 \acro{PDF}
浏览器;见图~\ref{fig:psview}。

\begin{figure}[tb]
\tlpng{psview}{.6\linewidth}
\caption{PS\_View:可以获得很高的放大倍数!}\label{fig:psview}
\end{figure}

\item[dviout。] 另外安装的还包括一款 \acro{DVI} 预览程序 \prog{dviout}。 
当你第一次使用 \cmdname{dviout} 预览文件时,因为没有安装屏幕显示字体,它
将生成字体。一段时间后,你所使用的大部分字体都将生成,随后,你将很少再看
到生成字体的窗口。你可以从 (强烈推荐的) 在线帮助中获得更加详细的信息。

\item[\TeX{}works.]  \TeX{}works 是一个集成了 \acro{PDF} 阅读器的 
  \TeX\ 编辑器。

\item[命令行工具。] 与常见的 \TL{} 二进制文件一起,还安装了一些常见的
Unix 命令行工具的 Windows 移植版本。它们包括 \cmdname{gzip}、
\cmdname{unzip} 以及来自于 \cmdname{xpdf} 套装中的一些工具
(\cmdname{pdfinfo}, \cmdname{pdffonts}, \ldots)。
虽然 \cmdname{xpdf} 浏览器本身没有 Windows 版本,但你可以从
\url{http://blog.kowalczyk.info/software/sumatrapdf}
下载基于 xpdf 的 Sumatra \acro{PDF} 浏览器,这是一种解决办法。

\item[fc-list、fc-cache, \ldots] 来自于 fontconfig 库的这些工具有助于 \XeTeX{}
处理 Windows 的系统字体。你可以使用 \prog{fc-list} 来确定传递给经 \XeTeX
扩展后的 \cs{font} 命令的字体名称。如果需要,首先运行 \prog{fc-cache} 更新
字体信息。
\end{description}


\subsection{User Profile 目录相当于主目录}
\label{sec:winhome}

Windows 下对应于 Unix 下的主目录的是 \verb|%USERPROFILE%|。
在 Windows \acro{XP} 下,它通常位于
\verb|C:\Documents and Settings\<username>|;
在 Windows Vista 和 Windows~7 下是 \verb|C:\Users\<username>|。通常情况下,在
\filename{texmf.cnf} 文件和 \KPS{} 中,\verb|~| 在 Windows 和 Unix 下均可以
进行合适的展开。

\subsection{Windows 注册表}
\label{sec:registry}

Windows 将几乎所有的配置数据存放在注册表中。注册表是包含几个主支的一系
列分层组织的分支。对于安装的程序而言,最重要的主支是 \path{HKEY_CURRENT_USER}
和 \path{HKEY_LOCAL_MACHINE},通常简写为 \path{HKCU} 和 \path{HKLM}。注册表的
\path{HKCU} 部分位于用户的主目录 (参见~\ref{sec:winhome}~节)。\path{HKLM}
通常位于 Windows 目录的子目录中。

在某些情况下,系统信息可以从环境变量获得,但对于其它信息,如快捷方式的位置,
则需要访问注册表。设置永久环境变量也需要访问注册表。


\subsection{Windows 权限}
\label{sec:winpermissions}

在较新的 Windows 版本中,普通用户与管理员是有区别的。只有管理员能自由访问
整个操作系统。尽管如此,在实际中,作为受限用户与普通用户,你最能好能够描
述所处的用户类别:作为一个管理员是惯例,而不是特例。无论如何,我们努力使得
\TL{} 的安装不需要管理员权限。

如果用户是管理员身份,会有选项允许给所有用户安装,如果启用了这个选项,就会
给所有用户创建快捷方式,并修改系统环境变量。否则,安装程序只为当前用户创建
快捷方式,并改变用户环境变量。

无论管理员状态如何,\TL{} 预设的默认根目录总是位于 \verb|%SystemDrive%|
下。对于当前用户安装程序总是要测试,根目录是否可写。

如果用户不是管理员,并且 \TeX{} 已经存在搜索路径中,则可能会出现问题。
因为有效路径是由系统路径后接用户路径组成,新安装的 \TL{} 可能永远不会
优先运行。为了保险起见,安装程序为命令提示符创建快捷方式。在这个快捷
方式中,新安装的 \TL{} 的可执行目录被预设于本地的搜索路径中。当从这个
快捷方式启动命令行任务时,便可以使用新的 \TL{}。如果安装了 \TeX{}works,
其快捷方式也将 \TL{} 加进了搜索路径中,所以它应该不会出现路径问题。

对于 Vista 和 Windows~7 系统,还有另外一个奇怪的问题:即使你以管理员身
份登录系统,依旧要求你提供管理员权限。实际上,是否以管理员身份登录并不
是问题所在。相反,在你希望运行的程序或快捷方式上单击右键,系统通常会给出
“以管理员身份执行”这样的选择。

\subsection{增加 Windows 和 Cygwin 下的最大内存量}
\label{sec:cygwin-maxmem}

Windows 和 Cygwin (参见第~\ref{sec:cygwin}~节以了解 Cygwin 安装细节) 的
用户可能会在执行特定 \TL\ 程序时遇到内存不足的情况。例如 \prog{asy} 在
你尝试分配一个 25,000,000 个实数的数组时可能会内存不足,而 Lua\TeX\ 在
你尝试处理一个包含大量字体的文档时可能会内存不足。

对 Cygwin,你可以按照 Cygwin 用户指南
(\url{http://www.cygwin.com/cygwin-ug-net/setup-maxmem.html}) 中的办法
增加可用内存量。

对 Windows,你必须创建一个文件,例如命名为 \code{moremem.reg},包含
如下内容:

\begin{sverbatim}
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\Software\Cygwin]
"heap_chunk_in_mb"=dword:ffffff00
\end{sverbatim}

\noindent 然后以管理员身份执行命令 \code{regedit /s moremem.reg}。(如果
你只希望修改当前用户而不是整个系统的内存,改用 \code{HKEY\_CURRENT\_USER}。)

\section{Web2C 用户指南}

\Webc{} 是一整套 \TeX{} 相关程序的集合:\TeX{} 本身、\MF{}、\MP{}、\BibTeX{},
等等。它是 \TL{} 的核心。\Webc{} 的主页及最新的手册等都在
\url{http://tug.org/web2c}。

我们简单的介绍一下它的历史:最早它是由 Tomas Rokicki 在 1987 年实现的,他开发了第一套
将 \TeX{} 系统的代码转换为 C 语言代码的系统,基于的是 Unix 下 change files
的原理,change files 的
工作是 Howard Trickey 和 Pavel Curtis 完成的。Tim Morgan 后来成为了这套系统的维护
者,在这期间,软件的名称改为了 Web-to-C\@。在许多其他贡献者的帮助下,1990 年 Karl Berry
接手了这个工作,到 1997 年,他把这项工作交给了 Olaf Weber。Olaf Weber 在 2006 年又
把这项工作交还给了 Karl。

\Webc{} 系统可以在 Unix、32 位 Windows 系统、\MacOSX{} 和其他的一些操作系统下运行。
它使用的是 Knuth 用 \web{} 文学编程语言编写的 \TeX{} 和其他基本程序的原始代码,将其转换为 C
源码。用这种方法处理的核心的 \TeX{} 程序包括:

\begin{cmddescription}
\item[bibtex]    维护参考文献。
\item[dvicopy]   展开 \dvi{} 中的虚拟字体 (virtual font) 引用。
\item[dvitomp]   将 \dvi{} 转换为 MPX (MetaPost 图片)。
\item[dvitype]   将 \dvi{} 转换为可读文本。
\item[gftodvi]   生成 Generic 格式字体的 proofsheet。
\item[gftopk]    将 Generic 格式字体转换为 packed 格式字体。
\item[gftype]    将 Generic 格式字体转换为可读文本。
\item[mf]        创建字体。
\item[mft]       以漂亮的方式排版输出 \MF{} 的代码。
\item[mpost]     创建技术性插图。
\item[patgen]    创建断字规则文件。
\item[pktogf]    将 Packed 格式字体转换为 generic 格式字体。
\item[pktype]    将 PK 格式转换为可读的文本。
\item[pltotf]    将纯文本的 property list 转换为 TFM 格式。
\item[pooltype]  显示 \web{} 的 pool 文件。
\item[tangle]    将 \web{} 转换为 Pascal 代码。
\item[tex]       排版。
\item[tftopl]    将 TFM 格式转换为纯文本的 property list 格式。
\item[vftovp]    将虚拟字体格式转换为 virtual property list 格式。
\item[vptovf]    将 virtual property list 格式转换为虚拟字体格式。
\item[weave]     将 \web{} 转换为 \TeX。
\end{cmddescription}

\noindent 这些程序的详细功能和调用语法都在其各自软件包的文档中有说明,在 \Webc{} 的文
档中也有相关介绍。不过,有些规则对所有这些程序都是通用的,了解这些规则有助于你更好的使用
\Webc{}。

所有的程序都接受这些 \GNU 标准的选项:
\begin{ttdescription}
\item[-{}-help] 显示基本使用说明。
\item[-{}-verbose] 显示详细的执行过程。
\item[-{}-version] 显示版本信息,然后退出。
\end{ttdescription}

所有的 \Webc{} 程序均使用 \KPS{} (\url{http://tug.org/kpathsea}) 路径搜索库来查找文件,
这套库结合环境变量和配置文件的
使用来优化大量 \TeX{} 文件的搜索。\Webc{} 可以在多于一套的目录树下执行查找,这可以方
便维护类似 \TeX{} 标准发行版和本地版本的扩展这样两套目录树。为了优化搜索的速度,每个目
录树的顶层目录下都有一个 \file{ls-R} 文件,这个文件里包含了所有此目录下文件的名称和对
应的相对路径。

\subsection{Kpathsea 路径搜索}
\label{sec:kpathsea}

我们首先介绍一下 \KPS{} 库的的通用路径搜索方式。

我们将目录名称称作\emph{路径元素},而把用冒号或者分号分隔的路径元素列表称
作\emph{搜索路径}。搜索路径可能是许多种来源的组合,比如在 \samp{.:/dir} 路径下
搜索 \samp{my-file} 这个文件,\KPS{} 将逐个尝试路径中的每个元素:首先是
\file{./my-file},然后是 \file{/dir/my-file},并返回找到的第一个结果 (或者
也可以返回所有的结果)。

为了符合所有操作系统下的习惯,\KPS{} 在非 Unix 系统下使用的路径分隔符可能不是冒号
(\samp{:}) 和斜杠 (\samp{/})。

在检查一个具体的路径元素 \var{p} 时,\KPS{} 首先检查是否有符合 \var{p} 的文件名
数据库 (见第~\pageref{sec:filename-database}~页的``文件名数据库'') 存在,也就是说,
是否有数据库正好对应着 \var{p} 的一个前缀。如果存在,就在数据库中寻找符合的路径后缀。

要是没有这种数据库存在、又或者所有的数据库都不能和指定的路径前缀匹配上、再或者找到的数
据库里没有进一步的匹配,就要搜索文件系统了 (前提是我们没在路径前加上 \samp{!!} ,又
或者搜索时就指定了这是一次``必定存在 (must exist)''型的搜索方式)。此时 \KPS{} 将
根据路径元素构建一个需要检查的目录列表,逐个尝试这些目录,试图找到指定的文件。

搜索 \samp{.vf} 文件和 \TeX{} 用 \cs{openin} 命令读入的文件时,会指定``文件必
定存在 (must exist)''这个选项。而有些文件 (比如 \file{cmr10.vf}) 可能不存在,
花费时间在磁盘上对它进行搜索是不值得的。因此,如果你安装了新的 \samp{.vf} 文件后没有
更新 \file{ls-R},那这个文件将永远找不到。搜索时会优先在数据库寻找,然后再去搜索磁盘。
一旦找到了就立即停止搜索,返回结果。

尽管最简单也最常见的路径元素是目录名称,\KPS{} 搜索的路径里还是可以使用其他额外功能的:
多层默认值,环境变量名称、配置文件值、用户主目录,以及递归式子目录查找。所以我们把 \KPS{}
将搜索路径变换为一个或多个基本目录名的过程称为\emph{展开}路径元素的过程。展开的方式
按执行的顺序在后续小节里有叙述。

注意,如果搜索的文件给出了绝对路径或者明确的相对路径,即以 \samp{/} 或 \samp{./} 或
\samp{../} 起始,\KPS{} 将只检查该文件是否存在。

\ifSingleColumn
\else
\begin{figure*}
\verbatiminput{examples/ex5.tex}
\setlength{\abovecaptionskip}{0pt}
  \caption{一份示例性的配置文件的例子}
  \label{fig:config-sample}
\end{figure*}
\fi

\subsubsection{路径的来源}
\label{sec:path-sources}

搜索路径可能来自许多地方,\KPS{} 是按照下面的顺序查找的:

\begin{enumerate}
\item
  用户设置的环境变量,例如 \envname{TEXINPUTS}\@。以 . 连接某个程序名称的环境变量
有更高的优先级,比如若正在运行的程序是 \samp{latex},那 \envname{TEXINPUTS.latex}
将比 \envname{TEXINPUTS} 优先级更高。
\item
  专门针对某个程序的配置文件,比如 \cmdname{dvips} 的 \file{config.ps} 里出现
\samp{S /a:/b} 这样一行。
\item   \KPS{} 配置文件 \file{texmf.cnf},包含类似
  \samp{TEXINPUTS=/c:/d} 这样的一行 (参见下面的解释)。
\item 编译时的缺省值。
\end{enumerate}
\noindent 你可以通过调试选项看到所有的这些值 (参见第~\pageref{sec:debugging}~页的
``调试操作'')。

\subsubsection{配置文件}

\KPS{} 读入\emph{运行时配置文件} \file{texmf.cnf} 来获得搜索路径和其他定义。
而这个 \file{texmf.cnf} 存放的路径则是在 \envname{TEXMFCNF} 变量里定义的,
但我们不建议设置这个 (或者任何) 环境变量。

作为代替,标准的安装将产生文件 \file{.../2012/texmf.cnf}。如果你必须修改缺省
值 (一般不需要),这是修改的地方。主配置文件是
\file{.../2012/texmf/web2c/texmf.cnf}。你不应该修改后者,因为在发行版本被更新
后会丢失修改。

搜索路径里\emph{所有的} \file{texmf.cnf} 文件都会被读入,而先读入的优先级更高。
比如搜索路径是 \verb|.:$TEXMF|,那么文件 \file{./texmf.cnf} 里面的值要比
\verb|$TEXMF/texmf.cnf| 里边的优先。

\begin{itemize}
\item
  以 \code{\%} 表示单行注释。
\item
  忽略空行。
\item
  行末的 \bs{} 作为连接符,即把下一行直接接上。但保留下一行行首的空白。
\item
  所有剩余的行格式如下:
\begin{alltt}
  \var{variable}[.\var{progname}] [=] \var{value}
\end{alltt}%
 \samp{=} 号和空白都是可选的。
\item
  \ttvar{variable} (变量) 允许包含任何字符,除空白、\samp{=}、\samp{.}
  之外。不过只用 \samp{A-Za-z\_} 是最保险的。
\item
  如果 \samp{.\var{progname}} (程序名) 存在,则该定义只对正在运行的名叫
  \texttt{\var{progname}} 或 \texttt{\var{progname}.exe}
  的程序起作用。这可以让给不同种类的 \TeX{} 程序设置不同的搜索路径。
\item \var{value} (值) 允许任何 \code{\%} 与 \samp{@} 之外的字符出现。
  不支持在等号右侧使用 \code{\$\var{var}.\var{prog}} 这样的写法。
  如果在 Unix 下,\var{value} 中的 \samp{;}\ 字符会被转换为
  \samp{:}。如果你希望让 Unix, \acro{MS-DOS} 和 Windows 里都用同一个
  \file{texmf.cnf},这会很有用。
\item
  在读入所有定义后再开始展开,所以你可以引用后边才定义的变量。
\end{itemize}
展示上面所有内容的一段配置文件
\ifSingleColumn
如下:

\verbatiminput{examples/ex5.tex}
\else
见图~\ref{fig:config-sample}.
\fi

\subsubsection{路径展开}
\label{sec:path-expansion}

和 Unix shell 类似,\KPS{} 能够识别搜索路径中的特殊字符。比如一个复杂的路径
\verb+~$USER/{foo,bar}//baz+,将展开为这样的子目录:在 \texttt{\$USER}
的主目录下的 \file{foo} 或 \file{bar} 目录中,且包含 \file{baz}
文件或目录。这种展开将在下面解释。
%$
\subsubsection{默认展开}
\label{sec:default-expansion}

如果最高优先级 (参见第~\pageref{sec:path-sources}~页的``路径来源'')
的搜索路径中包含一个\emph{额外的冒号} (即前置、后置或连续的冒号),\KPS{} 将在
此处插入次高优先级的搜索路径。如果插入的那个路径里也有额外的冒号,同样的步骤将发生
在更次以及优先级的路径上。假设环境变量设置为

\begin{alltt}
> \Ucom{setenv TEXINPUTS /home/karl:}
\end{alltt}

而 \file{texmf.cnf} 里的 \code{TEXINPUTS} 值为

\begin{alltt}
  .:\$TEXMF//tex
\end{alltt}

则用于搜索的最终值为:

\begin{alltt}
  /home/karl:.:\$TEXMF//tex
\end{alltt}

因为没必要插入多个相同的值,所以 \KPS{} 只会修改一个额外的 \samp{:},其他的不变。
它首先检查前置的 \samp{:},然后是末尾的 \samp{:},最后是连续的 \samp{:}。

\subsubsection{大括号展开}
\label{sec:brace-expansion}

大括号展开是一项有用的特性,其作用是把 \verb+v{a,b}w+ 这样的转换为
\verb+vaw:vbw+,允许嵌套使用。通过把 \code{\$TEXMF} 赋值为一个括号列表,
可以构造出多套 \TeX{} 层级结构。例如在 \file{texmf.cnf} 里有下面的定义
(简化的例子):
\begin{verbatim}
  TEXMF = {$TEXMFHOME,$TEXMFLOCAL,!!$TEXMFVAR,!!$TEXMFMAIN}
\end{verbatim}
这样一来,当你设置
\begin{verbatim}
  TEXINPUTS = .;$TEXMF/tex//
\end{verbatim}
%$
的时候,检查完当前目录后,依次检查的路径是
\code{\$TEXMFHOME/tex}, \code{\$TEXMFLOCAL/tex}, \code{\$TEXMFVAR/tex}
和 \code{\$TEXMFMAIN/tex} (后两个只在 \file{ls-R} 数据库中搜索)。这样维护
两套并行的 \TeX{} 结构就很方便的,一套是``固定 (frozen)''的 (比如放在 \CD\ 上)
而另一套是在新版本出现时就更新的。因为所有的定义里都用到了 \code{\$TEXMF},
所以你可以确信时常更新的那个版本肯定是先被找到的。

\subsubsection{子目录展开}
\label{sec:subdirectory-expansion}

在路径元素里的目录名称 \var{d} 后面接连使用两个或更多连续的斜杠,表示 \var{d} 的
所有子目录:首先是直接处于 \var{d} 下的那些,然后是这些子目录的子目录,依此类推。
每层的目录出现的顺序是\emph{不一定}的。

如果你在 \samp{//} 后面还指定了文件名,匹配的将只是那些包含了指定文件的路径。
比如 \samp{/a//b} 将展开为路径 \file{/a/1/b}, \file{/a/2/b},
\file{/a/1/1/b} 等等,但不会展开为 \file{/a/b/c} 或 \file{/a/1}。

可以在单个路径元素里使用多个 \samp{//},但出现在路径开头的 \samp{//}
将被忽略。

\subsubsection{特殊字符与其意义:简要说明}

下面的列表总结了 \KPS{} 配置文件中出现的特殊字符:

% need a wider space for the item labels here.
\newcommand{\CODE}[1]{\makebox[3em][l]{\code{#1}}}
\begin{ttdescription}
\item[\CODE{:}] 路径分隔符,在路径的前边或者末尾时表示默认的展开方式。\par
\item[\CODE{;}] 非 Unix 系统下的路径分隔符 (和 \code{:} 功能一样)。
\item[\CODE{\$}] 变量展开。
\item[\CODE{\string~}] 表示用户的个人主目录。
\item[\CODE{\char`\{...\char`\}}] Brace expansion.
\item[\CODE{//}] 子目录展开 (可以出现在除路径开头外的任意位置)。
\item[\CODE{\%}] 注释的起始。
\item[\CODE{\bs}] 连接下一行的字符 (以支持跨行的设置项)。
\item[\CODE{!!}] \emph{只}在数据库中搜索文件,\emph{不}搜寻磁盘。
\end{ttdescription}


\subsection{文件名数据库}
\label{sec:filename-database}

\KPS{} 使用了一些方法来减少搜索时的磁盘访问次数。尽管如此,如果安装的文件足够多,在各
个可能的目录下搜索某个文件仍然可能花上很长时间 (尤其是在必须遍历数百个字体目录的时候)。
因此,\KPS{} 使用一个专门构建的纯文本``数据库''文件,这个文件叫做 \file{ls-R},它将
文件和目录进行映射,避免对磁盘的大量搜索。

第二个数据库 \file{aliases} 允许你给 \file{ls-R} 中的文件指定其他的名字。有助于
帮助源文件符合 \acro{DOS} 8.3 命名规范。

\subsubsection{文件名数据库}
\label{sec:ls-R}

前边已经解释过,主文件名数据库的名称必须是 \file{ls-R}。你可以在每个需要搜索的
\TeX{} 目录树 (缺省是 \code{\$TEXMF}) 下放置一个这样的文件。\KPS{} 在
\code{TEXMFDBS} 指定的路径中寻找这些 \file{ls-R} 文件。

推荐使用发行版中包含的 \code{mktexlsr} 脚本来创建和维护 \samp{ls-R} 文件。各类
\samp{mktex} 脚本也可能会间接调用这个脚本。实际上,这个脚本只是执行下面的命令:

\begin{alltt}
cd \var{/your/texmf/root} && \path|\|ls -1LAR ./ >ls-R
\end{alltt}

意味着你的系统的 \code{ls} 命令的输出格式必须正确 (\GNU \code{ls} 是没
问题的)。要保证数据库及时更新,最简单的方法是定期通过 \code{cron} 来重建。

如果文件在数据库中找不到,缺省情况下 \KPS{} 会在磁盘上搜索。如果某个特定的路径元素
是以 \samp{!!} 起始的,就\emph{只会}在针对这一元素的数据库中查找而不搜索磁盘。


\subsubsection{kpsewhich: 独立的路径搜索}
\label{sec:invoking-kpsewhich}

\texttt{kpsewhich} 程序将路径搜索从其他专用程序中独立出来,它可以作为类似 \code{find}
一样的程序,专门在 \TeX{} 层级结构中定位文件 (这在发行版中的 \samp{mktex}\dots\
脚本中使用得非常多)。

\begin{alltt}
> \Ucom{kpsewhich \var{option}\dots{} \var{filename}\dots{}}
\end{alltt}
\ttvar{option} 处的选项可以用 \samp{-} 也可以用 \samp{-{}-} 来起始,并接受
任何不造成疑义的缩写。

\KPS{} 将第一个非选项的参数作为文件名来查找,并返回找到的第一个文件。它不提供
寻找所有相同名称文件的功能 (你可以使用 Unix 的 \samp{find} 程序来达到这个功能)。

下面介绍了一些比较常见的选项。

\begin{ttdescription}
\item[\texttt{-{}-dpi=\var{num}}]\mbox{}
  将解析度设置为 \ttvar{num},这个选项只影响 \samp{gf} 文件和 \samp{pk}
  文件的查找。为了与 \cmdname{dvips} 兼容,提供 \samp{-D}
  这个同义的参数,默认值是 600。

\item[\texttt{-{}-format=\var{name}}]\mbox{}\\
  将查找的文件格式设置为 \ttvar{name}。默认情况下是通过文件名来猜测格式的。对于扩展名
有二义性的格式,比如 \MP{} 支持文件和 \cmdname{dvips} 配置文件,必须以 \KPS{} 已知
的名称指定格式,比如 \texttt{tex} 或 \texttt{enc files}。运行
  \texttt{kpsewhich -{}-help} 会显示格式的列表。

\item[\texttt{-{}-mode=\var{string}}]\mbox{}\\
  设置模式为 \ttvar{string},只影响 \samp{gf} 和 \samp{pk}
  文件的查找。默认情况匹配所有的模式。
\item[\texttt{-{}-must-exist}]\mbox{}\\
  尽一切可能找到文件,包括直接在磁盘上搜寻。默认情况下为了效率考虑,只检查
  \file{ls-R} 数据库里的内容。
\item[\texttt{-{}-path=\var{string}}]\mbox{}\\
  不通过文件名来猜测路径,沿 \ttvar{string} 指出的路径搜索
  (也使用冒号分隔)。支持 \samp{//} 和所有常见的展开方式。\samp{-{}-path} 选项
  和 \samp{-{}-format} 选项是互斥的。
\item[\texttt{-{}-progname=\var{name}}]\mbox{}\\
  将执行查找的程序名称设为 \texttt{\var{name}}。
  这会通过 \texttt{.\var{progname}} 特性影响搜索路径。
  缺省值是 \cmdname{kpsewhich}。
\item[\texttt{-{}-show-path=\var{name}}]\mbox{}\\
  显示用于查找 \texttt{\var{name}} 类型文件的路径。和 \samp{-{}-format}
  选项一样,可以使用扩展名 (\code{.pk}, \code{.vf}, 等等) 也可以使用全名。
\item[\texttt{-{}-debug=\var{num}}]\mbox{}\\
  将调试选项 (等级) 设置为 \texttt{\var{num}}。
\end{ttdescription}


\subsubsection{使用举例}
\label{sec:examples-of-use}

现在我们看看实际使用 \KPS{} 的例子。这里是一个简单的搜索:

\begin{alltt}
> \Ucom{kpsewhich article.cls}
   /usr/local/texmf-dist/tex/latex/base/article.cls
\end{alltt}
我们寻找的是 \file{article.cls} 文件。因为 \samp{.cls} 后缀已经说明了文件的类型,所以
我们不需要特别指明查找的是 \optname{tex} 类型的文件 (也就是要在 (\TeX{} 源文件目录下查找)。
我们在 \samp{texmf-dist} 的 \file{tex/latex/base} 子目录下找到了这个文件。与之类似,
下列所有文件都顺利找到,因为其扩展名没有二义。
\begin{alltt}
> \Ucom{kpsewhich array.sty}
   /usr/local/texmf-dist/tex/latex/tools/array.sty
> \Ucom{kpsewhich latin1.def}
   /usr/local/texmf-dist/tex/latex/base/latin1.def
> \Ucom{kpsewhich size10.clo}
   /usr/local/texmf-dist/tex/latex/base/size10.clo
> \Ucom{kpsewhich small2e.tex}
   /usr/local/texmf-dist/tex/latex/base/small2e.tex
> \Ucom{kpsewhich tugboat.bib}
   /usr/local/texmf-dist/bibtex/bib/beebe/tugboat.bib
\end{alltt}

另外,最后一个是 \textsl{TUGBoat} 文章的 \BibTeX{} 参考文献数据库。

\begin{alltt}
> \Ucom{kpsewhich cmr10.pk}
\end{alltt}

\file{.pk} 类型的字体位图文件是给 \cmdname{dvips} 或者 \cmdname{xdvi}
这种显示程序提供的。因为 \TL{} 里没有预生成的 Computer Modern \samp{.pk}
字体,所以没有找到任何内容\Dash \TL{} 默认使用 Type~1 版本的。

\begin{alltt}
> \Ucom{kpsewhich wsuipa10.pk}
\ifSingleColumn   /usr/local/texmf-var/fonts/pk/ljfour/public/wsuipa/wsuipa10.600pk
\else /usr/local/texmf-var/fonts/pk/ljfour/public/
...                         wsuipa/wsuipa10.600pk
\fi\end{alltt}

而这个字体 (Washington 大学的一套注音字母表) 就需要生成 \samp{.pk} 文件了。我们默认的
\MF{} 模式是 \texttt{ljfour},基础解析度是 600\dpi{} (dots per inch),所以会得到这样一个文件。
\begin{alltt}
> \Ucom{kpsewhich -dpi=300 wsuipa10.pk}
\end{alltt}

一旦指明我们需要寻找的只是 300\dpi{} 的文件时 (\texttt{-dpi=300}),就会发现系统里
没有符合要求的文件。这样 \cmdname{dvips} 或 \cmdname{xdvi} 会使用 \cmdname{mktexpk}
脚本去创建所需的 \texttt{.pk} 文件。

下面我们将注意力转向 \cmdname{dvips} 的头文件和配置文件。首先看看最常用的一个,\file{tex.pro}
prologue 文件,然后检查通用配置文件 \file{config.ps} 和 \PS{} 字体映射文件
\file{psfonts.map}\Dash 从 2004 年开始,映射文件和编码文件都在 \dirname{texmf}
目录树下有其自己的搜索路径了。因为 \samp{.ps} 后缀可能会有二义,我们必须指明意思是
\optname{dvips config}。

\begin{alltt}
> \Ucom{kpsewhich tex.pro}
   /usr/local/texmf/dvips/base/tex.pro
> \Ucom{kpsewhich --format="dvips config" config.ps}
   /usr/local/texmf/dvips/config/config.ps
> \Ucom{kpsewhich psfonts.map}
   /usr/local/texmf/fonts/map/dvips/updmap/psfonts.map
\end{alltt}

这样我们可以更仔细地分析一下 \acro{URW} Times 的 \PS{} 支持文件。依照标准的字体
命名方案,这些文件的前缀是 \samp{utm}。首先查询的是配置文件,其中包含的是 map
文件的名称:

\begin{alltt}
> \Ucom{kpsewhich --format="dvips config" config.utm}
   /usr/local/texmf-dist/dvips/psnfss/config.utm
\end{alltt}

这个文件的内容是

\begin{alltt}
  p +utm.map
\end{alltt}

即指向 \file{utm.map} 文件,也就是我们下一步要找的。

\begin{alltt}
> \Ucom{kpsewhich utm.map}
   /usr/local/texmf-dist/fonts/map/dvips/times/utm.map
\end{alltt}

这个 map 文件定义了 URW 集合中的 Type~1 \PS{} 字体文件名。内容差不多是下边这样
(我们只列出了其中一部分):

\begin{alltt}
utmb8r  NimbusRomNo9L-Medi    ... <utmb8a.pfb
utmbi8r NimbusRomNo9L-MediItal... <utmbi8a.pfb
utmr8r  NimbusRomNo9L-Regu    ... <utmr8a.pfb
utmri8r NimbusRomNo9L-ReguItal... <utmri8a.pfb
utmbo8r NimbusRomNo9L-Medi    ... <utmb8a.pfb
utmro8r NimbusRomNo9L-Regu    ... <utmr8a.pfb
\end{alltt}

比如我们可以以一个 Times Roman 字体 \file{utmr8a.pfb} 为例,在 \file{texmf}
目录下的 Type~1 字体文件中寻找它的位置:

\begin{alltt}
> \Ucom{kpsewhich utmr8a.pfb}
\ifSingleColumn   /usr/local/texmf-dist/fonts/type1/urw/times/utmr8a.pfb
\else   /usr/local/texmf-dist/fonts/type1/
... urw/utm/utmr8a.pfb
\fi\end{alltt}

现在你可以发现,追寻某个文件的下落是如此方便。尤其是在你怀疑找到的文件错了的时候,这些
功能非常重要,因为 \cmdname{kpsewhich} 只能告诉你找到的第一个文件。

\subsubsection{调试操作}
\label{sec:debugging}

有时你可能会需要分析程序是如何解析文件引用的。\KPS{} 提供了多层调试输出来实现这个功能:

\begin{ttdescription}
\item[\texttt{\ 1}] \texttt{stat} 调用 (磁盘上的查询)。在 \file{ls-R}
  数据库及时更新的情况下几乎不会有什么输出。
\item[\texttt{\ 2}] 对散列表的引用 (例如 \file{ls-R} 数据库,映射文件,配置文件)。
\item[\texttt{\ 4}] 文件的打开与关闭操作。
\item[\texttt{\ 8}] \KPS{} 搜索的文件类型的通用路径信息。有助于寻找针对某一文件的
特定路径。
\item[\texttt{16}] 每个路径元素的目录列表 (只在本地磁盘上搜索时有用)。
\item[\texttt{32}] 文件搜索。
\item[\texttt{64}] 变量的值。
\end{ttdescription}
等级 \texttt{-1} 将启用上述所有选项,实际上这是最方便的设置方法了。

类似地,在 \cmdname{dvips} 程序中设置上述调试选项的组合,你就可以出 \cmdname{dvips}
是从哪里找到它所需的文件的。另一方面,如果找不到某个文件,调试输出也会显示程序从哪些目录进行
了查找,你也可以据此判断出问题出在哪里。

一般而言,因为所有的程序都在其内部调用 \KPS{} 库,你可以设置 \envname{KPATHSEA\_DEBUG}
环境变量来选择调试参数,将这个变量设置为上述参数的组合 (加法) 以获得对应的功能。

(Windows 用户请注意:因为在 Windows 下不容易把所有信息都重定向到固定的文件中,为了方便诊断,
你可以临时设置 \texttt{SET KPATHSEA\_DEBUG\_OUTPUT=err.log})。

让我们以一个简单的 \LaTeX{} 源文件 \file{hello-world.tex} 为例,其内容如下:
\begin{verbatim}
  \documentclass{article}
  \begin{document}
  Hello World!
  \end{document}
\end{verbatim}
这个小文件只使用了 \file{cmr10} 字体,我们可以看看 \cmdname{dvips} 是如何生成 \PS{}
文件的 (我们希望使用 Type~1 版本的 Computer Modern 字体,所以使用了 \texttt{-Pcms}
参数)。
\begin{alltt}
> \Ucom{dvips -d4100 hello-world -Pcms -o}
\end{alltt}
此时我们将 \cmdname{dvips} 的调试等级 4 (表示字体路径) 和 \KPS\ 的路径元素展开组合到
一起 (参见 \cmdname{dvips} 参考手册,\OnCD{texmf/doc/html/dvips/dvips_toc.html})。
(稍作整理的) 输出见图~\ref{fig:dvipsdbga}。
\begin{figure*}[tp]
\centering
\input{examples/ex6a.tex}
\caption{寻找配置文件}\label{fig:dvipsdbga}

\bigskip

\input{examples/ex6b.tex}
\caption{寻找 prolog 文件}\label{fig:dvipsdbgb}

\bigskip

\input{examples/ex6c.tex}
\caption{寻找字体文件}\label{fig:dvipsdbgc}
\end{figure*}

\cmdname{dvips} 启动后就开始搜寻其需要使用的文件。首先找到的是 \file{texmf.cnf},
它给出了用于进一步查询其他文件的路径,然后找到的是 \file{ls-R} 文件名数据库 (用于
优化文件搜索速度) 和 \file{aliases} 文件 (用于创建同一文件的多个别名,比如为较自然
的长文件名创建 \acro{DOS} 8.3 风格的短别名)。然后 \cmdname{dvips} 去寻找它的通用
配置文件 \file{config.ps},接下来查找个人定制文件 \file{.dvipsrc} (不过上述例子中并
未找到,显示 \emph{not found})。最后 \cmdname{dvips} 找到了 Computer Modern
\PS{} 字体的配置文件 \file{config.cms} (因为执行 \cmdname{dvips} 时使用了
\texttt{-Pcms} 选项)。这个文件里包含了字体的 \TeX{} 名称, \PS{} 名称和文件名的对
应关系。

\begin{alltt}
> \Ucom{more /usr/local/texmf/dvips/cms/config.cms}
   p +ams.map
   p +cms.map
   p +cmbkm.map
   p +amsbkm.map
\end{alltt}
于是 \cmdname{dvips} 接下来寻找这些文件,再加上固定载入的,通用映射文件
\file{psfonts.map} (这个文件里包含常用 \PS{} 字体的映射,参见第
\ref{sec:examples-of-use}~节的最后一部分,讨论了 \PS{} 映射文件的处理)。

这时候 \cmdname{dvips} 向用户表示它的存在:
\begin{alltt}
This is dvips(k) 5.92b Copyright 2002 Radical Eye Software (www.radicaleye.com)
\end{alltt}
\ifSingleColumn
然后开始寻找 prolog 文件 \file{texc.pro}:
\begin{alltt}\small
kdebug:start search(file=texc.pro, must\_exist=0, find\_all=0, 
  path=.:~/tex/dvips//:!!/usr/local/texmf/dvips//:
       ~/tex/fonts/type1//:!!/usr/local/texmf/fonts/type1//).
kdebug:search(texc.pro) => /usr/local/texmf/dvips/base/texc.pro
\end{alltt}
\else
然后开始寻找 prolog 文件 \file{texc.pro} (见图~\ref{fig:dvipsdbgb})。
\fi

找到所需文件后,\cmdname{dvips} 输出日期和时间,并告知我们它将生成
\file{hello-world.ps} 文件,需要用到 \file{cmr10} 字体文件,
这个字体属于``常驻 (resident) 的'',也就是不需要载入位图文件的字体:
\begin{alltt}\small
TeX output 1998.02.26:1204' -> hello-world.ps 
Defining font () cmr10 at 10.0pt 
Font cmr10 <CMR10> is resident.
\end{alltt}
寻找并找到了 \file{cmr10.tfm} 文件。然后再次引用了一些 prolog 文件 (此处略去),
最终找到了 \file{cmr10.pfb} 这个 Type~1 字体,并将它包含在输出文件中 (见最后
一行)。
\begin{alltt}\small
kdebug:start search(file=cmr10.tfm, must\_exist=1, find\_all=0, 
  path=.:~/tex/fonts/tfm//:!!/usr/local/texmf/fonts/tfm//:
       /var/tex/fonts/tfm//).
kdebug:search(cmr10.tfm) => /usr/local/texmf/fonts/tfm/public/cm/cmr10.tfm
kdebug:start search(file=texps.pro, must\_exist=0, find\_all=0, 
   ...
<texps.pro>
kdebug:start search(file=cmr10.pfb, must\_exist=0, find\_all=0, 
  path=.:~/tex/dvips//:!!/usr/local/texmf/dvips//:
       ~/tex/fonts/type1//:!!/usr/local/texmf/fonts/type1//).
kdebug:search(cmr10.pfb) => /usr/local/texmf/fonts/type1/public/cm/cmr10.pfb
<cmr10.pfb>[1] 
\end{alltt}

\subsection{运行时选项}

\Webc{} 另一项有用的特性是可以通过 \KPS{} 读入的运行时文件 \file{texmf.cnf}
来控制一系列的内存参数 (具体而言是数组的大小)。内存的设置可以在这个文件的第三部分找到。
比较重要的几个设置是:

\begin{ttdescription}
\item[\texttt{main\_memory}]
  总的可用内存数,以 word 为单位,\TeX{}, \MF{} 和 \MP\ 受此限制。
  每修改一次都必须重新生成一个新的格式文件。比如你可以生成一个``巨型''版本的
  \TeX{},将其存为 \texttt{hugetex.fmt}。
\item[\texttt{extra\_mem\_bot}]
  为``大型'' \TeX{} 数据结构预留的额外空间:boxes, glue, breakpoint 等。如果你使用
  \PiCTeX{} 时特别有用。
\item[\texttt{font\_mem\_size}]
  \TeX{} 用于存储字体数据的 word 数。大致等于载入的所有 \acro{TFM} 文件的总和。
\item[\texttt{hash\_extra}]
  为存储控制序列而设置的散列表的额外空间。一般散列表足够存储将近 10,000
  个控制序列。如果你排版的是一本有大量交叉引用的书籍,这个值可能不够用。默认的
  \texttt{hash\_extra} 是 \texttt{50000}。
\end{ttdescription}

\noindent 当然,这项功能并非真正的动态内存和数组分配的替代,但考虑到动态分配在现在的 \TeX{}
太难实现,才通过这些选项提供了一些灵活性。

\section{致谢}

\TL{} 是在几乎所有 \TeX{} 用户组织的协力下完成的。这个版本由 Karl Berry
监制。下面列出了过去和现在主要的贡献者:

\begin{itemize*}

\item 英国、德国、荷兰和波兰的 \TeX{} 用户组织
(分别为 \acro{TUG}, \acro{DANTE} e.V., \acro{NTG}, 和 \acro{GUST}),他们为所在
地区的 \TeX{} 社群提供了必备的技术和管理基础设施。请加入本地的 \TeX 用户组织!
(参见 \url{http://tug.org/usergroups.html}。)

\item \acro{CTAN} 团队,值得一提的是 Robin Fairbairns, Jim Hef{}feron,
和 Rainer Sch\"opf。他们负责分发 \TL{} 光盘镜像,为软件包更新提供支撑,\TL{}
正是基于这些软件包构建的。

\item Nelson Beebe,他为 \TL\ 提供了许多平台,自己也进行了详尽的测试。

\item John Bowman,他对先进的图形程序 Asymptote 做了许多修改,使之能在 \TL{}
中工作。

\item Peter Breitenlohner 和 \eTeX\ 团队,他们创造了未来 \TeX\ 的稳定基础。
同时特别感谢 Peter,他为整个 \TL 中 \GNU\ autotools 的使用提供了主要的帮助。

\item Jin-Hwan Cho 和整个 DVIPDFM$x$ 团队,他们创造了这个优秀的 DVI 输出程序,
以及对配置问题及时的回应。

\item Thomas Esser,如果没有他优秀的 \teTeX{} 套件,\TL{} 根本不可能存在。

\item Michel Goossens,他一起编写了原始的文档。

\item Eitan Gurari,他不知疲倦地改进着的 \TeX4ht 程序用于创建这份文档的 \HTML{}
版本,年复一年。Eitan 于 2009 年 6 月过早地离开了我们,我们希望把这份文档
献给它,以志纪念。

\item Hans Hagen,他对 \ConTeXt\ 格式 (\url{http://pragma-ade.com}) 做了
许多测试和修改,使之能够包含在 \TL{} 的框架下。

\item \Thanh, Martin Schr\"oder,和 pdf\TeX\ 团队,他们持续不断地改进 \TeX\
的功能。

\item Hartmut Henkel,他对 pdf\TeX\, Lua\TeX 等程序的开发起到了重要的贡献。

\item Taco Hoekwater,他对 \MP{} 和 (Lua)\TeX\ (\url{http://luatex.org})
重要的开发使之焕发新的活力。他还参与了将 \ConTeXt\ 融入 \TL{}、给
Kpathsea 添加多线程功能,等等许多工作。

\item Pawe{\l} Jackowski,他创建了 Windows 下的安装程序 \cmdname{tlpm},
和 Tomasz {\L}uczak,因为他的 \cmdname{tlpmgui} 被用在了以前的版本。

\item Akira Kakuto,以他的 \acro{W32TEX} 发行版
(\url{http://w32tex.org/}) 为基础提供了 Windows 下的二进制文件,以及许多
其他的贡献。

\item Jonathan Kew,他开发了非凡的 Xe\TeX{} 引擎并花了大量时间和精力集成到
\TL{} 中。以及 Mac\TeX 安装程序的早期版本,还有我们推荐的前端 \TeX{}works。

\item Dick Koch 他维护了 Mac\TeX\ (\url{http://tug.org/mactex}) 这个和
\TL{} 联系非常紧密的发行版本。

\item Reinhard Kotucha,他对 \TL{} 2008 的基础架构和安装程序起到了重要贡献,
以及 Windows 下的研究性工作,\texttt{getnonfreefonts} 脚本,等等。

\item Siep Kroonenberg,也因为他对 \TL{} 2008 基础架构和安装程序的重要贡献,
尤其是在 Windows 上。他还花了大量的时间更新手册,介绍了这些特性。

\item Heiko Oberdiek,因为他的 \pkgname{epstopdf} 包和许多其他的工作,压缩
巨大的 \pkgname{pst-geo} 数据文件使我们得以包含它们,最重要的还是因为他在
\pkgname{hyperref} 宏包上优秀的工作。

\item Petr Ol\v{s}ak,他非常认真地协调和检查所有的捷克语和斯洛伐克语资料。

\item Toshio Oshima,他提供了 Windows 下的 \cmdname{dviout} 预览工具。

\item Manuel P\'egouri\'e-Gonnard,他对宏包更新、文档改进以及
\cmdname{texdoc} 开发上的努力。

\item Fabrice Popineau,他创建了 \TL{} 最早的 Windows 支持。

\item Norbert Preining,他是 \TL{} 2008 基础架构和安装程序的总设计师,还
负责协调了 Debian 版本的 \TL{} 工作 (和 Frank K\"uster 一起),并提供了许
多建议。

\item Sebastian Rahtz,他是 \TL{} 的创始者,并维护了它许多年。

\item Phil Taylor,他设置了 BitTorrent 下载。
 
\item Tomasz Trzeciak,他为 Windows 开发提供了广泛的帮助。

\item Vladimir Volovich,他很大地帮助解决了许多移植和维护的问题,尤其是令我们能够
将 \cmdname{xindy} 包含进来。

\item Staszek Wawrykiewicz,\TL{} 主要的测试人员,同时还是许多重要波兰语支持的协调
人员:字体、Windows 安装,和其他许多工作。

\item Olaf Weber,他对 \Webc{} 耐心的维护。

\item Gerben Wierda,他创建和维护了原来的 \MacOSX\ 支持,并参与了大量集成和测试工作。

\item Graham Williams,他整理了软件包的依赖情况的 \TeX\ Catalogue。

\end{itemize*}

二进制版本的编译者:
Ettore Aldrovandi (\pkgname{i386-solaris}, \pkgname{x86\_64-solaris}),
Alan Braslau (\pkgname{amd64-kfreebsd}, \pkgname{i386-kfreebsd}),
Peter Breitenlohner (\pkgname{x86\_64-linux}),
Karl Berry (\pkgname{i386-linux}),
Ken Brown (\pkgname{i386-cygwin}),
Akira Kakuto (\pkgname{win32}),
Dick Koch (\pkgname{universal-darwin}, \pkgname{x86\_64-darwin}),
Nikola Le\v{c}i\'c (\pkgname{amd64-freebsd}, \pkgname{i386-freebsd}),
Mojca Miklavec (\pkgname{mipsel-linux}),
Norbert Preining (\pkgname{alpha-linux}),
Thomas Schmitz (\pkgname{powerpc-linux}),
Boris Veytsman (\pkgname{armel-linux}),
Vladimir Volovich (\pkgname{powerpc-aix}, \pkgname{sparc-solaris}),
Olaf Weber (\pkgname{mips-irix})。
关于 \TL{} 编译进程的信息,请查阅 \url{http://tug.org/texlive/build.html}。

这份手册的翻译者:
Boris Veytsman (俄语),
Jjgod Jiang, Jinsong Zhao, Yue Wang, \& Helin Gai (中文),
Uwe Ziegenhagen (German),
Manuel P\'egouri\'e-Gonnard (法语),
Marco Pallante (意大利语),
Nikola Le\v{c}i\'c (塞尔维亚语),
Petr Sojka \& Jan Busa (捷克\slash 斯洛伐克语),
Staszek Wawrykiewicz (波兰语)。\TL{} 文档的主页是
\url{http://tug.org/texlive/doc.html}。

当然,最重要的感谢应该致予 Donald Knuth,感谢他发明了 \TeX,也感谢他将
\TeX\ 赠与全世界。

\section{发行历史}
\label{sec:history}

\subsection{过去}

1993 年末荷兰 \TeX{} 用户组开始为 \acro{MS-DOS} 用户开发 4All\TeX{} \CD{} 时,
我们就开始了相关的讨论,并希望在此时为所有的操作系统提供一个单一的、合理的 \CD{}。当时
那是一个过于宏伟的目标,但的确滋生了非常成功的 4All\TeX{} \CD{},同时 \acro{TUG}
技术委员会工作组也开始设计 \emph{\TeX{} 目录结构} (\url{http://tug.org/tds}),
以指明如何创建一套一致而可控的集合,囊括所有 \TeX{} 相关的文件。\TDS{} 的完整草案在 1995
年 12 月的 \textsl{TUGboat} 上出版,并初步确定期望的产品将是在 \CD{} 上出现的范例
结构。你现在使用的这个发行版正是工作组审议的直接结果。4All\TeX{} \CD{} 的成功也说明
如果有一个类似这样的易于使用的系统,对 Unix 用户肯定很有帮助,这是 \TL{} 最主要的出发点。

我们在 1995 年秋天开始尝试构建一个新的 \CD{} (基于 \TDS{}),并很快发现 Thomas Esser
的 \teTeX{} 已经是比较理想的配置,并因为在它构建时就已经考虑了跨文件系统的兼容性问题,
也已具有多平台支持。Thomas 同意帮助我们,并在 1996 年初开始了正式的工作。第一版是在
1996 年五月发行的。到 1997 年初,Karl Berry 完成了 \Webc{} 的一个重大的更新版本,
将几乎所有 Thomas Esser 加入 \teTeX{} 的特性囊括在内,这样我们决定在 \teTeX{} 的
\texttt{texconfig} 脚本的辅助下,基于标准的 \Webc{} 来制作第二版的 \CD{}。
第 3 版的 \CD{} 基于 Olaf Weber 完成的 \Webc{} 的一个重大修正版本,7.2。与此同时,
\teTeX{} 的一个新版本出现了,\TL{} 也包含了其中绝大多数特性。第 4 版依照上面的模式进
行,使用了新版本的 \teTeX{} 和新版本的 \Webc{} (7.3)。系统此时也包括了完整的 Windows
下的配置。

在第 5 版 (2000 年 3 月) 中检查并修正了 \CD{} 的许多部分,更新了数百个软件包。软件
包的详细说明现在存放在 XML 文件中。不过 \TeX\ Live 5 的首要变化还是移除了所有的非自由软
件。\TL{} 的所有部分现在都在向 Debian Free Software Guidelines 兼容的方向改进,
我们尽最大努力检查了所有软件包的授权协议,欢迎为我们指出错误。

第 6 版 (2001 年 7 月) 更新了许多内容。最重大的一项是新的安装形式,用户可以更精确
地选择所需的软件集合。与语言相关的集合也重新组织过了,这样一来,选定某个语言集合时会自
动安装宏包、字体等文件,并自动设置好 \texttt{language.dat}。

2002 年出现的第 7 版里显著的更新是添加了 \MacOSX{} 的支持,还有大量各类宏包和程序
的更新。这个版本的一个重要的目标是将源代码重新与 \teTeX{} 集成,因为在第 5 和第 6
版中它们偏离得太远了。

\subsubsection{2003}

2003 年,在更新和增添持续不断到来的情况下,我们发现 \TL{} 已经过于庞大,无法在一张
\CD\ 中容纳,于是将其切分为三套不同的发行版 (参见第~\ref{sec:tl-coll-dists}
节,\p.\pageref{sec:tl-coll-dists})。此外:

\begin{itemize*}
\item 在 \LaTeX{} 团队的要求下,我们将 \cmdname{latex} 和 \cmdname{pdflatex}
      命令改为使用 \eTeX{} 引擎 (参见 \p.\pageref{text:etex})。
\item 包含了新的 Latin Modern 字体 (并推荐使用)。
\item 因为不再有人拥有 (或主动提供) 用于编译新的二进制程序的硬件,去除了
      Alpha \acro{OSF} 的支持 (先前已经去除了 \acro{HPUX} 的支持)。
\item Windows 下的安装有很大改变,首次提供了基于 XEmacs 的集成环境。
\item Windows 下重要的辅助性程序 (Perl, Ghost\-script, Image\-Magick, Ispell)
      现在放在 \TL{} 的安装目录。
\item \cmdname{dvips}, \cmdname{dvipdfm} 和 \cmdname{pdftex}
      使用的字体映射文件现在通过 \cmdname{updmap} 这套新程序生成,并安装到
      \dirname{texmf/fonts/map} 目录下。
\item \TeX{}, \MF{}, 和 \MP{} 现在缺省直接输出大多数的输入字符 (位置 32 及其以上)
      (比如通过 \verb|\write|),包括输出到文件、日志和终端上。也就是说,\emph{不再}使用
      \verb|^^| 标记来转换。在 \TL{}~7 中是否转换根据系统区域 (locale)
      设置而定,而这一版里 locale 设置不再影响 \TeX{} 程序的行为,所以如果你需要
      \verb|^^| 形式的输出,请将 \verb|texmf/web2c/cp8bit.tcx|
      文件改名。(后续版本将提供更简洁的方式来控制。)
\item 对文档作了大量更新。
\item 最后,因为版本号增长得实在太快,现在简单地使用年份来标识版本:\TL{} 2003。
\end{itemize*}


\subsubsection{2004}

2004 年有许多改变:

\begin{itemize}

\item 如果你在本地安装的字体时涉及了 \filename{.map} 或 \filename{.enc}
(附带这种文件的可能性很小) 辅助文件,可能需要转移这些文件的位置。

现在根据 \envname{TEXFONTMAPS} 变量中的路径设置,只在 (所有 \filename{texmf}
目录树下的) \dirname{fonts/map} 子目录下搜索 \filename{.map}
文件。与之类似,\filename{.enc} 文件现在只在 \dirname{fonts/enc}
目录下搜索,根据 \envname{ENCFONTS} 变量中的路径设置。如果遇到有问题的文
件,\cmdname{updmap} 会提出警告。

关于这种搜索方式的其他信息,请参见 \url{http://tug.org/texlive/mapenc.html}。

\item 因为有人可能更愿意使用 \MIKTEX\ 而非 \Webc{} 系统,\TK\ 
现在包含了一套基于 \MIKTEX\ 的可安装 \CD,参见第~\ref{sec:overview-tl}~节
(\p.\pageref{sec:overview-tl})。

\item 在原来旧版本 \TL\ 中单一的 \dirname{texmf} 目录树被分拆为三
个:\dirname{texmf}, \dirname{texmf-dist}, 和 \dirname{texmf-doc}。参见
第~\ref{sec:tld}~节 (\p.\pageref{sec:tld}) 及各目录下的 \filename{README}
文件。

\item 所有 \TeX\ 输入文件现在统一收集到了 \dirname{texmf*} 下的
\dirname{tex} 子目录中,不再分散在各个 \dirname{tex}, \dirname{etex},
\dirname{pdftex}, \dirname{pdfetex} 目录。见~
\CDref{texmf-dist/doc/english/tds/tds.html\#Extensions}
{\texttt{texmf-dist/doc/english/tds/tds.html\#Extensions}}。

\item 辅助性脚本 (并非直接提供给用户调用的) 现在放在 \dirname{texmf*} 目录树下
新的 \dirname{scripts} 子目录中,并可以通过 \verb|kpsewhich -format=texmfscripts|
来搜索。如果你的程序调用了这些脚本,必须修改路径。参见
\CDref{texmf-dist/doc/english/tds/tds.html\#Scripts}
{\texttt{texmf-dist/doc/english/tds/tds.html\#Scripts}}。

\item 几乎所有格式,都用 \filename{cp227.tcx} 这个转换文件将大多数的可见 (printable)
字符保留下来,而不再使用 \verb|^^| 标识来转换这些字符。具体而言,在位置 32--256 的
字符,加上 tab, vertical tab, 和 form feed 字符都作为可见字符而不再转换。例外情况是
plain \TeX\ (只将位置 32--126 的字符视为可见), \ConTeXt\ (0--255 都视为可见) 和与
\OMEGA\ 相关的格式。缺省的情况几乎与 \TL\,2003 完全一致,但通过更简洁的方式实现,并允许
更多定制。参见 \CDref{texmf/doc/web2c/web2c.html\#TCX-files}
{\texttt{texmf/doc/web2c/web2c.html\#TCX-files}}。
(另外,如果遇到 Unicode 输入,\TeX\ 可能会在显示错误上下文时输出半个字符,因为它是基于
字节流来处理输入的。)

\item \textsf{pdfetex} 现在是除 (plain) \textsf{tex} 外所有格式的默认引擎 (当然
以 \textsf{latex} 这种方式运行时它还是生成 \acro{DVI})。这样一来,至少 \textsf{pdftex}
的微调排版 (microtypographic) 技术可以在 \LaTeX, \ConTeXt 等格式中使用,另外 \eTeX\ 
的特性也包含在其中 (\OnCD{texmf-dist/doc/etex/base/})。

这还说明\emph{比以前任何时候都更有必要}使用 (对 plain 和 \LaTeX\ 都适用的)
\pkgname{ifpdf} 宏包或其类似代码,因为只检查 \cs{pdfoutput} 或其他原语是否已经定义
不再是判断是否处于 \acro{PDF} 输出状态的可靠方法。我们在这一年尽可能地保持向下兼容,但以后
即使在输出 \acro{DVI} 时 \cs{pdfoutput} 也可能已经定义。

\item pdf\TeX\ (\url{http://pdftex.org}) 新增了许多特性:

  \begin{itemize*}

  \item 可以使用 \cs{pdfmapfile} 和 \cs{pdfmapline} 来在单独文档内指定字体映射文件。

  \item 可以更方便地使用排版微调 (Microtypographic) 和字体延展 (font expansion)
  技术了。\\
  \url{http://www.ntg.nl/pipermail/ntg-pdftex/2004-May/000504.html}

  \item 原来使用专有格式的配置文件 \filename{pdftex.cfg} 里的选项现在都必须改用
  \TeX{} 原语来设置,通常放在 \filename{pdftexconfig.tex} 里面,不再支持
  \filename{pdftex.cfg} 的配置方式。每次修改 \filename{pdftexconfig.tex}
  之后都必须重新生成 \filename{.fmt} 文件。

  \item 参见 pdf\TeX\ 手册以了解更多信息:\OnCD{texmf/doc/pdftex/manual}。

  \end{itemize*}

\item \cmdname{tex} (以及 \cmdname{mf} 和 \cmdname{mpost}) 中的 \cs{input}
原语现在支持通过双引号来引用包含空格和特殊字符的文件。一个典型的例子如下:
\begin{verbatim}
\input "filename with spaces"   % plain
\input{"filename with spaces"}  % latex
\end{verbatim}
参阅 \Webc{} 文档以了解更多信息:\OnCD{texmf/doc/web2c}。

\item enc\TeX\ 的支持现在已被包含在 \Webc{} 中,因而所有 \TeX\ 程序都可以通过
\optname{-enc} 参数启用这一支持 \Dash \emph{前提是构建好了格式文件}。enc\TeX\ 
提供了对输入输出通用的重新编码功能,实现对 Unicode (以 \acro{UTF}-8 编码的形式)
的完整支持。参见 \OnCD{texmf-dist/doc/generic/enctex/} 和
\url{http://www.olsak.net/enctex.html}。

\item 提供了 Aleph 这套新的 \TeX{} 引擎,它将 \eTeX\ 和 \OMEGA\ 合并到了一起。
关于 Aleph 的部分信息可以在 \OnCD{texmf-dist/doc/aleph/base}
和 \url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=aleph} 找到。Aleph
的 \LaTeX 格式文件称做 \textsf{lamed}。

\item 最新发布的 \LaTeX\ 包含了是新版的 \acro{LPPL} 授权协议\Dash 这一协议已被
Debian 首肯。\LaTeX\ 其他的更新请见 \OnCD{texmf-dist/doc/latex/base} 下的
\filename{ltnews} 文件。

\item 包含了一个叫做 \cmdname{dvipng} 的新程序,用于将 \acro{DVI} 转换为
\acro{PNG} 图像文件。参见 \OnCD{texmf/doc/man/man1/dvipng.1}。

\item 我们在作者 (Claudio Beccari) 的同意下,将 \pkgname{cbgreek} 包含的
字体数量减少到中等。去除了不可见、轮廓和透明版本的字体,这些字体几乎很少用到。而我们
的光盘镜像需要空间。完整版本当然还是在 \acro{CTAN} 提供
(\url{http://mirror.ctan.org/tex-archive/fonts/greek/cb})。

\item 去掉了 \cmdname{oxdvi},改为只使用 \cmdname{xdvi}。

\item 不再为 \cmdname{tex}, \cmdname{mf}, 和 \cmdname{mpost} 程序创建
\cmdname{ini} 和 \cmdname{vir} 开头的命令链接,比如
\cmdname{initex}。\cmdname{ini} 的功能早在几年前就通过 \optname{-ini}
命令行参数提供了。

\item 去掉了 \textsf{i386-openbsd} 平台的支持。因为在 \acro{BSD} Ports
系统中已经包含了 \pkgname{tetex} 软件包,而 \acro{GNU/}Linux 和
Free\acro{BSD} 下的二进制版本都已存在,所以志愿者的时间可以花在其他的地方了。

\item 至少在 \textsf{sparc-solaris} 平台下,你必须设置好
\envname{LD\_LIBRARY\_PATH} 环境变量才能执行 \pkgname{t1utils} 包含的程序。
因为这些程序是使用 C++ 编写的,其运行时库没有固定的位置。(这一情况并非在 2004 版
中首次出现,但现在才写入文档) 与之类似,\textsf{mips-irix} 平台下需要用到
\acro{MIPS}pro 7.4 运行时库。

\end{itemize}

\subsubsection{2005}

2005 年一如往常,宏包和程序都有大量的更新。底层结构和 2004 年相比保持了稳定,
不过仍然存在一些变化。

\begin{itemize}

\item 引入了新的 \cmdname{texconfig-sys}, \cmdname{updmap-sys}, 和
      \cmdname{fmtutil-sys} 安装脚本,用于修改系统目录树下的配置。而原有的
      \cmdname{texconfig}, \cmdname{updmap}, 和 \cmdname{fmtutil}
      则用于修改针对单个用户的文件 (放在 \dirname{$HOME/.texlive2005}
      目录下的)。

\item 增加了对应的 \envname{TEXMFCONFIG} 和 \envname{TEXMFSYSCONFIG}
      变量,分别用于设置针对用户和系统的,专门存放配置文件的目录树。所以你需要将个人使用的
      \filename{fmtutil.cnf} 和 \filename{updmap.cfg}
      放到合适位置。不过还有一种方法是在 \filename{texmf.cnf} 里边重新定义
      \envname{TEXMFCONFIG} 或 \envname{TEXMFSYSCONFIG}
      变量。无论如何,这两个值对应的实际目录都必须正确存在。参见
      第~\pageref{sec:texmftrees}~页的第~\ref{sec:texmftrees}~节。

\item 虽然我们在上一年就已经使用了 \cmdname{pdfetex} 作为输出程序,但在它输出 \dvi\ 
      格式时会禁用 \verb|\pdfoutput| 等原语
      (primitive)。这一年,我们按照预期计划取消了这一兼容性限制。所以,如果你的文档里使用了
      \verb|\ifx\pdfoutput\undefined| 这样的语句来判断是否正在 PDF
      输出模式下,现在就必须修改了。你可以使用 \pkgname{ifpdf.sty} 宏包 (对 plain \TeX\
      和 \LaTeX{} 都适用) 来判断,或者仿照这个文件里的判断原理自己写一个。

\item 上一年,我们将格式文件的输出改成了和这些文件本身一样的 8
      位字符。在你需要的情况下,可以使用新的 TCX 文件 \filename{empty.tcx} 来获得原有的
      \verb|^^| 表示方式。例如:

\begin{verbatim}
latex --translate-file=empty.tcx yourfile.tex
\end{verbatim}

\item 新增了用于转换 DVI 为 PDF 的 \cmdname{dvipdfmx} 程序,这是
      \cmdname{dvipdfm} 的一个比较活跃更新的版本 (我们仍然提供
      \cmdname{dvipdfm},但不建议你继续使用)。

\item 新增了叫 \cmdname{pdfopen} 和 \cmdname{pdfclose} 的两个程序,用于控制
      Adobe Acrobat\slash Reader 在不重启程序的情况下重新载入 pdf 文件。(其他的
      pdf 阅读器,如 \cmdname{xpdf}, \cmdname{gv}, 和
      \cmdname{gsview},都不会遇到这个问题。)

\item 为了保持一致性,将 \envname{HOMETEXMF} 和 \envname{VARTEXMF}
      环境变量分别更名为 \envname{TEXMFHOME} 和
      \envname{TEXMFSYSVAR}。还有一个针对单独用户的 \envname{TEXMFVAR}
      环境变量可用。参见上面的第一点。

\end{itemize}


\subsubsection{2006--2007}

2006--2007 年,\TL{} 的一个重大变化是增加了 \XeTeX{},以 \texttt{xetex} 和
\texttt{xelatex} 程序的形式提供。请参见 \url{http://scripts.sil.org/xetex}。

\MP{} 也有可观的更新,并计划在未来实现更多的改进
(\url{http://tug.org/metapost/articles}),pdf\TeX{} 同样如此
(\url{http://tug.org/applications/pdftex})。

\TeX\ \filename{.fmt} (缓存格式) 文件和用于 MetaPost 和 \MF\ 的类似文件
现在存储在 \dirname{texmf/web2c} 的子目录中而不直接放在 \dirname{texmf/web2c}
目录下 (不过考虑到现有的 \filename{.fmt} 文件,直接放置在这个目录下的文件仍然
能被搜索到)。子目录的名称是根据当前使用的``引擎''决定的,比如 \filename{tex}
或 \filename{pdftex} 或 \filename{xetex}。这个变化不会对日常使用带来任何
影响。

(plain) \texttt{tex} 程序不再通过读取 \texttt{\%\&} 开头的第一行来决定
执行何种格式,而遵循纯粹的 Knuth 风格 \TeX\ 的传统。(\LaTeX\ 和其他所有的程序
仍然读取 \texttt{\%\&} 开头的行。)

当然,和往常一样,这一年里你能看到成百上千的宏包与程序得到更新。也和往常一样,
进一步的更新请使用 \acro{CTAN} (\url{http://mirror.ctan.org})。

从内部角度上看,源代码树现在改为使用 Subversion 管理,并在我们的主页上提供了
到 Web 界面的链接,用于浏览代码树。我们希望它能成为未来几年中稳定的开发
平台。

末了,2006 年五月 Thomas Esser 宣布他将停止 te\TeX{}
(\url{http://tug.org/tetex}) 的更新。这样一来,大家对 \TL{} 的兴趣大增,尤其是在
\GNU/Linux 发行版中。(\TL{} 提供了一套新的 \texttt{tetex} 安装方案,
几乎和原有的 te\TeX{} 毫无二致。) 我们希望这些变化将最终转换为对整个 \TeX\ 
环境的改进,从而每个人都会受益。

\subsubsection{2008}

在 2008 年,整个 \TL{} 的基础架构都重新设计过并重新实现了。安装的完整
信息被存放在 \filename{tlpkg/texlive.tlpdb} 这个纯文本文件中。

除了许多其他的功能外,我们终于可以通过 Internet 在安装后更新 \TL{}
了,这是 MiK\TeX\ 早已提供了许多年的特性。我们希望能定期更新 \CTAN\ 上
新发布的软件包。

包含了一个重要的新引擎 Lua\TeX\ (\url{http://luatex.org}),除了
在排版上灵活性更上一层楼以外,它还提供了一个优秀的脚本语言供 \TeX\ 
文档内外使用。

对 Windows 和基于 Unix 系统的支持现在要一致得多了。尤其是大部分 Perl 和
Lua 脚本都能在 Windows 下使用,通过 \TL 内部包含的 Perl。

新的 \cmdname{tlmgr} 脚本 (第~\ref{sec:tlmgr}~节) 是在初始安装后管理
\TL{} 的通用界面。它处理了软件包更新和后续的格式文件、map 文件和语言文件
的重新生成,并可选地包含了本地添加的内容。

随着 \cmdname{tlmgr} 到来,禁用了 \cmdname{texconfig} 中编辑格式和
断字配置文件的功能。

今年还提供了大多数平台的 \cmdname{xindy} 索引生成程序
(\url{http://xindy.sourceforge.net})。

\cmdname{kpsewhich} 现在可以报告给定文件的所有匹配 (\optname{--all}
参数) 并限制列出特定目录下的匹配 (\optname{--subdir} 参数)。

\cmdname{dvipdfmx} 程序现在支持用 \cmdname{extractbb} 命令来解析
bounding box 信息,这是 \cmdname{dvipdfm} 包含但未曾出现在
\cmdname{dvipdfmx} 中的最后一个功能。

去除了 \filename{Times-Roman}, \filename{Helvetica} 等字体别名。不同的
宏包对它们的理解不同 (尤其是编码的处理不一样),所以没有什么好的办法能解
决。

去除了 \pkgname{platex} 格式文件,以避免与日文 \pkgname{platex} 的命名
冲突,\pkgname{polski} 宏包现在被用作主要的波兰语支持。

从内部而言 \web\ 字符串 pool 文件被编译进了二进制文件中,这样可以方便
升级。

最终 Donald Knuth 在他的 `\TeX\ tuneup of 2008' 中的更新也被包含在这次
发布中。参见 \url{http://tug.org/TUGboat/Articles/tb29-2/tb92knut.pdf}。

\subsubsection{2009}

在 2009 年,为了充分利用 Lua\TeX\ 的 OpenType 支持等特性,Lua\AllTeX\
的默认输出格式是 PDF。新增叫做 \code{dviluatex} 和 \code{dvilualatex}
的这两个命令会以 DVI 输出方式运行 Lua\TeX{}。Lua\TeX\ 的主页在
\url{http://luatex.org}。

在与 Omega 的作者讨论后,原来的 Omega 引擎和 Lambda 格式文件被去掉了。
更新后的 Alpeh 和 Lamed 仍然在,同时保留的还有 Omega 实用工具。

包含了新版本的 AMS \TypeI\ 字体,包括 Computer Modern:其中部分字形
随 Knuth 多年以来修改的 MetaFont 源代码更新,hinting 信息也更新了。
Euler 字体也整个由 Hermann Zapf 重新绘制了一遍 (参见
\url{http://tug.org/TUGboat/Articles/tb29-2/tb92hagen-euler.pdf})。
不过上述变化并没有改变字体的 metrics 文件。AMS 字体的主页在
\url{http://www.ams.org/tex/amsfonts.html}。

现在 Windows 和 Mac\TeX\ 都包含了新的 GUI 前端 \TeX{}works。至于其他
的平台和更多的信息,请参见 \TeX{}works 的主页,\url{http://tug.org/texworks}。
设计这个跨平台前端的灵感来自于 \MacOSX\ 下的 TeXShop 编辑器,目标就是
易用。

在许多平台下包含了 Asymptote 图形程序,它实现了一套与 MetaPost 约略
相似的文本图形描述语言,但包含了先进的 3D 支持等其他特性。它的主页在
\url{http://asymptote.sourceforge.net}。

单独的 \code{dvipdfm} 程序已被 \code{dvipdfmx} 所替代,如果以 \code{dvipdfm}
这个名字调用的时候,后者会以一种特殊的兼容性模式运行。\code{dvipdfmx}
包含了 \acro{CJK} 支持,并包含了多年以来在 \code{dvipdfm} 基础上的许多
修正。DVIPDFMx 项目的主页在 \url{http://project.ktug.or.kr/dvipdfmx}。

现在包括了 \pkgname{cygwin} 和 \pkgname{i386-netbsd} 平台下的可执行文件,
而我们建议 OpenBSD 和 FreeBSD 的用户使用他们自己的包管理系统提供的 \TeX{},
另外这也是因为要编译出能在多种版本下都工作的二进制程序有些困难。

一些更不起眼的更新:我们现在使用 \pkgname{xz} 这套稳定的压缩方式来替代
原有的 \pkgname{lzma} (\url{http://tukaani.org/xz/});在不和现有变量名
冲突的情况下允许文件中使用 |$| 字符;Kpathsea 库现在支持多线程了 (其中
用到了 MetaPost);整个 \TL{} 的编译现在基于 Automake 了。

对过去历史的最终一点提示: 所有版本的 \TL{},包括 \CD\ 标签这些附属材料,
都在 \url{ftp://tug.org/historic/systems/texlive} 提供。

\subsubsection{2010}
\label{sec:2010news} % keep with 2010

在 2010 年,缺省的 PDF 输出版本现在是 1.5,以支持更多压缩。这对所有输出
PDF 的 \TeX\ 引擎生效,也对 \code{dvipdfmx} 有效。载入 \pkgname{pdf14}
\LaTeX\ 宏包将改回 PDF~1.4,或者设置 |\pdfminorversion=4|。

在载入了 \LaTeX\ \code{graphics.cfg} 配置文件,而且输出的是 PDF 时,
pdf\AllTeX\ 现在\emph{自动地}将请求的封装 PostScript (EPS) 文件转换为
PDF,通过 \pkgname{epstopdf} 宏包。默认选项是为了避免覆盖任何手工创建
的 PDF 文件,但你也可以将 |\newcommand{\DoNotLoadEpstopdf}{}| (或
|\def...|) 放在 \cs{documentclass} 声明前以避免载入 \code{epstopdf}。
如果使用了 \pkgname{pst-pdf} 宏包,也不会载入它。要了解更多的细节,参
见 \pkgname{epstopdf} 宏包的文档 (\url{http://ctan.org/pkg/epstopdf-pkg})。

一个相关的变化是通过 \cs{write18} 特性从 \TeX\ 执行少量外部命令,现在
默认启用了。这些命令是 \code{repstopdf}, \code{makeindex}, \code{kpsewhich},
\code{bibtex}, 和 \code{bibtex8};这个列表定义在 \code{texmf.cnf}。必须
禁用这些外部命令的环境可以通过安装程序取消这个选项 (参见第~\ref{sec:options}~节),
或者在安装后通过运行 |tlmgr conf texmf shell_escape 0| 覆盖这个值。

另一个相关的变化是 \BibTeX\ 和 Makeindex 现在默认会拒绝往任意目录写入
输出文件了 (类似 \TeX\ 本身)。这样使得它们能被启用给受限的 \cs{write18}
使用。要修改这个行为,可以设置 \envname{TEXMFOUTPUT} 环境变量,或者修改
|openout_any| 设置。

\XeTeX\ 现在支持与 pdf\TeX\ 一样的 margin kerning。(Font expansion 现在
还不支持。)

默认情况下,\prog{tlmgr} 现在回给每个更新的包保存一个备份
(\code{tlmgr option autobackup 1}),所以损坏的包更新可以简单地通过
\code{tlmgr restore} 恢复。如果你在安装后要执行更新,但没有足够的
磁盘空间来保存备份,可以运行 \code{tlmgr option autobackup 0}。

包含了这些新的程序:用于排版日文的 p\TeX\ 引擎和相关实用工具;支持了
Unicode \BibTeX\ 的 \BibTeX{}U 程序;\prog{chktex} 实用工具
(\url{http://baruch.ev-en.org/proj/chktex})
用来检查 \AllTeX\ 文档;\prog{dvisvgm}
(\url{http://dvisvgm.sourceforge.net}) 是 DVI 到 SVG 格式转换器。

现在包含了这些新平台的可执行文件:\code{amd64-freebsd},
\code{amd64-kfreebsd}, \code{i386-freebsd}, \code{i386-kfreebsd},
\code{x86\_64-darwin}, \code{x86\_64-solaris}。

我们忘记注明的一个 \TL{} 2009 的修改是:许多 \TeX4ht 相关的可执行文件
(\url{http://tug.org/tex4ht}) 被从二进制目录删除了。通用的 \code{mk4ht}
程序可以用来运行这些 \code{tex4ht} 组合的任意一种。

最后,\TK\ \DVD\ 上的 \TL{} 发行不能再直接执行了 (听起来很奇怪)。
单张 \DVD\ 已经没有足够的空间了。一个优点是从物理 \DVD\ 的安装将会
快很多。

\subsubsection{2011}

\MacOSX\ 二进制程序 (\code{universal-darwin} 和 \code{x86\_64-darwin})
现在只能在 Leopard 及以后版本上工作;Panther 和 Tiger 都不再支持了。

用于参考文献处理的 \code{biber} 程序在常见平台下都已包含。它的分发和
\code{biblatex} 宏包紧密相关的,这个宏包完全重新实现了 \LaTeX{} 提供
的参考文献机制。

MetaPost (\code{mpost}) 程序不再创建或者使用 \code{.mem} 文件了。所
需的文件,比如 \code{plain.mp},会在每次运行时读入。这个变化和将
MetaPost 作为一个库有关,这是另一个重要而用户不会注意的变化。

\code{updmap} 的 Perl 实现,先前只在 Windows 下使用,现在被更新并用
于所有平台了。这不应该造成任何用户可见的变化,除了它变得快得多。

\htmlanchor{news}
\subsection{Present}
\label{sec:tlcurrent}

\code{tlmgr} 支持了从多个网络仓库更新。\code{tlmgr help} 输出中的多仓库
一节有更多信息。

对于 \code{xetex} 和 \code{xelatex},\cs{XeTeXdashbreakstate} 参数被缺
省设置为~1。这允许了 em-dash 和 en-dash 后的换行,这和 plain \TeX,
\LaTeX, Lua\TeX\ 现在的行为一致。现有的 \XeTeX\ 文档如果需要保持完美的
换行兼容性则需要显式设置 \cs{XeTeXdashbreakstate} 为~0。

\code{pdftex} 和 \code{dvips} 等生成的输出文件现在可以超过 2 GB 了。

35 标准 PostScripts 字体现在在 \code{dvips} 输出中缺省保函了,因为现在
有太多这些字体的不同版本了。

默认设置的 \cs{write18} 受限执行模式中,\code{mpost} 成为了一个允许的
程序。

\filename{../texmf-local} 下现在也会出现一个 \code{texmf.cnf} 文件,
比如 \filename{/usr/local/texlive/texmf-local/web2c/texmf.cnf}。

\code{updmap} 脚本现在读取的是针对各个目录树的 \code{updmap.cfg},而不
再是全局的配置文件。这个修改应该不容易发现,除非你直接编辑过 \code{updmap.cfg}
文件。\code{updmap --help} 输出中有更多信息。

平台:增加了 \pkgname{armel-linux} 和 \pkgname{mipsel-linux} 平台;
\pkgname{sparc-linux} 和 \pkgname{i386-netbsd} 不再出现在主发行中,
但可以作为可选安装,和一系列其他平台一起:
\url{http://tug.org/texlive/custom-bin.html}。

\subsection{未来}

\emph{\TL{} 并不完美!}  (也永远不会达到完美。)  我们希望继续发行新的
版本,也希望提供更多的帮助文档、更多的实用程序、更多的安装程序,当然还
有更多更新的宏包与字体。这个工作是由志愿者在其空闲时间完成的,所以总有
更多值得做的地方。请参见 \url{http://tug.org/texlive/contribute.html}。

请把更正、建议或者提供帮助的意愿发送到:
\begin{quote}
\email{tex-live@tug.org} \\
\url{http://tug.org/texlive}
\end{quote}

\medskip
\noindent \textsl{祝你使用 \textrm{\TeX} 愉快!}

\section{翻译说明}

这里对简体中文版本《\TL{} 指南》,即本文档中遵循的翻译惯例作一简要说明:

\begin{itemize}

\item package, 视上下文,有时翻译为软件包,有时翻译为宏包。
\item format file, 即 \TeX{} 程序一般都会预载入的 \texttt{.fmt}
文件。本文档中翻译为格式文件。
\item scheme, 本文档中译为 (安装) 方案。
\item collection, 本文档中译为 (软件) 集合。
\item 本文档中有时对原文没有采用逐字逐句的对比翻译,而是总括其意思,转换为
更易为中文 \TeX{} 用户习惯的表达方式。
\item architecture/platform, 是意思比较相近的词,基本上是只某种 CPU
和对应这个 CPU 的操作系统。比如 i386-linux。本文里翻译为架构、平台、体系
结构等等。
\item binary, 二进制文件,其实就是说可执行程序文件和库文件了。

\end{itemize}

2007 年的简体中文版本由 Jiang Jiang, Jinsong Zhao, Yue Wang,
Helin Gai 翻译。其中 Jinsong Zhao 负责 Windows 部分的翻译,Yue Wang
和 Helin Gai 进行了校对,Jiang Jiang 则负责其余的翻译和统稿。

2008 年的简体中文版本由 Jiang Jiang, Yue Wang 和 Jinsong Zhao 翻译。

2009 年的简体中文版本由 Jiang Jiang 和 Jinsong Zhao 翻译。

2010 年的简体中文版本由 Jiang Jiang 翻译。

2011 年的简体中文版本由 Jiang Jiang 翻译。

2012 年的简体中文版本由 Jiang Jiang 翻译。

\end{document}