summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/projlib/projlib-language.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/projlib/projlib-language.sty')
-rw-r--r--macros/latex/contrib/projlib/projlib-language.sty512
1 files changed, 0 insertions, 512 deletions
diff --git a/macros/latex/contrib/projlib/projlib-language.sty b/macros/latex/contrib/projlib/projlib-language.sty
deleted file mode 100644
index 4a67c6a018..0000000000
--- a/macros/latex/contrib/projlib/projlib-language.sty
+++ /dev/null
@@ -1,512 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}[2020-10-01]
-\RequirePackage{l3keys2e}
-\ProvidesExplPackage
- {projlib-language}
- {2022/03/09} {}
- {Multi-language configuration}
-
-\clist_const:Nn \c__projlib_language_supported_clist
- {
- english ,
- french ,
- ngerman ,
- italian ,
- portuguese ,
- brazilian ,
- spanish ,
- schinese ,
- tchinese ,
- japanese ,
- russian ,
- }
-
-\clist_new:N \g__projlib_language_babel_option_clist
-
-\str_new:N \g__projlib_language_main_str
-
-\bool_new:N \g__projlib_language_enabled_all_bool
-\bool_gset_true:N \g__projlib_language_enabled_all_bool
-
-\clist_map_inline:Nn \c__projlib_language_supported_clist
- {
- \bool_new:c { g__projlib_language_enabled_ #1 _bool }
- \bool_gset_false:c { g__projlib_language_enabled_ #1 _bool }
- }
-
-\cs_new:Nn \projlib_language_set_option_no_babel:n
- {
- \bool_gset_false:N \g__projlib_language_enabled_all_bool
- \bool_gset_true:c { g__projlib_language_enabled_ #1 _bool }
- \str_if_empty:NT \g__projlib_language_main_str
- {
- \str_gset:Nn \g__projlib_language_main_str { #1 }
- }
- }
-\cs_new:Nn \projlib_language_set_option:n
- {
- \projlib_language_set_option_no_babel:n { #1 }
- \clist_gput_left:Nn \g__projlib_language_babel_option_clist { #1 }
- }
-
-\keys_define:nn { projlib-language }
- {
- , EN .meta:n = { english }
- , english .code:n = { \projlib_language_set_option:n { english } }
- , English .meta:n = { english }
- , FR .meta:n = { french }
- , french .code:n = { \projlib_language_set_option:n { french } }
- , French .meta:n = { french }
- , DE .meta:n = { ngerman }
- , german .meta:n = { ngerman }
- , ngerman .code:n = { \projlib_language_set_option:n { ngerman } }
- , German .meta:n = { ngerman }
- , IT .meta:n = { italian }
- , italian .code:n = { \projlib_language_set_option:n { italian } }
- , Italian .meta:n = { italian }
- , PT .meta:n = { portuguese }
- , portuguese .code:n = { \projlib_language_set_option:n { portuguese } }
- , Portuguese .meta:n = { portuguese }
- , BR .meta:n = { brazilian }
- , brazilian .code:n = { \projlib_language_set_option:n { brazilian } }
- , Brazilian .meta:n = { brazilian }
- , ES .meta:n = { spanish }
- , spanish .code:n = { \clist_gput_left:Nn \g__projlib_language_babel_option_clist { es-notilde, es-noquoting }
- \projlib_language_set_option:n { spanish } }
- , Spanish .meta:n = { spanish }
- , CN .meta:n = { schinese }
- , chinese .meta:n = { schinese }
- , schinese .code:n = { \projlib_language_set_option_no_babel:n { schinese } }
- , simplified-chinese .meta:n = { schinese }
- , simplified~chinese .meta:n = { schinese }
- , simplified chinese .meta:n = { schinese }
- , Chinese .meta:n = { schinese }
- , SChinese .meta:n = { schinese }
- , Simplified-Chinese .meta:n = { schinese }
- , Simplified~Chinese .meta:n = { schinese }
- , Simplified Chinese .meta:n = { schinese }
- , TC .meta:n = { tchinese }
- , tchinese .code:n = { \projlib_language_set_option_no_babel:n { tchinese } }
- , traditional-chinese .meta:n = { tchinese }
- , traditional~chinese .meta:n = { tchinese }
- , traditional chinese .meta:n = { tchinese }
- , TChinese .meta:n = { tchinese }
- , Traditional-Chinese .meta:n = { tchinese }
- , Traditional~Chinese .meta:n = { tchinese }
- , Traditional Chinese .meta:n = { tchinese }
- , JP .meta:n = { japanese }
- , japanese .code:n = { \projlib_language_set_option:n { japanese } }
- , Japanese .meta:n = { japanese }
- , RU .meta:n = { russian }
- , russian .code:n = { \projlib_language_set_option:n { russian } }
- , Russian .meta:n = { russian }
- , unknown .code:n = {}
- }
-\ProcessKeysOptions { projlib-language }
-
-\cs_new_protected:Nn \projlib_language_clear_global_option:n
- {
- \clist_remove_all:cn { @classoptionslist } { #1 }
- }
-
-\projlib_language_clear_global_option:n { chinese }
-\projlib_language_clear_global_option:n { Chinese }
-
-\clist_gput_right:Nn \g__projlib_language_babel_option_clist { shorthands = off }
-
-\str_if_empty:NT \g__projlib_language_main_str
- {
- \str_gset:Nn \g__projlib_language_main_str { english }
- }
-
-\bool_if:NT \g__projlib_language_enabled_all_bool
- {
- \clist_map_inline:Nn \c__projlib_language_supported_clist
- {
- \bool_gset_true:c { g__projlib_language_enabled_ #1 _bool }
- }
- }
-
-
-\cs_new:Nn \projlib_language_str_to_languagename:n
- {
- \str_case_e:nnF { \str_foldcase:n { #1 } }
- {
- { all } { common }
- { common } { common }
- { cn } { schinese }
- { chinese } { schinese }
- { schinese } { schinese }
- { simplifiedchinese } { schinese }
- { simplified-chinese } { schinese }
- { tc } { tchinese }
- { tchinese } { tchinese }
- { traditionalchinese } { tchinese }
- { traditional-chinese} { tchinese }
- { jp } { japanese }
- { japanese } { japanese }
- { en } { english }
- { english } { english }
- { fr } { french }
- { french } { french }
- { de } { ngerman }
- { german } { ngerman }
- { ngerman } { ngerman }
- { it } { italian }
- { italian } { italian }
- { pt } { portuguese }
- { portuguese } { portuguese }
- { br } { brazilian }
- { brazilian } { brazilian }
- { es } { spanish }
- { spanish } { spanish }
- { ru } { russian }
- { russian } { russian }
- }
- { #1 }
- }
-
-\cs_new:Nn \projlib_language_str_to_languagetype:n
- {
- \str_case_e:nn { \str_foldcase:n { #1 } }
- {
- { cn } { cjk }
- { chinese } { cjk }
- { schinese } { cjk }
- { simplifiedchinese } { cjk }
- { simplified-chinese } { cjk }
- { tc } { cjk }
- { tchinese } { cjk }
- { traditionalchinese } { cjk }
- { traditional-chinese} { cjk }
- { jp } { cjk }
- { japanese } { cjk }
- { en } { latin }
- { english } { latin }
- { fr } { latin }
- { french } { latin }
- { de } { latin }
- { german } { latin }
- { ngerman } { latin }
- { it } { latin }
- { italian } { latin }
- { pt } { latin }
- { portuguese } { latin }
- { br } { latin }
- { brazilian } { latin }
- { es } { latin }
- { spanish } { latin }
- { ru } { latin }
- { russian } { latin }
- }
- }
-
-\sys_if_engine_pdftex:T
- {
- \RequirePackage [T1] { fontenc }
- }
-
-\bool_if:NTF \g__projlib_language_enabled_all_bool
- {
- \sys_if_engine_pdftex:F
- {
- \PassOptionsToPackage { japanese, russian } { babel }
- }
- \PassOptionsToPackage { italian, portuguese, brazilian, spanish, es-notilde, es-noquoting, ngerman, french, english, shorthands = off } { babel }
- }
- {
- \PassOptionsToPackage { \g__projlib_language_babel_option_clist } { babel }
- }
-
-\PassOptionsToPackage { italian, brazilian, spanish, ngerman, french, english } { cleveref }
-\RequirePackage { babel }
-
-
-\bool_if:NT \g__projlib_language_enabled_french_bool
- {
- \frenchsetup { PartNameFull = false }
- }
-
-\bool_if:NT \g__projlib_language_enabled_portuguese_bool
- {
- \NewCommandCopy \__projlib_language_babel_ord: \ord
- \cs_undefine:N \ord
- \hook_gput_code:nnn { begindocument } { projlib-language }
- {
- \cs_if_exist:NT \ord
- {
- \NewCommandCopy \__projlib_language_user_ord: \ord
- \cs_set_protected:Npn \ord
- {
- \mode_if_math:TF
- { \__projlib_language_user_ord: }
- { \__projlib_language_babel_ord: }
- }
- }
- }
- }
-
-\babelprovide { schinese }
-\babelprovide { tchinese }
-
-
-\NewCommandCopy \projlib_language_backup_today:n \today
-
-\tl_new:N \g_projlib_language_settings_common_tl
-\clist_map_inline:Nn \c__projlib_language_supported_clist
- {
- \tl_new:c { g_projlib_language_settings_ #1 _tl }
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_common_tl
- {
- \cs_if_exist:NT \ProjLibToday
- {
- \RenewCommandCopy \today \ProjLibToday
- }
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_schinese_tl
- {
- \g_projlib_language_settings_common_tl
- \tl_gset:Nn \languagename { schinese }
- \tl_gset:cn { abstractname } { 摘要 }
- \tl_gset:cn { proofname } { 证明 }
- \tl_gset:cn { contentsname } { 目录 }
- \tl_gset:cn { listfigurename } { 插图 }
- \tl_gset:cn { listtablename } { 表格 }
- \tl_gset:cn { figurename } { 图 }
- \tl_gset:cn { tablename } { 表 }
- \tl_gset:cn { indexname } { 索引 }
- \tl_gset:cn { appendixname } { 附录 }
- \tl_gset:cn { refname } { 参考文献 }
- \tl_gset:cn { bibname } { 参考文献 }
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_tchinese_tl
- {
- \g_projlib_language_settings_common_tl
- \tl_gset:Nn \languagename { tchinese }
- \tl_gset:cn { abstractname } { 摘要 }
- \tl_gset:cn { proofname } { 證明 }
- \tl_gset:cn { contentsname } { 目錄 }
- \tl_gset:cn { listfigurename } { 插圖 }
- \tl_gset:cn { listtablename } { 表格 }
- \tl_gset:cn { figurename } { 圖 }
- \tl_gset:cn { tablename } { 表 }
- \tl_gset:cn { indexname } { 索引 }
- \tl_gset:cn { appendixname } { 附錄 }
- \tl_gset:cn { refname } { 參考文獻 }
- \tl_gset:cn { bibname } { 參考文獻 }
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_japanese_tl
- {
- \selectlanguage { japanese }
- \g_projlib_language_settings_common_tl
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_english_tl
- {
- \selectlanguage { english }
- \g_projlib_language_settings_common_tl
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_french_tl
- {
- \selectlanguage { french }
- \g_projlib_language_settings_common_tl
- \tl_gset:cn { frenchpartname } { Partie }
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_ngerman_tl
- {
- \selectlanguage { ngerman }
- \g_projlib_language_settings_common_tl
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_italian_tl
- {
- \selectlanguage { italian }
- \g_projlib_language_settings_common_tl
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_portuguese_tl
- {
- \selectlanguage { portuguese }
- \g_projlib_language_settings_common_tl
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_brazilian_tl
- {
- \selectlanguage { brazilian }
- \g_projlib_language_settings_common_tl
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_spanish_tl
- {
- \selectlanguage { spanish }
- \g_projlib_language_settings_common_tl
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_russian_tl
- {
- \selectlanguage { russian }
- \g_projlib_language_settings_common_tl
- }
-
-\NewDocumentCommand \AddLanguageSetting { O{} m }
- {
- \IfNoValueTF { #1 }
- {
- \tl_gput_right:Nn \g_projlib_language_settings_common_tl { #2 }
- }
- {
- \tl_gput_right:cn { g_projlib_language_settings_ \projlib_language_str_to_languagename:n { #1 } _tl } { #2 }
- }
- }
-
-
-\RequirePackage { setspace }
-
-\tl_new:N \g_projlib_language_linespacing_latin_tl
-\tl_new:N \g_projlib_language_linespacing_cjk_tl
-
-\tl_gset:Nn \g_projlib_language_linespacing_latin_tl
- {
- \setstretch { 1.00 }
- }
-\tl_gset:Nn \g_projlib_language_linespacing_cjk_tl
- {
- \onehalfspacing
- }
-
-\cs_new:Nn \projlib_language_set_linespacing_latin:n
- {
- \tl_gset:Nn \g_projlib_language_linespacing_latin_tl { #1 }
- }
-\cs_new:Nn \projlib_language_set_linespacing_cjk:n
- {
- \tl_gset:Nn \g_projlib_language_linespacing_cjk_tl { #1 }
- }
-
-\tl_new:N \g_projlib_language_parindent_latin_tl
-\tl_new:N \g_projlib_language_parindent_cjk_tl
-
-\@ifclassloaded{beamer}
- {
- \tl_gset:Nn \g_projlib_language_parindent_latin_tl
- {
- \dim_set:Nn \parindent { 0em }
- }
- \tl_gset:Nn \g_projlib_language_parindent_cjk_tl
- {
- \dim_set:Nn \parindent { 0em }
- }
- }
- {
- \tl_gset:Nn \g_projlib_language_parindent_latin_tl
- {
- \dim_set:Nn \parindent { 1.5em }
- }
- \tl_gset:Nn \g_projlib_language_parindent_cjk_tl
- {
- \dim_set:Nn \parindent { 2em }
- }
- }
-
-\hook_gput_code:nnn { begindocument } { projlib-language }
- {
- \@ifpackageloaded{parskip}
- {
- \tl_gset:Nn \g_projlib_language_parindent_latin_tl
- {
- \dim_set:Nn \parindent { 0em }
- }
- \tl_gset:Nn \g_projlib_language_parindent_cjk_tl
- {
- \dim_set:Nn \parindent { 0em }
- }
- } {}
- }
-
-\cs_new:Nn \projlib_language_set_parindent_latin:n
- {
- \tl_gset:Nn \g_projlib_language_parindent_latin_tl { #1 }
- }
-\cs_new:Nn \projlib_language_set_parindent_cjk:n
- {
- \tl_gset:Nn \g_projlib_language_parindent_cjk_tl { #1 }
- }
-
-\NewDocumentCommand \ProjLibLanguageSet { m m m }
- % #1 = the thing to set
- % #2 = language or type
- % #3 = the setting
- {
- \use:c { projlib_language_set_ #1 _ #2 :n } { #3 }
- }
-
-
-\cs_new:Nn \projlib_language_use_language_pure:n
- {
- \tl_use:c { g_projlib_language_settings_ \projlib_language_str_to_languagename:n { #1 } _tl }
- }
-\cs_generate_variant:Nn \projlib_language_use_language_pure:n { e }
-
-\cs_new:Nn \projlib_language_use_language:n
- {
- \projlib_language_use_language_pure:n { #1 }
- \tl_use:c { g_projlib_language_linespacing_ \projlib_language_str_to_languagetype:n { #1 } _tl }
- \tl_use:c { g_projlib_language_parindent_ \projlib_language_str_to_languagetype:n { #1 } _tl }
- }
-\cs_generate_variant:Nn \projlib_language_use_language:n { e }
-
-\NewDocumentCommand \UseLanguage { m }
- {
- \hook_gput_code:nnn { begindocument } { projlib-language }
- {
- \projlib_language_use_language:e { #1 }
- }
- }
-\NewDocumentCommand \UseOtherLanguage { m m }
- {
- \group_begin:
- \projlib_language_use_language_pure:e { #1 }
- #2
- \group_end:
- }
-
-\UseLanguage { \g__projlib_language_main_str }
-
-
-\cs_new:Nn \projlib_langauge_define_multilingual_text:Nn
- { % #1 = command name (with backslash)
- % #2 = key-value name configuration
- \keyval_parse:nnn
- {}
- { \__projlib_langauge_define_multilingual_text_do:nnn { \cs_to_str:N #1 } }
- { #2 }
- \tl_gset:Nn #1
- {
- \tl_use:c { \cs_to_str:N #1 _projlib_language_text_ \languagename }
- }
- }
-\cs_generate_variant:Nn \projlib_langauge_define_multilingual_text:Nn { cn }
-
-\cs_new:Nn \__projlib_langauge_define_multilingual_text_do:nnn
- { % #1 = command name
- % #2 = language name
- % #3 = the text
- \exp_args:Ne \tl_gset:cn { #1 _projlib_language_text_ \projlib_language_str_to_languagename:n { #2 } } { #3 }
- }
-
-\NewDocumentCommand \DefineMultilingualText { m m }
- % #1 = command name
- % #2 = key-value name configuration
- {
- \projlib_langauge_define_multilingual_text:Nn #1 { #2 }
- }
-
-\endinput
-%%
-%% End of file `projlib-language.sty'.