% \iffalse meta-comment
%
%%  (C) 2006 Paul Ebermann
%%
%%   Package specdefs - Definitionen für das Spezialisierungs-Skript.
%%
%%   Die Datei specdefs.dtx sowie die dazugehörige
%%   specdefs.ins sowie die damit generierte
%%   specdefs.sty stehen unter der
%%   "LaTeX Project Public License" (LPPL, zu finden
%%   unter http://www.latex-project.org/lppl/, sowie
%%   auch in den meisten TeX-Distributionen in
%%   texmf/docs/latex/base/lppl*.txt), Version 1.3b oder
%%   später (nach Wahl des Verwenders).
%%
%%   Der 'maintenance-status' ist (zur Zeit) 'author-maintained'.
%%   
%%   Das heißt u.a., die Dateien dürfen frei vertrieben werden,
%%   bei Änderungen (durch andere Personen als Paul Ebermann)
%%   ist aber der Name der Datei zu ändern.
%
% \fi
%
% \iffalse
%<package>\NeedsTeXFormat{LaTeX2e}[2003/12/01]
%<package>\ProvidesPackage{specdefs}
%<package> [2006/04/03 v0.3a Definitionen fuer das Spezialisierungs-Skript (PE)]
%
%<*driver>
\documentclass[draft,ngerman]{ltxdoc}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{pauldoc}
\usepackage{specdefs}
\usepackage{xspace}
\DeclareMathOperator{\Specm}{Specm}
\begin{document}
   \DocInput{specdefs.dtx}
