diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/chemmacros/ghsystem.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/chemmacros/ghsystem.sty | 651 |
1 files changed, 0 insertions, 651 deletions
diff --git a/Master/texmf-dist/tex/latex/chemmacros/ghsystem.sty b/Master/texmf-dist/tex/latex/chemmacros/ghsystem.sty deleted file mode 100644 index a923bdda277..00000000000 --- a/Master/texmf-dist/tex/latex/chemmacros/ghsystem.sty +++ /dev/null @@ -1,651 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% --------------------------------------------------------------------------- % -% - the CHEMMACROS bundle - % -% - ghsystem.sty - % -% - macros and commands for chemists - % -% --------------------------------------------------------------------------- % -% - Clemens Niederberger - % -% --------------------------------------------------------------------------- % -% - https://bitbucket.org/cgnieder/chemmacros/ - % -% - contact@mychemistry.eu - % -% --------------------------------------------------------------------------- % -% - If you have any ideas, questions, suggestions or bugs to report, please - % -% - feel free to contact me. - % -% --------------------------------------------------------------------------- % -% - Copyright 2011-2014 Clemens Niederberger - % -% - - % -% - This work may be distributed and/or modified under the - % -% - conditions of the LaTeX Project Public License, either version 1.3 - % -% - 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.3 or later is part of all distributions of LaTeX - % -% - version 2005/12/01 or later. - % -% - - % -% - This work has the LPPL maintenance status `maintained'. - % -% - - % -% - The Current Maintainer of this work is Clemens Niederberger. - % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\RequirePackage{ expl3, xparse, l3keys2e } -\def\ghsystem@version{4.5b} -\def\ghsystem@date{2014/06/30} -\ProvidesExplPackage - {ghsystem} - {\ghsystem@date} - {\ghsystem@version} - {globally harmonised system} - -% -------------------------------------------------------------------------- -% check expl3 version: -\@ifpackagelater { expl3 } { 2012/11/21 } - { } - { - \PackageError { ghsystem } { Support~package~expl3~too~old } - { - You~need~to~update~your~installation~of~the~bundles~'l3kernel'~and~ - 'l3packages'.\MessageBreak - Loading~ghsystem~will~abort! - } - \tex_endinput:D - } - -% --------------------------------------------------------------------------- % -% error and warning messages: -\msg_set:nnnn { ghsystem } { explicit } - { It~seems~you've~loaded~`ghsystem'~explicitly. } - { - It~seems~you've~loaded~`ghsystem'~explicitly.~This~should~work~but~the~ - recommended~way~is~to~load~it~via~the~bundle,~i.e.~by~using~ - \token_to_str:N \usepackage \{ chemmacros \}. - } - -\msg_set:nnnn { ghsystem } { statements } - { - You've~tried~to~call~statement~#1#2~ \msg_line_context: \c_space_tl but~it~ - it~is~not~defined~in~ghsystem.sty . - } - { - You've~tried~to~call~statement~#1#2~ \msg_line_context: \c_space_tl but~it~ - it~is~not~defined~in~ghsystem.sty . ~ Are~you~sure~it~exists? ~ If~so~please - ~send~a~message~to~the~author.~Thanks. - } - -\msg_set:nnnn { ghsystem } { booktabs } - { Package~`booktabs'~missing~\msg_line_context: . } - { - Option~#1~of~the~\token_to_str:N \ghslistall \c_space_tl command~ - \msg_line_context: \c_space_tl needs~the~`booktabs'~package . ~Please~make~ - sure~to~load~it~in~your~preamble. - } - -\cs_new_protected:Npn \ghsystem_msg:nnxx #1#2#3#4 - { - \bool_if:NTF \l__ghsystem_strict_bool - { \msg_error:nnxx { #1 } { #2 } { #3 } { #4 } } - { \msg_warning:nnxx { #1 } { #2 } { #3 } { #4 } } - } - -% -------------------------------------------------------------------------- -% package options: -\bool_new:N \l__ghsystem_strict_bool -\keys_define:nn { chemmacros / ghsystem } - { - strict .bool_set:N = \l__ghsystem_strict_bool , - strict .default:n = true , - language .code:n = \ghsystem_load_language:n { #1 } - } - -\AtBeginDocument - { - \@ifpackageloaded{ chemmacros } - { - \bool_if:NT \l_chemmacros_strict_bool - { \bool_set_true:N \l__ghsystem_strict_bool } - } - { - \cs_new:Npn \iupac #1 - { - \group_begin: - \cs_set_eq:NN \| \scan_stop: - #1 - \group_end: - } - } - } - -% --------------------------------------------------------------------------- % -% variants of kernel functions: -\cs_generate_variant:Nn \file_if_exist:nTF { x } - -% --------------------------------------------------------------------------- % -% scratch variables -\tl_new:N \l__ghsystem_tmpa_tl -\tl_new:N \l__ghsystem_tmpb_tl -\int_new:N \l__ghsystem_tmpa_int -\int_new:N \l__ghsystem_tmpb_int - -% load required packages: -\RequirePackage{ translations , siunitx , graphicx , longtable , ifpdf } - -% --------------------------------------------------------------------------- % -% define variables: -\prop_new:N \l__ghsystem_h_prop -\prop_new:N \l__ghsystem_euh_prop -\prop_new:N \l__ghsystem_p_prop - -\cs_new:Npn \ghsystem_exposure: {} -\cs_new:Npn \ghsystem_effect: {} -\cs_new:Npn \ghsystem_organs: {} -\cs_new:Npn \ghsystem_substance: {} -\cs_new:Npn \ghsystem_text: {} -\cs_new:Npn \ghsystem_dash: - { - \tex_penalty:D \c_ten_thousand - - - \skip_horizontal:N \c_zero_skip - } - -\cs_new:Npn \ghsystem_slash: - { - \tex_penalty:D \c_ten_thousand - / - \skip_horizontal:N \c_zero_skip - } - -\bool_new:N \l__ghsystem_fill_in_bool -\bool_new:N \l__ghsystem_show_number_bool -\bool_new:N \l__ghsystem_substance_bool -\bool_new:N \l__ghsystem_organs_bool -\bool_new:N \l__ghsystem_hide_statement_bool -\bool_new:N \l__ghsystem_engine_pdftex_bool -\bool_new:N \l__ghsystem_engine_xetex_bool -\bool_new:N \l__ghsystem_engine_luatex_bool - -\tl_new:N \l__ghsystem_number_space_tl -\tl_new:N \l__ghsystem_celsius_temperature_tl -\tl_new:N \l__ghsystem_fahrenheit_temperature_tl -\tl_new:N \l__ghsystem_kg_mass_tl -\tl_new:N \l__ghsystem_lbs_mass_tl -\tl_new:N \l__ghsystem_dots_tl -\tl_set:Nn \l__ghsystem_dots_tl { \ldots } -\tl_new:N \l__ghsystem_picture_scale_default_tl -\tl_set:Nn \l__ghsystem_picture_scale_default_tl { .05 } -\tl_new:N \l__ghsystem_picture_scale_tl -\tl_set_eq:NN \l__ghsystem_picture_scale_tl \l__ghsystem_picture_scale_default_tl -\tl_new:N \l__ghsystem_picture_includegraphics_tl -\tl_new:N \l__ghsystem_picture_type_tl -\tl_new:N \l__ghsystem_identifier_tl -\tl_new:N \l__ghsystem_table_text_tl -\tl_new:N \l__ghsystem_table_next_page_tl -\tl_new:N \l__ghsystem_table_head_rule_tl -\tl_set:Nn \l__ghsystem_table_head_rule_tl { \hline } -\tl_new:N \l__ghsystem_table_top_head_rule_tl -\tl_set:Nn \l__ghsystem_table_top_head_rule_tl { \hline } -\tl_new:N \l__ghsystem_table_foot_rule_tl -\tl_set:Nn \l__ghsystem_table_foot_rule_tl { \hline } -\tl_new:N \l__ghsystem_table_last_foot_rule_tl -\tl_set:Nn \l__ghsystem_table_last_foot_rule_tl { \hline } -\tl_new:N \l__ghsystem_table_caption_tl -\tl_new:N \l__ghsystem_table_caption_short_tl -\tl_new:N \l__ghsystem_table_label_tl -\tl_set:Nn \l__ghsystem_table_label_tl { tab : ghs-hp-statements } -\tl_new:N \l__ghsystem_list_all_column_format_tl - -\dim_new:N \l__ghsystem_list_all_column_width_dim -\dim_set:Nn \l__ghsystem_list_all_column_width_dim { .7\linewidth } -\dim_new:N \l__ghsystem_table_line_sep_dim -\dim_set:Nn \l__ghsystem_table_line_sep_dim { 3pt } - -\fp_new:N \l__ghsystem_picture_scale_fp -\fp_set:Nn \l__ghsystem_picture_scale_fp { \l__ghsystem_picture_scale_tl } - -\DeclareSIUnit { \GHSfahrenheit } { \SIUnitSymbolDegree F } -\DeclareSIUnit { \GHScelsius } { \SIUnitSymbolDegree C } -\DeclareSIUnit { \GHSkilogram } { kg } -\DeclareSIUnit { \GHSpounds } { lbs } - -% language settings -\bool_new:N \l__ghsystem_language_file_loaded_bool -\bool_new:N \l__ghsystem_language_directory_bool - -% load the language file -- it needs expl3 namespace but shouldn't care about -% what catcode regime was before and simply restore it... -% so we basically copy the definitions of \ExplSyntaxOn and \ExplSyntaxOff - -\cs_new_protected:Npn \__ghsystem_namespace_restore: {} -\bool_new:N \l__ghsystem_expl_namespace_bool - -\cs_new_protected:Npn \__ghsystem_expl_namespace: - { - \bool_if:NF \l__ghsystem_expl_namespace_bool - { - \cs_set_protected:Npx \__ghsystem_namespace_restore: - { - \char_set_catcode:nn { 9 } { \char_value_catcode:n { 9 } } - \char_set_catcode:nn { 32 } { \char_value_catcode:n { 32 } } - \char_set_catcode:nn { 34 } { \char_value_catcode:n { 34 } } - \char_set_catcode:nn { 38 } { \char_value_catcode:n { 38 } } - \char_set_catcode:nn { 58 } { \char_value_catcode:n { 58 } } - \char_set_catcode:nn { 94 } { \char_value_catcode:n { 94 } } - \char_set_catcode:nn { 95 } { \char_value_catcode:n { 95 } } - \char_set_catcode:nn { 124 } { \char_value_catcode:n { 124 } } - \char_set_catcode:nn { 126 } { \char_value_catcode:n { 126 } } - \tex_endlinechar:D = \tex_the:D \tex_endlinechar:D \scan_stop: - \bool_set_false:N \l__ghsystem_expl_namespace_bool - \cs_set_protected:Npn \__ghsystem_namespace_restore: {} - } - } - \char_set_catcode_ignore:n { 9 } - \char_set_catcode_ignore:n { 32 } - \char_set_catcode_other:n { 34 } - \char_set_catcode_math_toggle:n { 36 } - \char_set_catcode_alignment:n { 38 } - \char_set_catcode_letter:n { 58 } - \char_set_catcode_math_superscript:n { 94 } - \char_set_catcode_letter:n { 95 } - \char_set_catcode_other:n { 124 } - \char_set_catcode_space:n { 126 } - \tex_endlinechar:D = 32 \scan_stop: - \bool_set_true:N \l__ghsystem_expl_namespace_bool - } - -\cs_new:Npn \ghsystem_load_language_file:n #1 - { - \__ghsystem_expl_namespace: - \file_input:n { ghsystem_#1.def } - \__ghsystem_namespace_restore: - } - -\cs_new_protected:Npn \ghsystem_load_language:n #1 - { - \file_if_exist:xTF { ghsystem_ #1 .def } - { - \bool_set_true:N \l__ghsystem_language_file_loaded_bool - \ghsystem_load_language_file:n { #1 } - } - { \ghsystem_load_language_file:n { english } } - } -\cs_generate_variant:Nn \ghsystem_load_language:n { V } - -\NewDocumentCommand \loadghsystemlanguage { m } - { \ghsystem_load_language:n { #1 } } - -\AtBeginDocument{ - \bool_if:NF \l__ghsystem_language_file_loaded_bool - { - \cs_if_exist:NTF \l_chemmacros_language_tl - { \ghsystem_load_language:V \l_chemmacros_language_tl } - { - \ghsystem_load_language:n - { \@trnslt@language{\@trnslt@current@language} } - } - } -} - -\cs_new_nopar:Nn \ghsystem_booktabs:n - { - \cs_if_exist:cF { ver@booktabs.sty } - { \msg_error:nnx { ghsystem } { booktabs } { #1 } } - } - -% --------------------------------------------------------------------------- % -% define options: -\keys_define:nn { chemmacros / ghsystem } - { - % \ghs options: - hide .bool_set:N = - \l__ghsystem_hide_statement_bool , - hide .default:n = true , - fill-in .bool_set:N = \l__ghsystem_fill_in_bool , - fill-in .default:n = true , - exposure .code:n = - \cs_set:Npn \ghsystem_exposure: { ~ #1 } , - effect .code:n = - \cs_set:Npn \ghsystem_effect: { ~ #1 } , - organs .code:n = - \bool_set_true:N \l__ghsystem_organs_bool - \cs_set:Npn \ghsystem_organs: { ~ #1 } , - substance .code:n = - \bool_set_true:N \l__ghsystem_substance_bool - \cs_set:Npn \ghsystem_substance: { ~ #1 } , - text .code:n = - \cs_set:Npn \ghsystem_text: { ~ #1 } , - space .tl_set:N = - \l__ghsystem_number_space_tl , - C-temperature .tl_set:N = - \l__ghsystem_celsius_temperature_tl , - F-temperature .tl_set:N = - \l__ghsystem_fahrenheit_temperature_tl , - kg-mass .tl_set:N = \l__ghsystem_kg_mass_tl , - lbs-mass .tl_set:N = \l__ghsystem_lbs_mass_tl , - dots .tl_set:N = \l__ghsystem_dots_tl , - % \ghspic options: - scale .code:n = - \fp_set:Nn \l__ghsystem_picture_scale_fp { #1 * \l__ghsystem_picture_scale_fp } , - includegraphics .code:n = - \tl_set:Nn \l__ghsystem_picture_includegraphics_tl { , #1 } , - pic-type .choices:nn = { eps , jpg , png , pdf } - { \tl_set_eq:NN \l__ghsystem_picture_type_tl \l_keys_choice_tl } , - % \ghslistall options: - table-head-number .tl_set:N = \l__ghsystem_identifier_tl , - table-head-text .tl_set:N = \l__ghsystem_table_text_tl , - table-next-page .tl_set:N = - \l__ghsystem_table_next_page_tl , - table-row-sep .dim_set:N = - \l__ghsystem_table_line_sep_dim , - table-head-rule .choice: , - table-head-rule / default .code:n = - \tl_set:Nn \l__ghsystem_table_head_rule_tl { \hline } , - table-head-rule / booktabs .code:n = - \ghsystem_booktabs:n { table-head-rule } - \tl_set:Nn \l__ghsystem_table_head_rule_tl { \midrule } , - table-head-rule / none .code:n = - \tl_clear:N \l__ghsystem_table_head_rule_tl , - table-top-head-rule .choice: , - table-top-head-rule / default .code:n = - \tl_set:Nn \l__ghsystem_table_top_head_rule_tl { \hline } , - table-top-head-rule / booktabs .code:n = - \ghsystem_booktabs:n { table-top-head-rule } - \tl_set:Nn \l__ghsystem_table_top_head_rule_tl { \toprule } , - table-top-head-rule / none .code:n = - \tl_clear:N \l__ghsystem_table_top_head_rule_tl , - table-foot-rule .choice: , - table-foot-rule / default .code:n = - \tl_set:Nn \l__ghsystem_table_foot_rule_tl { \hline } , - table-foot-rule / booktabs .code:n = - \ghsystem_booktabs:n { table-foot-rule } - \tl_set:Nn \l__ghsystem_table_foot_rule_tl { \midrule } , - table-foot-rule / none .code:n = - \tl_clear:N \l__ghsystem_table_foot_rule_tl , - table-last-foot-rule .choice: , - table-last-foot-rule / default .code:n = - \tl_set:Nn \l__ghsystem_table_last_foot_rule_tl { \hline } , - table-last-foot-rule / booktabs .code:n = - \ghsystem_booktabs:n { table-last-foot-rule } - \tl_set:Nn \l__ghsystem_table_last_foot_rule_tl { \bottomrule } , - table-last-foot-rule / none .code:n = - \tl_clear:N \l__ghsystem_table_last_foot_rule_tl , - table-rules .choice: , - table-rules / default .code:n = - \tl_set:Nn \l__ghsystem_table_head_rule_tl { \hline } - \tl_set:Nn \l__ghsystem_table_top_head_rule_tl { \hline } - \tl_set:Nn \l__ghsystem_table_foot_rule_tl { \hline } - \tl_set:Nn \l__ghsystem_table_last_foot_rule_tl { \hline } , - table-rules / booktabs .code:n = - \ghsystem_booktabs:n { table-rules } - \tl_set:Nn \l__ghsystem_table_head_rule_tl { \midrule } - \tl_set:Nn \l__ghsystem_table_top_head_rule_tl { \toprule } - \tl_set:Nn \l__ghsystem_table_foot_rule_tl { \midrule } - \tl_set:Nn \l__ghsystem_table_last_foot_rule_tl { \bottomrule } , - table-rules / none .code:n = - \tl_clear:N \l__ghsystem_table_head_rule_tl - \tl_clear:N \l__ghsystem_table_top_head_rule_tl - \tl_clear:N \l__ghsystem_table_foot_rule_tl - \tl_clear:N \l__ghsystem_table_last_foot_rule_tl , - table-caption .tl_set:N = - \l__ghsystem_table_caption_tl , - table-caption-short .tl_set:N = - \l__ghsystem_table_caption_short_tl , - table-label .tl_set:N = - \l__ghsystem_table_label_tl , - table-column-format .tl_set:N = - \l__ghsystem_list_all_column_format_tl , - table-column-width .dim_set:N = - \l__ghsystem_list_all_column_width_dim - } - -% --------------------------------------------------------------------------- % -% the main command for getting the H/EUH/P statements -% \ghs{<type>}{<num>} -% \ghs*{<type>}{<num>} : type without number -% -\NewDocumentCommand \ghs { somm } - { - \group_begin: - \IfBooleanF { #1 } { \bool_set_true:N \l__ghsystem_show_number_bool } - \IfNoValueF { #2 } { \keys_set:nn { chemmacros / ghsystem } { #2 } } - \ghsystem_read_args:nn { #3 } { #4 } - \group_end: - } - -\cs_new:Nn \ghsystem_read_args:nn - { - \__ghsystem_get_type:nN { #1 } \l__ghsystem_tmpa_tl - \prop_get:cnNTF { l__ghsystem_ \l__ghsystem_tmpa_tl _prop } { #2 } \l__ghsystem_tmpb_tl - { - \__ghsystem_is_combination:nn { #1 } { #2 } - \bool_if:NF \l__ghsystem_hide_statement_bool - { \tl_use:N \l__ghsystem_tmpb_tl } - } - { \ghsystem_msg:nnxx { ghsystem } { statements } { #1 } { #2 } } - } - -\cs_new_protected:Nn \__ghsystem_get_type:nN - { - \tl_if_eq:nnT { #1 } { h } { \tl_set:Nn #2 { h } } - \tl_if_eq:nnT { #1 } { H } { \tl_set:Nn #2 { h } } - \tl_if_eq:nnT { #1 } { euh } { \tl_set:Nn #2 { euh } } - \tl_if_eq:nnT { #1 } { Euh } { \tl_set:Nn #2 { euh } } - \tl_if_eq:nnT { #1 } { euH } { \tl_set:Nn #2 { euh } } - \tl_if_eq:nnT { #1 } { eUh } { \tl_set:Nn #2 { euh } } - \tl_if_eq:nnT { #1 } { EUh } { \tl_set:Nn #2 { euh } } - \tl_if_eq:nnT { #1 } { EuH } { \tl_set:Nn #2 { euh } } - \tl_if_eq:nnT { #1 } { eUH } { \tl_set:Nn #2 { euh } } - \tl_if_eq:nnT { #1 } { EUH } { \tl_set:Nn #2 { euh } } - \tl_if_eq:nnT { #1 } { p } { \tl_set:Nn #2 { p } } - \tl_if_eq:nnT { #1 } { P } { \tl_set:Nn #2 { p } } - } - -\cs_new:Nn \__ghsystem_is_combination:nn - { - \tl_if_in:nnTF { #2 } { + } - { \__ghsystem_is_combination_aux_i:w #1,#2 \q_stop } - { \__ghsystem_is_combination_aux_ii:w #1,#2 \q_stop } - } - -\cs_new:Npn \__ghsystem_is_combination_aux_i:w #1,#2+#3 \q_stop - { - \bool_if:NT \l__ghsystem_show_number_bool - { - \tl_to_uppercase:n { #1 } - \tl_use:N \l__ghsystem_number_space_tl - #2 ~ + ~ - \tl_if_in:nnTF { #3 } { + } - { \__ghsystem_is_combination_aux_iii:w #1,#3 \q_stop } - { - \tl_to_uppercase:n { #1 } - \tl_use:N \l__ghsystem_number_space_tl - #3 \bool_if:NF \l__ghsystem_hide_statement_bool { : ~ } - } - } - } - -\cs_new:Npn \__ghsystem_is_combination_aux_ii:w #1,#2 \q_stop - { - \bool_if:NT \l__ghsystem_show_number_bool - { - \tl_to_uppercase:n { #1 } - \tl_use:N \l__ghsystem_number_space_tl - #2 \bool_if:NF \l__ghsystem_hide_statement_bool { : ~ } - } - } - -\cs_new:Npn \__ghsystem_is_combination_aux_iii:w #1,#2+#3 \q_stop - { - \bool_if:NT \l__ghsystem_show_number_bool - { - \tl_to_uppercase:n { #1 } - \tl_use:N \l__ghsystem_number_space_tl - #2 ~ + ~ - \tl_to_uppercase:n { #1 } - \tl_use:N \l__ghsystem_number_space_tl - #3 \bool_if:NF \l__ghsystem_hide_statement_bool { : ~ } - } - } - -% --------------------------------------------------------------------------- % -% list all statements in a table -% -\NewDocumentCommand \ghslistall { o } - { - \group_begin: - \IfNoValueF { #1 } { \keys_set:nn { chemmacros / ghsystem } { #1 } } - \ghsystem_list_all: - \group_end: - } - -\cs_new_protected:Npn \ghsystem_list_all: - { - \int_zero:N \l__ghsystem_tmpa_int - \int_zero:N \l__ghsystem_tmpb_int - \prop_map_inline:Nn \l__ghsystem_p_prop { \int_incr:N \l__ghsystem_tmpa_int } - \dim_set_eq:NN \extrarowheight \l__ghsystem_table_line_sep_dim - \begin { longtable } - { - l - >{ \l__ghsystem_list_all_column_format_tl } - p{ \l__ghsystem_list_all_column_width_dim } - } - \caption [ \l__ghsystem_table_caption_short_tl ] - { - \l__ghsystem_table_caption_tl - \exp_args:No \label { \l__ghsystem_table_label_tl } - } \\ - \l__ghsystem_table_top_head_rule_tl - \textbf { \l__ghsystem_identifier_tl } & - \textbf { \l__ghsystem_table_text_tl } \\ - \l__ghsystem_table_head_rule_tl - \endfirsthead - \l__ghsystem_table_top_head_rule_tl - \textbf { \l__ghsystem_identifier_tl } & - \textbf { \l__ghsystem_table_text_tl } \\ - \l__ghsystem_table_head_rule_tl - \endhead - \l__ghsystem_table_last_foot_rule_tl - \multicolumn{2}{r} { \textit { \l__ghsystem_table_next_page_tl } } - \endfoot - \l__ghsystem_table_foot_rule_tl \multicolumn{2}{r} { } - \endlastfoot - \prop_map_inline:Nn \l__ghsystem_h_prop - { \__ghsystem_read_number:nn { H } { ##1 } & ##2 \\ } - \prop_map_inline:Nn \l__ghsystem_euh_prop - { \__ghsystem_read_number:nn { EUH } { ##1 } & ##2 \\ } - \int_zero:N \l__ghsystem_tmpa_int - \prop_map_inline:Nn \l__ghsystem_p_prop { \int_gincr:N \l__ghsystem_tmpa_int } - \int_zero:N \l__ghsystem_tmpb_int - \prop_map_inline:Nn \l__ghsystem_p_prop - { - \int_gincr:N \l__ghsystem_tmpb_int - \__ghsystem_read_number:nn { P } { ##1 } & ##2 - \int_compare:nNnT { \l__ghsystem_tmpb_int } < { \l__ghsystem_tmpa_int } { \\ } - } - \end { longtable } - } - -\cs_new:Nn \__ghsystem_read_number:nn - { - \tl_if_in:nnTF { #2 } { + } - { \__ghsystem_read_number_aux_i:w #1 , #2 \q_stop } - { #1 \tl_use:N \l__ghsystem_number_space_tl #2 } - } - -\cs_new:Npn \__ghsystem_read_number_aux_i:w #1,#2+#3\q_stop - { - #1 \tl_use:N \l__ghsystem_number_space_tl #2 ~+~ - \tl_if_in:nnTF { #3 } { + } - { \__ghsystem_read_number_aux_ii:w #1,#3 \q_stop } - { #1#3 } - } - -\cs_new:Npn \__ghsystem_read_number_aux_ii:w #1,#2+#3\q_stop - { #1#2 ~+~ #1#3 } - -% --------------------------------------------------------------------------- % -% the picture command -% \ghspic[<options>]{<name>} -% -% test for compilation engine/mode: -\pdftex_if_engine:T { \bool_set_true:N \l__ghsystem_engine_pdftex_bool } -\xetex_if_engine:T { \bool_set_true:N \l__ghsystem_engine_xetex_bool } -\luatex_if_engine:T { \bool_set_true:N \l__ghsystem_engine_luatex_bool } - -\bool_new:N \l__ghsystem_picture_directory_bool - -\bool_if:NT \l__ghsystem_engine_pdftex_bool - { - \ifpdf - \tl_set:Nn \l__ghsystem_picture_type_tl { pdf } - \else - \tl_set:Nn \l__ghsystem_picture_type_tl { eps } - \fi - } -\bool_if:NT \l__ghsystem_engine_xetex_bool - { \tl_set:Nn \l__ghsystem_picture_type_tl { pdf } } -\bool_if:NT \l__ghsystem_engine_luatex_bool - { \tl_set:Nn \l__ghsystem_picture_type_tl { pdf } } - -% the command: -\NewDocumentCommand \ghspic { om } - { - \group_begin: - \IfNoValueF { #1 } { \keys_set:nn { chemmacros / ghsystem } { #1 } } - \ghsystem_pic:n { #2 } - \group_end: - } - -\cs_new_protected:Npn \ghsystem_pic:n #1 - { - \__ghsystem_includegraphics:xn - { - scale = \fp_to_tl:N \l__ghsystem_picture_scale_fp - \exp_not:V \l__ghsystem_picture_includegraphics_tl - } - { ghsystem_ #1 . \l__ghsystem_picture_type_tl } - } - -\cs_new:Nn \__ghsystem_includegraphics:nn - { \includegraphics[#1]{#2} } -\cs_generate_variant:Nn \__ghsystem_includegraphics:nn { xn } - -% -------------------------------------------------------------------------- -% options and setup -\ProcessKeysOptions{ chemmacros / ghsystem } - -\cs_new_protected:Npn \ghsystem_setup:n #1 - { \keys_set:nn { chemmacros / ghsystem } { #1 } } - -\NewDocumentCommand \ghssetup { m } - { \ghsystem_setup:n { #1 } } - -\tex_endinput:D -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -VERSION HISTORY -2012/01/30 - version 3.0a - renamed ghs => ghsystem to make the names unique - (following a request by Karl Berry for TeXlive) -2012/02/05 - version 3.0c - renamed pictogram files (following a request by - Karl Berry for TeXlive) -2012/05/13 - version 3.3a - Italian translations of the H, EUH and P statements -2012/05/18 - version 3.3b - compatibility with MiKTeX -2012/05/18 - version 3.3c - fix in the `ghsystem/language' option -2012/07/24 - version 3.3d - additional picture file type `pdf' -2013/02/19 - version 3.5a - bug fix: `ghsystem' recognizes language again -2013/07/06 - version 4.0 - dropped requirement of `tabu' package. - - new options `table-column-width' and - `table-column-format' - - adapted to changed language setting mechanism in - `chemmacros' - - new command: \loadghsystemlanguage - - the package can be used independently from - `chemmacros' -2013/12/13 - version 4.0a - small changes to `ghsystem_german.def' - - added \ghsystem_dash: and \ghsystem_slash: -2014/01/09 - version 4.2e - bug fix: namespace after language file loading - properly restored -2014/04/08 - version 4.5 - small changes in `ghsystem_italian.def' -2014/04/13 - version 4.5a - added Spanish translations, thanks to Ignacio - Fernández Galván -2014/06/30 - version 4.5b - adapt to deprecated expl3 function - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% TODO: -- add option to switch between `longtable` and `supertabular` for \ghslistall ? |