diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/projlib/PJLlang.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/projlib/PJLlang.sty | 203 |
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 %% |