\end{document}
%</driver>
% \fi
%
% \CheckSum{285}
%
% \CharacterTable
%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%   Digits        \0\1\2\3\4\5\6\7\8\9
%   Exclamation   \!     Double quote  \"     Hash (number) \#
%   Dollar        \$     Percent       \%     Ampersand     \&
%   Acute accent  \'     Left paren    \(     Right paren   \)
%   Asterisk      \*     Plus          \+     Comma         \,
%   Minus         \-     Point         \.     Solidus       \/
%   Colon         \:     Semicolon     \;     Less than     \<
%   Equals        \=     Greater than  \>     Question mark \?
%   Commercial at \@     Left bracket  \[     Backslash     \\
%   Right bracket \]     Circumflex    \^     Underscore    \_
%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%   Right brace   \}     Tilde         \~}
%
% \changes{v0.0}{2006/01/31}{Erste Fassung}
%
% \GetFileInfo{specdefs.sty}
%
% \DoNotIndex{\ifx, \fi, \else, \def, \newcommand, \DeclareRobustCommand}
% \DoNotIndex{\RequirePackage,\endinput,\empty}
%
% \changes{v0.1}{2006/02/28}{erste öffentliche Fassung - alles
%                            aus 'spezialisierung.tex' ausgelagert.}
%
% \title{Das \pack{specdefs}-Package -- Definitionen für das Spezialisierungs-Skript\thanks{%
% Dieses Dokument gehört zu \pack{specdefs}~\fileversion,
% vom~\filedate.}}
% \author{Paul Ebermann\thanks{\texttt{Paul-Ebermann@gmx.de}}}
%
% \maketitle
%
% \tableofcontents
%
% \section{Benutzerdoku}
% Dieses Package bündelt alle Definitionen, welche für mein
% Spezialisierungs-Skript notwendig sind.
% Dadurch wird 'spezialisierung.tex' übersichtlicher, und eine
% vernünftige Dokumentation der Befehle ist auch machbar.
% Dieses Paket ist nicht für die allgemeine Nutzung vorgesehen
% (obwohl das natürlich erlaubt ist), sondern nur für dieses
% eine Skript gedacht, insofern werde ich auch nur solche
% Verbesserungsvorschläge berücksichtigen, die eine konkrete
% Verbesserung in meinem Skript bewirken.
%
% Teilweise dient dieses Package auch dazu, neue Befehle erst
% mal auszuprobieren, bevor ich sie in ein eigenes Package
% auslagere. Dadurch gibt es zwischen den einzelnen Versionen
% teilweise größere Änderungen -- eine Kompabilität wird nicht
% garantiert.
%
% Die einzelnen Befehle sind jeweils bei der Implementation beschrieben.
%
% \StopEventually{\PrintChanges\PrintIndex}
%
% \section{Implementation}
%    \begin{macrocode}
%<*package>
%    \end{macrocode}
%
% \subsection{geladene Pakete}
%
%  \changes{v0.2}{2006/03/23}{Abschnitt \emph{Hilfsmittel zum Definieren} nach \pack{robustcommand} ausgelagert, dieses eingebunden.}
%  Mein Paket \pack{robustcommand} definiert \cs{robust@new@command}, welches
%  später für die Definition meiner Makros verwendet wird.
%    \begin{macrocode}
\RequirePackage{robustcommand}[2006/03/23]
%    \end{macrocode}
%
%  Wir laden \pack{draftcopy}, um (falls nicht 'final'
%  als globale Option angegeben wurde), \emph{ENTWURF}
%  (per Postscript) schräg über die Seiten zu schreiben.
%    \begin{macrocode}
\RequirePackage[german,conditional]{draftcopy}
%    \end{macrocode}
%
%  \pack{randbild} (von mir) hilft uns, Graphen auf dem Rand der Seiten
%  unterzubringen. Es lädt auch \pack{pstricks} und \pack{pst-plot},
%  welche dafür notwendig sind (und \pack{pstricks} wird in
% \ref{longmapsfrom} noch einmal verwendet).
%    \begin{macrocode}
\RequirePackage{randbild}[2006/02/12]
%    \end{macrocode}
%
%  \changes{v0.2}{2006/03/23}{Neu: \pack{underline} wird eingebunden.}
%  \pack{underline} (von mir) hilft bei schöneren Unterstreichungen.
%    \begin{macrocode}
\RequirePackage{underline}[2006/03/23]
%    \end{macrocode}
%
%  \pack{faktor} ist ein Paket (von mir), um Faktorstrukturen darzustellen:
%     $\faktor{A}{B}$.
%    \begin{macrocode}
\RequirePackage{faktor}
%    \end{macrocode}
%
%
%  \pack{mathtools} definiert einige verlängerbare Pfeile. (Siehe Tabelle 130 in
%  \emph{The Comphrehensive \LaTeX{} Symbol List}, dort fälschlich als \emph{\pack{empheq}
%   Extensible Accents} klassifiziert (\pack{empheq} lädt nur \pack{mathtools} vom
%   selben Autor).) \pack{extpfeil} (von mir) definiert einen allgemeinen Mechanismus
%   für die Erstellung solcher Pfeile und definiert einige weitere -- später
%   (\ref{nutzung:extpfeil}) definiere ich hier noch ein paar Abkürzungen dafür.
%    \begin{macrocode}
\RequirePackage{mathtools}
\RequirePackage{extpfeil}
%    \end{macrocode}
%
% \changes{v0.2}{2006/03/19}{Neu: \pack{stmaryrd} (mit nur zwei Symbolen) eingebunden.}
%  \pack{stmaryrd}\label{stmaryrd} enthält viele Symbole, von denen wir aber nur
%  '\longmapsto' und '\mapsto' laden.
%    \begin{macrocode}
\RequirePackage[only,longmapsfrom,mapsfrom]{stmaryrd}
%    \end{macrocode}
%
%
%   \pack{cancel} definiert (u.a.) den Befehl '\cancel', welcher es
%   erlaubt, Formeln (oder Teile davon) durchzustreichen.
%    \begin{macrocode}
\RequirePackage{cancel}
%    \end{macrocode}
%
%   \pack{pst-node} gehört zum \pack{pstricks}-Paket, und wird von mir
%   benutzt, um kommutative Diagramme zu zeichnen.
%    \begin{macrocode}
\RequirePackage{pst-node}
%    \end{macrocode}
%
%  Das \pack{fontenc}-Paket (siehe 'texdoc ltoutenc') mit Parameter 'T1' stellt die
%  Schrift-Kodierung um auf 'T1'. Dies erlaubt Silbentrennung auch in Wörtern, die
%  Umlaute enthalten, da diese in 'T1' als eigene Zeichen kodiert sind (und nicht aus
%  \"{ } und Buchstaben zusammengesetzt sind wie im Default-Encoding 'OT1').
%    \begin{macrocode}
\RequirePackage[T1]{fontenc}
%    \end{macrocode}
%
%  \pack{showkeys} dient dazu, Labels am Rand der Seite anzuzeigen.
%  So findet man leichter eventuelle Referenz-Ziele. (Bei gegebener
%  globaler Option 'final' macht das nichts.)
%    \begin{macrocode}
\RequirePackage[notcite,notref]{showkeys}
%    \end{macrocode}
%
%
%  \changes{v0.2}{2006/02/02}{Neu: \pack{hyperref} geladen}
%  \pack{hyperref} dient der Querreferenzierung in der DVI-Datei
%  (mit anderen Parametern dann auch im PDF).
%    \begin{macrocode}
\RequirePackage[final=true,hyperindex=true,naturalnames=true]{hyperref}
%    \end{macrocode}
%
%  \changes{v0.2}{2006/02/12}{Neu: \pack{glossary} geladen}
%  \pack{glossary} für ein Glossar (aber nicht in der Version für
% dieses Dokument, weil \pack{doc} einen eigenen Glossar-Mechanismus
% (für die Änderungs-Liste) verwendet, der sich mit dem von \pack{glossary}
% beißt).
%  Mit dem Parameter 'toc=true' sorge ich dafür, dass das Glossar im
%  Inhaltsverzeichnis auftaucht.
%    \begin{macrocode}
\@ifpackageloaded{doc}{}{%
  \RequirePackage[toc=true]{glossary}%
%    \end{macrocode}
%  Mittels '\makeglossary' schalten wir das gleich an.
%    \begin{macrocode}
  \makeglossary%
}
%    \end{macrocode}
%
%  \changes{v0.2}{2006/03/23}{Neu: \pack{dateiliste} eingebunden.}
%  \changes{v0.3a}{2006/04/03}{Aktuellste Version von \pack{dateiliste} verlangt.}
%  Wir wollen eine Liste aller verwendeten Dateien mit aufnehmen -- dies macht
%  mein Paket \pack{dateiliste}. '\listfiles' weist \LaTeX\ an, sich die Dateinamen
%  auch bis zum Ende zu merken.
%    \begin{macrocode}
\RequirePackage{dateiliste}[2006/04/03]
\listfiles
%    \end{macrocode}
%
%
% \subsection{Operatornamen für Algebra II}
%
%  \begin{macro}{\ggT}
%  \begin{macro}{\NT}
%  \begin{macro}{\NNT}
%  \begin{macro}{\Nil}
%  \begin{macro}{\Char}
%    Größter gemeinsamer Teiler, Menge der Nullteiler, Menge der Nichtnullteiler,
%    Menge der nilpotenten Elemente, Charakteristik.
%    \begin{macrocode}
\DeclareMathOperator{\ggT}{ggT}
\DeclareMathOperator{\NT}{NT}
\DeclareMathOperator{\NNT}{NNT}
\DeclareMathOperator{\Nil}{Nil}
\DeclareMathOperator{\Char}{char}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%
% \subsection{Operatornamen und weitere Symbole für Kategorientheorie}
% \changes{v0.2}{2006/03/19}{Neu: Kommandos für Kategorientheorie eingefügt.}
%
%  \begin{macro}{\obj}
%  \begin{macro}{\Mono}
%  \begin{macro}{\Epi}
%    Ein paar Operatornamen.
%    \begin{macrocode}
\DeclareMathOperator{\obj}{obj}
\DeclareMathOperator{\Mono}{Mono}
\DeclareMathOperator{\Epi}{Epi}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \begin{macro}{\cat}
%   Kategorien-Buchstaben wie $\cat C$.
%    \begin{macrocode}
\robust@new@command{\cat}{\mathfrak}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\mor}
%  \begin{macro}{\newKatName}
%  \begin{macro}{\NN}
%  \begin{macro}{\tensor}
%  \begin{macro}{\bigdotcup}
%    \emph{Hier fehlt noch etwas Dokumentation.}
%    \begin{macrocode}
\newcommand*{\mor}[1]{\xto{#1}}
\newcommand*{\newKatName}[2]{
    \robust@new@command{#1}{{\mathord{\underline{\operatorname{#2}}}}}
 }
\robust@new@command{\NN}{{\underline{\underline{\N}}}}
\robust@new@command{\tensor}{\otimes}
\robust@new@command{\bigdotcup}{\mathop{\dot\bigcup}}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%
% \subsection{Operatornamen für Algebraische Geometrie I}
%
%  \begin{macro}{\im}
% Das Bild einer Abbildung.
%    \begin{macrocode}
\DeclareMathOperator{\im}{im}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\Poly}
%  $\Poly_n(k)$ ist der Ring der Polynomialen Funktionen von $k^n$ nach $k$.
%    \begin{macrocode}
\DeclareMathOperator{\Poly}{Poly}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\SL}
%  \begin{macro}{\SU}
%  \begin{macro}{\Orth}
%  \begin{macro}{\Unit}
%   Ein paar Matrizenmengen.
%    \begin{macrocode}
\DeclareMathOperator{\SL}{SL}
\DeclareMathOperator{\SU}{SU}
\DeclareMathOperator{\Orth}{O}
\DeclareMathOperator{\Unit}{U}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \begin{macro}{\sgn}
%  \begin{macro}{\Rg}
%  \begin{macro}{\Ideal}
%  \begin{macro}{\Quot}
%  Signum einer Permutation, Rang einer Matrix (oder eines Moduls),
%   Idealhülle einer Menge im Ring, Quotientenkörper eines Integritätsbereiches.
%    \begin{macrocode}
\DeclareMathOperator{\sgn}{sgn}
\DeclareMathOperator{\Rg}{Rg}
\DeclareMathOperator{\Ideal}{Ideal}
\DeclareMathOperator{\Quot}{Quot}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \begin{macro}{\Abg}
%  \begin{macro}{\Off}
%  \begin{macro}{\id}
%  \begin{macro}{\card}
%  Menge der abgeschlossenen bzw. offenen Mengen in einem topologischen Raum,
%  identische Abbildung, Kardinalität einer Menge, Extensionsideal.
%    \begin{macrocode}
\DeclareMathOperator{\Abg}{Abg}
\DeclareMathOperator{\Off}{Off}
\DeclareMathOperator{\id}{id}
\DeclareMathOperator{\card}{card}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%
%  \begin{macro}{\Gal}
%  \changes{v0.2}{2006/03/02}{Neu}
%  \begin{macro}{\Aut}
%  \changes{v0.2}{2006/03/02}{Neu}
%  \begin{macro}{\Reg}
%  \changes{v0.2}{2006/03/07}{Neu}
%  \begin{macro}{\Mor}
%  \changes{v0.2}{2006/03/12}{Neu}
%  \begin{macro}{\Isom}
%  \changes{v0.2}{2006/03/13}{Neu}
%  Die Galoisgruppe einer Körpererweiterung, die Gruppe der Automorphismen einer Struktur.
%  Der Ring der regulären Funktionen auf einer algebraischen Menge, die Menge der Morphismen
%  bzw. Isomorphismen.
%    \begin{macrocode}
\DeclareMathOperator{\Gal}{Gal}
\DeclareMathOperator{\Aut}{Aut}
\DeclareMathOperator{\Reg}{Reg}
\DeclareMathOperator{\Mor}{Mor}
\DeclareMathOperator{\Isom}{Isom}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%
% \subsection{Pfeile}
%
% \begin{macro}{\longto}
%  \changes{v0.2}{2006/03/19}{Neu.}
%  Ein langer Pfeil nach rechts ($\longto$).
% \begin{macro}{\longgdw}
%  \changes{v0.3}{2006/03/29}{Neu.}
%  Ein langer Genau-dann-wenn-Pfeil ($\longgdw$).
%    \begin{macrocode}
\newcommand*{\longto}{\longrightarrow}
\newcommand*{\longgdw}{\ensuremath{\Longleftrightarrow}}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
%\label{longmapsfrom}
% \begin{macro}{\longmapsfrom}
%   \changes{v0.2}{2006/03/13}{Verwende jetzt \cs{longmapsfrom} aus \pack{stmaryrd}.}
%   '\longmapsfrom' ($\longmapsfrom$) wird jetzt (seit v0.2) durch Laden des Paketes
%   \pack{stmaryrd} (siehe \ref{stmaryrd}) definiert.
%   Hier zwei alternative Versionen.
%
%   Dies ($\mathrel{\scalebox{-1 1}{\longmapsto}}$) ist eine (mittels \pack{pstricks})
%   gespiegelte Version von '\longmapsto' ($\longmapsto$).
%\begin{verbatim}
%\newcommand*{\longmapsfrom}
%{\mathrel{\scalebox{-1 1}{\longmapsto}}}
%\end{verbatim}
% Eine alternative Version versucht, den Pfeil aus bestehenden Teilen
% zusammenzusetzen ($\mathrel{\leftarrow\mathrel{\mkern-4mu}\relbar\mathrel{\mkern-2mu}^^A
%  \mapstochar}\mathrel{\mkern+2mu}$). Dies sieht etwas dumm aus, weil leider
% das '\mapstochar' (zumindest bei mir) einen leichten Auswuchs nach rechts hat,
% also nicht als '\mapsfromchar' geeignet ist.
%\begin{verbatim}
%\newcommand*{\longmapsfrom}
%{\mathrel{\leftarrow\mathrel{\mkern-4mu}\relbar\mathrel{\mkern-2mu}%
%  \mapstochar}\mathrel{\mkern+2mu}}
%\end{verbatim}
%  \end{macro}
%  \begin{macro}{\longmapsfromto}
%   \changes{v0.2}{2006/03/19}{Verwendet jetzt direkt \cs{longmapsfrom} anstatt einer Kopie der
%   \pack{pstricks}-Implementierung davon.}
%   Dies ist eine Kombination von '\longmapsto' und '\longmapsfrom': $\longmapsfromto$.
%   Die Idee dafür kam aus der Beschreibung in Kapitel 7.2 aus \emph{The Comphrehensive
%   \LaTeX{} Symbol List}, Seite 66f.
%    \begin{macrocode}
\newcommand{\longmapsfromto}
{\mathrel{%
      \vcenter{%
         \offinterlineskip%
         \hbox{$\longmapsto$}%
         \vskip.2ex%
         \hbox{$\longmapsfrom$}%
      }%
   }%
}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\xto}
%  \changes{v0.2}{2006/03/02}{Neu}
%  \begin{macro}{\xfrom}
%  \changes{v0.2}{2006/03/02}{Neu}
%  \begin{macro}{\xgdw}
%  \begin{macro}{\xfolgt}
%  \begin{macro}{\xinj}
%  \begin{macro}{\xsurj}
%  \label{nutzung:extpfeil}
%    Hier ein paar semantische Namen für einige erweiterbare Pfeile.
%   Bei einigen Pfeilen füge ich noch etwas Platz '\;' um die Parameter
%   ein, um etwas längere Pfeile zu erhalten.
%    \begin{macrocode}
\newcommand*{\xto}[2][]{\xrightarrow[\;#1\;]{\;#2\;}}
\newcommand*{\xfrom}[2][]{\xleftarrow[\;#1\;]{\;#2\;}}
\newcommand*{\xgdw}{\xLeftrightarrow}
\newcommand*{\xfolgt}{\xRightarrow}
\newcommand*{\xinj}[2][]{\xhookrightarrow[\;#1\;]{\;#2\;}}
\newcommand*{\xsurj}{\xtwoheadrightarrow}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \begin{macro}{\xisom}
%  '\xisom' funktioniert anders, da es nur einen (optionalen) Parameter nimmt (der
%  andere ist die $\sim$-Tilde über dem Pfeil. $\xisom[bla]$.
%    \begin{macrocode}
\newcommand*{\xisom}[1][]{\xrightarrow[\;#1\;]{\;\sim\;}}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\xtoto}
%    \changes{v0.2}{2006/03/19}{Neu}
%    Ein erweiterbarer Doppelpfeil. $\cat C \xtoto[G]{F} \cat D$ sieht leider blöd aus
%    ('\rightrightarrow' gehört zu \pack{amssymb} und passt nicht zu '\Relbar').
%    \begin{macrocode}
\newextarrow{\xtoto}{05{40}0}{\Relbar\Relbar\rightrightarrows}
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\dfgdw}
%   
%    \begin{macrocode}
\newcommand*{\dfgdw}{\ensuremath{\df\gdw}}
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\ncDoubleLine}\noindent\oarg{params}\marg{von}\marg{nach}
%  \changes{v0.2}{2006/02/28}{jetzt mittels \texttt{doubleline$\Relbar$true} implementiert.}
%
%  Ein weiteres \emph{Node connection}-Kommando (zur Verwendung mit \pack{pst-node}).
%  Es wird eine Doppellinie (d.h. ein langes Gleichheitszeichen) zwischen zwei
%  Nodes gezeichnet. Mit \meta{params} können weitere Parameter angegeben werden,
%  falls gegeben, muss dies mit ',' beginnen.
%    \begin{macrocode}
\newcommand*{\ncDoubleLine}[3][]{%
   \ncline[border=1pt,offset=1pt,doubleline=true,doublesep=2pt#1]%
          {-}{#2}{#3}%
}
%    \end{macrocode}
% Ursprünglich hatte ich folgende Definition, bevor ich
% den Parameter 'doubleline' gefunden hatte.
%\begin{verbatim}
%  \newcommand*{\ncDoubleLine}[3][]{%
%     \ncline[border=1pt,offset=1pt#1]{-}{#2}{#3}{}%
%     \ncline[border=1pt,offset=-1pt#1]{-}{#2}{#3}{}%
%  }
%\end{verbatim}
%  \end{macro}
%
% \begin{macro}{\nasim}
%  \changes{v0.2}{2006/03/12}{Neu.}
% \begin{macro}{\nbsim}
%  \changes{v0.2}{2006/03/12}{Neu.}
%  Eine Tilde, um sie über ('\nasim') oder unter ('\nbsim')
%  einem Pfeil anzubringen, zu nutzen nach einem
%  Node-Connection-Kommando.
%    \begin{macrocode}
\newcommand*{\nasim}
{\naput[nrot=:U,labelsep=0pt]{\sim}}
%    \end{macrocode}
%  '\nbsim' funktioniert genauso, aber mit '\nbput' statt '\naput'.
%    \begin{macrocode}
\newcommand*{\nbsim}
{\nbput[nrot=:U,labelsep=0.5pt]{\sim}}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \subsection{Weitere Symbole für Algebraische Geometrie I}
%
% \begin{macro}{\Zar}
% \begin{macro}{\Krull}
% \begin{macro}{\eukl}
%  \begin{macro}{\ext}
% \changes{v0.2}{2006/03/19}{jetzt als \cs{text} statt \cs{operatorname}.}
% \begin{macro}{\ee}
% \changes{v0.2}{2006/03/19}{Neu}
% \begin{macro}{\redu}
% \changes{v0.2}{2006/03/21}{Neu}
%   Ein paar Symbole, die aussehen sollen wie Operatoren,
%   sich aber nicht so verhalten sollen (also '\mathord' statt
%   '\mathop') -- diese werden eigentlich nur als (erläuternder)
%   Index für andere Symbole verwendet.
%    \begin{macrocode}
\robust@new@command\Zar{\text{Zar}}
\robust@new@command{\Krull}{\text{Krull}}
\robust@new@command{\eukl}{\text{eukl}}
\robust@new@command{\ext}{\text{ext}}
\robust@new@command{\ee}{\text{ee}}
\robust@new@command{\redu}{\text{red}}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
%
% \begin{macro}{\topo}
%  $\topo_\eukl$ ist die euklidische Topologie.
%    \begin{macrocode}
\robust@new@command{\topo}{\mathcal{T}}
%    \end{macrocode}
% \end{macro}
%
%  \begin{macro}{\cl} \oarg{rel}\marg{operand}
% 
%  Der Abschluss von \meta{operand} relativ zu \meta{rel}  -- etwa topologischer Abschluss
%  einer Menge in einem Raum, algebraischer Abschluss eines Körpers (dann ohne
%  \meta{rel}), oder auch der ganze Abschluss eines Ringes in einem Erweiterungsring:
%   $\cl[B]{A}$
%    \begin{macrocode}
\robust@new@command{\cl}[2][\empty]{%
  \ifx#1\empty%
    \overline{#2}%
  \else%
    \overline{#2}^{#1}%
  \fi%
}
%    \end{macrocode}
%  Eine andere mögliche Definition (mit gleicher Verwendungssyntax, aber dem
%  Ergebnis $\operatorname{cl}_{B}\left(A\right)$) wäre folgende: 
%\begin{verbatim}
%  \DeclareRobustCommand*{\cl}[2][\empty]{%
%    \ifx#1\empty%
%      \operatorname{cl}\left(#2\right)%
%    \else%
%      \operatorname{cl}_{#1}\left(#2\right)%
%    \fi%
%  }
%\end{verbatim}
% \end{macro}
%  \begin{macro}{\folgtAus}
%  '\folgtAus' ist sprechender als '\Leftarrow', außerdem funktioniert es
%  auch im Textmodus.
%    \begin{macrocode}
\robust@new@command{\folgtAus}{\ensuremath{\Leftarrow}}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\blank}
%    Ein einfacher Platzhalter: $f_a \df= \blank \cdot a$ als Kurzform für $f_a(x) \df= x \cdot a$.
%    \begin{macrocode}
\robust@new@command{\blank}{\square}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\kAlg}
%   Dies wird auch -- bis auf das folgende Macro -- nur nur als Index
%   (etwa $\operatorname{Hom}_\kAlg(A,B)$) verwendet.
%    \begin{macrocode}
\robust@new@command{\kAlg} {{k\text{-Alg}}}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\kAlgK}
%  \changes{v0.2}{2006/03/19}{Neu}
%  Die Kategorie der endlich erzeugten reduzierten $k$-Algebren: $\kAlgK$.
%    \begin{macrocode}
\robust@new@command{\kAlgK}
   {{\kat{\kAlg}^{\ee,\redu}}}
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\df}
%  \changes{v0.2}{2006/03/19}{Jetzt nur noch Definition als \cs{df} statt als \cs{df}$\protect\Relbar$.}
%  Für Definitionen verwendet man $\df=$ anstatt $:=$.
%    \begin{macrocode}
\newcommand{\df}{}
\def\df{\mathrel{\mathop:}}
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\isom}
%   Isomorphie-Anzeiger: $A \isom B$.
%    \begin{macrocode}
\newcommand{\isom}{\cong}
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\klfrac}\marg{zähler}\marg{nenner}
%
%    Ein Bruch in Klammern: '\klfrac{a}{b}' ergibt $\klfrac{a}{b}$
%    \begin{macrocode}
\robust@new@command{\klfrac}[2]{\genfrac{(}{)}{}{}{#1}{#2}}
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\pring}\oarg{endindex}
%
%    Eine einfache Abkürzung, weil Polynomringe über $k$ ziemlich häufig vorkommen,
%    meist auch noch mit $n$ Variablen (gelegentlich aber auch $n-1$, daher \meta{endindex}
%    als optionales Argument).  '\pring' ergibt $\pring$, '\pring[n+1]'
%    ergibt $\pring[n+1]$.
%    \begin{macrocode}
\robust@new@command{\pring}[1][n]{k[X_1, \dots, X_{#1}]}
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\kYm}
%   \changes{v0.3}{2006/03/29}{Neu.}
%    Eine neulich etwas häufiger auftretende Ausnahme: $\kYm$.
%    \begin{macrocode}
\robust@new@command{\kYm}{k[Y_1, \dots, Y_m]}
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\cls}
%   Die Äquivalenzklasse von irgendetwas: $\cls{\blank}$.
%    \begin{macrocode}
\newcommand*{\cls}{\overline}
%    \end{macrocode}
%   Alternative Definitonen wären die Nutzung von $[\blank]$ oder $\langle\blank\rangle$.
%  \end{macro}
%
%  \begin{macro}{\zornM}
%  \changes{v0.2}{2006/02/28}{Neu}
%  \begin{macro}{\zornN}
%  \changes{v0.2}{2006/02/28}{Neu}
%  \zornM und \zornM werden immer für Anwendungen des Zornschen Lemmas benutzt:
%  \zornM ist die induktiv geordnete Menge, die schließlich ein maximales Element
%  hat, \zornN eine beliebige totalgeordnete Teilmenge von \zornM, für die ein
%  Supremum in \zornM gefunden werden muss (um die Eigenschaft von \zornM, induktiv
%  geordnet zu sein, nachzuweisen).
%    \begin{macrocode}
\robust@new@command{\zornM}{\ensuremath{\mathfrak M}\xspace}
\robust@new@command{\zornN}{\ensuremath{\mathfrak N}\xspace}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%
%  \begin{macro}{\kat}
%  Kategorien werden unterstrichen, wie etwa $\kat{AM}_k$ ($\underline{AM}_k$), die
%  Kategorie der affinen
%  algebraischen Mengen ($AM_k$, $AM\/_k$) mit den abstrakten Morphismen.
%    \begin{macrocode}
\robust@new@command{\kat}[1]{\noitUnderline{#1}}
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\AMk}
%  \begin{macro}{\AAVk}
%   Ein paar Anwendungen von '\kat' für spezielle Kategorien.
%    \begin{macrocode}
\robust@new@command{\AMk}{\kat{AM}_k}
\robust@new@command{\AAVk}{\kat{AAV}_k}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%
%  \begin{macro}{\Abst}
%  \begin{macro}{\Reali}
%  \begin{macro}{\SpecmF}
%  \changes{v0.3}{2006/03/27}{Neu.}
%    Der Abstraktionsfunktor $\Abst : \AMk \to \AAVk$, der
%    Realisierungsfunktor $\Reali : \kAlgK \to \AMk$, der
%  Maximalspektrums-Funktor $\SpecmF : \kAlgK \to \AAVk$.
%    \begin{macrocode}
\robust@new@command{\Abst}{\mathcal A}
\robust@new@command{\Reali}{\mathcal R}
\robust@new@command{\SpecmF}{\kat{\Specm}}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%
% \subsection{neue Umgebungen}
%  \begin{environment}{mathmatrix}
%    \begin{macrocode}
\newenvironment*{mathmatrix}[1][]
{%
   \begin{equation*}
      \everypsbox{\scriptstyle}
      \begin{psmatrix}[arrows=->, colsep=1cm, rowsep=1cm, nodesep=3pt, labelsep=3pt #1]
      }
      {
      \end{psmatrix}
   \end{equation*}%
}
%    \end{macrocode}
%  \end{environment}
%
% \subsection{Index-Formatierungen}
%  \begin{macro}{\use}
%    \changes{v0.2}{2006/03/02}{Verwendet jetzt \cs{hyperpage}}
%    \begin{macrocode}
\newcommand*{\use}[1]{\textit{\hyperpage{#1}}}
%    \end{macrocode}
%  \end{macro}
%
%
% \subsection{Textbausteine}
%  \begin{macro}{\aaav}
%   \changes{v0.2}{2006/03/19}{Neu}
%    \begin{macrocode}
\newcommand{\aaav}
 {abstrakte affine algebraische $k$-Varietät\xspace}
%    \end{macrocode}
%  \end{macro}
% \subsection{Ende}
%
%  \begin{macro}{dummy}
%    \begin{macrocode}
%    \end{macrocode}
%  \end{macro}
% ...
%  \changes{v0.2}{2006/03/19}{Neu: Trennungsausnahme für 'Funk-tor-iso-morph-is-mus'}
%    \begin{macrocode}
\hyphenation{Funk-tor-iso-morph-is-mus}
%    \end{macrocode}
%
%  Das war es.
%    \begin{macrocode}
\endinput
%</package>
%    \end{macrocode}
%
% 
% \Finale
%
%  \DeleteShortVerb{\'}
%  \printFileList[\section]
%
%\endinput


%%% Folgendes ist nur für meinen Editor.
%%%
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End:
