From 8fb03d1c8024be5189db8812366f2be9279faca3 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 30 Mar 2018 21:16:21 +0000 Subject: babel-german (30mar18) git-svn-id: svn://tug.org/texlive/trunk@47192 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/generic/babel-german/README | 2 +- .../doc/generic/babel-german/germanb.pdf | Bin 367522 -> 394308 bytes .../doc/generic/babel-german/ngermanb.pdf | Bin 354170 -> 370869 bytes .../source/generic/babel-german/german.ins | 30 +- .../source/generic/babel-german/germanb.dtx | 358 +++++++++++++++------ .../source/generic/babel-german/ngermanb.dtx | 358 ++++++++++++++------- .../tex/generic/babel-german/austrian.ldf | 13 +- .../texmf-dist/tex/generic/babel-german/german.ldf | 13 +- .../tex/generic/babel-german/germanb.ldf | 82 +++-- .../tex/generic/babel-german/naustrian.ldf | 15 +- .../tex/generic/babel-german/ngerman.ldf | 15 +- .../tex/generic/babel-german/ngermanb.ldf | 85 +++-- .../tex/generic/babel-german/nswissgerman.ldf | 15 +- .../tex/generic/babel-german/swissgerman.ldf | 15 +- 14 files changed, 666 insertions(+), 335 deletions(-) (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/generic/babel-german/README b/Master/texmf-dist/doc/generic/babel-german/README index b6c0b92e9cd..f9189ba339f 100644 --- a/Master/texmf-dist/doc/generic/babel-german/README +++ b/Master/texmf-dist/doc/generic/babel-german/README @@ -3,7 +3,7 @@ The babel-german bundle German language support for the babel multilingual package -Copyright 1989--2016 Johannes L. Braams +Copyright 1989--2018 Johannes L. Braams Bernd Raichle Walter Schmidt, Jürgen Spitzmüller diff --git a/Master/texmf-dist/doc/generic/babel-german/germanb.pdf b/Master/texmf-dist/doc/generic/babel-german/germanb.pdf index 167823dc3ad..b4a2cef2fc4 100644 Binary files a/Master/texmf-dist/doc/generic/babel-german/germanb.pdf and b/Master/texmf-dist/doc/generic/babel-german/germanb.pdf differ diff --git a/Master/texmf-dist/doc/generic/babel-german/ngermanb.pdf b/Master/texmf-dist/doc/generic/babel-german/ngermanb.pdf index e0fe9861751..1d5c54a8c4c 100644 Binary files a/Master/texmf-dist/doc/generic/babel-german/ngermanb.pdf and b/Master/texmf-dist/doc/generic/babel-german/ngermanb.pdf differ diff --git a/Master/texmf-dist/source/generic/babel-german/german.ins b/Master/texmf-dist/source/generic/babel-german/german.ins index 3e47a944553..937a84b8719 100644 --- a/Master/texmf-dist/source/generic/babel-german/german.ins +++ b/Master/texmf-dist/source/generic/babel-german/german.ins @@ -3,10 +3,11 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1989--2016 Johannes L. Braams -%% Bernd Raichle -%% Walter Schmidt, -%% Juergen Spitzmueller +%% Copyright 1989--2016 +%% Johannes L. Braams +%% Bernd Raichle +%% Walter Schmidt +%% Juergen Spitzmueller %% All rights reserved. %% %% This file is part of the babel-german bundle, @@ -49,10 +50,11 @@ \preamble This is a generated file. -Copyright 1989--2016 Johannes L. Braams - Bernd Raichle - Walter Schmidt, - Juergen Spitzmueller +Copyright 1989--2016 + Johannes L. Braams + Bernd Raichle + Walter Schmidt + Juergen Spitzmueller All rights reserved. This file is part of the babel-german bundle, @@ -72,7 +74,7 @@ This work has the LPPL maintenance status "maintained". The Current Maintainer of this work is Juergen Spitzmueller. Please report errors to: Juergen Spitzmueller - juergen at spitzmueller dot org + via: https://github.com/jspitz/babel-german \endpreamble @@ -83,11 +85,11 @@ Please report errors to: Juergen Spitzmueller \generate{\file{germanb.ldf}{\from{germanb.dtx}{germanb}} \file{german.ldf}{\from{germanb.dtx}{german}} \file{austrian.ldf}{\from{germanb.dtx}{austrian}} - \file{swissgerman.ldf}{\from{germanb.dtx}{swiss}} - \file{ngermanb.ldf}{\from{ngermanb.dtx}{germanb}} - \file{ngerman.ldf}{\from{ngermanb.dtx}{german}} - \file{naustrian.ldf}{\from{ngermanb.dtx}{austrian}} - \file{nswissgerman.ldf}{\from{ngermanb.dtx}{swiss}} + \file{swissgerman.ldf}{\from{germanb.dtx}{swissgerman}} + \file{ngermanb.ldf}{\from{ngermanb.dtx}{ngermanb}} + \file{ngerman.ldf}{\from{ngermanb.dtx}{ngerman}} + \file{naustrian.ldf}{\from{ngermanb.dtx}{naustrian}} + \file{nswissgerman.ldf}{\from{ngermanb.dtx}{nswissgerman}} } \ifToplevel{ diff --git a/Master/texmf-dist/source/generic/babel-german/germanb.dtx b/Master/texmf-dist/source/generic/babel-german/germanb.dtx index 59b0c61bf53..d5c4bbe10bf 100644 --- a/Master/texmf-dist/source/generic/babel-german/germanb.dtx +++ b/Master/texmf-dist/source/generic/babel-german/germanb.dtx @@ -2,10 +2,11 @@ % % File `germanb.dtx' % -% Copyright 1989--2016 Johannes L. Braams -% Bernd Raichle -% Walter Schmidt, -% Juergen Spitzmueller +% Copyright 1989--2016 +% Johannes L. Braams +% Bernd Raichle +% Walter Schmidt +% Juergen Spitzmueller % All rights reserved. % % This file is part of the babel-german bundle, @@ -24,7 +25,7 @@ % % The Current Maintainer of this work is Juergen Spitzmueller. % \fi -% \CheckSum{470} +% \CheckSum{508} % % \iffalse % Tell the \LaTeX\ system who we are and write an entry on the @@ -34,11 +35,11 @@ % %\ProvidesLanguage{austrian} %\ProvidesLanguage{german} -%\ProvidesLanguage{swissgerman} +%\ProvidesLanguage{swissgerman} %\ProvidesLanguage{germanb} %\fi %\ProvidesFile{germanb.dtx} - [2016/11/02 v2.9 German support for babel (traditional orthography)] + [2018/03/29 v2.10 German support for babel (pre-1996 orthography)] %\iffalse % %<*filedriver> @@ -49,15 +50,23 @@ \usepackage{url} \usepackage{array} \usepackage{booktabs} -\usepackage[tableposition=top]{caption} +\usepackage[tableposition=top,skip=5pt]{caption} \usepackage{marginnote} -\newcommand*\TeXhax{\TeX hax} +\usepackage[svgnames]{xcolor} +\usepackage[pdfusetitle]{hyperref} +\hypersetup{% + colorlinks, + linkcolor=black, + filecolor=Maroon, + urlcolor=Maroon, + citecolor=black +} \newcommand*\babel{\textsf{babel}} \newcommand*\Babel{\textsf{Babel}} \newcommand*\langvar{$\langle \it lang \rangle$} \newcommand*\graph[1]{$\langle$#1$\rangle$} \newcommand*\note[1]{} -\newcommand*\Lopt[1]{\textsf{#1}} +\newcommand*\Lopt[1]{\texttt{#1}} \newcommand*\file[1]{\texttt{#1}} \newcommand*\newfeature[1]{\marginnote{\footnotesize New feature\\in v.\,#1!}} \GlossaryMin = .33\textheight @@ -71,10 +80,12 @@ % %\RecordChanges % +% \changes{Version 2.9a=Version 2.10}{2016/11/07}{Improvements to the manual} +% % \changes{Version 2.7}{2013/12/13}{Revised documentation: Turn the \babel{} % manual chapter into a self-enclosed manual.} -% \changes{Version 2.7}{2013/12/13}{Added support for variety \texttt{swissgerman}.} -% \changes{Version 2.7}{2013/12/13}{Revised \texttt{austrian} support.} +% \changes{Version 2.7}{2013/12/13}{Added support for variety \Lopt{swissgerman}.} +% \changes{Version 2.7}{2013/12/13}{Revised \Lopt{austrian} support.} % % \changes{Version 2.6d}{1996/07/10}{Replaced \cs{undefined} with % \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency @@ -127,34 +138,35 @@ % % \changes{Version 1.0a}{1990/05/14}{Incorporated Nico's comments} % -% \title{Babel support for the German language (traditional~orthography)} +% \title{Babel support for the German language (pre-1996~orthography)} % \author{Johannes Braams \and Bernd Raichle \and Walter Schmidt \and J\"urgen Spitzm\"uller\thanks{% % Current maintainer. Please report issues via \protect\url{https://github.com/jspitz/babel-german}.}} % \date{\fileversion\ (\filedate)} % \maketitle % % \begin{abstract} -% \noindent This manual documents the \babel\ language definition file \file{germanb.ldf} -% for German (traditional orthography). -% The file is part of the \textsf{babel-german} bundle. +% \noindent This manual documents \babel\ language support for German (pre-1996 orthography), +% including support for the Austrian and Swiss varieties of German. +% The manual is part of the \textsf{babel-german} bundle. % \end{abstract} % % \section{Aim and usage} % -% The file \file{germanb.ldf} provides the \babel\ package with all language definition -% macros (language specific strings and settings) for the German language, including -% the Austrian and Swiss varieties of German. Furthermore, it assures that the -% correct hyphenation patterns for the respective language or variety are -% used.\footnote{The file \file{germanb.ldf} started as a re-implementation of the package -% \file{german.sty} (v.\,2.5b), which was originally developed by Hubert Partl -% (cf. \cite{HP}) and later maintained by Bernd Raichle (cf. \cite{gerdoc}). -% The re-implementation was done by Johannes Braams.} -% The file adheres to the traditional (1901--1996) orthography. -% For reformed (post-1996) German orthography support, please refer to the -% complementary |ngermanb.ldf| file. +% The \babel\ `language definition file' \file{germanb.ldf} documented in this manual provides +% the \babel\ package with all language specific strings, settings and commands needed for writing +% German texts, including texts in the Austrian and Swiss varieties of German, in \emph{traditional +% (1901--1996) spelling}.\footnote{% +% The file \file{germanb.ldf} started as a re-implementation of the +% package \file{german.sty} (v.\,2.5b), which was originally +% developed by Hubert Partl (cf.\,\cite{HP}) and later maintained by Bernd Raichle +% (cf.\,\cite{gerdoc}). Johannes Braams did the initial re-implementation.} +% As for support for contemporary (`reformed', i.\,e., post-1996) German orthography, please refer to +% the complementary \href{file:ngermanb.pdf}{manual for the \file{ngermanb.ldf} language definition file}. +% The `language definition file' also assures that the correct hyphenation patterns for the respective +% language or variety are used (see sec.~\ref{sec:patterns} for details). % % In order to use the language definitions provided here, you need to use -% the \babel\ package and pass the respective language name as an +% the \babel\ package and pass the respective language\slash variety name as an % option, either of % % \begin{itemize} @@ -162,21 +174,26 @@ % \item |\usepackage[german]{babel}| % \item |\usepackage[austrian]{babel}| % \item |\usepackage[swissgerman]{babel}| +% \item |\usepackage[swissgerman.toss]{babel}|\newfeature{2.10}\footnote{% +% See sec.~\ref{sec:toss} on the \Lopt{toss} modifier.} % \end{itemize} -% Please consult the \babel\ manual \cite{babel} for details. +% Using multiple varieties in parallel is possible; +% consult the \babel\ manual \cite{babel} for details. % % \section{Shorthands} % % For all three varieties of German, the character |"| is made active % in order to provide some shorthand macros. -% Some of these shorthands address a peculiarity of traditional German +% Some of these shorthands address a peculiarity of pre-1996 German % spelling: consonantial character combinations that change in the context % of hyphenations. % Other shorthands are provided for frequently used -% special characters as well for better control of hyphenation, +% special characters as well as for better control of hyphenation, % line breaks and ligatures. +% % Table~\ref{tab:german-quote} provides an overview of the shorthands -% that are provided by \file{germanb.ldf}. +% that are provided by \textsf{babel-german} for \Lopt{german}, \Lopt{austrian} +% and \Lopt{swissgerman}. % % \begin{table}[htb] % \begin{center} @@ -188,13 +205,17 @@ % available for all other lower- and uppercase % vowels (umlauts: |"a|, |"o|, |"u|, |"A|, |"O|, % |"U|; tremata: |"e|, |"i|, |"E|, |"I|). \tabularnewline -% |"s| & German \graph{\ss} (shorthand for |\ss{}|). \tabularnewline +% |"s| & German \graph{\ss} (shorthand for |\ss{}|); +% but cf. sec.~\ref{sec:toss}. \tabularnewline % |"z| & German \graph{\ss} (shorthand for |\ss{}|). -% The difference to |"s| is the uppercase version. \tabularnewline +% The difference to |"s| is the uppercase version; +% but cf. sec.~\ref{sec:toss}. \tabularnewline % |"ck| & \graph{ck}, hyphenated as \graph{k-k}. \tabularnewline % |"ff| & \graph{ff}, hyphenated as \graph{ff-f}; % this is also implemented for \graph{l}, \graph{m}, -% \graph{n}, \graph{p}, \graph{r} and \graph{t}. \tabularnewline +% \graph{n}, \graph{p}, \graph{r} and \graph{t}. +% Please refer to sec.~\ref{sec:toss} for why this does not +% include \graph{s}. \tabularnewline % |"S| & |\uppercase{"s}|, typeset as \graph{SS} (\graph{\ss} % must be written as \graph{SS} [or \graph{SZ}, see below] % in uppercase writing). \tabularnewline @@ -206,16 +227,17 @@ % |"-| & An additional breakpoint that does still % allow for hyphenation at the breakpoints preset in % the hyphenation patterns (as opposed to |\-|). \tabularnewline -% |""| & A breakpoint that does not output a hyphen if the line -% break is performed (useful for compound words with -% hyphen, e.\,g., |(Un-)""Sinn|). \tabularnewline -% |"~| & An explicit hyphen without a breakpoint. Useful for -% cases where the hyphen should stick at the following -% word, e.\,g., |bergauf und "~ab| . \tabularnewline % |"=| & An explicit hyphen with a breakpoint, allowing % for hyphenation at the other points preset in the % hyphenation patterns (as opposed to plain |-|); -% useful for long compounds. \tabularnewline +% useful for long compounds such as +% |IT"=Dienstleisterinnen|. \tabularnewline +% |"~| & An explicit hyphen without a breakpoint. Useful for +% cases where the hyphen should stick at the following +% syllable, e.\,g., |bergauf und "~ab| . \tabularnewline +% |""| & A breakpoint that does not output a hyphen if the line +% break is performed (consider parenthetical extensions +% as in |(pseudo"~)""wissenschaftlich|). \tabularnewline % |"/| & \newfeature{2.9}A slash that allows for a linebreak. % As opposed to |\slash{}|, hyphenation at the breakpoints % preset in the hyphenation patterns is still allowed. \tabularnewline @@ -228,9 +250,8 @@ % \end{center} % \end{table} % -% Table~\ref{tab:more-quote} lists some \babel\ macros for quotation marks -% that might be used as an alternative to the quotation mark shorthands -% provided by \file{germanb.ldf}. +% \noindent Table~\ref{tab:more-quote} lists some \babel\ macros for quotation marks +% that might be used as an alternative to the quotation mark shorthands listed above. % \begin{table}[!h] % \begin{center} % \small @@ -251,26 +272,115 @@ % \end{center} % \end{table} % +% \section{Hyphenation patterns}\label{sec:patterns} +% +% The question which hyphenation patterns are used by \Babel\ in case of the varieties of German needs some elaboration. +% There is a set of established hyphenation patterns for pre- and post-1996 German orthography that has been available +% with \TeX\ distributions for a long time (currently, these are shipped in form of the \texttt{dehypht} and \texttt{dehyphn} files). +% These patterns, though, have many flaws (they produce wrong hyphenations, and not much is known about their construction). Therefore, a group +% of people developed completely new patterns that do much better, the so-called `experimental' new hyphenation patterns of German, +% distributed in the \textsf{dehyph-exptl} package \cite{exptl}. +% As opposed to the old patterns, the new ones undergo constant improvement. The price for this, however, is that hyphenation and thus +% the typeset document is subject to change with, and only due to, pattern updates. +% +% Modern engines (i.\,e., \texttt{xetex} and \texttt{luatex}) have already embraced those new patterns, i.\,e., they are activated on these engines by default. +% The classic \TeX\ engines (\texttt{tex}\slash\texttt{pdftex}), however, haven't: they continue to use the old patterns. The reason for this is one +% of \TeX's quality standards: refrain, if ever possible, from changing the output of user's documents in the wake of software updates. +% An exception is (pre-1996) Swiss German: here, the classic engines use the `experimental' patterns by default (since there were no patterns available +% previously anyway). +% +% So you need to explicitly activate the new patterns for a given document (except for \Lopt{swissgerman}) with the classic engines, should you +% want to use them instead of the old ones. +% With \Babel, this can be done quite easily by means of the \textsf{hyphsubst} \cite{hyphsubst} package: +% \begin{verbatim} +% \usepackage[german=german-x-latest]{hyphsubst} +% \usepackage[german]{babel} +% \end{verbatim}\vspace{-\baselineskip} +% Since \Lopt{austrian} uses the same patterns as \Lopt{german}, the given \textsf{hyphsubst} option activates +% the new patterns for this variety as well; but note that \textsf{hyphsubst} must be loaded before \babel\ (please refer to \cite{exptl} and +% \cite{hyphsubst} for details). +% +% If you only want to use experimental patterns for one variety, you can do like so: +% \begin{verbatim} +% \usepackage{hyphsubst} +% \usepackage[german,austrian]{babel} +% \HyphSubstLet{austrian}{german-x-latest} +% \end{verbatim}\vspace{-\baselineskip} +% +% +% \section{Variety-specific options}\label{sec:toss} +% +% In\newfeature{2.10} Swiss (and Liechtensteinian) German writing, the use of \graph{\ss} is rather uncommon. +% Swiss writers would normally use \graph{ss} where German or Austrian writers use the \graph{\ss} character +% (e.\,g., \emph{Bu\ss e} vs.\,\emph{Busse}). When texts (or names) from other German speaking areas are quoted, +% however, the spelling and hence the \graph{\ss} is often maintained (particularly in scholarly writing where +% the spelling of quoted text is not supposed to be touched). +% +% We assume that Swiss writers will normally input \graph{ss} directly when they mean \graph{ss}, and we assume furthermore +% that the \graph{\ss}-related shorthands |"s| and |"z| are useful also for Swiss writers when they actually need \graph{\ss}, +% the more so since the \graph{\ss} is not as directly accessible on Swiss keyboards as it is on German and Austrian ones. +% On the other hand, there might be occasions where writers want to transfer a text from German or Austrian Standard into Swiss +% Standard German and adapt the spelling on the fly, i.\,e., transform all \graph{\ss} into \graph{ss}. +% +% For this special case, we provide an option to make the \graph{\ss}-related shorthands |"s| and |"z| expand to the +% respective digraphs\footnote{In graphematics, the term \emph{digraph} denotes two characters that make a functional pair +% (which means, depending on the theoretical assumptions: they represent a single sound or they are semantically distinctive).}, +% \graph{ss} and \graph{sz}, rather than to \graph{\ss}. This is not the default behavior with +% \Lopt{swissgerman} since, as mentioned, there are situations when the \graph{\ss} is (and has to be) used in Swiss writing, +% and normally, no shorthand is needed to input (or output) two simple \graph{s} characters. You can opt-in (and out) digraphical +% expansion of |"s| and |"z| on a global and local level: +% \begin{itemize} +% \item To globally switch on the digraphical expansion, use the \Babel\ modifier \Lopt{toss} (read: `to \graph{ss}') with +% \Lopt{swissgerman}. I.\,e., pass \Lopt{swissgerman.toss} (rather than \Lopt{swissgerman}) as \babel\ option. +% +% \item To switch on the digraphical expansion only locally, you can use the boolean switch |\tosstrue|. Likewise, +% |\tossfalse| switches off (both locally and globally set) digraphical expansion. +% \end{itemize} +% Both these changes result in the following deviant behavior of two shorthands: +% \begin{table}[!h] +% \begin{tabular}{l>{\raggedright}p{.9\textwidth}} +% |"s| & Expands to digraph \graph{ss} \tabularnewline +% |"z| & Expands to digraph \graph{sz} \tabularnewline +% \end{tabular} +% \end{table} +% +% \noindent One further note related to the use of \graph{ss} in Swiss German. As opposed to other consonantial letters, the \graph{s} +% is excluded from the three consonant rule (\emph{Dreikonsonantenregel}) of traditional German spelling which prescribes +% that one of three identical consonants has to be omitted if a vowel follows the three consonants (i.\,e., \emph{Schiffahrt}, +% not \emph{Schifffahrt}), except if the word is hyphenated (\emph{Schiff-fahrt}); the shorthands |"ff| etc. account for that. +% This does not apply to \graph{s}! In that case, always all three consonants are spelled out (e.\,g., \emph{Kongresssaal}, +% not \emph{Kongressaal}). This is why we don't provide a shorthand for the \graph{sss} case. +% +% % \StopEventually{} % % \section{Implementation} % % \subsection{General settings} % +% First, we define some helper macros that help us to identify later on +% which variety of German we are currently dealing with. +% \changes{Version 2.9a=Version 2.10}{2016/11/03}{Add helper macros to identify the current option.} +% \iffalse +%<*germanb> +% \fi +% \begin{macrocode} +\def\bbl@opt@german{german} +\def\bbl@opt@germanb{germanb} +\def\bbl@opt@austrian{austrian} +\def\bbl@opt@swissgerman{swissgerman} +% \end{macrocode} +% % If \file{germanb.ldf} is read via the deprecated \babel\ option % \Lopt{germanb}, we make it behave as if \Lopt{german} was specified. % \changes{Version 2.6l}{2008/03/17}{Making germanb behave like german % needs some more work besides defining \cs{CurrentOption}} % \changes{Version 2.6m}{2008/06/01}{Corrected a typo} -% \iffalse -%<*germanb> -% \fi % \begin{macrocode} -\def\bbl@tempa{germanb} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@germanb \def\CurrentOption{german} \ifx\l@german\@undefined - \@nopatterns{German} + \@nopatterns{German (trad. orthography)} \adddialect\l@german0 \fi \let\l@germanb\l@german @@ -293,7 +403,7 @@ % \end{macrocode} % % If \file{germanb.ldf} is read as an option, i.e. via |\usepackage| -% command, \texttt{german} could be an `unknown' language, so we +% command, \Lopt{german} could be an `unknown' language, so we % have to make it known. We check for the existence of % |\l@german| and issue a warning if it is unknown. % @@ -311,17 +421,16 @@ \fi % \end{macrocode} % -% We set \texttt{austrian} as a dialect of \texttt{german}, +% We set \Lopt{austrian} as a dialect of \Lopt{german}, % since the Austrian variety uses the same hyphenation patterns as % Germany's Standard German. If no German patterns are found, we issue % a warning. % \changes{Version 2.0}{1991/04/23}{Now use \cs{adddialect} for % austrian} -% \changes{Version 2.8}{2016/11/01}{Only add Austrian dialect if \texttt{austrian} is loaded} +% \changes{Version 2.8}{2016/11/01}{Only add Austrian dialect if \Lopt{austrian} is loaded} % \changes{Version 2.9}{2016/11/02}{Do not attempt to load \cs{l@austrian}, which does not exist} % \begin{macrocode} -\def\bbl@tempa{austrian} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@austrian \ifx\l@german\@undefined \@nopatterns{German (trad. orthography), needed by Austrian (trad. orthography)} \adddialect\l@austrian0 @@ -332,14 +441,13 @@ % \end{macrocode} % % For the Swiss variety, we attempt to load the specific -% \texttt{swissgerman} hyphenation patterns and fall back to -% \texttt{german} if those are not available. +% \Lopt{swissgerman} hyphenation patterns and fall back to +% \Lopt{german} if those are not available. % If no patterns are found, we issue a warning. % \changes{Version 2.7b}{2014/10/10}{Do not warn about missing swissgerman patterns -% if \texttt{swissgerman} is not loaded} +% if \Lopt{swissgerman} is not loaded} % \begin{macrocode} -\def\bbl@tempa{swissgerman} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@swissgerman \ifx\l@swissgerman\@undefined \ifx\l@german\@undefined \@nopatterns{Swiss German (trad. orthography) and German (trad. orthography)} @@ -379,7 +487,7 @@ % \cs{captionsaustrian} and % \cs{captionsswissgerman}.} % \changes{Version 2.7}{2013/12/13}{Changed \cs{enclname} in -% \texttt{austrian} to +% \Lopt{austrian} to % \emph{Beilage(n)}.} % \changes{Version 2.8}{2016/11/01}{Define trans-variational base captions % which are loaded and modified by the varieties} @@ -391,32 +499,31 @@ \def\bibname{Literaturverzeichnis}% \def\chaptername{Kapitel}% \def\appendixname{Anhang}% - \def\contentsname{Inhaltsverzeichnis}% % oder nur: Inhalt + \def\contentsname{Inhaltsverzeichnis}% \def\listfigurename{Abbildungsverzeichnis}% \def\listtablename{Tabellenverzeichnis}% \def\indexname{Index}% \def\figurename{Abbildung}% - \def\tablename{Tabelle}% % oder: Tafel + \def\tablename{Tabelle}% \def\partname{Teil}% \def\enclname{Anlage(n)}% - \def\ccname{Verteiler}% % oder: Kopien an + \def\ccname{Verteiler}% \def\headtoname{An}% \def\pagename{Seite}% \def\seename{siehe}% \def\alsoname{siehe auch}% \def\proofname{Beweis}% \def\glossaryname{Glossar}% - } +} % \end{macrocode} % \end{macro} % \begin{macro}{\captionsgerman} % The macro |\captionsgerman| is identical to |\@captionsgerman|, -% but only defined if \texttt{german} is requested. +% but only defined if \Lopt{german} is requested. % \changes{Version 2.8}{2016/11/01}{Only define \cs{captionsgerman} if -% \texttt{german} is requested.} +% \Lopt{german} is requested.} % \begin{macrocode} -\def\bbl@tempa{german} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@german \@namedef{captionsgerman}{% \@nameuse{@captionsgerman}% } @@ -427,12 +534,11 @@ % The macro |\captionsaustrian| builds on |\@captionsgerman|, but % redefines some strings following Austrian conventions (for the % respective variants, cf. \cite{vwb}). It is only defined if -% \texttt{austrian} is requested. +% \Lopt{austrian} is requested. % \changes{Version 2.8}{2016/11/01}{Only define \cs{captionsaustrian} if -% \texttt{austrian} is requested.} +% \Lopt{austrian} is requested.} % \begin{macrocode} -\def\bbl@tempa{austrian} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@austrian \@namedef{captionsaustrian}{% \@nameuse{@captionsgerman}% \def\enclname{Beilage(n)}% @@ -444,12 +550,11 @@ % The macro |\captionsswissgerman| builds on |\@captionsgerman|, but % redefines some strings following Swiss conventions (for the % respective variants, cf. \cite{vwb}). It is only defined if -% \texttt{swissgerman} is requested. +% \Lopt{swissgerman} is requested. % \changes{Version 2.8}{2016/11/01}{Only define \cs{captionsswissgerman} if -% \texttt{swissgerman} is requested.} +% \Lopt{swissgerman} is requested.} % \begin{macrocode} -\def\bbl@tempa{swissgerman} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@swissgerman \@namedef{captionsswissgerman}{% \@nameuse{@captionsgerman}% \def\enclname{Beilage(n)}% @@ -472,16 +577,16 @@ % % \begin{macro}{\dategerman} % The macro |\dategerman| redefines the command -% |\today| to produce German dates. +% |\today| to produce German dates. It is only defined if +% \Lopt{german} is requested. % \changes{Version 2.6f}{1997/10/01}{Use \cs{edef} to define % \cs{today} to save memory} % \changes{Version 2.6f}{1998/03/28}{use \cs{def} instead of % \cs{edef}} % \changes{Version 2.8}{2016/11/01}{Only define \cs{dategerman} if -% \texttt{german} is requested.} +% \Lopt{german} is requested.} % \begin{macrocode} -\def\bbl@tempa{german} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@german \def\dategerman{\def\today{\number\day.~\month@german \space\number\year}} \fi @@ -490,13 +595,13 @@ % % \begin{macro}{\dateswissgerman} % \changes{Version 2.7}{2013/12/13}{Added \cs{dateswissgerman}.} -% The macro |\dateswissgerman| does the same for Swiss German dates. +% The macro |\dateswissgerman| does the same for Swiss German dates. It +% is only defined if \Lopt{swissgerman} is requested. % The result is identical to German. % \changes{Version 2.8}{2016/11/01}{Only define \cs{dateswissgerman} if -% \texttt{swissgerman} is requested.} +% \Lopt{swissgerman} is requested.} % \begin{macrocode} -\def\bbl@tempa{swissgerman} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@swissgerman \def\dateswissgerman{\def\today{\number\day.~\month@german \space\number\year}} \fi @@ -507,16 +612,16 @@ % The macro |\dateaustrian| redefines the command % |\today| to produce Austrian versions of the German dates. % Here, the naming of January (,,J\"anner``) differs from the -% other German varieties. +% other German varieties. The macro is only defined if +% \Lopt{austrian} is requested. % \changes{Version 2.6f}{1997/10/01}{Use \cs{edef} to define % \cs{today} to save memory} % \changes{Version 2.6f}{1998/03/28}{use \cs{def} instead of % \cs{edef}} % \changes{Version 2.8}{2016/11/01}{Only define \cs{dateaustrian} if -% \texttt{austrian} is requested.} +% \Lopt{austrian} is requested.} % \begin{macrocode} -\def\bbl@tempa{austrian} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@austrian \def\dateaustrian{\def\today{\number\day.~\ifnum1=\month J\"anner\else \month@german\fi \space\number\year}} \fi @@ -568,6 +673,34 @@ \expandafter\addto\csname extras\CurrentOption\endcsname{% \bbl@activate{"}} % \end{macrocode} +% +% \changes{Version 2.9a=Version 2.10}{2018/03/28}{Implement boolean switch +% \cs{tosstrue}\slash\cs{tossfalse} to customize \graph{\ss}-related +% shorthands in Swiss German context.} +% \changes{Version 2.9a=Version 2.10}{2018/03/28}{Implement modifier \Lopt{toss} +% to customize \graph{\ss}-related shorthands in Swiss German context.} +% \begin{macro}{toss} +% \begin{macro}{\tosstrue} +% \begin{macro}{\tossfalse} +% For Swiss German, we allow optionally to expand the \graph{\ss}-related +% shorthands the Swiss way, i.\,e. as \graph{ss} (globally, if the modifier \Lopt{toss} +% is used or locally if |\tosstrue|.). +% \begin{macrocode} +\newif\iftoss\tossfalse +\newif\ifbbl@toss\bbl@tossfalse +\ifx\bbl@mod@swissgerman\@undefined\else + \@expandtwoargs\in@{,toss,}{,\bbl@mod@swissgerman,} + \ifin@ + \tosstrue + \fi + \addto\extrasswissgerman{% + \iftoss\bbl@tosstrue\else\bbl@tossfalse\fi} +\fi +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% % Next, again depending on the option with which the language definition % file has been loaded, the macro |\noextrasgerman|, |\noextrasaustrian| % or |\noextrasswissgerman| is defined. @@ -576,10 +709,13 @@ % \changes{Version 2.6i}{1999/12/16}{Deactivate shorthands outside of % German.} % \changes{Version 2.7}{2013/12/13}{Deactivate shorthands also outside of -% \texttt{austrian} and \texttt{swissgerman}.} +% \Lopt{austrian} and \Lopt{swissgerman}.} % \begin{macrocode} \expandafter\addto\csname noextras\CurrentOption\endcsname{% \bbl@deactivate{"}} +\ifx\CurrentOption\bbl@opt@swissgerman + \addto\noextrasswissgerman{\bbl@tossfalse} +\fi % \end{macrocode} % % \changes{Version 2.6a}{1995/02/15}{All the code to handle the active @@ -623,7 +759,7 @@ % For German texts we need to assure that |\frenchspacing| is % turned on. % \changes{Version 2.6k}{2001/01/26}{Turn frenchspacing on, as in -% \texttt{german.sty}} +% \file{german.sty}} % \begin{macrocode} \expandafter\addto\csname extras\CurrentOption\endcsname{% \bbl@frenchspacing} @@ -661,11 +797,18 @@ % \begin{macro}{\dq} % We save the original double quotation mark character in |\dq| to keep % it available, the math accent |\"| can now be typed as |"|. +% +% Furthermore, we define some helper macros for contextual \graph{\ss} handling. % \begin{macrocode} \begingroup \catcode`\"12 \def\x{\endgroup + \def\dq{"} \def\@SS{\mathchar"7019 } - \def\dq{"}} + \def\bbl@ss{\ifbbl@toss ss\else\textormath{\ss}{\@SS{}}\fi} + \def\bbl@SS{SS} + \def\bbl@sz{\ifbbl@toss sz\else\textormath{\ss}{\@SS{}}\fi} + \def\bbl@SZ{SZ} +} \x % \end{macrocode} % \end{macro} @@ -697,10 +840,10 @@ % \changes{Version 2.6f}{1997/05/08}{use \cs{SS} instead of % \texttt{SS}, removed braces after \cs{ss}} % \begin{macrocode} -\declare@shorthand{german}{"s}{\textormath{\ss}{\@SS{}}} -\declare@shorthand{german}{"S}{\SS} -\declare@shorthand{german}{"z}{\textormath{\ss}{\@SS{}}} -\declare@shorthand{german}{"Z}{SZ} +\declare@shorthand{german}{"s}{\bbl@ss} +\declare@shorthand{german}{"S}{\bbl@SS} +\declare@shorthand{german}{"z}{\bbl@sz} +\declare@shorthand{german}{"Z}{\bbl@SZ} % \end{macrocode} % German and French/Swiss quotation marks, % \begin{macrocode} @@ -743,7 +886,7 @@ % \end{macrocode} % and some additional commands (hyphenation, line breaking and ligature control): % \changes{Version 2.9}{2016/11/02}{Add \texttt{"/} shortcut for breakable slash -% (taken from \texttt{dutch.ldf})} +% (taken from \file{dutch.ldf})} % \begin{macrocode} \declare@shorthand{german}{"-}{\nobreak\-\bbl@allowhyphens} \declare@shorthand{german}{"|}{% @@ -792,22 +935,22 @@ % \file{german.ldf} and \file{swissgerman.ldf}.} % % \Babel\ expects a \file{\langvar{}.ldf} file for each \langvar. So we create portmanteau -% ldf files for \texttt{austrian}, \texttt{german} and \texttt{swissgerman}.\footnote{% -% For some \texttt{austrian} and \texttt{german}, this is not strictly necessary, -% since \babel\ provides aliases for these languages (pointing to \texttt{germanb}). +% ldf files for \Lopt{austrian}, \Lopt{german} and \Lopt{swissgerman}.\footnote{% +% For \Lopt{austrian} and \Lopt{german}, this is not strictly necessary, +% since \babel\ provides aliases for these languages (pointing to \Lopt{germanb}). % However, since \babel\ does not officially support these aliases anymore after % the language definition files have been separated from the core, we provide % the whole range of ldf files for the sake of completeness.} These files themselves % only load \file{germanb.ldf}, which does the real work: % % \iffalse -%<*austrian|german|swiss> +%<*austrian|german|swissgerman> % \fi % \begin{macrocode} \input germanb.ldf\relax % \end{macrocode} % \iffalse -% +% % \fi % % @@ -821,11 +964,20 @@ % \bibitem{babel} Braams, Johannes and Bezos, Javier: % \emph{Babel}. % \url{http://www.ctan.org/pkg/babel}. +% \bibitem{exptl} Deutschsprachige Trennmustermannschaft: +% \emph{dehyph-exptl -- Experimental hyphenation patterns for the German language}. +% \url{https://ctan.org/pkg/dehyph-exptl}. +% \bibitem{hyphsubst} Heiko Oberdiek: +% \emph{hyphsubst -- Substitute hyphenation patterns}. +% \url{https://ctan.org/pkg/hyphsubst}. % \bibitem{HP} Partl, Hubert: % \emph{German \TeX}, \emph{TUGboat} 9/1 (1988), p.~70--72. % \bibitem{gerdoc} Raichle, Bernd: % \emph{German}. % \url{http://www.ctan.org/pkg/german}. +% \bibitem{hyph-utf8} Manuel P\'egouri\'e-Gonnard et al.: +% \emph{hyph-utf8 -- Hyphenation patterns expressed in UTF-8}. +% \url{https://ctan.org/pkg/hyph-utf8}. % \end{thebibliography} % % \Finale diff --git a/Master/texmf-dist/source/generic/babel-german/ngermanb.dtx b/Master/texmf-dist/source/generic/babel-german/ngermanb.dtx index 4e305683df7..3caf2247efa 100644 --- a/Master/texmf-dist/source/generic/babel-german/ngermanb.dtx +++ b/Master/texmf-dist/source/generic/babel-german/ngermanb.dtx @@ -2,10 +2,11 @@ % % File `ngermanb.dtx' % -% Copyright 1989--2016 Johannes L. Braams -% Bernd Raichle -% Walter Schmidt, -% Juergen Spitzmueller +% Copyright 1989--2016 +% Johannes L. Braams +% Bernd Raichle +% Walter Schmidt +% Juergen Spitzmueller % All rights reserved. % % This file is part of the babel-german bundle, @@ -28,7 +29,7 @@ % by Bernd Raichle, Hubert Partl et.al. % % \fi -% \CheckSum{365} +% \CheckSum{403} % % \iffalse % Tell the \LaTeX\ system who we are and write an entry on the @@ -36,13 +37,13 @@ %<*dtx> \ProvidesFile{ngermanb.dtx} % -%\ProvidesLanguage{naustrian} -%\ProvidesLanguage{ngerman} -%\ProvidesLanguage{nswissgerman} -%\ProvidesLanguage{ngermanb} +%\ProvidesLanguage{naustrian} +%\ProvidesLanguage{ngerman} +%\ProvidesLanguage{nswissgerman} +%\ProvidesLanguage{ngermanb} %\fi %\ProvidesFile{ngermanb.dtx} - [2016/11/02 v2.9 German support for babel (new orthography)] + [2018/03/29 v2.10 German support for babel (post-1996 orthography)] %\iffalse % %<*filedriver> @@ -53,15 +54,23 @@ \usepackage{url} \usepackage{array} \usepackage{booktabs} -\usepackage[tableposition=top]{caption} +\usepackage[tableposition=top,skip=5pt]{caption} \usepackage{marginnote} -\newcommand*\TeXhax{\TeX hax} +\usepackage[svgnames]{xcolor} +\usepackage[pdfusetitle]{hyperref} +\hypersetup{% + colorlinks, + linkcolor=black, + filecolor=Maroon, + urlcolor=Maroon, + citecolor=black +} \newcommand*\babel{\textsf{babel}} \newcommand*\Babel{\textsf{Babel}} \newcommand*\langvar{$\langle \it lang \rangle$} \newcommand*\graph[1]{$\langle$#1$\rangle$} \newcommand*\note[1]{} -\newcommand*\Lopt[1]{\textsf{#1}} +\newcommand*\Lopt[1]{\texttt{#1}} \newcommand*\file[1]{\texttt{#1}} \newcommand*\newfeature[1]{\marginnote{\footnotesize New feature\\in v.\,#1!}} \GlossaryMin = .33\textheight @@ -75,62 +84,72 @@ % %\RecordChanges % -% \changes{Version 2.7}{2013/12/13}{Added support for variety \texttt{nswissgerman}.} -% \changes{Version 2.7}{2013/12/13}{Revised \texttt{naustrian} support.} +% \changes{Version 2.9a=Version 2.10}{2016/11/07}{Improvements to the manual} +% +% \changes{Version 2.7}{2013/12/13}{Added support for variety \Lopt{nswissgerman}.} +% \changes{Version 2.7}{2013/12/13}{Revised \Lopt{naustrian} support.} % \changes{Version 2.7}{2013/12/13}{Revised documentation: Turn the \babel{} % manual chapter into a self-enclosed manual.} % % \changes{Version 2.6f}{1999/03/24}{Renamed from \file{germanb.ldf}; -% language names changed from \texttt{german} and \texttt{austrian} -% to \texttt{ngerman} and \texttt{naustrian}.} +% language names changed from \Lopt{german} and \Lopt{austrian} +% to \Lopt{ngerman} and \Lopt{naustrian}.} % -% \title{Babel support for the German language (new~orthography)} +% \title{Babel support for the German language (post-1996~orthography)} % \author{Johannes Braams \and Bernd Raichle \and Walter Schmidt \and J\"urgen Spitzm\"uller\thanks{% % Current maintainer. Please report issues via \protect\url{https://github.com/jspitz/babel-german}.}} % \date{\fileversion\ (\filedate)} % \maketitle % % \begin{abstract} -% \noindent This manual documents the \babel\ language definition file \file{ngermanb.ldf} -% for German (new orthography). -% The file is part of the \textsf{babel-german} bundle. +% \noindent This manual documents \babel\ language support for German (post-1996 orthography), +% including support for the Austrian and Swiss varieties of German. +% The manual is part of the \textsf{babel-german} bundle. % \end{abstract} % % \section{Aim and usage} % -% The file \file{ngermanb.ldf} provides the \babel\ package with all language -% definition macros (language specific strings and settings) for the German -% language, including the Austrian and Swiss varieties of German. Furthermore, -% it assures that the correct hyphenation patterns for the respective language -% or variety are used.\footnote{The file \file{ngermanb.ldf} started as a -% re-implementation of the package \file{ngerman.sty} by Bernd Raichle (cf. \cite{gerdoc}), -% which itself builds on \file{german.sty}, originally developed by Hubert Partl -% (cf. \cite{HP}) and later maintained by Bernd Raichle as well. -% The re-implementation was done by Johannes Braams.} -% The file adheres to the reformed (1996\,ff.) orthography. -% For traditional (1901--1996) German orthography support, -% please refer to the complementary |germanb.ldf| file. +% The \babel\ `language definition file' \file{ngermanb.ldf} documented in this manual provides +% the \babel\ package with all language specific strings, settings and commands needed for writing +% German texts, including texts in the Austrian and Swiss varieties of German.\footnote{% +% The file \file{ngermanb.ldf} started as a re-implementation of the +% package \file{ngerman.sty} by Bernd Raichle (cf.\,\cite{gerdoc}), +% which itself builds on \file{german.sty}, originally developed by +% Hubert Partl (cf.\,\cite{HP}) and later maintained by Bernd Raichle +% as well. The initial re-implementation was done by Johannes Braams.} +% Furthermore, it is assured that the correct hyphenation patterns for the respective +% language or variety are used (see sec.~\ref{sec:patterns} for details). +% The file, and hence this manual, addresses the contemporary (`reformed', i.\,e., post-1996) orthography. +% For traditional (pre-1996) German orthography support, please refer to the complementary +% \href{file:germanb.pdf}{manual for the \file{germanb.ldf} language definition file}. % % In order to use the language definitions provided here, you need to use -% the \babel\ package and pass the respective language name as an -% option, either of +% the \babel\ package and pass the respective language\slash variety name\footnote{% +% Obviously, the prefix \graph{n} in the language\slash variety +% names stands for `new' (orthography) here, since the names \Lopt{austrian}, \Lopt{german} +% and \Lopt{swissgerman} were already used for pre-1996 orthography.} +% as an option, either of % % \begin{itemize} % \setlength{\itemsep}{0pt} % \item |\usepackage[ngerman]{babel}| % \item |\usepackage[naustrian]{babel}| % \item |\usepackage[nswissgerman]{babel}| +% \item |\usepackage[nswissgerman.toss]{babel}|\newfeature{2.10}\footnote{% +% See sec.~\ref{sec:toss} on the \Lopt{toss} modifier.} % \end{itemize} -% Please consult the \babel\ manual \cite{babel} for details. +% Using multiple varieties in parallel is possible; +% consult the \babel\ manual \cite{babel} for details. % % \section{Shorthands} % % For all three varieties of German, the character |"| is made active % in order to provide some shorthand macros for frequently used special -% characters as well for better control of hyphenation, line breaks and -% ligatures. +% characters as well as for better control of hyphenation, line breaks +% and ligatures. % Table~\ref{tab:german-quote} provides an overview of the shorthands -% that are provided by \file{ngermanb.ldf}. +% that are provided by \textsf{babel-german} for \Lopt{ngerman}, \Lopt{naustrian} +% and \Lopt{nswissgerman}. % \begin{table}[htb] % \begin{center} % \small @@ -142,9 +161,11 @@ % available for all other lower- and uppercase % vowels (umlauts: |"a|, |"o|, |"u|, |"A|, |"O|, % |"U|; tremata: |"e|, |"i|, |"E|, |"I|). \tabularnewline -% |"s| & German \graph{\ss} (shorthand for |\ss{}|). \tabularnewline +% |"s| & German \graph{\ss} (shorthand for |\ss{}|); +% but cf. sec.~\ref{sec:toss}. \tabularnewline % |"z| & German \graph{\ss} (shorthand for |\ss{}|). -% The difference to |"s| is the uppercase version. \tabularnewline +% Differs to |"s| in uppercase version; +% but cf. sec.~\ref{sec:toss}. \tabularnewline % |"S| & |\uppercase{"s}|, typeset as \graph{SS}(\graph{\ss} % must be written as \graph{SS} in uppercase writing). \tabularnewline % |"Z| & |\uppercase{"z}|, typeset as \graph{SZ}. In traditional @@ -157,16 +178,17 @@ % |"-| & An additional breakpoint that does still % allow for hyphenation at the breakpoints preset in % the hyphenation patterns (as opposed to |\-|). \tabularnewline -% |""| & A breakpoint that does not output a hyphen if the line -% break is performed (useful for compound words with -% hyphen, e.\,g., |(Un-)""Sinn|). \tabularnewline -% |"~| & An explicit hyphen without a breakpoint. Useful for -% cases where the hyphen should stick at the following -% word, e.\,g., |bergauf und "~ab| . \tabularnewline % |"=| & An explicit hyphen with a breakpoint, allowing % for hyphenation at the other points preset in the % hyphenation patterns (as opposed to plain |-|); -% useful for long compounds. \tabularnewline +% useful for long compounds such as +% |IT"=Dienstleisterinnen|. \tabularnewline +% |"~| & An explicit hyphen without a breakpoint. Useful for +% cases where the hyphen should stick at the following +% syllable, e.\,g., |bergauf und "~ab| . \tabularnewline +% |""| & A breakpoint that does not output a hyphen if the line +% break is performed (consider parenthetical extensions +% as in |(pseudo"~)""wissenschaftlich|). \tabularnewline % |"/| & \newfeature{2.9}A slash that allows for a linebreak. % As opposed to |\slash{}|, hyphenation at the breakpoints % preset in the hyphenation patterns is still allowed. \tabularnewline @@ -179,9 +201,9 @@ % \end{center} % \end{table} % -% Table~\ref{tab:more-quote} lists some \babel\ macros for quotation marks -% that might be used as an alternative to the quotation mark shorthands -% provided by \file{ngermanb.ldf}. +% \enlargethispage{\baselineskip} +% \noindent Table~\ref{tab:more-quote} lists some \babel\ macros for quotation marks +% that might be used as an alternative to the quotation mark shorthands listed above. % \begin{table}[!h] % \begin{center} % \small @@ -202,6 +224,74 @@ % \end{center} % \end{table} % +% \section{Hyphenation patterns}\label{sec:patterns} +% +% The question which hyphenation patterns are used by \Babel\ in case of the varieties of German needs some elaboration. +% There is a set of established hyphenation patterns for pre- and post-1996 German orthography that has been available +% with \TeX\ distributions for a long time (currently, these are shipped in form of the \texttt{dehypht} and \texttt{dehyphn} files). +% These patterns, though, have many flaws (they produce wrong hyphenations, and not much is known about their construction). Therefore, +% a group of people developed completely new patterns that do much better, the so-called `experimental' new hyphenation patterns of German, +% distributed in the \textsf{dehyph-exptl} package \cite{exptl}. +% As opposed to the old patterns, the new ones undergo constant improvement. The price for this, however, is that hyphenation and thus +% the typeset document is subject to change with, and only due to, pattern updates. +% +% Modern engines (i.\,e., \texttt{xetex} and \texttt{luatex}) have already embraced those new patterns, i.\,e., they are activated on these +% engines by default. The classic \TeX\ engines (\texttt{tex}\slash\texttt{pdftex}), however, haven't: they continue to use the old patterns. +% The reason for this is one of \TeX's quality standards: refrain, if ever possible, from changing the output of user's documents in the wake +% of software updates. +% +% This means that you need to explicitly activate the new patterns for a given document with the classic engines, should you want to use them +% instead of the old ones. With \Babel, this can be done quite easily by means of the \textsf{hyphsubst} \cite{hyphsubst} package: +% \begin{verbatim} +% \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +% \usepackage[ngerman]{babel} +% \end{verbatim}\vspace{-\baselineskip} +% Since \Lopt{naustrian} and \Lopt{nswissgerman} use the same patterns as \Lopt{ngerman}, the given \textsf{hyphsubst} option activates +% the new patterns for all varieties; but note that \textsf{hyphsubst} must be loaded before \babel\ (please refer to \cite{exptl} and +% \cite{hyphsubst} for details). +% +% If you only want to use experimental patterns for one variety, you can do like so: +% \begin{verbatim} +% \usepackage{hyphsubst} +% \usepackage[ngerman,naustrian]{babel} +% \HyphSubstLet{naustrian}{ngerman-x-latest} +% \end{verbatim}\vspace{-\baselineskip} +% +% \section{Variety-specific options}\label{sec:toss} +% +% In\newfeature{2.10} Swiss (and Liechtensteinian) German writing, the use of \graph{\ss} is rather uncommon. +% Swiss writers would normally use \graph{ss} where German or Austrian writers use the \graph{\ss} character +% (e.\,g., \emph{Bu\ss e} vs.\,\emph{Busse}). When texts (or names) from other German speaking areas are quoted, +% however, the spelling and hence the \graph{\ss} is often maintained (particularly in scholarly writing where +% the spelling of quoted text is not supposed to be touched). +% +% We assume that (1) Swiss writers normally input \graph{ss} directly when they mean \graph{ss}, and that (2) the +% \graph{\ss}-related shorthands |"s| and |"z| are useful also for Swiss writers when they actually need \graph{\ss}, +% the more so since the \graph{\ss} is not as directly accessible on Swiss keyboards as it is on German and Austrian ones. +% On the other hand, there might be occasions where writers want to transfer a text from German or Austrian into Swiss +% Standard German and adapt the spelling on the fly, i.\,e., transform all \graph{\ss} into \graph{ss}. +% +% For this special case, we provide an option to make the \graph{\ss}-related shorthands |"s| and |"z| expand to the +% respective digraphs\footnote{In graphematics, the term \emph{digraph} denotes two characters that make a functional pair +% (which means, depending on the theoretical assumptions: they represent a single sound or they are semantically distinctive).}, +% \graph{ss} and \graph{sz}, rather than to \graph{\ss}. This is not the default behavior with +% \Lopt{nswissgerman} since, as mentioned, there are situations when the \graph{\ss} is (and has to be) used in Swiss writing, +% and normally, no shorthand is needed to input (or output) two simple \graph{s} characters. You can opt-in (and out) digraphical +% expansion of |"s| and |"z| on a global and local level: +% \begin{itemize} +% \item To globally switch on the digraphical expansion, use the \Babel\ modifier \Lopt{toss} (read: `to \graph{ss}') with +% \Lopt{nswissgerman}. I.\,e., pass \Lopt{nswissgerman.toss} (rather than \Lopt{nswissgerman}) as \babel\ option. +% +% \item To switch on the digraphical expansion only locally, you can use the boolean switch |\ntosstrue|. Likewise, +% |\ntossfalse| switches off (both locally and globally set) digraphical expansion. +% \end{itemize} +% Both these changes result in the following deviant behavior of two shorthands:\\ +% \begin{tabular}{l>{\raggedright}p{.9\textwidth}} +% |"s| & Expands to digraph \graph{ss} \tabularnewline +% |"z| & Expands to digraph \graph{sz} \tabularnewline +% \end{tabular} +% +% % \StopEventually{} % % @@ -209,14 +299,23 @@ % % \subsection{General settings} % -% If \file{ngermanb.ldf} is read via the deprecated \babel\ option -% \Lopt{ngermanb}, we make it behave as if \Lopt{ngerman} was specified. +% First, we define some helper macros that help us to identify later on +% which variety of German we are currently dealing with. +% \changes{Version 2.9a=Version 2.10}{2016/11/03}{Add helper macros to identify the current option.} % \iffalse -%<*germanb> +%<*ngermanb> % \fi % \begin{macrocode} -\def\bbl@tempa{ngermanb} -\ifx\CurrentOption\bbl@tempa +\def\bbl@opt@ngerman{ngerman} +\def\bbl@opt@ngermanb{ngermanb} +\def\bbl@opt@naustrian{naustrian} +\def\bbl@opt@nswissgerman{nswissgerman} +% \end{macrocode} +% +% If \file{ngermanb.ldf} is read via the deprecated \babel\ option +% \Lopt{ngermanb}, we make it behave as if \Lopt{ngerman} was specified. +% \begin{macrocode} +\ifx\CurrentOption\bbl@opt@ngermanb \def\CurrentOption{ngerman} \fi % \end{macrocode} @@ -229,7 +328,7 @@ % \end{macrocode} % % If \file{ngermanb.ldf} is read as an option, i.e., by the |\usepackage| -% command, \texttt{ngerman} could be an `unknown' language, so we +% command, \Lopt{ngerman} could be an `unknown' language, so we % have to make it known. We check for the existence of % |\l@ngerman| and issue a warning if it is unknown. % @@ -240,17 +339,16 @@ \fi % \end{macrocode} % -% We set \texttt{naustrian} and \texttt{nswissgerman} as dialects -% of \texttt{ngerman}, since they use the same hyphenation patterns -% than \texttt{ngerman}. If no \texttt{ngerman} patterns are found, +% We set \Lopt{naustrian} and \Lopt{nswissgerman} as dialects +% of \Lopt{ngerman}, since they use the same hyphenation patterns +% than \Lopt{ngerman}. If no \Lopt{ngerman} patterns are found, % we issue a warning. % \changes{Version 2.8}{2016/11/01}{Only add dialects if the respective % variety is loaded} % \changes{Version 2.9}{2016/11/02}{Do not attempt to load \cs{l@naustrian} % or \cs{l@nswissgerman}, which do not exist} % \begin{macrocode} -\def\bbl@tempa{naustrian} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@naustrian \ifx\l@ngerman\@undefined \@nopatterns{German (new orthography), needed by Austrian (new orthography)} \adddialect\l@naustrian0 @@ -258,8 +356,7 @@ \adddialect\l@naustrian\l@ngerman \fi \fi -\def\bbl@tempa{nswissgerman} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@nswissgerman \ifx\l@ngerman\@undefined \@nopatterns{German (new orthography), needed by Swiss German (new orthography)} \adddialect\l@nswissgerman0 @@ -286,7 +383,7 @@ % \cs{captionsnaustrian} and % \cs{captionsnswissgerman}.} % \changes{Version 2.7}{2013/12/13}{Changed \cs{enclname} in -% \texttt{naustrian} to +% \Lopt{naustrian} to % \emph{Beilage(n)}.} % \changes{Version 2.6k}{2000/09/20}{Added \cs{glossaryname}} % \changes{Version 2.8}{2016/11/01}{Define trans-variational base captions @@ -299,32 +396,31 @@ \def\bibname{Literaturverzeichnis}% \def\chaptername{Kapitel}% \def\appendixname{Anhang}% - \def\contentsname{Inhaltsverzeichnis}% % oder nur: Inhalt + \def\contentsname{Inhaltsverzeichnis}% \def\listfigurename{Abbildungsverzeichnis}% \def\listtablename{Tabellenverzeichnis}% \def\indexname{Index}% \def\figurename{Abbildung}% - \def\tablename{Tabelle}% % oder: Tafel + \def\tablename{Tabelle}% \def\partname{Teil}% \def\enclname{Anlage(n)}% - \def\ccname{Verteiler}% % oder: Kopien an + \def\ccname{Verteiler}% \def\headtoname{An}% \def\pagename{Seite}% \def\seename{siehe}% \def\alsoname{siehe auch}% \def\proofname{Beweis}% \def\glossaryname{Glossar}% - } +} % \end{macrocode} % \end{macro} % \begin{macro}{\captionsngerman} % The macro |\captionsngerman| is identical to |\@captionsngerman|, -% but only defined if \texttt{ngerman} is requested. +% but only defined if \Lopt{ngerman} is requested. % \changes{Version 2.8}{2016/11/01}{Only define \cs{captionsngerman} if -% \texttt{ngerman} is requested.} +% \Lopt{ngerman} is requested.} % \begin{macrocode} -\def\bbl@tempa{ngerman} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@ngerman \@namedef{captionsngerman}{% \@nameuse{@captionsngerman}% } @@ -335,12 +431,11 @@ % The macro |\captionsnaustrian| builds on |\@captionsngerman|, but % redefines some strings following Austrian conventions (for the % respective variants, cf. \cite{vwb}). It is only defined if -% \texttt{naustrian} is requested. +% \Lopt{naustrian} is requested. % \changes{Version 2.8}{2016/11/01}{Only define \cs{captionsnaustrian} if -% \texttt{naustrian} is requested.} +% \Lopt{naustrian} is requested.} % \begin{macrocode} -\def\bbl@tempa{naustrian} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@naustrian \@namedef{captionsnaustrian}{% \@nameuse{@captionsngerman}% \def\enclname{Beilage(n)}% @@ -352,12 +447,11 @@ % The macro |\captionsnswissgerman| builds on |\@captionsngerman|, but % redefines some strings following Swiss conventions (for the % respective variants, cf. \cite{vwb}). It is only defined if -% \texttt{nswissgerman} is requested. +% \Lopt{nswissgerman} is requested. % \changes{Version 2.8}{2016/11/01}{Only define \cs{captionsnswissgerman} if -% \texttt{nswissgerman} is requested.} +% \Lopt{nswissgerman} is requested.} % \begin{macrocode} -\def\bbl@tempa{nswissgerman} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@nswissgerman \@namedef{captionsnswissgerman}{% \@nameuse{@captionsngerman}% \def\enclname{Beilage(n)}% @@ -379,12 +473,12 @@ % % \begin{macro}{\datengerman} % The macro |\datengerman| redefines the command -% |\today| to produce German dates. +% |\today| to produce German dates. It is only defined if +% \Lopt{ngerman} is requested. % \changes{Version 2.8}{2016/11/01}{Only define \cs{datengerman} if -% \texttt{ngerman} is requested.} +% \Lopt{ngerman} is requested.} % \begin{macrocode} -\def\bbl@tempa{ngerman} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@ngerman \def\datengerman{\def\today{\number\day.~\month@ngerman \space\number\year}} \fi @@ -394,12 +488,12 @@ % \begin{macro}{\datenswissgerman} % \changes{Version 2.7}{2013/12/13}{Added \cs{datenswissgerman}.} % The macro |\datenswissgerman| does the same for Swiss German dates. -% The result is identical to German. +% The result is identical to German. This macro is only defined if +% \Lopt{nswissgerman} is requested. % \changes{Version 2.8}{2016/11/01}{Only define \cs{datenswissgerman} if -% \texttt{nswissgerman} is requested.} +% \Lopt{nswissgerman} is requested.} % \begin{macrocode} -\def\bbl@tempa{nswissgerman} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@nswissgerman \def\datenswissgerman{\def\today{\number\day.~\month@ngerman \space\number\year}} \fi @@ -410,12 +504,12 @@ % The macro |\datenaustrian| redefines the command % |\today| to produce Austrian versions of the German dates. % Here, the naming of January (,,J\"anner``) differs from the -% other German varieties. +% other German varieties. The macro is only defined if +% \Lopt{naustrian} is requested. % \changes{Version 2.8}{2016/11/01}{Only define \cs{datenaustrian} if -% \texttt{naustrian} is requested.} +% \Lopt{naustrian} is requested.} % \begin{macrocode} -\def\bbl@tempa{naustrian} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@naustrian \def\datenaustrian{\def\today{\number\day.~\ifnum1=\month J\"anner\else \month@ngerman\fi \space\number\year}} \fi @@ -452,10 +546,39 @@ % character. % \begin{macrocode} \@namedef{extras\CurrentOption}{% - \languageshorthands{ngerman}} + \languageshorthands{ngerman}% +} \expandafter\addto\csname extras\CurrentOption\endcsname{% \bbl@activate{"}} % \end{macrocode} +% +% \changes{Version 2.9a=Version 2.10}{2018/03/28}{Implement boolean switch +% \cs{ntosstrue}\slash\cs{ntossfalse} to customize \graph{\ss}-related +% shorthands in Swiss German context.} +% \changes{Version 2.9a=Version 2.10}{2018/03/28}{Implement modifier \Lopt{toss} +% to customize \graph{\ss}-related shorthands in Swiss German context.} +% \begin{macro}{toss} +% \begin{macro}{\ntosstrue} +% \begin{macro}{\ntossfalse} +% For Swiss German, we allow optionally to expand the \graph{\ss}-related +% shorthands the Swiss way, i.\,e. as \graph{ss} (globally, if the modifier \Lopt{toss} +% is used or locally if |\ntosstrue|.). +% \begin{macrocode} +\newif\ifntoss\ntossfalse +\newif\ifbbl@ntoss\bbl@ntossfalse +\ifx\bbl@mod@nswissgerman\@undefined\else + \@expandtwoargs\in@{,toss,}{,\bbl@mod@nswissgerman,} + \ifin@ + \ntosstrue + \fi + \addto\extrasnswissgerman{% + \ifntoss\bbl@ntosstrue\else\bbl@ntossfalse\fi} +\fi +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% % Next, again depending on the option with which the language definition % file has been loaded, the macro |\noextrasngerman|, |\noextrasnaustrian| % or |\noextrasnswissgerman| is defined. @@ -464,10 +587,13 @@ % \changes{Version 2.6j}{1999/12/16}{Deactivate shorthands outside of % German} % \changes{Version 2.7}{2013/12/13}{Deactivate shorthands also outside of -% \texttt{naustrian} and \texttt{nswissgerman}.} +% \Lopt{naustrian} and \Lopt{nswissgerman}.} % \begin{macrocode} \expandafter\addto\csname noextras\CurrentOption\endcsname{% \bbl@deactivate{"}} +\ifx\CurrentOption\bbl@opt@nswissgerman + \addto\noextrasnswissgerman{\bbl@ntossfalse} +\fi % \end{macrocode} % % @@ -504,7 +630,7 @@ % For German texts we need to assure that |\frenchspacing| is % turned on. % \changes{Version 2.6m}{2001/01/26}{Turn frenchspacing on, as in -% \texttt{german.sty}} +% \file{german.sty}} % \begin{macrocode} \expandafter\addto\csname extras\CurrentOption\endcsname{% \bbl@frenchspacing} @@ -531,11 +657,18 @@ % \begin{macro}{\dq} % We save the original double quotation mark character in |\dq| to keep % it available, the math accent |\"| can now be typed as |"|. +% +% Furthermore, we define some helper macros for contextual \graph{\ss} handling. % \begin{macrocode} \begingroup \catcode`\"12 \def\x{\endgroup + \def\dq{"} \def\@SS{\mathchar"7019 } - \def\dq{"}} + \def\bbl@ss{\ifbbl@ntoss ss\else\textormath{\ss}{\@SS{}}\fi} + \def\bbl@SS{SS} + \def\bbl@sz{\ifbbl@ntoss sz\else\textormath{\ss}{\@SS{}}\fi} + \def\bbl@SZ{SZ} +} \x % \end{macrocode} % \end{macro} @@ -559,10 +692,10 @@ % \end{macrocode} % German \ss{}, % \begin{macrocode} -\declare@shorthand{ngerman}{"s}{\textormath{\ss}{\@SS{}}} -\declare@shorthand{ngerman}{"S}{\SS} -\declare@shorthand{ngerman}{"z}{\textormath{\ss}{\@SS{}}} -\declare@shorthand{ngerman}{"Z}{SZ} +\declare@shorthand{ngerman}{"s}{\bbl@ss} +\declare@shorthand{ngerman}{"S}{\bbl@SS} +\declare@shorthand{ngerman}{"z}{\bbl@sz} +\declare@shorthand{ngerman}{"Z}{\bbl@SZ} % \end{macrocode} % German and French/Swiss quotation marks, % \begin{macrocode} @@ -573,7 +706,7 @@ % \end{macrocode} % and some additional commands (hyphenation, line breaking and ligature control): % \changes{Version 2.9}{2016/11/02}{Add \texttt{"/} shortcut for breakable slash -% (taken from \texttt{dutch.ldf})} +% (taken from \file{dutch.ldf})} % \begin{macrocode} \declare@shorthand{ngerman}{"-}{\nobreak\-\bbl@allowhyphens} \declare@shorthand{ngerman}{"|}{% @@ -605,7 +738,7 @@ \ldf@finish\CurrentOption % \end{macrocode} % \iffalse -% +% % \fi % % \subsection{\file{naustrian.ldf}, \file{ngerman.ldf} and \file{nswissgerman.ldf}} @@ -614,22 +747,22 @@ % \file{ngerman.ldf} and \file{nswissgerman.ldf}.} % % \Babel\ expects a \file{\langvar{}.ldf} file for each \langvar. So we create portmanteau -% ldf files for \texttt{naustrian}, \texttt{ngerman} and \texttt{nswissgerman}.\footnote{% -% For some \texttt{naustrian} and \texttt{ngerman}, this is not strictly necessary, -% since \babel\ provides aliases for these languages (pointing to \texttt{ngermanb}). +% ldf files for \Lopt{naustrian}, \Lopt{ngerman} and \Lopt{nswissgerman}.\footnote{% +% For \Lopt{naustrian} and \Lopt{ngerman}, this is not strictly necessary, +% since \babel\ provides aliases for these languages (pointing to \Lopt{ngermanb}). % However, since \babel\ does not officially support these aliases anymore after % the language definition files have been separated from the core, we provide % the whole range of ldf files for the sake of completeness.} These files themselves % only load \file{ngermanb.ldf}, which does the real work: % % \iffalse -%<*austrian|german|swiss> +%<*naustrian|ngerman|nswissgerman> % \fi % \begin{macrocode} \input ngermanb.ldf\relax % \end{macrocode} % \iffalse -% +% % \fi % %\PrintChanges @@ -642,8 +775,17 @@ % \bibitem{babel} Braams, Johannes and Bezos, Javier: % \emph{Babel}. % \url{http://www.ctan.org/pkg/babel}. +% \bibitem{exptl} Deutschsprachige Trennmustermannschaft: +% \emph{dehyph-exptl -- Experimental hyphenation patterns for the German language}. +% \url{https://ctan.org/pkg/dehyph-exptl}. +% \bibitem{hyphsubst} Heiko Oberdiek: +% \emph{hyphsubst -- Substitute hyphenation patterns}. +% \url{https://ctan.org/pkg/hyphsubst}. % \bibitem{HP} Partl, Hubert: % \emph{German \TeX}, \emph{TUGboat} 9/1 (1988), p.~70--72. +% \bibitem{hyph-utf8} Manuel P\'egouri\'e-Gonnard et al.: +% \emph{hyph-utf8 -- Hyphenation patterns expressed in UTF-8}. +% \url{https://ctan.org/pkg/hyph-utf8}. % \bibitem{gerdoc} Raichle, Bernd: % \emph{German}. % \url{http://www.ctan.org/pkg/german}. diff --git a/Master/texmf-dist/tex/generic/babel-german/austrian.ldf b/Master/texmf-dist/tex/generic/babel-german/austrian.ldf index 38d2df9ba78..ccaa46f3c0c 100644 --- a/Master/texmf-dist/tex/generic/babel-german/austrian.ldf +++ b/Master/texmf-dist/tex/generic/babel-german/austrian.ldf @@ -7,10 +7,11 @@ %% germanb.dtx (with options: `austrian') %% This is a generated file. %% -%% Copyright 1989--2016 Johannes L. Braams -%% Bernd Raichle -%% Walter Schmidt, -%% Juergen Spitzmueller +%% Copyright 1989--2016 +%% Johannes L. Braams +%% Bernd Raichle +%% Walter Schmidt +%% Juergen Spitzmueller %% All rights reserved. %% %% This file is part of the babel-german bundle, @@ -30,10 +31,10 @@ %% The Current Maintainer of this work is Juergen Spitzmueller. %% %% Please report errors to: Juergen Spitzmueller -%% juergen at spitzmueller dot org +%% via: https://github.com/jspitz/babel-german %% \ProvidesLanguage{austrian} - [2016/11/02 v2.9 German support for babel (traditional orthography)] + [2018/03/29 v2.10 German support for babel (pre-1996 orthography)] \input germanb.ldf\relax %% %% \CharacterTable diff --git a/Master/texmf-dist/tex/generic/babel-german/german.ldf b/Master/texmf-dist/tex/generic/babel-german/german.ldf index 598e0856183..91d7a2b738d 100644 --- a/Master/texmf-dist/tex/generic/babel-german/german.ldf +++ b/Master/texmf-dist/tex/generic/babel-german/german.ldf @@ -7,10 +7,11 @@ %% germanb.dtx (with options: `german') %% This is a generated file. %% -%% Copyright 1989--2016 Johannes L. Braams -%% Bernd Raichle -%% Walter Schmidt, -%% Juergen Spitzmueller +%% Copyright 1989--2016 +%% Johannes L. Braams +%% Bernd Raichle +%% Walter Schmidt +%% Juergen Spitzmueller %% All rights reserved. %% %% This file is part of the babel-german bundle, @@ -30,10 +31,10 @@ %% The Current Maintainer of this work is Juergen Spitzmueller. %% %% Please report errors to: Juergen Spitzmueller -%% juergen at spitzmueller dot org +%% via: https://github.com/jspitz/babel-german %% \ProvidesLanguage{german} - [2016/11/02 v2.9 German support for babel (traditional orthography)] + [2018/03/29 v2.10 German support for babel (pre-1996 orthography)] \input germanb.ldf\relax %% %% \CharacterTable diff --git a/Master/texmf-dist/tex/generic/babel-german/germanb.ldf b/Master/texmf-dist/tex/generic/babel-german/germanb.ldf index 28b992174a1..61f9ec8718a 100644 --- a/Master/texmf-dist/tex/generic/babel-german/germanb.ldf +++ b/Master/texmf-dist/tex/generic/babel-german/germanb.ldf @@ -7,10 +7,11 @@ %% germanb.dtx (with options: `germanb') %% This is a generated file. %% -%% Copyright 1989--2016 Johannes L. Braams -%% Bernd Raichle -%% Walter Schmidt, -%% Juergen Spitzmueller +%% Copyright 1989--2016 +%% Johannes L. Braams +%% Bernd Raichle +%% Walter Schmidt +%% Juergen Spitzmueller %% All rights reserved. %% %% This file is part of the babel-german bundle, @@ -30,15 +31,18 @@ %% The Current Maintainer of this work is Juergen Spitzmueller. %% %% Please report errors to: Juergen Spitzmueller -%% juergen at spitzmueller dot org +%% via: https://github.com/jspitz/babel-german %% \ProvidesLanguage{germanb} - [2016/11/02 v2.9 German support for babel (traditional orthography)] -\def\bbl@tempa{germanb} -\ifx\CurrentOption\bbl@tempa + [2018/03/29 v2.10 German support for babel (pre-1996 orthography)] +\def\bbl@opt@german{german} +\def\bbl@opt@germanb{germanb} +\def\bbl@opt@austrian{austrian} +\def\bbl@opt@swissgerman{swissgerman} +\ifx\CurrentOption\bbl@opt@germanb \def\CurrentOption{german} \ifx\l@german\@undefined - \@nopatterns{German} + \@nopatterns{German (trad. orthography)} \adddialect\l@german0 \fi \let\l@germanb\l@german @@ -54,8 +58,7 @@ \@nopatterns{German (trad. orthography)} \adddialect\l@german0 \fi -\def\bbl@tempa{austrian} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@austrian \ifx\l@german\@undefined \@nopatterns{German (trad. orthography), needed by Austrian (trad. orthography)} \adddialect\l@austrian0 @@ -63,8 +66,7 @@ \adddialect\l@austrian\l@german \fi \fi -\def\bbl@tempa{swissgerman} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@swissgerman \ifx\l@swissgerman\@undefined \ifx\l@german\@undefined \@nopatterns{Swiss German (trad. orthography) and German (trad. orthography)} @@ -82,37 +84,34 @@ \def\bibname{Literaturverzeichnis}% \def\chaptername{Kapitel}% \def\appendixname{Anhang}% - \def\contentsname{Inhaltsverzeichnis}% % oder nur: Inhalt + \def\contentsname{Inhaltsverzeichnis}% \def\listfigurename{Abbildungsverzeichnis}% \def\listtablename{Tabellenverzeichnis}% \def\indexname{Index}% \def\figurename{Abbildung}% - \def\tablename{Tabelle}% % oder: Tafel + \def\tablename{Tabelle}% \def\partname{Teil}% \def\enclname{Anlage(n)}% - \def\ccname{Verteiler}% % oder: Kopien an + \def\ccname{Verteiler}% \def\headtoname{An}% \def\pagename{Seite}% \def\seename{siehe}% \def\alsoname{siehe auch}% \def\proofname{Beweis}% \def\glossaryname{Glossar}% - } -\def\bbl@tempa{german} -\ifx\CurrentOption\bbl@tempa +} +\ifx\CurrentOption\bbl@opt@german \@namedef{captionsgerman}{% \@nameuse{@captionsgerman}% } \fi -\def\bbl@tempa{austrian} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@austrian \@namedef{captionsaustrian}{% \@nameuse{@captionsgerman}% \def\enclname{Beilage(n)}% } \fi -\def\bbl@tempa{swissgerman} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@swissgerman \@namedef{captionsswissgerman}{% \@nameuse{@captionsgerman}% \def\enclname{Beilage(n)}% @@ -121,18 +120,15 @@ \def\month@german{\ifcase\month\or Januar\or Februar\or M\"arz\or April\or Mai\or Juni\or Juli\or August\or September\or Oktober\or November\or Dezember\fi} -\def\bbl@tempa{german} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@german \def\dategerman{\def\today{\number\day.~\month@german \space\number\year}} \fi -\def\bbl@tempa{swissgerman} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@swissgerman \def\dateswissgerman{\def\today{\number\day.~\month@german \space\number\year}} \fi -\def\bbl@tempa{austrian} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@austrian \def\dateaustrian{\def\today{\number\day.~\ifnum1=\month J\"anner\else \month@german\fi \space\number\year}} \fi @@ -141,8 +137,21 @@ \languageshorthands{german}} \expandafter\addto\csname extras\CurrentOption\endcsname{% \bbl@activate{"}} +\newif\iftoss\tossfalse +\newif\ifbbl@toss\bbl@tossfalse +\ifx\bbl@mod@swissgerman\@undefined\else + \@expandtwoargs\in@{,toss,}{,\bbl@mod@swissgerman,} + \ifin@ + \tosstrue + \fi + \addto\extrasswissgerman{% + \iftoss\bbl@tosstrue\else\bbl@tossfalse\fi} +\fi \expandafter\addto\csname noextras\CurrentOption\endcsname{% \bbl@deactivate{"}} +\ifx\CurrentOption\bbl@opt@swissgerman + \addto\noextrasswissgerman{\bbl@tossfalse} +\fi \expandafter\addto\csname extras\CurrentOption\endcsname{% \babel@savevariable{\lccode25}% \lccode25=25} @@ -157,8 +166,13 @@ \bbl@nonfrenchspacing} \begingroup \catcode`\"12 \def\x{\endgroup + \def\dq{"} \def\@SS{\mathchar"7019 } - \def\dq{"}} + \def\bbl@ss{\ifbbl@toss ss\else\textormath{\ss}{\@SS{}}\fi} + \def\bbl@SS{SS} + \def\bbl@sz{\ifbbl@toss sz\else\textormath{\ss}{\@SS{}}\fi} + \def\bbl@SZ{SZ} +} \x \declare@shorthand{german}{"a}{\textormath{\"{a}\allowhyphens}{\ddot a}} \declare@shorthand{german}{"o}{\textormath{\"{o}\allowhyphens}{\ddot o}} @@ -171,10 +185,10 @@ \declare@shorthand{german}{"i}{\textormath{\"{\i}}% {\ddot\imath}} \declare@shorthand{german}{"I}{\textormath{\"{I}}{\ddot I}} -\declare@shorthand{german}{"s}{\textormath{\ss}{\@SS{}}} -\declare@shorthand{german}{"S}{\SS} -\declare@shorthand{german}{"z}{\textormath{\ss}{\@SS{}}} -\declare@shorthand{german}{"Z}{SZ} +\declare@shorthand{german}{"s}{\bbl@ss} +\declare@shorthand{german}{"S}{\bbl@SS} +\declare@shorthand{german}{"z}{\bbl@sz} +\declare@shorthand{german}{"Z}{\bbl@SZ} \declare@shorthand{german}{"`}{\glqq} \declare@shorthand{german}{"'}{\grqq} \declare@shorthand{german}{"<}{\flqq} diff --git a/Master/texmf-dist/tex/generic/babel-german/naustrian.ldf b/Master/texmf-dist/tex/generic/babel-german/naustrian.ldf index a8af6e0e1fd..91fe04d3232 100644 --- a/Master/texmf-dist/tex/generic/babel-german/naustrian.ldf +++ b/Master/texmf-dist/tex/generic/babel-german/naustrian.ldf @@ -4,13 +4,14 @@ %% %% The original source files were: %% -%% ngermanb.dtx (with options: `austrian') +%% ngermanb.dtx (with options: `naustrian') %% This is a generated file. %% -%% Copyright 1989--2016 Johannes L. Braams -%% Bernd Raichle -%% Walter Schmidt, -%% Juergen Spitzmueller +%% Copyright 1989--2016 +%% Johannes L. Braams +%% Bernd Raichle +%% Walter Schmidt +%% Juergen Spitzmueller %% All rights reserved. %% %% This file is part of the babel-german bundle, @@ -30,10 +31,10 @@ %% The Current Maintainer of this work is Juergen Spitzmueller. %% %% Please report errors to: Juergen Spitzmueller -%% juergen at spitzmueller dot org +%% via: https://github.com/jspitz/babel-german %% \ProvidesLanguage{naustrian} - [2016/11/02 v2.9 German support for babel (new orthography)] + [2018/03/29 v2.10 German support for babel (post-1996 orthography)] \input ngermanb.ldf\relax %% %% \CharacterTable diff --git a/Master/texmf-dist/tex/generic/babel-german/ngerman.ldf b/Master/texmf-dist/tex/generic/babel-german/ngerman.ldf index 2cbc65e1e3f..8461369b17d 100644 --- a/Master/texmf-dist/tex/generic/babel-german/ngerman.ldf +++ b/Master/texmf-dist/tex/generic/babel-german/ngerman.ldf @@ -4,13 +4,14 @@ %% %% The original source files were: %% -%% ngermanb.dtx (with options: `german') +%% ngermanb.dtx (with options: `ngerman') %% This is a generated file. %% -%% Copyright 1989--2016 Johannes L. Braams -%% Bernd Raichle -%% Walter Schmidt, -%% Juergen Spitzmueller +%% Copyright 1989--2016 +%% Johannes L. Braams +%% Bernd Raichle +%% Walter Schmidt +%% Juergen Spitzmueller %% All rights reserved. %% %% This file is part of the babel-german bundle, @@ -30,10 +31,10 @@ %% The Current Maintainer of this work is Juergen Spitzmueller. %% %% Please report errors to: Juergen Spitzmueller -%% juergen at spitzmueller dot org +%% via: https://github.com/jspitz/babel-german %% \ProvidesLanguage{ngerman} - [2016/11/02 v2.9 German support for babel (new orthography)] + [2018/03/29 v2.10 German support for babel (post-1996 orthography)] \input ngermanb.ldf\relax %% %% \CharacterTable diff --git a/Master/texmf-dist/tex/generic/babel-german/ngermanb.ldf b/Master/texmf-dist/tex/generic/babel-german/ngermanb.ldf index 72df6ac8578..0dc2d1b1437 100644 --- a/Master/texmf-dist/tex/generic/babel-german/ngermanb.ldf +++ b/Master/texmf-dist/tex/generic/babel-german/ngermanb.ldf @@ -4,13 +4,14 @@ %% %% The original source files were: %% -%% ngermanb.dtx (with options: `germanb') +%% ngermanb.dtx (with options: `ngermanb') %% This is a generated file. %% -%% Copyright 1989--2016 Johannes L. Braams -%% Bernd Raichle -%% Walter Schmidt, -%% Juergen Spitzmueller +%% Copyright 1989--2016 +%% Johannes L. Braams +%% Bernd Raichle +%% Walter Schmidt +%% Juergen Spitzmueller %% All rights reserved. %% %% This file is part of the babel-german bundle, @@ -30,12 +31,15 @@ %% The Current Maintainer of this work is Juergen Spitzmueller. %% %% Please report errors to: Juergen Spitzmueller -%% juergen at spitzmueller dot org +%% via: https://github.com/jspitz/babel-german %% \ProvidesLanguage{ngermanb} - [2016/11/02 v2.9 German support for babel (new orthography)] -\def\bbl@tempa{ngermanb} -\ifx\CurrentOption\bbl@tempa + [2018/03/29 v2.10 German support for babel (post-1996 orthography)] +\def\bbl@opt@ngerman{ngerman} +\def\bbl@opt@ngermanb{ngermanb} +\def\bbl@opt@naustrian{naustrian} +\def\bbl@opt@nswissgerman{nswissgerman} +\ifx\CurrentOption\bbl@opt@ngermanb \def\CurrentOption{ngerman} \fi \LdfInit\CurrentOption{captions\CurrentOption} @@ -43,8 +47,7 @@ \@nopatterns{German (new orthography)} \adddialect\l@ngerman0 \fi -\def\bbl@tempa{naustrian} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@naustrian \ifx\l@ngerman\@undefined \@nopatterns{German (new orthography), needed by Austrian (new orthography)} \adddialect\l@naustrian0 @@ -52,8 +55,7 @@ \adddialect\l@naustrian\l@ngerman \fi \fi -\def\bbl@tempa{nswissgerman} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@nswissgerman \ifx\l@ngerman\@undefined \@nopatterns{German (new orthography), needed by Swiss German (new orthography)} \adddialect\l@nswissgerman0 @@ -68,37 +70,34 @@ \def\bibname{Literaturverzeichnis}% \def\chaptername{Kapitel}% \def\appendixname{Anhang}% - \def\contentsname{Inhaltsverzeichnis}% % oder nur: Inhalt + \def\contentsname{Inhaltsverzeichnis}% \def\listfigurename{Abbildungsverzeichnis}% \def\listtablename{Tabellenverzeichnis}% \def\indexname{Index}% \def\figurename{Abbildung}% - \def\tablename{Tabelle}% % oder: Tafel + \def\tablename{Tabelle}% \def\partname{Teil}% \def\enclname{Anlage(n)}% - \def\ccname{Verteiler}% % oder: Kopien an + \def\ccname{Verteiler}% \def\headtoname{An}% \def\pagename{Seite}% \def\seename{siehe}% \def\alsoname{siehe auch}% \def\proofname{Beweis}% \def\glossaryname{Glossar}% - } -\def\bbl@tempa{ngerman} -\ifx\CurrentOption\bbl@tempa +} +\ifx\CurrentOption\bbl@opt@ngerman \@namedef{captionsngerman}{% \@nameuse{@captionsngerman}% } \fi -\def\bbl@tempa{naustrian} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@naustrian \@namedef{captionsnaustrian}{% \@nameuse{@captionsngerman}% \def\enclname{Beilage(n)}% } \fi -\def\bbl@tempa{nswissgerman} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@nswissgerman \@namedef{captionsnswissgerman}{% \@nameuse{@captionsngerman}% \def\enclname{Beilage(n)}% @@ -107,28 +106,39 @@ \def\month@ngerman{\ifcase\month\or Januar\or Februar\or M\"arz\or April\or Mai\or Juni\or Juli\or August\or September\or Oktober\or November\or Dezember\fi} -\def\bbl@tempa{ngerman} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@ngerman \def\datengerman{\def\today{\number\day.~\month@ngerman \space\number\year}} \fi -\def\bbl@tempa{nswissgerman} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@nswissgerman \def\datenswissgerman{\def\today{\number\day.~\month@ngerman \space\number\year}} \fi -\def\bbl@tempa{naustrian} -\ifx\CurrentOption\bbl@tempa +\ifx\CurrentOption\bbl@opt@naustrian \def\datenaustrian{\def\today{\number\day.~\ifnum1=\month J\"anner\else \month@ngerman\fi \space\number\year}} \fi \initiate@active@char{"} \@namedef{extras\CurrentOption}{% - \languageshorthands{ngerman}} + \languageshorthands{ngerman}% +} \expandafter\addto\csname extras\CurrentOption\endcsname{% \bbl@activate{"}} +\newif\ifntoss\ntossfalse +\newif\ifbbl@ntoss\bbl@ntossfalse +\ifx\bbl@mod@nswissgerman\@undefined\else + \@expandtwoargs\in@{,toss,}{,\bbl@mod@nswissgerman,} + \ifin@ + \ntosstrue + \fi + \addto\extrasnswissgerman{% + \ifntoss\bbl@ntosstrue\else\bbl@ntossfalse\fi} +\fi \expandafter\addto\csname noextras\CurrentOption\endcsname{% \bbl@deactivate{"}} +\ifx\CurrentOption\bbl@opt@nswissgerman + \addto\noextrasnswissgerman{\bbl@ntossfalse} +\fi \expandafter\addto\csname extras\CurrentOption\endcsname{% \babel@savevariable{\lccode25}% \lccode25=25} @@ -143,8 +153,13 @@ \bbl@nonfrenchspacing} \begingroup \catcode`\"12 \def\x{\endgroup + \def\dq{"} \def\@SS{\mathchar"7019 } - \def\dq{"}} + \def\bbl@ss{\ifbbl@ntoss ss\else\textormath{\ss}{\@SS{}}\fi} + \def\bbl@SS{SS} + \def\bbl@sz{\ifbbl@ntoss sz\else\textormath{\ss}{\@SS{}}\fi} + \def\bbl@SZ{SZ} +} \x \declare@shorthand{ngerman}{"a}{\textormath{\"{a}\allowhyphens}{\ddot a}} \declare@shorthand{ngerman}{"o}{\textormath{\"{o}\allowhyphens}{\ddot o}} @@ -157,10 +172,10 @@ \declare@shorthand{ngerman}{"i}{\textormath{\"{\i}}% {\ddot\imath}} \declare@shorthand{ngerman}{"I}{\textormath{\"{I}}{\ddot I}} -\declare@shorthand{ngerman}{"s}{\textormath{\ss}{\@SS{}}} -\declare@shorthand{ngerman}{"S}{\SS} -\declare@shorthand{ngerman}{"z}{\textormath{\ss}{\@SS{}}} -\declare@shorthand{ngerman}{"Z}{SZ} +\declare@shorthand{ngerman}{"s}{\bbl@ss} +\declare@shorthand{ngerman}{"S}{\bbl@SS} +\declare@shorthand{ngerman}{"z}{\bbl@sz} +\declare@shorthand{ngerman}{"Z}{\bbl@SZ} \declare@shorthand{ngerman}{"`}{\glqq} \declare@shorthand{ngerman}{"'}{\grqq} \declare@shorthand{ngerman}{"<}{\flqq} diff --git a/Master/texmf-dist/tex/generic/babel-german/nswissgerman.ldf b/Master/texmf-dist/tex/generic/babel-german/nswissgerman.ldf index 353c0f88427..908ffab3d3f 100644 --- a/Master/texmf-dist/tex/generic/babel-german/nswissgerman.ldf +++ b/Master/texmf-dist/tex/generic/babel-german/nswissgerman.ldf @@ -4,13 +4,14 @@ %% %% The original source files were: %% -%% ngermanb.dtx (with options: `swiss') +%% ngermanb.dtx (with options: `nswissgerman') %% This is a generated file. %% -%% Copyright 1989--2016 Johannes L. Braams -%% Bernd Raichle -%% Walter Schmidt, -%% Juergen Spitzmueller +%% Copyright 1989--2016 +%% Johannes L. Braams +%% Bernd Raichle +%% Walter Schmidt +%% Juergen Spitzmueller %% All rights reserved. %% %% This file is part of the babel-german bundle, @@ -30,10 +31,10 @@ %% The Current Maintainer of this work is Juergen Spitzmueller. %% %% Please report errors to: Juergen Spitzmueller -%% juergen at spitzmueller dot org +%% via: https://github.com/jspitz/babel-german %% \ProvidesLanguage{nswissgerman} - [2016/11/02 v2.9 German support for babel (new orthography)] + [2018/03/29 v2.10 German support for babel (post-1996 orthography)] \input ngermanb.ldf\relax %% %% \CharacterTable diff --git a/Master/texmf-dist/tex/generic/babel-german/swissgerman.ldf b/Master/texmf-dist/tex/generic/babel-german/swissgerman.ldf index 7a61bd46cd6..3bb2d40df9f 100644 --- a/Master/texmf-dist/tex/generic/babel-german/swissgerman.ldf +++ b/Master/texmf-dist/tex/generic/babel-german/swissgerman.ldf @@ -4,13 +4,14 @@ %% %% The original source files were: %% -%% germanb.dtx (with options: `swiss') +%% germanb.dtx (with options: `swissgerman') %% This is a generated file. %% -%% Copyright 1989--2016 Johannes L. Braams -%% Bernd Raichle -%% Walter Schmidt, -%% Juergen Spitzmueller +%% Copyright 1989--2016 +%% Johannes L. Braams +%% Bernd Raichle +%% Walter Schmidt +%% Juergen Spitzmueller %% All rights reserved. %% %% This file is part of the babel-german bundle, @@ -30,10 +31,10 @@ %% The Current Maintainer of this work is Juergen Spitzmueller. %% %% Please report errors to: Juergen Spitzmueller -%% juergen at spitzmueller dot org +%% via: https://github.com/jspitz/babel-german %% \ProvidesLanguage{swissgerman} - [2016/11/02 v2.9 German support for babel (traditional orthography)] + [2018/03/29 v2.10 German support for babel (pre-1996 orthography)] \input germanb.ldf\relax %% %% \CharacterTable -- cgit v1.2.3