summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/langnames/langnames.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/langnames/langnames.sty')
-rw-r--r--Master/texmf-dist/tex/latex/langnames/langnames.sty106
1 files changed, 81 insertions, 25 deletions
diff --git a/Master/texmf-dist/tex/latex/langnames/langnames.sty b/Master/texmf-dist/tex/latex/langnames/langnames.sty
index e679d89a2b8..d3027ffe262 100644
--- a/Master/texmf-dist/tex/latex/langnames/langnames.sty
+++ b/Master/texmf-dist/tex/latex/langnames/langnames.sty
@@ -14,32 +14,88 @@
%% http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of
%% LaTeX version 2005/12/01 or later.
-\NeedsTeXFormat{LaTeX2e}[2005/12/01]
\ProvidesPackage{langnames}
- [2022/08/25 v1.0 langnames package for naming and classification of languages]
- \csname
- \endcsname}
-\usepackage{xkeyval}
-
-\DeclareOption{glottolog}{\input{ln_langs_glot.tex}
- \input{ln_fams_glot.tex}}
-\DeclareOption{wals}{\input{ln_langs_wals.tex}
- \input{ln_fams_wals.tex}}
-\DeclareOption{none}{}
-\newcommand{\lname}[1]{%
- \csname KV@names@#1\endcsname\unskip
-}
-\newcommand{\liso}[1]{%
- \csname KV@names@#1\endcsname{} (ISO 639-3: #1)\unskip
-}
-\newcommand{\lfam}[1]{%
- \csname KV@names@#1\endcsname{} (\csname KV@fams@#1\endcsname{})\unskip
-}
-\newcommand{\newlang}[3]{%
- \define@key{names}{#1}{#2}
- \define@key{fams}{#1}{#3}
-}
-\ProcessOptions \relax
+ [2022/09/05 v2.0 langnames package for naming and classification of languages]
+\usepackage{expkv-opt,expkv-def}
+\ekvdefinekeys{langnames}{%
+ noval glottolog = {%
+ \def\langnames@cs@prefix{glottolog}%
+ \input{ln_langs_glot.tex}%
+ \input{ln_fams_glot.tex}%
+ },%
+ noval wals = {%
+ \def\langnames@cs@prefix{wals}%
+ \input{ln_langs_wals.tex}%
+ \input{ln_fams_wals.tex}%
+ },%
+ noval none = {%
+ \def\langnames@cs@prefix{none}%
+ },%
+ noval native = {%
+ \input{ln_langs_wals_native.tex}%
+ \input{ln_langs_glot_native.tex}%
+ }%
+}
+\ekvoProcessLocalOptions{langnames}
+\newcommand*{\lname}[1]{%
+ {%
+ \csname langnames@langs@\langnames@cs@prefix @#1\endcsname
+ }%
+}
+\newcommand*{\liso}[1]{%
+ {%
+ {\csname langnames@langs@\langnames@cs@prefix @#1\endcsname}
+ (ISO 639-3: #1)%
+ }%
+}
+\newcommand*{\lfam}[1]{%
+ {%
+ {\csname langnames@langs@\langnames@cs@prefix @#1\endcsname}
+ (\csname langnames@fams@\langnames@cs@prefix @#1\endcsname)%
+ }%
+}
+\newcommand*{\newlang}[3]{%
+ \expandafter\def\csname langnames@langs@none@#1\endcsname{#2}%
+ \expandafter\def\csname langnames@fams@none@#1\endcsname{#3}%
+}
+\newcommand*{\renewlang}[4]{%
+ \expandafter\def\csname langnames@langs@#1@#2\endcsname{#3}%
+ \expandafter\def\csname langnames@fams@#1@#2\endcsname{#4}%
+}
+\newcommand*{\newlangnative}[4]{%
+ \expandafter\def\csname langnames@langs@native@#1@#2\endcsname{#3}%
+}
+\newcommand*{\langnative}[1]{%
+ {%
+ \csname langnames@langs@native@\langnames@cs@prefix @#1\endcsname
+ }%
+}
+\newcommand*{\changetonone}{%
+ \def\langnames@cs@prefix{none}%
+}
+\newcommand*{\changetowals}{%
+ \def\langnames@cs@prefix{wals}%
+}
+\newcommand*{\changetoglottolog}{%
+ \def\langnames@cs@prefix{glottolog}%
+}
+\def\ssp{\space\space\space\space\space\space}
+\AddToHook{begindocument/before}{%
+ \ifdefined\langnames@cs@prefix
+ \else
+ \PackageError{langnames}{%
+ You haven't passed any option to `langnames'. Can't\MessageBreak
+ proceed. Please pass one from the list given below.\MessageBreak
+ ---------------------------------------------------\MessageBreak
+ 1. glottolog: Glottolog\MessageBreak
+ 2. wals:\ssp World Atlas of Languages\MessageBreak
+ 3. none:\ssp Your own list.\MessageBreak
+ ---------------------------------------------------\MessageBreak
+ Refer to the documentation for more details.\MessageBreak
+ At the moment I will default to option `none'%
+ }%
+ \fi
+}
\endinput
%%
%% End of file `langnames.sty'.