-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathluku-merkintakieli.tex
2497 lines (2110 loc) · 91.6 KB
/
luku-merkintakieli.tex
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
% 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{Merkintäkieli ja perustekniikka}
Latex on merkintäkieli, mikä tarkoittaa, että se sisältää omat tapansa
dokumentin rakenteen ja sisällön kuvaamiseen. Kaikkea ei kirjoiteta
lähdedokumenttiin sellaisenaan, vaan täytyy käyttää tiettyjä kielen
sääntöjen mukaisia merkintätapoja tai komentoja.
Tässä luvussa käsitellään merkintäkielen perusasioita, joita on tarpeen
ymmärtää ennen kuin voi tehokkaasti toimia Latexin parissa. Kaikkea ei
tarvitse opetella ulkoa, mutta tähän lukuun on hyvä palata välillä
kertaamaan perustekniikkaa.
\section{Merkistö}
Latex\-/lähdetiedostoon voi kirjoittaa tekstiä Unicode\-/ merkistöllä ja
sen \textsc{utf}\=/8\-/ koodauksella, jos kääntäjänä on Unicoden osaava
ohjelma kuten Lualatex tai Xelatex. Pääasiassa siis merkit kirjoitetaan
sellaisenaan lähdetiedostoon, mutta on kuitenkin monenlaisia
poikkeuksia, ja niitä käsitellään tässä alaluvussa.
\subsection{Varatut erikoismerkit}
Muutamalla merkillä on perus Latexissa erikoismerkitys, eikä niitä voi
käyttää normaalilla tavalla. Merkit ovat seuraavat:
\begin{koodilohkosis}
% $ ^ _ # & { } ~ \
\end{koodilohkosis}
\noindent
Useimmat näistä merkeistä voi suojata erikoismerkitykseltään
kirjoittamalla niiden eteen kenoviivan (\koodi{\keno}). Tildeä
(\textasciitilde), sirkumfleksia (\textasciicircum) eikä kenoviivaa
itseään ei voi suojata pelkän kenoviivan avulla, koska kenoviivan kanssa
ne muodostavat eräitä muita komentoja. Taulukossa
\ref{tlk/merkkien-suojaus} on koottuna, kuinka edellä mainitut
erikoismerkit suojataan eli saadaan ladottua dokumenttiin sellaisenaan.
\leijutlk{
\begin{tabular}{cll}
\toprule
\ots{Merkki} & \multicolumn{2}{l}{\ots{Kirjoittaminen}} \\
\midrule
\koodi{\%} & \komento{\%} \\
\koodi{\$} & \komento{\$} & \komento{textdollar} \\
\koodi{\^{}} & \komento{\^{}}\komentoarg{} & \komento{textasciicircum} \\
\koodi{\_} & \komento{\_} & \komento{textunderscore} \\
\koodi{\#} & \komento{\#} \\
\koodi{\&} & \komento{\&} \\
\koodi{\{} & \komento{\{} & \komento{textbraceleft} \\
\koodi{\}} & \komento{\}} & \komento{textbraceright} \\
\koodi{\~{}} & \komento{\~{}}\komentoarg{} & \komento{textasciitilde} \\
\koodi{\keno} && \komento{textbackslash} \\
\bottomrule
\end{tabular}
}{
\caption{Varattujen erikoismerkkien kirjoittaminen}
\label{tlk/merkkien-suojaus}
}
Jotkin paketit määrittelevät muitakin erikoismerkkejä. Esimerkiksi
kieliasetuksiin (luku \ref{luku/kieliasetukset}) liittyvät
\paketti{polyglossia}\-/{} ja \paketti{babel}\-/paketit voivat
määritellä pari lainausmerkillä (\koodi{\textquotedbl}) alkavaa,
tavutuksen hallintaan liittyvää komentoa tai erikoismerkkiä (luvut
\ref{luku/tavutus-polyglossia} ja \ref{luku/tavutus-babel}).
\subsection{Sanaväli}
\label{luku/sanaväli}
Välilyönti, sarkainmerkki ja yksi rivinvaihto ovat kaikki tavallisia
sanavälejä Latex\-/dokumentissa, ja näillä kolmella on sama merkitys.
Esimerkiksi rivin lopussa oleva rivinvaihto tarkoittaa samaa kuin
sanojen välissä oleva välilyönti. Välilyöntejä ja sarkainmerkkejä voi
kirjoittaa useita peräkkäin, mutta ne ovat sama asia kuin yksi väli.
\begin{koodilohkosis}
Nämä kaikki
ovat vain
sanoja peräkkäin ja kuuluvat
samaan kappaleeseen.
\end{koodilohkosis}
\begin{tulossis}
Nämä kaikki ovat vain sanoja peräkkäin ja kuuluvat samaan
kappaleeseen.
\end{tulossis}
\noindent
Sanavälien leveys ei ole vakio. Silloin kun tekstipalsta tasataan
molemmista reunoista -- kuten tämänkin oppaan leipätekstissä \==,
rivillä olevia sanavälejä venytetään sopivasti, jotta tekstipalstan
molemmat reunat saadaan tasaiseksi.
Sanavälit eivät kuitenkaan veny loputtomasti, ainakaan
oletusasetuksilla, koska kovin suuret sanavälit olisivat
tekstikappaleessa rumia. Jos sanaväleille haluaa antaa
''hätätilanteissa'' lisää venymisvaraa, täytyy käyttää mittaa
\mitta{emergencystretch}, jota käsitellään tarkemmin tekstikappaleiden
yhteydessä luvussa \ref{luku/kappale}. Mittoihin liittyvää tekniikkaa
käsitellään puolestaan luvussa \ref{luku/mitat}.
Matalatasoinen sanavälejä ja niiden venymistä säätelevä mitta on
\mitta{spaceskip}, johon voi asettaa haluamansa leveyden ja mahdolliset
venymisen rajat. Tätä mittaa ei ole suositeltavaa käyttää tavallisen
tekstin kanssa, mutta se sopii tilanteisiin, joihin tarvitaan hyvin
poikkeukselliset sanavälit.
\komentoi{setlength}
\mittai{spaceskip}
\begin{koodilohkosis}
\setlength{\spaceskip}{0.8em plus 0.3em minus 0.2em}
\end{koodilohkosis}
\noindent
Myös kirjainperheelle voi asettaa oman sanavälikertoimensa fontin
asetusten \koodi{Word\-Space}\-/valitsimella. Tätä asetusta käsitellään
fonttien yhteydessä luvussa \ref{luku/fontit-välistys}.
\subsection{Rivinvaihto lähdedokumentissa}
\label{luku/rivinvaihtomerkit}
Lähdedokumentissa olevat rivinvaihdot tulkitaan vain sanaväleiksi
eivätkä ne vaihda riviä lopullisessa dokumentissa. Jos ladottuun
dokumenttiin tarvitaan rivinvaihto, kirjoitetaan lähdedokumenttiin kaksi
kenoviivaa (\komento{\keno}). Tätä komentoa käsitellään tarkemmin
tekstikappaleiden yhteydessä luvussa \ref{luku/rivinvaihtokomennot}.
On kuitenkin mahdollista saada myös lähdedokumentin rivinvaihdot
toteutumaan automaattisesti ladotussa tekstissä. Sellainen tila
kytketään päälle komennolla \komento{obeycr}; normaaliin tilaan
palataan taas komennolla \komento{restorecr}. Näistä komennoista voi
olla hyötyä väliaikaisesti ja erityistilanteissa, mutta pysyväksi koko
dokumentin tilaksi \komento{obeycr} ei yleensä sovi.
\subsection{Kappaleen vaihtuminen}
\label{luku/kappaleen-vaihtuminen}
Tyhjä rivi lähdetiedostossa tarkoittaa kappaleen vaihtumista. Rivi on
tyhjä silloin, kun se ei sisällä mitään muuta kuin rivinvaihdon tai kun
se sisältää vain välilyöntejä tai sarkainmerkkejä ja lopuksi
rivinvaihdon. Tyhjiä rivejä voi olla useita peräkkäin, mutta ne
tarkoittavat samaa kuin yksi tyhjä rivi. Uuden tekstikappaleen voi
aloittaa myös komennolla \komento{par}.
\begin{koodilohkosis}
Nämä rivit kuuluvat
samaan kappaleeseen.
Tässä on toinen tekstikappale.
Nyt ei oteta kantaa siihen, miten
rivit ja kappaleet muotoillaan.
\end{koodilohkosis}
\noindent
Ladotuissa teksteissä uuden tekstikappaleen alkaminen ilmaistaan usein
sisennetyllä rivillä, mutta sisennyksiä eikä muitakaan muotoiluja ei
tehdä tekstieditorissa välien avulla. Kappaleiden muotoiluun on omat
keinonsa, ja niistä käsitellään luvussa \ref{luku/kappale}.
\subsection{Kommentit ja muistiinpanot}
Latex\-/dokumentissa prosentin merkki (\koodi{\%}) on kommenttimerkki,
jonka jälkeisen rivinosan kääntäjä jättää huomioimatta. Merkki on
tarkoitettu kirjoittajan omien kommenttien ja muistiinpanojen
kirjoittamiseen.
\begin{koodilohkosis}
% Nyt ei tosin ole
% mitään kommentoitavaa.
\end{koodilohkosis}
\noindent
Kommenttimerkki vaikuttaa kääntäjään myös siten, että se syö kaikki
välilyönnit ja sarkainmerkit, jotka tulevat kyseisen kommentin jälkeen.
Tämän vuoksi kommenttimerkin avulla voi yhdistää eri riveillä olevan
tekstin. Seuraava esimerkki tuottaa ladottuna ehjän sanan \emph{Latex}:
\begin{koodilohkosis}
La% Nämä rivit
t% yhdistyvät.
ex
\end{koodilohkosis}
\begin{tulossis}
La% Nämä rivit
t% yhdistyvät.
ex
\end{tulossis}
\subsection{Aaltosulkeet}
\label{luku/aaltosulkeet}
Aaltosulkeet \mbox{\koodi{\{\}}} muodostavat eräänlaisen näkymättömän
ympäristön, jonka sisällä voi olla väliaikaisesti voimassa erilaiset
asetukset kuin ulkopuolella. Aaltosulkeiden sisällä suoritetut komennot,
uusien komentojen määrittelyt (luku \ref{luku/komennot}) tai asetetut
mittojen arvot (luku \ref{luku/mitat}) ovat voimassa vain kyseisen
ympäristön sisäpuolella. Seuraavassa esimerkissä aaltosulkeilla rajataan
kursivointikomennon \komento{itshape} vaikutusaluetta.
\begin{koodilohkosis}
tavallinen {\itshape kursiivi} tavallinen
\end{koodilohkosis}
\begin{tulossis}
tavallinen {\itshape kursiivi} tavallinen
\end{tulossis}
\subsection{Sitova välilyönti}
Sitova välilyönti on samanlainen tyhjä merkki kuin tavallinenkin
välilyönti, mutta rivinvaihtoa ei sallita sen kohdalta. Sitovalla
välilyönnillä kannattaa estää esimerkiksi pienistä osista koostuvan
ilmauksen hajoaminen eri riveille (esimerkki: \emph{osa~5}). Latexissa
sitova välilyönti saadaan joko tildemerkillä (\koodi{\textasciitilde})
tai nimenomaan siihen tarkoitetulla merkillä, jonka Unicode\-/tunnus on
\uctunnus{u+00a0 no-break space}.
Nämä kaksi eri merkkiä, tilde ja \uctunnus{u+00a0}, toimivat hieman eri
tavoin. Molemmat estävät rivinvaihdon, mutta tildemerkki sallii välin
venymisen samalla tavalla kuin tavallinenkin sanaväli sallii (luku
\ref{luku/sanaväli}). Sen sijaan merkki \uctunnus{u+00a0} on
vakiolevyinen eikä siis veny muiden sanavälien tavoin. Merkkiä
\uctunnus{u+00a0} täytyy käyttää ainakin vuorosanaviivan (\==) ja sitä
seuraavan sanan välissä, koska se väli ei saa venyä.
\subsection{Ohuke}
\label{luku/ohuke}
Ohuke on tavallista sanaväliä kapeampi väli, ja se tehdään
komennolla~\komento{,} (kenoviiva ja pilkku). Ohukkeen leveys Latexissa
on \murtoluku{1}{6} typografisen neliön leveydestä eli em-mitasta (luku
\ref{luku/mitat}). Ohuke on tasalevyinen ja sitova, eli se ei veny
muiden sanavälien tavoin, ja se estää rivinvaihdon. Siksi ohuke sopii
esimerkiksi pitkien lukujen ja puhelinnumeroiden ryhmittelyyn paremmin
kun sanaväli.
\komentoi{,}
\begin{koodilohkosis}
12\,750\,000
J.\,R.\,R. Tolkien
\end{koodilohkosis}
\noindent
Myös henkilön etunimen alkukirjainten välissä voi käyttää ohuketta, jos
tavallinen sanaväli vie kirjaimet turhan kauas toisistaan. Sukunimi
erotetaan kuitenkin aina sanavälillä. Joskus myös päiväyksissä käytetään
ohuketta järjestysluvun pisteiden jälkeen. Taulukossa \ref{tlk/ohuke}
vertaillaan sanaväliä, ohuketta ja yhteen kirjoittamista.
\leijutlk{
\komentoi{,}
\begin{tabular}{lrll}
\toprule
& \ots{Luku} & \ots{Päiväys} & \ots{Nimi} \\
\midrule
\otsrivi{Sanaväli} & 12 750 000 & \sout{9. 5. 2020} & J. R. R. Tolkien \\
\otsrivi{Ohuke} & 12\,750\,000 & 9.\,5.\,2020 & J.\,R.\,R. Tolkien \\
\otsrivi{Yhteen} & 12750000 & 9.5.2020 & \sout{J.R.R. Tolkien} \\
\bottomrule
\end{tabular}
}{
\caption{Sanavälin, ohukkeen ja yhteen kirjoittamisen vertailu. Suomen
kielen vastaiset kirjoitusasut on viivattu yli}
\label{tlk/ohuke}
}
\subsection{Lainausmerkit ja heittomerkki}
\label{luku/lainausmerkit}
Suomalaisessa näppäinasettelussa \textsc{shift} eli vaihtonäppäin ja 2
tuottaa yleislainausmerkin eli niin sanotun \textsc{ascii}\-/
lainausmerkin (\textquotedbl), mutta se ei taida olla minkään kielen
varsinainen lainausmerkki. On siis syytä käyttää oikeita
lainausmerkkejä, ja se käy Latexissa varsin helposti.
Eri kielissä lainausmerkkikäytännöt ovat erilaiset. Suomen kielessä
käytetään ''tällaisia'' lainausmerkkejä ja joskus >>tällaisia>>
kulmalainausmerkkejä. Jos lainauksen sisään tarvitaan lainaus, täytyy
sisempi lainaus kirjoittaa 'tällaisten' puolilainausmerkkien avulla.
Yksittäin käytettynä se on nimeltään heittomerkki. Englannin kielessä
lainauksen alussa ja lopussa on erilainen merkki, ja ``tässä'' siitä
esimerkki. Samoin on puolilainausmerkin kohdalla: `näin'.
Latexissa voi käyttää Unicode\-/merkistöä ja lähdedokumenttiin voi
kirjoittaa suoraan ne lainausmerkit, jotka halutaan ladottavaksi, mutta
edellä mainituille merkeille on myös omat merkintätapansa.
Näppäimistöltä kirjoitettava yleisheittomerkki (\koodi{'}) tuottaa
ladottuna automaattisesti oikean kaarevan heittomerkin ('). Kun
kirjoittaa kaksi heittomerkkiä peräkkäin (\koodi{''}), on
lopputuloksena yksi kaareva lainausmerkki (''). Kahdella suurempi kuin
\=/merkillä (\koodi{>>}) saadaan kulmalainausmerkki~(>>).
\begin{koodilohkosis}
''Lainaus, jonka 'sisällä' on lainaus.'' \\
>>Lainaus, jonka 'sisällä' on lainaus.>>
\end{koodilohkosis}
\begin{tulossis}
''Lainaus, jonka 'sisällä' on lainaus.'' \\
>>Lainaus, jonka 'sisällä' on lainaus.>>
\end{tulossis}
\noindent
Edellä mainitut riittävät suomen kieleen, mutta englantia ja muita
kieliä varten tarvitaan myös toisinpäin oleva merkki (``), joka tehdään
kahdella gravisaksentilla (\koodi{``}). Vastaava puolilainausmerkki (`)
tehdään yhdellä aksentilla (\koodi{`}). Joissakin kielissä käytetään
erilaisia kulmalainausmerkkejä lainauksen alussa ja lopussa. Vasemmalle
osoittava merkki (<<) tehdään kahdella pienempi kuin \=/merkillä
(\koodi{<<}).
Joskus todella halutaan latoa yleislainausmerkki (\textquotedbl) tai
yleisheittomerkki (\textquotesingle). Ne saadaan komennoilla
\komento{textquotedbl} ja \komento{textquotesingle}. Yksittäinen
gravisaksentti (\`{}) tehdään komennolla \komento{`}\komentoarg{}.
Lainausmerkkien merkintätapoja ja komentoja on koottu taulukkoon
\ref{tlk/erikoismerkit-lainaus}
(s.~\pageref{tlk/erikoismerkit-lainaus}). Toisaalta kielikohtaiset
asetukset (luku \ref{luku/kieliasetukset}) voivat tuoda mukanaan myös
kielikohtaisia keinoja lainausmerkkien kirjoittamiseen.
Edellä kuvatut Latexin omat lainausmerkkien merkintätavat (\koodi{''},
\koodi{>>} ym.) eli niin sanotut Tex\-/ligatuurit voi kytkeä päälle ja
pois päältä fontin asetuksista eli \paketti{fontspec}\-/ pakettiin
kuuluvien toimintojen avulla. Fonteissa on yleensä oletuksena päällä
Tex\-/ligatuurit eli asetus \koodi{Liga\-tures=\katk TeX}, mutta sen saa
poistettua asetuksella \koodi{Liga\-tures=\katk TeX\-Off}. Asetusta
muutetaan kirjainperheen määrittelyn yhteydessä tai väliaikaisesti
komennolla \komento{addfontfeatures}.
\komentoi{addfontfeatures}
\begin{koodilohkosis}
{\addfontfeatures{Ligatures=TeXOff} `` '' >> '}
\end{koodilohkosis}
\begin{tulossis}
{\addfontfeatures{Ligatures=TeXOff} `` '' >> '}
\end{tulossis}
\noindent
Tasalevyisessä fontissa Tex\-/ligatuurit eivät ole päällä oletuksena,
joten yksittäisissä sanoissa tai lyhyissä ilmauksissa voi estää
Tex\-/ligatuurit esimerkiksi komennolla \komento{texttt}. Samalla
tietysti fonttikin vaihtuu tasalevyiseksi. Fontteja käsitellään
tarkemmin luvussa \ref{luku/kirjaintyypit}.
\komentoi{texttt}
\begin{koodilohkosis}
\texttt{`` '' >> '}
\end{koodilohkosis}
\begin{tulossis}
\texttt{`` '' >> '}
\end{tulossis}
\noindent
Paketti \pakettictan{csquotes} sisältää lainausmerkkeihin liittyviä
komentoja ja kielikohtaista logiikkaa. Paketissa olevan
\komento{enquote}\-/ komennon avulla voi jättää paketin huoleksi, miten
aloittava ja lopettava lainausmerkki tai ulommat ja sisemmät
lainausmerkit kirjoitetaan missäkin kielessä. Kielipaketti
\paketti{polyglossia} tai \paketti{babel} täytyy olla ladattuna.
\komentoi{usepackage}
\pakettii{polyglossia}
\pakettii{csquotes}
\komentoi{setdefaultlanguage}
\komentoi{enquote}
\begin{koodilohkosis}
\usepackage{polyglossia} \setdefaultlanguage{finnish}
\usepackage[autostyle=true]{csquotes}
% ...
\enquote{Lainauksen \enquote{sisällä} lainaus.}
\end{koodilohkosis}
\begin{tulossis}
\enquote{Lainauksen \enquote{sisällä} lainaus.}
\end{tulossis}
\subsection{Yhdysmerkki, ajatusviiva ja miinusmerkki}
\label{luku/yhdys-ajatus-miinus}
Yhdyssanan osien välissä käytettävä yhdysmerkki on Latexissa tavallinen
näppäimistöltä saatava yleisyhdysmerkki (\=/). Merkillä on vaikutusta
myös sanan tavutukseen, josta on tarkempaa tietoa luvussa
\ref{luku/tavutus}.
Ajatusviivaa tarvitaan esimerkiksi äärikohtien (27--29,
Oulu--Rova\-niemi), luetelmien, vuorosanojen ja virkkeen irrallisen
lisäysten merkitseminen. Suomen kielessä käytetään yleensä vain lyhyttä
ajatusviivaa \mbox{(--)}, joka tehdään Latexissa kahdella peräkkäisellä
yhdysmerkillä (\koodi{--}). Pitkä ajatusviiva \mbox{(---)} tehdään
kolmella yhdysmerkillä (\koodi{---}). Ajatusviivat vaikuttavat sanan
tavutukseen samoin kuin yhdysmerkki.
\begin{koodilohkosis}
Oulu--Rovaniemi-yhteys
\end{koodilohkosis}
\begin{tulossis}
Oulu--Rovaniemi-yhteys
\end{tulossis}
\noindent
Myös Unicoden ajatusviivamerkit \uctunnus{u+2013 en dash} ja
\uctunnus{u+2014 em dash} toimivat, mutta tavutuksen kannalta ne ovat
käyttäytyneet eri tavoin Lualatex\-/\ ja Xelatex\-/ kääntäjillä.
Yhteensopivuussyistä on parasta tehdä ajatusviivat Texin omilla
merkintätavoilla eikä Unicode\-/ merkeillä.
Silloin kun todella täytyy latoa kaksi tai kolme peräkkäistä
yhdysmerkkiä, voi käyttää tasalevyistä fonttia
(\komento{texttt}\komentoarg{--}), joka oletuksena kytkee pois Latexin
ajatusviivatoiminnon. Saman asetuksen saa kyllä mihin tahansa fonttiin,
kun poistaa fontista niin sanotut Tex\-/ligatuurit asetuksella
\koodi{Liga\-tures=\katk TeX\-Off}. Väliaikaisesti asetus tehdään
seuraavasti:
\komentoi{addfontfeatures}
\begin{koodilohkosis}
{\addfontfeatures{Ligatures=TeXOff} -- ---}
\end{koodilohkosis}
\begin{tulossis}
{\addfontfeatures{Ligatures=TeXOff} -- ---}
\end{tulossis}
\noindent
Miinusmerkille (−) ei Latexissa ole erityistä merkintätapaa muuten kuin
matematiikkatilassa (luku \ref{luku/matematiikka}). Tavallisessa
tekstitilassa lyhyttä ajatusviivaa voi ja saa käyttää myös
miinusmerkkinä, mutta vielä parempi olisi käyttää varsinaista Unicoden
miinusmerkkiä \uctunnus{u+2212 minus sign}, koska se on fonteissa
suunniteltu typografisesti yhteensopivaksi muiden matemaattisten
merkkien kanssa.
\subsection{Kolme pistettä eli ellipsi}
Ajatuksen katkeamista ja muuta sellaista ilmaisevalle kolmelle pisteelle
eli ellipsille (\ldots) on oma merkkinsä, ja fontissa se saattaa näyttää
hieman erilaiselta kuin kolme peräkkäistä pistemerkkiä. Tyypillisesti
ellipsimerkissä pisteet ovat hieman harvemmassa ja erottuvat toisistaan
paremmin kuin kolmena erillisenä merkkinä ladotut pisteet. Ellipsi
tehdään Latexissa komennoilla \komento{dots}, \komento{ldots},
\komento{textellipsis} tai Unicode\-/merkillä \uctunnus{u+2026
horizontal ellipsis}.
\subsection{Ylä- ja alaindeksi}
\label{luku/ylä-alaindeksit}
Yläindeksit (a\textsuperscript{2}) tehdään komennolla
\komento{textsuperscript} ja alaindeksit (a\textsubscript{2})
komennolla \komento{textsubscript}.
\komentoi{textsuperscript}
\komentoi{textsubscript}
\begin{koodilohkosis}
a\textsuperscript{2} a\textsubscript{2}
\end{koodilohkosis}
\noindent
Oletusasetuksilla Latex toteuttaa indeksit mekaanisesti pienentämällä
fonttia ja sijoittamalla pienennetyn tekstin alas peruslinjan tuntumaan
tai ylös gemenalinjan yläpuolelle.\footnote{Katso typografinen viivasto
eli kuva \ref{kuva/kirjainmitat} sivulla \pageref{kuva/kirjainmitat}.}
Lopputulos ei ole typografisesti välttämättä kovin hyvä, koska fontin
pienentäminen ohentaa samalla merkkien viivoja ja ohuimmat hiusviivat
voivat lähes kadota.
\englanti{Open Type} \=/fontit sisältävät usein tuen oikeille ylä- ja
alaindekseille, jotka fontin suunnittelija on toteuttanut. Niitä
kannattaa käyttää, koska suunnittelija tuntee oman fonttinsa ja on
saanut todennäköisesti parempaa jälkeä kuin Latex mekaanisesti.
\englanti{Open Type} \=/fonttien indeksit on kätevintä ottaa käyttöön
\pakettictan{realscripts}\-/ paketin avulla.
Paketti \paketti{realscripts} määrittelee uudelleen Latexin ylä- ja
alaindeksikomennot, niin että ne ensisijaisesti pyrkivät käyttämään
\englanti{Open Type} \=/fontin ominaisuutta. Jos käytössä oleva fontti
ei sisällä haluttujen merkkien ylä- tai alaindeksiä,
\paketti{realscripts}\-/ paketin komennot käyttävät automaattisesti
Latexin mekaanista keinoa. Paketti määrittelee pari muutakin hyödyllistä
komentoa, muun muassa tähdelliset versiot edellä mainituista:
\komento{textsuperscript*} ja \komento{textsubscript*}. Nämä komennot
toteuttavat aina mekaanisen ylä- tai alaindeksin eli toimivat kuten
Latexin alkuperäiset komennot.
\leijutlk{
\gemenanum
\begin{tabular}{lll}
\toprule
\ots{Komento}
& \ots{\englanti{Open Type}}
& \ots{Mekaaninen} \\
\midrule
\komento{textsuperscript}
& \Large x\textsuperscript{ab36}
& \Large x\textsuperscript*{ab36} \\
\midrule
\komento{textsubscript}
& \Large H\textsubscript{2}SO\textsubscript{4}
& \Large H\textsubscript*{2}SO\textsubscript*{4} \\
\bottomrule
\end{tabular}
}{
\caption{Ylä- ja alaindeksien vertailua. Oikeat Open Type \=/fonttien
indeksit saadaan \paketti{realscripts}\-/ paketin avulla. Mekaaninen
toteutus perustuu fontin pienentämiseen}
\label{tlk/indeksien-vertailu}
}
Taulukossa \ref{tlk/indeksien-vertailu} vertaillaan oikeita ja
mekaanisia ylä- ja alaindeksejä. Taulukon esimerkit paljastavat, että
lopputuloksessa on eroa. Mekaaninen ylä- ja alaindeksitoiminto jättää
merkit turhan suurikokoisiksi mutta saattaa silti ohentaa merkkien
viivoja liian paljon. Se ei myöskään ymmärrä poistaa gemenanumeroita
(3624) käytöstä vaan latoo ne sellaisenaan suunnilleen oikeaan paikkaan.
Ylä- ja alaindeksejä käytettäessä on siis syytä ladata
\paketti{realscripts}\-/ paketti ja käyttää indeksit hallitsevaa
\englanti{Open Type} \=/fonttia. Fonttien ominaisuuksia voi tutkia
käyttöjärjestelmän komentotulkissa komennolla \koodi{otfinfo}. Toisaalta
fonttiin sisältyviä ylä- ja alaindeksejä voi myös kirjoittaa
Unicode\-/merkistön avulla sellaisenaan. Lopputulos on sama.
\subsection{Tavutusvihje}
Komento \komento{-} on tavutusvihje, joka neuvoo rivejä latovalle
algoritmille, että sanan voi katkaista tästä kohdasta rivin lopussa.
Tavutusvihje ei normaalisti näy ladotussa dokumentissa, mutta jos sana
katkaistaan sen kohdalta rivin lopussa, ladotaan yhdysmerkki~(-).
Tavutusvihjeen käyttö voi estää sanan katkaisemisen muista kohdista.
\begin{koodilohkosis}
tavutus\-algo\-ritmi
\end{koodilohkosis}
\noindent
Myös sanassa olevat yhdysmerkit ja ajatusviivat vaikuttavat sanan
tavuttamiseen. Perusteellisemmin tavutusta ja sen asetuksia käsitellään
luvussa \ref{luku/tavutus}.
\subsection{Tarkkeet ja erikoismerkit}
\label{luku/tarkkeet}
Latexissa on useita komentoja tarkkeellisten kirjainten
(\'a\,\v{s}\,\c{c}\,\~o) kirjoittamiseen sekä muille merkeille, joita ei
ehkä ihan helposti saa suoraan näppäimistöltä. Komentoja on koottu
taulukoihin \ref{tlk/tarkkeet}, \ref{tlk/erikoismerkit-lainaus} ja
\ref{tlk/erikoismerkit-muut}. Taulukon tarkekomennoissa on käytetty
a\=/kirjainta esimerkkinä, mutta tarke voi liittyä muihinkin kirjaimiin.
Merkit voi kirjoittaa Latex\-/lähdedokumenttiin myös sellaisenaan, eli
näiden komentojen käyttö ei ole välttämätöntä.
\leijutlk{
\providecommand{\rivi}{}
\renewcommand{\rivi}[4][]{#3 & \komento{#2}\komentojatko{#1} & #4}
\begin{tabular}{*{2}{cll}}
\toprule
\multicolumn{2}{l}{\ots{Merkki}}
& \ots{Merkitys}
& \multicolumn{2}{l}{\ots{Merkki}}
& \ots{Merkitys} \\
\cmidrule(r){1-3}
\cmidrule(l){4-6}
\rivi[a]{`}{\`a}{gravis}
& \rivi{O}{\O}{poikkiviiva-O} \\
\rivi[a]{'}{\'a}{akuutti}
& \rivi{o}{\o}{poikkiviiva-o} \\
\rivi[a]{\^{}}{\^a}{sirkumfleksi}
& \rivi{DJ}{\DJ}{poikkiviiva-D} \\
\rivi[a]{\~{}}{\~a}{tilde}
& \rivi{dj}{\dj}{poikkiviiva-d} \\
\rivi[a]{\textquotedbl}{\"a}{treema}
& \rivi{DH}{\DH}{versaali-eth} \\
\rivi[ a]{H}{\H a}{kaksoisakuutti}
& \rivi{dh}{\dh}{gemena-eth} \\
\rivi[ a]{r}{\r a}{yläympyrä}
& \rivi{NG}{\NG}{versaali-äng} \\
\rivi[ a]{v}{\v a}{hattu}
& \rivi{ng}{\ng}{gemena-äng} \\
\rivi[ a]{u}{\u a}{lyhyysmerkki}
& \rivi{SS}{\SS}{versaali kaksois-s} \\
\rivi[a]{=}{\=a}{pituusmerkki}
& \rivi{ss}{\ss}{gemena kaksois-s} \\
\rivi[ a]{b}{\b a}{alaviiva}
& \rivi{TH}{\TH}{versaali thorn} \\
\rivi[ a]{c}{\c a}{sedilji}
& \rivi{th}{\th}{gemena thorn} \\
\rivi[a]{.}{\.a}{yläpiste}
& \rivi{i}{\i}{pisteetön i} \\
\rivi[ a]{d}{\d a}{alapiste}
& \rivi{j}{\j}{pisteetön j} \\
\rivi[ a]{k}{\k a}{ogonek}
& \rivi{AE}{\AE}{AE-ligatuuri} \\
% \rivi{t\{ae\}}{\t{ae}}{sidontakaari}
&&& \rivi{ae}{\ae}{ae-ligatuuri} \\
\rivi{L}{\L}{poikkiviiva-L}
& \rivi{OE}{\OE}{OE-ligatuuri} \\
\rivi{l}{\l}{poikkiviiva-l}
& \rivi{oe}{\oe}{oe-ligatuuri} \\
\bottomrule
\end{tabular}
}{
\caption{Komentoja tarkkeellisten ja muiden kirjainten
kirjoittamiseen}
\label{tlk/tarkkeet}
}
\leijutlk{
\providecommand{\rivi}{}
\renewcommand{\rivi}[3]{ #1 & \komento{#2} & #3 \\}
\begin{tabular}{cll}
\toprule
\multicolumn{2}{l}{\ots{Merkki ja komennot}}
& \ots{Merkitys} \\
\midrule
\textquotedblleft
& \komento{textquotedblleft}, \koodi{`{}`}
& vasen lainausmerkki \\
\textquotedblright
& \komento{textquotedblright}, \koodi{'{}'}
& oikea lainausmerkki \\
\rivi{\textquotedbl}{textquotedbl}{yleislainausmerkki}
\textquoteleft
& \komento{textquoteleft}, \komento{lq}, \koodi{`}
& vasen puolilainausmerkki \\
\textquoteright
& \komento{textquoteright}, \komento{rq}, \koodi{'}
& oikea puolilainausmerkki, heittomerkki \\
\rivi{\textquotesingle}{textquotesingle}
{yleispuolilainausmerkki ja -heittomerkki}
\guillemotleft
& \komento{guillemotleft}, \koodi{<{}<}
& vasen kulmalainausmerkki \\
\guillemotright
& \komento{guillemotright}, \koodi{>{}>}
& oikea kulmalainausmerkki \\
\rivi{\guilsinglleft}{guilsinglleft}{vasen kulmapuolilainausmerkki}
\rivi{\guilsinglright}{guilsinglright}
{oikea kulmapuolilainausmerkki}
\rivi{\quotedblbase}{quotedblbase}{rivinalinen lainausmerkki}
\rivi{\quotesinglbase}{quotesinglbase}{rivinalinen puolilainausmerkki}
\bottomrule
\end{tabular}
}{
\caption{Komentoja lainausmerkkien kirjoittamiseen}
\label{tlk/erikoismerkit-lainaus}
}
\leijutlk{
\providecommand{\rivi}{}
\renewcommand{\rivi}[3]{ #1 & \komento{#2} & #3 \\}
\providecommand{\textbigcirclekorvike}{}
\renewcommand{\textbigcirclekorvike}{%
\begin{tikzpicture}
\draw (0,0) circle [radius=.65ex];
\end{tikzpicture}}
\begin{tabular}{cll}
\toprule
\multicolumn{2}{l}{\ots{Merkki ja komennot}}
& \ots{Merkitys} \\
\midrule
\textendash
& \komento{textendash}, \koodi{--}
& lyhyt ajatusviiva \\
\textemdash
& \komento{textemdash}, \koodi{---}
& pitkä ajatusviiva \\
\textexclamdown
& \komento{textexclamdown}, \koodi{!`}
& ylösalainen huutomerkki \\
\textquestiondown
& \komento{textquestiondown}, \koodi{?`}
& ylösalainen kysymysmerkki \\
\rivi{\textgreater}{textgreater}{suurempi kuin -merkki}
\rivi{\textless}{textless}{pienempi kuin -merkki}
\textellipsis
& \komento{textellipsis}, \komento{ldots}, \komento{dots}
& kolme pistettä, ellipsi \\
\rivi{\texteuro}{texteuro}{euron merkki}
\textsterling
& \komento{textsterling}, \komento{pounds}
& punnan merkki \\
\textdollar
& \komento{textdollar}, \komento{\$}
& dollarin merkki \\
\textsection
& \komento{textsection}, \komento{S}
& pykälän merkki \\
\textparagraph
& \komento{textparagraph}, \komento{P}
& kappaleen merkki \\
\textcopyright
& \komento{textcopyright}, \komento{copyright}
& tekijänoikeusmerkki \\
\rivi{\textregistered}{textregistered}{rekisteröity tavaramerkki}
\rivi{\texttrademark}{texttrademark}{tavaramerkki}
\textdagger
& \komento{textdagger}, \komento{dag}
& risti \\
\textdaggerdbl
& \komento{textdaggerdbl}, \komento{ddag}
& kaksoisristi \\
\textasciicircum
& \komento{textasciicircum}, \komento{\^{}}\komentoarg{}
& sirkumfleksi \\
\textasciitilde
& \komento{textasciitilde}, \komento{\~{}}\komentoarg{}
& tilde \\
\rivi{\textasteriskcentered}{textasteriskcentered}
{rivinkeskinen asteriski, tähti}
\rivi{\textbackslash}{textbackslash}{kenoviiva}
\rivi{\textbar}{textbar}{pystyviiva}
\rivi{\textbardbl}{textbardbl}{kaksoispystyviiva}
\textbraceleft
& \komento{textbraceleft}, \komento{\{}
& vasen aaltosulje \\
\textbraceright
& \komento{textbraceright}, \komento{\}}
& oikea aaltosulje \\
\rivi{\textbullet}{textbullet}{luetelmaympyrä}
\rivi{\textbigcirclekorvike}{textbigcircle}{suuri ympyrä}
\rivi{\textleftarrow}{textleftarrow}{nuoli vasemmalle}
\rivi{\textrightarrow}{textrightarrow}{nuoli oikealle}
\rivi{\textordfeminine}{textordfeminine}
{feminiininen järjestysluvun merkki}
\rivi{\textordmasculine}{textordmasculine}
{maskuliininen järjestysluvun merkki}
\rivi{\textperiodcentered}{textperiodcentered}{rivinkeskinen piste}
\textunderscore
& \komento{textunderscore}, \komento{\_}
& alaviiva \\
\rivi{\textvisiblespace}{textvisiblespace}{näkyvä välilyönti}
\bottomrule
\end{tabular}
}{
\caption{Komentoja erikoismerkkien kirjoittamiseen}
\label{tlk/erikoismerkit-muut}
}
Tarke- ja erikoismerkkikomentojen lisäksi on olemassa sekalaisia muita
komentoja erikoisempien asioiden latomiseen. \marginaali{\TeX}
\marginaali{\LaTeX} Ladontajärjestelmän logojen kirjoittamiseen on
komennot \komento{TeX} ja \komento{LaTeX}. Suorakulmioita voi tehdä
\komento{rule}\-/ komennolla, jolle annetaan argumenteiksi ainakin kaksi
mittaa: leveys ja korkeus. Myös yksi hakasulkeissa annettu valinnainen
argumentti on mahdollinen. Sekin on mitta ja ilmaisee, kuinka paljon
suorakulmiota nostetaan tekstin peruslinjasta. Negatiivinen mitta laskee
suorakulmiota alaspäin. Latexin mittoja ja mittayksiköitä käsitellään
luvussa \ref{luku/mitat}.
\komentoi{rule}
\begin{koodilohkosis}
\rule{1ex}{1ex} abc \rule{3em}{.5bp} abc \rule[1ex]{3em}{.5bp}
\end{koodilohkosis}
\begin{tulossis}
\rule{1ex}{1ex} abc \rule{3em}{.5bp} abc \rule[1ex]{3em}{.5bp}
\end{tulossis}
\noindent
Komento \komento{strut} latoo näkymättömän, leveydettömän merkin, jonka
korkeus on rivikorkeuden eli mitan \mitta{baselineskip} mukainen.
Komentoa voi tarvita joskus esimerkiksi laatikoiden sisällä (luku
\ref{luku/laatikot}).
Käytännössä \komento{strut}\-/ komento hyödyntää sisäisesti
\komento{rule}\-/ komentoa ja latoo sen avulla leveydettömän
suorakulmion. Tarkemmin sanottuna korkeus eli tekstin peruslinjan
yläpuolinen osa on 0,7 kertaa \mitta{baselineskip}\-/ mitta ja syvyys
eli peruslinjan alapuolinen osa on 0,3 kertaa \mitta{baselineskip}.
\komentoi{rule}
\mittai{baselineskip}
\begin{koodilohkosis}
\rule[-0.3\baselineskip]{0bp}{\baselineskip}
\end{koodilohkosis}
\section{Komennot}
\label{luku/komennot}
Latexin komennot alkavat kenoviivalla (\koodi{\textbackslash}), jonka
jälkeen tulee komennon nimi. Nimi koostuu yleensä pienistä tai isoista
kirjaimista, mutta komento voi koostua myös muista merkeistä.
Komennot voivat ottaa vastaan argumentteja eli lisätietoa, jota komento
käsittelee ja tarvitsee toimintaansa. Jotkin argumentit voivat olla
pakollisia ja jotkin valinnaisia. Pakolliset kirjoitetaan
aaltosulkeisiin \koodi{\{}\ldots\koodi{\}} ja valinnaiset hakasulkeisiin
\koodi{[}\ldots\koodi{]}.
\begin{koodilohkosis}
\komento
\komento{argu}{mentteja}
\komento[valinnainen]{argu}{mentteja}
\end{koodilohkosis}
\noindent
Jos pakolliseen argumenttiin haluaa sisällyttää aaltosulkeen, täytyy sen
eteen kirjoittaa kenoviiva \komento{\{}~\komento{\}}, tai voi myös
käyttää taulukossa \ref{tlk/erikoismerkit-muut} mainittuja komentoja
aaltosulkeiden tuottamiseen. Sama pätee aaltosulkeiden latomiseen
muutenkin.
Hakasulkeet sen sijaan ladotaan tekstiin normaalisti, eikä niiden kanssa
käytetä kenoviivaa. Poikkeustilanne on komennon valinnaisen argumentin
sisällä, koska valinnainen argumentti jo sinänsä kirjoitetaan
hakasulkeiden sisään. Hakasulkeita ei voi suojata kenoviivalla, koska
\komento{[} ja \komento{]} ovat jo muuhun tarkoitettuja komentoja:
niillä luodaan matematiikkatilassa (luku \ref{luku/matematiikka}) oleva
tekstilohko. Valinnaisen argumentin sisään saa hakasulkeen, kun sen
kirjoittaa aaltosulkeiden sisään. Esimerkiksi komennon
\komentox{komento}\komentoargv{\{]\}} valinnaiseksi argumentiksi tulee
lopulta yksi \koodi{]}-merkki.
Komennon yhteydessä sanavälejä käsitellään hieman poikkeuksellisesti.
Esimerkiksi komennon nimen perässä olevat sanavälit syödään pois, jos
komennolle ei anneta yhtään argumenttia. Seuraavassa esimerkissä sana
\emph{Latex} ladotaan ehjänä, jos vain \komentox{komento} itsessään ei
kirjoita mitään eikä vaikuta tekstin latomiseen.
\begin{koodilohkosis}
La\komento tex
\end{koodilohkosis}
\begin{tulossis}
Latex
\end{tulossis}
\noindent
Jos täytyy saada komennon nimen jälkeinen sanaväli näkyviin, täytyy
kirjoittaa komennon nimen perään aaltosulkeet
(\komentox{komento}\komentoarg{}) tai kenoviiva
(\komentox{komento}\komentojatko{\keno}).
Komennon nimen ja argumenttien välissä voi olla sanavälejä, ja ne kaikki
syödään pois. Komennon ja sen argumentit voi siis kirjoittaa vaikka
seuraavalla tavalla:
\begin{koodilohkosis}
\komento [valinnainen]
{argu-} {mentteja}
\end{koodilohkosis}
\subsection{Omat komennot ja abstrahointi}
\label{luku/komennot-abst}
Omien komentojen tärkein tarkoitus on merkintätapojen abstrahointi eli
teknisen toteutuksen ja yksityiskohtien piilottaminen. Sopiva
abstrahointi helpottaa lähdedokumentin käsittelemistä.
Esimerkiksi jos kirjoittaa Latexia käsittelevää kirjaa, kannattaa heti
aluksi luoda komento, jolla merkitään kaikki Latexin komennot. Komennon
nimi voisi olla vaikka \komentox{komento}, ja sen voisi määritellä
siten, että se lisää automaattisesti komennon nimen alkuun kenoviivan
(\koodi{\keno}) ja latoo koko ilmauksen tasalevyisellä fontilla.
Seuraavassa on esimerkki tällaisen komennon määrittelemisestä ja
käytöstä:
\komentoi{newcommand}
\komentoi{texttt}
\komentoi{textbackslash}
\begin{koodilohkosis}
\newcommand{\komento}[1]{\texttt{\textbackslash #1}}
Komennolla \komento{section} tehdään otsikoita.
\end{koodilohkosis}
\begin{tulossis}
Komennolla \texttt{\textbackslash section} tehdään otsikoita.
\end{tulossis}
\noindent
Edellä mainitun komennon määritelmään voi olla tarpeen lisätä myöhemmin
muitakin asioita. Latexin komentojen nimet ovat suunnilleen englantia,
ja jos nimen tavuttaa, täytyisi se tehdä englannin sääntöjen mukaisesti.
Esimerkkinä olleen \komentox{komento}\-/ komennon määritelmässä voisi
siis vaihtaa myös kielen komennolla \komento{textenglish}.%
\footnote{Kieliasetuksista käsitellään luvussa
\ref{luku/kieliasetukset}.}
Jos ollaan kirjoittamassa laajaa tietoteosta, Latex\-/ komennot halutaan
ehkä lisätä automaattisesti kirjan lopussa olevaan asiahakemistoon (ks.
s.~\pageref{luku/asiahakemisto}). Niinpä komennon määritelmään lisätään
vielä sitäkin varten komento \komento{index}.%
\footnote{Asiahakemistoja käsitellään luvussa \ref{luku/asiasanat}.}
Lopulta Latex\-/ komentojen merkitsemiseen tarkoitettu
\komentox{komento} määriteltäisiin seuraavalla tavalla:
\komentoi{newcommand}
\komentoi{textbackslash}
\komentoi{texttt}
\komentoi{textenglish}
\komentoi{index}
\begin{koodilohkosis}
\newcommand{\komento}[1]{%
\texttt{\textbackslash\textenglish{#1}}%
\index[komennot]{#1@\texttt{\textbackslash #1}}}
\end{koodilohkosis}
% Asiahakemistot-luvussa on viittaus tähän lukuun ja maininta
% \index-komennon sisällyttämisestä toisen komennon määritelmään.
\noindent
Näin oma \komentox{komento} ilmaisee tiiviisti ja havainnollisesti
tarkoituksen eli sen, että kyseessä on Latex\-/ komento. Se piilottaa
monimutkaisen teknisen toteutuksen eli fontin ja kielen vaihtamiseen
sekä asiahakemistoon liittyvät toiminnot. Lisäksi komennon teknistä
toteutusta on helppoa muuttaa myöhemmin, koska komennon määrittely on
vain yhdessä paikassa lähdedokumentin alussa.
\subsection{Komentojen määrittely}
\label{luku/komennot-määrittely}
Komentojen määrittelyyn on kolme erilaista komentoa, ja niille kaikille
annetaan samanlaiset argumentit. Komennot ovat seuraavat:
\komentoi{newcommand}
\komentoi{renewcommand}
\komentoi{providecommand}
\begin{koodilohkosis}
\newcommand {\nimi}[n][oletus]{määritelmä}
\renewcommand {\nimi}[n][oletus]{määritelmä}
\providecommand {\nimi}[n][oletus]{määritelmä}
\end{koodilohkosis}
\noindent
Ensimmäinen pakollinen argumentti on komennon nimi (\komentox{nimi}), ja
se voi koostua vain kirjaimista. Komento \komento{newcommand}
määrittelee uuden komennon. Mikäli komento on jo olemassa, annetaan
virheilmoitus. Toinen komento \komento{renewcommand} määrittelee
olemassa olevan komennon uudelleen. Se antaa virheilmoituksen, jos
komentoa ei ollut olemassa. Kolmas komento \komento{providecommand}
puolestaan määrittelee uuden komennon vain siinä tapauksessa, että
sellaista ei ollut ennen olemassa. Se ei anna virheilmoitusta.
Komentojen toinen pakollinen argumentti \koodi{määritelmä} sisältää
komennon määritelmän eli mitä tahansa tekstiä tai komentoja.
Suoritusvaiheessa komento ikään kuin vaihdetaan sen määritelmäksi.
\komentoi{newcommand}
\begin{koodilohkosis}
\newcommand{\komento}{Minua komennettiin!}
\komento
\end{koodilohkosis}
\begin{tulossis}
Minua komennettiin!
\end{tulossis}
\noindent
Komentojen ensimmäinen valinnainen argumentti \koodi{n} on luku, joka
kertoo, kuinka monta argumenttia määriteltävä komento käsittelee.
Määritelmässä voi käyttää parametreja \koodi{\#1}, \koodi{\#2},
\koodi{\#3} jne., ja ne korvautuvat komennon suoritusvaiheessa
ensimmäisellä, toisella, kolmannella jne. argumentilla.
\komentoi{newcommand}