1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
|
% Tekijä: Teemu Likonen <tlikonen@iki.fi>
% Lisenssi: Creative Commons Nimeä-JaaSamoin 4.0 Kansainvälinen (CC BY-SA 4.0)
% https://creativecommons.org/licenses/by-sa/4.0/legalcode.fi
\chapter{Asetukset}
Dokumentin yleiset asetukset koostuvat Latexissa dokumenttiluokan
valinnasta, sivun koon ja marginaalien määrittelystä, fonttien
määrittelystä sekä kieliasetuksista. Näitä kaikkia käsitellään tässä
luvussa.
Kirjoittajan ei tarvitse tehdä kaikkia dokumentin asetuksia kerralla. On
ehkä jopa suotavaakin keskittyä aluksi lähinnä dokumentin sisällön ja
rakenteen suunnitteluun ja tuottamiseen. Ulkoasuun kyllä ehtii tulla
kirjoittamisen aikana monenlaisia ajatuksia, joita ei olisi välttämättä
alussa osannut huomioida. Kirjoittamaan pääsee hyvinkin yksinkertaisen
dokumenttirungon avulla (esimerkki \ref{esim/ensimmäinen},
s.~\pageref{esim/ensimmäinen}), mutta tässä luvussa käsitellään
asetusten määrittelyä ja mahdollisuuksia melko perusteellisesti.
\section{Dokumenttiluokat}
\label{luku/dokumenttiluokat}
Latexin lähdedokumenttien alussa on aina samankaltainen rivi, joka
määrittelee käytettävän dokumenttiluokan ja mahdollisesti dokumentin
perusasetuksia. Dokumenttiluokka määritellään komennolla
\komento{documentclass} ja sen argumentiksi annetaan dokumenttiluokan
nimi. Valinnaisilla argumenteilla vaikutetaan asetuksiin.
\komentoi{documentclass}
\luokkai{article}
\begin{koodilohkosis}
\documentclass[a4paper, 12pt]{article}
\end{koodilohkosis}
\noindent
Dokumenttiluokka on eräänlainen pohjadokumentti eli ominaisuuksien ja
asetusten kokoelma, jonka varaan oma dokumentti kirjoitetaan. Eri
dokumenttiluokat sisältävät erilaisia ominaisuuksia ja erilaiset
oletusasetukset. Edellä olevassa esimerkissä käytettiin
\luokka{article}\-/ luokkaa, joka on yleiskäyttöinen luokka monenlaisten
dokumenttien kirjoittamiseen. Seuraavissa alaluvuissa käsitellään
tavallisimpia dokumenttiluokkia ja niiden asetuksia.
% Dokumenttiluokkia voi tehdä itsekin, ja sitä aihetta käsitellään
% luvussa X.Y.
\subsection{Perusdokumenttiluokat}
\label{luku/perusdokumenttiluokat}
Muutama dokumenttiluokka kuuluu Latexin perusvalikoimaan, eli ne ovat
aina saatavilla ja asennettuna, kun itse Latexkin on. Niitä kutsutaan
välillä standardeiksi dokumenttiluokiksi, ja ne ovat ikään kuin
muuttumattomia perusluokkia, joiden varaan on turvallista rakentaa omia
dokumentteja tai muita dokumenttiluokkia. Muita dokumenttiluokkia
kehitetään Latexin perusosien ulkopuolella, ja niiden ominaisuudet
voivat muuttua ja kehittyä nopeammin ajan myötä.
Normaalit paperisivuihin perustuvat dokumentit tehdään luokkien
\luokkam{article}, \luokkam{report} tai \luokkam{book} avulla. Ne ovat
keskenään hyvin samanlaisia, mutta niiden oletusasetukset poikkeavat
toisistaan. Karkeasti jaoteltuna \luokka{article}\-/ luokka on
tarkoitettu lyhyehköille artikkeleille ja yleiseksi perustaksi
monenlaisille dokumenteille. Sen sijaan \luokka{report} ja \luokka{book}
on tarkoitettu laajoihin dokumentteihin, ja niissä on kirjatypografian
piirteitä.
Suurin edellä mainittujen perusluokkien ero on otsikoinnissa ja
dokumentin jäsentämisessä: \luokka{report} ja \luokka{book} sisältävät
suuret pääluvut (\komento{chapter}) eli otsikot, jotka alkavat tyhjältä
sivulta; \luokka{article} ei sisällä samanlaisia päälukuja vaan
ainoastaan tavalliset leipätekstin mukana kulkevat väliotsikot
(\komento{section}, \komento{subsection} jne.). Tekstin jäsentämistä
käsitellään luvussa \ref{luku/jäsennys} ja otsikointia tarkemmin luvussa
\ref{luku/otsikot}.
Toinen ero perusluokkien välillä on se, että vain \luokka{book}\-/
luokka sisältää komennot \komento{frontmatter}, \komento{mainmatter} ja
\komento{backmatter}, joita voi käyttää ilmaisemaan tietokirjan
erityyppiset osat: esittely\-/, sisältö\-/{} ja liitesivut. Näitä
käsitellään luvussa \ref{luku/frontmainbackmatter}. Lisäksi
\luokka{report}\-/ luokka sisältää ympäristön \ymparisto{abstract}, joka
on tarkoitettu tekstin tiivistelmäosan tekemiseen; \luokka{book}\-/
luokassa sitä ei ole.
Muut erot koskevat lähinnä oletusasetuksia, mutta asetukset ovat
tietenkin muutettavissa, eivätkä ne siten ole määräävä tekijä
valittaessa luokkien \luokka{article}, \luokka{report} ja \luokka{book}
välillä. Dokumenttiluokkien asetuksia käsitellään seuraavassa
alaluvussa.
Muita perusdokumenttiluokkia ovat \luokkam{letter} ja \luokka{slides}.
Nimensä mukaisesti \luokka{letter} on kirjeiden kirjoittamista varten.
Se sisältää kirjeen tyypilliseen rakenteeseen liittyviä komentoja ja
soveltuu varsinkin tarpeisiin, joissa täytyy automaattisesti tuottaa
samanmuotoisia kirjeitä usealle vastaanottajalle. Sama
Latex\-/dokumentti voi sisältää useita kirjeitä, ja sivunumerointi ja
alaviitteiden numerointi alkaa joka kirjeessä alusta -- kuten on
tietysti toivottavaa. \luokka{letter}\-/ luokkaa käsitellään tarkemmin
luvussa \ref{luku/kirjeet}.
Piirtoheittimien läpinäkyvien kalvojen ja sen kaltaisten dokumenttien
tekemiseen on dokumenttiluokka \luokkam{slides}. Piirtoheittimet ovat
jääneet menneisyyteen, ja nykyään jokseenkin vastaavanlainen rooli on
esitysgrafiikkaohjelmilla, joilla tehdään diaesityksiä esimerkiksi
esitelmien havaintomateriaaliksi. \luokka{slides}\-/ luokkaa ei varmaan
tarvita enää mihinkään, mutta esitysgrafiikkaan on olemassa erittäin
monipuolinen luokka \luokka{beamer}, jonka perusasioita käsitellään
luvussa \ref{luku/esitysgrafiikka}.
\subsection{Perusdokumenttiluokkien asetukset}
\label{luku/perusdokumenttiluokat-asetukset}
Taulukkoon \ref{tlk/luokkavalitsimet} on koottu perusdokumenttiluokkien
valitsimet. Sivun koko asetetaan valitsimilla \koodi{a4\-paper} (210 ×
297 mm), \koodimargin{*paper} \koodi{a5\-paper} (148 × 210 mm),
\koodi{b5\-paper} (176 × 250 mm), \koodi{execu\-tive\-paper} (7,25 ×
10,5 tuumaa), \koodi{legal\-paper} (8,5 × 14 tuumaa) tai
\koodi{letter\-paper} (8,5 × 11 tuumaa). Latexin oletuksena on
\koodi{letterpaper}, mutta oletusta voi olla muutettu Latexin
jakelupaketissa. Varminta on aina itse kirjoittaa haluttu sivukoko
dokumentin asetuksiin.
\leijutlk{
\ttfamily
\begin{tabular}{llll}
\toprule
a4paper & landscape & openright & 10pt \\
a5paper & final & openany & 11pt \\
b5paper & draft & onecolumn & 12pt \\
executivepaper & oneside & twocolumn & titlepage \\
legalpaper & twoside & fleqn & notitlepage \\
letterpaper & openbib & leqno & clock \\
\bottomrule
\end{tabular}
}{
\caption{Perusdokumenttiluokkien valitsimet}
\label{tlk/luokkavalitsimet}
}
Sivu on oletuksena pystyasennossa, mutta valitsin \koodim{landscape}
asettaa sen vaaka\-/asentoon. Tämä asetus koskee dokumentin kaikkia
sivuja, mutta jos haluaa asettaa vain yksittäisiä sivuja
vaaka\-/asentoon, täytyy käyttää \pakettictan{pdflscape}\-/ pakettia ja
sen tarjoamaa ympäristöä.
Sivun koon ja muitakin mittoja voi määritellä monipuolisemmin
\paketti{geometry}\-/paketin toimintojen avulla (luku
\ref{luku/sivuasetukset}). Jos sitä pakettia käyttää, ei näitä
dokumenttiluokan sivukokoasetuksia tarvita välttämättä lainkaan.
Leipätekstin fontin koon voi määrittää valitsimilla \koodim{10pt},
\koodim{11pt} ja \koodim{12pt}, joista ensin mainittu on oletus. Lyhenne
pt tarkoittaa typografista pistemittaa, joita käsitellään luvussa
\ref{luku/mitat}. Nämä asetukset vaikuttavat myös sivun marginaaleihin,
koska fontin koko vaikuttaa tekstiriville mahtuvien merkkien määrään ja
Latex pyrkii pitämään rivit sopivan mittaisina lukemisen kannalta.
Vain kolme eri fonttikokoa leipätekstille on kovin vähän ja peräisin
ajalta, jolloin Latexin fontit olivat pikseligrafiikkaa eli muodostuivat
erillisistä kuvapisteistä. Nykyaikana fontit ovat vektorigrafiikkaa eli
matemaattisten kaavojen avulla muodostettavia kuvia, ja ne voi venyttää
mihin kokoon tahansa. Sen vuoksi nämä dokumenttiluokkien
fonttikokovalitsimet eivät ole kovin tarpeellisia eivätkä riitä kaikkiin
tarpeisiin nykyaikana. Voi niitä silti käyttää, jos niiden avulla saa
halutun lopputuloksen. Fontteja käsitellään tarkemmin luvussa
\ref{luku/kirjaintyypit}.
Dokumentista voi latoa luonnosversion käyttämällä dokumenttiluokan
valitsinta \koodim{draft}. Luonnoksena ladottuun dokumenttiin tulevat
merkityksi (musta suorakulmio) ainakin tekstipalstan yli pursuavat
rivit, mikä voi auttaa tekstikappaleiden ulkoasun korjailussa (luku
\ref{luku/kappale}). Eri paketit voivat hyödyntää \koodi{draft}\-/
valitsinta omalla tavallaan eli muuttaa toimintaansa sen perusteella.
Esimerkiksi grafiikkaan liittyvä paketti \paketti{graphicx} (luku
\ref{luku/grafiikka}) jättää luonnosversiosta kuvat pois, ja niiden
paikalla on vain suorakulmio. Pdf\-/tiedoston ristiviitteistä huolehtiva
\paketti{hyperref}\-/paketti jättää pdf:n sisäiset ristiviitteet ja
sisällysluettelon tekemättä (luku \ref{luku/ristiviitteet}). Latominen
voi nopeutua huomattavasti.
Lopullinen ladontatila on \koodim{final}, joka tarkoittaa, että
dokumenttiin ladotaan kaikki sisältö ja ominaisuudet niin kuin se on
tarkoitettu julkaistavaksi. Tätä valitsinta ei tarvitse käyttää, koska
se on oletustila.
Sivujen yksipuolisuus (\koodim{oneside}) ja kaksipuolisuus
(\koodim{twoside}) ovat asetuksia, jotka vaikuttavat sivun marginaalien
asetuksiin ja mahdollisesti uuden pääluvun (\komento{chapter})
aloitukseen. Oletus on yksipuolinen dokumentti kaikissa muissa
perusdokumenttiluokissa paitsi \luokka{book}\-/ luokassa, jonka oletus
on kaksipuolinen.
Yksipuolisessa dokumentissa kaikkien sivujen marginaalit ovat
lähtökohtaisesti samanlaisia ja asetuksissa puhutaan esimerkiksi
vasemmasta (\englanti{left}) ja oikeasta (\englanti{right})
marginaalista. Kaksipuolisessa dokumentissa sivut ajatellaan pareittain:
kaksi sivua muodostaa kirjan aukeaman, jonka vasemmalla puolella on
parillinen sivunumero ja oikealla pariton. Marginaalien asetuksissa
puhutaan sisämarginaaleista (\englanti{inner}) ja ulkomarginaaleista
(\englanti{outer}). Sisämarginaalit ovat oletuksena pienemmät, koska
niitä on aukeamalla aina kaksi vierekkäin. Ulkomarginaaleissa on tilaa
marginaalihuomautuksille (luku \ref{luku/marginaalihuomautukset}).
Marginaaleja ja muita sivun asetuksia käsitellään tarkemmin luvussa
\ref{luku/sivuasetukset}.
Jos dokumentti on määritetty kaksipuoliseksi (\koodi{twoside}), voidaan
\koodim{open\-right}\-/ valitsimella määrittää pääluvut
(\komento{chapter}) alkamaan aina oikeanpuoleiselta sivulta. Se onkin
oletus dokumenttiluokassa \luokka{book}. Valitsin \koodim{open\-any}
asettaa pääluvut alkamaan miltä tahansa seuraavalta sivulta.
Valitsin \koodim{open\-bib} liittyy automaattiseen lähdeluettelon
muotoiluun. Jos tämä valitsin on mukana, automaattisessa lähdeluettelon
muotoilussa lisätään rivinvaihtoja lähdemerkinnän eri osien kuten
teoksen tekijöiden ja teoksen nimen jälkeen. Lähdemerkintöjä ja
lähdeluettelon laatimista käsitellään luvussa \ref{luku/lähteet}.
Matemaattisten kaavojen ladontaan liittyvässä \ymparisto{equation}\-/
ympäristössä kaavat ladotaan normaalisti vaakasuunnassa sivun keskelle.
Dokumenttiluokan valitsinta \koodim{fleqn} käyttämällä kaavat ladotaan
kuitenkin sivun vasempaan reunaan. Kaavojen numerot sijoitetaan
oletuksena sivun oikeaan reunaan, mutta valitsimella \koodim{leqno} ne
saa ladottua sivun vasempaan reunaan. Matematiikkatilaa käsitellään
luvussa \ref{luku/matematiikka}.
Kansisivun tai dokumentin perustietojen esitystapaan vaikutetaan
valitsimilla \koodim{title\-page} ja \koodim{no\-title\-page}. Latexissa
on yksinkertaiset komennot dokumentin perustietojen eli pääotsikon,
tekijöiden nimien ja päiväyksen latomiseen (luku
\ref{luku/dokumentin-perustiedot}), ja näillä valitsimilla vaikutetaan
siihen, ladotaanko perustiedot omalle sivulleen (\koodi{title\-page})
vaiko ensimmäisen sisältösivun alkuun (\koodi{no\-title\-page}).
Oletus\-asetus vaihtelee eri dokumenttiluokissa.
Oletuksena sivun tekstit ladotaan yhdelle palstalle
(\koodim{onecolumn}), mutta valitsimella \koodim{twocolumn} teksti
ladotaan kahdelle palstalle. Nämä valitsimet vaikuttavat myös sivun
marginaaleihin. Latexin perusosat eivät hallitse useampaa kuin kaksi
palstaa, mutta \paketti{multicol}\-/paketin avulla saa enemmänkin.
Palstoja käsitellään luvussa \ref{luku/palstat}.
Dokumenttiluokassa \luokka{slides} toimii \koodim{clock}\-/ valitsin,
joka latoo kellonajan piirtoheitinkalvon loppuun \komento{note}\-/
komennon yhteydessä. Tämä valitsin kuulunee samaan paikkaan kuin
piirtoheittimet ja \luokka{slides}\-/luokkakin: kierrätykseen tai
kaatopaikalle.
\subsection{Muita dokumenttiluokkia}
Kuka tahansa voi tehdä ja julkaista omia dokumenttiluokkia, ja niinpä
perusdokumenttiluokkien lisäksi onkin saatavilla monenlaisia luokkia.
Tässä käsitellään vain joitakin.
Luokka \luokka{memoir} on Latexin \luokka{book}\-/luokkaan perustuva,
ominaisuuksiltaan laajennettu luokka, joka sopii yleiskäyttöön. Tähän
luokkaan on sisällytetty monia dokumentin rakenteeseen ja ulkoasuun
liittyviä toimintoja, joihin yleensä tarvitaan erillisiä paketteja
tai muuten lisäkoodia. Sen sijaan, että ratkoisi dokumentin rakenteen ja
asettelun kysymyksiä erillisten pakettien avulla, saattaisi olla
helpompaa lukea (lähes) pelkästään vain \luokka{memoir}\-/ luokan
ohjekirjaa ja toteuttaa asiat yhtenäisen järjestelmän avulla.
\luokka{beamer}\-/luokka on monipuolinen ja huippuunsa viritetty luokka
esitysgrafiikan eli diaesitysten tekemiseen. Se on eräänlainen Latexin
vastine esimerkiksi \englanti{Libreoffice Impress}\-/{} ja
\englanti{Microsoft Powerpoint} \=/ohjelmille.
Pienempiin, rajattuihin erityistarpeisiin on olemassa useita luokkia.
Esimerkiksi yksisivuisten taitettavien lehtisten kuten tapahtuman
käsiohjelmien tekemiseen soveltuu \luokka{leaflet}\-/luokka.
\textsc{cd}\-/levyjen kansia voi tehdä \luokka{cd}\-/luokan avulla.
Kuvitettuja seinäkalentereita vartenkin on tehty oma luokkansa,
\luokka{wallcalendar}. Kitaran tablatuureja eli otelautakuvaan
perustuvia nuotteja voi tehdä \luokka{guitartabs}\-/ luokan avulla.
Kaikenlaista on siis olemassa. Saatavilla oleviin dokumenttiluokkiin voi
tutustua esimerkiksi \englanti{Comprehensive Tex Archive Network}
(\textsc{ctan}) \=/verkkosivun avulla.%
\footnote{\url{https://www.ctan.org/topic/class}}
\section{Sivu}
\label{luku/sivuasetukset}
Latex\-/dokumentit muodostuvat aina peräkkäisistä sivuista, eli
taustalla kummittelee paperiarkkeihin perustuva julkaisumuoto, vaikka
dokumenttia ei varsinaisesti tulostettaisi tai painettaisi paperille.
Tämän vuoksi melkein aina täytyy määrittää sivun asetukset kuten
paperikoko ja marginaalit. Ne tehdään \pakettim{geometry}\-/ paketin
avulla, jota käsitellään luvussa \ref{luku/sivun-mitat}. Joskus halutaan
muokata sivun ylä- tai alatunnistetta eli verrattain pysyviä
tunnistetietoja, jotka toistuvat joka sivulla ylä- tai alareunassa.
Niiden muokkaamiseen käytetään \paketti{fancyhdr}\-/ pakettia, jonka
ohjeita on luvussa \ref{luku/ylä-ala-tunnisteet}.
\subsection{Sivun koko ja marginaalit}
\label{luku/sivun-mitat}
Paperin eli sivun kokoon ja marginaaleihin pääsee vaikuttamaan
\pakettictan{geometry}\-/ paketin avulla. Halutut asetukset voi kertoa
paketin lataamisen yhteydessä. Seuraavassa esimerkissä asetetaan
paperikoko (\koodi{a4\-paper} eli \textsc{a4}-koko), ylä- ja
alamarginaalin pituus (\koodi{top}, \koodi{bottom}) sekä vasemman ja
oikean marginaalin pituus (\koodi{left}, \koodi{right}).
\komentoi{usepackage}
\begin{koodilohkosis}
\usepackage[a4paper, top=20mm, bottom=30mm,
left=20mm, right=20mm]{geometry}
\end{koodilohkosis}
\noindent
Vaihtoehtoisesti asetukset voi ilmaista erikseen \komentom{geometry}\-/
komennon avulla seuraavalla tavalla:
\komentoi{usepackage}
\komentoi{geometry}
\begin{koodilohkosis}
\usepackage{geometry}
\geometry{a4paper, top=20mm, bottom=30mm, left=20mm, right=20mm}
\end{koodilohkosis}
\noindent
Mikäli myöhemmin dokumentissa täytyy vaihtaa sivun asettelua, käytetään
komentoa \komentom{newgeometry}. Alkuperäiset asetukset palautetaan
komennolla \komentom{restoregeometry}.
\komentoi{newgeometry}
\komentoi{restoregeometry}
\begin{koodilohkosis}
\newgeometry{top=…, bottom=…, …} % Uudet asetukset.
\restoregeometry % Palautetaan alkuperäiset asetukset.
\end{koodilohkosis}
\noindent
Valmiiksi määriteltyjä standardipaperikokoja on useita.
\textsc{iso}\-/standardin mukaiset koot \textsc{a0}--\textsc{a6}
valitaan valitsimilla kuten \koodimargin{*paper} \koodi{a3paper},
\koodi{a4paper} tai \koodi{a5paper}. Samoin käytetään myös kokoja
\textsc{b0}--\textsc{b6} ja \textsc{c0}--\textsc{c6}, esimerkiksi
\koodi{b2paper} tai \koodi{c6paper}. Lisäksi on valittavissa useita
japanilaisia ja yhdysvaltalaisia standardeja käyttämällä valitsimia
kuten \koodi{b0j}--\koodi{b6j}, \koodi{ansi\-a\-paper} tai
\koodi{letter\-paper}.
Mikäli standardit koot eivät riitä, voi sivun mitat määrittää vapaasti
\koodim{paper\-size}\-/ valitsimella, jolle annetaan arvoksi leveys- ja
korkeusmitta.
\komentoi{geometry}
\begin{koodilohkosis}
\geometry{papersize={10cm, 16cm}}
\end{koodilohkosis}
\noindent
Sivu on oletuksena pystyasennossa (\koodim{portrait}), mutta sen voi
asettaa vaaka\-/asentoon valitsimella \koodim{landscape}. Tämä asetus on
voimassa koko dokumentin ajan. Jos haluaa asettaa vain yksittäisiä
sivuja vaaka\-/asentoon, täytyy käyttää \pakettictan{pdflscape}\-/
pakettia ja sen tarjoamaa ympäristöä.
Sivun asetusten suunnittelussa voi olla avuksi valitsin
\koodim{show\-frame}, joka piirtää viivat marginaalien kohdalle ja
merkitsee myös ylä- ja alatunnisteiden sekä marginaalihuomautusten
rajoja.
Taulukkoon \ref{tlk/sivun-marginaalit} on koottu tärkeimpiä valitsimia
marginaalien mittojen asettamiseksi. Valitsimille annetaan arvoksi Texin
mittayksikkö, jotka ovat taulukossa \ref{tlk/mittayksiköt}
(s.~\pageref{tlk/mittayksiköt}). Kaksipuolisessa
\koodimargin{twoside=\katk true} \koodimargin{twoside=\katk false}
asettelussa (\koodi{twoside=\katk true}) sivut muodostavat aukeaman eli
on erikseen vasemmanpuoleinen ja oikeanpuoleinen sivu. Tällöin vasen ja
oikea marginaali vuorottelevat, ja niitä on havainnollisempaa kutsua
sisä- ja ulkomarginaaliksi. Marginaalien määrittelyssä voi käyttää
valitsimen \koodi{left} sijasta valitsinta \koodi{inner}, ja vastaavasti
\koodi{right}\-/ valitsin voidaan korvata \koodi{outer}\-/ valitsimella.
Teknisesti näillä ei ole mitään eroa, mutta nimet ovat ihmisille
havainnollisempia.
\leijutlk{
\providecommand{\rivi}{}
\renewcommand{\rivi}[3]{\koodi{#1} & \koodi{#2} & #3 \\}
\begin{tabular}{lll}
\toprule
\multicolumn{2}{l}{\ots{Valitsin}} & \ots{Merkitys} \\
\midrule
\rivi{left}{inner}{vasen marginaali tai sisämarginaali}
\rivi{right}{outer}{oikea marginaali tai ulkomarginaali}
\rivi{top}{}{ylämarginaali}
\rivi{bottom}{}{alamarginaali}
\bottomrule
\end{tabular}
}{
\caption{\paketti{geometry}\-/paketin valitsimia sivun marginaalien
määrittelemiseen}
\label{tlk/sivun-marginaalit}
}
Sivun tekstialueen koon ja marginaalit voi määrittää myös
suhteellisesti. Voisi esimerkiksi määrittää, että leveyssuunnassa
tekstialue täyttää 0,7\=/kertaisesti (70\,\%) sivun leveyden ja loput
jää marginaaleille. Marginaalien keskinäiset suhteetkin voi ilmaista
suhdelukuna: esimerkiksi vasemman (sisä) ja oikean (ulko) marginaalin
suhde voisi olla 2:3. Suhteellisessa tavassa ei tarvitse ottaa kantaa
sivun kokoon eikä muihinkaan varsinaisiin mittoihin, vaan samat
tekstialueen ja marginaalien suhteet säilyvät, vaikka sivukokoa
muuttaisikin. Suhteellisia mittoja koskevia valitsimia on koottu
taulukkoon \ref{tlk/sivun-marginaalit-suhd}.
\leijutlk{
\providecommand{\rivi}{}
\renewcommand{\rivi}[2]{\koodi{#1} & #2 \\}
\begin{tabular}{ll}
\toprule
\ots{Valitsin} & \ots{Merkitys} \\
\midrule
\rivi{hscale}{tekstialueen osuus sivun leveydestä}
\rivi{vscale}{tekstialueen osuus sivun korkeudesta}
\rivi{hmarginratio}{vasemman (sisä) ja oikean (ulko) marginaalin suhde}
\rivi{vmarginratio}{ylä- ja alamarginaalin suhde}
\bottomrule
\end{tabular}
}{
\caption{\paketti{geometry}\-/paketin valitsimia sivun tekstitilan ja
marginaalien suhteiden määrittämiseen. Osuudet (\koodi{*scale})
ilmaistaan prosenttikertoimella (esim. \koodi{0.7}). Suhteet
(\koodi{*marginratio}) ilmaistaan suhdelukuna (esim. \koodi{2:3})}
\label{tlk/sivun-marginaalit-suhd}
}
Klassisessa kirjatypografiassa, jossa teksti ladotaan yhdelle palstalle,
marginaalien suuruusjärjestys on suurimmasta pienimpään seuraavanlainen:
ala-, ulko-, ylä- ja sisämarginaali. Suhdeluvut samassa järjestyksessä:
32, 28, 20, 17. \paketti{geometry}\-/paketin valitsimilla tämä
ilmaistaan seuraavasti:
\komentoi{geometry}
\begin{koodilohkosis}
\geometry{hmarginratio=17:28, vmarginratio=20:32}
\end{koodilohkosis}
\noindent
Klassisia suhteita ei nykyaikana yleensä noudateta kovin tarkasti, mutta
niistä kannattaa ymmärtää yleinen ajatus. Alamarginaalin pitäisi olla
hieman suurempi kuin ylämarginaali, koska muuten tekstialue tuntuu
pudonneen sivulla alas. Alamarginaalissa (alatunnisteessa) on yleensä
sivunumero. Kirjan sivuja katsotaan pareittain eli aukeamina, joten
sisämarginaaleja on kaksi vierekkäin. Siksi sisämarginaalit yksittäin
ajateltuna ovat pienemmät kuin ulkomarginaalit. Lisäksi ulkomarginaaleja
voidaan käyttää huomautusten kirjoittamiseen, mikä on melko yleinen
käytäntö tietokirjoissa.
Marginaalihuomautukset (luku \ref{luku/marginaalihuomautukset})
sijaitsevat oletuksena sivujen ulkomarginaalissa tai oikeanpuoleisessa
marginaalissa. Huomautuspalstan leveys asetetaan valitsimella
\koodim{marginparwidth}, ja palstan etäisyys sivun varsinaisesta
tekstialueesta määritellään valitsimella \koodim{marginparsep}. Kumpikin
valitsin tarvitsee argumentiksi mitan. Jos haluaa vaihtaa huomautukset
sivun vastakkaiseen marginaaliin, lisätään mukaan valitsin
\koodi{reversemarginpar}.
Perus Latex osaa latoa tekstin yhdelle tai kahdelle palstalle, ja
\paketti{geometry}\-/ paketin valitsimella \koodim{onecolumn} tai
\koodim{twocolumn} asetetaan, kumpi tila on oletuksena päällä.
Useampikin palsta on mahdollista paketin avulla. Valitsimen
\koodim{columnsep} avulla asetetaan palstojen välinen etäisyys.
Käytännössä tämä valitsin on asettaa mitan \mitta{columnsep}, jota voi
muokata myös komennolla \komento{setlength}, kuten muitakin mittoja
(luku \ref{luku/mitat}). Tarkempaa tietoa palstoista on luvussa
\ref{luku/palstat}.
\subsection{Sivun mittoja}
\leijutlk{
\providecommand{\rivi}{}
\renewcommand{\rivi}[2]{\mitta{#1} & #2 \\}
\begin{tabular}{ll}
\toprule
\ots{Mitta} & \ots {Merkitys} \\
\midrule
\rivi{paperwidth}{paperin eli sivun leveys}
\rivi{paperheight}{paperin eli sivun korkeus}
\rivi{textwidth}{tekstialueen leveys}
\rivi{columnwidth}{nykyisen palstan leveys}
\rivi{linewidth}{nykyisen rivin leveys}
\rivi{textheight}{tekstialueen korkeus}
\bottomrule
\end{tabular}
}{
\caption{Sivun mittoja}
\label{tlk/sivun-mittoja}
}
Sivun kokoasetusten määrittämisen jälkeenkin voi olla tarpeen viitata
joihinkin sivun mittoihin. Usein esimerkiksi halutaan piirtää sivun
tekstialueen levyinen tai siihen suhteutettu taulukko tai kuva. Silloin
on kätevää käyttää mittaa, jonka arvona on juuri tekstialueen leveys.
Tärkeimmät sivun mitat on koottu taulukkoon \ref{tlk/sivun-mittoja},
mutta perusteellisemmin niitä käsitellään \pakettictan{geometry}\-/
paketin ohjekirjassa.
Taulukossa \ref{tlk/sivun-mittoja} mainittu mitta \mitta{linewidth}
eroaa tekstialueen (\mitta{textwidth}) tai palstan (\mitta{columnwidth})
leveysmitasta esimerkiksi silloin, kun tekstikappaletta on sisennetty.
Kappaleiden ensimmäinen rivi voi olla sisennetty, ja sen vuoksi rivi ei
ole täysilevyinen. Muutkin sisennykset kuten lohkolainaukset tai
luetelmat vaikuttavat rivin leveysmittaan. Sisennysasiat liittyvät
tekstikappaleiden muotoiluun, jota käsitellään
luvussa~\ref{luku/kappale}. Luetelmia puolestaan käsitellään
luvussa~\ref{luku/luetelmat}.
\subsection{Leikkuuvarat}
Sivu voi olla ulkoisesti erikokoinen kuin sisäisesti. On siis
mahdollista asettaa sivu esimerkiksi \textsc{a4}\-/kokoiseksi ja
käsitellä marginaalit ja muut sivun mitat \textsc{a4}-koon mukaan, mutta
ulkoisesti tai fyysisesti sivu onkin osana suurempaa sivua tai
paperiarkkia. Tällaista tarvitaan ainakin silloin, kun halutaan
merkitä leikkuuvarat dokumentin painamista varten.
Painokoneen paperiarkkien leikkauskohta ei välttämättä osu täsmälleen
samaan kohtaan pdf\-/tiedoston sivun reunan kanssa, ja siksi
dokumentissa reunaan saakka yltävät kuvat asetetaan varmuuden vuoksi
hieman ylikokoiseksi. Sivun reunaan saakka aiotut kuvat siis yltävät
lähde-pdf:ssä pari millimetriä varsinaisen sivualueen ulkopuolelle eli
leikkuuvaran puolelle. Tällä varmistetaan, että painamisen jälkeen
leikatuissa paperiarkeissa kuva varmasti yltää reunaan saakka.
Jos dokumenttiin tarvitaan sivun ulkopuoliset leikkuuvarat, määritellään
dokumentin ulommaiset mitat edelleen samalla tavalla kuin
tavallisestikin eli esimerkiksi valitsimella \koodi{paper\-size} (luku
\ref{luku/sivun-mitat}). \koodimargin{layout} \koodimargin{layout\-size}
Sen sijaan sivun sisäiset mitat täytyy määritellä toisella tavalla,
käyttämällä valitsinta \koodi{lay\-out} tai \koodi{layout\-size}.
\begin{esimerkki*}
\komentoi{geometry}
\begin{koodilohko}
\geometry{
papersize={220mm, 307mm},
layout=a4paper, % tai: layoutsize={210mm, 297mm}
layoutoffset={5mm, 5mm},
showcrop
}
\end{koodilohko}
\caption{Sivun ulkoisten ja sisäisten mittojen sekä leikkuvaarojen
määrittäminen}
\label{esim/leikkuuvarat}
\end{esimerkki*}
Esimerkissä \ref{esim/leikkuuvarat} käytetään sisäisesti \textsc{a4}\-/
kokoista (210 × 297~mm) sivua, mutta sivulle on määritetty joka puolelle
5\,mm:n leikkuuvarat. Niinpä ulkoisesti sivu on 10\,mm leveämpi ja
korkeampi, eli ulkoiset mitat ovat 220 × 307~mm. Valitsimella
\koodi{layout\-offset} asetetaan sisäisen sivun etäisyys ulkoisen sivun
vasemmasta ylänurkasta. Esimerkissä on mukana myös valitsin
\koodi{show\-crop}, joka merkitsee sisäisen ja ulkoisen sivun rajakohdan
eli leikkuuvaran rajan. Merkinnät näkyvät vain sivun nurkissa
leikkuuvaran puolella, joten ne eivät päädy lopulliseen
painotuotteeseen.
\subsection{Ylä- ja alatunnisteet}
\label{luku/ylä-ala-tunnisteet}
\paketti{geometry}\-/paketin asetuksiin kuuluu pari valitsinta, joilla
vaikutetaan ylä- ja alatunnisteiden mittoihin. Valitsimella \koodi{head}
ilmaistaan ylätunnisteen korkeus ja valitsimella \koodi{headsep} sen
etäisyys sivun tekstipalstasta. Alatunnisteen peruslinjan etäisyys
tekstipalstasta säädetään valitsimella \koodi{footskip}. Taulukkoon
\ref{tlk/ylä-ala-tunnistemitat} on koottu näiden valitsimien merkitys,
ja seuraavassa on niiden käyttämisestä esimerkki. Mukana on myös
valitsin \koodi{show\-frame}, joka piirtää sivulle apuviivoja. Se auttaa
sivun mittojen suunnittelussa.
\komentoi{geometry}
\begin{koodilohkosis}
\geometry{head=24bp, headsep=8bp, footskip=12mm, showframe}
\end{koodilohkosis}
\leijutlk{
\begin{tabular}{ll}
\toprule
\ots{Valitsin} & \ots{Merkitys} \\
\midrule
\koodi{head} & ylätunnisteen korkeusmitta \\
\koodi{headsep} & ylätunnisteen etäisyys tekstipalstasta \\
\koodi{footskip} & alatunnisteen peruslinjan etäisyys tekstipalstasta \\
\bottomrule
\end{tabular}
}{
\caption{\paketti{geometry}\-/paketin valitsimet ylä- ja
alatunnisteiden mittojen asettamiseen}
\label{tlk/ylä-ala-tunnistemitat}
}
\noindent
Latexin perusosat eivät sisällä kovin kummoista keinovalikoimaa ylä- ja
alatunnisteiden muokkaamiseen, mutta pari hyödyllistä sivutyyliä on
kuitenkin mukana. Ylä- ja alatunnisteet määräytyvät sivutyylin
perusteella, ja haluttu tyyli asetetaan voimaan komennolla
\komentom{pagestyle}:
\komentoi{pagestyle}
\begin{koodilohkosis}
\pagestyle{plain}
\end{koodilohkosis}
\noindent
Edellä mainittu sivutyyli \koodim{plain} latoo alatunnisteeseen
sivunumeron. Se on yleensä oletustyyli. Sivunumero on peräisin
laskurista \laskuri{page} ja sen arvon tulostavasta komennosta
\komento{thepage} (luku \ref{luku/laskurit}). Toinen hyödyllinen tyyli
on \koodim{empty}, joka nimensä mukaisesti tarkoittaa tyhjää, eli ylä-
eikä alatunnisteeseen ei ladota mitään.
Yksittäiselle sivulle voi asettaa muusta dokumentista poikkeavan
sivutyylin komennolla \komentom{thispagestyle}. Komento siis vaikuttaa
vain sillä hetkellä ladottavan sivun tyyliin, ja sen jälkeen palataan
taas voimassa olevaan tyyliin, joka on aiemmin määritelty komennolla
\komento{pagestyle}.
\komentoi{thispagestyle}
\begin{koodilohkosis}
\thispagestyle{empty}
\end{koodilohkosis}
\noindent
Sivutyyli \koodim{headings} latoo ylätunnisteeseen aukeaman
vasemmanpuoleisille sivuille esimerkiksi kirjan pääluvun nimen ja
oikeanpuoleisille sivuille meneillään olevan alaluvun nimen. Mainitut
lukujen nimet tulevat sivun sisäreunaan; ulkoreunaan ladotaan
sivunumero.
Teknisesti ja sisäisesti tämä on toteutettu siten, että pääluvun
aloittava otsikkokomento (esim. \komento{chapter}) automaattisesti
määrittelee joka kerta uudelleen komennon \komento{leftmark}, niin että
se sisältää pääluvun nimen. Sivuja ladottaessa Latex sitten latoo
ylätunnisteeseen sen, mitä \komento{leftmark}\-/komento sattuu
tulostamaan. Vastaavasti alaluvun otsikkokomento (esim.
\komento{section}) määrittelee uudelleen komennon \komento{rightmark},
niin että se sisältää alaluvun nimen. Tämän komennon tulostama teksti
ladotaan aukeaman oikeanpuoleisille sivuille.
Jos haluaa itse vaikuttaa ylätunnisteen tekstiin, voi käyttää sivutyyliä
\koodim{myheadings} sekä komentoa \komento{markboth}, jolla määritellään
aukeaman vasemmanpuoleisen ja oikeanpuoleisen sivun ylätunnisteen
teksti. Tämä komento on tarkoitettu suoritettavaksi päälukujen
yhteydessä. Komennolla \komento{markright} määritellään pelkästään
oikeanpuoleisen sivun teksti, ja komento on tarkoitettu suoritettavaksi
aina alalukujen yhteydessä.
\komentoi{markboth}
\komentoi{markright}
\begin{koodilohkosis}
\markboth{vasen}{oikea} % määrittelee: \leftmark ja \rightmark
\markright{oikea} % määrittelee: \rightmark
\end{koodilohkosis}
\noindent
Sivunumeroinnin tyyliin voi vaikuttaa esimerkiksi komennolla
\komento{pagenumbering}, jonka argumentiksi annetaan numerointityylin
nimi. Ne on koottu taulukkoon \ref{tlk/sivu-numerointityylit}.
\komentoi{pagenumbering}
\begin{koodilohkosis}
\pagenumbering{roman}
\end{koodilohkosis}
\noindent
Edellä mainittu komento määrittelee käytännössä uudelleen komennon
\komento{thepage}, joka on tarkoitettu juuri sivunumerolaskurin
latomiseen. Lisätietoa sivunumeroista ja muista laskureista on luvussa
\ref{luku/laskurit}.
\leijutlk{
\providecommand{\rivi}{}
\renewcommand{\rivi}[2]{\koodi{#1} & #2 \\}
\begin{tabular}{ll}
\toprule
\ots{Tyyli} & \ots{Merkitys} \\
\midrule
\rivi{arabic}{arabialaiset luvut: 1, 2, 3\dots}
\rivi{roman}{roomalaiset luvut: i, ii, iii\dots}
\rivi{Roman}{roomalaiset luvut: I, II, III\dots}
\rivi{alph}{kirjaimet: a, b, c\dots\ (vain 1--26)}
\rivi{Alph}{kirjaimet: A, B, C\dots\ (vain 1--26)}
\bottomrule
\end{tabular}
}{
\caption{Sivunumerointityylit \komento{pagenumbering}\-/ komennon
argumentiksi}
\label{tlk/sivu-numerointityylit}
}
Monipuolisemmin ylä- ja alatunnisteita voi muokata paketin
\pakettictan{fancyhdr} toimintojen avulla. Silloin sivutyylinä voi olla
myös \koodim{fancy}:
\komentoi{usepackage}
\komentoi{pagestyle}
\begin{koodilohkosis}
\usepackage{fancyhdr}
\pagestyle{fancy}
\end{koodilohkosis}
\noindent
Kun käytössä on sivutyyli \koodi{fancy}, voi ylä- ja alatunnisteiden
sisällön asettaa vapaasti komennolla \komentom{fancyhf}. Komennon
argumenttien merkitys on seuraavanlainen:
\komentoi{fancyhf}
\begin{koodilohkosis}
\fancyhf[paikka]{sisältö}
\end{koodilohkosis}
\noindent
Valinnainen argumentti \koodi{paikka} kertoo, mihin paikkaan tai
paikkoihin \koodi{sisältö} sijoitetaan. Vaihtoehtoina on ylä- tai
alatunniste, pariton tai parillinen sivu, sivun vasen reuna, keskiosa
tai oikea reuna. Nämä vaihtoehdot ja niitä vastaavat valitsimet on
koottu taulukkoon \ref{tlk/fancyhf-paikat}. Saman komennon avulla voi
määrittää useitakin paikkoja, kun ne erottaa pilkulla, esimerkiksi
seuraavalla tavalla:
\leijutlk{
\providecommand{\rivi}{}
\renewcommand{\rivi}[2]{\koodi{#1} & #2 \\}
\begin{tabular}{cl}
\toprule
\ots{Valitsin} & \ots{Merkitys} \\
\midrule
\rivi{H}{ylätunniste (header)}
\rivi{F}{alatunniste (footer)}
\rivi{E}{parillinen sivu, vasen (even)}
\rivi{O}{pariton sivu, oikea (odd)}
\rivi{L}{sivun vasen reuna (left)}
\rivi{C}{sivun keskelle (center)}
\rivi{R}{sivun oikea reuna (right)}
\bottomrule
\end{tabular}
}{
\caption{\komento{fancyhf}\-/ komennon valitsimia ylä- tai
alatunnisteen paikan määrittämiseen}
\label{tlk/fancyhf-paikat}
}
\komentoi{fancyhf}
\begin{koodilohkosis}
\fancyhf{} % Tyhjennetään ylä- ja alatunnisteet.
\fancyhf[HEL,HOR]{\thepage}
\end{koodilohkosis}
\noindent
Edellä mainittu komento sijoittaa sivunumeron (\komento{thepage})
ylätunnisteeseen (\koodi{H}) parillisten sivujen (\koodi{E}) vasempaan
reunaan (\koodi{L}) ja parittomien sivujen (\koodi{O}) oikeaan reunaan
(\koodi{R}). Käytännössä siis aukeaman ulkoreunoihin ladotaan
sivunumerot. Seuraava esimerkki sijoittaa ajatusviivoilla (\==)
reunustetun sivunumeron kaikille sivuille alatunnisteeseen (\koodi{F})
sivun keskelle (\koodi{C}):
\komentoi{fancyhf}
\komentoi{thepage}
\begin{koodilohkosis}
\fancyhf[FC]{-- \thepage\ --}
\end{koodilohkosis}
\noindent
Paketin \paketti{fancyhdr} avulla voi myös määritellä Latexin
sivutyylejä toisenlaiseksi tai luoda kokonaan omia sivutyylejä. Nämä
tehdään komennolla \komentom{fancypagestyle}, jonka ensimmäinen
argumentti on sivutyylin nimi ja toinen argumentti on sivutyylin
määritelmä. Määritelmä sisältää tarvittavat \komento{fancyhf}\-/
komennot, joilla ylä- ja alatunnisteet määritellään.
Seuraava esimerkki tekee Latexin \koodi{plain}\-/ sivutyylistä saman
kuin \koodi{fancy}\-/tyylin, eli sekin noudattaa \komento{fancyhf}\-/
komennolla määriteltyjä ylä- ja alatunnisteita:
\komentoi{fancypagestyle}
\begin{koodilohkosis}
\fancypagestyle{plain}{}
\end{koodilohkosis}
\noindent
Seuraava esimerkki määrittelee kokonaan oman sivutyylin:
\komentoi{fancypagestyle}
\komentoi{fancyhf}
\begin{koodilohkosis}
\fancypagestyle{omatyyli}{
\fancyhf{}
\fancyhf[FEL,FOR]{\thepage}
}
\end{koodilohkosis}
\noindent
Ylä- ja alatunniste voidaan erottaa tekstipalstasta vaakasuuntaisella
viivalla, jonka leveyttä on mahdollista muuttaa määrittelemällä
uudelleen komennot \komentom{headrulewidth} ja \komentom{footrulewidth}.
Komennon määritelmäksi kirjoitetaan Texin mitta. Seuraavassa esimerkissä
asetetaan yhden typografisen pisteen (1\,bp) levyiset viivat. Mitan
voisi asettaa myös nollaksi (0\,bp), jolloin erotinviiva katoaa kokonaan
näkyvistä.
\komentoi{renewcommand}
\komentoi{headrulewidth}
\komentoi{footrulewidth}
\begin{koodilohkosis}
\renewcommand{\headrulewidth}{1bp} % ylätunnisteen erotinviiva
\renewcommand{\footrulewidth}{1bp} % alatunnisteen erotinviiva
\end{koodilohkosis}
\noindent
Mikäli haluaa omiin ylätunnisteisiin esimerkiksi päälukujen ja
alalukujen nimiä, täytyy tunnisteisiin sisällyttää aiemmin kuvatut
\komentom{leftmark}- ja \komentom{rightmark}\-/komennot. Ensin mainittu
sisältää pääluvun nimen ja jälkimmäinen alaluvun nimen.
\komentoi{fancyhf}
\komentoi{leftmark}
\komentoi{rightmark}
\begin{koodilohkosis}
\fancyhf[HEL]{\leftmark}
\fancyhf[HOR]{\rightmark}
\end{koodilohkosis}
\noindent
Latex latoo pää- ja alalukujen nimet oletuksena versaalikirjaimilla eli
isoilla kirjaimilla. Jos ne haluaa johonkin toiseen muotoon, täytyy itse
määritellä uudelleen komennot \komentom{chaptermark},
\komentom{sectionmark} tai \komentom{subsectionmark} (vain kaksi näistä)
ja käyttää määritelmässä komentoja \komento{markboth} ja
\komento{markright}. Esimerkkiin \ref{esim/fancyhdr-koko} on koottu
varsin kokonaisvaltainen koodi omien ylä- ja alatunnisteiden
toteutukseen.
\begin{esimerkki*}
\komentoi{documentclass}
\luokkai{book}
\komentoi{usepackage}
\pakettii{fancyhdr}
\komentoi{fancypagestyle}
\komentoi{fancyhf}
\komentoi{renewcommand}
\komentoi{headrulewidth}
\komentoi{footrulewidth}
\komentoi{leftmark}
\komentoi{rightmark}
\komentoi{thepage}
\komentoi{pagestyle}
\komentoi{chaptermark}
\komentoi{markboth}
\komentoi{chaptername}
\komentoi{thechapter}
\komentoi{sectionmark}
\komentoi{thesection}
\begin{koodilohko}
\documentclass{book}
\usepackage{fancyhdr}
% Päälukujen (\chapter) aloitussivu käyttää plain-sivutyyliä.
% Tässä määritellään se uudestaan.
\fancypagestyle{plain}{
\fancyhf{}
\fancyhf[FC]{-- \thepage\ --}
\renewcommand{\headrulewidth}{0bp}
\renewcommand{\footrulewidth}{0bp}
}
% fancy-sivutyylin asetukset:
\fancyhf{}
\fancyhf[HEL]{\leftmark}
\fancyhf[HOR]{\rightmark}
\fancyhf[FC]{-- \thepage\ --}
\renewcommand{\headrulewidth}{1bp}
\renewcommand{\footrulewidth}{0bp}
\begin{document}
\pagestyle{fancy}
% Päälukujen (\chapter) yhteydessä komento \markboth{…}{…} määrittää
% sekä \leftmark- että \rightmark-komennot. Tässä jälkimmäinen
% määritellään tyhjäksi.
\renewcommand{\chaptermark}[1]{%
\markboth{\chaptername\ \thechapter: #1}{}}
% Alalukujen (\section) yhteydessä komento \markright{…} määrittää
% vain \rightmark-komennon.
\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
\end{koodilohko}
\caption{Omien ylä- ja alatunnisteiden toteuttaminen}
\label{esim/fancyhdr-koko}
\end{esimerkki*}
\section{Pdf-tiedosto}
\label{luku/pdf-asetukset}
Pdf-tiedostot voivat sisältää metatietoja kuten dokumentin nimen,
aiheen, tekijän ja päiväyksen. Tiedostoille voi määrittää myös erilaisia
asetuksia kuten ristiviitteiden ja linkkien ulkoasun tai sisäisen
sisällysluettelon ominaisuuksia. Pdf\-/tiedoston asetukset toteutetaan
\pakettictan{hyperref}\-/ paketin avulla. Paketti neuvotaan lataamaan
muiden pakettien jälkeen, koska se lisää ominaisuuksia muihin
komentoihin. Paketin voisi ladata esimerkiksi seuraavalla tavalla:
\komentoi{usepackage}
\pakettii{hyperref}
\begin{koodilohkosis}
% Muiden \usepackage-komentojen jälkeen.
\usepackage[unicode]{hyperref}
\end{koodilohkosis}
\noindent
Esimerkissä käytetty valitsin \koodi{unicode} aiheuttaa sen, että pdf\-/
tiedoston sisäisissä merkkijonoissa käytetään Unicode\-/ merkistöä ja
sen \textsc{utf\=/8}\-/ koodausta. Ilman tätä valitsinta Lualatex\-/
kääntäjän kanssa pdf\-/ tiedoston sisäinen sisällysluettelon merkistö ei
näy välttämättä oikein.
\paketti{hyperref}\-/ paketin asetuksia voi määritellä valitsimien
avulla \komento{usepackage}\-/ komennon yhteydessä mutta myös
erillisellä \komentom{hypersetup}\-/ komennolla. Komennolle annetaan
yksi argumentti, joka sisältää pilkuilla erotettuna erilaisia valitsimia
ja niiden arvoja.
\begin{esimerkki*}
\begin{koodilohko}
\hypersetup{
hidelinks, bookmarksopen, bookmarksnumbered,
pdfinfo={
Title={Laatikollinen lateksia},
Subject={Opas lateksiin ja liisteriin},
Author={Lauri Liisteri}
}
}
\end{koodilohko}
\caption{\komento{hypersetup}\-/ komennolla asetetaan
\paketti{hyperref}\-/ paketin asetuksia, esimerkiksi pdf:n
metatietoja}
\label{esim/hypersetup}
\end{esimerkki*}
Esimerkissä \ref{esim/hypersetup} valitsin \koodi{hidelinks} saa aikaan
sen, että pdf:ssä olevia linkkejä ja ristiviitteitä ei merkitä millään
tavalla. Oletuksena linkit kehystetään eri väreillä riippuen linkin
tyypistä. Valitsin \koodi{bookmarksopen} näyttää pdf:n sisällysluettelon
kokonaan avattuna. Oletuksena alaluvut on piilotettuna, ja ne joutuu
avaamaan napsauttamalla hiirellä ylemmäntasoisen otsikon
avauspainiketta. Valitsin \koodi{bookmarksnumbered} näyttää pdf:n
sisällysluettelossa lukujen numeroinnin (kuten 1.1, 1.2, 2.1 tms.).
Valitsimella \koodi{pdfinfo} määritellään pdf:n metatietoja kuten
otsikko, aihe ja tekijä mutta omiakin metatietoja voi lisätä. Paljon
muitakin asetuksia on olemassa, ja niistä voi lukea lisää
\paketti{hyperref}\-/ paketin ohjekirjasta.
Pdf\-/ tiedoston sisäiseen sisällysluetteloon tulevat automaattisesti
mukaan samat otsikot (luku \ref{luku/otsikot}) kuin ladottavaan
sisällysluetteloonkin (luku \ref{luku/sisällysluettelo}). Pdf\-/
tiedoston luetteloon voi kuitenkin itse lisäillä omia otsikoita, jotka
eivät näy missään muualla. Se tehdään \paketti{hyperref}\-/ paketin
komennolla \komentom{pdfbookmark}:
\komentoi{pdfbookmark}
\begin{koodilohkosis}
\pdfbookmark[taso]{Teksti}{tunniste}
\end{koodilohkosis}
\noindent
Komennon valinnainen argumentti \koodi{taso} on kokonaisluku, joka
tarkoittaa otsikon tasoa. Se on samankaltainen tasonumero kuin
otsikkotasojen taulukossa \ref{tlk/otsikkotasot}
(s.~\pageref{tlk/otsikkotasot}). Argumentti \koodi{Teksti} on pdf:n
sisällysluettelomerkinnän teksti, ja \koodi{tunniste} on mikä tahansa
yksilöllinen tekstimuotoinen tunniste kyseiselle luettelomerkinnälle.
Tunniste ei näy missään, mutta pdf tarvitsee sisäiseen toimintaansa
jonkin yksilöllisen tunnisteen.
\section{Fontit}
\label{luku/kirjaintyypit}
Fontit ja niiden asettaminen on Latexissa melko monimutkainen
kokonaisuus, koska fonteilla on paljon ominaisuuksia ja niihin
vaikutetaan monilla eri asetuksilla ja abstraktiotasoilla. Aika monta
asiaa pitää ymmärtää, jotta voi tehokkaasti työskennellä Latexin
fonttien kanssa.
Fontti jo itsessään on moniselitteinen käsite, joka vaatii typografiassa
usein täsmentäviä ilmauksia. Sana \emph{fontti} voi tarkoittaa
kokonaista kirjainperhettä eli yhteensopivien kirjainleikkausten
muodostamaa kokonaisuutta. Samaan kirjainperheeseen kuuluu yleensä
ainakin neljä eri leikkausta: tavallinen, \textit{kursiivi},
\textbf{lihavoitu} ja \textbf{\textit{lihavoitu kursiivi}}. Joihinkin
perheisiin kuuluu leikkauksia paljon enemmänkin, kuten useita eri
vahvuuksia. Joissakin puheissa sana \emph{fontti} tarkoittaa vain yhtä
kirjainleikkausta, ja silloin koko perheeseen viitataan ehkä sanalla
fonttiperhe.
Tässä oppaassa käytetään \emph{fontti}\-/sanaa yleisnimityksenä Latexin
kirjaintyyppeihin liittyville asetuksille. Se tarkoittaa kirjainperhettä
tai siihen kuuluvaa yksittäistä leikkausta sekä asetuksia, jotka
liittyvät niihin. Silloin kun merkitystä pitää täsmentää, käytetään
suomenkielisiä nimiä kirjainperhe ja kirjainleikkaus. Sen sijaan sana
\emph{kirjasin} on jätetty kokonaan pois. Se tarkoittaa vanhassa
metalliladonnassa ja mekaanisissa kirjoituskoneissa metallisen
ladontakappaleen eli kirjakkeen päähän valettua kirjaimen tai muun
merkin kohokuviota, joka painaa mustejäljen paperille.
Kuten Latexissa yleensäkin myös fonttien kanssa kannattaa käyttää
korkean abstraktiotason komentoja, jotka piilottavat yksityiskohdat ja
teknisen toteutuksen. Latexin fonttitoiminnot on suunniteltu juuri
siihen: matalan tason fonttiasetukset määritellään mieluiten vain kerran
dokumentin esittelyosassa, ja sen jälkeen käytetään pelkästään korkean
tason komentoja.
Latexin fonttitekniikka rakentuu eri\-/ikäisistä kerroksista ja
tekniikoista. Fontteja on aikoinaan tehty
\englanti{Metafont}\avctan{metafont}\-/ nimisellä kielellä, jolla
kuvataan merkkien muodot. \englanti{Metafont} on myös tietokoneohjelma,
joka tuottaa kuvauskielen perusteella bittikarttafontteja eli
pikseleistä koostuvia fontteja. On käytetty myös kehittyneempää
\englanti{Metapost}\avctan{metapost}\-/ kuvauskieltä ja \=/ohjelmaa,
joilla on tuotettu vektorigrafiikkafontteja \textsc{eps}- eli
\englanti{Encapsulated Post Script} \=/muodossa ja muutettu niitä
edelleen \englanti{Post Script Type~1} \=/fonteiksi. Myöhemmin mukaan
ovat tulleet nykyaikaiset \englanti{True Type}- ja \englanti{Open Type}
\=/fontit, ja niihin tämä opas keskittyy.
\subsection{Fonttien määrittäminen}
\label{luku/fontin-valinta}
Latexin fonttien perustoiminnot rakentuvat kolmen erityyppisen
kirjainperheen varaan:
\begin{nluetelma}
\item peruskirjainperhe eli dokumentin pääasiallinen kirjainperhe, joka
on kirjatypografiassa usein antiikva eli pääteviivallinen
(\englanti{serif, roman})%
\footnote{Antiikva (lat. \emph{antiquus} 'vanha') perustuu antiikin
Roomassa käytettyihin kirjainmuotoihin. Niissä on pääteviivat, ja
viivojen vahvuus vaihtelee.}
\item groteski eli pääteviivaton (\englanti{sans serif, gothic})%
\footnote{Groteskiin (ransk. \emph{grotesque} 'kummallinen') kuuluu
pääteviivojen puuttumisen lisäksi lähes tasavahvuiset kirjainten
viivat. Tämän oppaan groteskifontissa on kuitenkin selvästi
antiikvamaiset kaksivahvuiset viivat, joten se on eräänlainen
antiikvan ja groteskin välimuoto.}
\item tasalevyinen kirjoituskoneen kaltainen perhe
(\englanti{type\-writer, mono\-spaced, tele\-type}).
\end{nluetelma}
\noindent
Kuvassa \ref{kuva/kirjainperhetyypit} ovat tässä oppaassa käytetyt kolme
eri kirjainperhettä. Leipätekstissä käytetään antiikvaa, otsikoissa ja
kuvateksteissä groteskia ja koodiesimerkeissä tasalevyistä.
Kirjoituskoneen kaltainen tasalevyinen kirjainperhe on tässä tapauksessa
tyypiltään antiikva eli pääteviivallinen, mutta se voisi olla muutakin.
Tasalevyisyys on sen kirjainperheen tärkein määrittävä tekijä Latexin
asetusten näkökulmasta.
\leijukuva{
{\rmfamily\addfontfeatures{ScaleAgain=5}Amf}
\hfill
{\sffamily\addfontfeatures{Scale=5}Amf}
\hfill
{\ttfamily\addfontfeatures{FakeStretch=1, Scale=4.5}Amf}
}{
\caption{Vasemmalla pääteviivallinen, keskellä pääteviivaton ja
oikealla tasalevyinen pääteviivallinen kirjainperhe}
\label{kuva/kirjainperhetyypit}
}
Joidenkin fonttien käyttöönottoon on tehty oma pakettinsa, joten
sellaiset fontit voi ladata dokumentin esittelyosassa komennolla
\komento{usepackage}. Fonttikohtaisia paketteja on olemassa
varsinkin vanhalle fonttitekniikalle (\englanti{Metafont, Post Script
Type~1}) mutta myös matematiikkatilan fonttiasetuksille (luku
\ref{luku/matematiikka-fontit}) ja joillekin
kir\-jain\-perhe\-koko\-nai\-suuk\-sille.
Latexissa pisimmälle ''tuotteistettu'' kokonaisuus taitaa olla
Libertinus\-/ kirjainperhe, joka sisältää antiikvan, groteskin ja
tasalevyisen kirjainperheen sekä matematiikkatilan symboleita.
Libertinus\-/ kirjainperheet saa käyttöön lataamalla paketti
\pakettictan{libertinus}:
\komentoi{usepackage}
\pakettii{libertinus}
\begin{koodilohkosis}
\usepackage{libertinus}
\end{koodilohkosis}
\noindent
Valmiita paketteja on kuitenkin vain harvoille fonteille, ja
käytännössä lähes aina \englanti{True Type}- ja \englanti{Open Type}
\=/muodossa olevat fontit otetaan käyttöön \paketti{fontspec}\-/paketin
komennoilla seuraavan esimerkin mukaisesti:
\komentoi{setmainfont}
\komentoi{setsansfont}
\komentoi{setmonofont}
\begin{koodilohkosis}
\setmainfont{TeX Gyre Termes}[Scale=1]
\setsansfont{TeX Gyre Heros} [Scale=MatchLowercase]
\setmonofont{TeX Gyre Cursor}[Scale=MatchLowercase]
\end{koodilohkosis}
\noindent
Edellisessä esimerkissä \englanti{TeX Gyre Termes, Heros} ja
\englanti{Cursor} ovat kirjainperheiden nimiä. Fonttitiedostojen
tulee olla asennettuna käyttöjärjestelmän normaalien käytäntöjen
mukaisesti tai Latex\-/jakelun käytäntöjen mukaisesti.
Kirjainperheiden käyttöönoton yhteydessä voi määritellä lukuisia
asetuksia kuten ligatuureja, gemenanumeroita, optisia kokoja ja muita
fontin ominaisuuksia. Edellisessä esimerkissä käytetään vain
\koodi{Scale}\-/ valitsinta, jolla fontin voi skaalata haluttuun kokoon.
Peruskirjainperheen (\komentom{setmainfont}) skaalaukseksi asetetaan
\koodi{Scale=1}, eli sille ei tehdä mitään, ja koko valitsimen voisi
jättää pois. Sen sijaan kahdella muulla kirjainperheellä
(\komentom{setsansfont}, \komentom{setmonofont}) käytetään
kerroinasetusta \koodi{MatchLowercase}, joka skaalaa fontin siten, että
gemenakirjaimet eli pienet kirjaimet ovat yhtä korkeita kuin
peruskirjainperheessä. Mikäli skaalausasetus \koodi{MatchLowercase} ei
tuota ihan toivottua tulosta, voi kirjainperheen skaalausta hienosäätää
vielä \koodi{Scale\-Again}\-/ valitsimella seuraavalla tavalla:
\komentoi{setmonofont}
\begin{koodilohkosis}
\setmonofont{TeX Gyre Cursor}
[Scale=MatchLowercase, ScaleAgain=.97]
\end{koodilohkosis}
\noindent
Kirjainperheen määrittelyn yhteydessä ei yleensä tarvitse antaa kuin
kirjainperheen nimi, sillä \paketti{fontspec}\-/paketti ja kääntäjät
osaavat automaattisesti ladata perheeseen sisältyviä eri
fonttitiedostoja kuten pystyasentoisen leikkauksen, kursiivin ja
lihavoinnin. On kuitenkin mahdollista määritellä kirjainperheeseen
kuuluvia leikkausten nimiä tai fonttitiedostoja erikseen. Tällainen on
tarpeen esimerkiksi silloin, kun kirjainperhe sisältää useita eri
vahvuuksia ja halutaan itse määritellä, mikä niistä tulee
perusvahvuudeksi ja mikä lihavoiduksi.
Esimerkki \ref{esim/fontit-leik-omin} selventää, kuinka kirjainperheen
eri leikkausten nimet tai fonttitiedostot määritellään. Kullekin
leikkaukselle voi määrittää myös omat asetuksensa \koodi{Fea\-tures}\-/
loppuisella valitsimella. Samaa asiaa havainnollistetaan myös
konkreettisemmin esimerkissä \ref{esim/fontit-leik-omin-käyt}.
Leikkauksen nimessä voi käyttää tähteä (\koodi{*}), joka korvautuu
kirjainperheen nimellä (\englanti{Macklin Text}).
\begin{esimerkki*}
\komentoi{setmainfont}
\begin{koodilohko}
\setmainfont{…}[
UprightFont={…}, UprightFeatures={…},
ItalicFont={…}, ItalicFeatures={…},
BoldFont={…}, BoldFeatures={…},
BoldItalicFont={…}, BoldItalicFeatures={…},
SlantedFont={…}, SlantedFeatures={…},
BoldSlantedFont={…}, BoldSlantedFeatures={…},
SmallCapsFont={…}, SmallCapsFeatures={…}]
\end{koodilohko}
\caption{Kirjainperheeseen sisältyvien leikkausten nimien ja
kirjainleikkauskohtaisten ominaisuuksien määrittely}
\label{esim/fontit-leik-omin}
\end{esimerkki*}
\begin{esimerkki*}
\komentoi{setmainfont}
\begin{koodilohko}
\setmainfont{Macklin Text}[
UprightFont = {* Light},
ItalicFont = {* Light Italic},
BoldFont = {* Medium},
BoldItalicFont = {* Medium Italic}]
\end{koodilohko}
\caption{Eri leikkausten nimien määrittely \englanti{Macklin Text}
\=/kirjainperheelle. Leikkauksen nimessä tähti (\koodi{*}) korvautuu
automaattisesti koko perheen nimellä}
\label{esim/fontit-leik-omin-käyt}
\end{esimerkki*}
Jos edellä kuvatut kolme kirjainperhettä (\komento{setmainfont},
\komento{setsansfont} ja \komento{setmonofont}) eivät riitä, on
\paketti{fontspec}\-/paketissa komennot lisäperheiden ja \=/leikkausten
määrittämiseen. Uusi perhe määritellään seu\-raa\-vasti:
\komentoi{newfontfamily}
\begin{koodilohkosis}
\newfontfamily{\hienoperhe}{TeX Gyre Schola}[…]
\end{koodilohkosis}
\noindent
Komento \komento{newfontfamily} toimii samalla tavalla kuin aiemmin
esitellyt \komento{setmainfont} ym. komennot, mutta lisäksi
ensimmäisellä argumentilla nimetään komento, jolla kirjainperhe otetaan
käyttöön. Edellisessä esimerkissä luodaan komento
\komentox{hieno\-perhe}, joka kytkee päälle \englanti{TeX Gyre Schola}
\=/nimisen kirjainperheen.
Jos ei tarvita kokonaista perhettä vaan yksi leikkaus riittää, käytetään
komentoa \komento{newfontface}. Seuraavassa esimerkissä määriteltävä
komento \komentox{hieno\-leikkaus} ottaa käyttöön lihavoidun (bold)
kirjainleikkauksen perheestä \englanti{TeX Gyre Schola}.
\komentoi{newfontface}
\begin{koodilohkosis}
\newfontface{\hienoleikkaus}{TeX Gyre Schola Bold}[…]
\end{koodilohkosis}
\subsection{Fontin koko ja rivikorkeus}
Fonttien koot on tapana valita ja ilmaista typografisen pistemitan
avulla. Esimerkiksi 10--12 pistettä on tyypillinen leipätekstin
oletuskoko tekstinkäsittelyohjelmissa. Piste on typografiassa
mittayksikkö, jonka pituus on määritelty eri tavoin eri aikoina ja eri
kulttuureissa.
Myös Latexissa fonttien koot voi määritellä pistemittojen avulla. Niitä
ja muitakin Latexin mittayksiköitä käsitellään tarkemmin luvussa
\ref{luku/mitat}. Fonteissa oletusmittayksikkönä on vanha
pica\-/järjestelmän piste, jonka pituus on noin 0,3515 millimetriä. Sen
lyhenne Latexissa on~\emph{pt}. Tämän oppaan esimerkeissä käytetään
kuitenkin Post Script \=/standardin mukaista, julkaisuohjelmiin
vakiintunutta uudempaa pica\-/pistettä, joka on hieman edellistä
pidempi: noin 0,3528 millimetriä. Latexissa sen lyhenne on~\emph{bp}.
Ero näiden kahden pistemitan välillä on hyvin pieni, tavallisilla
fonttiko'oilla käytännössä merkityksetön.
Kirjainleikkauksen koko mitataan merkistön ylimmän ja alimman kohdan
välillä, esimerkiksi k\=/kirjaimen ylimmän pisteen ja y\=/kirjaimen
alimman pisteen välillä. Lisäksi mittaan luetaan mukaan merkistön ylä-
ja alapuolella oleva pieni tyhjä tila, jonka fontin suunnittelija on
määritellyt.
Matalalla tasolla fonttien kokoon vaikuttaa Latexissa eräs yllättävä
asia. Nimittäin dokumenttiluokalle (luku \ref{luku/dokumenttiluokat})
voi antaa valitsimen, jolla fontin koko asetetaan. Vaihtoehtoja on
Latexin normaaleissa dokumenttiluokissa vain kolme: \koodi{10pt}
(oletus), \koodi{11pt} ja \koodi{12pt}. Dokumenttiluokan kokoasetus
vaikuttaa myös sivun marginaaleihin, koska Latex pyrkii pitämään rivin
merkkimäärän lukijalle sopivana: yhdelle riville ei kannata latoa ihan
mahdottomasti merkkejä, koska rivin seuraaminen vaatii enemmän
keskittymistä.
Fontin koon määrittäminen dokumenttiluokan valitsimella ehkä kuuluu jo
vähän menneisyyteen, mutta voi sitä edelleen käyttää, jos se riittää ja
sillä saa halutun lopputuloksen. Yleensä lienee järkevää jättää
dokumenttiluokan fonttiasetus oletukseksi (\koodi{10pt}) ja käyttää koon
asettamiseen luvuissa \ref{luku/fontti-suhteellinen} ja
\ref{luku/fontti-absoluuttinen} kerrottuja tapoja. Sivun marginaalien ja
muiden mittojen määrittämiseen on ohjeita luvussa
\ref{luku/sivuasetukset}.
Fonttiasetuksiin kuuluu fontin koon lisäksi toinenkin mitta: rivikorkeus
(\mitta{baselineskip}). Se on peräkkäisten rivien peruslinjojen välinen
etäisyys. Fontin koko ja rivikorkeus määritellään samanaikaisesti, koska
ne ovat saman \komentom{fontsize}\-/ komennon argumentteja. Esimerkki:
\komentoi{fontsize}
\komentoi{selectfont}
\begin{koodilohkosis}
\fontsize{10bp}{12bp} \selectfont
\end{koodilohkosis}
\noindent
Ensimmäinen argumentti on fontin kokomitta ja toinen on rivikorkeus.
Mittayksiköt voivat olla mitä tahansa Texin mittoja, ja oletuksena
käytetään pt\-/pistemittaa, jos yksikköä ei ole mainittu. Komento
\komentom{selectfont} on mukana, koska vasta sen myötä matalan tason
fonttikomennot tulevat voimaan. Korkean tason fonttikomennot (luku
\ref{luku/fontit-korkea}) suorittavat sen automaattisesti.
Rivikorkeus on vähintään sama kuin fontin koko, mutta yleensä se
asetetaan pari pistettä suuremmaksi, jotta rivit eivät olisi liian
lähellä toisiaan. Esimerkissä \ref{esim/rivikorkeus} on kaksi erilaista
\komento{fontsize}\-/komentoa ja ladottu lopputulos.
\begin{esimerkki*}
\komentoi{fontsize}
\komentoi{selectfont}
\begin{koodilohko}
\fontsize{8bp}{11bp}\selectfont Tässä on pienehkö leipätekstin
fonttikoko ja suhteellisen suuri rivikorkeus. Pitkät rivit vaativat
suuremman rivikorkeuden kuin lyhyet rivit.
\fontsize{16bp}{17bp}\selectfont Tässä on melko suuri fontti ja
suhteellisen pieni rivikorkeus. Suuri fontti ja lyhyet rivit eivät
tarvitse kovin suurta rivikorkeutta.
\end{koodilohko}
\begin{tulos}
\fontsize{8bp}{11bp}\selectfont Tässä on pienehkö leipätekstin
fonttikoko ja suhteellisen suuri rivikorkeus. Pitkät rivit vaativat
suuremman rivikorkeuden kuin lyhyet rivit.
\fontsize{16bp}{17bp}\selectfont Tässä on melko suuri fontti ja
suhteellisen pieni rivikorkeus. Suuri fontti ja lyhyet rivit eivät
tarvitse kovin suurta rivikorkeutta.
\end{tulos}
\caption{Fontin koon ja rivikorkeuden asettaminen ja vaikutus}
\label{esim/rivikorkeus}
\end{esimerkki*}
Toinen tekstirivien peruslinjojen väliseen etäisyyteen vaikuttava asetus
on \komento{baselinestretch}. Se on desimaalilukukerroin, jolla nykyinen
rivikorkeus kerrotaan. Kerroin asetetaan helpoimmin komennolla
\komento{linespread}.\footnote{Toinen tapa: \koodi{\keno
renewcommand\{\keno baselinestretch\}\{kerroin\}}}
\komentoi{fontsize}
\komentoi{linespread}
\komentoi{selectfont}
\begin{koodilohkosis}
\fontsize{10bp}{12bp} \linespread{1.3} \selectfont
\end{koodilohkosis}
\noindent
Edellä oleva esimerkki asettaa fontin kooksi 10 pistettä ja
rivikorkeudeksi 12 pistettä. \komento{linespread}\-/ komennolla asetetun
kertoimen vuoksi rivien peruslinjojen väliseksi etäisyydeksi tulee
lopulta 1,3 kertaa 12 pistettä eli 15,6 pistettä. Ei ole väliä, kummassa
järjestyksessä \komento{fontsize}- ja \komento{linespread}\-/ komennot
annetaan. Asetukset tulevat voimaan vasta \komento{selectfont}\-/
komennon jälkeen.
Käytännössä \komento{linespread} sopii rivikorkeuden yleistason
hienosäätöön esimerkiksi dokumentin esittelyosassa. Tilannekohtainen
rivikorkeus on parasta asettaa \komento{fontsize}\-/komennolla.
\subsection{Kirjainperheen ja -leikkauksen valitseminen}
\label{luku/fontit-korkea}
Latexissa on joukko korkean tason fonttikomentoja, jotka on tarkoitettu
käytettäväksi sen jälkeen, kun matalan tason asetukset on kerran
määritetty. Taulukossa \ref{tlk/fonttimallikomennot} on komennot
kirjainperheen ja kirjainleikkauksen valintaan. Joka rivillä ensin
mainittu komento (esim. \komento{rmfamily}) vaikuttaa tekstiin, joka
tulee komennon jälkeen. Vaikutusalue rajoittuu nykyisen ympäristön (luku
\ref{luku/ympäristöt}) sisään tai aaltosulkeilla (luku
\ref{luku/aaltosulkeet}) rajatun alueen sisään. Rivillä toisena olevalle
komennolle (esim. \komentox{textrm}) annetaan yksi argumentti, ja
komennon vaikutus koskee vain argumenttina olevaa tekstiä.
\leijutlk{
\providecommand{\rivi}{}
\renewcommand{\rivi}[4]{%
\komento{#1} & \komento{#2}\komentoarg{\dots} & #3 & #4 \\}
\begin{tabular}{llll}
\toprule
\multicolumn{2}{l}{\ots{Komento}}
& \multicolumn{2}{l}{\ots{Merkitys}} \\
\midrule
\rivi {rmfamily} {textrm} {\rmfamily perhe}
{perus, yl. antiikva, serif, roman}
\rivi {sffamily} {textsf} {\sffamily perhe}
{groteski, sans serif, gothic}
\rivi {ttfamily} {texttt} {\ttfamily perhe}
{tasalevyinen, typewriter}
\midrule
\rivi {mdseries} {textmd} {\mdseries leikkaus}
{tavallinen vahvuus, medium}
\rivi {bfseries} {textbf} {\bfseries leikkaus}
{lihavoitu, bold}
\midrule
\rivi {upshape} {textup} {\upshape leikkaus}
{pystyasento, tavallinen}
\rivi {itshape} {textit} {\itshape leikkaus}
{kursiivi, italic}
\rivi {slshape} {textsl} {\slshape leikkaus}
{kalteva, slanted, oblique}
\rivi {scshape} {textsc} {\scshape leikkaus}
{pienversaali, kapiteeli, small caps}
\bottomrule
\end{tabular}
}{
\caption{Komennot kirjainperheen ja kirjainleikkauksen valintaan.
Perustila on \komento{rmfamily}, \komento{mdseries} ja
\komento{upshape}}
\label{tlk/fonttimallikomennot}
}
Taulukossa on ensimmäisillä riveillä kirjainperhekomennot (3\,kpl),
jotka vaihtavat koko perheen kaikkine leikkauksineen. Niiden jälkeen
tulevat kirjainleikkauskomennot, jotka valitsevat toisen leikkauksen
samasta perheestä. Kirjainleikkauksen asetukset jaetaan kahteen ryhmään:
\englantik{series} 'sarja' ja \englantik{shape} 'muoto'. Kummastakin
ryhmästä on valittuna aina yksi ominaisuus, eli samanaikaisesti voi olla
voimassa esimerkiksi \komento{bfseries} (\textbf{lihavoitu}) ja
\komento{itshape} (\textit{kursiivi}), ja tuloksena on \textbf{\itshape
lihavoitua kursiivia}.
Useimmissa fonteissa kursiivileikkaus (\komento{itshape}) ja kalteva
leikkaus (\komento{slshape}) tuottavat saman lopputuloksen, mutta
käsitteellisesti ne ovat eri asia. Kursiivi on aina muodoltaan erilainen
leikkaus, joka hieman mukailee käsialakirjoitusta, joskaan kirjaimia ei
ole sidottu toisiinsa. Sen sijaan kalteva leikkaus on tavallisen eli
pystyasentoisen leikkauksen kallistettu versio. Kallistus voi olla
kirjainmuotoilijan piirtämä leikkaus, tai kallistus on voitu toteuttaa
mekaanisesti. Kallistuksen voi tehdä myös Latexissa (luku
\ref{luku/fontit-venytys}).
Komennot fontin koon valintaan ovat taulukossa
\ref{tlk/fonttikokokomennot}. Taulukko kertoo myös, mitä fontin
pistekokoa (pt) mikäkin komento tarkoittaa oletuksena. Oletus riippuu
Latexin dokumenttiluokkien (luku \ref{luku/perusdokumenttiluokat})
fonttikokovalitsimista \koodi{10pt}, \koodi{11pt} ja \koodi{12pt}.
\leijutlk{
\begin{tabular}{lr@{}lr@{}lr@{}l}
\toprule
\ots{Komento}
& \multicolumn{2}{c}{\ots{10pt}}
& \multicolumn{2}{c}{\ots{11pt}}
& \multicolumn{2}{c}{\ots{12pt}} \\
\midrule
\komento{tiny} & 5 && 6 && 6 \\
\komento{scriptsize} & 7 && 8 && 8 \\
\komento{footnotesize} & 8 && 9 && 10 \\
\komento{small} & 9 && 10 && 10&,95 \\
\komento{normalsize} & 10 && 10&,95 & 12 \\
\komento{large} & 12 && 12 && 14&,4 \\
\komento{Large} & 14&,4 & 14&,4 & 17&,28 \\
\komento{LARGE} & 17&,28 & 17&,28 & 20&,74 \\
\komento{huge} & 20&,74 & 20&,74 & 24&,88 \\
\komento{Huge} & 24&,88 & 24&,88 & 24&,88 \\
\bottomrule
\end{tabular}
}{
\caption{Fonttien oletuspistekoot dokumenttiluokkien valitsimilla
\koodi{10pt}, \koodi{11pt} ja \koodi{12pt}}
\label{tlk/fonttikokokomennot}
}
\ymparistoi{rmfamily}
\ymparistoi{sffamily}
\ymparistoi{ttfamily}
\ymparistoi{mdseries}
\ymparistoi{bfseries}
\ymparistoi{upshape}
\ymparistoi{itshape}
\ymparistoi{slshape}
\ymparistoi{scshape}
\ymparistoi{tiny}
\ymparistoi{scriptsize}
\ymparistoi{footnotesize}
\ymparistoi{small}
\ymparistoi{normalsize}
\ymparistoi{large}
\ymparistoi{Large}
\ymparistoi{LARGE}
\ymparistoi{huge}
\ymparistoi{Huge}%
Kaikille korkean tason fonttikomennoille on olemassa myös samanniminen
ympäristönsä, esimerkiksi \ymparisto{rmfamily}, \ymparisto{bfseries},
\ymparisto{itshape} tai \ymparisto{small}. Seuraavassa esimerkissä on
kaksi fontteihin vaikuttavaa ympäristöä sisäkkäin.
\ymparistoi{footnotesize}
\ymparistoi{scshape}
\begin{koodilohkosis}
\begin{footnotesize}
\begin{scshape}
Tämä teksti on pientä pienversaalia.
\end{scshape}
\end{footnotesize}
\end{koodilohkosis}
\begin{tulossis}
\begin{footnotesize}
\begin{scshape}
Tämä teksti on pientä pienversaalia.
\end{scshape}
\end{footnotesize}
\end{tulossis}
\subsection{Fonttikoon määrittely suhteellisesti}
\label{luku/fontti-suhteellinen}
Dokumentin fonttien koot on helpointa määrittää siten, että asettaa
ensin peruskirjainperheen koon ja antaa muiden fonttien määräytyä
suhteessa siihen. Esimerkki \ref{esim/fontti-suhteellinen} selventää,
kuinka se tapahtuu. Alussa otetaan käyttöön dokumenttiluokka
\luokka{article} ja annetaan sille valitsin \koodi{10pt}, joka määrittää
fonttikooksi 10 pistettä. Se on dokumenttiluokan oletusasetus, jota ei
tarvitsisi edes kirjoittaa näkyviin. Esimerkin toisella rivillä otetaan
\paketti{fontspec}\-/paketti käyttöön.
Peruskirjainperheen (rivi~4) koko skaalataan 1,4\-/kertaiseksi, eli
pistekooksi tulee 1,4 kertaa 10 pistettä eli 14 pistettä (pt).
Normaalikokoinen peruskirjainperhe on ainoa, jonka pistekoko tiedetään.
Kaikkien muiden koot täytyisi selvittää laskemalla.
Groteski eli pääteviivaton kirjainperhe (rivi~5) ja tasalevyinen perhe
(rivi~6) skaalataan samankorkuiseksi kuin perusperhe. Vertailukohtana
ovat gemenat eli pienaakkoset (\koodi{MatchLowercase}). Näiden kahden
kirjainperheen pistekokoa ei tiedetä. Se ei välttämättä ole sama kuin
perusfontissa, koska fonttien pistekoko mitataan ylimmän ja alimman
kohdan välillä ja koska fonttien mittasuhteet ovat erilaisia.
\begin{esimerkki*}
\komentoi{documentclass}
\komentoi{usepackage}
\pakettii{fontspec}
\komentoi{setmainfont}
\komentoi{setsansfont}
\komentoi{setmonofont}
\komentoi{linespread}
\luokkai{article}
\begin{koodilohko}
\documentclass[10pt]{article} % 10pt on oletus
\usepackage{fontspec}
\setmainfont{TeX Gyre Termes}[Scale=1.4]
\setsansfont{TeX Gyre Heros} [Scale=MatchLowercase]
\setmonofont{TeX Gyre Cursor}[Scale=MatchLowercase]
\linespread{1.45}
\end{koodilohko}
\caption{Fonttikokojen määrittäminen suhteessa peruskirjainperheeseen}
\label{esim/fontti-suhteellinen}
\end{esimerkki*}
Viimeisellä rivillä oleva \komento{linespread}\-/ komento on tärkeä. Se
asettaa rivikorkeuden kertoimeksi 1,45. Kertoimen täytyy olla vähintään
yhtä suuri kuin peruskirjainperheen skaalauskerroin (1,4), jotta
rivivälit ovat riittävän suuret. Näiden asetusten jälkeen dokumentissa
käytetään korkeamman tason komentoja fonttien valintaan, esimerkiksi
fonttikoon valintakomentoja \komento{small}, \komento{normalsize},
\komento{large} (taulukko \ref{tlk/fonttikokokomennot}).
Edellä kuvatussa suhteellisessa kirjainperheiden koon määrittelyssä on
sellainen ongelma tai kummallisuus, että Latex koko ajan luulee, että
peruskirjainperhe on normaalikokoisena 10 pistettä (pt). Latexin matalan
tason fonttikomennot eivät tiedä kirjainperheen skaalauskertoimesta, ja
siksi esimerkiksi komentojen
\komentoi{fontsize}
\komentoi{selectfont}
\begin{koodilohkosis}
\fontsize{10bp}{12bp} \selectfont
\end{koodilohkosis}
\noindent
tuloksena ei todellisuudessa ole 10 pisteen (bp) fontti, vaan mukaan
lasketaan myös kirjainperheen skaalauskerroin. Tämän vuoksi
\komento{fontsize}\-/ komennon käyttö menee aika oudoksi. Argumenttina
annettu kokomitta ei pidä paikkaansa.
Jos korkean tason fonttikokokomentojen (taulukko
\ref{tlk/fonttikokokomennot}) lisäksi tarvitaan jotakin muuta kokoa,
voisi mahdollisesti \komento{fontsize}\-/ komennon sijasta käyttää
\paketti{fontspec}\-/paketin tarjoamaa komentoa ja tilanteeseen sopivaa
skaalauskerrointa esimerkiksi seuraavalla tavalla:
\komentomargin{addfontfeatures}
\komentoi{addfontfeatures}
\begin{koodilohkosis}
{\addfontfeatures{Scale=3.2} Poikkeuksellisen isoa tekstiä}
\end{koodilohkosis}
\noindent
Jos edellä mainitut kummallisuudet eivät häiritse eikä ole tarvetta
määritellä fontteja tarkasti tietyn pistekoon mukaiseksi, on
suhteellinen määrittelytapa todella helppo. Kaikki dokumentin fontit
määräytyvät perusfontin skaalauskertoimen kautta. Tämä tapa sopii hyvin
varsinkin dokumentin sisällön kirjoittamisvaiheeseen, jossa ehkä
halutaan vain nopeasti asettaa dokumentti suurin piirtein järkevän
näköiseksi. Myöhemmin voi määrittää koot tarkemmin niin sanotun
absoluuttisen menetelmän avulla, jota käsitellään seuraavassa
alaluvussa.
\subsection{Fonttikoon määrittely absoluuttisesti}
\label{luku/fontti-absoluuttinen}
Absoluuttinen fonttien koonmääritystapa tarkoittaa sitä, että koot
asetetaan tietyn kokoiseksi käyttämällä esimerkiksi pistemittoja ja että
kirjaimet myös päätyvät lopulliseen dokumenttiin juuri sen kokoisena.
Tämä tapa on myös teknisesti eheä, eli Latexin eri osat ovat samaa
mieltä siitä, minkäkokoisesta fontista on kyse. Näin ei ollut
suhteellisen tavan kanssa (luku \ref{luku/fontti-suhteellinen}).
Joskus oppilaitoksen, yhtiön tai muun julkaisijan ohjeissa määritellään
tarkasti, mitä fontteja käytetään ja mikä on leipätekstin ja otsikoiden
fonttikoko. Silloin tarvitaan tässä luvussa kuvattua tapaa fonttien
asettamiseen.
\begin{esimerkki*}
\komentoi{documentclass}
\komentoi{usepackage}
\pakettii{fontspec}
\komentoi{setmainfont}
\komentoi{setsansfont}
\komentoi{setmonofont}
\komentoi{newfontfamily}
\komentoi{linespread}
\komentoi{renewcommand}
\komentoi{footnotesize}
\komentoi{small}
\komentoi{normalsize}
\komentoi{large}
\komentoi{Large}
\begin{koodilohko}
\documentclass{article}
\usepackage{fontspec}
% Leipätekstiin samankokoiset fontit
\setmainfont{TeX Gyre Termes}
\setsansfont{TeX Gyre Heros} [Scale=MatchLowercase]
\setmonofont{TeX Gyre Cursor}[Scale=MatchLowercase]
% Muualle sans ja mono ilman skaalausta
\newfontfamily{\sffamilyabs}{TeX Gyre Heros}
\newfontfamily{\ttfamilyabs}{TeX Gyre Cursor}
\linespread{1} % ei välttämättä tarvita
% Kaikki tarvittavat fonttikoot ja komennot
\renewcommand{\footnotesize}{\fontsize{10bp}{12bp}\selectfont}
\renewcommand{\small} {\fontsize{12bp}{14bp}\selectfont}
\renewcommand{\normalsize} {\fontsize{14bp}{17bp}\selectfont}
\renewcommand{\large} {\fontsize{17bp}{19bp}\selectfont}
\renewcommand{\Large} {\fontsize{20bp}{22bp}\selectfont}
\normalsize % jotta tulee heti voimaan eikä vasta tekstiosassa
\end{koodilohko}
\caption{Fonttikokojen määrittäminen pistekoon avulla}
\label{esim/fontti-absoluuttinen}
\end{esimerkki*}
Esimerkistä \ref{esim/fontti-absoluuttinen} selviää perusajatus.
Peruskirjainperhe (rivi~5) otetaan käyttöön ilman skaalausta
(\koodi{Scale=1}), minkä vuoksi koon voi jatkossa asettaa täsmälleen
kohdalleen \komento{fontsize}\-/komennolla. Samaa ei tehdä groteskin
eikä tasalevyisen fontin kanssa (rivit 6--7), vaan käytetään skaalausta
\koodi{MatchLowercase}, jotta tekstikappaleessa kaikki kirjainperheet
näyttävät samankokoisilta. Tässä menetetään mahdollisuus määrittää
näiden kirjainperheiden koko täsmällisesti pistemitan avulla. Jos siihen
on tarvetta esimerkiksi otsikoissa, voidaan käyttää rivien 10--11
komentoja. Niillä luodaan uudet kirjainperheet, jotka ovat käytännössä
samoja mutta ilman skaalausta.
Uusien skaalaamattomien kirjainperheiden komentojen nimiksi on valittu
\komentox{sf\-fam\-i\-ly\-abs} ja \komentox{tt\-fam\-i\-ly\-abs} (vrt.
\komento{sffamily} ja \komento{ttfamily}, taulukko
\ref{tlk/fonttimallikomennot}), ja näillä komennoilla kirjainperheet
kytketään päälle. Jos esimerkiksi jonkin julkaisun vaatimuksiin kuuluu,
että otsikossa täytyy olla 20 pisteen lihavoitu TeX Gyre Heros
\=/kirjainleikkaus, voi esimerkissä \ref{esim/fontti-absoluuttinen}
olevien asetusten pohjalta antaa otsikon ulkoasun (luku
\ref{luku/otsikot-ulkoasu}) määrittelyn yhteydessä seuraavat komennot:
\komentoi{Large}
\komentoi{bfseries}
\begin{koodilohkosis}
\sffamilyabs\Large\bfseries
\end{koodilohkosis}
\noindent
Esimerkin \ref{esim/fontti-absoluuttinen} riveillä 16--20 määritellään
uudelleen Latexin korkean tason komennot, joilla fonttikoot asetetaan.
Oletusarvot tulevat dokumenttiluokasta (luku
\ref{luku/dokumenttiluokat}), mutta jos ne eivät ole sopivia, täytyy
vähintäänkin määritellä komento \komento{normalsize} mutta sen lisäksi
kaikki ne koot, joita omassa dokumentissa tarvitaan. Tässä esimerkissä
normaali koko asetetaan 14 pisteen kokoiseksi.
Jokaiselle fonttikoolle määritetään riveillä 16--20 myös oma
rivikorkeus, ja se on tarkoitus asettaa sopivaksi juuri kyseiselle
koolle. Rivikorkeuteen vaikuttaa myös kerroin \komento{baselinestretch},
joka asetetaan komennolla \komento{linespread}. Sitä ei välttämättä
tarvitse käyttää, koska kirjainperheitä ei ole skaalattu ja koska
rivikorkeus asetetaan aina \komento{fontsize}\-/komennolla.
\komento{linespread} on kuitenkin kätevä komento rivikorkeuden
säätämiseen yleisesti kaikkialla.
Fonttikokojen määrittelyn lopuksi rivillä 22 suoritetaan komento
\komento{normalsize}, jotta se tulee heti voimaan. Dokumentin
esittelyosassa voidaan käyttää fonttikokoon viittaavia mittayksiköitä
\emph{em} ja \emph{ex}, ja ne viittaavat nyt tähän kokoon.
\komento{normalsize}\-/ komento suoritetaan kyllä myöhemmin
automaattisesti dokumentin tekstiosan eli \ymparistox{document}\-/
ympäristön alussa.
Edellä kuvatun absoluuttisen koonmääritystavan etuna on se, että
kirjoittaja hallitsee fonttien kokoa ja rivikorkeuksia tarkasti ja että
julkaisuun saadaan juuri ne mitat, jotka halutaan tai vaaditaan. Tapa on
myös teknisesti eheä eli toimii Latexin sisäisen logiikan näkökulmasta
oikein. Haittana voi pitää sitä, että kaikki koot täytyy määritellä
erikseen.
\subsection{Fonttien oletusasetuksia}
\label{luku/fontit-oletusasetukset}
Oletuksena Latex\-/dokumentin peruskirjainperheessä
(\komentom{setmainfont}) ja pääteviivattomassa kirjainperheessä
(\komentom{setsansfont}) ovat päällä muun muassa seuraavat asetukset:%
\begin{koodilohkosis}
Ligatures={TeX, Common}
HyphenChar=-
\end{koodilohkosis}
\noindent
\koodi{TeX}\-/ligatuurit tarkoittavat lainausmerkkien ja ajatusviivojen
tuottamiseen tarkoitettuja Texin merkintätapoja kuten \koodi{''} ja
\koodi{\==}, joita käsitellään luvuissa \ref{luku/lainausmerkit} ja
\ref{luku/yhdys-ajatus-miinus}. Ne eivät ole varsinaisia luonnollisen
kielen eivätkä typografisia ligatuureja vaan kuuluvat ainoastaan
Tex\-/kielen merkintätapoihin. \koodi{Common}\-/ ligatuurit sen sijaan
ovat oikeita typografisia ligatuureja kuten fi, ff ja fl, ja niitä
käsitellään tarkemmin luvussa \ref{luku/typo-liga}. Molemmat edellä
mainitut ligatuurityypit saa pois päältä seuraavalla asetuksella:
\begin{koodilohkosis}
Ligatures={TeXReset, NoCommon}
\end{koodilohkosis}
\noindent
Valitsin \koodi{Hyphen\-Char} asettaa tavutusmerkin kyseiselle
kirjainperheelle. Oletuksena se on yhdysmerkki (\=/), mutta merkin
vaihtaminen toimii vain Xelatex\-/kääntäjän kanssa, ei esimerkiksi
Lualatexilla. Sen sijaan kaikilla kääntäjillä tavutuksen voi kytkeä
kirjainperheeltä pois, kun antaa arvoksi \koodi{None}. Tavutusta
käsitellään perusteellisemmin luvussa \ref{luku/tavutus}.
Tasalevyinen kirjainperhe (\komentom{setmonofont}) toimii oletuksena
hieman eri tavalla. Niissä muun muassa ei ole lainausmerkkien ja
ajatusviivojen kirjoittamiseen tarkoitetut Tex\-/ligatuurit päällä.
Oletusasetuksia ovat muun muassa seuraavat:
\begin{koodilohkosis}
Ligatures=Common
HyphenChar=None
\end{koodilohkosis}
\noindent
Yleensä tasalevyisestä kirjainperheestä kannattaa kytkeä typografiset
ligatuurit pois päältä asetuksella \koodi{Liga\-tures=\katk No\-Common}.
Tasalevyisen fontin ajatukseen nimenomaan kuuluu, että merkit ovat
samanlevyisiä eikä yhden merkin tilaan sovi sulloa useampaa kirjainta.
Oletuksena tavutus on kytketty pois päältä tasalevyiseltä
kirjainperheeltä, koska sitä käytetään tavallisesti tietokoneisiin
liittyvien koodien tai vastaavien ilmausten latomiseen, eikä niitä
haluta yleensä tavuttaa. Tavutuksen saa kuitenkin päälle Xelatexissa
määrittämällä tavutusmerkiksi esimerkiksi yhdysmerkin
(\koodi{Hyphen\-Char=-}) tai kaikilla kääntäjillä poistamalla
tasalevyisen kirjainperheen oletusasetukset ennen sen määrittelyä
seuraavasti:
\komentoi{defaultfontfeatures}
\komentoi{ttfamily}
\komentoi{setmonofont}
\begin{koodilohkosis}
\defaultfontfeatures[\ttfamily]{}
\setmonofont{…}[…]
\end{koodilohkosis}
\noindent
Komennolla \komentom{defaultfontfeatures} voi asettaa (joidenkin)
kirjainperheiden oletusasetukset, kun komennon suorittaa ennen
kirjainperheiden määrittelyä.
\komentoi{defaultfontfeatures}
\komentoi{rmfamily}
\komentoi{sffamily}
\begin{koodilohkosis}
\defaultfontfeatures[\rmfamily,\sffamily]{Ligatures={TeX, Common},
Numbers=Lowercase}
\end{koodilohkosis}
\noindent
Komennon valinnaisella argumentilla voi rajata, mitä kirjainperheitä
oletusasetukset koskevat. Valinnaiseen argumenttiin kirjoitetaan yksi
tai useampia pilkulla erotettuja komentoja, joilla kirjainperheet
kytketään päälle: \komento{rmfamily}, \komento{sffamily},
\komento{ttfamily} (taulukko \ref{tlk/fonttimallikomennot},
s.~\pageref{tlk/fonttimallikomennot}) tai komennolla
\komento{newfontfamily} määritelty fonttikomento (luku
\ref{luku/fontin-valinta}).
\subsection{Typografiset ligatuurit}
\label{luku/typo-liga}
Typografiset ligatuurit ovat fontissa olevia yhdistelmämerkkejä, joissa
on typografisista syistä yhdistetty kaksi tai useampia kirjaimia yhteen
merkkiin.%
\footnote{Typografisten ligatuurien lisäksi on olemassa myös
luonnollisten kielten ligatuureja, jotka muodostavat kieleen kuuluvan
kirjaimen, kuten æ norjan kielessä. Niillä on jokin luonnolliseen
kieleen liittyvä merkitys, eikä eri merkkejä ei ole yhdistetty
typografisista syistä.} Tällaisia ligatuureja käytettiin jo
metalliladonnassa, eli samassa metallikirjakkeessa saattoi olla enemmän
kuin yksi kirjain.
Typografisten ligatuurien tarkoituksena on tuottaa tyylikkäämpi
lopputulos kuin saataisiin erillisten kirjainten avulla. Syynä on
esimerkiksi se, että erilliset peräkkäiset kirjaimet eivät ole aina
keskenään yhteensopivia. Kirjainten välistys voi olla ongelmallista:
sopivalle etäisyydelle asetettaessa kirjainten osat voivat mennä
rumannäköisesti päällekkäin. Riippuu fontista, mitkä ligatuurit ovat
tarpeellisia ja mitkä ligatuurimerkit on ylipäätään toteutettu fontin
merkistöön. Tavallisia antiikvojen ligatuureja ovat fi, ff, ffi, fl,
ffl, fj ja ffj, mutta jotkin fontit sisältävät muitakin. Kuvaan
\ref{kuva/ligatuurit} on koottu esimerkkejä.
\leijukuva{
\erikoisfontti
\addfontfeatures{Scale=3.4, Ligatures={Common, Historic,
Discretionary}}
fi ff ffi fl ffl fj ffj Th st ct
}{
\caption{Tavalliset f\=/alkuiset typografiset ligatuurit, vähän
harvinaisempi Th sekä historialliset ligatuurit st ja ct}
\label{kuva/ligatuurit}
}
Latex hoitaa tavallisten typografisten ligatuurien latomisen
automaattisesti, eli lähdedokumenttiin ei kannata kirjoittaa
Unicode\-/merkistön typografisia ligatuurimerkkejä (esimerkiksi
\uctunnus{u+fb01 latin small ligature fi}) vaan ihan tavallisia
erillisiä kirjaimia. \englanti{Open Type} \=/fontin suunnittelija on
päättänyt meidän puolestamme, mitkä kirjainyhdistelmät on parasta latoa
ligatuurin avulla, ja oletusasetuksilla Latex noudattaa niitä ohjeita.
Jos kuitenkin yksittäisen ligatuurin muodostumisen haluaa estää, voi
kirjainten väliin kirjoittaa komennon \komentom{textcompwordmark}, joka
tekee näkymättömän, juuri tähän tarkoitukseen olevan merkin
\uctunnus{u+200c zero width non-joiner}.
\komentoi{textcompwordmark}
\begin{koodilohkosis}
fi f\textcompwordmark i
\end{koodilohkosis}
\begin{tulossis}
fi f\textcompwordmark i
\end{tulossis}
\noindent
Mikäli tavallisia ligatuureja ei halua käyttöön lainkaan, on parasta
valita jo kirjainperheen tai \=/leikkauksen käyttöönotossa asetus
\koodi{Liga\-tures=\katk No\-Com\-mon}. Väliaikaisesti fontin asetuksiin
voi vaikuttaa komennolla \komentom{addfontfeatures}, joka sekin on
\paketti{fontspec}\-/pakettiin sisältyvä komento.
\komentoi{addfontfeatures}
\begin{koodilohkosis}
{\addfontfeatures{Ligatures=NoCommon} fi fl}
\end{koodilohkosis}
\noindent
Tavallisten ligatuurien lisäksi \englanti{Open Type} \=/fontit voivat
sisältää myös harvinaisempia ligatuureja, jotka täytyy erikseen kytkeä
päälle. Niiden tarkoituksena on esimerkiksi erityinen koristeellisuus
tai historiallisen kirjoitustavan jäljittely. Harvinaisia ligatuureja ei
ole tarkoitus käyttää joka tilanteessa vaan ainoastaan erityisestä
syystä. Kuvassa \ref{kuva/ligatuurit} ja tässäkin tekstikappaleessa
olevat {%
\newcommand{\hlig}[1]{{\erikoisfontti
\addfontfeatures{Ligatures=Historic}#1}}%
\hlig{st}- ja \hlig{ct}\-/ligatuurit%
} on saatu fontin asetuksella \koodi{Liga\-tures=\katk His\-toric}.
Joissakin fonteissa sama tehdään asetuksella \koodi{Liga\-tures=\katk
Discretionary}. Useitakin ligatuurityyppejä voi kytkeä päälle
samanaikaisesti:
\begin{koodilohkosis}
Ligatures={TeX, Required, Common, Historic, Discretionary,
Contextual}
\end{koodilohkosis}
\noindent
Tuskin mikään fontti sisältää kaikkia ligatuurityyppejä, eikä se ole
tarkoituskaan. Jotkin ligatuurit kuuluvat vain tiettyyn typografian
aikakauteen tai kirjaintyyliin. Open Type \=/fontin ominaisuuksia voi
selvittää käyttöjärjestelmän komentotulkissa komennolla \koodi{otfinfo}.
Komennon argumentiksi annetaan muun muassa fonttitiedoston nimi.
\subsection{Numeroiden muoto}
\label{luku/fontit-numerot}
Varsinkin kirjatypografiassa on tavallista käyttää pääasiassa
gemenanumeroita ({\gemenanum 1967}) eikä versaalinumeroita
({\versaalinum 1967}), koska gemenanumerot sopivat leipätekstin
gemenakirjainten kanssa paremmin yhteen. Versaalinumerot puolestaan
erottuvat paremmin ja sopivat esimerkiksi taulukoihin, joissa on paljon
lukuja. Näihin asetuksiin vaikutetaan fontin asetuksella
\koodi{Numbers}. Tosin kaikissa fonteissa ei gemenanumeroita edes ole.
\begin{koodilohkosis}
Numbers=Lowercase % gemenanumerot
Numbers=Uppercase % versaalinumerot (oletus)
\end{koodilohkosis}
\noindent
Jotkin koodi\-/ilmaukset sisältävät versaalikirjaimia ja numeroita
sekaisin. Gemenanumerot eivät kuitenkaan sovi yhteen versaalikirjainten
kanssa, koska merkkien kokoero on häiritsevän suuri. Ei siis näin:
RJ45, R2D2. Gemenanumeroiden kanssa täytyy käyttää pienversaalia eli
kapiteelia: \textsc{rj45}, \textsc{r2d2}. Toinen vaihtoehto on käyttää
pelkästään versaaleja: {\versaalinum RJ45, R2D2}.
Silloin kun käytetään numeroita teknisten koodien ilmaisemiseen, voi
olla tarpeen merkitä numero nolla poikkiviivalla
({\addfontfeatures{Numbers={Uppercase, SlashedZero}} 0}), jottei se
sekoitu O\=/kirjaimeen. Nollaan saadaan poikkiviiva seuraavalla
asetuksella, jos vain fontissa on tämä ominaisuus:
\begin{koodilohkosis}
Numbers=SlashedZero
\end{koodilohkosis}
\noindent
Kun numeroita ladotaan taulukkoon, voidaan haluta käyttää tasalevyisiä
numeroita, jotta ne sijoittuvat allekkain samalle linjalle. Joissakin
fonteissa on tarjolla tavallisten vaihtelevan levyisten numeroiden
lisäksi myös tasalevyiset. Numeroiden leveyteen vaikutetaan seuraavilla
asetuksilla:
\begin{koodilohkosis}
Numbers=Monospaced % tasalevyiset numerot
Numbers=Proportional % vaihtelevan levyiset numerot (oletus)
\end{koodilohkosis}
\subsection{Välistykset: harvennus ja tiivistys}
\label{luku/fontit-välistys}
Fontin kanssa käytettäviä sanavälejä voi säätää \koodim{Word\-Space}\-/
valitsimella, jonka arvoksi annetaan desimaalilukukerroin eli suhdeluku
normaaliin verrattuna. Arvona voi olla myös kolme eri kerrointa, jolloin
mukana on lisäksi sanavälin venymisen rajat. Tämä asetus on tehtävä
kirjainperheen tai \=/leikkauksen määrittelyn yhteydessä, eli se ei
toimi esimerkiksi \komento{addfontfeatures}\-/ komennon kanssa. Katso
tietoa sanaväleistä myös luvusta \ref{luku/sanaväli} tai
tekstikappaleiden latomista käsittelevästä luvusta \ref{luku/kappale}.
\noclub[2]
Fonttiasetusten valitsimella \koodim{Letter\-Space} säädetään merkkien
välistystä eli niiden välistä tyhjää tilaa. Arvoksi annetaan
positiivinen tai negatiivinen prosenttiluku, joka ilmaisee alkuperäiseen
lisättävän osuuden. Asetus \koodi{Letter\-Space=\katk 6} tuottaa siis
kuusi prosenttia leveämmät merkkien välit. Välistyksen tiivistäminen ja
harvennuksen typografiaa käsitellään luvussa
\ref{luku/korostus-harvennus}, mutta seuraavassa on esimerkki, kuinka ne
teknisesti toteutetaan:
\komentoi{scshape}
\komentoi{addfontfeatures}
\begin{koodilohkosis}
\scshape {\addfontfeatures{LetterSpace=-2} tiivistys} \\
normaali \\ {\addfontfeatures{LetterSpace=6} harvennus}
\end{koodilohkosis}
\begin{tulossis}
\scshape {\addfontfeatures{LetterSpace=-2} tiivistys} \\
normaali \\ {\addfontfeatures{LetterSpace=6} harvennus}
\end{tulossis}
\noindent
Jos esimerkiksi harvennuksen haluaa automaattisesti mukaan
kirjainperheeseen kuuluvaan pienversaaliin, käytetään valitsinta
\koodi{Small\-Caps\-Features}:
\komentoi{setmainfont}
\begin{koodilohkosis}
\setmainfont{…}[SmallCapsFeatures={LetterSpace=6}]
\end{koodilohkosis}
\subsection{Keinotekoinen venytys, lihavointi ja kallistus}
\label{luku/fontit-venytys}
Valitsimella \koodim{Fake\-Stretch} voi venyttää tai kutistaa merkkejä
leveyssuunnassa. Arvoksi annetaan desimaalilukukerroin, joka on
suhdeluku alkuperäiseen leveyteen nähden. Seuraavassa havainnollistava
esimerkki:
\komentoi{addfontfeatures}
\begin{koodilohkosis}
esimerkki \\
{\addfontfeatures{FakeStretch=1.3} esimerkki}
\end{koodilohkosis}
\begin{tulossis}
esimerkki \\
{\addfontfeatures{FakeStretch=1.3} esimerkki}
\end{tulossis}
\noindent
Kirjainleikkauksen leventäminen tekee tekstistä samalla lihavampaa,
koska kirjainten viivat tulevat vahvemmiksi leveyssuunnassa.
Korkeussuunnassa vahvuus säilyy ennallaan, joten kirjainten
viivakontrasti muuttuu. Kirjainleikkauksen kutistaminen vaikuttaa
lihavuuteen päinvastaisesti. Tällainen mekaaninen fontin
''korjaileminen'' ei välttämättä tuota typografisesti kovin hyvää jälkeä
mutta voi sopia lievästi käytettynä esimerkiksi otsikoihin. Tämän oppaan
tasalevyistä kirjainperhettä on hieman kutistettu, koska alkuperäinen on
kohtuuttoman leveä ({\ttfamily\addfontfeatures{FakeStretch=1}
esimerkki}) verrattuna muiden kirjainperheiden leveyteen.
Jos kirjainperheeseen ei sisälly sopivaa lihavoitua tai kaltevaa
leikkausta, voi sellaiset koettaa tehdä myös keinotekoisesti
\koodim{Fake\-Bold}- ja \koodim{Fake\-Slant}\-/ valitsimien avulla.
Niille annetaan arvoksi desimaalilukukerroin. Valitettavasti
\koodi{Fake\-Bold} toimii vain Xelatex\-/kääntäjän kanssa.
\komentoi{addfontfeatures}
\begin{koodilohkosis}
pysty {\addfontfeatures{FakeSlant=.2} kalteva}
\end{koodilohkosis}
\begin{tulossis}
pysty {\addfontfeatures{FakeSlant=.2} kalteva}
\end{tulossis}
\noindent
Mekaanisen lihavoinnin tai kallistuksen saa osaksi kirjainperhettä, kun
asettaa kirjainperheen määrittelyn yhteydessä halutun kirjainleikkauksen
valitsimella \koodi{Bold\-Font} tai \koodi{Slanted\-Font} ja määrittää
niille erityisiä ominaisuuksia valitsimella \koodi{Bold\-Fea\-tures} tai
\koodi{Slanted\-Fea\-tures}. Seuraava esimerkki asettaa dokumentin
perusfontille kaltevan leikkauksen. Tämän jälkeen komento
\komento{slshape} valitsee \textsl{kaltevan} leikkauksen, joka on siis
eri asia kuin \textit{kursiivi} (\komento{itshape}).
\komentoi{setmainfont}
\begin{koodilohkosis}
\setmainfont{…}[
SlantedFont={…}, % tähän pystyasentoinen leikkaus
SlantedFeatures={FakeSlant=.2}]
\end{koodilohkosis}
\subsection{Keinotekoinen pienversaali}
\label{luku/fontit-keinopienversaali}
Moniin fontteihin ei sisälly lainkaan pienversaalia. Jos sellaisen silti
haluaa omaan korostusvalikoimaan, voi yrittää pienentää
versaalikirjaimet sopivaan kokoon. Seuraavassa esimerkissä versaaleja
ensin pienennetään ja sitten venytetään hieman leveyssuunnassa. Lisäksi
merkkivälejä harvennetaan lievästi. Käytännössä versaaleja pienentämällä
ei saada tyylikästä pienversaalia aikaan, koska merkkien viivoista tulee
liian ohuita.
\komentoi{textsc}
\komentoi{addfontfeatures}
\begin{koodilohkosis}
\textsc{pienversaali} oikea \\
{\addfontfeatures{ScaleAgain=.68, FakeStretch=1.17, LetterSpace=4}
PIENVERSAALI} keinotekoinen
\end{koodilohkosis}
\begin{tulossis}
\textsc{pienversaali} oikea \\
{\addfontfeatures{ScaleAgain=.68, FakeStretch=1.17, LetterSpace=4}
PIENVERSAALI} keinotekoinen
\end{tulossis}
\subsection{Matematiikkatilan fontti}
\label{luku/matematiikka-fontit}
Latexin matematiikkatilan (luku \ref{luku/matematiikka}) fontti
asetetaan eri tavalla kuin normaalin tilan eli tekstitilan fontit.
Matematiikkatilaa varten tarvitaan paketti \pakettictan{unicode-math},
joka täytyy ladata muiden matematiikkaan tai fontteihin liittyvien
pakettien jälkeen. Paketti tuo komennon \komento{setmathfont}, joka on
matematiikkatilan vastine luvussa \ref{luku/fontin-valinta} esitellyille
fontinmäärittelykomennoille \komento{setmainfont}, \komento{setsansfont}
ja \komento{setmonofont}.
\pakettii{fontspec}
\pakettii{unicode-math}
\komentoi{setmainfont}
\komentoi{setmathfont}
\begin{koodilohkosis}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmainfont{TeX Gyre Pagella} % tekstitilan perusfontti
\setmathfont{TeX Gyre Pagella Math} % matematiikkatilan fontti
\end{koodilohkosis}
\leijutlk{
\providecommand{\rivi}{}
\renewcommand{\rivi}[3]{\koodi{#1} & \koodi{#2} & \koodi{#3} \\}
\begin{tabular}{lll}
\toprule
\ots{Yleistyyli} & \ots{Lihavointi} & \ots{Pääteviivaton} \\
\midrule
\rivi{math-style=ISO} {bold-style=ISO} {sans-style=upright}
\rivi{math-style=TeX} {bold-style=TeX} {sans-style=italic}
\rivi{math-style=french} {bold-style=upright}{sans-style=literal}
\rivi{math-style=upright}{}{}
\rivi{math-style=literal}{}{}
\bottomrule
\end{tabular}
}{
\caption{Matematiikkatilan tyyliasetuksia (\paketti{unicode-math}\-/
paketti)}
\label{tlk/unicode-math-style}
}
\noindent
Paketin \paketti{unicode-math} lataamisen yhteydessä voi
\komento{usepackage}\-/ komennon valinnaisen argumentin avulla vaikuttaa
matematiikkatilassa käytettyihin kirjainleikkauksiin. Argumenttiin
sopivia valitsimia ovat \koodi{math-style}, \koodi{bold-style} ja
\koodi{sans-style}, ja niille sopivia arvoja on koottu taulukkoon
\ref{tlk/unicode-math-style}. Asetukset vaikuttavat esimerkiksi siihen,
mitä kirjainleikkausta käytetään, kun ladotaan matematiikkatilan
latinalaisia tai kreikkalaisia kirjaimia.
\begin{koodilohkosis}
\usepackage[math-style=ISO]{unicode-math}
\end{koodilohkosis}
\noindent
Matematiikkatilan fontiksi ei kelpaa mikä tahansa, koska tarvittavien
matemaattisten symbolien täytyy sisältyä \englanti{Open Type} \=/fontin
merkkivalikoimaan. Tukea ei ehkä ole, jos sitä ei fontille erikseen
mainosteta. Fonttitiedoston ominaisuuksia voi tutkia esimerkiksi
käyttöjärjestelmän komentotulkissa \koodi{otfinfo}\-/ komennolla:
\begin{koodilohkosis}
otfinfo -s texgyrepagella-math.otf
\end{koodilohkosis}
\noindent
Tex Live \=/jakelun mukana tulee muutama \englanti{Open Type}
\=/kirjainperhe, joihin kuuluvat myös matematiikan symbolit. Tällaisia
kirjainperheitä ovat ainakin Libertinus sekä eri TeX Gyre \-/perheet.
Koko Libertinus\-/ perheen voi ottaa käyttöön hyvin yksinkertaisesti:
ladataan vain paketti \paketti{libertinus}, joka määrittää kerralla
antiikvan, groteskin, tasalevyisen ja matematiikkafontin. Myös
tavallisten fontinmäärityskomentojen käyttö on mahdollista.
\begin{esimerkki*}
\komentoi{setmathfont}
\begin{koodilohko}
\setmathfont{Libertinus Math Regular}
\setmathfont{TeX Gyre Bonum Math}
\setmathfont{TeX Gyre Dejavu Math}
\setmathfont{TeX Gyre Pagella Math}
\setmathfont{TeX Gyre Schola Math}
\setmathfont{TeX Gyre Termes Math}
\end{koodilohko}
\caption{Matematiikan symboleja sisältäviä vapaita fontteja. Komento
\komento{setmathfont} sisältyy pakettiin \paketti{unicode-math}}
\label{esim/matematiikka-fontteja}
\end{esimerkki*}
Esimerkissä \ref{esim/matematiikka-fontteja} on komentoja joidenkin
matematiikkafonttien lataamiseen. Lähes aina on järkevää käyttää
asetusta \koodi{Scale=\katk MatchLowercase}, joka asettaa fontin
samankokoiseksi kuin vastaava peruskirjainperhe.
\begin{koodilohkosis}
\setmathfont{TeX Gyre Pagella Math}[Scale=MatchLowercase]
\end{koodilohkosis}
\section{Kieli}
\label{luku/kieliasetukset}
Melkein aina Latex\-/dokumenttiin täytyy ladata kielipaketti ja sen
mukana asetukset tiettyjä kieliä varten. Kieliasetukset sisältävät
ainakin tavutussäännöt (luku \ref{luku/tavutus}) sekä kielelle
mukautettuja nimiä dokumentin eri osille. Esimerkiksi sisällysluettelon
ja kirjallisuusluettelon otsikot tulevat kieliasetuksista, samoin
leijuvien taulukoiden ja kuvien nimet ''\tablename'' ja ''\figurename''.
Myös muita asetuksia tai komentoja saattaa tulla kieliasetusten mukana,
mutta ne vaihtelevat eri kielissä.
Kielipaketteja on kaksi -- \pakettictan{babel} ja
\pakettictan{polyglossia} \==, ja kirjoittajan täytyy valita niistä
jompikumpi. Pakettien historia ja kehitys on suunnilleen
seuraavanlainen: \paketti{babel} on paljon vanhempi, ja monet vanhat
oppaat ja esimerkit käsittelevät pelkästään sitä. Kun Latex siirtyi
Unicode\-/aikaan Xelatex\-/kääntäjän ja \paketti{fontspec}\-/paketin
myötä, \paketti{babel} ei pysynyt kehityksessä mukana. Syntyi
\paketti{polyglossia}, joka hallitsee Unicoden sekä muitakin kuin
latinalaiseen kirjaimistoon perustuvia kieliä ja kirjoitusjärjestelmiä.
\paketti{babel}\-/paketin kehitys ei kuitenkaan pysähtynyt, ja nykyään
myös se toimii Unicode\-/merkistön kanssa ainakin latinalaiseen
kirjaimistoon perustuvien kielten osalta.
Suomen kielen kannalta on aika lailla sama, kumpaa kielipakettia
käyttää. Meidän näkökulmastamme ''erikoisemmat'' kielet ja
kirjoitusjärjestelmät voivat vaatia \paketti{polyglossia}\-/paketin sekä
Lualatex\-/{} tai Xelatex\-/kääntäjän käyttöä. \paketti{babel} sisältää
enemmän ominaisuuksia, esimerkiksi omien komentojen ja muiden viritysten
tekemiseen; \paketti{polyglossia} on yksinkertaisempi paketti, jonka
kehitys tuntuisi keskittyvän vain ydintehtävään.
Seuraavissa alaluvuissa käsitellään kummankin kielipaketin tärkeimmät
toiminnot eli kielen valintaan liittyvät asiat. Yleinen ajatus on se,
että Latex\-/dokumentin esittelyosassa ladataan kielipaketti ja
määritellään dokumentin pääasiallinen kieli ja mahdolliset muut kielet.
Jos dokumentin tekstiosa sisältää muita kuin pääasiallista kieltä,
täytyy käyttää erityisiä komentoja tai ympäristöjä, joilla kerrotaan
Latexille, mistä kielestä on kyse.
\subsection{Polyglossia}
Kielipaketti \paketti{polyglossia} on tyypillinen valinta, jos halutaan
varmistaa, että Unicode\-/merkistöä (\textsc{utf\=/8}\-/merkistökoodaus)
voi käyttää vapaasti. Samalla se tarkoittaa, että kääntäjän on oltava
Lualatex tai Xelatex. Kielipaketin käyttöönotto dokumentin
esittelyosassa näyttää seuraavanlaiselta:
\komentoi{usepackage}
\komentoi{setdefaultlanguage}
\komentoi{setotherlanguage}
\pakettii{polyglossia}
\begin{koodilohkosis}
\usepackage{polyglossia}
\setdefaultlanguage{finnish}
\setotherlanguage{english}
\setotherlanguage{greek}
\end{koodilohkosis}
\noindent
Eri kielillä on erilaisia valinnaisia asetuksia, jotka täytyy selvittää
\paketti{polyglossia}\-/paketin ohjekirjasta. Asetukset liittyvät
esimerkiksi kielen kirjoitusjärjestelmän alueelliseen tai
historialliseen vaihteluun. Yleinen moniin kieliin sopiva valitsin on
\koodi{babel\-short\-hands}, joka lisää erilaisia, lähinnä tavutukseen
liittyviä komentoja (luku \ref{luku/tavutus}). Suomen kielen voisi siis
ottaa käyttöön myös seuraavalla tavalla:
\komentoi{setdefaultlanguage}
\begin{koodilohkosis}
\setdefaultlanguage[babelshorthands]{finnish}
\end{koodilohkosis}
\noindent
Dokumentin tekstiosa käyttää kieltä, joka määriteltiin komennolla
\komento{setdefaultlanguage}. Muita dokumentin esittelyosassa
määriteltyjä kieliä voi käyttää väliaikaisesti komennolla, joka alkaa
kirjaimilla \komentox{text} ja jatkuu kielen nimellä, esimerkiksi
\komento{textenglish} tai \komento{textgreek}.
\komentoi{textenglish}
\begin{koodilohkosis}
Englannin sana \textenglish{shorthand} tarkoittaa 'pikakirjoitusta'.
\end{koodilohkosis}
\noindent
Toinen vaihtoehto on käyttää kielen nimen mukaista ympäristöä:
\begin{koodilohkosis}
\begin{greek}
...
\end{greek}
\end{koodilohkosis}
\noindent
Tietynkieliseksi merkitty teksti voi näyttää ladotussa dokumentissa ihan
samalta kuin muukin teksti. Tavutuksessa kuitenkin käytetään eri
kielissä eri asetuksia, ja joissakin kielissä voi olla myös pieniä
typografisia yksityiskohtia eri tavalla.
Kirjoittaja voi määritellä eri kielille eri fontin. Oletuksena käytetään
peruskirjainperhettä, mikä samalla tarkoittaa, että kielen vaihtuessa
pois oletuskielestä suoritetaan \komento{rmfamily}\-/komento (taulukko
\ref{tlk/fonttimallikomennot}, s.~\pageref{tlk/fonttimallikomennot}).
Tätä havainnollistaa seuraava esimerkki, jossa \komento{textenglish}\-/
komennon vaikutuksen ajaksi tulee käyttöön perusfontti
\komento{rmfamily} eikä ympärillä oleva pääteviivaton
\komento{sffamily}.
\komentoi{sffamily}
\komentoi{textenglish}
\begin{koodilohkosis}
\sffamily
pääteviivaton \textenglish{main font} pääteviivaton
\end{koodilohkosis}
\begin{tulossis}
\sffamily pääteviivaton {\rmfamily main font} pääteviivaton
\end{tulossis}
\noindent
Erikielisten tekstikatkelmien fonttiin voi vaikuttaa määrittelemällä
komennon, jonka nimessä on ensin kielen nimi ja lopuksi sana
\koodi{font}, esimerkiksi \komento{englishfont} tai \komento{greekfont}.
Komennon määritelmään kirjoitetaan yleensä kirjainperheeseen tai
\=/leikkaukseen vaikuttavia komentoja.
Seuraavassa esimerkissä \komento{englishfont}\-/ komento määritellään
tyhjäksi, mikä saa aikaan sen, että englanninkieliseksi merkitty teksti
ei muuta fonttia millään tavalla vaan käytetään samaa kirjainperhettä
kuin muutenkin siinä kohdassa dokumenttia.
\begin{koodilohkosis}
\newcommand{\englishfont}{}
\end{koodilohkosis}
\noindent
Mikäli haluaa jollekin kielelle kokonaan eri kirjainperheen, kannattaa
käyttää \paketti{fontspec}\-/paketin komentoa \komento{newfontfamily}
(luku \ref{luku/fontin-valinta}) ja määritellä kielen fonttikomennot
sillä. Tällainen on tarpeen ainakin silloin, kun dokumentin
peruskirjainperhe ei sisällä kyseisen kielen kirjaimia.
\komentoi{newfontfamily}
\begin{koodilohkosis}
\newfontfamily{\greekfont}{GFS Artemisia}[Scale=MatchLowercase]
\end{koodilohkosis}
% Seuraat eivät tunnu toimivan:
% \newfontfamily{\greekfontsf}{GFS Neohellenic} [Scale=MatchLowercase]
% \newfontfamily{\greekfonttt}{DejaVu Sans Mono}[Scale=MatchLowercase]
%
% Edellisen esimerkin \koodi{fontsf}\-/loppuinen komento tarkoittaa
% pääteviivatonta kirjainperhettä ja \koodi{fonttt}\-/loppuinen
% tasalevyistä perhettä.
% \textenglish{englantia \textsf{englantia} englantia}
\subsection{Babel}
Vanha kunnon \paketti{babel} toimii useiden eri Latex\-/kääntäjien
kanssa. Dokumentit kirjoitettiin ennen kahdeksanbittisillä merkistöillä
(kuten \textsc{iso-8859\=/1}), jotka sisältävät vain reilut kaksisataa
merkkiä%
\footnote{Teknisesti kahdeksanbittiset merkistöt sisältävät
2\textsuperscript8 eli 256 merkkipaikkaa, mutta osa merkeistä on
teknisiä ohjauskoodeja, jotka eivät liity ihmiskieliin.} %
ja soveltuvat rajallisen kielijoukon kirjoittamiseen. Nykyään
\paketti{babel} toimii myös Unicode\-/merkistön ja \textsc{utf\=/8}\-/
merkistökoodauksen kanssa ainakin latinalaiseen kirjaimistoon
perustuvien kielten osalta.
Kieliasetukset otetaan käyttöön \paketti{babel}\-/paketissa seuraavan
esimerkin tavoin. Paketin valinnaiseen argumenttiin kirjoitetaan
ladattavien kielten nimet ja viimeisenä mainitaan se kieli, joka
halutaan pääasialliseksi kieleksi.
\komentoi{usepackage}
\pakettii{babel}
\begin{koodilohkosis}
\usepackage[english,greek,finnish]{babel}
\end{koodilohkosis}
\noindent
Pääasiallisen kielen voi valita myös \koodi{main}\-/valitsimella:
\komentoi{usepackage}
\pakettii{babel}
\begin{koodilohkosis}
\usepackage[main=finnish,english,greek]{babel}
\end{koodilohkosis}
\noindent
Dokumentin tekstissä yksittäiset vieraskieliset sanat tai ilmaukset
merkitään komennolla \komento{foreignlanguage}. Komennon ensimmäinen
argumentti on kielen nimi ja toinen on sillä kielellä ladottava teksti.
\komentoi{foreignlanguage}
\begin{koodilohkosis}
Englannin sana \foreignlanguage{english}{shorthand} tarkoittaa
'pikakirjoitusta'.
\end{koodilohkosis}
\noindent
Komennon sijasta voi käyttää ympäristöä \ymparisto{otherlanguage}, joka
vaihtaa kieltä ympäristön ajaksi.
\ymparistoi{otherlanguage}
\begin{koodilohkosis}
\begin{otherlanguage}{greek}
...
\end{otherlanguage}
\end{koodilohkosis}
\noindent
Kielen vaihtamista voi helpottaa \komento{babeltags}\-/ komennolla, joka
määrittelee lyhempiä komentoja ja ympäristöjä kielen vaihtamiseen.
Komentoa käytetään seuraavan esimerkin tavoin. Sen jälkeen voi käyttää
englanninkielisen tekstin merkitsemiseen komentoa \komentox{text\-eng}
tai ympäristöä \ymparistox{eng}.
\komentoi{babeltags}
\begin{koodilohkosis}
\babeltags{eng = english}
\end{koodilohkosis}
\noindent
Oletuskieli voidaan vaihtaa kesken dokumentin komennolla
\komento{selectlanguage}. Komennon argumentiksi annetaan kielen nimi,
esimerkiksi seuraavalla tavalla:
\komentoi{selectlanguage}
\begin{koodilohkosis}
\selectlanguage{english}
\end{koodilohkosis}
\noindent
Eri kielille on mahdollista asettaa eri kirjainperheet
\komento{babelfont}\-/ komennolla. Tämä komento korvaa
\paketti{fontspec}\-/ paketin fontinvalintakomennot (luku
\ref{luku/fontin-valinta}) ja muodostaa uuden korkeamman tason komennon,
joka sisältää myös kielen. Jos siis käyttää komentoa
\komento{babelfont}, ei saa samanaikaisesti käyttää komentoja
\komento{setmainfont}, \komento{setsansfont} eikä \komento{setmonofont}.
Oman dokumentin kirjainperheet voitaisiin määrittää
\komento{babelfont}\-/ komennolla esimerkin \ref{esim/babelfont} tavoin.
Ensin esimerkissä määritellään peruskirjainperhe (\koodi{rm}),
pääteviivaton perhe (\koodi{sf}) ja tasalevyinen perhe (\koodi{tt}). Sen
jälkeen määritellään kreikan kielessä (\koodi{greek}) käytettävä
peruskirjainperhe ja pääteviivaton perhe.
\begin{esimerkki*}
\komentoi{babelfont}
\begin{koodilohko}
\babelfont{rm}{TeX Gyre Termes}
\babelfont{sf}[Scale=MatchLowercase]{TeX Gyre Heros}
\babelfont{tt}[Scale=MatchLowercase]{TeX Gyre Cursor}
\babelfont[greek]{rm}[Scale=MatchLowercase]{GFS Artemisia}
\babelfont[greek]{sf}[Scale=MatchLowercase]{GFS Neohellenic}
\end{koodilohko}
\caption{\komento{babelfont}\-/komennon käyttö dokumentin
kirjainperheiden valintaan ja kielikohtaisten kirjainperheiden
valintaan}
\label{esim/babelfont}
\end{esimerkki*}
Esimerkissä ennen fontin nimeä (esim. TeX Gyre Heros) oleva valinnainen
argumentti on sama kuin \paketti{fontspec}\-/paketin
fontinvalintakomennoissa. Sen avulla määritellään kyseisen
kirjainperheen asetuksia. Lisätietoa voi lukea fontteja käsittelevästä
luvusta \ref{luku/kirjaintyypit} ja \pakettictan{fontspec}\-/ paketin
ohjekirjasta.
\section{Tavutus}
\label{luku/tavutus}
Tex tavuttaa eli katkaisee sanoja automaattisesti rivien lopussa, jotta
se saa tekstikappaleet näyttämään tasapainoisilta. Lähtökohtaisesti
tavutus määräytyy kielikohtaisten tavutussääntöjen ja \=/asetusten
perusteella, mutta kirjoittaja voi tehdä poikkeuksia kirjoittamalla
tavutusvihjeitä. Käytännössä tavutusvihjeitä tarvitaan välillä.
Kielen valintaa ja yleisiä kieliasetuksia käsitellään tarkemmin luvussa
\ref{luku/kieliasetukset}, mutta mainitaan tässäkin, että suomen kieli
ja sen mukainen tavutus saadaan päälle, kun dokumentin esittelyosaan
kirjoittaa seuraavat komennot:
\komentoi{usepackage}
\komentoi{setdefaultlanguage}
\pakettii{polyglossia}
\begin{koodilohkosis}
\usepackage{polyglossia}
\setdefaultlanguage{finnish}
\end{koodilohkosis}
\noindent
Tavutusta käsitellään tässä yhteydessä lähinnä
\paketti{polyglossia}\-/kielipaketin näkökulmasta. Toinen kielipaketti
\paketti{babel} toimii joissakin tavutukseen liittyvissä asioissa eri
tavalla, ja pakettien eroja mainitaan tekstin lomassa.
\subsection{Yleiset tavutussäännöt}
Texin automaattinen tavutus ei perustu varsinaiseen sanojen eikä
taivutusmuotojen tunnistamiseen vaan yksinkertaisiin kirjainpohjaisiin
sääntöihin. Säännöt pyrkivät kuvaamaan kielen tavujen rakenteen ja
huomioimaan myös typografiaan liittyviä suosituksia.
Automaattinen tavutus auttaa paljon, mutta se ei yksinään riitä, koska
se tekee välillä virheitä tai tuottaa muuten suositusten vastaista
jälkeä. Kirjoittajan täytyy auttaa välillä eli kirjoittaa
tavutusvihjeitä. Yksi tapa tavutusvihjeiden kirjoittamiseen on
\komento{hyphenation}\-/ komento, jolla määritellään yksittäisten
sanojen tavutuskohdat kaikkialla dokumentissa. Seuraava esimerkki
selventää komennon käyttöä:
\komentoi{hyphenation}
\begin{koodilohkosis}
\hyphenation{
ala-indek-si alku-osa
nimen-omaan
typo-gra-fi-nen
}
\end{koodilohkosis}
\noindent
Komennon perään aaltosulkeiden sisään kirjoitetaan sanoja, jotka
erotetaan toisistaan sanaväleillä. Sanoihin kirjoitetaan yhdysmerkki
niihin kohtiin, joista sanan katkaiseminen on sallittua. Jos sanassa
itsessään on yhdysmerkki, sen tavutusta ei voi käsitellä tällä
komennolla. Luvussa \ref{luku/tavutuksen-merkit} kerrotaan muita tapoja.
\komento{hyphenation}\-/komennon voi sijoittaa dokumentin esittelyosaan
tai tekstiosaan, mutta sijainti vaikuttaa sen toimintaan. Jos komennon
sijoittaa dokumentin esittelyosaan ennen kuin mitään kieltä on ladattu
tai valittu, se vaikuttaa kaikkien sanojen tavutukseen kielestä
riippumatta. Jos komennon sijoittaa dokumentin tekstiosaan eli kielen
valitsemisen jälkeen, se vaikuttaa vain kyseisen kielen eli yleensä
dokumentin pääasiallisen kielen tavutukseen.
\subsection{Yksittäisten sanojen tavutus}
\label{luku/tavutuksen-merkit}
Tietyt sanassa mukana olevat merkit kytkevät muut tavutussäännöt pois
päältä ja muuttavat sanan tavutuksen yksilölliseksi. Jos sanassa on
mukana yksikin tavutusvihje (\komento{-}), yhdysmerkki (\koodi{\=/}),
lyhyt ajatusviiva (\mbox{\koodi{--}}) tai pitkä ajatusviiva
(\mbox{\koodi{---}}), sana katkaistaan vain näiden kohdalta
(\koodi{\keno\=/}) tai jälkeen.%
\footnote{\paketti{polyglossia}\-/kielipaketti ja Tex toimivat tekstissä
kuvatulla tavalla. Sen sijaan \paketti{babel}\-/paketti määrittelee
ainakin suomen kielelle tavutusvihjeen (\komento{-}) siten, että se
sallii sanan tavutuksen muistakin kohdista kuin tavutusvihjeen
kohdalta. Tavutusvihjeen molemmin puolin sanan osat tavutetaan
yleisten sääntöjen mukaisesti, ellei tavutuksen estäviä merkkejä kuten
yhdysmerkkejä tai ajatusviivoja ole. \paketti{babel}\-/paketissa on
myös tavutusvihje \koodi{\textquotedbl\textbar}, joka estää tavutuksen
muualta.}
Myös Unicoden ajatusviivamerkit \uctunnus{u+2013 en dash} ja
\uctunnus{u+2014 em dash} toimivat, mutta ne käyttäytyvät tavutuksen
kannalta eri tavalla Lualatex\-/{} ja Xelatex\-/kääntäjillä.
Yhteensopivuussyistä kannattanee välttää Unicoden ajatusviivoja
Latex\-/lähdetiedostossa.
\leijutlk{
\begin{tabular}{lll}
\toprule
\ots{Lähde}
& \ots{Tavutus}
& \ots{Merkitys} \\
\midrule
\koodi{matkustaa}
& mat\tavukohta kus\tavukohta taa
& tavutus kaikista kohdista \\
\koodi{matkus\komento{-}taa}
& matkus\tavukohta taa
& vain tavutusvihjeen kohdalta \\
\koodi{matka-aika}
& matka-\tavukohta aika
& vain yhdysmerkin jälkeen \\
\koodi{matka-ai\komento{-}ka}
& matka-\tavukohta ai\tavukohta ka
& vain yhdysmerkki ja tavutusvihje \\
\koodi{Oulu--Rovaniemi}
& Oulu--\tavukohta Rovaniemi
& vain ajatusviivan jälkeen \\
\koodi{Oulu--Rova\komento{-}niemi}
& Oulu--\tavukohta Rova\tavukohta niemi
& vain ajatusviiva ja tavutusvihje \\
\koodi{matka-}
& matka-
& ei tavutuskohtia \\
\koodi{-aika}
& -\tavukohta aika
& vain yhdysmerkin jälkeen \\
\bottomrule
\end{tabular}
}{
\caption{Tavutusvihjeen, yhdysmerkin ja ajatusviivan vaikutus
tavutukseen}
\label{tlk/tex-tavutus}
}
Taulukossa \ref{tlk/tex-tavutus} on esimerkkejä tavutusvihjeiden,
yhdysmerkin ja ajatusviivan vaikutuksesta. Ensimmäisessä sarakkeessa on
esimerkkisana siinä muodossa kuin se kirjoitetaan lähdetiedostoon.
Toisessa sarakkeessa on ladottu sana, johon on pystyviivalla merkittynä
mahdolliset tavutuskohdat.
Taulukon viimeinen rivi paljastaa suomen kielen kannalta ongelmallisen
tilanteen. Esimerkiksi ilmauksessa \emph{matkasuunnitelma ja
\mbox{-aika}} ei riviä saa katkaista sanassa \emph{\mbox{-aika}}
olevan yhdysmerkin jälkeen, koska rivin loppuun jäisi yksinäinen
yhdysmerkki. Latexin peruskeinoilla sana täytyy laittaa näkymättömään
laatikkoon, joka pitää merkit yhdessä: \komento{mbox}\komentoarg{-aika}.
Toinen vaihtoehto on sitovan yhdysmerkin käyttö, jota käsitellään
seuraavassa alaluvussa.
\subsection{Tavutuksen sallivia ja sitovia merkkejä}
\label{luku/tavutus-sallivat-sitovat}
Unicode\-/merkistön sitova yhdysmerkki \uctunnus{u+2011 non\-/breaking
hyphen} näkyy tavallisena yhdysmerkkinä, mutta se estää sanan
katkaisemisen yhdysmerkin vierestä. \uctunnus{u+2011}\-/merkkiä voi siis
käyttää, mutta se ei ole aina toiminut luotettavasti ja yhdenmukaisesti
eri kääntäjissä. Yhteensopivuussyistä voi olla järkevää käyttää muita
vaihtoehtoja sitovalle yhdysmerkille.
Paketti \pakettictan{extdash} tuo uusia komentoja ja mahdollisuuksia
tavutuksen hallintaan. Komennot ovat sellaisia kuin \komento{Hyphdash}
ja \komento{Endash}, mutta niille on saatavilla myös lyhemmät muodot,
jos paketin lataa käyttämällä \koodi{short\-cuts}\-/ valitsinta.
\komentoi{usepackage}
\pakettii{extdash}
\begin{koodilohkosis}
\usepackage[shortcuts]{extdash}
\end{koodilohkosis}
\noindent
Paketti sisältää kaksi lisävaihtoehtoa kolmelle viivavälimerkille
eli yhdysmerkille, lyhyelle ajatusviivalle ja pitkälle ajatusviivalle.
Kun Texin viivavälimerkit (luku \ref{luku/tavutuksen-merkit}) aina
estävät tavutuksen muualta kuin välimerkin jälkeen,
\paketti{extdash}\-/paketin perusvaihtoehdot sallivat tavutuksen
muualtakin. Lisäksi kaikille kolmelle viivavälimerkille on sitova
versio, joka estää tavutuksen välimerkin jälkeen (mutta sallii muualta).
Taulukossa \ref{tlk/extdash} ovat \paketti{extdash}\-/paketin tärkeimmät
komennot ja niiden merkitykset. Taulukossa \ref{tlk/extdash-vertailu}
vertaillaan \paketti{extdash}\-/paketin komentoja Texin vastaaviin.
\leijutlk{
\begin{tabular}{ll}
\toprule
\ots{Komento} & \ots{Merkitys} \\
\midrule
\komento{-/} & tavutuksen salliva yhdysmerkki \\
\komento{=/} & sitova, tavutuksen salliva yhdysmerkki \\
\komento{--} & tavutuksen salliva lyhyt ajatusviiva \\
\komento{==} & sitova, tavutuksen salliva lyhyt ajatusviiva \\
\komento{---} & tavutuksen salliva pitkä ajatusviiva \\
\komento{===} & sitova, tavutuksen salliva pitkä ajatusviiva \\
\bottomrule
\end{tabular}
}{
\caption{\paketti{extdash}-paketin komentoja}
\label{tlk/extdash}
}
\leijutlk{
\begin{tabular}{llll}
\toprule
\ots{Lähde} & \ots{Tavutus}
& \ots{Lähde} & \ots{Tavutus} \\
\cmidrule(r){1-2}
\cmidrule(l){3-4}
\koodi{matka-aika}
& matka-\tavukohta aika
& \koodi{Oulu--Rovaniemi}
& Oulu--\tavukohta Rovaniemi \\
\koodi{matka\komento{-/}aika}
& mat\tavukohta ka-\tavukohta ai\tavukohta ka
& \koodi{Oulu\komento{--}Rovaniemi}
& Ou\tavukohta lu--\tavukohta Ro\tavukohta va\tavukohta
nie\tavukohta mi \\
\koodi{matka\komento{=/}aika}
& mat\tavukohta ka-ai\tavukohta ka
& \koodi{Oulu\komento{==}Rovaniemi}
& Ou\tavukohta lu--Ro\tavukohta va\tavukohta
nie\tavukohta mi \\
\koodi{matka-}
& matka-
& \koodi{-aika}
& -\tavukohta aika \\
\koodi{matka\komento{-/}}
& mat\tavukohta ka-
& \koodi{\komento{=/}aika}
& -ai\tavukohta ka \\
\bottomrule
\end{tabular}
}{
\caption{Texin ja \paketti{extdash}-paketin komentojen vertailua}
\label{tlk/extdash-vertailu}
}
On tärkeää huomioida, että \paketti{extdash}\-/paketin komennot ovat
todellakin normaaleja komentoja. Se tarkoittaa, että komennon jälkeiset
sanavälit syödään pois. Tämä asia saattaa unohtua seuraavanlaisessa
tilanteessa, jossa käytetään tavutuksen sallivaa yhdysmerkkikomentoa:
\komentoi{-/}
\begin{koodilohkosis}
matka\-/ ja aika\-/arvio
\end{koodilohkosis}
\begin{tulossis}
matka\-/ ja aika\-/arvio
\end{tulossis}
\noindent
Ensimmäisen yhdysmerkkikomennon jälkeinen sanaväli hävisi, ja syntyi
virheellinen sana \emph{matka-ja}. Sanavälin saa säilymään, kun
kirjoittaa komennon perään aaltosuljeparin tai kenoviivan ja sanavälin.
\komentoi{-/}
\begin{koodilohkosis}
matka\-/{} ja aika\-/arvio \\
matka\-/\ ja aika\-/arvio
\end{koodilohkosis}
\begin{tulossis}
matka\-/{} ja aika\-/arvio \\
matka\-/\ ja aika\-/arvio
\end{tulossis}
\subsection{Tavutus sanan reunasta}
Asetukset \komento{lefthyphenmin}\komentojatko{~N} ja
\komento{righthyphenmin}\komentojatko{~N} vaikuttavat tavutukseen sanan
reunoissa. Argumentti \koodi{N} on positiivinen kokonaisluku, ja se
määrittelee, kuinka monta merkkiä vähintään sanan vasemmasta tai
oikeasta reunasta pidetään yhdessä. Oletusarvot ovat kielikohtaisia ja
määritellään \paketti{polyglossia}\-/{} ja \paketti{babel}\-/paketeissa.
Suomen kielessä kumpikin asetus on kaksi (2) merkkiä.
Nämä asetukset alustetaan kielikohtaisiin oletusarvoihin aina, kun
kieliasetukset tulevat voimaan. Näin on esimerkiksi dokumentin
aloittavan \ymparistox{document}\-/ ympäristön alussa ja aina kielen
vaihtuessa. Jos asetuksia haluaa muuttaa, täytyy omat muutokset tehdä
aina edellä mainittujen asioiden jälkeen. Toisaalta vielä kätevämpää on
sisällyttää omat asetukset kielikohtaisiin alustuskomentoihin. Sillä
tavoin omat asetukset tulevat voimaan automaattisesti kielen vaihtuessa.
\komentoi{addto}
\komentoi{captionsfinnish}
\komentoi{lefthyphenmin}
\komentoi{righthyphenmin}
\begin{koodilohkosis}
\addto{\captionsfinnish}{
\lefthyphenmin 3
\righthyphenmin 3
}
\end{koodilohkosis}
\noindent
Edellisessä esimerkissä oleva komento \komento{addto} on
\paketti{polyglossia}\-/{} ja \paketti{babel}\-/ paketin ominaisuus,
jolla lisätään omia komentoja kielikohtaisiin asetuksiin. Tässä
esimerkissä käsitellään suomen kielen asetuksia
(\komento{captionsfinnish}). Komento täytyy suorittaa lähdedokumentin
esittelyosassa.
\subsection{Muita tavutusasetuksia ja -vinkkejä}
\label{luku/tavutus-muut}
Aiemmin mainittu \paketti{extdash}\-/paketti sisältää tavutuksen
hallintaan liittyviä välimerkkejä, mutta sellaisia on myös
kielipaketeissa \paketti{polyglossia} ja \paketti{babel}. Kielipakettien
englanninkielisissä ohjekirjoissa niitä kutsutaan nimellä
\englantik{short\-hands}.
\paketti{babel}\-/paketti tuo suomen kieleen sitovan, tavutuksen
sallivan yhdysmerkin \koodi{\textquotedbl\=/}, joka toimii samoin kuin
\paketti{extdash}\-/paketin komento \komento{=/}. Lisäksi on
tavutusvihje (\koodi{\textquotedbl\textquotedbl}), joka ei tee
yhdysmerkkiä tavutuskohtaan. Sitä voi käyttää joidenkin teknisten
ilmausten tavutusvihjeenä, jotta ilmaus säilyy täsmälleen samanlaisena
myös rivien katkaisemisessa. \paketti{babel}\-/paketin toiminnot
vaihtelevat eri kielten välillä.
\paketti{polyglossia}\-/pakettiin saa samat lisätoiminnot ja eräitä
muitakin, kun paketin lataa käyttämällä valitsinta
\koodi{babel\-short\-hands}. Edellä mainittujen ''Baabelin lyhenteiden''
lisäksi tulee yhdysmerkki \koodi{\textquotedbl\textasciitilde}, joka on
sitova ja samalla kaiken tavutuksen estävä yhdysmerkki. Tälle merkille
ei ole vastinetta \paketti{extdash}\-/paketissa. Pari muutakin
lainausmerkillä alkavaa, tavutukseen liittyvää merkkiä on mukana.
Varsinainen tavutuksen peruskomento on \komentom{discretionary}, joka
mahdollistaa omanlaisten tavutuskohtien määrittelyn. Komento
kirjoitetaan sanassa juuri siihen kohtaan, johon tavutuskohta halutaan.
Komennolle annetaan kolme argumenttia järjestyksessä seuraavasti:
\begin{nluetelma}
\item katkaisutilanteessa rivin loppuun ladottavat merkit
\item katkaisutilanteessa seuraavan rivin alkuun ladottavat merkit
\item katkaisemattomaan sanaan ladottavat merkit.
\end{nluetelma}
\noindent
Normaali tavutuskohta sanaan \emph{tavu} määriteltäisiin alla olevan
esimerkin tavoin:
\komentoi{discretionary}
\begin{koodilohkosis}
ta\discretionary{-}{}{}vu
\end{koodilohkosis}
\noindent
Edellisessä esimerkissä komennon ensimmäinen argumentti on yhdysmerkki,
koska rivin loppuun tietenkin halutaan yhdysmerkki silloin, kun sana
katkaistaan tästä kohdasta. Toinen argumentti on tyhjä, koska seuraavan
rivin alkuun ei kirjoiteta suomen kielessä mitään ylimääräistä. Myös
kolmas argumentti on tyhjä, koska katkaisemattomaan sanaan ei haluta
mitään merkkiä tavujen väliin.
\komento{discretionary}\-/komennolla voi luoda myös tavutuskohtia,
joihin ei ilmesty yhdysmerkkiä eikä mitään muutakaan merkkiä
katkaisutilanteessa. Se saadaan aikaan jättämällä kaikki argumentit
tyhjäksi. Tällainen sopii tavutusvihjeeksi teknisiin ilmauksiin, joihin
ei selvyyden vuoksi haluta mitään ylimääräisiä merkkejä edes sanan
katkaisutilanteessa.
\komentoi{discretionary}
\begin{koodilohkosis}
\discretionary{}{}{}
\end{koodilohkosis}
\noindent
Joissakin kielissä sanan katkaiseminen yhdysmerkin kohdalta vaatii, että
rivin loppuun kirjoitetaan yksi yhdysmerkki ja seuraavan rivin alkuun
toinen. Näin ilmaistaan, että sanassa on pysyvä yhdysmerkki eikä vain
väliaikaisesti katkaisun merkkinä. Tällaisia kieliä varten saattaa
kielipaketissa (tai muualla) olla omat yhdysmerkkitoiminnot, mutta
edellä kuvatun tavutuskohdan saa myös seuraavalla tavalla:
\komentoi{discretionary}
\begin{koodilohkosis}
\discretionary{-}{-}{-}
\end{koodilohkosis}
\noindent
Tavutuksen suunnittelussa ja tutkimisessa voi auttaa
\pakettictan{showhyphens}\-/ paketti, jonka lataamalla kaikki
tavutuskohdat tulevat näkyviin. Dokumentin kaikkien sanojen
tavutuskohtiin piirretään ohut punainen pystyviiva. Tämä paketti
hyödyntää Lualatex\-/kääntäjän ominaisuuksia, eikä se siis toimi muiden
kääntäjien kanssa.
\subsection{Suomen kielen tavutus}
Texin kirjainyhdistelmiin perustuvat säännöt eivät yksinään riitä suomen
kieleen, ja esimerkiksi yhdyssanojen rajakohdat tuottavat usein
ongelmia. Sana \emph{alku\-osa} katkaistaan sääntöjen mukaan kohdista
\emph{al-kuo-sa}. Se on kyllä oikein tavurakenteen kannalta mutta
käytännössä ongelmallinen. Tässä ei ole kyse \emph{uo}\-/diftongista,
vaan yhdyssanan rajalla on myös tavutuskohta (\emph{al-ku-o-sa}).
Lisäksi sanaa ei saa katkaista siten, että siitä jää yksittäinen kirjain
eri riville (\emph{o-sa}).
Parasta olisi katkaista suomen kielen yhdyssanat vain yhdysosien välistä
(\emph{alku-osa}). Muualtakin voi katkaista (\emph{al-ku-osa}), kunhan
sanasta eikä sen yhdysosasta ei jää yksittäinen kirjain eri riville.
Mielellään ei katkaista myöskään kahden vokaalin välistä, jos ne
kuuluvat samaan sanaan (\emph{kau-emmin}). Joskus halutaan välttää myös
niin sanottuja orpotavuja eli sitä, että tekstikappaleen viimeiselle
riville jää vain yksi tavu.
Käytännössä siis suomenkielinen teksti ja hyvä typografia vaativat
välillä tavutusvihjeiden kirjoittamista. Yhdyssanojen osien väliin
tarvitaan tavutusvihje silloin, kun jälkimmäinen osa alkaa vokaalilla
tai useammalla kuin yhdellä konsonantilla. Joitakin tällaisia tapauksia
Tex osaa tavuttaa oikein ilman tavutusvihjeitäkin, mutta etukäteen sitä
ei tiedä, ellei ole kokemusta.
\komentoi{-}
\begin{koodilohkosis}
alku\-osa pusku\-traktori
\end{koodilohkosis}
\noindent
Yhdysmerkin tai ajatusviivan sisältävät pitkät yhdyssanat voivat vaatia
tavutuskohtien lisäämistä, koska Texin yhdysmerkki ja ajatusviivat
estävät tavutuksen muualta kuin näiden merkkien jälkeen. Ilman
tavutuskohtien lisäämistä Texillä ei ehkä ole riittävästi vaihtoehtoja
tekstikappaleen rivittämiseen. Voi syntyä liian suuria sanavälejä, tai
joistakin riveistä tulee ylipitkiä, eli ne yltävät marginaalin puolelle.
Tavutuskohtia voi lisätä sopiviin kohtiin omilla tavutusvihjeillä
(\komento{-}). Vaihtoehtoisesti kaikki yleisten tavutussääntöjen
mukaiset tavutuskohdat saa käyttöön \paketti{extdash}\-/paketin
komennoilla (taulukko \ref{tlk/extdash}). Seuraavassa esimerkissä on
tavutuksen hallintaa sanalle \emph{Molo\-tov--Ribben\-trop-sopi\-mus}:
\komentoi{-}
\komentoi{--}
\komentoi{-/}
\begin{koodilohkosis}
Molo\-tov--Ribben\-trop-sopi\-mus % tavutusvihjeet
Molotov\--Ribben\-trop\-/sopimus % tavutuksen sallivat välimerkit
\end{koodilohkosis}
\noindent
\komento{discretionary}\-/komentoa (luku \ref{luku/tavutus-muut}) voi
hyödyntää suomen kielen sanoissa silloin, kun niissä on heittomerkki
erottamassa kahta tavurajan molemmin puolin olevaa samaa vokaalia,
esimerkiksi sanoissa \emph{vaa'an} ja \emph{liu'uttaa}. Normaalisti Tex
ei katkaise heittomerkin kohdalta lainkaan, eikä se olisi suomen
kielessä suositeltavaakaan, koska vokaalien välistä ei mielellään
katkaista sanaa. Jos tavutuksen kuitenkin haluaa myös heittomerkin
kohdalle, täytyy huolehtia, että tavutustilanteessa heittomerkki poistuu
ja sen paikalle tulee yhdysmerkki rivin loppuun. Sanan \emph{vaa'an}
voisi siis kirjoittaa seuraavalla tavalla:
\komentoi{discretionary}
\begin{koodilohkosis}
vaa\discretionary{-}{}{'}an
\end{koodilohkosis}
\noindent
Komennon kolmas argumentti on heittomerkki, koska se pitää latoa
tavurajalle silloin, kun sanaa ei katkaista tästä kohdasta. Mikäli
tällaisia tarvitsee paljon, on järkevää määritellä sitä varten
yksinkertaisempi komento, jota sitten käytetään sanoissa heittomerkin
sijasta.
\komentoi{discretionary}
\begin{koodilohkosis}
\newcommand{\hm}{\discretionary{-}{}{'}}
vaa\hm an
\end{koodilohkosis}
\noindent
Suomen kielessä käytetään heittomerkkiä myös taivutuspäätteen, liitteen
tai johtimen edellä silloin, kun sanavartalon kirjoitusasu päättyy
konsonanttiin mutta ääntöasu vokaaliin, esimerkiksi \emph{show'ssa}.
Näissä tilanteissa ei ole kyse tavurajasta vaan morfeemirajasta eli
merkityksellisten osien rajakohdasta. Tavurajakin voi sattua samaan
paikkaan, mutta tavutettaessa heittomerkki säilyy: \emph{show'-hun}.%
\footnote{Asiaa ei yleensä mainita kielenhuolto\-/oppaissa. Tieto
perustuu Kielikello\-/lehden 2/2006 artikkeliin:
\kulmaurl{https://www.kielikello.fi/-/lainausmerkit-}. Viittauspäivä
6.7.2020.} Mikäli tällainen tavutuskohta halutaan mukaan, käytetään
sanassa tavallista tavutusvihjettä: \koodi{show'}\komento{-}\koodi{hun}.
Mieluummin ei kuitenkaan katkaista sanoja heittomerkin kohdalta.
\subsection{Tavutus pois päältä}
Tavutuksen voi kytkeä kokonaan pois päältä \paketti{polyglossia}\-/
kielipaketin komennolla \komentom{disablehyphenation}. Tavutuksen saa
takaisin päälle komennolla \komento{enablehyphenation}.
Toinen vaihtoehto on käyttää fontin asetusta \koodi{Hyphen\-Char=\katk
None} kirjainperheen määrittelyn yhteydessä. Oletuksena tavutus on
pois päältä tasalevyisestä fontista, eli esimerkiksi \komento{texttt}\-/
komennon argumenttina olevaa tekstiä ei tavuteta. Fontteja ja niiden
asetuksia käsitellään luvussa \ref{luku/kirjaintyypit}.
Käytännössä tavutus menee pois päältä myös silloin, kun tekstikappaleet
tasaa vain vasempaan reunaan eli tekee oikealle liehureunan komennolla
\komento{raggedright}. Tekstikappaleiden tasaamista ja palstan muotoa
käsitellään luvussa \ref{luku/kappaleen-tasaus}.
|