summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/oberdiek/telprint.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/oberdiek/telprint.sty')
-rw-r--r--Master/texmf-dist/tex/latex/oberdiek/telprint.sty254
1 files changed, 254 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/oberdiek/telprint.sty b/Master/texmf-dist/tex/latex/oberdiek/telprint.sty
new file mode 100644
index 00000000000..3216a52dca6
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/oberdiek/telprint.sty
@@ -0,0 +1,254 @@
+% File: telprint.sty
+% Version: 2006/02/12 v1.6
+% Author: Heiko Oberdiek
+% Email: <oberdiek@uni-freiburg.de>
+%
+% Copyright: Copyright (C) 2006 Heiko Oberdiek.
+%
+% This work may be distributed and/or modified under
+% the conditions of the LaTeX Project Public License,
+% either version 1.3 of this license or (at your option)
+% any later version. The latest version of this license
+% is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions
+% of LaTeX version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% Function: This is a very old package that I have written
+% to format phone numbers. It follows German
+% conventions and the documentation is in German
+% at the end of this file. :-(
+% It follows a short overview in English:
+%
+% Use: LaTeX:
+% \usepackage{telprint}
+% \telprint{123/456-789}
+% plain:
+% \input telprint.sty
+% \telprint{123/456-789}
+%
+% \telprint{...} formats the explicitly given number.
+% Digits, spaces and some special characters
+% ('+', '/', '-', '(', ')', '~', ' ') are supported.
+% Numbers are divided into groups of two digits from the right.
+% Examples:
+% \telprint{0761/12345} ==> 07\,61/1\,23\,45
+% \telprint{01234/567-89} ==> 0\,12\,34/5\,67\leavevmode\hbox{-}89
+% \telprint{+49 (6221) 297} ==> +49~(62\,21)~2\,97
+%
+% The output of the configured by
+% \telhyphen, \telslash, \telleftparen, \telrightparen, \telplus,
+% \teltilde.
+% Example:
+% \telslash{\,/\,}
+% \telprint{12/34} ==> 12\,/\,34
+%
+% \telspace configures the space between digit groups.
+%
+% \telnumber only formats a number in digit groups; special
+% characters are not recognized.
+%
+%
+\ifx\telprint\UnDeFiNeD
+% \fi in derselben Zeile wie \endinput oder \expandafter verwenden!
+\else\endinput\fi
+
+\message{Package `telprint' 1.6, 12.02.2006 %
+ Copyright (c) 1996, 1997, 2004, 2005, 2006 by Heiko Oberdiek.}
+
+\ifx\DeclareRobustCommand\UnDeFiNeD
+ \def\DeclareRobustCommand*#1[1]{\def#1##1}
+ \def\TELreset{\let\DeclareRobustCommand=\UnDeFiNeD}
+ \immediate\write-1{Package `telprint' warning: %
+ Macros are not robust!}
+\else
+ \let\TELreset=\relax
+\fi
+
+\DeclareRobustCommand*{\telspace}[1]{\def\TELspace{#1}}
+\telspace{{}$\,${}}
+
+\DeclareRobustCommand*{\telhyphen}[1]{\def\TELhyphen{#1}}
+\telhyphen{\leavevmode\hbox{-}}% \hbox zur Verhinderung der Trennung
+
+\DeclareRobustCommand*{\telslash}[1]{\def\TELslash{#1}}
+\telslash{/}%
+
+\DeclareRobustCommand*{\telleftparen}[1]{\def\TELleftparen{#1}}
+\telleftparen{(}%
+
+\DeclareRobustCommand*{\telrightparen}[1]{\def\TELrightparen{#1}}
+\telrightparen{)}%
+
+\DeclareRobustCommand*{\telplus}[1]{\def\TELplus{#1}}
+\telplus{+}%
+
+\DeclareRobustCommand*{\teltilde}[1]{\def\TELtilde{#1}}
+\teltilde{~}%
+
+\newtoks\TELtoks
+
+\def\TELnumber#1#2\TELnumberEND{%
+ \begingroup
+ \def\0{#2}%
+ \expandafter\endgroup
+ \ifx\0\empty
+ \TELtoks=\expandafter{\the\TELtoks#1}%
+ \ifnum\TELswitch=0
+ \def\TELx{\TELspace}\def\TELy{}%
+ \else
+ \def\TELx{}\def\TELy{\TELspace}%
+ \fi
+ \the\TELtoks
+ \else
+ \ifnum\TELswitch=0
+ \TELtoks=\expandafter{\the\TELtoks#1\TELx}%
+ \def\TELswitch{1}%
+ \else
+ \TELtoks=\expandafter{\the\TELtoks#1\TELy}%
+ \def\TELswitch{0}%
+ \fi
+ \TELnumber#2\TELnumberEND
+ \fi
+}
+
+\DeclareRobustCommand*{\telnumber}[1]{%
+ \TELtoks={}%
+ \def\TELswitch{0}%
+ \TELnumber#1{}\TELnumberEND
+}
+
+
+\def\TELsplit{\futurelet\TELfuture\TELdosplit}
+
+\def\TELdosplit#1#2\TELsplitEND
+{%
+ \def\TELsp{ }%
+ \expandafter\ifx\TELsp\TELfuture
+ \let\TELfuture=\relax
+ \expandafter\telnumber\expandafter{\the\TELtoks}~%
+ \telprint{#1#2}% Das Leerzeichen kann nicht #1 sein!
+ \else
+ \def\TELfirst{#1}%
+ \ifx\TELfirst\empty
+ \expandafter\telnumber\expandafter{\the\TELtoks}%
+ \TELtoks={}%
+ \else\if-\TELfirst
+ \expandafter\telnumber\expandafter{\the\TELtoks}\TELhyphen
+ \telprint{#2}%
+ \else\if/\TELfirst
+ \expandafter\telnumber\expandafter{\the\TELtoks}\TELslash
+ \telprint{#2}%
+ \else\if(\TELfirst
+ \expandafter\telnumber\expandafter{\the\TELtoks}\TELleftparen
+ \telprint{#2}%
+ \else\if)\TELfirst
+ \expandafter\telnumber\expandafter{\the\TELtoks}\TELrightparen
+ \telprint{#2}%
+ \else\if+\TELfirst
+ \expandafter\telnumber\expandafter{\the\TELtoks}\TELplus
+ \telprint{#2}%
+ \else\def\TELtemp{~}\ifx\TELtemp\TELfirst
+ \expandafter\telnumber\expandafter{\the\TELtoks}\TELtilde
+ \telprint{#2}%
+ \else
+ \TELtoks=\expandafter{\the\TELtoks#1}%
+ \TELsplit#2{}\TELsplitEND
+ \fi\fi\fi\fi\fi\fi\fi
+ \fi
+}
+
+\DeclareRobustCommand*{\telprint}[1]{%
+ \TELtoks={}%
+ \TELsplit#1{}\TELsplitEND
+}
+
+\TELreset\let\TELreset=\UnDeFiNeD
+
+\endinput
+
+% _History_
+% * Version 1.0 vom 28.11.1996
+% - Erste lauffaehige Version.
+% - Nur '-' und '/' als zulaessige Sonderzeichen.
+% * Version 1.1 vom 16.09.1997
+% - Dokumentation und Kommentare (Posting in de.comp.text.tex).
+% - Erweiterung um Sonderzeichen '(', ')', '+', '~' und ' '.
+% - Trennungsverhinderung am "hyphen".
+% * Version 1.2 vom 16.10.1997
+% - Schutz vor wiederholtem Einlesen.
+% - Unter LaTeX2e Nutzung des \DeclareRobustCommand-Features.
+% * Version 1.3 vom 09.12.1997
+% - Temporaere Variable eingespart.
+% * Version 1.4 vom 02.11.2004
+% - Fehler in der Dokumentation korrigiert.
+% * Version 1.5 vom 30.09.2005
+% - Konfigurierbare Symbolde: '/', '(', ')', '+' und '~'.
+% * Version 1.6 vom 12.02.2006
+% - LPPL 1.3.
+% - Kurze Uebersicht in Englisch.
+% - CTAN.
+%
+% _Dokumentation_
+% * \telprint#1
+% Der eigentliche Anwenderbefehl zur formatierten Ausgabe von
+% Telefonnummern. Diese duerfen dabei nur als Zahlen angegeben
+% werden(, da sie tokenweise analysiert werden).
+% Als Trenn- oder Sonderzeichen werden unterstuetzt:
+% '+', '/', '-', '(', ')', '~', ' '
+% Einfache Leerzeichen werden erkannt und durch Tilden ersetzt, um
+% Trennungen in der Telefonnummer zu verhindern. (Man beachte aus
+% gleichem Grunde die \hbox bei '-'.)
+% Beispiele:
+% \telprint{0761/12345} ==> 07\,61/1\,23\,45
+% \telprint{01234/567-89} ==> 0\,12\,34/5\,67\leavevmode\hbox{-}89
+% \telprint{+49 (6221) 297} ==> +49~(62\,21)~2\,97
+%
+% Der Rest enthaelt eher Technisches:
+% * \telspace#1
+% Mit diesem Befehl wird der Abstand zwischen den Zifferngruppen
+% angegeben (Default: \,).
+% (Durch \telspace{} kann dieser zusaetzliche Abstand abgestellt
+% werden.)
+% * \telhyphen#1
+% Dieser Befehl gibt die Art des Bindestriches, wie er ausgegeben
+% werden soll. In der Eingabe darf jedoch nur der einfache
+% Bindestrich stehen:
+% \telprint{123-45}, jedoch NIE \telprint{123--45}!
+% Kopka-Bindestrich-Fans geben an:
+% \telhyphen{\leavevmode\hbox{--}}
+% * \telslash#1, \telleftparen#1, \telrightparen#1, \telplus#1,
+% \teltilde
+% Diese Befehle konfigurieren die Zeichen '/', '(', ')', '+'
+% und '~'. Sie funktionieren analog zu \telhyphen.
+% * \telnumber#1
+% Richtung interner Befehl: Er dient dazu, eine Zifferngruppe
+% in Zweiergruppen auszugeben.
+% Die einzelnen Zahlen werden im Tokenregister \TELtoks
+% gespeichert. Abwechselnd werden dabei zwischen zwei Token
+% (Zahlen) \TELx bzw. \TELy eingefuegt, abhaengig von dem
+% wechselnden Wert von \TELswitch. Zum Schluss kann dann einfach
+% festgestellt werden ob die Nummer nun eine geradzahlige oder
+% ungeradzahlige Zahl von Ziffern aufwies. Dem entsprechend wird
+% \TELx mit dem Zusatzabstand belegt und \TELy leer definiert
+% oder umgekehrt. )
+% * \TEL... interne Befehle, Technisches:
+% \TELsplit dient zur Aufteilung einer zusammengesetzten
+% Telefonnummer (Vorwahl, Hauptnummer, Nebenstelle). In dieser
+% Implementation werden als Trennzeichen nur '/' und '-' erkannt.
+% Die einzelnen Bestandteile wie Vorwahl werden dann dem Befehl
+% \telnumber zur Formatierung uebergeben.
+% * Die Erkennung von einfachen Leerzeichen ist um einiges
+% schwieriger: Die Tokentrennung ueber Parameter #1#2 funktioniert
+% nicht fuer einfache Leerzeichen, da TeX sie _niemals_ als
+% eigenstaendige Argumente behandelt!!! (The TeXbook, Chapter 20,
+% p. 201)
+% (Anmerkung am Rande: Deshalb funktionieren die entsprechenden
+% Tokenmakros auf S. 149 des Buches "Einfuehrung in TeX" von
+% N. Schwarz (3. Aufl.) nicht, wenn im Tokenregister als erstes
+% ein einfaches Leerzeichen steht!)
+%