summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/chemmacros/ghsystem.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/chemmacros/ghsystem.sty')
-rw-r--r--Master/texmf-dist/tex/latex/chemmacros/ghsystem.sty651
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 ?