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
.