diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/lshort-finnish/src/viritys.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/lshort-finnish/src/viritys.tex | 886 |
1 files changed, 886 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/lshort-finnish/src/viritys.tex b/Master/texmf-dist/doc/latex/lshort-finnish/src/viritys.tex new file mode 100644 index 00000000000..5a0eea1c5ce --- /dev/null +++ b/Master/texmf-dist/doc/latex/lshort-finnish/src/viritys.tex @@ -0,0 +1,886 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Contents: Customising LaTeX output +% $Id: viritys.tex,v 1.1.1.1 2002/12/01 08:05:09 hellgren Exp $ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{\LaTeX:n virittely} + +\begin{intro} +Tähän asti opetuilla käskyillä tehdyt dokumentit ovat järjellisen +näköisiä suurimmalle osalle. Vaikka ne eivät ole mitenkään erikoisen +näköisiä, ne noudattavat korkealaatuisen typografian vakiintuneita +sääntöjä, jotka tekevät dokumenteista helppolukuisia ja silmää +miellyttäviä. + +On kuitenkin tilanteita, joissa \LaTeX{} ei tarjoa tarpeisiin +sopivia käskyjä tai ympäristöjä tai sitten käytössä olleilla +käskyillä tuotettu ulkoasu ei täytä sille asetettuja vaatimuksia. + +Tässä luvussa annetaan joitakin vinkkejä siitä, miten +\LaTeX:lle opetetaan uusia temppuja ja miten sen tulostama +ulkoasu saadaan näyttämään erilaiselta. +\end{intro} + +\section{Uudet käskyt, ympäristöt ja makropakkaukset} + +Lukija on varmaankin huomannut, että kaikki tässä kirjasessa +esitetyt komennot on ladottu laatikon sisään ja ne esiintyvät +kirjasen lopussa olevassa hakemistossa. Tätä varten kirjoittaja +on luonut makropaketin \index{makropaketti}, jossa on +määritelty uusia komentoja ja ympäristöjä tätä tarkoitusta varten. +Nyt voidaan kirjoittaa yksinkertaisesti: + +\begin{example} +\begin{lscommand} +\ci{esim} +\end{lscommand} +\end{example} + +Tässä esimerkissä käytetään sekä uutta \ei{lscommand}-ympäristöä, +joka vastaa laatikon piirtämisestä komennon ympärille, että +uutta \ci{ci}-komentoa, joka latoo komennon nimen ja lisää +vastaavan hakusanan hakemistoon. Tämän voi tarkistaa etsimällä +\ci{esim}-komentoa tämän kirjasen hakemistosta, josta löytyy +hakusana \ci{esim}, joka viittaa joka sivulle, jossa esim-komento +on mainittu. + +Jos tekijä päättää, ettei halua enää komentoja ladottavan laatikon +sisään, voidaan \texttt{command}-ympäristön määrittelyjä muuttaa. +Tämä on helpompaa kuin etsiä dokumentista kaikki ne kohdat, joissa +sanojen ympärille on piirretty laatikko \LaTeX:n +peruskäskyillä. + + +\subsection{Uudet käskyt} + +Omien käskyjen lisäämiseen käytetään +\begin{lscommand} +\ci{newcommand}\verb|{|% + \emph{nimi}\verb|}[|\emph{numero}\verb|]{|\emph{määritelmä}\verb|}| +\end{lscommand} +\noindent "=komentoa. +Komento tarvitsee vähintään kaksi argumenttia: uuden komennon \emph{nimen} +ja komennon \emph{määritelmän}. Hakasulkeissa oleva \emph{numero} on +vaihtoehtoinen. Sitä voidaan käyttää määrittelemään komentoja, jotka +saavat maksimissaan 9 argumenttia. Jos se puuttuu, argumenttien määräksi +oletataan 0 eli ei lainkaan argumentteja. + +Asia pitäisi selvitä seuraavasta kahdesta esimerkistä. Ensimmäinen +esimerkki määrittelee uuden \ci{pjlk}-komennon. Se on lyhenne +sanoista ''Pitkänpuoleinen johdanto \LaTeX2e:n käyttöön''. Kyseinen +komento voi olla tarpeen, jos tämän kirjasen nimi pitäisi latoa +yhä uudelleen ja uudelleen. + +\begin{example} +\newcommand{\pjlk}{Pitkänpuoleinen + johdanto \LaTeX2e:n + käyttöön} +Tämä on ''\pjlk'' \ldots{} +''\pjlk'' +\end{example} + +Seuraava esimerkki esittää \emph{numero}-argumentin käyttöä. +\verb|#1|:n tilalle tulee käyttäjän antama argumentti. Jos halutaan +käyttää useampia argumentteja, jatketaan numerointia \verb|#2| jne. + +\begin{example} +\newcommand{\txsit}[1] + {Tämä on \emph{#1} johdanto + \LaTeX2e:n käyttöön} +% varsinaisessa dokumentissa: +\begin{itemize} +\item \txsit{pitkänpuoleinen} +\item \txsit{hyvin lyhyt} +\end{itemize} +\end{example} + +\LaTeX{} ei anna määritellä uutta komentoa, jolla on sama nimi +kuin jollain jo määritellyllä. Tätä varten on kuitenkin olemassa +erityinen komento: \ci{renewcommand}. +Sen syntaksi on sama kuin \verb|\newcommand|-komennon. + +Tietyissä tilanteissa halutaan ehkä käyttää +\ci{providecommand}-komentoa. Se toimii kuten \ci{newcommand}, +mutta jos samanniminen komento on jo määritelty \LaTeX{} +jättää uuden määrittelyn huomiotta. + +\LaTeX:n komentoja seuraavissa välilyönneissä on tiettyjä seikkoja, +jotka tulee ottaa huomioon. Katso sivulta \pageref{whitespace} lisätietoja. + +\subsection{Uudet ympäristöt} + +Ympäristöjen määrittelemiseksi on samantapainen komento kuin +\verb|\newcommand|. \ci{newenvironment}-komennon syntaksi on seuraava: + +\begin{lscommand} +\ci{newenvironment}\verb|{|% + \emph{nimi}\verb|}[|\emph{numero}\verb|]{|% + \emph{ennen}\verb|}{|\emph{jälkeen}\verb|}| +\end{lscommand} + +Myös \ci{newenvironment}-komentoa voidaan käyttää vaihtoehtoisen +argumentin kanssa tai ilman. \emph{ennen}-argumentin materiaali +käsitellään ennen kuin ympäristössä olevaa tekstiä käsitellään. +\emph{jälkeen}-argumentin materiaali käsitellään sen jälkeen +kun vastaan on tullut \verb|\end{|\emph{nimi}\verb|}|-komento. + +Alla oleva esimerkki kuvaa \ci{newenvironment}-komennon käyttöä. +\begin{example} +\newenvironment{kuningas} + {\rule{1ex}{1ex}% + \hspace{\stretch{1}}} + {\hspace{\stretch{1}}% + \rule{1ex}{1ex}} + +\begin{kuningas} +Uskolliset alamaiseni \ldots +\end{kuningas} +\end{example} + +Argumenttia \emph{numero} käytetään samalla tavoin kuin +\verb|\newcommand|"-komennossa. \LaTeX{} varmistaa, ettei jo +olemassa olevaa ympäristöä aleta määritellä. Jos olemassa olevaa +ympäristöä pitää muuttaa, siihen voidaan käyttää komentoa \ci{renewenvironment}. +Se käyttää samaa syntaksia kuin komento \ci{newenvironment}. + +Esimerkissä käytetyt komennot selitetään myöhemmin: katso komentoa +\ci{rule} sivulta \pageref{sec:rule}, \ci{stretch} sivulta \pageref{cmd:stretch} +ja lisätietoa \ci{hspace}:sta saa sivulta \pageref{sec:hspace}. + +\subsection{Ylimääräiset välit} + +Uuteen ympäristöön tulee helposti mukaan ylimääräisiä tyhjiä välejä, joilla +voi olla kohtalokkaat vaikutukset. Otetaan esimerkiksi +otsikkoympäristö, jossa ei käytetään sisennystä eikä myöskään sitä +seuraavassa kappaleessa. Komento \ci{ignorespaces} ymäpäristön aloituksen +määrittelyissä estää rivinvaihtoja tekemästä tyhjiä välejä. +Ympäristön lopetuksen määrittely on hankalampi tapaus. Komennolla +\ci{ignorespacesafterend} panee {\LaTeX}:n lisäämään komennon +\ci{ignorespaces} kun ympäristö on päättynyt. + +\begin{example} +\newenvironment{simple}% + {\noindent}% + {\par\noindent} + +\begin{simple} +Huomaa välilyönti\\vasemmalla. +\end{simple} +Tässä\\myös. +\end{example} + +\begin{example} +\newenvironment{correct}% + {\noindent\ignorespaces}% + {\par\noindent\ignorespacesafterend} + +\begin{correct} +Vasemmalla ei ole\\välilyöntiä. +\end{correct} +Sama\\tässä. +\end{example} + +\subsection{\LaTeX{} komentorivillä} + +Unixin tapaisissa käyttöjärjestelmissä voidaan {\LaTeX}-projektien +koostamiseen käyttää Makefile-tiedostoja. Tähän liittyen voisi olla +mielenkiintoista tuottaa erilaisia versioita samasta dokumentista +kutsumalla {\LaTeX}:ia erilaisilla komentorivin parametreilla. Mikäli +dokumenttiin lisätään seuraava rakenne: + +\begin{verbatim} +\usepackage{ifthen} +\ifthenelse{\equal{\blackandwhite}{true}}{ + % mustavalkotila; jotain tehdään.. +}{ + % väritila; jotain muuta tehdään.. +} +\end{verbatim} + +Nyt {\LaTeX}:ia voidaan kutsua näin: +\begin{verbatim} +latex '\newcommand{\blackandwhite}{true}\input{test.tex}' +\end{verbatim} + +Ensin määritellään komento \verb|\blackandwhite| ja sitten luetaan varsinainen tiedosto. +Mikäli \verb|\blackandwhite| saa arvon \texttt{false}, dokumentista tehdään väriversio. + +\subsection{Omat makropakkaukset} + +Jos dokumentissa määritellään paljon uusia ympäristöjä ja komentoja, tulee +esittelyosasta pitkän puoleinen. Silloin on parempi tehdä makropakkaus, +joka sisältää kaikki uudet määrittelyt. Makropakkaus saadaan käyttöön +komennolla \ci{usepackage}. + +\begin{figure}[!htbp] +\begin{lined}{\textwidth} +\begin{verbatim} +% Tobias Oetikerin demopaketti +\ProvidesPackage{demopack} +\newcommand{\pjlk}{Pitkänpuoleinen johdanto \LaTeXe:n käyttöön} +\newcommand{\txsit}[1]{The \emph{#1} Johdanto + \LaTeXe:n käyttöön} +\newenvironment{king}{\begin{quote}}{\end{quote}} +\end{verbatim} +\end{lined} +\caption{Esimerkkipakkaus} \label{package} +\end{figure} + +Makropaketin kirjoittaminen vastaa oikeastaan dokumentin johdanto-osan +sisällön kopioimista erilliseen tiedostoon, jolla on \texttt{.sty}-pääte. +Makropakettitiedoston alussa annetaan erityinen +\begin{lscommand} +\ci{ProvidesPackage}\verb|{|\emph{makropaketin nimi}\verb|}| +\end{lscommand} +\noindent komento. \verb|\ProvidesPackage| kertoo \LaTeX:lle paketin +nimen. LaTeX{} antaa virheilmoituksen, mikäli makropaketti yritetään +ottaa käyttöön toistamiseen. Kuvassa \ref{package} on pieni esimerkkimakropakkaus, +joka sisältää edellisissä esimerkeissä esitetyt komennot. + +\section{Kirjasinmalli ja "=koko} + +\subsection{Kirjasimen vaihtokomennot} + +\index{kirjasin}\index{kirjasimen koko} \LaTeX{} valitsee kirjasimen leikkauksen +ja koon dokumentin loogisen rakenteen (otsikot, alaviitteet \ldots) perusteella. +Joissain tapauksissa kirjasinleikkaus ja "=koko halutaan ehkä muuttaa käsin. +Se voidaan tehdä taulukoissa~\ref{fonts} ja \ref{sizes} listatuilla komennoilla. +Jokaisen kirjasimen varsinainen koko riippuu dokumentin luokasta ja sen optioista. +Taulukossa~\ref{tab:pointsizes} esitetään näitä komentoja vastaavat absoluuttiset +pistekoot, sellaisina kuin ne on määritelty dokumenttien standardiluokissa. + +\begin{example} +{\small Pienet ja +\textbf{lihavat} latinot} +{\Large isottelivat käyttäen +\textit{kursiivia}.} +\end{example} + +\LaTeXe:n eräs tärkeä ominaisuus on se, että kirjasinten määreet ovat +toisistaan riippumattomia. Tämä tarkoittaa sitä, että kirjasimen kokoa +ja jopa leikkausta voidaan muuttaa ja samalla säilyttää aikaisemmin +määritellyt lihavoinnin tai vinouden määreet. + +\emph{Matematiikkatilassa} voidaan kirjasimen vaihtokomentoja käyttää +poistumiseen \emph{matematiikkatilasta} normaaliin tekstitilaan. Jos +kirjasinta halutaan vaihtaa matematiikkaa ladottaessa, on sitä varten +toinen kokoelma komentoja. Katso talukosta~\ref{mathfonts}. + +\begin{table}[!bp] +\caption{Kirjasimet} \label{fonts} +\begin{lined}{12cm} +% +% Alan suggested not to tell about the other form of the command +% eg \verb|\sffamily| or \verb|\bfseries|. This seems a good thing to me. +% +\begin{tabular}{@{}rl@{\qquad}rl@{}} +\ci{textrm}\verb|{...}| & \textrm{\wi{antiikva}}& +\ci{textsf}\verb|{...}| & \textsf{\wi{groteski}}\\ +\ci{texttt}\verb|{...}| & \texttt{kirjoituskone}\\[6pt] +\ci{textmd}\verb|{...}| & \textmd{keskivahva}& +\ci{textbf}\verb|{...}| & \textbf{\wi{lihavoitu}}\\[6pt] +\ci{textup}\verb|{...}| & \textup{\wi{pysty}}& +\ci{textit}\verb|{...}| & \textit{\wi{kursiivi}}\\ +\ci{textsl}\verb|{...}| & \textsl{\wi{vino}}& +\ci{textsc}\verb|{...}| & \textsc{\wi{kapiteelit}}\\[6pt] +\ci{emph}\verb|{...}| & \emph{korostettu} & +\ci{textnormal}\verb|{...}| & \textnormal{dokumentin} kirjasin +\end{tabular} + +\bigskip +\end{lined} +\end{table} + + +\begin{table}[!bp] +\index{kirjasinkoot} +\caption{Kirjasinkoot} \label{sizes} +\begin{lined}{12cm} +\begin{tabular}{@{}ll} +\ci{tiny} & \tiny pikkuruinen kirjasin \\ +\ci{scriptsize} & \scriptsize hyvin pieni kirjasin\\ +\ci{footnotesize} & \footnotesize melko pieni kirjasin\\ +\ci{small} & \small pieni kirjasin \\ +\ci{normalsize} & \normalsize normaali kirjasin \\ +\ci{large} & \large iso kirjasin +\end{tabular}% +\qquad\begin{tabular}{ll@{}} +\ci{Large} & \Large isompi kirjasin \\[5pt] +\ci{LARGE} & \LARGE hyvin iso kirjasin \\[5pt] +\ci{huge} & \huge valtava \\[5pt] +\ci{Huge} & \Huge suurin +\end{tabular} + +\bigskip +\end{lined} +\end{table} + +\begin{table}[!tbp] +\caption{Absoluuttiset pistekoot standardiluokissa}\label{tab:pointsizes} +\label{tab:sizes} +\begin{lined}{12cm} +\begin{tabular}{lrrr} +\multicolumn{1}{c}{koko} & +\multicolumn{1}{c}{10pt (oletusarvo) } & + \multicolumn{1}{c}{11pt optio} & + \multicolumn{1}{c}{12pt optio}\\ +\verb|\tiny| & 5pt & 6pt & 6pt\\ +\verb|\scriptsize| & 7pt & 8pt & 8pt\\ +\verb|\footnotesize| & 8pt & 9pt & 10pt \\ +\verb|\small| & 9pt & 10pt & 11pt \\ +\verb|\normalsize| & 10pt & 11pt & 12pt \\ +\verb|\large| & 12pt & 12pt & 14pt \\ +\verb|\Large| & 14pt & 14pt & 17pt \\ +\verb|\LARGE| & 17pt & 17pt & 20pt\\ +\verb|\huge| & 20pt & 20pt & 25pt\\ +\verb|\Huge| & 25pt & 25pt & 25pt\\ +\end{tabular} + +\bigskip +\end{lined} +\end{table} + + +\begin{table}[!bp] +\caption{Matemaattiset kirjasimet} \label{mathfonts} +\begin{lined}{0.7\textwidth} +\begin{tabular}{@{}ll@{}} +\fni{mathrm}\verb|{...}|& $\mathrm{Antiikva\ kirjasin}$\\ +\fni{mathbf}\verb|{...}|& $\mathbf{Lihavoitu\ kirjasin}$\\ +\fni{mathsf}\verb|{...}|& $\mathsf{Groteski\ kirjasin}$\\ +\fni{mathtt}\verb|{...}|& $\mathtt{Konekirjoituskirjasin}$\\ +\fni{mathit}\verb|{...}|& $\mathit{Kursiivi\ kirjasin}$\\ +\fni{mathcal}\verb|{...}|& $\mathcal{KALLIGRAFINEN\ KIRJASIN}$\\ +\fni{mathnormal}\verb|{...}|& $\mathnormal{Normaali\ kirjasin}$\\ +\end{tabular} + +%\begin{tabular}{@{}lll@{}} +%\textit{Komento}&\textit{Esimerkki}& \textit{Tulos}\\[6pt] +%\ci{mathcal}\verb|{...}|& \verb|$\mathcal{B}=c$|& $\mathcal{B}=c$\\ +%\ci{mathrm}\verb|{...}|& \verb|$\mathrm{K}_2$|& $\mathrm{K}_2$\\ +%\ci{mathbf}\verb|{...}|& \verb|$\sum x=\mathbf{v}$|& $\sum x=\mathbf{v}$\\ +%\ci{mathsf}\verb|{...}|& \verb|$\mathsf{G\times R}$|& $\mathsf{G\times R}$\\ +%\ci{mathtt}\verb|{...}|& \verb|$\mathtt{L}(b,c)$|& $\mathtt{L}(b,c)$\\ +%\ci{mathnormal}\verb|{...}|& \verb|$\mathnormal{R_{19}}\neq R_{19}$|& +%$\mathnormal{R_{19}}\neq R_{19}$\\ +%\ci{mathit}\verb|{...}|& \verb|$\mathit{ffi}\neq ffi$|& $\mathit{ffi}\neq ffi$ +%\end{tabular} + +\bigskip +\end{lined} +\end{table} + +Kirjasinkokojen yhteydessä aaltosulkeilla \index{aaltosulkeet} on +merkittävä rooli. Niitä käytetään \emph{ryhmittelyyn}. Ryhmittely rajoittaa +useimpien \LaTeX:n komentojen vaikutusaluetta. \index{ryhmittely} + +\begin{example} +Hän pitää {\LARGE Suurista ja +{\small pienistä} kirjaimista}. +\end{example} + +Kirjasinkoon muutos vaikuttaa myös riviväleihin, mutta vain jos +kappale päättyy ennen kuin kirjasinkokoa vaihtavan komennon vaikutus +päättyy. Lopettavaa suljetta \verb|}| ei pitäisi siis käyttää liian +aikaisin. Huomaa seuraavissa kahdessa esimerkissä \verb|\par|-komennon +sijainti.\footnote{\texttt{\bs{}par} +vastaa kappaleiden välissä olevaa tyhjää riviä.} + +\begin{example} +{\Large Älä lue tätä! Se ei ole +totta. Usko huviksesi!\par} +\end{example} + +\begin{example} +{\Large Tämäkään ei ole totta. +Mutta minä olenkin valehtelija.}\par +\end{example} + +Jos kirjasinkokoa halutaan vaihtaa koko kappaleessa tai vielä suuremmassa +osassa tekstiä, halutaan ehkä käyttää ympäristöä kirjasinkoon vaihtamiseksi. + +\begin{example} +\begin{Large} +Tämä ei ole totta. +Mutta mikä nykyään +on \ldots +\end{Large} +\end{example} + +\noindent Tämä säästää sulkeiden laskemiselta. + +\subsection{Vaaksa väärään voi olla virsta vaaraan} + +Kuten tämän luvun alussa todettiin, voi olla vaarallista sorkkia +dokumenttia tällaisilla komennoilla, sillä ne toimivat vastoin +\LaTeX:n perusajatusta, joka on dokumentin loogisen ja visuaalisen +muotoilun erottaminen toisistaan. Tämä tarkoittaa sitä, että +kun samaa kirjasinta vaihtavaa komentoa käytetään useammassa paikassa +tietyn tyyppistä tietoa ladottaessa, pitäisi käyttää +\verb|\newcommand|-määritystä määrittelemään ''looginen peitekomento'', +joka käyttää kyseistä kirjasinkomentoa. + +\begin{example} +\newcommand{\hups}[1]{\textbf{#1}} +Älä \hups{tule} tähän huoneeseen, +siinä on tuntematonta alkuperää +oleva \hups{kone}. +\end{example} + +Tällä tavalla on se etu, että myöhemmin voidaan päättää, halutaanko +vaaraa ilmaisemaan jokin muu visuaalinen keino kuin \verb|\textbf| +ilman, että täytyisi etsiä dokumentista kaikki kohdat, joissa +on \verb|\textbf| ja joissa sitä on käytetty nimenomaan ilmaisemaan +vaaraa. + +\subsection{Neuvo} + +Tämän matkan kirjasinten ja kirjasinkokojen maailmaan päättää +muutama neuvon sananen:\nopagebreak + +\begin{quote} + \underline{\textbf{Muista\Huge!}} \textit{Mitä} + \textsf{EN\textbf{\LARGE EM} \texttt{M}\textsl{ÄN}} kirjasimia \Huge + dokumentissa \tiny käytetään \footnotesize \textbf{sitä} \small \texttt{luettavampi}, + \large \textit{ja} \normalsize \textsc{kauniimpi} + \textsl{\textsf{siitä} t\large u\Large l\LARGE e\huge e}. +\end{quote} + +\section{Välistys} + +\subsection{Rivivälit} + +\index{riviväli} Mikäli dokumentissa halutaan käyttää isompaa riviväliä, +voidaan sitä muuttaa panemalla +\begin{lscommand} +\ci{linespread}\verb|{|\emph{kerroin}\verb|}| +\end{lscommand} +\noindent "=komento dokumentin esittelyosaan. \verb|\linespread{1.3}| +käytetään ''yhden ja puolen'' riviväliin ja \verb|\linespread{1.6}| ''kakkosen'' +riviväliin. Normaalisti riviväliä ei levitetä, joten kerroin on silloin 1. +\index{kakkosen riviväli} + +Komennon \ci{linespread} huomattavat vaikutukset eivät sovi julkaistaviin töihin. +Mikäli rivivälin muuttamiseen on hyvät syyt, on ehkä syytä käyttää +komentoa: +\begin{lscommand} +\verb|\setlength{\baselineskip}{1.5\baselineskip}| +\end{lscommand} + +\begin{example} +{\setlength{\baselineskip}% + {1.5\baselineskip} +Tämä kappale on ladottu 1,5 kertaa +leveämmällä rivivälillä. Huomaa +par-komento kappaleen lopussa.\par} + +Tämän kappaleen tarkoitus on esittää, +että sulkeen jälkeen riviväli on +taas normaali. +\end{example} + +\subsection{Kappaleen muotoilu}\label{parsp} + +\LaTeX:ssa on kaksi kappaleen ulkoasuun vaikuttavaa parametria. +Panemalla käsikirjoitustiedoston esittelyosaan määrittelyn +\begin{code} +\ci{setlength}\verb|{|\ci{parindent}\verb|}{0pt}| \\ +\verb|\setlength{|\ci{parskip}\verb|}{1ex plus 0.5ex minus 0.2ex}| +\end{code} +voidaan kappaleiden ulkoasua muuttaa. Nämä kaksi komentoa kasvattavat +kappaleiden väliä ja samalla asettavat ensimmäisen rivin sisennyksen +nollaksi. + +Yllä olevan esimerkin \texttt{plus} ja \texttt{minus} kertovat +\TeX:lle, että kappaleiden väliä voidaan kasvattaa tai kutistaa +kerrottu määrä, jos näin kappaleet sopivat sivulle paremmin. + +Mannereurooppalaisessa typografiassa (myös Suomessa) kappaleiden +väliin tulee usein tyhjä rivi eikä ensimmäistä riviä sisennetä. Tämä +vaikuttaa myös sisällysluetteloon. Sen rivit ladotaan myös väljemmin. +Tämän välttämiseksi voi olla parempi siirtää nämä kaksi komentoa +esittelyosasta johonkin kohtaan \verb|\tableofcontents|-käskyn jälkeen +tai sitten jättää käyttämästä niitä, sillä useimmissa ammattilaisen +tekemissä kirjoissa ensimmäinen rivi on sisennetty eikä kappaleiden +välissä ole tyhjää riviä. + +Jos halutaan sisentää sellaisen kappaleen ensimmäinen rivi, jossa se +ei ole sisennetty voidaan käyttää +\begin{lscommand} +\ci{indent} +\end{lscommand} +\noindent "=komentoa kappaleen alussa.\footnote{Jos halutaan sisentää otsikon jälkeinen +ensimmäinen kappale, kannattaa käyttää 'tools'-kokoelman \pai{indentfirst}-makropakkausta.} +Tämä toimii luonnollisesti vain silloin kuin \verb|\parindent| ei ole saanut +arvoa nolla. + +Jos halutaan luoda sisentämätön kappale, voidaan käyttää +\begin{lscommand} +\ci{noindent} +\end{lscommand} +\noindent "=käskyä kappaleen alussa. Tästä voi olla hyötyä silloin kun +dokumentti alkaa suoraan leipätekstillä eikä jollain otsikolla. + +\subsection{Vaakasuora välistys} + +\label{sec:hspace} +\LaTeX{} määrittelee sanojen ja lauseiden välit automaattisesti. +Vaakavälistyksen lisäämiseksi käytetään komentoa\index{vaakavälistys} +\begin{lscommand} +\ci{hspace}\verb|{|\emph{mitta}\verb|}| +\end{lscommand} +Jos tämä välistys tulee säilyttää vaikka se osuisi rivin loppuun tai +alkuun, käytetään \verb|\hspace*|"=komentoa \verb|\hspace|"=komennon +sijasta. \emph{Mitta} on yksinkertaisimmillaan vain numero ja mittayksikkö. +Tärkeimmät mittayksiköt on listattu taulukossa~\ref{units}. +\index{mittayksiköt} + +\begin{example} +Tämä\hspace{1.5cm} on 1,5 cm:n +mittainen väli. +\end{example} +\suppressfloats +\begin{table}[tbp] +\caption{\TeX:n mittayksiköt} \label{units} +\begin{lined}{9.5cm} +\begin{tabular}{@{}ll@{}} +\texttt{mm} & millimetri $\approx 1/25$~tuumaa \quad \demowidth{1mm} \\ +\texttt{cm} & senttimetri = 10~mm \quad \demowidth{1cm} \\ +\texttt{in} & tuuma $=$ 25.4~mm \quad \demowidth{1in} \\ +\texttt{pt} & piste $\approx 1/72$~tuumaa $\approx \frac{1}{3}$~mm \quad\demowidth{1pt}\\ +\texttt{em} & käytössä olevan kirjasimen 'M':n leveys \quad \demowidth{1em}\\ +\texttt{ex} & käytössä olevan kirjasimen 'x':n korkeus \quad \demowidth{1ex} +\end{tabular} + +\bigskip +\end{lined} +\end{table} + +\label{cmd:stretch} +Komento +\begin{lscommand} +\ci{stretch}\verb|{|\emph{n}\verb|}| +\end{lscommand} +\noindent luo erityisen kumisen välin. Se venyy niin pitkälle, että +rivillä jäljellä oleva tila tulee täyteen. Jos samalla rivillä +annetaan kaksi \verb|\hspace{\stretch{|\emph{n}\verb|}}|"-komentoa, +kasvavat välit venymiskertoimen mukaisesti. + +\begin{example} +x\hspace{\stretch{1}} +x\hspace{\stretch{3}}x +\end{example} + +Tekstiä välistettäessä voi olla järkevää, että välit riippuvat +käytetyn kirjasimen koosta. Tätä varten on olemessa suhteelliset +mittayksiköt \texttt{em} ja \texttt{ex}.: + +\begin{example} +{\Large{}iso\hspace{1em}y}\\ +{\tiny{}pieni\hspace{1em}y} +\end{example} + +\subsection{Pystysuora välistys} + +Kappaleiden, otsikoiden \ldots\ välit \LaTeX{} määrittää automaattisesti. +Tarvittaessa \emph{kahden kappaleen väliin} voidaan lisätä ylimääräinen +väli komennolla +\begin{lscommand} +\ci{vspace}\verb|{|\emph{mitta}\verb|}| +\end{lscommand} + +Tätä komentoa pitäisi normaalisti käyttää kahden tyhjän rivin välissä. +Jos tämä väli pitäisi säilyttää myös sivun ylä"- tai alareunassa, käytetään +komennon tähtiversiota \verb|\vspace*|. +\index{pystysuora välistys} + +Komentoa \verb|\stretch| voidaan käyttää \verb|\pagebreak|:n yhteydessä +latomaan sivun viimeinen rivi tai keskittämään teksti sivulla pystysuunnassa. +\begin{code} +\begin{verbatim} +Vähän tekstiä \ldots + +\vspace{\stretch{1}} +Tämä menee sivun viimeiselle riville.\pagebreak +\end{verbatim} +\end{code} + +Ylimääräistä väliä lisätään \emph{saman} kappaleen kahden rivin väliin +\begin{lscommand} +\ci{\bs}\verb|[|\emph{mitta}\verb|]| +\end{lscommand} +\noindent "=komennolla. + +Mikäli väliä ei haluta määritellä tarkkaan, voidaan käyttää komentoja +\ci{bigskip} (isoon väliin) ja \ci{smallskip} (pieneen väliin). + +\section{Sivun ulkoasu} + +\begin{figure}[!hp] +\begin{center} +\makeatletter\@layout\makeatother +\end{center} +\vspace*{1.8cm} +\caption{Sivun ulkoasun asetukset.} +\label{fig:layout} +\cih{footskip} +\cih{headheight} +\cih{headsep} +\cih{marginparpush} +\cih{marginparsep} +\cih{marginparwidth} +\cih{oddsidemargin} +\cih{paperheight} +\cih{paperwidth} +\cih{textheight} +\cih{textwidth} +\cih{topmargin} +\end{figure} +\index{page layout} + +\index{sivun ulkoasu} +\LaTeXe{} antaa mahdollisuuden määritellä arkkikoon \index{arkin koko} +\verb|\documentclass|"-komennossa. \LaTeXe{} valitsee sitten automaattisesti +\wi{marginaalit}. Joskus kuitenkin ennalta määrätyt arvot eivät tyydytä. +Niitä voidaan luonnollisesti muuttaa. +%no idea why this is needed here ... +\thispagestyle{fancyplain} +Kuvassa~\ref{fig:layout} näytetään kaikki muutettavissa olevat parametrit. +Kuva on tehty 'tools' kokoelman \pai{layout}-makropakkauksella.% +\footnote{\CTANref|tex-archive/macros/latex/required/tools|}. + +\textbf{SEIS!} \ldots ennenkuin syöksytään ''kapeat sivut leveämmäksi kiihkoon'' +kannattaa asiaa miettiä ensin muutama sekunti. Kuten muillakin asioissa \LaTeX:ssa, +on sivun ulkoasulla tarkoituksensa. + +Niinpä, MS Wordilla tehtyihin sivuihin verrattuna ne näyttävät hyvinkin kapeilta. +Katsotaanpa kuitenkin lukijan mielikirjaa\footnote{Nyt on kyse vakavaraisen kustantajan +julkaisemasta oikeasta painetusta kirjasta.} ja lasketaan rivillä keskimäärin +olevien merkkien määrä. Huomataan, että rivillä on vain noin 66 merkkiä. +Tehdäänpä sama myös \LaTeX:n sivulla. Huomataan, että myös siinä on 66 merkkiä +rivillä. Kokemus osoittaa, että lukeminen vaikeutuu heti kun rivillä on +enemmän merkkejä. Tämä johtuu siitä, että silmiä on vaikea siirtää +rivin lopusta seuraavan rivin alkuun. Samasta syystä sanomalehdet ladotaan +useammalla palstalla. + +Eli jos leipätekstin leveyttä lisätään on muistettava, että lukijoiden +elämä tehdään vaikeammaksi. Riittäköön tämä kuitenkin varoituksista, +lupasinhan kertoa miten se tehdään \ldots + +\LaTeX{} tarjoaa näiden parametrien muuttamiseksi kaksi komentoa. Niitä +käytetään tavallisesti dokumentin johdanto-osassa. + +Ensimmäinen komento liittää johonkin parametreista tietyn arvon: +\begin{lscommand} +\ci{setlength}\verb|{|\emph{parametri}\verb|}{|\emph{mitta}\verb|}| +\end{lscommand} + +Seuraava komento lisää pituutta johonkin parametreista. +\begin{lscommand} +\ci{addtolength}\verb|{|\emph{parametri}\verb|}{|\emph{mitta}\verb|}| +\end{lscommand} + +Tämä toinen komento on oikeastaan hyödyllisempi kuin \ci{setlength}-komento, +sillä nyt tullaan työskentelemään yksinomaan aikaisemmin määritellyillä +asetuksilla. Koko tekstin levyden kasvattamiseksi yhden senttimetrin verran, +dokumentin johdanto-osaan pannaan: +\begin{code} +\verb|\addtolength{\hoffset}{-0.5cm}|\\ +\verb|\addtolength{\textwidth}{1cm}| +\end{code} + +Tässä yhteydessä voitaisiin tutustua \pai{calc}-makropakettiin, +joka antaa mahdollisuuden käyttää aritmeettisia operaatioita aina +kun funktioiden argumenteille annetaan jotain arvoja. + +\section{Lisää hupia mitoista} + +Aina kuin vain mahdollista on \LaTeX"-dokumenteissa parasta välttää +absoluuttisia mittoja. On parempi perustaa asiat muiden elementtien +leveydelle tai korkeudelle. Kuvan leveys voisi olla \verb|\textwidth|, +jotta se täyttäisi sivun. + +Seuraavat kolme komentoa mahdollistavat tekstijonon leveyden, korkeuden +ja syvyyden määrittämisen. + +\begin{lscommand} +\ci{settoheight}\verb|{|\emph{komento}\verb|}{|\emph{teksti}\verb|}|\\ +\ci{settodepth}\verb|{|\emph{komento}\verb|}{|\emph{teksti}\verb|}|\\ +\ci{settowidth}\verb|{|\emph{komento}\verb|}{|\emph{teksti}\verb|}| +\end{lscommand} + +\noindent Seuraava esimerkki esittää tavan käyttää näitä komentoja. + +\begin{example} +\flushleft +\newenvironment{vardesc}[1]{% + \settowidth{\parindent}{#1:\ } + \makebox[0pt][r]{#1:\ }}{} + +\begin{displaymath} +a^2+b^2=c^2 +\end{displaymath} + +\begin{vardesc}{Jossa}$a$, +$b$ -- ovat suorakulmaisen kolmion +suoran kulman adjunkteja. + +$c$ -- on kolmion +yksinäinen hypotenuusa. + +$d$ -- ei lopulta esiinny tässä +lainkaan. Eiko olekin hämäävää? +\end{vardesc} +\end{example} + +\section{Laatikot} + +\LaTeX{} rakentaa sivuja työntelemällä laatikoita sinne tänne. Ensinnäkin +jokainen kirjain on pieni laatikko, joka sitten liimataan muihin kirjaimiin +muodostamaan sanoja. Nämä liimataan edelleen muihin sanoihin, mutta erityisellä +elastisella liimalla, jotta joukko sanoja voidaan ahtaa tai levittää täyttämään +sivun yksi rivi. + +Myönnettäköön, että tämä oli yksinkertaistettu kuvaus siitä, mitä todella +tapahtuu, mutta ajatus on se, että \TeX{} operoi liimalla ja laatikoilla. +Eikä ainoastaan kirjain ole laatikko. Mitä tahansa voidaan panna laatikkoon, +myös muita laatikoita. \LaTeX{} käsittelee sitten jokaista laatikkoa aivan +kuin yksittäistä kirjainta. + +Menneissä luvuissa olemme jo törmänneet joihinkin laatikoihin, vaikka +niitä ei erikseen mainittu. Esimerkiksi \ei{tabular}"-ympäristö ja komento +\ci{includegraphics} saa aikaan laatikon. Tämä tarkoittaa sitä, että kaksi +taulukkoa tai kuvaa voidaan helposti asemoida vierekkäin. On vain varmistettava, +että niiden yhteisleveys ei ylitä tekstin leveyttä. + +Tietty kappale voidaan myös pakata laatikkoon joko + +\begin{lscommand} +\ci{parbox}\verb|[|\emph{sijainti}\verb|]{|\emph{leveys}\verb|}{|\emph{teksti}\verb|}| +\end{lscommand} + +\noindent "=komennolla tai + +\begin{lscommand} +\verb|\begin{|\ei{minipage}\verb|}[|\emph{sijainti}\verb|]{|\emph{leveys}\verb|}| teksti +\verb|\end{|\ei{minipage}\verb|}| +\end{lscommand} + +\noindent "=ympäristöllä. \texttt{Sijainti} voi olla jokin kirjaimista +\texttt{c, t} tai \texttt{b}, jolla määritellään laatikon pystysuora sijainti +suhteessa ympäröivän tekstin peruslinjaan. \texttt{leveys} ilmaisee +laatikon leveyden. Pääero on siinä, että parboxin sisällä ei voida käyttää +kaikkia komentoja, kun taas minipagessa kaikki on mahdollista. + +Vaikka \ci{parbox} pakkaa koko kappaleen rivinvaihtoineen kaikkineen, +on olemassa myös laatikointikomentoja, jotka toimivat vaakasuoralla +asemoidulla materiaalilla. Yksi niistä onkin jo tuttu eli \ci{mbox}. +Se yksinkertaisesti pakkaa joukon laatikoita toiseen laatikkoon, ja +sitä voidaan käyttää estämään \LaTeX:ia panemasta rivinvaihtoa tiettyjen +sanojen väliin. Koska kerran laatikoiden sisään voidaan panna laatikoita, +ovat nämä vaakasuorat laatikonpakkaajat äärimmäisen joustavia käyttää. + +\begin{lscommand} +\ci{makebox}\verb|[|\emph{leveys}\verb|][|\emph{sijainti}\verb|]{|\emph{teksti}\verb|}| +\end{lscommand} + +\noindent \emph{leveys} määrittää tuloksena saatavan laatikon leveyden ulkoa +nähtynä.\footnote{Tämä tarkoittaa sitä, että se voi olla pienempi kuin +laatikon sisällä oleva materiaali. Leveydeksi voidaan antaa jopa 0 pt, jolloin +laatikon sisällä oleva teksti ladotaan niin, ettei se vaikuta ympäröiviin +laatikoihin.} Mittayksiköiden lisäksi leveytenä voidaan antaa \ci{width}, +\ci{height}, \ci{depth} ja \ci{totalheight}. Ne saavat arvon ladotun +\emph{tekstin} mitoista. \emph{sijainti}"-parametri saa yksikirjaimisen arvon: +\textbf{c} keskitetty, \textbf{l} vasemmalle tasattu, \textbf{r} oikealle tasattu +tai \textbf{s}, joka tasaa tekstin laatikon koko alalle. + +\ci{framebox} toimii samalla tavoin kuin \ci{makebox}, mutta se piirtää +tekstin ympärille kehyksen. + +Seuraavat esimerkit näyttävät mitä \ci{makebox}:lla ja \ci{framebox}:lla +voidaan muun muassa tehdä. + +\begin{example} +\makebox[\textwidth]{% + k e s k i n e n}\par +\makebox[\textwidth][s]{% + l e v i t e t t y}\par +\framebox[1.1\width]{Näin sitä + ollaan kehyksissä!} \par +\framebox[0.8\width][r]{Hitto, + tuli liian leveä} \par +\framebox[1cm][l]{Hällä + väliä, eiks je?} +Pystytkö lukemaan tämän? +\end{example} + +Nyt kun vaakasuorat asiat ovat hallinassa, voidaan siirtyä +pystysuoriin.\footnote{Täydellinen kontrolli saavutetaan vain hallitsemalla + sekä vaakasuoraa että pystysuoraa materiaalia \ldots} Se ei ole ongelma +\LaTeX:lle. + +\begin{lscommand} +\ci{raisebox}\verb|{|\emph{nosto}\verb|}[|\emph{syvyys}\verb|][|\emph{korkeus}\verb|]{|\emph{teksti}\verb|}| +\end{lscommand} + +\noindent "=komennolla voidaan määritellä laatikon ominaisuuksia pystysuoralla akselilla. +Kolmessa ensimmäisessä parametrissa voidaan käyttää muuttujia \ci{width}, \ci{height}, +\ci{depth} ja \ci{totalheight}, jolloin laatikon kokoon vaikuttaa \emph{teksti}-argumentti. + +\begin{example} +\raisebox{0pt}[0pt][0pt]{\Large% +\textbf{Aaaa\raisebox{-0.3ex}{a}% +\raisebox{-0.7ex}{aa}% +\raisebox{-1.2ex}{r}% +\raisebox{-2.2ex}{g}% +\raisebox{-4.5ex}{h}}} +hän huusi, mutta ei edes seuraava +rivissä huomannut, että jotain +kauheaa oli tapahtunut hänelle. +\end{example} + +\section{Linjat ja välikkeet} +\label{sec:rule} + +Muutama sivu sitten nähtiin komento + +\begin{lscommand} +\ci{rule}\verb|[|\emph{noste}\verb|]{|\emph{leveys}\verb|}{|\emph{korkeus}\verb|}| +\end{lscommand} + +\noindent Normaalikäytössä se tekee mustan laatikon. + +\begin{example} +\rule{3mm}{.1pt}% +\rule[-1mm]{5mm}{1cm}% +\rule{3mm}{.1pt}% +\rule[1mm]{1cm}{5mm}% +\rule{3mm}{.1pt} +\end{example} + +\noindent Siitä on hyötyä piirrettäessä pysty"- ja vaakasuoria viivoja. +Kansisivulla oleva viiva on esimerkiksi tehty \ci{rule}-komennolla. + +Erityistapaus on linja, jolla ei ole leveyttä, mutta kylläkin tietty korkeus. +Painoalalla tätä kutsutaan välikkeeksi. \index{välike} Sitä käytetään +varmistamaan, että sivulla olevalla elementillä on tietty minimikorkeus. +Sitä voidaan käyttää \texttt{tabular}-ympäristössä varmistamaan, että +rivillä on tietty minimikorkeus. + +\begin{example} +\begin{tabular}{|c|} +\hline +\rule{1pt}{4ex}Tukipalkki \ldots\\ +\hline +\rule{0pt}{4ex}Välike\\ +\hline +\end{tabular} +\end{example} + +\bigskip +{\flushright Loppu.\par} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "lyhyt2e" +%%% End: + |