summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/projlib/PJLlang.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/projlib/PJLlang.sty')
-rw-r--r--Master/texmf-dist/tex/latex/projlib/PJLlang.sty203
1 files changed, 88 insertions, 115 deletions
diff --git a/Master/texmf-dist/tex/latex/projlib/PJLlang.sty b/Master/texmf-dist/tex/latex/projlib/PJLlang.sty
index 11d6507c454..5e7f5be7f6d 100644
--- a/Master/texmf-dist/tex/latex/projlib/PJLlang.sty
+++ b/Master/texmf-dist/tex/latex/projlib/PJLlang.sty
@@ -17,7 +17,7 @@
%%
\NeedsTeXFormat{LaTeX2e}[2020-10-01]
\ProvidesPackage{PJLlang}
- [2021/08/07a Multi-language configuration]
+ [2021/08/11 Multi-language configuration]
\RequirePackage{kvoptions}
\RequirePackage{etoolbox}
\SetupKeyvalOptions{%
@@ -119,6 +119,74 @@
\newcommand\japaneseABBR{JP}
\newcommand\russianABBR{RU}
+\ExplSyntaxOn
+\NewExpandableDocumentCommand{\StrToABBR}{m}
+ {
+ \str_case_e:nn { \str_foldcase:n { #1 } }
+ {
+ {cn} {CN}
+ {chinese} {CN}
+ {schinese} {CN}
+ {simplifiedchinese} {CN}
+ {tc} {TC}
+ {tchinese} {TC}
+ {traditionalchinese} {TC}
+ {jp} {JP}
+ {japanese} {JP}
+ {en} {EN}
+ {english} {EN}
+ {fr} {FR}
+ {french} {FR}
+ {de} {DE}
+ {ngerman} {DE}
+ {it} {IT}
+ {italian} {IT}
+ {pt} {PT}
+ {portuguese} {PT}
+ {br} {BR}
+ {brazilian} {BR}
+ {es} {ES}
+ {spanish} {ES}
+ {german} {DE}
+ {ru} {RU}
+ {russian} {RU}
+ }
+ }
+
+\NewExpandableDocumentCommand{\StrToTYPE}{m}
+ {
+ \str_case_e:nn { \str_foldcase:n { #1 } }
+ {
+ {cn} {CJK}
+ {chinese} {CJK}
+ {schinese} {CJK}
+ {simplifiedchinese} {CJK}
+ {tc} {CJK}
+ {tchinese} {CJK}
+ {traditionalchinese} {CJK}
+ {jp} {CJK}
+ {japanese} {CJK}
+ {en} {Latin}
+ {english} {Latin}
+ {fr} {Latin}
+ {french} {Latin}
+ {de} {Latin}
+ {ngerman} {Latin}
+ {it} {Latin}
+ {italian} {Latin}
+ {pt} {Latin}
+ {portuguese} {Latin}
+ {br} {Latin}
+ {brazilian} {Latin}
+ {es} {Latin}
+ {spanish} {Latin}
+ {german} {Latin}
+ {ru} {Latin}
+ {russian} {Latin}
+ }
+ }
+\ExplSyntaxOff
+
\RequirePackage{iftex}
\ifPDFTeX
\RequirePackage[T1]{fontenc}
@@ -168,7 +236,7 @@
\fi%
}
-\newcommand{\PJLlang@langconfig@schinese}{%
+\newcommand{\PJLlang@langconfig@CN}{%
\def\abstractname{摘要}%
\def\proofname{证明}%
\def\contentsname{目录}%
@@ -183,7 +251,7 @@
\let\today\zhtoday%
\renewcommand{\languagename}{schinese}%
}
-\newcommand{\PJLlang@langconfig@tchinese}{%
+\newcommand{\PJLlang@langconfig@TC}{%
\def\abstractname{摘要}%
\def\proofname{證明}%
\def\contentsname{目錄}%
@@ -198,69 +266,39 @@
\let\today\zhtoday%
\renewcommand{\languagename}{tchinese}%
}
-\newcommand{\PJLlang@langconfig@japanese}{%
+\newcommand{\PJLlang@langconfig@JP}{%
\selectlanguage{japanese}%
}
-\newcommand{\PJLlang@langconfig@english}{%
+\newcommand{\PJLlang@langconfig@EN}{%
\selectlanguage{english}%
}
-\newcommand{\PJLlang@langconfig@french}{%
+\newcommand{\PJLlang@langconfig@FR}{%
\selectlanguage{french}%
\def\frenchpartname{Partie}%
}
-\newcommand{\PJLlang@langconfig@german}{%
+\newcommand{\PJLlang@langconfig@DE}{%
\selectlanguage{ngerman}%
}
-\newcommand{\PJLlang@langconfig@italian}{%
+\newcommand{\PJLlang@langconfig@IT}{%
\selectlanguage{italian}%
}
-\newcommand{\PJLlang@langconfig@portuguese}{%
+\newcommand{\PJLlang@langconfig@PT}{%
\selectlanguage{portuguese}%
}
-\newcommand{\PJLlang@langconfig@brazilian}{%
+\newcommand{\PJLlang@langconfig@BR}{%
\selectlanguage{brazilian}%
}
-\newcommand{\PJLlang@langconfig@spanish}{%
+\newcommand{\PJLlang@langconfig@ES}{%
\selectlanguage{spanish}%
}
-\newcommand{\PJLlang@langconfig@russian}{%
+\newcommand{\PJLlang@langconfig@RU}{%
\selectlanguage{russian}%
}
-\RequirePackage{xstring}
\NewDocumentCommand\AddLanguageSetting{d()m}{%
\IfNoValueTF{#1}%
{\gappto{\PJLlang@langconfig@common}{#2}}%
- {%
- \lowercase{\IfStrEqCase{#1}}{%
- {cn}{\gappto{\PJLlang@langconfig@schinese}{#2}}%
- {chinese}{\gappto{\PJLlang@langconfig@schinese}{#2}}%
- {schinese}{\gappto{\PJLlang@langconfig@schinese}{#2}}%
- {simplifiedchinese}{\gappto{\PJLlang@langconfig@schinese}{#2}}%
- {tc}{\gappto{\PJLlang@langconfig@tchinese}{#2}}%
- {tchinese}{\gappto{\PJLlang@langconfig@tchinese}{#2}}%
- {traditionalchinese}{\gappto{\PJLlang@langconfig@tchinese}{#2}}%
- {jp}{\gappto{\PJLlang@langconfig@japanese}{#2}}%
- {japanese}{\gappto{\PJLlang@langconfig@japanese}{#2}}%
- {en}{\gappto{\PJLlang@langconfig@english}{#2}}%
- {english}{\gappto{\PJLlang@langconfig@english}{#2}}%
- {fr}{\gappto{\PJLlang@langconfig@french}{#2}}%
- {french}{\gappto{\PJLlang@langconfig@french}{#2}}%
- {de}{\gappto{\PJLlang@langconfig@german}{#2}}%
- {ngerman}{\gappto{\PJLlang@langconfig@german}{#2}}%
- {it}{\gappto{\PJLlang@langconfig@italian}{#2}}%
- {italian}{\gappto{\PJLlang@langconfig@italian}{#2}}%
- {pt}{\gappto{\PJLlang@langconfig@portuguese}{#2}}%
- {portuguese}{\gappto{\PJLlang@langconfig@portuguese}{#2}}%
- {br}{\gappto{\PJLlang@langconfig@brazilian}{#2}}%
- {brazilian}{\gappto{\PJLlang@langconfig@brazilian}{#2}}%
- {es}{\gappto{\PJLlang@langconfig@spanish}{#2}}%
- {spanish}{\gappto{\PJLlang@langconfig@spanish}{#2}}%
- {german}{\gappto{\PJLlang@langconfig@german}{#2}}%
- {ru}{\gappto{\PJLlang@langconfig@russian}{#2}}%
- {russian}{\gappto{\PJLlang@langconfig@russian}{#2}}%
- }%
- }%
+ {\expandafter\gappto\expandafter{\csname PJLlang@langconfig@\StrToABBR{#1}\endcsname}{#2}}%
}
\RequirePackage{setspace}
@@ -274,92 +312,27 @@
\newcommand{\PJLsetCJKparindent}[1]{\renewcommand{\PJL@config@CJKparindent}{\ltx@ifpackageloaded{parskip}{}{\setlength{\parindent}{#1}}}}
\def\PJL@config@CJK{\PJL@config@CJKlinespacing\PJL@config@CJKparindent}
\def\PJL@config@Latin{\PJL@config@linespacing\PJL@config@parindent}
-\newcommand{\UseLanguageCORE}[1]{%
+\NewDocumentCommand{\UseLanguageCORE}{m}{%
\PJLlang@langconfig@common%
- \lowercase{\IfStrEqCase{#1}}{%
- {cn}{\PJL@config@CJK\PJLlang@langconfig@schinese}%
- {chinese}{\PJL@config@CJK\PJLlang@langconfig@schinese}%
- {schinese}{\PJL@config@CJK\PJLlang@langconfig@schinese}%
- {simplifiedchinese}{\PJL@config@CJK\PJLlang@langconfig@schinese}%
- {tc}{\PJL@config@CJK\PJLlang@langconfig@tchinese}%
- {tchinese}{\PJL@config@CJK\PJLlang@langconfig@tchinese}%
- {traditionalchinese}{\PJL@config@CJK\PJLlang@langconfig@tchinese}%
- {jp}{\PJL@config@CJK\PJLlang@langconfig@japanese}%
- {japanese}{\PJL@config@CJK\PJLlang@langconfig@japanese}%
- {en}{\PJL@config@Latin\PJLlang@langconfig@english}%
- {english}{\PJL@config@Latin\PJLlang@langconfig@english}%
- {fr}{\PJL@config@Latin\PJLlang@langconfig@french}%
- {french}{\PJL@config@Latin\PJLlang@langconfig@french}%
- {de}{\PJL@config@Latin\PJLlang@langconfig@german}%
- {ngerman}{\PJL@config@Latin\PJLlang@langconfig@german}%
- {german}{\PJL@config@Latin\PJLlang@langconfig@german}%
- {it}{\PJL@config@Latin\PJLlang@langconfig@italian}%
- {italian}{\PJL@config@Latin\PJLlang@langconfig@italian}%
- {pt}{\PJL@config@Latin\PJLlang@langconfig@portuguese}%
- {portuguese}{\PJL@config@Latin\PJLlang@langconfig@portuguese}%
- {br}{\PJL@config@Latin\PJLlang@langconfig@brazilian}%
- {brazilian}{\PJL@config@Latin\PJLlang@langconfig@brazilian}%
- {es}{\PJL@config@Latin\PJLlang@langconfig@spanish}%
- {spanish}{\PJL@config@Latin\PJLlang@langconfig@spanish}%
- {ru}{\PJL@config@Latin\PJLlang@langconfig@russian}%
- {russian}{\PJL@config@Latin\PJLlang@langconfig@russian}%
- }%
+ \csname PJL@config@\StrToTYPE{#1}\endcsname%
+ \csname PJLlang@langconfig@\StrToABBR{#1}\endcsname%
}
-\newcommand{\UseLanguage}[1]{%
+\NewDocumentCommand{\UseLanguage}{m}{%
\ifx\@onlypreamble\@notprerr%
\UseLanguageCORE{#1}%
\else%
\AfterEndPreamble{\UseLanguageCORE{#1}}%
\fi%
}
-\newcommand{\UseOtherLanguage}[2]{%
+\NewDocumentCommand{\UseOtherLanguage}{mm}{%
\begingroup\begingroup%
\PJLlang@langconfig@common%
- \lowercase{\IfStrEqCase{#1}}{%
- {cn}{\PJLlang@langconfig@schinese}%
- {chinese}{\PJLlang@langconfig@schinese}%
- {schinese}{\PJLlang@langconfig@schinese}%
- {simplifiedchinese}{\PJLlang@langconfig@schinese}%
- {tc}{\PJLlang@langconfig@tchinese}%
- {tchinese}{\PJLlang@langconfig@tchinese}%
- {traditionalchinese}{\PJLlang@langconfig@tchinese}%
- {jp}{\PJLlang@langconfig@japanese}%
- {japanese}{\PJLlang@langconfig@japanese}%
- {en}{\PJLlang@langconfig@english}%
- {english}{\PJLlang@langconfig@english}%
- {fr}{\PJLlang@langconfig@french}%
- {french}{\PJLlang@langconfig@french}%
- {de}{\PJLlang@langconfig@german}%
- {ngerman}{\PJLlang@langconfig@german}%
- {german}{\PJLlang@langconfig@german}%
- {it}{\PJLlang@langconfig@italian}%
- {italian}{\PJLlang@langconfig@italian}%
- {pt}{\PJLlang@langconfig@portuguese}%
- {portuguese}{\PJLlang@langconfig@portuguese}%
- {br}{\PJLlang@langconfig@brazilian}%
- {brazilian}{\PJLlang@langconfig@brazilian}%
- {es}{\PJLlang@langconfig@spanish}%
- {spanish}{\PJLlang@langconfig@spanish}%
- {ru}{\PJLlang@langconfig@russian}%
- {russian}{\PJLlang@langconfig@russian}%
- }%
+ \csname PJLlang@langconfig@\StrToABBR{#1}\endcsname%
#2%
\endgroup\endgroup%
}
-\IfStrEqCase{\PJLlang@mainlang}{%
- {EN}{\UseLanguage{EN}}%
- {FR}{\UseLanguage{FR}}%
- {DE}{\UseLanguage{DE}}%
- {IT}{\UseLanguage{IT}}%
- {PT}{\UseLanguage{PT}}%
- {BR}{\UseLanguage{BR}}%
- {ES}{\UseLanguage{ES}}%
- {CN}{\UseLanguage{CN}}%
- {TC}{\UseLanguage{TC}}%
- {JP}{\UseLanguage{JP}}%
- {RU}{\UseLanguage{RU}}%
-}
+\expandafter\UseLanguage\expandafter{\PJLlang@mainlang}
\endinput
%%