From ca34dcaa4d8d279eeba2bb2725cbc695c55e1ae0 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 10 Jul 2006 21:04:45 +0000 Subject: new package extpfeil (11apr06) git-svn-id: svn://tug.org/texlive/trunk@1802 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/source/latex/extpfeil/extpfeil.dtx | 307 +++++++++++++++++++++ .../texmf-dist/source/latex/extpfeil/extpfeil.ins | 64 +++++ 2 files changed, 371 insertions(+) create mode 100644 Master/texmf-dist/source/latex/extpfeil/extpfeil.dtx create mode 100644 Master/texmf-dist/source/latex/extpfeil/extpfeil.ins (limited to 'Master/texmf-dist/source/latex/extpfeil') 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 +%\NeedsTeXFormat{LaTeX2e}[2003/12/01] +%\ProvidesPackage{extpfeil} +% [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} +% +% \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 +% +% \end{macrocode} +% +% \Finale +%\endinput + + +%%% Folgendes ist nur für meinen Editor. +%%% +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/source/latex/extpfeil/extpfeil.ins b/Master/texmf-dist/source/latex/extpfeil/extpfeil.ins new file mode 100644 index 00000000000..aaf5a1976dc --- /dev/null +++ b/Master/texmf-dist/source/latex/extpfeil/extpfeil.ins @@ -0,0 +1,64 @@ +%% +%% (C) 2002-2006 Paul Ebermann +%% +%% Der vollständige Urheberrechtshinweis befindet sich +%% am Begin von extpfeil.dtx. +%% +%% Ich gebe keine Garantie irgendeiner Art. +%% + + + +\input docstrip.tex +\usedir{tex/latex/paul} + +\Msg{**********************************************************} +\Msg{* Ich werde Dateien in \showdirectory{tex/latex/paul} } +\Msg{* installieren. Bitte stellen Sie sicher, } +\Msg{* dass dieses Verzeichnis vorhanden ist. } +\Msg{* } + +%% der folgende Text wird in jeder generierten +%% Datei am Anfang eingefügt. +\preamble + + ,--------------------------------------------------. + | Das ist eine generierte Datei. | + | | + | (c) 2005-2006 Paul Ebermann. | + '--------------------------------------------------' + +\endpreamble + + +\generate{\file{extpfeil.sty}{\from{extpfeil.dtx}{package}}} + +\Msg{#######################} +\Msg{# } +\Msg{# Um die Installation zu beenden, } +\Msg{# müssen Sie die folgenden Dateien } +\Msg{# in Ihrem TeX-Suchbaum unterbringen: } +\Msg{# } +\Msg{# extpfeil.sty } +\Msg{# } +\Msg{# Um eine Dokumentation zu erzeugen, } +\Msg{# benutzen Sie } +\Msg{# } +\Msg{# latex extpfeil.dtx } +\Msg{# } +\Msg{# Viel Spaß } +\Msg{# Paul Ebermann } +\Msg{# } +\Msg{#######################} + +\endbatchfile + + + + +%%% Folgendes ist nur für meinen Editor. +%%% +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% End: -- cgit v1.2.3