texlive[63299] Master/texmf-dist: phonenumbers (14may22)

commits+karl at tug.org commits+karl at tug.org
Sat May 14 22:32:32 CEST 2022


Revision: 63299
          http://tug.org/svn/texlive?view=revision&revision=63299
Author:   karl
Date:     2022-05-14 22:32:32 +0200 (Sat, 14 May 2022)
Log Message:
-----------
phonenumbers (14may22)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/phonenumbers/README
    trunk/Master/texmf-dist/doc/latex/phonenumbers/phonenumbers-de.pdf
    trunk/Master/texmf-dist/doc/latex/phonenumbers/phonenumbers-de.tex
    trunk/Master/texmf-dist/doc/latex/phonenumbers/phonenumbers-en.pdf
    trunk/Master/texmf-dist/doc/latex/phonenumbers/phonenumbers-en.tex
    trunk/Master/texmf-dist/tex/latex/phonenumbers/phonenumbers.sty

Modified: trunk/Master/texmf-dist/doc/latex/phonenumbers/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/phonenumbers/README	2022-05-14 20:32:17 UTC (rev 63298)
+++ trunk/Master/texmf-dist/doc/latex/phonenumbers/README	2022-05-14 20:32:32 UTC (rev 63299)
@@ -9,8 +9,8 @@
 numbers using the hyperref package.
 
 Package author: K. Wehr
-Version: 2.3
-Date: 20th August 2021
+Version: 2.4
+Date: 13th May 2022
 
 The phonenumbers package is subject to the LaTeX Project Public License,
 version 1.3 or later.

Modified: trunk/Master/texmf-dist/doc/latex/phonenumbers/phonenumbers-de.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/phonenumbers/phonenumbers-de.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/phonenumbers/phonenumbers-de.tex	2022-05-14 20:32:17 UTC (rev 63298)
+++ trunk/Master/texmf-dist/doc/latex/phonenumbers/phonenumbers-de.tex	2022-05-14 20:32:32 UTC (rev 63299)
@@ -1,6 +1,6 @@
 % phonenumbers package: German manual
-% Version 2.3
-% Datum: 20. August 2021
+% Version 2.4
+% Datum: 13. Mai 2022
 \documentclass[numbers=noenddot]{scrreprt}
 \usepackage[french,ngerman]{babel}
 \usepackage{fontspec}
@@ -16,15 +16,15 @@
 \usepackage{cnltx-example}
 \usepackage{cnltx-tools}
 \usepackage[colorlinks=true,
-	allcolors=black,
-	bookmarksopen=true,
-	bookmarksopenlevel=0,
-	bookmarksnumbered=true,
-	pdfencoding=auto,
-	pdftitle={Setzen von Telefonnummern mit LaTeX},
-	pdfsubject={Anleitung zum Paket PHONENUMBERS},
-	pdfkeywords={latex phonenumbers Telefonnummern},
-	pdfauthor={K. Wehr}]{hyperref}
+  allcolors=black,
+  bookmarksopen=true,
+  bookmarksopenlevel=0,
+  bookmarksnumbered=true,
+  pdfencoding=auto,
+  pdftitle={Setzen von Telefonnummern mit LaTeX},
+  pdfsubject={Anleitung zum Paket PHONENUMBERS},
+  pdfkeywords={latex phonenumbers Telefonnummern},
+  pdfauthor={K. Wehr}]{hyperref}
 
 \setmainfont{TeX Gyre Bonum}
 \setmonofont{Latin Modern Mono}[Scale=MatchLowercase]
@@ -53,16 +53,16 @@
 \renewcommand{\labelnamepunct}{\addcolon\space}
 
 \definecolorscheme{phonecolor}{
-	cs => cnltxformalblue,
-	option => cnltxbrown,
-	cnltx => cnltxgreen
+  cs => cnltxformalblue,
+  option => cnltxbrown,
+  cnltx => cnltxgreen
 }
 
 \setcnltx{
-	add-cmds = {setphonenumbers,phonenumber,href},
-	color-scheme = phonecolor,
-	add-listings-options = {numbers=none},
-	pre-output = {\raggedright}
+  add-cmds = {setphonenumbers,phonenumber,href},
+  color-scheme = phonecolor,
+  add-listings-options = {numbers=none},
+  pre-output = {\raggedright}
 }
 
 \makeatletter
@@ -71,7 +71,7 @@
 \makeatother
 
 \DeclareNewLayer[background,bottommargin,mode=picture,hoffset=7cm,
-	contents={\includegraphics{Telefonhoerer}}]{Telefonebene}
+  contents={\includegraphics{Telefonhoerer}}]{Telefonebene}
 
 \AddLayersToPageStyle{plain}{Telefonebene}
 \AddLayersToPageStyle{scrheadings}{Telefonebene}
@@ -79,104 +79,108 @@
 \ExplSyntaxOn
 
 \NewDocumentEnvironment {Befehlsliste} { }
-	{
-		\begin{list}{ }
-			{
-				\setlength{\leftmargin}{0pt}
-				\setlength{\itemindent}{-1em}
-				\setlength{\parsep}{0pt}
-				\setlength{\listparindent}{\parindent}
-				\setlength{\itemsep}{\topsep}
-			}
-	}
-	{
-		\end{list}
-	}
+  {
+    \begin{list}{ }
+      {
+        \setlength{\leftmargin}{0pt}
+        \setlength{\itemindent}{-1em}
+        \setlength{\parsep}{0pt}
+        \setlength{\listparindent}{\parindent}
+        \setlength{\itemsep}{\topsep}
+      }
+  }
+  {
+    \end{list}
+  }
 
 \NewDocumentCommand \Befehlsbeschreibung {m o}
