summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/extpfeil/extpfeil.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/extpfeil/extpfeil.dtx')
-rw-r--r--Master/texmf-dist/source/latex/extpfeil/extpfeil.dtx307
1 files changed, 307 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/extpfeil/extpfeil.dtx b/Master/texmf-dist/source/latex/extpfeil/extpfeil.dtx
new file mode 100644
index 00000000000..72b416b1c0a
--- /dev/null
+++ b/Master/texmf-dist/source/latex/extpfeil/extpfeil.dtx
@@ -0,0 +1,307 @@
+% \iffalse meta-comment
+%
+%% (C) 2005 Paul Ebermann
+%%
+%% Package extpfeil, mit einigen weiteren in der Länge
+%% wachsenden Pfeilen (à la \xrightarrow{} aus amsmath).
+%%
+%% Die Datei extpfeil.dtx sowie die dazugehörige
+%% extpfeil.ins sowie die damit generierte
+%% extpfeil.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{extpfeil}
+%<package> [2006/03/23 v0.2a Extensible Pfeile (PE)]
+%
+%<*driver>
+\documentclass[ngerman, draft]{ltxdoc}
+\usepackage{pauldoc}
+\usepackage{extpfeil}
+\usepackage{array}
+
+%\OnlyDescription
+\begin{document}
+ \DocInput{extpfeil.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{32}
+%
+% \changes{v0.0}{2006/01/18}{Anfang der Fassung als DTX}
+%
+% \GetFileInfo{extpfeil.sty}
+%
+% \DoNotIndex{\endinput,\newcommand,\RequirePackage}
+%
+% \title{Das \pack{extpfeil}-Package -- Weitere erweiterbare Pfeile\thanks{Diese
+% Dokumentation gehört zu \pack{extpfeil}~\fileversion,
+% vom~\filedate.}}
+% \author{Paul Ebermann\footnote{\texttt{Paul-Ebermann@gmx.de}}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% Dieses Paket definiert eine Reihe erweiterbare Pfeile,
+% sowie ein Kommando, um selbst weitere zu definieren.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Benutzerdoku}
+%
+% Dieses Paket definiert einige erweiterbare Pfeile,
+% sowie ein Kommando, um selbst weitere zu definieren\ifReferenceExists{sec:newextarrow}
+% { (siehe Abschnitt \ref{sec:newextarrow}).}{. (Dieses ist nur
+% in der Implementations-Version der Doku beschrieben, denn die muss
+% man sowieso lesen, um es zu verstehen.)}
+%
+% \subsection{Generelle Benutzung der Pfeile}
+%
+% Die Pfeile funktionieren wie die Pfeile '\xleftarrow' und '\xrightarrow'
+% aus \AmS-\pack{Math} sowie diverse weitere Pfeile aus \pack{mathtools} bzw.
+% \pack{extarrows} (letzteres Paket habe ich erst später entdeckt -- es hat
+% auch keine Dokumentation).
+% Die generelle Syntax ist
+% \begin{quote}
+% \meta{pfeilname}\oarg{subscript}\marg{superscript}
+% \end{quote}
+% \meta{pfeilname} ist das entsprechend definierte Kommando (siehe Abschnitt \ref{pfeilliste})
+% \meta{subscript} eine Formel, die (falls vorhanden) unter den Pfeil gesetzt
+% wird, \meta{superscript} eine, die über den Pfeil gesetzt wird. Der Pfeil selbst
+% nimmt dann eine ausreichend hohe Länge an, um an beiden Seiten etwas über die
+% Formel hinauszuragen.
+%
+% \subsection{Die einzelnen Pfeile}\label{pfeilliste}
+%
+% \DescribeMacro{\xtwoheadrightarrow}
+% \DescribeMacro{\xtwoheadleftarrow}
+% \DescribeMacro{\xlongequal}
+% \begin{tabular}[t]{lcp{5cm}}
+% '\xtwoheadrightarrow[a]{b}' & $\xtwoheadrightarrow[a]{b}$ & ein einfacher Pfeil nach rechts mit Doppelspitze \\
+% '\xtwoheadleftarrow[a]{b}' & $\xtwoheadleftarrow[a]{b}$ & ein einfacher Pfeil nach links mit Doppelspitze \\
+% '\xlongequal[a]{b}' & $\xlongequal[a]{b}$ & kein Pfeil, sondern einfach nur ein
+% verlängerbares Gleichheitszeichen.
+% \end{tabular}
+%
+%
+% \StopEventually{\PrintChanges\PrintIndex}
+%
+% \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 \~}
+%
+%
+% \section{Implementation}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+% \subsection{geladene Pakete}
+%
+% Zunächst laden wir das \pack{amsmath}-Package, in welchem
+% die verwendeten Makros definiert sind, sowie \pack{amssymb},
+% in dem sich einige verwendete Symbole aufhalten.
+% \begin{macrocode}
+\RequirePackage{amsmath}
+\RequirePackage{amssymb}
+% \end{macrocode}
+%
+% \subsection{Die verwendeten \pack{amsmath}-Funktionen}
+%
+% Leider ist die Dokumentation der \AmS-Math-Funktionen\footnote{in
+% Abschnitt 12 von 'amsmath.dvi', ab Seite 25 in der Version 2.13}
+% etwas dürftig -- ich musste mir selbst zusammenreimen, was
+% wie funktionieren könnte. Deswegen sind im folgenden die Ergebnisse meiner
+% Forschungen niedergelegt.
+%
+% \DescribeMacro{\relbar}
+% \DescribeMacro{\Relbar}
+% Ich verwende für meine Pfeile '\relbar' -- das ist einfach nur
+% ein Minus-Zeichen ($\relbar$) (der Leerraum oben und unten etwas verkleinert, damit
+% Super- und Subskripte nicht so weit weg sind), als verlängerbares
+% Element. Genauso gibt es auch '\Relbar' ($\Relbar$) für Doppelpfeile.
+%
+% \DescribeMacro{\arrowfill@}
+% \cmd{\arrowfill@}\marg{links}\marg{mitte}\marg{rechts}\marg{größe} wird benutzt, um
+% dehnbare Pfeile zu erstellen. Das Makro bekommt 4 Parameter:
+%
+% \meta{links} ist das linke Ende des Pfeils, \meta{rechts} das rechte Ende.
+%
+% \meta{mitte} ist das, was verlängerbar gemacht wird - also am besten
+% '\relbar' oder '\Relbar'.
+%
+% \meta{größe} wird dem Makro von \cmd{\ext@arrow} (bzw. anderen Makros, die
+% mit '\arrowfill@' gebastelte Pfeile verwenden) übergeben, darum muss man sich
+% beim Erstellen von Pfeilen also nicht kümmern -- es ist ein Kommando, um die
+% Mathe-Schriftgröße einzustellen, (bei '\ext@arrow' ist es '\displaystyle').
+%
+% Ein Beispiel der Anwendung\footnote{aus amsmath.dtx} ist
+%\begin{verbatim}
+% \def\leftarrowfill@{\arrowfill@\leftarrow\relbar\relbar}
+%\end{verbatim}
+% Das linke Ende ist also ein '\leftarrow' ($\leftarrow$), das
+% rechte Ende (genauso wie die Mitte) ein '\relbar' ($\relbar$).
+% Insgesamt führt das (mit einer Übergabe von '\textstyle') zu
+% {\makeatletter{\leftarrowfill@{\textstyle}}\makeatother} (hier
+% ziemlich lang, da es ja den Platz füllt).
+%
+% \DescribeMacro{\ext@arrow}
+% \cmd{\ext@arrow}\marg{li 1}\marg{re 1}^^A
+% \marg{li 2}\marg{re 2}\marg{Pfeil}\marg{oben}\marg{unten}
+% ist nun das Kommando, welches einen (mit '\arrowfill@' erstellten)
+% Pfeil in der richtigen Länge mit etwas darüber und darunter ausgibt.
+%
+% \meta{oben} ist eine Formel, die über
+% dem Pfeil ausgegeben wird, \meta{unten} eine Formel, die unter
+% dem Pfeil ausgegeben wird. Beides kann auch leergelassen werden,
+% dann wird eben nichts dort ausgegeben.
+%
+% \meta{Pfeil} gibt den Pfeil an, der zu verwenden ist -- dies sollte
+% aus '\arrowfill@' mit den ersten drei Parametern gebildet sein
+% (entweder in '{}' -- so werden wir es nachher machen -- oder als
+% extra-Makro (wie '\leftarrowfill@').
+%
+% \meta{li 1} und \meta{re 1} geben an, wieviel Platz
+% vor und nach \meta{oben} und \meta{unten} gelassen werden soll --
+% mittels '\mkern', die Einheit dazu ist 'mu' (\emph{Math units}). Damit
+% kann man die Position der Formeln über/unter dem Pfeil etwas seitlich
+% anpassen.
+%
+% \meta{li 2} und \meta{re 2} funktionieren ähnlich, werden allerdings
+% nur zum Berechnen der Länge des Pfeiles verwendet. Damit kann man
+% die Länge des Pfeiles noch etwas über die Breite der Formel hinaus
+% ausdehnen. Ich habe keine Ahnung, ob zwischen \meta{li 2} und \meta{re 2}
+% ein funktioneller Unterschied besteht, oder ob einfach nur die Summe
+% von beidem zählt.
+%
+% Zum Definieren eines Pfeiles mit Sub- und Superskript geht man z.B. so
+% vor\footnote{aus 'amsmath.dtx', Zeilenumbruch von mir}:
+% \begin{verbatim}
+% \newcommand{\xleftarrow}[2][]{%
+% \ext@arrow 3095\leftarrowfill@{#1}{#2}}\end{verbatim}
+% Die ersten 4 Parameter werden also hier als einzelne Ziffern
+% übergeben (ohne '{}'), dann ('\leftarrowfill@') ein mit '\arrowfill@'
+% erstellter dehnbarer Pfeil, zum Schluss die beiden Parameter des
+% definierten Makros. Das Ergebnis ist z.B.
+% $$ \xleftarrow[unten]{oben}.$$
+%
+% \subsection{Neue Pfeile}
+% \label{sec:newextarrow}
+% Wir kombinieren jetzt die beiden oben vorgestellten Kommandos,
+% um so einfacher eigene Pfeile erstellen zu können.
+%
+% \DescribeMacro{\newextarrow}
+% \changes{v0.1}{2006/01/31}{Alle Pfeile verwenden nun newextarrow zur Definition.}
+% '\newextarrow'\marg{befehl}\marg{platz}\marg{pfeil}
+% definiert das Kommando \meta{befehl} als dehnbares Zeichen
+% (mit ober- und Unterscript), mit den Platz-Angaben in \meta{platz}
+% (dies sollte 4 Token enthalten) und den Pfeil-Teilen in \meta{pfeil}
+% (das sollte drei Token enthalten).
+%
+% \begin{macro}{\newextarrow}
+% \changes{v0.1}{2006/01/31}{Neu hinzu}
+% Das damit definierte Makro ruft also '\ext@arrow' auf, mit den Parametern
+% \meta{platz}, dem aus '\arrowfill@' und \meta{pfeil} zusammengesetzten
+% Pfeil sowie seinen beiden eigenen Parametern (der erste davon ist optional) auf.
+% \begin{macrocode}
+\newcommand*{\newextarrow}[3] {%
+ \newcommand*{#1}[2][]{\ext@arrow #2{\arrowfill@#3}{##1}{##2}}
+}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \subsection{Weitere Pfeile}
+% Ich verwende jetzt '\newextarrow', um weitere Pfeile zu erstellen.
+%
+% \begin{macro}{\xtwoheadrightarrow}
+% Unser Pfeil sollte ziemlich weit überstehen,
+% deswegen die '{40}'. '05' scheint zur
+% Justierung der Formeln ganz gut zu passen.
+% \begin{macrocode}
+\newextarrow{\xtwoheadrightarrow}
+ {05{40}0}
+% \end{macrocode}
+% Den Pfeil selbst setzen wir aus $\twoheadrightarrow$
+% (aus \pack{amssymb}) sowie den üblichen '\relbar' zusammen:
+% \begin{macrocode}
+ {\relbar\relbar\twoheadrightarrow}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\xtwoheadleftarrow}
+% Das geht analog zu '\xtwoheadrightarrow' (die \meta{li}- und \meta{re}-Parameter
+% sind vertauscht, da der Pfeil ja genau gespiegelt ist).
+% \begin{macrocode}
+\newextarrow{\xtwoheadleftarrow}
+ {500{40}}
+ {\twoheadleftarrow\relbar\relbar}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\xmapsto}
+% \changes{v0.2}{2006/03/19}{Neu.}
+% Hier noch eine verlängerbare Variante von $\mapsto$ und $\longmapsto$.
+% \pack{mathtools} hat bereits eine Implementation davon, aber diese
+% ist etwas länger und gefällt mir daher besser.
+% \begin{macrocode}
+\let\xmapsto\undefined
+\newextarrow{\xmapsto}{0599}{{\mapstochar\relbar}\relbar\rightarrow}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\xlongequal}
+% \changes{v0.1}{2006/01/31}{Neu hinzu}
+% Alle drei Teile bestehen aus $\Relbar$,
+% \begin{macrocode}
+\newextarrow{\xlongequal}{5599}{\Relbar\Relbar\Relbar}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Schluss}
+% Das war es fürs erste -- später kommen
+% bestimmt noch mehr Pfeile hinzu.
+%
+% \begin{macrocode}
+\endinput
+%</package>
+% \end{macrocode}
+%
+% \Finale
+%\endinput
+
+
+%%% Folgendes ist nur für meinen Editor.
+%%%
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: t
+%%% End: