Uudet ympäristöt

Julkaistu

Tähän sivuun liittyvät esimerkkitiedostot ymparistot.tex ja ymparistot.pdf.

Uusia ympäristöjä voi LaTeXissa määritellä komennolla \newenvironment*:

\newenvironment*{ympäristö}[n][oletusarvo]{alku}{loppu}

Tässä ympäristö on määriteltävän ympäristön nimi, n on ympäristön argumenttien lukumäärä (1–9), oletusarvo on mahdollisen valinnaisen argumentin oletusarvo, alku on ympäristön alussa komennolla \begin{ympäristö} suoritettavat komennot ja loppu on ympäristön lopussa komennolla \end{ympäristö} suoritettavat komennot. Ympäristön nimi saa sisältää periaatteessa mitä tahansa muita merkkejä paitsi merkkejä #, \, ~ ja %. Aaltosulkeita { } voi käyttää nimessä pareittain. On silti suositeltavaa, että ympäristön nimi sisältäisi vain englanninkielisen aakkoston kirjaimia a,…,z, A,…,Z. Esimerkkejä:

\newenvironment*{sfquote}{\begin{quote}\sffamily\small}{\end{quote}}

Ympäristö sfquote toimii kuten ympäristö quote, mutta teksti tulostetaan pienempänä ja groteskilla kirjaintyylillä.

\newenvironment*{exercises}[1][9]
{\settowidth{\leftmargini}{\textbf{#1.}\hspace{\labelsep}}
 \renewcommand*{\labelenumi}{\bfseries\theenumi.}
 \begin{enumerate}}
{\end{enumerate}}

Ympäristö exercises muokkaa enumerate-ympäristöä harjoitus- tai tenttitehtävien kirjoittamista varten. Ympäristöllä on yksi valinnainen argumentti, tehtävien lukumäärä, jonka perusteella varataan tila tehtävän numerolle. Komento \settowidth asettaa ensimmäisenä argumenttina olevan pituusparametrin arvoksi toisena parametrina olevan tekstin pituuden. Komento \labelenumi tulostaa enumerate-ympäristön ensimmäisen tason luetelmanumeron, joka tässä määritellään lihavoiduksi.

Komennolla \newenvironment* määriteltyjen ympäristöjen argumentit eivät saa sisältää kappaleen vaihtoja eli tyhjiä rivejä tai \par-komentoja. Jos tarvitaan sellaista ympäristöä, jonka argumentit saavat sisältää useita kappaleita tekstiä, niin on käytettävä komentoa \newenvironment, siis ilman tähteä.

Jo olemassa olevien ympäristöjen uudelleenmäärittelyyn on käytettävä komentoja \renewenvironment* ja \renewenvironment.