From 613fcc4fa7a253ed46c5a3aa36e0b8cbe0831928 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 8 Nov 2011 22:40:12 +0000 Subject: chemnum (8nov11) git-svn-id: svn://tug.org/texlive/trunk@24547 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/chemnum/chemnum.sty | 196 ++++++++++++++++-------- 1 file changed, 128 insertions(+), 68 deletions(-) (limited to 'Master/texmf-dist/tex/latex/chemnum') diff --git a/Master/texmf-dist/tex/latex/chemnum/chemnum.sty b/Master/texmf-dist/tex/latex/chemnum/chemnum.sty index da85bea4b3b..f543c8c883c 100644 --- a/Master/texmf-dist/tex/latex/chemnum/chemnum.sty +++ b/Master/texmf-dist/tex/latex/chemnum/chemnum.sty @@ -3,7 +3,7 @@ % - a comprehensive numbering method for chemical compounds - % % --------------------------------------------------------------------------- % % - Clemens NIEDERBERGER - % -% - 2011/11/03 - % +% - 2011/11/08 - % % --------------------------------------------------------------------------- % % - http://www.mychemistry.eu/ - % % - contact@mychemistry.eu - % @@ -31,7 +31,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \RequirePackage { expl3 , xparse , etoolbox , psfrag } -\ProvidesExplPackage {chemnum} {2011/11/03} {0.3b} {Numbering chemical compounds} +\ProvidesExplPackage {chemnum} {2011/11/08} {0.3c} {Numbering chemical compounds} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % CHECK FOR SUPPORT @@ -512,8 +512,9 @@ %-----------------------------------------------------------------------------% % list separators, delimiters, prefix and suffix -\bool_new:N \l_chemnum_list_last_sep_US_bool -\bool_set_true:N \l_chemnum_list_last_sep_US_bool +\bool_new:N \l_chemnum_serial_comma_bool +\bool_set_true:N \l_chemnum_serial_comma_bool + \tl_new:N \l_chemnum_list_separator_tl \tl_set:Nn \l_chemnum_list_separator_tl { , } @@ -552,54 +553,56 @@ %-----------------------------------------------------------------------------% % property keys for lists \keys_define:nn { chemnum } { - list-prefix .tl_set:N = \l_chemnum_list_prefix_tl , - list-prefix .default:n = { } , - list-suffix .tl_set:N = \l_chemnum_list_suffix_tl , - list-suffix .default:n = { } , - list-delim .code:n = \chemnum_list_delim:n { #1 } , - list-delim .default:n = {(}{)} , - list-odelim .tl_set:N = \l_chemnum_list_odelim_tl , - list-odelim .default:n = { } , - list-cdelim .tl_set:N = \l_chemnum_list_cdelim_tl , - list-cdelim .default:n = { } , - list-space .tl_set:N = \l_chemnum_list_space_tl , - list-space .default:n = { \penalty\@m\ } , - list-sep .tl_set:N = \l_chemnum_list_separator_tl , - list-sep .default:n = { , }, - list-last-sep .tl_set:N = \l_chemnum_list_last_separator_tl , - list-last-sep .default:n = \l_chemnum_list_last_separator_lang_tl , - list-lang .choice: , - list-lang / US .code:n = + list-prefix .tl_set:N = \l_chemnum_list_prefix_tl , + list-prefix .default:n = { } , + list-suffix .tl_set:N = \l_chemnum_list_suffix_tl , + list-suffix .default:n = { } , + list-delim .code:n = \chemnum_list_delim:n { #1 } , + list-delim .default:n = {(}{)} , + list-odelim .tl_set:N = \l_chemnum_list_odelim_tl , + list-odelim .default:n = { } , + list-cdelim .tl_set:N = \l_chemnum_list_cdelim_tl , + list-cdelim .default:n = { } , + list-space .tl_set:N = \l_chemnum_list_space_tl , + list-space .default:n = { \penalty\@m\ } , + list-sep .tl_set:N = \l_chemnum_list_separator_tl , + list-sep .default:n = { , }, + list-last-sep .tl_set:N = \l_chemnum_list_last_separator_tl , + list-last-sep .default:n = \l_chemnum_list_last_separator_lang_tl , + list-serial-comma .bool_set:N = \l_chemnum_serial_comma_bool , + list-serial-comma .default:n = true , + list-lang .choice: , + list-lang / US .code:n = { - \bool_set_true:N \l_chemnum_list_last_sep_US_bool + \bool_set_true:N \l_chemnum_serial_comma_bool \tl_set:Nn \l_chemnum_list_last_separator_lang_tl { and } } , - list-lang / GB .code:n = + list-lang / GB .code:n = { - \bool_set_false:N \l_chemnum_list_last_sep_US_bool + \bool_set_false:N \l_chemnum_serial_comma_bool \tl_set:Nn \l_chemnum_list_last_separator_lang_tl { and } } , - list-lang / DE .code:n = + list-lang / DE .code:n = { - \bool_set_false:N \l_chemnum_list_last_sep_US_bool + \bool_set_false:N \l_chemnum_serial_comma_bool \tl_set:Nn \l_chemnum_list_last_separator_lang_tl { und } } , - list-lang / FR .code:n = + list-lang / FR .code:n = { - \bool_set_false:N \l_chemnum_list_last_sep_US_bool + \bool_set_false:N \l_chemnum_serial_comma_bool \tl_set:Nn \l_chemnum_list_last_separator_lang_tl { et } } , - list-lang / IT .code:n = + list-lang / IT .code:n = { - \bool_set_false:N \l_chemnum_list_last_sep_US_bool + \bool_set_false:N \l_chemnum_serial_comma_bool \tl_set:Nn \l_chemnum_list_last_separator_lang_tl { e } } , - list-lang / ES .code:n = + list-lang / ES .code:n = { - \bool_set_false:N \l_chemnum_list_last_sep_US_bool + \bool_set_false:N \l_chemnum_serial_comma_bool \tl_set:Nn \l_chemnum_list_last_separator_lang_tl { y } } , - list-lang .default:n = US + list-lang .default:n = US } %-----------------------------------------------------------------------------% @@ -961,41 +964,46 @@ { \BooleanFalse } { \BooleanFalse } } - \if_int_compare:w - \l_chemnum_list_separate_int = \l_chemnum_list_items_int - \if_int_compare:w \l_chemnum_list_items_int = 1 \else: - \tl_use:N \l_chemnum_list_cdelim_tl - \tl_if_blank:VF - { \l_chemnum_list_suffix_tl } - { \l_chemnum_list_space_tl } - \tl_use:N \l_chemnum_list_suffix_tl - \fi: - \else: - \if_int_compare:w \l_chemnum_list_separate_int = - \int_eval:n { \l_chemnum_list_items_int - 1 } - \tl_if_eq:NNTF - \l_chemnum_list_last_separator_tl - \l_chemnum_list_last_sep_empty_tl + \int_compare:nTF + { \l_chemnum_list_separate_int = \l_chemnum_list_items_int } + { + \int_compare:nNnF { \l_chemnum_list_items_int } = { 1 } { - \tl_use:N \l_chemnum_list_separator_tl - \l_chemnum_list_space_tl + \tl_use:N \l_chemnum_list_cdelim_tl + \tl_if_blank:VF + { \l_chemnum_list_suffix_tl } + { \l_chemnum_list_space_tl } + \tl_use:N \l_chemnum_list_suffix_tl } + } + { + \int_compare:nTF + { \l_chemnum_list_separate_int = \int_eval:n { \l_chemnum_list_items_int - 1 } } { - \if_int_compare:w \l_chemnum_list_separate_int = 1 - \else: - \bool_if:NT \l_chemnum_list_last_sep_US_bool - { \l_chemnum_list_separator_tl } - \fi: - \tl_if_blank:VF \l_chemnum_list_last_separator_tl - { \l_chemnum_list_space_tl } - \tl_use:N \l_chemnum_list_last_separator_tl + \tl_if_eq:NNTF + \l_chemnum_list_last_separator_tl + \l_chemnum_list_last_sep_empty_tl + { + \tl_use:N \l_chemnum_list_separator_tl + \l_chemnum_list_space_tl + } + { + \int_compare:nNnF { \l_chemnum_list_separate_int } = { 1 } + { + \bool_if:NT \l_chemnum_serial_comma_bool + { \l_chemnum_list_separator_tl } + } + \tl_if_blank:VF \l_chemnum_list_last_separator_tl + { \l_chemnum_list_space_tl } + \tl_use:N \l_chemnum_list_last_separator_tl + \l_chemnum_list_space_tl + } + } + { + \tl_use:N \l_chemnum_list_separator_tl \l_chemnum_list_space_tl } - \else: - \tl_use:N \l_chemnum_list_separator_tl - \l_chemnum_list_space_tl - \fi: - \fi: + } } } } @@ -1127,11 +1135,8 @@ \NewDocumentCommand \cmpdref { t- o o m } { -% \group_begin: \IfBooleanT { #1 } { \cmpdsetup { cmpd-delim = } } -% \IfNoValueF { #2 } -% { \keys_set:nn { chemnum } { #2 } } \IfNoValueTF { #3 } { \int_incr:N \l_chemnum_cmpdref_int @@ -1151,7 +1156,59 @@ { \psfrag { \l_chemnum_cmpdref_tl } [ b ] [ b ] { \cmpd [ #2 ] { #4 } } } -% \group_end: + } + +\file_if_exist:nT { translator.sty } + { + \RequirePackage { translator } + \usedictionary { translator-basic-dictionary } + % german + \languagealias { ngerman } { German } + \languagealias { german } { German} + \languagealias { austrian } { German } + \languagealias { naustrian } { German } + % french + \languagealias { french } { French } + \languagealias { canadien } { French } + % italian + \languagealias { italian } { Italian } + % spanish + \languagealias { spanish } { Spanish } + \providetranslation [ to = English ] + { and~(list~seperator) } { and } + \providetranslation [ to = BritishEnglish ] + { and~(list~seperator) } { and } + \providetranslation [ to = AmericanEnglish ] + { and~(list~seperator) } { and } + \providetranslation [ to = French ] + { and~(list~seperator) } { et } + \providetranslation [ to = German ] + { and~(list~seperator) } { und } + \providetranslation [ to = Italian ] + { and~(list~seperator) } { e } + \providetranslation [ to = Spanish ] + { and~(list~seperator) } { y } + \tl_set:Nn \l_chemnum_list_last_separator_lang_tl + { \translate { and~(list~seperator) } } + } + +\AtBeginDocument + { + \@ifpackageloaded { babel } + { + \iflanguage { american } + { \bool_set_true:N \l_chemnum_serial_comma_bool } + { \bool_set_false:N \l_chemnum_serial_comma_bool } + \cs_new_eq:NN \chemnum_selectlanguage:n \selectlanguage + \cs_set_nopar:Npn \selectlanguage #1 + { + \chemnum_selectlanguage:n { #1 } + \iflanguage { american } + { \bool_set_true:N \l_chemnum_serial_comma_bool } + { \bool_set_false:N \l_chemnum_serial_comma_bool } + } + } + {} } \tex_endinput:D @@ -1195,6 +1252,9 @@ HISTORY: http://www.arkat-usa.org/get-file/29257/ or scheme 4 at http://www.arkat-usa.org/get-file/27301/ for reasons, why + 2011/11/08 version 0.3c - localization via babel is now supported with the help + of the translator package + - key "list-serial-comma" added %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % TODO: - Bug: wenn als "sub-marker" ":" von einer anderen Datei gesetzt wird, wird -- cgit v1.2.3