-	{
-		\item
-		\cs{#1}
-		\IfValueT{#2}{#2}
-		\\
-	}
+  {
+    \item
+    \cs{#1}
+    \IfValueT{#2}{#2}
+    \\
+  }
 
 \NewDocumentCommand \Optionsbeschreibung {m m m}
-	{
-		\item
-		\option{#1}~=~\choices{#2}
-		\hfill
-		Voreinstellung:~\code{#3}
-		\\
-	}
+  {
+    \item
+    \option{#1}~=~\choices{#2}
+    \hfill
+    Voreinstellung:~\code{#3}
+    \\
+  }
 
 \ExplSyntaxOff
 
-\newcommand*{\Paket}[1]{\textsc{#1}}
-\newcommand{\phone}{\textcolor{cnltx}{\Paket{phone\-numbers}}}
+\newcommand*\Paket[1]{\textsc{#1}}
+\newcommand\phone{\textcolor{cnltx}{\Paket{phone\-numbers}}}
 
-\newcommand{\UeberschriftGeltungsbereich}{\section{Geltungsbereich}}
+\newcommand\UeberschriftGeltungsbereich{\section{Geltungsbereich}}
 
-\newcommand{\UeberschriftAufbau}{\section{Aufbau der Nummern}}
+\newcommand\UeberschriftAufbau{\section{Aufbau der Nummern}}
 
-\newcommand*{\UeberschriftOptionen}[1]{\section{Optionen}\label{optionen-#1}}
+\newcommand*\UeberschriftOptionen[1]{\section{Optionen}\label{optionen-#1}}
 
-\newcommand{\UeberschriftUngueltig}{\section{Ungültige Nummern}}
+\newcommand\UeberschriftUngueltig{\section{Ungültige Nummern}}
 
-\newcommand{\UeberschriftOrtsvorwahlen}{\section{Ortsvorwahlen}}
+\newcommand\UeberschriftOrtsvorwahlen{\section{Ortsvorwahlen}}
 
-\newcommand{\UeberschriftRegionalvorwahlen}{\section{Regionalvorwahlen}}
+\newcommand\UeberschriftRegionalvorwahlen{\section{Regionalvorwahlen}}
 
-\newcommand{\UeberschriftSondervorwahlen}{\section{Sondervorwahlen}}
+\newcommand\UeberschriftSondervorwahlen{\section{Sondervorwahlen}}
 
-\newcommand{\OptionsvariantenAreaCodeSep}{\Optionsbeschreibung{area-code-sep}{slash,brackets,space,hyphen}{slash}}
+\newcommand\OptionsvariantenAreaCodeSep{\Optionsbeschreibung{area-code-sep}{slash,brackets,space,hyphen}{slash}}
 
-\newcommand{\OptionsbeschreibungAreaCodeSep}{Legt fest, wie die Vorwahl von der Teilnehmerrufnummer abgetrennt wird.}
+\newcommand\OptionsbeschreibungAreaCodeSep{Legt fest, wie die Vorwahl von der Teilnehmerrufnummer abgetrennt wird.}
 
-\newcommand{\HinweisForeignAreaCodeSep}{Für Nummern mit Auslandsvorwahl gibt es die Option
+\newcommand\HinweisForeignAreaCodeSep{Für Nummern mit Auslandsvorwahl gibt es die Option
 \option{foreign-area-code-sep}
  \sieheAbschnitt{optionen-allgemein}.}
 
-\newcommand{\OptionsvariantenAreaCode}{\Optionsbeschreibung{area-code}{number,place,place-and-number}{number}}
+\newcommand\OptionsvariantenAreaCode{\Optionsbeschreibung{area-code}{number,place,place-and-number}{number}}
 
-\newcommand{\OptionsbeschreibungAreaCode}{Legt fest, wie die Vorwahl dargestellt werden soll: als Nummer, als Ortsname oder als Ortsname mit Nummer.}
+\newcommand\OptionsbeschreibungAreaCode{Legt fest, wie die Vorwahl dargestellt werden soll: als Nummer, als Ortsname oder als Ortsname mit Nummer.}
 
-\newcommand{\WertbeschreibungBrackets}{Die Variante \code{brackets} setzt bei Festnetznummern Klammern um die Vorwahl. Bei Mobilfunk- und Sondernummern wird sie wie \code{space} behandelt, da bei solchen Nummern die Vorwahl stets mitgewählt werden muss.}
+\newcommand\WertbeschreibungBrackets{Die Variante \code{brackets} setzt bei Festnetznummern Klammern um die Vorwahl. Bei Mobilfunk- und Sondernummern wird sie wie \code{space} behandelt, da bei solchen Nummern die Vorwahl stets mitgewählt werden muss.}
 
-\newcommand{\WertbeschreibungPlaceAndNumber}{Die Variante \code{place-and-number} gibt für Nummern ohne Auslandsvorwahl den Ortsnamen bzw. die Bedeutung der Vorwahl zusätzlich zur Vorwahlnummer aus.}
+\newcommand\WertbeschreibungPlaceAndNumber{Die Variante \code{place-and-number} gibt für Nummern ohne Auslandsvorwahl den Ortsnamen bzw. die Bedeutung der Vorwahl zusätzlich zur Vorwahlnummer aus.}
 
-\newcommand{\WertbeschreibungPlace}{Die Variante \code{place} gibt bei Festnetznummern ohne Auslandsvorwahl den Ortsnamen anstelle der Vorwahlnummer aus. In anderen Fällen bleibt es bei der Ausgabe der Nummer.}
+\newcommand\WertbeschreibungPlace{Die Variante \code{place} gibt bei Festnetznummern ohne Auslandsvorwahl den Ortsnamen anstelle der Vorwahlnummer aus. In anderen Fällen bleibt es bei der Ausgabe der Nummer.}
 
-\newcommand{\KeineVerlinkung}{Nummern ohne Vorwahl können allerdings nicht verlinkt werden
+\newcommand\KeineVerlinkung{Nummern ohne Vorwahl können allerdings nicht verlinkt werden
 \vglAbschnitt{verlinkung}.}
 
-\newcommand{\WarnungWenn}{Eine Warnung wird ausgegeben, wenn}
+\newcommand\WarnungWenn{Eine Warnung wird ausgegeben, wenn}
 
-\newcommand*{\vglAbschnitt}[1]{(\cf\ Abschnitt \ref{#1})}
+\newcommand*\vglAbschnitt[1]{(\cf\ Abschnitt \ref{#1})}
 
-\newcommand*{\sieheAbschnitt}[1]{(siehe Abschnitt \ref{#1})}
+\newcommand*\sieheAbschnitt[1]{(siehe Abschnitt \ref{#1})}
 
-\newcommand*{\vglAnhang}[1]{(\cf\ Anhang~\ref{#1})}
+\newcommand*\vglAnhang[1]{(\cf\ Anhang~\ref{#1})}
 
-\newcommand{\Quelle}{\noindent\emph{Quelle: }}
+\newcommand\Quelle{\noindent\emph{Quelle: }}
 
-\newcommand*{\Quellen}{\noindent\emph{Quellen: }}
+\newcommand*\Quellen{\noindent\emph{Quellen: }}
 
-\newcommand{\Schmalschrift}{\small\fontspec{Libertinus Serif}[Ligatures=TeX]}
+\newcommand\Schmalschrift{\small\fontspec{Libertinus Serif}[Ligatures=TeX]}
 
-\newcommand*{\AufbauDEATA}[6]{Eine #1 Telefonnummer besteht in der Regel aus einer Vorwahl, die mit einer 0 beginnt, und einer Teilnehmerrufnummer. Die Vorwahl kann zwischen #2 und #3 Stellen haben, die Teilnehmerrufnummer im Festznetz zwischen #4 und #5 Stellen. Zur Trennung von Vorwahl und Teilnehmerrufnummer gibt es unterschiedliche Konventionen
+\newcommand*\AufbauDEATA[6]{Eine #1 Telefonnummer besteht in der Regel aus einer Vorwahl, die mit einer 0 beginnt, und einer Teilnehmerrufnummer. Die Vorwahl kann zwischen #2 und #3 Stellen haben, die Teilnehmerrufnummer im Festznetz zwischen #4 und #5 Stellen. Zur Trennung von Vorwahl und Teilnehmerrufnummer gibt es unterschiedliche Konventionen
 \vglAbschnitt{#6}.
 Standardmäßig verwendet das Paket \phone\ einen Schrägstrich.}
 
-\newcommand{\AufbauDEATB}{Die Ortsvorwahl kann bei Anrufen innerhalb eines Ortsnetzes weggelassen werden.}
+\newcommand\AufbauDEATB{Die Ortsvorwahl kann bei Anrufen innerhalb eines Ortsnetzes weggelassen werden.}
 
-\newcommand{\AufbauDEATC}[1]{\KeineVerlinkung\ Als Alternative empfiehlt sich der Einsatz der Option \option{home-area-code}
+\newcommand\AufbauDEATC[1]{\KeineVerlinkung\ Als Alternative empfiehlt sich der Einsatz der Option \option{home-area-code}
 \vglAbschnitt{optionen-allgemein},
 die in #1 überall verwendet werden kann.\par
 Am Ende der Teilnehmerrufnummer kann eine abgetrennte Durchwahlnummer stehen, die durch ein optionales Argument oder einen Bindestrich angegeben wird.}
 
-\newcommand*{\AufbauDEATD}[1]{Bei Anrufen aus dem Ausland wird die Auslandsvorwahl mit der Landeskennzahl #1 vorangestellt und die führende 0 der Ortsvorwahl weggelassen.}
+\newcommand*\AufbauDEATD[1]{Bei Anrufen aus dem Ausland wird die Auslandsvorwahl mit der Landeskennzahl #1 vorangestellt und die führende 0 der Ortsvorwahl weggelassen.}
 
+\newcommand\EMail{wehr}
+\newcommand\EMailDomain{abgol}
+\newcommand\EMailTopLevelDomain{de}
+
 \begin{document}
 \begin{titlepage}
 \begin{center}
@@ -189,7 +193,11 @@
 \smallskip
 Keno Wehr
 
+\normalsize
+\texttt{\EMail@\EMailDomain.\EMailTopLevelDomain}
+
 \bigskip
+\large
 \textit{Fehlermeldungen}
 
 \smallskip
@@ -435,6 +443,13 @@
   \phonenumber[country=DE]{0258163970}
 \end{sidebyside}
 Die Angabe einer Heimatvorwahl ist nur für Gebiete zulässig, in denen die Vorwahl bei Ortsgesprächen weggelassen werden kann.
+\Optionsbeschreibung{group-min}{3,4,5,6,7}{3}
+In mehreren Ländern werden Telefonnummern in Zweiergruppen gegliedert. Der Wert dieser Option gibt an, ab welcher Länge eines Nummernteils (Auslandsvorwahl, Ortsvorwahl, Teilnehmerrufnummer, Durchwahl) eine Gliederung stattfindet.
+\begin{sidebyside}
+  \setphonenumbers{country=AT}
+  \phonenumber{04632503}[364] \\
+  \phonenumber[group-min=5]{04632503}[364]
+\end{sidebyside}
 \end{Befehlsliste}
 
 \UeberschriftUngueltig
@@ -441,7 +456,7 @@
 Um Robustheit gegenüber Fehlern zu gewährleisten, wird die Kompilierung niemals mit einer Fehlermeldung abgebrochen, wenn dem Befehl \cs{phonenumber} eine ungültige Nummer übergeben wird. Stattdessen schreibt das Paket \phone\ Warnmeldungen in die Log-Datei.
 Dies ist der Fall, wenn
 \begin{itemize}
-\item die Eingabe leer ist oder nicht nur Ziffern und Leerzeichen enthält (abgesehen von einem Pluszeichen am Anfang),
+\item die Eingabe leer ist oder unerlaubte Zeichen enthält,
 \item eine Durchwahlnummer angegeben ist, obwohl es sich nicht um eine deutsche oder österreichische Telefonnummer handelt,
 \item eine im internationalen Format eingegebene Nummer nur aus einer Landesvorwahl besteht oder keine gültige Landeskennzahl enthält,
 \item die Nummer nicht den nationalen Regeln des gewählten Landes entspricht (nur für unterstützte Länder).
@@ -1195,7 +1210,7 @@
 \item Ermöglichung von Makros als Befehlsargumenten
 \item leichte Veränderung der Warnmeldungen
 \end{itemize}
-\item[2.3] \today
+\item[2.3] \printdate{20.8.2021}
 \begin{itemize}
 \item Ergänzung der neuen deutschen Mobilfunkvorwahl 01\,50\,19
 \item Entfernung der deutschen Mobilfunkvorwahlen 01\,50\,20, 01\,50\,50, 01\,50\,80, 01\,55\,55
@@ -1206,6 +1221,11 @@
 \item Ergänzung der neuen nordamerikanischen Vorwahlen 227, 274, 341, 368, 428, 447, 448, 464, 474, 523, 524, 525, 526, 572, 582, 656, 659, 689, 730, 742, 771, 826, 839, 840, 943, 945 und 948
 \item Revision des Paketcodes
 \end{itemize}
+\item[2.4] \today
+\begin{itemize}
+\item Einführung der Option
+\option{group-min}, um kurze Nummern nicht zu gliedern
+\end{itemize}
 \end{description}
 
 \end{document}

Modified: trunk/Master/texmf-dist/doc/latex/phonenumbers/phonenumbers-en.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/phonenumbers/phonenumbers-en.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/phonenumbers/phonenumbers-en.tex	2022-05-14 20:32:17 UTC (rev 63298)
+++ trunk/Master/texmf-dist/doc/latex/phonenumbers/phonenumbers-en.tex	2022-05-14 20:32:32 UTC (rev 63299)
@@ -1,6 +1,6 @@
 % phonenumbers package: English manual
-% Version 2.3
-% Datum: 20. August 2021
+% Version 2.4
+% Datum: 13. Mai 2022
 \documentclass[numbers=noenddot]{scrreprt}
 \usepackage[french,UKenglish]{babel}
 \usepackage{fontspec}
@@ -16,15 +16,15 @@
 \usepackage{cnltx-example}
 \usepackage{cnltx-tools}
 \usepackage[colorlinks=true,
-	allcolors=black,
-	bookmarksopen=true,
-	bookmarksopenlevel=0,
-	bookmarksnumbered=true,
-	pdfencoding=auto,
-	pdftitle={Typesetting telephone numbers with LaTeX},
-	pdfsubject={Manual for the PHONENUMBERS package},
-	pdfkeywords={latex phonenumbers telephone numbers},
-	pdfauthor={K. Wehr}]{hyperref}
+  allcolors=black,
+  bookmarksopen=true,
+  bookmarksopenlevel=0,
+  bookmarksnumbered=true,
+  pdfencoding=auto,
+  pdftitle={Typesetting telephone numbers with LaTeX},
+  pdfsubject={Manual for the PHONENUMBERS package},
+  pdfkeywords={latex phonenumbers telephone numbers},
+  pdfauthor={K. Wehr}]{hyperref}
 
 \setmainfont{TeX Gyre Bonum}
 \setmonofont{Latin Modern Mono}[Scale=MatchLowercase]
@@ -53,16 +53,16 @@
 \renewcommand{\labelnamepunct}{\addcolon\space}
 
 \definecolorscheme{phonecolor}{
-	cs => cnltxformalblue,
-	option => cnltxbrown,
-	cnltx => cnltxgreen
+  cs => cnltxformalblue,
+  option => cnltxbrown,
+  cnltx => cnltxgreen
 }
 
 \setcnltx{
-	add-cmds = {setphonenumbers,phonenumber,href},
-	color-scheme = phonecolor,
-	add-listings-options = {numbers=none},
-	pre-output = {\raggedright}
+  add-cmds = {setphonenumbers,phonenumber,href},
+  color-scheme = phonecolor,
+  add-listings-options = {numbers=none},
+  pre-output = {\raggedright}
 }
 
 \makeatletter
@@ -71,7 +71,7 @@
 \makeatother
 
 \DeclareNewLayer[background,bottommargin,mode=picture,hoffset=7cm,
-	contents={\includegraphics{Telefonhoerer}}]{Telefonebene}
+  contents={\includegraphics{Telefonhoerer}}]{Telefonebene}
 
 \AddLayersToPageStyle{plain}{Telefonebene}
 \AddLayersToPageStyle{scrheadings}{Telefonebene}
@@ -79,104 +79,108 @@
 \ExplSyntaxOn
 
 \NewDocumentEnvironment {Befehlsliste} { }
-	{
-		\begin{list}{ }
-			{
-				\setlength{\leftmargin}{0pt}
-				\setlength{\itemindent}{-1em}
-				\setlength{\parsep}{0pt}
-				\setlength{\listparindent}{\parindent}
-				\setlength{\itemsep}{\topsep}
-			}
-	}
-	{
-		\end{list}
-	}
+  {
+    \begin{list}{ }
+      {
+        \setlength{\leftmargin}{0pt}
+        \setlength{\itemindent}{-1em}
+        \setlength{\parsep}{0pt}
+        \setlength{\listparindent}{\parindent}
+        \setlength{\itemsep}{\topsep}
+      }
+  }
+  {
+    \end{list}
+  }
 
 \NewDocumentCommand \Befehlsbeschreibung {m o}
-	{
-		\item
-		\cs{#1}
-		\IfValueT{#2}{#2}
-		\\
-	}
+  {
+    \item
+    \cs{#1}
+    \IfValueT{#2}{#2}
+    \\
+  }
 
 \NewDocumentCommand \Optionsbeschreibung {m m m}
-	{
-		\item
-		\option{#1}~=~\choices{#2}
-		\hfill
-		Default:~\code{#3}
-		\\
-	}
+  {
+    \item
+    \option{#1}~=~\choices{#2}
+    \hfill
+    Default:~\code{#3}
+    \\
+  }
 
 \ExplSyntaxOff
 
-\newcommand*{\Paket}[1]{\textsc{#1}}
-\newcommand{\phone}{\textcolor{cnltx}{\Paket{phone\-numbers}}}
+\newcommand*\Paket[1]{\textsc{#1}}
+\newcommand\phone{\textcolor{cnltx}{\Paket{phone\-numbers}}}
 
-\newcommand{\UeberschriftGeltungsbereich}{\section{Scope}}
+\newcommand\UeberschriftGeltungsbereich{\section{Scope}}
 
-\newcommand{\UeberschriftAufbau}{\section{Structure of the Numbers}}
+\newcommand\UeberschriftAufbau{\section{Structure of the Numbers}}
 
-\newcommand*{\UeberschriftOptionen}[1]{\section{Options}\label{optionen-#1}}
+\newcommand*\UeberschriftOptionen[1]{\section{Options}\label{optionen-#1}}
 
-\newcommand{\UeberschriftUngueltig}{\section{Invalid Numbers}}
+\newcommand\UeberschriftUngueltig{\section{Invalid Numbers}}
 
-\newcommand{\UeberschriftOrtsvorwahlen}{\section{Geographic Area Codes}}
+\newcommand\UeberschriftOrtsvorwahlen{\section{Geographic Area Codes}}
 
-\newcommand{\UeberschriftRegionalvorwahlen}{\section{Geographic Area Codes}}
+\newcommand\UeberschriftRegionalvorwahlen{\section{Geographic Area Codes}}
 
-\newcommand{\UeberschriftSondervorwahlen}{\section{Non-Geographic Area Codes}}
+\newcommand\UeberschriftSondervorwahlen{\section{Non-Geographic Area Codes}}
 
-\newcommand{\OptionsvariantenAreaCodeSep}{\Optionsbeschreibung{area-code-sep}{slash,brackets,space,hyphen}{slash}}
+\newcommand\OptionsvariantenAreaCodeSep{\Optionsbeschreibung{area-code-sep}{slash,brackets,space,hyphen}{slash}}
 
-\newcommand{\OptionsbeschreibungAreaCodeSep}{Sets the seperator between area code and subscriber number.}
+\newcommand\OptionsbeschreibungAreaCodeSep{Sets the seperator between area code and subscriber number.}
 
-\newcommand{\HinweisForeignAreaCodeSep}{For numbers with country calling code use the
+\newcommand\HinweisForeignAreaCodeSep{For numbers with country calling code use the
 \option{foreign-area-code-sep}
 option \sieheAbschnitt{optionen-allgemein}.}
 
-\newcommand{\OptionsvariantenAreaCode}{\Optionsbeschreibung{area-code}{number,place,place-and-number}{number}}
+\newcommand\OptionsvariantenAreaCode{\Optionsbeschreibung{area-code}{number,place,place-and-number}{number}}
 
-\newcommand{\OptionsbeschreibungAreaCode}{Sets, how the area code will be typeset: as number, as place name, or as place name with number.}
+\newcommand\OptionsbeschreibungAreaCode{Sets, how the area code will be typeset: as number, as place name, or as place name with number.}
 
-\newcommand{\WertbeschreibungBrackets}{The choice \code{brackets} will cause the area code of landline numbers to be typeset in brackets. For mobile phone and special numbers this choice will be treated like \code{space}, since the area code has always to be dialled for these numbers.}
+\newcommand\WertbeschreibungBrackets{The choice \code{brackets} will cause the area code of landline numbers to be typeset in brackets. For mobile phone and special numbers this choice will be treated like \code{space}, since the area code has always to be dialled for these numbers.}
 
-\newcommand{\WertbeschreibungPlaceAndNumber}{The choice \code{place-and-number} will cause the place name or the meaning of the area code, respectively, to be output in addition to the area code for numbers without country calling code.}
+\newcommand\WertbeschreibungPlaceAndNumber{The choice \code{place-and-number} will cause the place name or the meaning of the area code, respectively, to be output in addition to the area code for numbers without country calling code.}
 
-\newcommand{\WertbeschreibungPlace}{The choice \code{place} will typeset landline numbers without country calling code with the place name instead of the area code. In other cases the area code will remain.}
+\newcommand\WertbeschreibungPlace{The choice \code{place} will typeset landline numbers without country calling code with the place name instead of the area code. In other cases the area code will remain.}
 
-\newcommand{\KeineVerlinkung}{Numbers without an area code cannot be linked though
+\newcommand\KeineVerlinkung{Numbers without an area code cannot be linked though
 \vglAbschnitt{verlinkung}.}
 
-\newcommand{\WarnungWenn}{A warning will be issued if}
+\newcommand\WarnungWenn{A warning will be issued if}
 
-\newcommand*{\vglAbschnitt}[1]{(\cf\ section \ref{#1})}
+\newcommand*\vglAbschnitt[1]{(\cf\ section \ref{#1})}
 
-\newcommand*{\sieheAbschnitt}[1]{(see section \ref{#1})}
+\newcommand*\sieheAbschnitt[1]{(see section \ref{#1})}
 
-\newcommand*{\vglAnhang}[1]{(\cf\ appendix~\ref{#1})}
+\newcommand*\vglAnhang[1]{(\cf\ appendix~\ref{#1})}
 
-\newcommand{\Quelle}{\noindent\emph{Source: }}
+\newcommand\Quelle{\noindent\emph{Source: }}
 
-\newcommand*{\Quellen}{\noindent\emph{Sources: }}
+\newcommand*\Quellen{\noindent\emph{Sources: }}
 
-\newcommand{\Schmalschrift}{\small\fontspec{Libertinus Serif}[Ligatures=TeX]}
+\newcommand\Schmalschrift{\small\fontspec{Libertinus Serif}[Ligatures=TeX]}
 
-\newcommand*{\AufbauDEATA}[6]{A #1 phone number normally consists of an area code beginning with 0 and a subscriber number. The area code can have #2 to #3 digits, a landline subscriber number #4 to #5 digits. There are different conventions for the separation of the area code from the subscriber number
+\newcommand*\AufbauDEATA[6]{A #1 phone number normally consists of an area code beginning with 0 and a subscriber number. The area code can have #2 to #3 digits, a landline subscriber number #4 to #5 digits. There are different conventions for the separation of the area code from the subscriber number
 \vglAbschnitt{#6}.
 The default separator used by the \phone\ package is a slash.}
 
-\newcommand{\AufbauDEATB}{The area code is not required for calls within the local exchange area.}
+\newcommand\AufbauDEATB{The area code is not required for calls within the local exchange area.}
 
-\newcommand{\AufbauDEATC}[1]{\KeineVerlinkung\ As an alternative the use of the \option{home-area-code} option
+\newcommand\AufbauDEATC[1]{\KeineVerlinkung\ As an alternative the use of the \option{home-area-code} option
 \vglAbschnitt{optionen-allgemein},
 which can be used everywhere in #1, is recommended.\par
 The subscriber number can end in a separate extension, which can be input by an optional argument or a hyphen.}
 
-\newcommand*{\AufbauDEATD}[1]{For calls from abroad the country code #1 has to be used and the leading 0 of the area code has to be left out.}
+\newcommand*\AufbauDEATD[1]{For calls from abroad the country code #1 has to be used and the leading 0 of the area code has to be left out.}
 
+\newcommand\EMail{wehr}
+\newcommand\EMailDomain{abgol}
+\newcommand\EMailTopLevelDomain{de}
+
 \begin{document}
 \begin{titlepage}
 \begin{center}
@@ -189,7 +193,11 @@
 \smallskip
 Keno Wehr
 
+\normalsize
+\texttt{\EMail@\EMailDomain.\EMailTopLevelDomain}
+
 \bigskip
+\large
 \textit{Bug reports}
 
 \smallskip
@@ -435,6 +443,13 @@
   \phonenumber[country=DE]{0258163970}
 \end{sidebyside}
 Setting a home area code is allowed only for areas where the area code can be left out for local calls.
+\Optionsbeschreibung{group-min}{3,4,5,6,7}{3}
+In several countries telephone numbers are structured in groups of two digits. The value of this option sets the minimum length of a number part (country calling code, area code, subscriber number, extension) to which structuring shall be applied.
+\begin{sidebyside}
+  \setphonenumbers{country=AT}
+  \phonenumber{04632503}[364] \\
+  \phonenumber[group-min=5]{04632503}[364]
+\end{sidebyside}
 \end{Befehlsliste}
 
 \UeberschriftUngueltig
@@ -441,7 +456,7 @@
 To ensure robustness against errors, the compilation will never be aborted with an error message if an invalid number is given to the \cs{phonenumber} command. Rather, the \phone\ package will write warnings to the log file.
 This will occur if
 \begin{itemize}
-\item the input is empty or contains other characters than digits and spaces (apart from a plus sign as first character),
+\item the input is empty or contains illegal characters,
 \item an extension is given for a non-German and non-Austrian phone number,
 \item a number input in the international format consists of a country calling code only or does not contain a valid country code,
 \item the number is not in accordance with the national rules of the selected country (only for supported countries).
@@ -1195,7 +1210,7 @@
 \item Making macros possible as command arguments
 \item Slight change of the warning messages
 \end{itemize}
-\item[2.3] \today
+\item[2.3] \printdate{20.8.2021}
 \begin{itemize}
 \item Addition of the new German mobile phone area code 01\,50\,19
 \item Removal of the German mobile phone area codes 01\,50\,20, 01\,50\,50, 01\,50\,80, 01\,55\,55
@@ -1206,6 +1221,11 @@
 \item Addition of the new North American area codes 227, 274, 341, 368, 428, 447, 448, 464, 474, 523, 524, 525, 526, 572, 582, 656, 659, 689, 730, 742, 771, 826, 839, 840, 943, 945, and 948
 \item Revision of the package code
 \end{itemize}
+\item[2.4] \today
+\begin{itemize}
+\item Introduction of the
+\option{group-min} option to suppress the structuring of short numbers
+\end{itemize}
 \end{description}
 
 \end{document}

Modified: trunk/Master/texmf-dist/tex/latex/phonenumbers/phonenumbers.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/phonenumbers/phonenumbers.sty	2022-05-14 20:32:17 UTC (rev 63298)
+++ trunk/Master/texmf-dist/tex/latex/phonenumbers/phonenumbers.sty	2022-05-14 20:32:32 UTC (rev 63299)
@@ -2,8 +2,8 @@
 % LaTeX-Paket zur Formatierung von Telefonnummern
 % LaTeX package for formatting telephone numbers
 % Autor: K. Wehr
-% Version: 2.3
-% Datum: 20. August 2021
+% Version: 2.4
+% Datum: 13. Mai 2022
 
 % This work may be distributed and/or modified under the
 % conditions of the LaTeX Project Public License, either version 1.3
@@ -14,7 +14,7 @@
 % version 2005/12/01 or later.
 
 
-\ProvidesExplPackage {phonenumbers} {2021-08-20} {2.3} {Telephone number package}
+\ProvidesExplPackage {phonenumbers} {2022-05-13} {2.4} {Telephone number package}
 
 \RequirePackage{l3keys2e}
 \RequirePackage{ltxcmds}
@@ -34,7 +34,6 @@
 \str_new:N \l_phone_vorwahltrennung_str
 \str_new:N \l_phone_auslandsvorwahltrennung_str
 \str_new:N \l_phone_heimatvorwahl_str
-\str_new:N \l_phone_rufnummer_str
 \str_new:N \l_phone_bereinigte_nummer_str
 \str_new:N \l_phone_bereinigte_durchwahl_str
 \str_new:N \l_phone_linktext_str
@@ -41,6 +40,7 @@
 
 \int_new:N \l_phone_ziffernzahl_int
 \int_new:N \l_phone_nummerlaenge_int
+\int_new:N \l_phone_gruppierungsminimum_int
 
 \tl_new:N \l_phone_ausgabetext_tl
 \tl_new:N \l_phone_formatierte_nummer_tl
@@ -358,7 +358,17 @@
       home-area-code .value_required:n = true
    }
 
+\keys_define:nn {phonenumbers}
+   {
+      group-min .choices:nn = {3,4,5,6,7}
+         {
+            \int_set_eq:NN \l_phone_gruppierungsminimum_int \l_keys_choice_tl
+         },
+      group-min .initial:n = {3} ,
+      group-min .value_required:n = true
+   }
 
+
 % Prüfe, ob eine Vorwahl als Heimatvorwahl zulässig ist.
 % #1: Heimatvorwahl
 \prg_new_protected_conditional:Npnn \phone_heimatvorwahl_erlaubt:n #1 {T}
@@ -409,6 +419,7 @@
    }
 
 
+% einen Nummernteil von vorne in Zweiergruppen gruppiert schreiben, sofern er nicht kürzer als das Gruppierungsminimum ist
 \cs_new_protected:Npn \phone_von_vorne_gruppiert_schreiben:n #1
    {
       \int_set:Nn \l_phone_ziffernzahl_int { \tl_count:n {#1} }
@@ -418,11 +429,16 @@
          {
             \tl_put_right:Nx \l_phone_formatierte_nummer_tl { \tl_item:nn {#1} {##1} }
 
-            \int_if_even:nT {##1}
+            % Nach jeder zweiten Ziffer wird ein kleiner Abstand eingefügt, wenn die Ziffernzahl nicht unterhalb des Gruppierungsminimums liegt.
+            \bool_lazy_all:nT
                {
-                  \int_compare:nNnT {##1} < {\l_phone_ziffernzahl_int}
-                     { \tl_put_right:Nn \l_phone_formatierte_nummer_tl {\,} }
+                  { ! \int_compare_p:nNn { \l_phone_ziffernzahl_int } < { \l_phone_gruppierungsminimum_int } }
+                  { \int_if_even_p:n {##1} }
+                  { \int_compare_p:nNn {##1} < { \l_phone_ziffernzahl_int } }
                }
+               {
+                  \tl_put_right:Nn \l_phone_formatierte_nummer_tl {\,}
+               }
          }
 
       \tl_put_right:NV \l_phone_ausgabetext_tl \l_phone_formatierte_nummer_tl
@@ -431,6 +447,35 @@
 \cs_generate_variant:Nn \phone_von_vorne_gruppiert_schreiben:n {x,V}
 
 
+% einen Nummernteil von in Zweiergruppen gruppiert mit führender Einzelziffer schreiben, sofern er nicht kürzer als das Gruppierungsminimum ist
+\cs_new_protected:Npn \phone_versetzt_gruppiert_schreiben:n #1
+   {
+      \int_set:Nn \l_phone_ziffernzahl_int { \tl_count:n {#1} }
+      \tl_clear:N \l_phone_formatierte_nummer_tl
+
+      \int_step_inline:nn {\l_phone_ziffernzahl_int}
+         {
+            \tl_put_right:Nx \l_phone_formatierte_nummer_tl { \tl_item:nn {#1} {##1} }
+
+            % Nach der 1., 3., 5., ... Ziffer wird ein kleiner Abstand eingefügt, wenn die Ziffernzahl nicht unterhalb des Gruppierungsminimums liegt.
+            \bool_lazy_all:nT
+               {
+                  { ! \int_compare_p:nNn { \l_phone_ziffernzahl_int } < { \l_phone_gruppierungsminimum_int } }
+                  { \int_if_odd_p:n {##1} }
+                  { \int_compare_p:nNn {##1} < { \l_phone_ziffernzahl_int } }
+               }
+               {
+                  \tl_put_right:Nn \l_phone_formatierte_nummer_tl {\,}
+               }
+         }
+
+      \tl_put_right:NV \l_phone_ausgabetext_tl \l_phone_formatierte_nummer_tl
+   }
+
+\cs_generate_variant:Nn \phone_versetzt_gruppiert_schreiben:n {x}
+
+
+% einen Nummernteil von hinten in Zweiergruppen gruppiert schreiben, sofern er nicht kürzer als das Gruppierungsminimum ist
 \cs_new_protected:Npn \phone_von_hinten_gruppiert_schreiben:n #1
    {
       \int_set:Nn \l_phone_ziffernzahl_int { \tl_count:n {#1} }
@@ -440,11 +485,16 @@
          {
             \tl_put_left:Nx \l_phone_formatierte_nummer_tl { \tl_item:nn {#1} {##1} }
 
-            \int_if_even:nT { \l_phone_ziffernzahl_int + 1 - ##1 }
+            % Nach jeder zweiten Ziffer wird ein kleiner Abstand eingefügt, wenn die Ziffernzahl nicht unterhalb des Gruppierungsminimums liegt.
+            \bool_lazy_all:nT
                {
-                  \int_compare:nNnT {##1} > {1}
-                     { \tl_put_left:Nn \l_phone_formatierte_nummer_tl {\,} }
+                  { ! \int_compare_p:nNn { \l_phone_ziffernzahl_int } < { \l_phone_gruppierungsminimum_int } }
+                  { \int_if_even_p:n { \l_phone_ziffernzahl_int + 1 - ##1 } }
+                  { \int_compare_p:nNn {##1} > {1} }
                }
+               {
+                  \tl_put_left:Nn \l_phone_formatierte_nummer_tl {\,}
+               }
          }
 
       \tl_put_right:NV \l_phone_ausgabetext_tl \l_phone_formatierte_nummer_tl
@@ -576,7 +626,7 @@
                   \str_if_eq:xnTF { \str_head:N \l_phone_bereinigte_nummer_str } {1}
                      {
                         \str_set:Nn \l_phone_land_str {US}
-                        \str_set:Nx \l_phone_bereinigte_nummer_str { \str_range:Nnn \l_phone_bereinigte_nummer_str {2} {-1} }
+                        \str_set:Nx \l_phone_bereinigte_nummer_str { \str_tail:N \l_phone_bereinigte_nummer_str }
                      }
                      {
                         \int_compare:nNnTF {\l_tmpa_int} > {2}
@@ -928,14 +978,27 @@
                   % sechsstellige britische Vorwahl: Gliederung vor der zweitletzten Ziffer
                   \bool_if:NTF #2
                      {
-                        \tl_put_right:Nx \l_phone_ausgabetext_tl { \str_range:nnn {#1} {1} {4} }
+                        \int_compare:nNnTF {\l_phone_gruppierungsminimum_int} > {6}
+                           {
+                              \tl_put_right:Nn \l_phone_ausgabetext_tl {#1}
+                           }
+                           {
+                              \tl_put_right:Nx \l_phone_ausgabetext_tl { \str_range:nnn {#1} {1} {4} }
+                              \tl_put_right:Nn \l_phone_ausgabetext_tl {\,}
+                              \tl_put_right:Nx \l_phone_ausgabetext_tl { \str_range:nnn {#1} {5} {6} }
+                           }
                      }
                      {
-                        \tl_put_right:Nx \l_phone_ausgabetext_tl { \str_tail:x { \str_range:nnn {#1} {1} {4} } }
+                        \int_compare:nNnTF {\l_phone_gruppierungsminimum_int} > {5}
+                           {
+                              \tl_put_right:Nx \l_phone_ausgabetext_tl { \str_tail:n {#1} }
+                           }
+                           {
+                              \tl_put_right:Nx \l_phone_ausgabetext_tl { \str_range:nnn {#1} {2} {4} }
+                              \tl_put_right:Nn \l_phone_ausgabetext_tl {\,}
+                              \tl_put_right:Nx \l_phone_ausgabetext_tl { \str_range:nnn {#1} {5} {6} }
+                           }
                      }
-
-                  \tl_put_right:Nn \l_phone_ausgabetext_tl {\,}
-                  \tl_put_right:Nx \l_phone_ausgabetext_tl { \str_range:nnn {#1} {5} {6} }
                }
                {
                   % nicht sechsstellige britische Vorwahl
@@ -952,23 +1015,19 @@
             % nichtbritische Vorwahl
             \bool_lazy_and:nnTF { \str_if_eq_p:Vn \l_phone_land_str {DE} } { \int_compare_p:nNn { \str_count:n {#1} } = {5} }
                {
-                  % fünfstellige deutsche Vorwahl
                   \str_set:Nx \l_tmpa_str { \str_range:nnn {#1} {1} {4} }
-                  \str_set:Nx \l_tmpb_str { \str_range:nnn {#1} {5} {5} }
 
+                  % fünfstellige deutsche Vorwahl
                   \bool_lazy_or:nnTF { \str_if_eq_p:Vn \l_tmpa_str {0137} } { \str_if_eq_p:Vn \l_tmpa_str {0180} }
                      {
                         % fünfstellige deutsche Vorwahl mit Tarifkennung: letzte Ziffer steht allein
                         \bool_if:NTF #2
                            {
-                              \phone_von_hinten_gruppiert_schreiben:V \l_tmpa_str
+                              \phone_von_vorne_gruppiert_schreiben:n {#1}
                            }
                            {
-                              \phone_von_hinten_gruppiert_schreiben:x { \str_tail:N \l_tmpa_str }
+                              \phone_versetzt_gruppiert_schreiben:x { \str_tail:n {#1} }
                            }
-
-                        \tl_put_right:Nn \l_phone_ausgabetext_tl {\,}
-                        \tl_put_right:NV \l_phone_ausgabetext_tl \l_tmpb_str
                      }
                      {
                         % fünfstellige deutsche Vorwahl ohne Tarifkennung
@@ -1644,7 +1703,7 @@
    }
 
 % #1: Vorwahl, #2: Rufnummer
-\cs_new_protected:Npn \phone_FR_vorwahl_schreiben:nn #1#2
+\cs_new_protected:Npn \phone_FR_vorwahl_und_rufnummer_schreiben:nn #1#2
    {
       \bool_lazy_or:nnTF { \str_if_eq_p:Vn \l_phone_auslandsvorwahltyp_str {off} } { \str_if_eq_p:Vn \l_phone_heimatland_str {FR} }
          {
@@ -1656,15 +1715,16 @@
                      }
                }
 
-            \bool_lazy_and:nnF { \str_if_eq_p:Vn \l_phone_heimatland_str {FR} } { \str_if_eq_p:Vn \l_phone_heimatvorwahl_str {#1} }
+            \bool_lazy_and:nnTF { \str_if_eq_p:Vn \l_phone_heimatland_str {FR} } { \str_if_eq_p:Vn \l_phone_heimatvorwahl_str {#1} }
                {
+                   \phone_von_hinten_gruppiert_schreiben:n {#2}   % reine Teilnehmerrufnummer in Saint-Pierre-et-Miquelon
+               }
+               {
                   \str_case:Vn \l_phone_vorwahldarstellung_str
                      {
                         {number}
                            {
-                              \phone_von_vorne_gruppiert_schreiben:n {#1}
-                              \int_if_even:nT { \str_count:n {#1} }
-                                 { \tl_put_right:Nn \l_phone_ausgabetext_tl {\,} }
+                              \phone_von_vorne_gruppiert_schreiben:V \l_phone_bereinigte_nummer_str
                            }
                         {place}
                            {
@@ -1672,11 +1732,10 @@
                                  {
                                     \tl_put_right:Nv \l_phone_ausgabetext_tl {c_phone_FR_ortsname_#1_tl}
                                     \tl_put_right:NV \l_phone_ausgabetext_tl \c_space_tl
+                                    \phone_von_vorne_gruppiert_schreiben:n {#2}
                                  }
                                  {
-                                    \phone_von_vorne_gruppiert_schreiben:n {#1}
-                                    \int_if_even:nT { \str_count:n {#1} }
-                                       { \tl_put_right:Nn \l_phone_ausgabetext_tl {\,} }
+                                    \phone_von_vorne_gruppiert_schreiben:V \l_phone_bereinigte_nummer_str
                                  }
                            }
                         {place-and-number}
@@ -1687,9 +1746,7 @@
                                     \tl_put_right:NV \l_phone_ausgabetext_tl \c_space_tl
                                  }
 
-                              \phone_von_vorne_gruppiert_schreiben:n {#1}
-                              \int_if_even:nT { \str_count:n {#1} }
-                                 { \tl_put_right:Nn \l_phone_ausgabetext_tl {\,} }
+                              \phone_von_vorne_gruppiert_schreiben:V \l_phone_bereinigte_nummer_str
                            }
                      }
                }
@@ -1699,38 +1756,25 @@
 
             \tl_put_right:NV \l_phone_ausgabetext_tl \c_space_tl
 
-            \str_if_eq:nnF {#1} {0508}   % in Saint-Pierre-et-Miquelon entfällt die Ortsvorwahl
+            \str_if_eq:nnTF {#1} {0508}   % in Saint-Pierre-et-Miquelon entfällt die Ortsvorwahl
                {
-                  \int_if_even:nTF { \str_count:n {#2} }
-                     {
-                        % Rufnummer hat gerade Stellenanzahl
-                        \phone_von_hinten_gruppiert_schreiben:x { \str_tail:n {#1} }
-                        \tl_put_right:Nn \l_phone_ausgabetext_tl {\,}
-                     }
-                     {
-                        \int_if_even:nTF { \str_count:n {#1} }
-                           {
-                              % Rufnummer hat ungerade Stellenanzahl, die Vorwahl ohne die 0 auch
-                              \phone_von_vorne_gruppiert_schreiben:x { \str_tail:n {#1} }
-                           }
-                           {
-                              % Rufnummer hat ungerade Stellenanzahl, die Vorwahl ohne die 0 hat gerade Stellenanzahl
-                              \tl_put_right:Nx \l_phone_ausgabetext_tl { \str_item:nn {#1} {2} \, }
-                              \phone_von_vorne_gruppiert_schreiben:x { \str_range:nnn {#1} {3} {-1} }
-                           }
-                     }
+                  \phone_von_hinten_gruppiert_schreiben:n {#2}
                }
+               {
+                  \phone_von_hinten_gruppiert_schreiben:x { \str_tail:N \l_phone_bereinigte_nummer_str }
+               }
          }
 
+      % Linktext schreiben:
       \str_put_right:Nx \l_phone_linktext_str { + \phone_FR_ermittle_landeskennzahl:n {#1} }
-
       \str_if_eq:nnF {#1} {0508}   % in Saint-Pierre-et-Miquelon entfällt die Ortsvorwahl
          {
             \str_put_right:Nx \l_phone_linktext_str { \str_tail:n {#1} }
          }
+      \str_put_right:Nn \l_phone_linktext_str {#2}
    }
 
-\cs_generate_variant:Nn \phone_FR_vorwahl_schreiben:nn {VV,xV}
+\cs_generate_variant:Nn \phone_FR_vorwahl_und_rufnummer_schreiben:nn {Vx,xx}
 
 
 \cs_new_protected:Npn \phone_FR_nummer_schreiben:
@@ -1771,44 +1815,38 @@
                         \int_compare:nNnTF { \str_item:Nn \l_phone_bereinigte_nummer_str {5} } < {5}
                            {
                               % überlange Mobilfunknummer (machine to machine) im Mutterland (14 Stellen)
-                              \str_set:Nx \l_phone_rufnummer_str { \str_range:Nnn \l_phone_bereinigte_nummer_str {5} {-1} }
-                              \phone_FR_vorwahl_schreiben:xV { \str_range:Nnn \l_phone_bereinigte_nummer_str {1} {4} } \l_phone_rufnummer_str
                               \phone_nummernlaenge_ueberpruefen:Vnnn \l_phone_bereinigte_nummer_str {14} {14} {machine~to~machine}
-                              \bool_if:NT \l_phone_teilnehmerrufnummer_gueltig_bool
+                              \bool_if:NTF \l_phone_teilnehmerrufnummer_gueltig_bool
                                  {
-                                    \phone_von_vorne_gruppiert_schreiben:V \l_phone_rufnummer_str
+                                    \phone_FR_vorwahl_und_rufnummer_schreiben:xx
+                                       {
+                                          \str_range:Nnn \l_phone_bereinigte_nummer_str {1} {4}
+                                       }
+                                       {
+                                          \str_range:Nnn \l_phone_bereinigte_nummer_str {5} {-1}
+                                       }
                                  }
+                                 {
+                                    \tl_put_right:NV \l_phone_ausgabetext_tl \l_phone_bereinigte_nummer_str
+                                 }
                            }
                            {
                               % überlange Mobilfunknummer (machine to machine) in den Überseegebieten (13 Stellen)
-                              \str_set:Nx \l_phone_rufnummer_str { \str_range:Nnn \l_phone_bereinigte_nummer_str {6} {-1} }
-                              \phone_FR_vorwahl_schreiben:xV { \str_range:Nnn \l_phone_bereinigte_nummer_str {1} {5} } \l_phone_rufnummer_str
                               \phone_nummernlaenge_ueberpruefen:Vnnn \l_phone_bereinigte_nummer_str {13} {13} {machine~to~machine}
-                              \bool_if:NT \l_phone_teilnehmerrufnummer_gueltig_bool
+                              \bool_if:NTF \l_phone_teilnehmerrufnummer_gueltig_bool
                                  {
-                                    \bool_lazy_or:nnTF { \str_if_eq_p:Vn \l_phone_auslandsvorwahltyp_str {off} } { \str_if_eq_p:Vn \l_phone_heimatland_str {FR} }
+                                    \phone_FR_vorwahl_und_rufnummer_schreiben:xx
                                        {
-                                          % ohne Auslandsvorwahl steht am Ende eine Einzelziffer
-                                          \tl_put_right:Nx \l_phone_ausgabetext_tl { \str_head:N \l_phone_rufnummer_str \, }
-                                          \phone_von_vorne_gruppiert_schreiben:x { \str_tail:N \l_phone_rufnummer_str }
+                                           \str_range:Nnn \l_phone_bereinigte_nummer_str {1} {5}
                                        }
                                        {
-                                          % mit Auslandsvorwahl ergeben sich durchgehend Zweiergruppen
-                                          \phone_von_vorne_gruppiert_schreiben:V \l_phone_rufnummer_str
+                                          \str_range:Nnn \l_phone_bereinigte_nummer_str {6} {-1}
                                        }
                                  }
+                                 {
+                                    \tl_put_right:NV \l_phone_ausgabetext_tl \l_phone_bereinigte_nummer_str
+                                 }
                            }
-
-                        \bool_if:NTF \l_phone_teilnehmerrufnummer_gueltig_bool
-                           {
-                              % Für gültige Nummern Linktext schreiben:
-                              \str_put_right:NV \l_phone_linktext_str \l_phone_rufnummer_str
-                           }
-                           {
-                              % Für ungültige Nummern Linktext löschen und ungruppierte Nummer schreiben:
-                              \str_clear:N \l_phone_linktext_str
-                              \tl_put_right:NV \l_phone_ausgabetext_tl \l_phone_rufnummer_str
-                           }
                      }
                      {
                         \msg_warning:nnnn {phonenumbers} {number too long} {phone} {10}
@@ -1831,10 +1869,10 @@
                                           \clist_if_in:NVT \c_phone_FR_vorwahlen_clist \l_tmpa_str
                                              {
                                                 \bool_set_true:N \l_phone_vorwahl_gefunden_bool
-                                                \str_set:Nx \l_phone_rufnummer_str { \str_range:Nnn \l_phone_bereinigte_nummer_str {##1 + 1} {-1} }
-                                                \phone_FR_vorwahl_schreiben:VV \l_tmpa_str \l_phone_rufnummer_str
-                                                \phone_von_hinten_gruppiert_schreiben:V \l_phone_rufnummer_str
-                                                \str_put_right:NV \l_phone_linktext_str \l_phone_rufnummer_str
+                                                \phone_FR_vorwahl_und_rufnummer_schreiben:Vx \l_tmpa_str
+                                                   {
+                                                      \str_range:Nnn \l_phone_bereinigte_nummer_str {##1 + 1} {-1}
+                                                   }
                                              }
                                        }
                                  }



More information about the tex-live-commits mailing list.