From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/extpfeil/README | 185 ++++++++++++ macros/latex/contrib/extpfeil/extpfeil.dtx | 455 +++++++++++++++++++++++++++++ macros/latex/contrib/extpfeil/extpfeil.ins | 64 ++++ macros/latex/contrib/extpfeil/extpfeil.pdf | Bin 0 -> 132818 bytes macros/latex/contrib/extpfeil/extpfeil.sty | 106 +++++++ 5 files changed, 810 insertions(+) create mode 100644 macros/latex/contrib/extpfeil/README create mode 100644 macros/latex/contrib/extpfeil/extpfeil.dtx create mode 100644 macros/latex/contrib/extpfeil/extpfeil.ins create mode 100644 macros/latex/contrib/extpfeil/extpfeil.pdf create mode 100644 macros/latex/contrib/extpfeil/extpfeil.sty (limited to 'macros/latex/contrib/extpfeil') diff --git a/macros/latex/contrib/extpfeil/README b/macros/latex/contrib/extpfeil/README new file mode 100644 index 0000000000..fe4adf5953 --- /dev/null +++ b/macros/latex/contrib/extpfeil/README @@ -0,0 +1,185 @@ +[en] +LaTeX-package 'extpfeil' - extensible arrows, and a command to +create new ones + +Author: Paul Ebermann +License: LPPL 1.3b or later, author-maintained + (see http://www.latex-project.org/lppl/). + +All Documentation (other than this file) is in german. + +The typesetting of the documentation needs 'pauldoc' (from the +same author). +Additionally you'll need the packages 'amsmath' and 'amssymb'. + +The package comes as .dtx + .ins. +Run "latex extpfeil.ins" to create the style file (and maybe put +it to texmf/tex/latex/paul/, if your docstrip is configured +accordingly), run (after that and maybe updating your TeX hash) +"latex extpfeil.dtx" to create the documentation. + + Usage +------- + +Put \usepackage{extpfeil} in your document preamble. + +Then you can use the extensible arrows + \xtwoheadrightarrow (----->>) + \xtwoheadleftarrow (<<-----) + \xmapsto (|----->) + \xlongequal (=======) + \xtofrom (------> + <----- ) +They work the same way as the extensible arrows in 'amsmath', +'mathtools' or 'extarrows': you give one mandatory argument +(superscript) and one optional argument (subscript), and the +length of the arrow is adapted from the width of the arguments. + + \xlongequal[sub]{super} + + +But - and here is the difference, apart from other set of arrows - +this package also gives a command to create new such arrows: + + \newextarrow{\arrowname}{}{} + +defines \arrowname to be such an arrow. + + should be a list of four numbers (single +tokens or {}-groups), giving (in this order): + - additional space left of the arguments + - additional space right of the arguments + -> those are used to justify the sub/superscripts + after creating the arrow + - additional space left of the arguments + - additional space right of the arguments + -> those are used to determine the length + of the arrow. (I didn't understand the + difference between this two - maybe only + the sum of both matters.) +All numbers are interpreted as mu (math units). + + should be a list of three symbols (single +tokens or {} groups), giving (in this order): + - left end of the arrow + - middle part of the arrow (will be multiplicated, + mostly \relbar or \Relbar) + - right end of the arrow. + +In the (german language) documentation extpfeil.pdf is +also some description about how it works. + +---------------- +[de] +LaTeX-Paket 'extpfeil' - verlängerbare Pfeile, und ein +Befehl, um weitere soche zu definieren. + +Autor: Paul Ebermann (Paul-Ebermann@gmx.de). +Lizenz: LPPL 1.3b oder später, mit Maintenance-Status + "author-maintained". Siehe http://www.latex-project.org/lppl/. + +Geschrieben für den eigenen Gebrauch +(-> http://www.math.hu-berlin.de/~ebermann/alg-script/), +aber vielleicht ist es auch für andere von Nutzen. + +Das Paket benötigt 'amsmath' und 'amssymb'. +Zum Setzen der Dokumentation wird das Paket 'pauldoc' +(vom selben Autor) benötigt. + +Das Paket kommt als .dtx + .ins. +Mit "latex extpfeil.ins" wird die .sty-Datei erstellt (und +eventuell gleich nach texmf/tex/latex/paul/ installiert, +wenn docstrip entsprechend eingerichtet ist), mit +latex extpfeil.dtx kann (danach und eventuell nach einer +Aktualisierung der TeX-Dateidatenbank) die Dokumentation neu +erstellt werden. + +Zur Verwendung siehe extpfeil.pdf. +---------------- +[eo-h] +LaTeX-pakajho 'extpfeil' - plilarghigeblaj sagoj, kaj +komando por krei pliajn tiajn. + +Autoro: Paulo Ebermann (Paul-Ebermann@gmx.de). +Licenzo: LPPL 1.3, 'author-maintained' + (-> http://www.latex-project.org/lppl/). + +Kreitaj por propra uzo, sed eble iom de ghi ankau +uzeblas por aliaj. + +La dokumentaro (escepte tiu chi dosiero) estas nur en la germana +lingvo. + +La pakajho bezonas la pakajhojn 'amsmath' kaj 'amssymb'. +Por krei la dokumentadon vi krome bezonas 'pauldoc' (de la sama autoro). + +La pakajho venas en .dtx + .ins. +Voku "latex extpfeil.ins" por krei la .sty-dosieron (kaj +eble meti ghin al texmf/tex/latex/paul/, se via docstrip estis +konfigurita laue), voku "latex extpfeil.dtx" por rekrei +la dokumentaron. + + Uzado +------- + +Metu + + \usepackage{extpfeil} + +en la komencon de la dokumento (antau \begin{document}). + +Poste vi povas uzi la plilongigeblajn +sagojn + \xtwoheadrightarrow (----->>) + \xtwoheadleftarrow (<<-----) + \xmapsto (|----->) + \xlongequal (=======) + \xtofrom (------> + <----- ) +Ili funkcias same kiel la plilongigeblaj sagoj en +la pakajhoj 'amsmath', 'mathtools' kaj 'extarrows': +vi donu kiel deviga argumento ajhon (formulon) kiu +aperos super la sago, kiel opcia argumento ajhon +(formulon)kiu aperos sub la sago. La longeco de +la sago adaptighas lau la largheco de la argumentoj. + + \xlongequal[sub]{super} + + +Sed - kaj jen la diferenco al la menciitaj pakajhoj, +krom alia aro de sagoj - tiu pakajho ankau donas +komandon por krei pliajn tiajn sagojn: + + \newextarrow{\sagonomo}{}{} + +difinas \sagonomo kiel tia sago. + + estu listo de kvar numeroj (unuopaj +simboloj (ciferoj) au {}-listoj), donante +(en tiu sinsekvo): + - plian spacon maldekstre de la formuloj + - plian spacon dekstre de la formuloj + -> tiuj estas uzataj post la konstruado de + la sago, por shovi la subajn kaj suprajn + formulojn dekstren au maldekstren. + - plian spacon maldekstre de la formuloj + - plian spacon dekstre de la formuloj + -> tiuj estas uzataj por kalkuli la longecon + de la sago. (Mi ne komprenis la diferencon + inter tiuj du - povas esti, ke nur la sumo + de ambau gravas.) +Chiuj numeroj estas interpretataj kiel 'mu' +(matematikaj unuoj). + + estu listo de tri signoj (unuopaj simboloj +au {}-grupoj), donante (en tiu sinsekvo): + + - maldekstran finon de la sago + - mezan parton de la sago (tiu estos multobligita + por plilongigi la sagon, plej ofte estos \relbar + (-) au \Relbar (=)). + - dekstran finon de la sago + + +In la (germanlingva) dokumentajho (extpfeil.pdf) +estas ioma priskribo, kiel funkcias. diff --git a/macros/latex/contrib/extpfeil/extpfeil.dtx b/macros/latex/contrib/extpfeil/extpfeil.dtx new file mode 100644 index 0000000000..71ffe9a8e6 --- /dev/null +++ b/macros/latex/contrib/extpfeil/extpfeil.dtx @@ -0,0 +1,455 @@ +% \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} +% [2009/10/31 v0.4 Extensible Pfeile (PE)] +% +%<*driver> +\documentclass[ngerman, draft]{ltxdoc} +\usepackage{pauldoc} +\usepackage{extpfeil} +\usepackage{array} + +%\OnlyDescription +\begin{document} + \DocInput{extpfeil.dtx} +\end{document} +% +% \fi +% +% \CheckSum{143} +% +% \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} +% +% \changes{v0.2b}{2006/04/11}{Dokumentations-Update: \cs{xmapsto} jetzt auch beschrieben} +% +% \DescribeMacro{\xtwoheadrightarrow} +% \DescribeMacro{\xtwoheadleftarrow} +% \DescribeMacro{\xmapsto} +% \DescribeMacro{\xlongequal} +% \DescribeMacro{\xtofrom} +% \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 \\ +% '\xmapsto[a]{b}' & $\xmapsto[a]{b}$ & ein \emph{wird-abgebildet-auf}-Pfeil nach +% rechts. \\ +% '\xlongequal[a]{b}' & $\xlongequal[a]{b}$ & kein Pfeil, sondern einfach nur ein +% verlängerbares Gleichheitszeichen. \\ +% '\xtofrom[a]{b}' & $\xtofrom[a]{b}$ & Ein Doppelpfeil in beide Richtungen. +% \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} +% +% \pack{mathtools} definiert '\mathrlap' und '\mathllap', welche +% in einigen meiner Befehle verwendet werden. +% \begin{macrocode} +\RequirePackage{mathtools} +% \end{macrocode} +% +% \pack{stmaryrd} enthält viele Symbole, von denen wir nur +% $\shortleftarrow$ und $\shortrightarrow$ brauchen. +% \begin{macrocode} +\RequirePackage[only,shortleftarrow,shortrightarrow]{stmaryrd} +% \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{Verschiedene Pfeile übereinander} \label{twoarrows} +% +% In einigen Schriftsammlungen sind Pfeile wie $\rightleftarrows$ +% und $\rightrightarrows$ (\pack{\AmS symb}) vorhanden. Leider gibt +% es damit einige Probleme, wenn man daraus erweiterbare Pfeile basteln +% möchte: +% \begin{itemize} +% \item Der vertikale Abstand passt nicht zu $\Relbar$, wie +% $\Relbar\mspace{-5mu}\rightrightarrows$ zeigt. +% \item Es gibt keine $\twoarrowsleft\relbar\shortleftarrow$, +% $\twoarrowsright\shortrightarrow\relbar$ etc., um +% daraus einen verlängerbaren Pfeil wie $\xtofrom{\quad}$ zu basteln. +% \end{itemize} +% Die folgenden Makros versuchen dies zu beheben. +% +% \begin{macro}{\twoarrowsleft}\noindent\marg{Pfeil1}\marg{Pfeil2} +% +% \changes{v0.3}{2006/07/27}{Neu.} +% Setzt zwei Pfeile (oder Striche etc.) so zusammen, dass der erste +% zur oberen Linie, der zweite zur unteren Linie von $\Relbar$ ('\Relbar') +% passt. Die beiden Symbole sind am linken Ende ausgerichtet. +% \begin{macrocode} +\newcommand*{\twoarrowsleft}[2]{% + \settoheight{\dimen@}{=}% + \advance\dimen@ by 1pt\relax + \mathrel{% + \mathrlap{\raisebox{0.22\dimen@}[0pt][0pt]{$#1$}}% + \mathrlap{\raisebox{-0.22\dimen@}[0pt][0pt]{$#2$}}% + \hphantom{\vbox{\hbox{$#1$}\hbox{$#2$}}}% + }% +}% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\twoarrowsright} +% \changes{v0.3}{2006/07/27}{Neu.} +% Das gleiche für die Rechtsausrichtung. +% \begin{macrocode} +\newcommand*{\twoarrowsright}[2]{% + \settoheight{\dimen@}{=}% + \advance\dimen@ by 1pt\relax + \mathrel{% + \hphantom{\vbox{\hbox{$\m@th #1 $}\hbox{$\m@th #2 $}}}% + \mathllap{\raisebox{0.22\dimen@}[0pt][0pt]{$\m@th #1 $}}% + \mathllap{\raisebox{-0.22\dimen@}[0pt][0pt]{$\m@th #2 $}}% + }% +}% +% \end{macrocode} +% \end{macro} +% +% Da für einige Zwecke der durch '\Relbar' ($\Relbar$) vorgegebene Abstand +% doch etwas gering ist, hier noch zwei Makros, die genauso funktionieren, +% bei denen der Abstand größer (und mittels optionalem Argument +% konfigurierbar) ist. Danach folgt ein dazu passendes '\bigRelbar'. +% +% +% \begin{macro}{\bigtwoarrowsleft}\noindent\oarg{abstand}\marg{Pfeil1}\marg{Pfeil2} +% +% ^^A \changes{v0.3}{2006/07/27}{Neu.} +% Setzt zwei Pfeile (oder Striche etc.) so zusammen, dass der erste +% zur oberen Linie, der zweite zur unteren Linie von $\bigRelbar$ ('\bigRelbar') +% passt. Die beiden Symbole sind am linken Ende ausgerichtet. +% +%\newextarrow{\xsurjtoInjfrom}{9999} {% +% {\bigtwoarrowsleft{\relbar}{\shortleftarrow}}% +% \bigRelbar% +% {\bigtwoarrowsright{\twoheadrightarrow}{\relbar\joinrel\rhook}}% +%} +% +% Zum Ausprobieren: $A \xsurjtoInjfrom[unten]{oben} B$. +% +% +% \begin{macrocode} +\newcommand*{\bigtwoarrowsleft}[3][5pt]{% + \setlength{\dimen@}{#1}% + \mathrel{% + \mathrlap{\raisebox{0.5\dimen@}{$\m@th #2 $}}% + \mathrlap{\raisebox{-0.5\dimen@}{$\m@th #3 $}}% + \hphantom{\vbox{\hbox{$\m@th #2 $}\hbox{$\m@th #3 $}}}% + }% +}% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\bigtwoarrowsright} +% \changes{v0.3}{2006/07/27}{Neu.} +% Das gleiche für die Rechtsausrichtung. +% \begin{macrocode} +\newcommand*{\bigtwoarrowsright}[3][5pt]{% + \setlength{\dimen@}{#1}% + \mathrel{% + \hphantom{\vbox{\hbox{$\m@th #2 $}\hbox{$\m@th #3 $}}}% + \mathllap{\raisebox{0.5\dimen@}{$\m@th #2 $}}% + \mathllap{\raisebox{-0.5\dimen@}{$\m@th #3 $}}% + }% +}% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\bigRelbar}\noindent\oarg{abstand} +% \begin{macrocode} +\newcommand*{\bigRelbar}[1][5pt]{ + \setlength{\dimen@}{#1}% + \mathrel{% +% \vcenter{\offinterlineskip +% \hbox{$\m@th \relbar$}% +% \hbox{$\m@th \relbar$}% +% }% + \mathrlap{\raisebox{0.5\dimen@}{$\m@th \relbar $}}% + \raisebox{-0.5\dimen@}{$\m@th \relbar$}% + }% +} +% \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 (das '\let' sorgt +% dafür, dass sich '\newcommand' nicht beschwert). +% \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} +% +% \begin{macro}{\xtofrom} +% \changes{v0.3}{2006/07/27}{Neu} +% Ein Doppelpfeil: $\xtofrom[\sin]{\cos}$. +% \begin{macrocode} +\newextarrow + {\xtofrom}% + {55{40}0}% + {% + {\twoarrowsleft\relbar\shortleftarrow}% + \Relbar% + {\twoarrowsright\shortrightarrow\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/macros/latex/contrib/extpfeil/extpfeil.ins b/macros/latex/contrib/extpfeil/extpfeil.ins new file mode 100644 index 0000000000..aaf5a1976d --- /dev/null +++ b/macros/latex/contrib/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: diff --git a/macros/latex/contrib/extpfeil/extpfeil.pdf b/macros/latex/contrib/extpfeil/extpfeil.pdf new file mode 100644 index 0000000000..6ec50badc8 Binary files /dev/null and b/macros/latex/contrib/extpfeil/extpfeil.pdf differ diff --git a/macros/latex/contrib/extpfeil/extpfeil.sty b/macros/latex/contrib/extpfeil/extpfeil.sty new file mode 100644 index 0000000000..53b6caa289 --- /dev/null +++ b/macros/latex/contrib/extpfeil/extpfeil.sty @@ -0,0 +1,106 @@ +%% +%% This is file `extpfeil.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% extpfeil.dtx (with options: `package') +%% +%% ,--------------------------------------------------. +%% | Das ist eine generierte Datei. | +%% | | +%% | (c) 2005-2006 Paul Ebermann. | +%% '--------------------------------------------------' +%% +%% (C) 2005 Paul Ebermann +%% +%% Package extpfeil, mit einigen weiteren in der L^^e4nge +%% wachsenden Pfeilen (^^e0 la \xrightarrow{} aus amsmath). +%% +%% Die Datei extpfeil.dtx sowie die dazugeh^^f6rige +%% 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^^e4ter (nach Wahl des Verwenders). +%% +%% Der 'maintenance-status' ist (zur Zeit) 'author-maintained'. +%% +%% Das hei^^dft u.a., die Dateien d^^fcrfen frei vertrieben werden, +%% bei ^^c4nderungen (durch andere Personen als Paul Ebermann) +%% ist aber der Name der Datei zu ^^e4ndern. +%% +\NeedsTeXFormat{LaTeX2e}[2003/12/01] +\ProvidesPackage{extpfeil} + [2009/10/31 v0.4 Extensible Pfeile (PE)] +\RequirePackage{amsmath} +\RequirePackage{amssymb} +\RequirePackage{mathtools} +\RequirePackage[only,shortleftarrow,shortrightarrow]{stmaryrd} +\newcommand*{\newextarrow}[3] {% + \newcommand*{#1}[2][]{\ext@arrow #2{\arrowfill@#3}{##1}{##2}} +} +\newcommand*{\twoarrowsleft}[2]{% + \settoheight{\dimen@}{=}% + \advance\dimen@ by 1pt\relax + \mathrel{% + \mathrlap{\raisebox{0.22\dimen@}[0pt][0pt]{$#1$}}% + \mathrlap{\raisebox{-0.22\dimen@}[0pt][0pt]{$#2$}}% + \hphantom{\vbox{\hbox{$#1$}\hbox{$#2$}}}% + }% +}% +\newcommand*{\twoarrowsright}[2]{% + \settoheight{\dimen@}{=}% + \advance\dimen@ by 1pt\relax + \mathrel{% + \hphantom{\vbox{\hbox{$\m@th #1 $}\hbox{$\m@th #2 $}}}% + \mathllap{\raisebox{0.22\dimen@}[0pt][0pt]{$\m@th #1 $}}% + \mathllap{\raisebox{-0.22\dimen@}[0pt][0pt]{$\m@th #2 $}}% + }% +}% +\newcommand*{\bigtwoarrowsleft}[3][5pt]{% + \setlength{\dimen@}{#1}% + \mathrel{% + \mathrlap{\raisebox{0.5\dimen@}{$\m@th #2 $}}% + \mathrlap{\raisebox{-0.5\dimen@}{$\m@th #3 $}}% + \hphantom{\vbox{\hbox{$\m@th #2 $}\hbox{$\m@th #3 $}}}% + }% +}% +\newcommand*{\bigtwoarrowsright}[3][5pt]{% + \setlength{\dimen@}{#1}% + \mathrel{% + \hphantom{\vbox{\hbox{$\m@th #2 $}\hbox{$\m@th #3 $}}}% + \mathllap{\raisebox{0.5\dimen@}{$\m@th #2 $}}% + \mathllap{\raisebox{-0.5\dimen@}{$\m@th #3 $}}% + }% +}% +\newcommand*{\bigRelbar}[1][5pt]{ + \setlength{\dimen@}{#1}% + \mathrel{% + \mathrlap{\raisebox{0.5\dimen@}{$\m@th \relbar $}}% + \raisebox{-0.5\dimen@}{$\m@th \relbar$}% + }% +} +\newextarrow{\xtwoheadrightarrow} + {05{40}0} + {\relbar\relbar\twoheadrightarrow} +\newextarrow{\xtwoheadleftarrow} + {500{40}} + {\twoheadleftarrow\relbar\relbar} +\let\xmapsto\undefined +\newextarrow{\xmapsto}{0599}{{\mapstochar\relbar}\relbar\rightarrow} +\newextarrow{\xlongequal}{5599}{\Relbar\Relbar\Relbar} +\newextarrow + {\xtofrom}% + {55{40}0}% + {% + {\twoarrowsleft\relbar\shortleftarrow}% + \Relbar% + {\twoarrowsright\shortrightarrow\relbar}% + }% + +\endinput +%% +%% End of file `extpfeil.sty'. -- cgit v1.2.3