Zastaw ciekawych makroinstrukcji
Author: Włodzimierz Macewicz
Keywords: tex, latex, makroinstrukcje, pakiety makroinstrukcji, Wirtualna Akademia

## amsthm

Pakiet pozwala na definiowanie środowisk służących do opisu przykładów, zadań, definicji itp. (p. theorem.sty) podstawowym poleceniem jest:
`\newteorem{nazwa środowiska}{tekst nagłówka}`
lub
`\newteorem{nazwa środowiska}%
[nazwa innego środowiska]{tekst nagłówka}`
(w typ wypadku licznikiem kolejnych pozycji będzie licznik określony przez nazwa innego środowiska (wspólny licznik))
`\newteorem*{nazwa środowiska}{tekst nagłówka}`
jak powyżej, ale środowisko nie będzie numerowane
oraz
`\newteorem{nazwa środowiska}%
{tekst nagłówka}[licznik nadrzędny]`
licznik zliczający kolejne użycie nazwa środowiska jest zerowany przy zmianie licznika `licznik nadrzędny` (np: `chapter`, `section`. `subsection` lub nazwa innego środowiska definiowanegp za pomocą polecenie `\newtheorem`), oraz w skład numeru wchodzi licznik nadrzędny. Oba warianty dodatkowe są wzajemnie wykluczające się.

Postać wywołania zdefiniowanego środowiska jest następująca:
`\begin{nazwa}
zawartość
\end{nazwa}
` lub
`\begin{nazwa}[dodatek]
zawartość
\end{nazwa}
` gdzie nazwa jest nazwą środowiska zdefiniowaną poleceniem `\newtheorem`, a dodatek może stanowić dodatkowy komentarz (będący częścią nagłówka).

Definicja i użycie nowego środowiska może wyglądać następująco:

    \newtheorem{twierdzenie}{Twierdzenie}
    \newtheorem{lemat}{Lemat}[twierdzenie]
    .
    .
    .
    \begin{twierdzenie}
    podstawowe
    \begin{lemat}
    pierwszy lemat
    \end{lemat}
    \begin{lemat}
    drugi lemat
    \end{lemat}
    \end{twierdzenie}

    \begin{twierdzenie}[specjalne]
    i jeszcze jedno twierdzenie
    \end{twierdzenie}

a po przetworzeniu:

Sposób prezentacji środowiska jest zależny od wybranego stylu. Polecenie `newtheorem` można poprzedzić poleceniem `theoremstyle` (domyślnie używany jest styl `plain`).

Wywołanie polecenie wygląda następująco:
`\theoremstyle{style}`
gdzie style może przyjmować następujące wartości:

`plain`
  emuluje oryginalny styl LaTeX'a (tekst nagłówka jest składany czcionką wytłuszczoną, a wnętrze środowiska kursywą (bez przejścia do nowej linii po nagłówku).
`definition`
  jak powyżej, ale wnętrze jest składane antykwą
`remark`
  tekst nagłówka składany jest kursywą (bez przejścia do nowej linii po nagłówku), a wnętrze środowiska antykwą

Lista dostępnych styli jest ograniczona, ale mamy do dyspozycji polecenie umożliwiające definiowane nowych styli: `\newtheoremstyle{nazwa stylu}%
{odległość przed}%
{odległość po}%
{font do składu wnętrza}%
{wcięcie}%
{font nagłówka}%
{znak po nagłówku}%
{odległość po nagłówku}%
{własna definicja nagłówka}
`

poszczególne parametry mają następujące znaczenie:

nazwa stylu | nazwa nowego stylu (może być argumentem polecenia `\theoremstyle`)
odległość przed | określa odległość w pionie przed środowiskiem (pusty argument oznacza 0pt)
odległość po | określa odległość w pionie po środowisku (pusty argument oznacza 0pt)
font do składu wnętrza | określa font, którym prezentowany jest tekst wnętrza środowiska
wcięcie | określa odległość tekstu nagłówka od lewego marginesu strony
font nagłówka | określa font, którym prezentowany jest tekst nagłówka
znak po nagłówku | określa dodatkowy znak (ciąg znaków) wstawianych po nagłówku; za pomocą tego parametru możemy wstawić znak kropki po nagłówku
odległość po nagłówku | określa odległość w poziomie, między tekstem nagłówka, a treścią twierdzenia; znak spacji oznacza normalną przerwę między wyrazami (zmienną w razie potrzeby), wstawienie polecenie `\newline` powoduje że tekst wnętrza jest składany ,,od nowej linii''
własna definicja nagłówka | powyższa specyfikacja może ustalić na stałe treść nagłówka określoną poleceniem `\newtheorem`. Łatwo widać, że taka specyfikacja byłaby mało przydatna. Wyróżniono 3 części nagłówka: nazwa (drugi parametr polecenie `\newtheorem`), numer kolejny oraz dodatkowa notatka (parametr opcjonalny polecenia `\begin{nazwa}[notka]`), za wizualizację poszczególnych części odpowiadają polecenia: `\thmname`, `\thmnumber` i `\thmnote`, a wartości poszczególnych elementów są podstawiane za pierwszy, drugi i trzeci parametr formalny (`#1` -- nazwa, `#2` -- numer i `#3` -- opcjonalna notka). W najprostszym przypadku specyfikacja tego parametru może wyglądać następująco: `\newtheoremstyle{mojetwierdzenie} {2ex}{2ex}{\sffamily}{0pt}{\normalfont}{.}{\newline} {{\thmname{#1 }}{\thmnumber{#2}}{\thmnote{ (#3)}}}` Specyfikacja ostatniego parametru jest neutralna (zgodna z ustawieniami domyślnymi). Spróbujmy zdefiniować środowisko, którego numer będzie prezentowany na lewym marginesie, a dodatkowa notka będzie prezentowana fontem ,,bold italic'' `\newtheoremstyle{mojetwierdzenie}{2ex}{2ex} {\sffamily}{-1cm}{\bfseries}{}{\newline} {\thmnumber{\hbox to 1cm{#2.\hss}}\thmname{#1 }{\thmnote{ \itshape(#3)}}} \newtheoremstyle{mojlemat}{0pt}{0pt}{\itshape}{0pt}{\normalfont}{.}{\newline}% {\thmname{#1 }\thmnumber{#2}\thmnote{ (#3)}} \theoremstyle{mojetwierdzenie} \newtheorem{twierdzenie}{Twierdzenie} \theoremstyle{mojlemat} \newtheorem{lemat}{Lemat}[twierdzenie] . . . aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa \begin{twierdzenie} podstawowe \begin{lemat} pierwszy lemat \end{lemat} dalszy tekst twierdzenia \begin{lemat} drugi lemat \end{lemat} po twierdzeniu i przed następnym \end{twierdzenie} \begin{twierdzenie}[specjalne] i jeszcze jedno twierdzenie \end{twierdzenie}`

dodatkowo dostępna jest makroinstrukcja `\swapnumbers`, która powoduje, że najpierw jest podawany numer kolejny środowiska, a potem jego nagłówek. W przypadku użycia polecenie `\newtheoremstyle` z bardziej wyrafinowanym formatem mogą wystąpić efekty uboczne.

Włodzimierz Macewicz

Ostatnie zmiany: 05.05.2014.