diff options
Diffstat (limited to 'macros/latex/contrib/projlib/projlib-language.sty')
-rw-r--r-- | macros/latex/contrib/projlib/projlib-language.sty | 512 |
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'. |