summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/projlib/PJLlang.sty
blob: 4b1b86b7ade41224a44e2ff42d895d625e43705c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
%%
%% This is file `PJLlang.sty',
%% generated with the docstrip utility.

%% Copyright (C) 2021 by Jinwen XU
%% 
%% This is part of the ProjLib Toolkit.
%% 
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License, either version 1.3c of this license or (at
%% your option) any later version. The latest version of this license is in
%% 
%%     http://www.latex-project.org/lppl.txt
%% 
%% and version 1.3c or later is part of all distributions of LaTeX version
%% 2005/12/01 or later.
%% 
\NeedsTeXFormat{LaTeX2e}[2020-10-01]
\ProvidesPackage{PJLlang}
    [2021/05/20 Multi-language configuration]
\RequirePackage{kvoptions}
\RequirePackage{etoolbox}
\SetupKeyvalOptions{%
    family = @PJLlang,
    prefix = @PJLlang@
}
\DeclareBoolOption[false]{polyglossia}
\ProcessKeyvalOptions*\relax

\newcommand\englishABBR{EN}
\newcommand\frenchABBR{FR}
\newcommand\ngermanABBR{DE}
\newcommand\chineseABBR{CN}
\newcommand\tchineseABBR{TC}
\newcommand\japaneseABBR{JP}
\newcommand\russianABBR{RU}

\RequirePackage{iftex}
\ifPDFTeX
\RequirePackage[T1]{fontenc}
\RequirePackage{inputenc}
\fi

\if@PJLlang@polyglossia
    \RequirePackage{polyglossia}
    \setdefaultlanguage{english}
    \setotherlanguage[frenchpart=false]{french}
    \setotherlanguage{ngerman}
    \setotherlanguage{spanish}
    \setotherlanguage{portuguese}
    \setotherlanguage{italian}
    \ifPDFTeX\else
        \setotherlanguage{russian}
        \setotherlanguage{japanese}
        \RequirePackage{silence}
        \WarningFilter{polyglossia}{Asking to add empty feature to latin font(Script="CJK" to scripttag "")}
    \fi
\else
    \ifPDFTeX\else
        \PassOptionsToPackage{japanese,russian}{babel}
    \fi
    \PassOptionsToPackage{italian,portuguese,brazilian,spanish.noquoting,ngerman,french,english,shorthands=off}{babel}
    \PassOptionsToPackage{italian,brazilian,spanish,ngerman,french,english}{cleveref}
    \RequirePackage{babel}
    \frenchsetup{PartNameFull=false}
\fi
\let\today@PJLoriginal\today
\newcommand{\PJLlang@langconfig@common}{%
    \ifdefined\DTMtoday%
        \let\today\DTMtoday%
    \else%
        \let\today\today@PJLoriginal%
    \fi%
}
\newcommand{\PJLlang@langconfig@chinese}{%
    \def\abstractname{摘要}%
    \def\proofname{证明}%
    \def\contentsname{目录}%
    \def\listfigurename{插图}%
    \def\listtablename{表格}%
    \def\figurename{图}%
    \def\tablename{表}%
    \def\indexname{索引}%
    \def\appendixname{附录}%
    \def\refname{参考文献}%
    \def\bibname{参考文献}%
    \let\today\zhtoday%
    \renewcommand{\languagename}{chinese}%
}
\newcommand{\PJLlang@langconfig@tchinese}{%
    \def\abstractname{摘要}%
    \def\proofname{證明}%
    \def\contentsname{目錄}%
    \def\listfigurename{插圖}%
    \def\listtablename{表格}%
    \def\figurename{圖}%
    \def\tablename{表}%
    \def\indexname{索引}%
    \def\appendixname{附錄}%
    \def\refname{參考文獻}%
    \def\bibname{參考文獻}%
    \let\today\zhtoday%
    \renewcommand{\languagename}{tchinese}%
}
\newcommand{\PJLlang@langconfig@japanese}{%
    \selectlanguage{japanese}%
}
\newcommand{\PJLlang@langconfig@english}{%
    \selectlanguage{english}%
}
\newcommand{\PJLlang@langconfig@french}{%
    \selectlanguage{french}%
    \def\frenchpartname{Partie}%
}
\newcommand{\PJLlang@langconfig@german}{%
    \selectlanguage{ngerman}%
}
\newcommand{\PJLlang@langconfig@russian}{%
    \selectlanguage{russian}%
}
\NewDocumentCommand\AddLanguageSetting{d()m}{%
\IfNoValueTF{#1}%
    {\gappto{\PJLlang@langconfig@common}{#2}}%
    {%
        \ifstrequal{#1}{chinese}{\gappto{\PJLlang@langconfig@chinese}{#2}}{}%
        \ifstrequal{#1}{Chinese}{\gappto{\PJLlang@langconfig@chinese}{#2}}{}%
        \ifstrequal{#1}{schinese}{\gappto{\PJLlang@langconfig@chinese}{#2}}{}%
        \ifstrequal{#1}{SChinese}{\gappto{\PJLlang@langconfig@chinese}{#2}}{}%
        \ifstrequal{#1}{simplifiedchinese}{\gappto{\PJLlang@langconfig@chinese}{#2}}{}%
        \ifstrequal{#1}{SimplifiedChinese}{\gappto{\PJLlang@langconfig@chinese}{#2}}{}%
        \ifstrequal{#1}{tchinese}{\gappto{\PJLlang@langconfig@tchinese}{#2}}{}%
        \ifstrequal{#1}{TChinese}{\gappto{\PJLlang@langconfig@tchinese}{#2}}{}%
        \ifstrequal{#1}{traditionalchinese}{\gappto{\PJLlang@langconfig@tchinese}{#2}}{}%
        \ifstrequal{#1}{TraditionalChinese}{\gappto{\PJLlang@langconfig@tchinese}{#2}}{}%
        \ifstrequal{#1}{japanese}{\gappto{\PJLlang@langconfig@japanese}{#2}}{}%
        \ifstrequal{#1}{Japanese}{\gappto{\PJLlang@langconfig@japanese}{#2}}{}%
        \ifstrequal{#1}{english}{\gappto{\PJLlang@langconfig@english}{#2}}{}%
        \ifstrequal{#1}{English}{\gappto{\PJLlang@langconfig@english}{#2}}{}%
        \ifstrequal{#1}{french}{\gappto{\PJLlang@langconfig@french}{#2}}{}%
        \ifstrequal{#1}{French}{\gappto{\PJLlang@langconfig@french}{#2}}{}%
        \ifstrequal{#1}{ngerman}{\gappto{\PJLlang@langconfig@german}{#2}}{}%
        \ifstrequal{#1}{german}{\gappto{\PJLlang@langconfig@german}{#2}}{}%
        \ifstrequal{#1}{German}{\gappto{\PJLlang@langconfig@german}{#2}}{}%
        \ifstrequal{#1}{russian}{\gappto{\PJLlang@langconfig@russian}{#2}}{}%
        \ifstrequal{#1}{Russian}{\gappto{\PJLlang@langconfig@russian}{#2}}{}%
    }%
}

\RequirePackage{setspace}
\def\PJL@config@linespacing{\setstretch{1.00}}
\def\PJL@config@CJKlinespacing{\onehalfspacing}
\newcommand{\PJLsetlinespacing}[1]{\renewcommand{\PJL@config@linespacing}{#1}}
\newcommand{\PJLsetCJKlinespacing}[1]{\renewcommand{\PJL@config@CJKlinespacing}{#1}}
\newcommand{\UseLanguageCORE}[1]{%
    \PJLlang@langconfig@common%
    \ifstrequal{#1}{chinese}{\PJL@config@CJKlinespacing\PJLlang@langconfig@chinese}{}%
    \ifstrequal{#1}{Chinese}{\PJL@config@CJKlinespacing\PJLlang@langconfig@chinese}{}%
    \ifstrequal{#1}{schinese}{\PJL@config@CJKlinespacing\PJLlang@langconfig@chinese}{}%
    \ifstrequal{#1}{SChinese}{\PJL@config@CJKlinespacing\PJLlang@langconfig@chinese}{}%
    \ifstrequal{#1}{simplifiedchinese}{\PJL@config@CJKlinespacing\PJLlang@langconfig@chinese}{}%
    \ifstrequal{#1}{SimplifiedChinese}{\PJL@config@CJKlinespacing\PJLlang@langconfig@chinese}{}%
    \ifstrequal{#1}{tchinese}{\PJL@config@CJKlinespacing\PJLlang@langconfig@tchinese}{}%
    \ifstrequal{#1}{TChinese}{\PJL@config@CJKlinespacing\PJLlang@langconfig@tchinese}{}%
    \ifstrequal{#1}{traditionalchinese}{\PJL@config@CJKlinespacing\PJLlang@langconfig@tchinese}{}%
    \ifstrequal{#1}{TraditionalChinese}{\PJL@config@CJKlinespacing\PJLlang@langconfig@tchinese}{}%
    \ifstrequal{#1}{japanese}{\PJL@config@CJKlinespacing\PJLlang@langconfig@japanese}{}%
    \ifstrequal{#1}{Japanese}{\PJL@config@CJKlinespacing\PJLlang@langconfig@japanese}{}%
    \ifstrequal{#1}{english}{\PJL@config@linespacing\PJLlang@langconfig@english}{}%
    \ifstrequal{#1}{English}{\PJL@config@linespacing\PJLlang@langconfig@english}{}%
    \ifstrequal{#1}{french}{\PJL@config@linespacing\PJLlang@langconfig@french}{}%
    \ifstrequal{#1}{French}{\PJL@config@linespacing\PJLlang@langconfig@french}{}%
    \ifstrequal{#1}{ngerman}{\PJL@config@linespacing\PJLlang@langconfig@german}{}%
    \ifstrequal{#1}{german}{\PJL@config@linespacing\PJLlang@langconfig@german}{}%
    \ifstrequal{#1}{German}{\PJL@config@linespacing\PJLlang@langconfig@german}{}%
    \ifstrequal{#1}{russian}{\PJL@config@linespacing\PJLlang@langconfig@russian}{}%
    \ifstrequal{#1}{Russian}{\PJL@config@linespacing\PJLlang@langconfig@russian}{}%
}
\newcommand{\UseLanguage}[1]{%
    \ifx\@onlypreamble\@notprerr%
        \UseLanguageCORE{#1}%
    \else%
        \AfterEndPreamble{\UseLanguageCORE{#1}}%
    \fi%
}
\newcommand{\UseOtherLanguage}[2]{%
\begingroup%
    \PJLlang@langconfig@common%
    \ifstrequal{#1}{chinese}{\PJLlang@langconfig@chinese}{}%
    \ifstrequal{#1}{Chinese}{\PJLlang@langconfig@chinese}{}%
    \ifstrequal{#1}{schinese}{\PJLlang@langconfig@chinese}{}%
    \ifstrequal{#1}{SChinese}{\PJLlang@langconfig@chinese}{}%
    \ifstrequal{#1}{simplifiedchinese}{\PJLlang@langconfig@chinese}{}%
    \ifstrequal{#1}{SimplifiedChinese}{\PJLlang@langconfig@chinese}{}%
    \ifstrequal{#1}{tchinese}{\PJLlang@langconfig@tchinese}{}%
    \ifstrequal{#1}{TChinese}{\PJLlang@langconfig@tchinese}{}%
    \ifstrequal{#1}{traditionalchinese}{\PJLlang@langconfig@tchinese}{}%
    \ifstrequal{#1}{TraditionalChinese}{\PJLlang@langconfig@tchinese}{}%
    \ifstrequal{#1}{japanese}{\PJLlang@langconfig@japanese}{}%
    \ifstrequal{#1}{Japanese}{\PJLlang@langconfig@japanese}{}%
    \ifstrequal{#1}{english}{\PJLlang@langconfig@english}{}%
    \ifstrequal{#1}{English}{\PJLlang@langconfig@english}{}%
    \ifstrequal{#1}{french}{\PJLlang@langconfig@french}{}%
    \ifstrequal{#1}{French}{\PJLlang@langconfig@french}{}%
    \ifstrequal{#1}{ngerman}{\PJLlang@langconfig@german}{}%
    \ifstrequal{#1}{german}{\PJLlang@langconfig@german}{}%
    \ifstrequal{#1}{German}{\PJLlang@langconfig@german}{}%
    \ifstrequal{#1}{russian}{\PJLlang@langconfig@russian}{}%
    \ifstrequal{#1}{Russian}{\PJLlang@langconfig@russian}{}%
    #2%
\endgroup%
}

\UseLanguage{English}

\endinput
%%
%% End of file `PJLlang.sty'.