texlive[53822] Master: ghsystem (17feb20)

commits+karl at tug.org commits+karl at tug.org
Mon Feb 17 23:17:09 CET 2020


Revision: 53822
          http://tug.org/svn/texlive?view=revision&revision=53822
Author:   karl
Date:     2020-02-17 23:17:09 +0100 (Mon, 17 Feb 2020)
Log Message:
-----------
ghsystem (17feb20)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/ghsystem/README
    trunk/Master/texmf-dist/tex/latex/ghsystem/ghsystem.sty
    trunk/Master/texmf-dist/tex/latex/ghsystem/language/ghsystem_english.def
    trunk/Master/texmf-dist/tex/latex/ghsystem/language/ghsystem_french.def
    trunk/Master/texmf-dist/tex/latex/ghsystem/language/ghsystem_german.def
    trunk/Master/texmf-dist/tex/latex/ghsystem/language/ghsystem_italian.def
    trunk/Master/texmf-dist/tex/latex/ghsystem/language/ghsystem_langtemplate.def
    trunk/Master/texmf-dist/tex/latex/ghsystem/language/ghsystem_spanish.def
    trunk/Master/tlpkg/libexec/ctan2tds

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/ghsystem/ghsystem-manual.cls
    trunk/Master/texmf-dist/doc/latex/ghsystem/ghsystem-manual.pdf
    trunk/Master/texmf-dist/doc/latex/ghsystem/ghsystem-manual.tex

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/latex/ghsystem/ghsystem_en.pdf
    trunk/Master/texmf-dist/doc/latex/ghsystem/ghsystem_en.tex

Modified: trunk/Master/texmf-dist/doc/latex/ghsystem/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/ghsystem/README	2020-02-17 22:15:57 UTC (rev 53821)
+++ trunk/Master/texmf-dist/doc/latex/ghsystem/README	2020-02-17 22:17:09 UTC (rev 53822)
@@ -1,5 +1,5 @@
 --------------------------------------------------------------------------
-the GHSYSTEM package v4.8b 2020/01/16
+the GHSYSTEM package v4.8c 2020/02/17
 
   globally harmonized system
 
@@ -34,7 +34,7 @@
  - ghsystem_italian.def
  - ghsystem_langtemplate.def
 documentation and README:
- - ghsystem_en.tex, ghsystem_en.pdf,
+ - ghsystem-manual.tex, ghsystem-manual.cls, ghsystem-manual.pdf,
  - README
 --------------------------------------------------------------------------
 If you have any ideas, questions, suggestions or bugs to report, please

Added: trunk/Master/texmf-dist/doc/latex/ghsystem/ghsystem-manual.cls
===================================================================
--- trunk/Master/texmf-dist/doc/latex/ghsystem/ghsystem-manual.cls	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/ghsystem/ghsystem-manual.cls	2020-02-17 22:17:09 UTC (rev 53822)
@@ -0,0 +1,272 @@
+% --------------------------------------------------------------------------
+% the GHSYSTEM package
+%
+%   globally harmonised system
+%
+% --------------------------------------------------------------------------
+% Clemens Niederberger
+% --------------------------------------------------------------------------
+% https://github.org/cgnieder/ghsystem/
+% contact at mychemistry.eu
+% --------------------------------------------------------------------------
+% If you have any ideas, questions, suggestions or bugs to report, please
+% feel free to contact me.
+% --------------------------------------------------------------------------
+% Copyright 2011--2020 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.
+% --------------------------------------------------------------------------
+\ProvidesClass{ghsystem-manual}[2020/02/17]
+
+\LoadClass[load-preamble,add-index]{cnltx-doc}
+\RequirePackage{imakeidx}
+\RequirePackage[utf8]{inputenc}
+
+\RequirePackage{ghsystem,chemmacros}
+
+\setcnltx{
+  package  = {ghsystem},
+  info     = \acl*{ghs} ,
+  url      = https://github.com/cgnieder/ghsystem/ ,
+  authors  = Clemens Niederberger ,
+  email    = contact at mychemistry.eu ,
+  abstract = {%
+    \centering
+    \includegraphics{chemmacros-logo.pdf}
+    \par
+  } ,
+  add-cmds = {
+    chemsetup,
+    ghs, ghslistall, ghspic, ghssetup
+  } ,
+  index-setup = { noclearpage , level = \addsec }
+}
+
+\RequirePackage{booktabs}
+
+\def\libertine at figurestyle{LF}
+\RequirePackage{amsmath}
+\undef\lvert \undef\lVert
+\undef\rvert \undef\rVert
+\RequirePackage[libertine]{newtxmath}
+\def\libertine at figurestyle{OsF}
+
+\RequirePackage[biblatex]{embrac}
+\ChangeEmph{[}[,.02em]{]}[.055em,-.08em]
+\ChangeEmph{(}[-.01em,.04em]{)}[.04em,-.05em]
+
+\RequirePackage[accsupp]{acro}
+\acsetup{
+  long-format  = \scshape ,
+  short-format = \scshape
+}
+
+\chemsetup{
+  greek = newtx ,
+  formula = chemformula ,
+  chemformula/format = \libertineLF
+}
+
+\ghssetup{
+  language = {german,english}
+}
+
+\sisetup{
+  detect-mode=false,
+  mode=text,
+  text-rm=\libertineLF
+}
+
+\RequirePackage{fontawesome}
+\RequirePackage{datetime2}
+\DTMsetup{useregional=numeric,datesep=/}
+\newrobustcmd*\ghsystem at add@version[2]{%
+  \csdef{ghsystem at ver@#2}{%
+    \DTMdate{#1}%
+    \csgdef{ghsystem at ver@#2used}{}%
+    \csdef{ghsystem at ver@#2}{\DTMdate{#1}}%
+  }%
+}
+
+\newrobustcmd*\ghsystem at date[1]{%
+  \ifcsdef{ghsystem at ver@#1used}{}{ (\csuse{ghsystem at ver@#1})}}
+\newrobustcmd*\ghsystem at ifnew[1]{\ifcsstring{c_ghsystem_version_tl}{#1}}
+\newrobustcmd*\ghsystem at NEW{\faStarO\ New}
+
+\renewrobustcmd*\sinceversion[1]{%
+  \ghsystem at ifnew{#1}%
+    {\cnltx at version@note{\textcolor{red}{\ghsystem at NEW}}}%
+    {\cnltx at version@note{\GetTranslation{cnltx-introduced}~#1\ghsystem at date{#1}}}%
+}
+\renewrobustcmd*\changedversion[1]{%
+  \cnltx at version@note{\GetTranslation{cnltx-changed}~#1\ghsystem at date{#1}}%
+}
+
+\newnote*\sincechanged[2]{%
+  \GetTranslation{cnltx-introduced}~#1\ghsystem at date{#1},
+  changed with version~#2\ghsystem at date{#2}\ghsystem at ifnew{#2}{ \ghsystem at NEW}{}%
+}
+
+\RenewDocumentEnvironment{commands}{}
+  {%
+    \cnltx at set@catcode_{12}%
+    \let\command\cnltx at command
+    \cnltxlist
+  }
+  {\endcnltxlist}
+  
+\RequirePackage{tcolorbox,xsimverb}
+\tcbuselibrary{skins,breakable}
+\tcbset{enhanced,enhanced jigsaw}
+
+\newtcolorbox{bewareofthedog}{
+  colback  = white ,
+  colframe = red ,
+  underlay={%
+    \path[draw=none]
+      (interior.south west)
+      rectangle node[red]{\Huge\bfseries !}
+      ([xshift=-4mm]interior.north west);
+    }%
+}
+
+\newtcolorbox{cnltxcode}[1][]{
+  boxrule = 1pt ,
+  colback = cnltxbg ,
+  colframe = cnltx ,
+  arc = 5pt ,
+  beforeafter skip = .5\baselineskip ,%
+  #1%
+}
+
+\newcommand*\ghsystem at readoptions[1]{%
+  \catcode`\^^M=13
+  \ghsystem at read@options{#1}%
+}
+
+\begingroup
+\catcode`\^^M=13
+\gdef\ghsystem at read@options#1#2^^M{%
+  \endgroup
+  \ifblank{#2}{}{\ghsystem at read@options@#2}%
+  #1%
+  \XSIMfilewritestart*{\jobname.tmp}%
+}%
+\endgroup
+\def\ghsystem at read@options@[#1]{\pgfqkeys{/cnltx}{#1}}
+
+\RenewDocumentEnvironment{sourcecode}{}
+  {%
+    \begingroup
+    \ghsystem at readoptions{%
+      \setlength\cnltx at sidebysidewidth
+        {\dimexpr .45\columnwidth -\lst at xleftmargin -\lst at xrightmargin\relax}%
+      \expanded{%
+        \noexpand\lstset{
+          style=cnltx,
+          \ifboolexpe{ bool {cnltx at sidebyside} and not bool {cnltx at codeonly} }
+            {linewidth=\cnltx at sidebysidewidth,}{}%
+          \expandonce\cnltx at local@listings at options
+        }%
+      }%
+      \XSIMgobblechars{2}%
+    }%
+  }
+  {%
+    \XSIMfilewritestop
+    \cnltxcode[breakable]%
+    \lstinputlisting[style=cnltx]{\jobname.tmp}%
+    \endcnltxcode
+  }
+
+\RenewDocumentEnvironment{example}{}
+  {%
+    \begingroup
+    \ghsystem at readoptions{%
+      \setlength\cnltx at sidebysidewidth
+        {\dimexpr .45\columnwidth -\lst at xleftmargin -\lst at xrightmargin\relax}%
+      \expanded{%
+        \noexpand\lstset{
+          style=cnltx,
+          \ifboolexpe{ bool {cnltx at sidebyside} and not bool {cnltx at codeonly} }
+            {linewidth=\cnltx at sidebysidewidth,}{}%
+          \expandonce\cnltx at local@listings at options
+        }%
+      }%
+      \XSIMgobblechars{2}%
+    }%
+  }
+  {%
+    \XSIMfilewritestop
+    \ifbool{cnltx at sidebyside}
+      {%
+        \cnltxcode
+        \noindent
+        \minipage[c]{\cnltx at sidebysidewidth}%
+          \cnltx at pre@source at hook
+          \lstinputlisting[style=cnltx] {\jobname.tmp}%
+          \cnltx at after@source at hook
+        \endminipage\hfill
+        \minipage[c]{\cnltx at sidebysidewidth}%
+          \cnltx at pre@example at hook
+          \input {\jobname.tmp}%
+          \cnltx at after@example at hook
+        \endminipage
+      }
+      {%
+        \cnltxcode[breakable]%
+        \cnltx at pre@source at hook
+        \lstinputlisting{\jobname.tmp}%
+        \cnltx at after@source at hook
+        \tcblower
+        \cnltx at pre@example at hook
+        \input {\jobname.tmp}%
+        \cnltx at after@example at hook
+      }%
+    \endcnltxcode
+  }
+
+\RequirePackage[
+  backend=biber,
+  style=cnltx,
+  sortlocale=en_US,
+  indexing=cite]{biblatex}
+\RequirePackage{csquotes,varioref}
+\defbibheading{bibliography}{\section{References}}
+
+\RequirePackage[biblatex]{embrac}[2012/06/29]
+\ChangeEmph{[}[,.02em]{]}[.055em,-.08em]
+\ChangeEmph{(}[-.01em,.04em]{)}[.04em,-.05em]
+
+\ghsystem at add@version{2012-01-28}{3.0}
+\ghsystem at add@version{2012/01/30}{3.0a}
+\ghsystem at add@version{2012/02/05}{3.0c}
+\ghsystem at add@version{2012/05/13}{3.3a}
+\ghsystem at add@version{2012/05/18}{3.3b}
+\ghsystem at add@version{2012/05/18}{3.3c}
+\ghsystem at add@version{2012/07/24}{3.3d}
+\ghsystem at add@version{2013/02/19}{3.5a}
+\ghsystem at add@version{2013/07/06}{4.0}
+\ghsystem at add@version{2013/12/13}{4.0a}
+\ghsystem at add@version{2014/01/09}{4.2e}
+\ghsystem at add@version{2014/04/08}{4.5}
+\ghsystem at add@version{2014/04/13}{4.5a}
+\ghsystem at add@version{2014/06/30}{4.5b}
+\ghsystem at add@version{2014/08/08}{4.6}
+\ghsystem at add@version{2016/01/15}{4.7}
+\ghsystem at add@version{2016/07/16}{4.8}
+\ghsystem at add@version{2019/09/30}{4.8a}
+\ghsystem at add@version{2020/01/16}{4.8b}
+\ghsystem at add@version{2020/02/17}{4.8c}
+
+\endinput


Property changes on: trunk/Master/texmf-dist/doc/latex/ghsystem/ghsystem-manual.cls
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/ghsystem/ghsystem-manual.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/ghsystem/ghsystem-manual.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/ghsystem/ghsystem-manual.pdf	2020-02-17 22:15:57 UTC (rev 53821)
+++ trunk/Master/texmf-dist/doc/latex/ghsystem/ghsystem-manual.pdf	2020-02-17 22:17:09 UTC (rev 53822)

Property changes on: trunk/Master/texmf-dist/doc/latex/ghsystem/ghsystem-manual.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/ghsystem/ghsystem-manual.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/ghsystem/ghsystem-manual.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/ghsystem/ghsystem-manual.tex	2020-02-17 22:17:09 UTC (rev 53822)
@@ -0,0 +1,445 @@
+% arara: pdflatex
+% arara: biber
+% arara: pdflatex
+% arara: pdflatex
+% --------------------------------------------------------------------------
+% the GHSYSTEM package
+%
+%   globally harmonized system
+%
+% --------------------------------------------------------------------------
+% Clemens Niederberger
+% --------------------------------------------------------------------------
+% https://github.com/cgnieder/ghsystem/
+% contact at mychemistry.eu
+% --------------------------------------------------------------------------
+% If you have any ideas, questions, suggestions or bugs to report, please
+% feel free to contact me.
+% --------------------------------------------------------------------------
+% Copyright 2011--2020 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.
+% --------------------------------------------------------------------------
+\documentclass{ghsystem-manual}
+
+\DeclareAcronym{ghs}{
+  short     = ghs ,
+  long      = Globally Harmonized System of Classification and Labelling of
+    Chemicals ,
+  pdfstring = GHS ,
+  accsupp   = GHS
+}
+\DeclareAcronym{eu}{
+  short     = EU ,
+  long      = European Union ,
+  pdfstring = EU ,
+  accsupp   = EU
+}
+\DeclareAcronym{UN}{
+  short     = un ,
+  long      = United Nations ,
+  pdfstring = UN ,
+  accsupp   = UN
+}
+\DeclareAcronym{dvi}{
+  short     = dvi ,
+  long      = device independent file format ,
+  pdfstring = DVI ,
+  accsupp   = DVO
+}
+\DeclareAcronym{pdf}{
+  short     = pdf ,
+  long      = portable document file ,
+  pdfstring = PDF ,
+  accsupp   = PDF
+}
+
+
+\defbibheading{bibliography}{\addsec{References}}
+\addbibresource{cnltx.bib}
+\addbibresource{\jobname.bib}
+\begin{filecontents*}[overwrite]{\jobname.bib}
+ at misc{eu:ghsystem_regulation,
+  author    = {{The European Parliament and The Council of the European Union}},
+  title     = {Regulation (EC) No 1272/2008 of the European Parliament and of
+    the Council} ,
+  shorthand = {EuP} ,
+  subtitle = {on classification, labelling and packaging of substances and
+    mixtures, amending and repealing Directives 67/548/EEC and 1999/45/EC, and
+    amending Regulation (EC) No 1907/2006} ,
+  journal   = {Official Journal of the European Union} ,
+  date      = {2008-12-16}
+}
+ at online{unece:ghsystem_implementation,
+  author   = {{United Nations Economic Commission for Europe}} ,
+  title    = {GHS Implementation} ,
+  url      =
+    {http://www.unece.org/trans/danger/publi/ghs/implementation_e.html} ,
+  urldate  = {2012-03-20} ,
+  date     = {2012-03-20}
+}
+\end{filecontents*}
+
+\newcommand*\tablehead[1]{\textrm{\bfseries#1}}
+
+\begin{document}
+
+\section{Introduction}
+As a chemist you are probably aware of the fact that the \acl{UN} have
+developed the \ac{ghs} as a global replacement for the various different
+systems in different countries.  While it has not been implemented by all
+countries yet~\cite{unece:ghsystem_implementation}, it is only a matter of
+time.
+
+The package \ghsystem{} now enables you to typeset all the hazard and
+precautionary statements and pictograms in a very easy way.  The statements
+are taken from \acs{eu} regulation 1272/2008~\cite{eu:ghsystem_regulation}.
+
+\section{Licence and Requirements}
+\license
+
+\ghsystem\ loads the following packages:
+\pkg{expl3}\footnote{\CTANurl{l3kernel}}~\cite{bnd:l3kernel}, \pkg{xparse} and
+\pkg{l3keys2e}\footnote{\CTANurl{l3packages}}~\cite{bnd:l3packages},
+\needpackage{chemmacros}~\cite{pkg:translations},
+\needpackage{translations}~\cite{pkg:translations},
+\needpackage{siunitx}~\cite{pkg:siunitx},
+\needpackage{graphicx}~\cite{pkg:graphicx},
+\needpackage{longtable}~\cite{pkg:longtable} and
+\needpackage{ifpdf}~\cite{pkg:ifpdf}.
+
+\section{Setup}
+% TODO
+% The simplest way is to load \pkg{chemmacros}~\cite{pkg:chemmacros} which loads
+% \ghsystem{} implicitily.  All of \ghsystem's options belong to
+% \pkg{chemmacros}' module \module{ghsystem}.  This means they can be setup with
+% \begin{sourcecode}
+%   \chemsetup[ghsystem]{<options>} or
+%   \chemsetup{ghsystem/<option1>,ghsystem/<option2>}
+% \end{sourcecode}
+% \sinceversion{4.0}However, \ghsystem{} can be loaded as a standalone package
+% and thus provides its own setup command:
+% \begin{commands}
+%   \command{ghssetup}[\marg{options}]
+%     Setup command for \ghsystem.
+% \end{commands}
+
+\section{Get Hazard and Precautionary Statements}
+\subsection{Simple Statements}
+The general usage is simple: you use the command
+\begin{commands}
+  \command{ghs}[\sarg\oarg{options}\marg{type}\marg{number}]
+    Get statement number \meta{number} of type \meta{type}.
+\end{commands}
+There are three types available: \code{h}, \code{euh} and \code{p}.  The
+\meta{type} argument is case insensitive, so just type them in as you like.
+\begin{example}[side-by-side]
+  \ghs{h}{200} \par
+  \ghs{H}{224} \par
+  \ghs{euh}{001} \par
+  \ghs{Euh}{202} \par
+  \ghs{p}{201}
+\end{example}
+
+The starred version hides the identifier and only gives the statement.  If you
+want to hide the statement itself instead you can use the option:
+\begin{options}
+  \keybool{hide}\Default{false}
+    Hide the statement.
+\end{options}
+
+There is an option to customize the output, too.
+\begin{options}
+  \keyval{space}{space command}\Default
+    Space between \meta{type} and \meta{number}.
+\end{options}
+\begin{example}[side-by-side]
+  \ghs{h}{200} \par
+  \ghs[space=\,]{h}{200} \par
+  \ghs*{h}{200} \par
+  \ghs[hide]{h}{200}
+\end{example}
+
+\subsection{Statements with Placeholders}
+Some of the statements contain placeholders.  They can be one of the
+following:
+\begin{itemize}
+  \item \textit{\textless state route of exposure if it is conclusively proven
+      that no other routes of exposure cause the hazard\textgreater}
+  \item \textit{\textless state specific effect if known\textgreater}
+  \item \textit{\textless or state all organs affected, if known\textgreater}
+  \item \textit{\textless name of sensitising substance\textgreater}
+\end{itemize}
+
+Except the last one which needs to be filled in, they are hidden per default.
+They can be made visible with the option
+\begin{options}
+  \keybool{fill-in}\Default{false}
+    Show placeholders.
+\end{options}
+\begin{example}
+  \ghs{h}{340} \par
+  \ghs[fill-in]{h}{340} \par
+  \ghs{h}{360} \par
+  \ghs[fill-in]{h}{360} \par
+  \ghs{h}{370} \par
+  \ghs[fill-in]{h}{370} \par
+  \ghs{euh}{208} \par
+  \ghs[fill-in]{euh}{208}
+\end{example}
+
+These placeholders can be replaced with one of these options:
+\begin{options}
+  \keyval{exposure}{text}\Default
+    exposure placeholder
+  \keyval{effect}{text}\Default
+    effect placeholder
+  \keyval{organs}{text}\Default
+    organ placeholder
+  \keyval{substance}{text}\Default
+    substance placeholder
+\end{options}
+\begin{example}
+  \ghs[exposure=This is how you get exposed.]{h}{340} \par
+  \ghs[effect=These are the effects.]{h}{360} \par
+  \ghs[organs=to this organ]{h}{370} \par
+  \ghs[substance=substance]{euh}{208}
+\end{example}
+
+\subsection{Statements with Gaps}
+Some of the statements have gaps that can be filled.
+\begin{example}[side-by-side]
+  \ghs{p}{301} \par
+  \ghs{p}{401} \par
+  \ghs{p}{411} \par
+  \ghs{p}{413}
+\end{example}
+
+These gaps can be filled using these options:
+\begin{options}
+  \keyval{text}{text}
+    Fill the \code{text} gap.
+  \keyval{dots}{text}
+    Fill the \code{dots} gap.
+  \keyval{C-temperature}{num}
+    Fill the Celsius temperature gap.
+  \keyval{F-temperature}{num}
+    Fill the Fahrenheit temperature gap.
+  \keyval{kg-mass}{num}
+    Fill the \si{\GHSkilogram} mass gap.
+  \keyval{lbs-mass}{num}
+    Fill the \si{\GHSpounds} mass gap.
+\end{options}
+\begin{example}
+  \ghs[text=contact physician!]{p}{301} \par
+  \ghs[dots=here]{p}{401} \par
+  \ghs[C-temperature=50, F-temperature=122]{p}{411} \par
+  \ghs[kg-mass=5.0, lbs-mass=11, C-temperature=50, F-temperature=122]{p}{413}
+\end{example}
+
+\subsection{Combined Statements}
+There are some combinations of statements.  They are input with a \code{+}
+between the numbers:
+\begin{example}
+  \ghs{p}{235+410} \\
+  \ghs{p}{301+330+331}
+\end{example}
+
+Note that you can only get combinations that officially exist.  \emph{You
+  can't combine freely}.
+
+\section{Pictograms}
+\subsection{The Pictures}
+The \ac{ghs} defines a number of pictograms:
+
+\ghspic{explos} \ghspic{flame} \ghspic{flame-O} \ghspic{bottle} \ghspic{acid}
+\ghspic{skull} \ghspic{exclam} \ghspic{health} \ghspic{aqpol}
+
+\begin{commands}
+  \command{ghspic}[\oarg{options}\marg{name}]
+    Load pictogram \meta{name}.
+\end{commands}
+Table~\ref{tab:ghs_pictograms} shows all available pictograms and their names.
+To be more precise: it shows the names to use with the \cs{ghspic} command.
+The file names are \code{ghsystem\_\meta{name}.\meta{filetype}} where
+\meta{filetype} is \code{eps}, \code{pdf}, \code{jpg} or \code{png}, see also
+section~\ref{ssec:picture_type}.
+\begin{example}[side-by-side]
+  \ghspic{skull}
+\end{example}
+
+If you don't like the default size you can change it using this option:
+\begin{options}
+  \keyval{scale}{factor}\Default{1}
+    Scales the pictogram.
+\end{options}
+The pictures are actually quite large.  The default setting scales them by a
+factor of $\frac{1}{20}$.
+\begin{example}[side-by-side]
+  \ghspic[scale=2]{skull}
+\end{example}
+
+If you want to use some specific \cs*{includegraphics} options, \eg, if
+you want to rotate the pictogram for some reason, use this option:
+\begin{options}
+  \keyval{includegraphics}{includegraphics keyvals}
+    Pass options to the underlying \cs*{includegraphics} command.
+\end{options}
+\begin{example}
+  \ghspic[includegraphics={angle=90}]{skull}
+\end{example}
+
+\begin{longtable}{>{\ttfamily}ll>{\ttfamily}ll}
+    \caption{All available \ac{ghs} pictograms.\label{tab:ghs_pictograms}} \\
+  \toprule
+    \normalfont\bfseries name & \bfseries pictogram &
+    \normalfont\bfseries name & \bfseries pictogram \\
+  \midrule\endfirsthead
+  \toprule
+    \normalfont\bfseries name & \bfseries pictogram &
+    \normalfont\bfseries name & \bfseries pictogram \\
+  \midrule\endhead
+  \bottomrule\endfoot
+  explos          & \ghspic{explos}          & explos-1        & \ghspic{explos-1} \\
+  explos-2        & \ghspic{explos-2}        & explos-3        & \ghspic{explos-3} \\
+  explos-4        & \ghspic{explos-4}        & explos-5        & \ghspic{explos-5} \\
+  explos-6        & \ghspic{explos-6}        & & \\
+  flame           & \ghspic{flame}           & flame-2-white   & \ghspic{flame-2-white} \\
+  flame-2-black   & \ghspic{flame-2-black}   & flame-3-white   & \ghspic{flame-3-white} \\
+  flame-3-black   & \ghspic{flame-3-black}   & flame-4-1       & \ghspic{flame-4-1} \\
+  flame-4-2       & \ghspic{flame-4-2}       &
+    flame-4-3-white & \ghspic{flame-4-3-white} \\
+  flame-4-3-black & \ghspic{flame-4-3-black} &
+    flame-5-2-white & \ghspic{flame-5-2-white} \\
+  flame-5-2-black & \ghspic{flame-5-2-black} & & \\
+  flame-O         & \ghspic{flame-O}         & flame-O-5-1     & \ghspic{flame-O-5-1} \\
+  bottle          & \ghspic{bottle}          & bottle-2-black  & \ghspic{bottle-2-white} \\
+  bottle-2-white  & \ghspic{bottle-2-black}  & & \\
+  acid            & \ghspic{acid}            & acid-8          & \ghspic{acid-8} \\
+  skull           & \ghspic{skull}           & skull-2         & \ghspic{skull-2} \\
+  skull-6         & \ghspic{skull-6}         & & \\
+  exclam          & \ghspic{exclam}          & & \\
+  health          & \ghspic{health}          & & \\
+  aqpol           & \ghspic{aqpol}           & & \\
+\end{longtable}
+
+\subsection{Picture Type Depending on Engine}\label{ssec:picture_type}
+As you probably know you can't use every picture type with every compiler
+engine.  \pdfTeX{} in \acs{dvi} mode \emph{needs} \code{eps} pictures while
+\pdfTeX{} in \acs{pdf} mode, \XeTeX{} and \LuaTeX{} convert \code{eps}
+pictures into \code{pdf} files, given they have the rights to write in the
+directory the pictures are saved in.
+
+However, the latter can include \code{jpg} and \code{png} without any
+problems, while \pdfTeX{} in \acs{dvi} mode can't.
+
+To resolve this \ghsystem\ tests which engine is used and if \pdfTeX{} which
+mode is used and then chooses either \code{eps} or \code{pdf} for the
+pictograms.  You are free to choose the picture type yourself with the option
+\begin{options}
+  \keychoice{pic-type}{eps,pdf,jpg,png}
+    Choose the picture type.
+\end{options}
+
+\section{Available Languages}\label{sec:ghsystem_language}
+Right now the H and P statements are available in English,
+French\footnote{Thanks to Bréal Frédéric and Beaude Aurélien!}, German,
+Italian\footnote{Thanks to Jonas Rivetti!} and Spanish\footnote{Thanks to
+  Ignacio Fernández Galván!}.  The package adapts \pkg{chemmacros}' option
+\option{language} or if the option hasn't been used recognizes the language
+settings made with \pkg{babel} or \pkg{polyglossia}.  To be more precise: the
+language selected at begin document is recognized.  Later changes won't affect
+\ghsystem.  If you want to use different languages you have to use \ghsystem's
+language option then.
+
+You can also choose the language explicitly.
+\begin{options}
+  \keyval{language}{lang}\Default{english}
+    Selects a language and if called in the preamble also loads the necessary
+    language file if it hasn't been loaded, yet.  If the chosen file doesn't
+    exist it falls back to  \code{english}.  Currently available choices are
+    English, French, German, Italian, and Spanish.  \meta{lang} can be a comma
+    separated list.  Then the last language in the list will be the active
+    one.  If you plan to switch languages within the document then you should
+    make sure to load all needed languages in the preamble first.
+\end{options}
+\begin{example}[side-by-side]
+  \ghs{h}{201}
+
+  \ghssetup{language=german}
+  \ghs{h}{201}
+\end{example}
+
+% There is another alternative:
+% \begin{commands}
+%   \command{loadghsystemlanguage}[\marg{language}]
+%     \sinceversion{4.0}Load the language used by \ghsystem.
+% \end{commands}
+
+I will add other languages some time in future.  This may take a while,
+though.  If you would be willing to contribute and write the statements of
+another language please feel free to contact
+me\footnote{\href{mailto:contact at mychemistry.eu}{contact at mychemistry.eu}}.
+Your \TeX\ distribution should contain a file
+\code{ghsystem\_langtemplate.def} which \emph{should} explain all immediate
+questions and can be used as a basis for a new language file.
+
+\section{List of All Statements}
+If for some reason you want to list all sentences you can use
+\begin{commands}
+  \command{ghslistall}[\oarg{options}]
+    Print a table with all defined statements.
+\end{commands}
+
+This command has a number of options to customize the table, which is created
+with the \env{longtable} environment of the \pkg{longtable} package.
+\begin{options}
+  \keyval{table-head-number}{text}\Default{Identifier}
+    The table head for the number.
+  \keyval{table-head-text}{text}\Default{Statement}
+    The table head for the statement.
+  \keyval{table-next-page}{text}\Default{continues on next page}
+    The hint for a next page.
+  \keyval{table-caption}{text}\Default{All H, EUH, and P Statements.}
+    The \meta{text} in \cs*{caption}\marg{text}.
+  \keyval{table-caption-short}{short text}\Default
+    The \meta{short text} in \cs*{caption}\oarg{short text}\marg{text}.
+  \keyval{table-label}{text}\Default{tab:ghs-hp-statements}
+    The label to refer to the table with \cs*{ref} and similar commands.
+  \keyval{table-row-sep}{dim}\Default{3pt}
+    The separation of the table rows. A \TeX\ dimension.
+  \keychoice{table-rules}{\default{default},booktabs,none}\Default{default}
+    The style of the horizontal rules in the table.  \code{default} uses
+    \cs*{hline}, \code{booktabs} uses \cs*{toprule}, \cs*{midrule} and
+    \cs*{bottomrule}, resp.  This option needs the \pkg{booktabs} package
+    which you have to load yourself then.
+  \keychoice{table-top-head-rule}{\default{default},booktabs,none}\Default{default}
+    Change top rule explicitly.
+  \keychoice{table-head-rule}{\default{default},booktabs,none}\Default{default}
+    Change rule below head explicitly.
+  \keychoice{table-foot-rule}{\default{default},booktabs,none}\Default{default}
+    Change foot rule explicitly.
+  \keychoice{table-last-foot-rule}{\default{default},booktabs,none}\Default{default}
+    Change last foot rule explicitly.
+\end{options}
+
+The code below shows how table~\ref{tab:ghs-hp-statements} was created:
+\begin{sourcecode}
+  \ghslistall[fill-in,table-rules=booktabs]
+\end{sourcecode}
+
+\ghslistall[fill-in,table-rules=booktabs]
+
+\printbibliography
+
+\end{document}


Property changes on: trunk/Master/texmf-dist/doc/latex/ghsystem/ghsystem-manual.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/doc/latex/ghsystem/ghsystem_en.pdf
===================================================================
(Binary files differ)

Deleted: trunk/Master/texmf-dist/doc/latex/ghsystem/ghsystem_en.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/ghsystem/ghsystem_en.tex	2020-02-17 22:15:57 UTC (rev 53821)
+++ trunk/Master/texmf-dist/doc/latex/ghsystem/ghsystem_en.tex	2020-02-17 22:17:09 UTC (rev 53822)
@@ -1,494 +0,0 @@
-% arara: pdflatex
-% arara: biber
-% arara: pdflatex
-% arara: pdflatex
-% --------------------------------------------------------------------------
-% the GHSYSTEM package
-%
-%   globally harmonized system
-%
-% --------------------------------------------------------------------------
-% Clemens Niederberger
-% --------------------------------------------------------------------------
-% https://github.com/cgnieder/ghsystem/
-% contact at mychemistry.eu
-% --------------------------------------------------------------------------
-% If you have any ideas, questions, suggestions or bugs to report, please
-% feel free to contact me.
-% --------------------------------------------------------------------------
-% Copyright 2011--2020 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.
-% --------------------------------------------------------------------------
-\documentclass[load-preamble+]{cnltx-doc}
-\usepackage[utf8]{inputenc}
-% \usepackage[greek=newtx]{chemmacros}
-\usepackage{ghsystem}
-\setcnltx{
-  package  = {ghsystem},
-  info     = \acl*{ghs} ,
-  url      = https://github.com/cgnieder/ghsystem/ ,
-  authors  = Clemens Niederberger ,
-  email    = contact at mychemistry.eu ,
-  abstract = {%
-    \centering
-    \includegraphics{chemmacros-logo.pdf}
-    \par
-  } ,
-  add-cmds = {
-    chemsetup,
-    ghs, ghslistall, ghspic, ghssetup
-  } ,
-  index-setup = noclearpage
-}
-
-\usepackage{booktabs}
-
-\expandafter\def\csname libertine at figurestyle\endcsname{LF}
-\usepackage[libertine]{newtxmath}
-\expandafter\def\csname libertine at figurestyle\endcsname{OsF}
-
-\usepackage[biblatex]{embrac}
-\ChangeEmph{[}[,.02em]{]}[.055em,-.08em]
-\ChangeEmph{(}[-.01em,.04em]{)}[.04em,-.05em]
-
-\usepackage[accsupp]{acro}
-\acsetup{
-  long-format  = \scshape ,
-  short-format = \scshape
-}
-\DeclareAcronym{ghs}{
-  short     = ghs ,
-  long      = Globally Harmonized System of Classification and Labelling of
-    Chemicals ,
-  pdfstring = GHS ,
-  accsupp   = GHS
-}
-\DeclareAcronym{eu}{
-  short     = EU ,
-  long      = European Union ,
-  pdfstring = EU ,
-  accsupp   = EU
-}
-\DeclareAcronym{UN}{
-  short     = un ,
-  long      = United Nations ,
-  pdfstring = UN ,
-  accsupp   = UN
-}
-\DeclareAcronym{dvi}{
-  short     = dvi ,
-  long      = device independent file format ,
-  pdfstring = DVI ,
-  accsupp   = DVO
-}
-\DeclareAcronym{pdf}{
-  short     = pdf ,
-  long      = portable document file ,
-  pdfstring = PDF ,
-  accsupp   = PDF
-}
-
-\chemsetup{
-  greek = newtx ,
-  formula = chemformula ,
-  chemformula/format = \libertineLF
-}
-
-\ghssetup{
-  language = {german,english}
-}
-
-\sisetup{
-  detect-mode=false,
-  mode=text,
-  text-rm=\libertineLF
-}
-
-\usepackage{filecontents}
-
-\defbibheading{bibliography}{\addsec{References}}
-\addbibresource{\jobname.bib}
-\begin{filecontents*}{\jobname.bib}
- at misc{eu:ghsystem_regulation,
-  author    = {{The European Parliament and The Council of the European Union}},
-  title     = {Regulation (EC) No 1272/2008 of the European Parliament and of
-    the Council} ,
-  shorthand = {EuP} ,
-  subtitle = {on classification, labelling and packaging of substances and
-    mixtures, amending and repealing Directives 67/548/EEC and 1999/45/EC, and
-    amending Regulation (EC) No 1907/2006} ,
-  journal   = {Official Journal of the European Union} ,
-  date      = {2008-12-16}
-}
- at online{unece:ghsystem_implementation,
-  author   = {{United Nations Economic Commission for Europe}} ,
-  title    = {GHS Implementation} ,
-  url      =
-    {http://www.unece.org/trans/danger/publi/ghs/implementation_e.html} ,
-  urldate  = {2012-03-20} ,
-  date     = {2012-03-20}
-}
-\end{filecontents*}
-
-\newcommand*\tablehead[1]{\textrm{\bfseries#1}}
-
-\begin{document}
-
-\section{Introduction}
-As a chemist you are probably aware of the fact that the \acl{UN} have
-developed the \ac{ghs} as a global replacement for the various different
-systems in different countries.  While it has not been implemented by all
-countries yet~\cite{unece:ghsystem_implementation}, it is only a matter of
-time.
-
-The package \ghsystem{} now enables you to typeset all the hazard and
-precautionary statements and pictograms in a very easy way.  The statements
-are taken from \acs{eu} regulation 1272/2008~\cite{eu:ghsystem_regulation}.
-
-\section{Licence and Requirements}
-\license
-
-\ghsystem\ loads the following packages:
-\pkg{expl3}\footnote{\CTANurl{l3kernel}}~\cite{bnd:l3kernel}, \pkg{xparse} and
-\pkg{l3keys2e}\footnote{\CTANurl{l3packages}}~\cite{bnd:l3packages},
-\needpackage{chemmacros}~\cite{pkg:translations},
-\needpackage{translations}~\cite{pkg:translations},
-\needpackage{siunitx}~\cite{pkg:siunitx},
-\needpackage{graphicx}~\cite{pkg:graphicx},
-\needpackage{longtable}~\cite{pkg:longtable} and
-\needpackage{ifpdf}~\cite{pkg:ifpdf}.
-
-\section{Setup}
-% TODO
-% The simplest way is to load \pkg{chemmacros}~\cite{pkg:chemmacros} which loads
-% \ghsystem{} implicitily.  All of \ghsystem's options belong to
-% \pkg{chemmacros}' module \module{ghsystem}.  This means they can be setup with
-% \begin{sourcecode}
-%   \chemsetup[ghsystem]{<options>} or
-%   \chemsetup{ghsystem/<option1>,ghsystem/<option2>}
-% \end{sourcecode}
-% \sinceversion{4.0}However, \ghsystem{} can be loaded as a standalone package
-% and thus provides its own setup command:
-% \begin{commands}
-%   \command{ghssetup}[\marg{options}]
-%     Setup command for \ghsystem.
-% \end{commands}
-
-\section{Get Hazard and Precautionary Statements}
-\subsection{Simple Statements}
-The general usage is simple: you use the command
-\begin{commands}
-  \command{ghs}[\sarg\oarg{options}\marg{type}\marg{number}]
-    Get statement number \meta{number} of type \meta{type}.
-\end{commands}
-There are three types available: \code{h}, \code{euh} and \code{p}.  The
-\meta{type} argument is case insensitive, so just type them in as you like.
-\begin{example}[side-by-side]
-  \ghs{h}{200} \par
-  \ghs{H}{224} \par
-  \ghs{euh}{001} \par
-  \ghs{Euh}{202} \par
-  \ghs{p}{201}
-\end{example}
-
-The starred version hides the identifier and only gives the statement.  If you
-want to hide the statement itself instead you can use the option:
-\begin{options}
-  \keybool{hide}\Default{false}
-    Hide the statement.
-\end{options}
-
-There is an option to customize the output, too.
-\begin{options}
-  \keyval{space}{space command}\Default
-    Space between \meta{type} and \meta{number}.
-\end{options}
-\begin{example}[side-by-side]
-  \ghs{h}{200} \par
-  \ghs[space=\,]{h}{200} \par
-  \ghs*{h}{200} \par
-  \ghs[hide]{h}{200}
-\end{example}
-
-\subsection{Statements with Placeholders}
-Some of the statements contain placeholders.  They can be one of the
-following:
-\begin{itemize}
-  \item \textit{\textless state route of exposure if it is conclusively proven
-      that no other routes of exposure cause the hazard\textgreater}
-  \item \textit{\textless state specific effect if known\textgreater}
-  \item \textit{\textless or state all organs affected, if known\textgreater}
-  \item \textit{\textless name of sensitising substance\textgreater}
-\end{itemize}
-
-Except the last one which needs to be filled in, they are hidden per default.
-They can be made visible with the option
-\begin{options}
-  \keybool{fill-in}\Default{false}
-    Show placeholders.
-\end{options}
-\begin{example}
-  \ghs{h}{340} \par
-  \ghs[fill-in]{h}{340} \par
-  \ghs{h}{360} \par
-  \ghs[fill-in]{h}{360} \par
-  \ghs{h}{370} \par
-  \ghs[fill-in]{h}{370} \par
-  \ghs{euh}{208} \par
-  \ghs[fill-in]{euh}{208}
-\end{example}
-
-These placeholders can be replaced with one of these options:
-\begin{options}
-  \keyval{exposure}{text}\Default
-    exposure placeholder
-  \keyval{effect}{text}\Default
-    effect placeholder
-  \keyval{organs}{text}\Default
-    organ placeholder
-  \keyval{substance}{text}\Default
-    substance placeholder
-\end{options}
-\begin{example}
-  \ghs[exposure=This is how you get exposed.]{h}{340} \par
-  \ghs[effect=These are the effects.]{h}{360} \par
-  \ghs[organs=to this organ]{h}{370} \par
-  \ghs[substance=substance]{euh}{208}
-\end{example}
-
-\subsection{Statements with Gaps}
-Some of the statements have gaps that can be filled.
-\begin{example}[side-by-side]
-  \ghs{p}{301} \par
-  \ghs{p}{401} \par
-  \ghs{p}{411} \par
-  \ghs{p}{413}
-\end{example}
-
-These gaps can be filled using these options:
-\begin{options}
-  \keyval{text}{text}
-    Fill the \code{text} gap.
-  \keyval{dots}{text}
-    Fill the \code{dots} gap.
-  \keyval{C-temperature}{num}
-    Fill the Celsius temperature gap.
-  \keyval{F-temperature}{num}
-    Fill the Fahrenheit temperature gap.
-  \keyval{kg-mass}{num}
-    Fill the \si{\GHSkilogram} mass gap.
-  \keyval{lbs-mass}{num}
-    Fill the \si{\GHSpounds} mass gap.
-\end{options}
-\begin{example}
-  \ghs[text=contact physician!]{p}{301} \par
-  \ghs[dots=here]{p}{401} \par
-  \ghs[C-temperature=50, F-temperature=122]{p}{411} \par
-  \ghs[kg-mass=5.0, lbs-mass=11, C-temperature=50, F-temperature=122]{p}{413}
-\end{example}
-
-\subsection{Combined Statements}
-There are some combinations of statements.  They are input with a \code{+}
-between the numbers:
-\begin{example}
-  \ghs{p}{235+410} \\
-  \ghs{p}{301+330+331}
-\end{example}
-
-Note that you can only get combinations that officially exist.  \emph{You
-  can't combine freely}.
-
-\section{Pictograms}
-\subsection{The Pictures}
-The \ac{ghs} defines a number of pictograms:
-
-\ghspic{explos} \ghspic{flame} \ghspic{flame-O} \ghspic{bottle} \ghspic{acid}
-\ghspic{skull} \ghspic{exclam} \ghspic{health} \ghspic{aqpol}
-
-\begin{commands}
-  \command{ghspic}[\oarg{options}\marg{name}]
-    Load pictogram \meta{name}.
-\end{commands}
-Table~\ref{tab:ghs_pictograms} shows all available pictograms and their names.
-To be more precise: it shows the names to use with the \cs{ghspic} command.
-The file names are \code{ghsystem\_\meta{name}.\meta{filetype}} where
-\meta{filetype} is \code{eps}, \code{pdf}, \code{jpg} or \code{png}, see also
-section~\ref{ssec:picture_type}.
-\begin{example}[side-by-side]
-  \ghspic{skull}
-\end{example}
-
-If you don't like the default size you can change it using this option:
-\begin{options}
-  \keyval{scale}{factor}\Default{1}
-    Scales the pictogram.
-\end{options}
-The pictures are actually quite large.  The default setting scales them by a
-factor of $\frac{1}{20}$.
-\begin{example}[side-by-side]
-  \ghspic[scale=2]{skull}
-\end{example}
-
-If you want to use some specific \cs*{includegraphics} options, \eg, if
-you want to rotate the pictogram for some reason, use this option:
-\begin{options}
-  \keyval{includegraphics}{includegraphics keyvals}
-    Pass options to the underlying \cs*{includegraphics} command.
-\end{options}
-\begin{example}
-  \ghspic[includegraphics={angle=90}]{skull}
-\end{example}
-
-\begin{longtable}{>{\ttfamily}ll>{\ttfamily}ll}
-    \caption{All available \ac{ghs} pictograms.\label{tab:ghs_pictograms}} \\
-  \toprule
-    \normalfont\bfseries name & \bfseries pictogram &
-    \normalfont\bfseries name & \bfseries pictogram \\
-  \midrule\endfirsthead
-  \toprule
-    \normalfont\bfseries name & \bfseries pictogram &
-    \normalfont\bfseries name & \bfseries pictogram \\
-  \midrule\endhead
-  \bottomrule\endfoot
-  explos          & \ghspic{explos}          & explos-1        & \ghspic{explos-1} \\
-  explos-2        & \ghspic{explos-2}        & explos-3        & \ghspic{explos-3} \\
-  explos-4        & \ghspic{explos-4}        & explos-5        & \ghspic{explos-5} \\
-  explos-6        & \ghspic{explos-6}        & & \\
-  flame           & \ghspic{flame}           & flame-2-white   & \ghspic{flame-2-white} \\
-  flame-2-black   & \ghspic{flame-2-black}   & flame-3-white   & \ghspic{flame-3-white} \\
-  flame-3-black   & \ghspic{flame-3-black}   & flame-4-1       & \ghspic{flame-4-1} \\
-  flame-4-2       & \ghspic{flame-4-2}       &
-    flame-4-3-white & \ghspic{flame-4-3-white} \\
-  flame-4-3-black & \ghspic{flame-4-3-black} &
-    flame-5-2-white & \ghspic{flame-5-2-white} \\
-  flame-5-2-black & \ghspic{flame-5-2-black} & & \\
-  flame-O         & \ghspic{flame-O}         & flame-O-5-1     & \ghspic{flame-O-5-1} \\
-  bottle          & \ghspic{bottle}          & bottle-2-black  & \ghspic{bottle-2-white} \\
-  bottle-2-white  & \ghspic{bottle-2-black}  & & \\
-  acid            & \ghspic{acid}            & acid-8          & \ghspic{acid-8} \\
-  skull           & \ghspic{skull}           & skull-2         & \ghspic{skull-2} \\
-  skull-6         & \ghspic{skull-6}         & & \\
-  exclam          & \ghspic{exclam}          & & \\
-  health          & \ghspic{health}          & & \\
-  aqpol           & \ghspic{aqpol}           & & \\
-\end{longtable}
-
-\subsection{Picture Type Depending on Engine}\label{ssec:picture_type}
-As you probably know you can't use every picture type with every compiler
-engine.  \pdfTeX{} in \acs{dvi} mode \emph{needs} \code{eps} pictures while
-\pdfTeX{} in \acs{pdf} mode, \XeTeX{} and \LuaTeX{} convert \code{eps}
-pictures into \code{pdf} files, given they have the rights to write in the
-directory the pictures are saved in.
-
-However, the latter can include \code{jpg} and \code{png} without any
-problems, while \pdfTeX{} in \acs{dvi} mode can't.
-
-To resolve this \ghsystem\ tests which engine is used and if \pdfTeX{} which
-mode is used and then chooses either \code{eps} or \code{pdf} for the
-pictograms.  You are free to choose the picture type yourself with the option
-\begin{options}
-  \keychoice{pic-type}{eps,pdf,jpg,png}
-    Choose the picture type.
-\end{options}
-
-\section{Available Languages}\label{sec:ghsystem_language}
-Right now the H and P statements are available in English,
-French\footnote{Thanks to Bréal Frédéric and Beaude Aurélien!}, German,
-Italian\footnote{Thanks to Jonas Rivetti!} and Spanish\footnote{Thanks to
-  Ignacio Fernández Galván!}.  The package adapts \pkg{chemmacros}' option
-\option{language} or if the option hasn't been used recognizes the language
-settings made with \pkg{babel} or \pkg{polyglossia}.  To be more precise: the
-language selected at begin document is recognized.  Later changes won't affect
-\ghsystem.  If you want to use different languages you have to use \ghsystem's
-language option then.
-
-You can also choose the language explicitly.
-\begin{options}
-  \keyval{language}{lang}\Default{english}
-    Selects a language and if called in the preamble also loads the necessary
-    language file if it hasn't been loaded, yet.  If the chosen file doesn't
-    exist it falls back to  \code{english}.  Currently available choices are
-    English, French, German, Italian, and Spanish.  \meta{lang} can be a comma
-    separated list.  Then the last language in the list will be the active
-    one.  If you plan to switch languages within the document then you should
-    make sure to load all needed languages in the preamble first.
-\end{options}
-\begin{example}[side-by-side]
-  \ghs{h}{201}
-
-  \ghssetup{language=german}
-  \ghs{h}{201}
-\end{example}
-
-% There is another alternative:
-% \begin{commands}
-%   \command{loadghsystemlanguage}[\marg{language}]
-%     \sinceversion{4.0}Load the language used by \ghsystem.
-% \end{commands}
-
-I will add other languages some time in future.  This may take a while,
-though.  If you would be willing to contribute and write the statements of
-another language please feel free to contact
-me\footnote{\href{mailto:contact at mychemistry.eu}{contact at mychemistry.eu}}.
-Your \TeX\ distribution should contain a file
-\code{ghsystem\_langtemplate.def} which \emph{should} explain all immediate
-questions and can be used as a basis for a new language file.
-
-\section{List of All Statements}
-If for some reason you want to list all sentences you can use
-\begin{commands}
-  \command{ghslistall}[\oarg{options}]
-    Print a table with all defined statements.
-\end{commands}
-
-This command has a number of options to customize the table, which is created
-with the \env{longtable} environment of the \pkg{longtable} package.
-\begin{options}
-  \keyval{table-head-number}{text}\Default{Identifier}
-    The table head for the number.
-  \keyval{table-head-text}{text}\Default{Statement}
-    The table head for the statement.
-  \keyval{table-next-page}{text}\Default{continues on next page}
-    The hint for a next page.
-  \keyval{table-caption}{text}\Default{All H, EUH, and P Statements.}
-    The \meta{text} in \cs*{caption}\marg{text}.
-  \keyval{table-caption-short}{short text}\Default
-    The \meta{short text} in \cs*{caption}\oarg{short text}\marg{text}.
-  \keyval{table-label}{text}\Default{tab:ghs-hp-statements}
-    The label to refer to the table with \cs*{ref} and similar commands.
-  \keyval{table-row-sep}{dim}\Default{3pt}
-    The separation of the table rows. A \TeX\ dimension.
-  \keychoice{table-rules}{\default{default},booktabs,none}\Default{default}
-    The style of the horizontal rules in the table.  \code{default} uses
-    \cs*{hline}, \code{booktabs} uses \cs*{toprule}, \cs*{midrule} and
-    \cs*{bottomrule}, resp.  This option needs the \pkg{booktabs} package
-    which you have to load yourself then.
-  \keychoice{table-top-head-rule}{\default{default},booktabs,none}\Default{default}
-    Change top rule explicitly.
-  \keychoice{table-head-rule}{\default{default},booktabs,none}\Default{default}
-    Change rule below head explicitly.
-  \keychoice{table-foot-rule}{\default{default},booktabs,none}\Default{default}
-    Change foot rule explicitly.
-  \keychoice{table-last-foot-rule}{\default{default},booktabs,none}\Default{default}
-    Change last foot rule explicitly.
-\end{options}
-
-The code below shows how table~\ref{tab:ghs-hp-statements} was created:
-\begin{sourcecode}
-  \ghslistall[fill-in,table-rules=booktabs]
-\end{sourcecode}
-
-\ghslistall[fill-in,table-rules=booktabs]
-
-\end{document}

Modified: trunk/Master/texmf-dist/tex/latex/ghsystem/ghsystem.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ghsystem/ghsystem.sty	2020-02-17 22:15:57 UTC (rev 53821)
+++ trunk/Master/texmf-dist/tex/latex/ghsystem/ghsystem.sty	2020-02-17 22:17:09 UTC (rev 53822)
@@ -29,8 +29,8 @@
 \RequirePackage{ expl3, xparse, chemmacros }
 \ExplSyntaxOn
 
-\tl_const:Nn \c_ghsystem_version_tl {4.8b}
-\tl_const:Nn \c_ghsystem_date_tl    {2020/01/16}
+\tl_const:Nn \c_ghsystem_version_tl {4.8c}
+\tl_const:Nn \c_ghsystem_date_tl    {2020/02/17}
 \tl_const:Nn \c_ghsystem_info_tl    {globally~ harmonised~ system}
 
 \ProvidesExplPackage
@@ -525,7 +525,7 @@
         \caption [ \l_ghsystem_table_caption_short_tl ]
           {
             \l_ghsystem_table_caption_tl
-            \exp_args:No \label { \l__ghsystem_table_label_tl }
+            \exp_args:NV \label \l__ghsystem_table_label_tl
           } \\
         \l__ghsystem_table_top_head_rule_tl
         \textbf { \l_ghsystem_identifier_tl } &
@@ -714,3 +714,4 @@
 2019/09/30 - version 4.8a - add \l_ghsystem_table_next_page_tl to the template
                             and the French translations
 2020/01/16 - version 4.8b - adapt to renaming of case changing functions
+2020/02/17 - version 4.8c - resolve bug with French and Lua- or XeLaTeX

Modified: trunk/Master/texmf-dist/tex/latex/ghsystem/language/ghsystem_english.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ghsystem/language/ghsystem_english.def	2020-02-17 22:15:57 UTC (rev 53821)
+++ trunk/Master/texmf-dist/tex/latex/ghsystem/language/ghsystem_english.def	2020-02-17 22:17:09 UTC (rev 53822)
@@ -26,7 +26,7 @@
 % - The Current Maintainer of this work is Clemens Niederberger.
 % --------------------------------------------------------------------------
 % ENGLISH DEFINITIONS
-\ghsystemlanguagefile{english}{2016/01/16}
+\ghsystemlanguagefile {english} {2020/02/17}
 
 % table head and foot:
 \tl_set:Nn \l_ghsystem_identifier_tl { Identifier }
@@ -61,7 +61,9 @@
 % <or state all organs affected, if known>
 \cs_set:Npn \ghsystem_organs:
   {
-    \bool_if:nT { \l_ghsystem_fill_in_bool && !\l_ghsystem_organs_bool }
+    \bool_lazy_and:nnT
+      { \l_ghsystem_fill_in_bool }
+      { !\l_ghsystem_organs_bool }
       {
         \c_space_tl
         \ghsystem_filler:n { or~ state~ all~ organs~ affected,~ if~ known }

Modified: trunk/Master/texmf-dist/tex/latex/ghsystem/language/ghsystem_french.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ghsystem/language/ghsystem_french.def	2020-02-17 22:15:57 UTC (rev 53821)
+++ trunk/Master/texmf-dist/tex/latex/ghsystem/language/ghsystem_french.def	2020-02-17 22:17:09 UTC (rev 53822)
@@ -29,7 +29,7 @@
 % - Aurélien. Many thanks!
 
 % FRENCH DEFINITIONS
-\ghsystemlanguagefile{french}{2019/09/30}
+\ghsystemlanguagefile {french} {2020/02/17}
 
 % table head:
 \tl_set:Nn \l_ghsystem_identifier_tl { num\'ero }
@@ -37,13 +37,20 @@
 \tl_set:Nn \l_ghsystem_table_caption_tl { Toutes~ les~ phrases~ H,~ EUH~ et~ P }
 \tl_set:Nn \l_ghsystem_table_next_page_tl { suite~ sur~ la~ prochaine~ page }
 
-\group_begin:
-\char_set_catcode_active:N \^^@
-\char_set_lccode:nn { `^^@ } { `: }
-\tex_lowercase:D
+% with pdflatex babel sets the colon active:
+\bool_lazy_or:nnTF
+  { \sys_if_engine_luatex_p: }
+  { \sys_if_engine_xetex_p: }
+  { \tl_const:Nn \c_ghsystem_french_colon_tl { \c_colon_str } }
   {
-    \group_end:
-    \tl_const:Nn \c_ghsystem_french_colon_tl { ^^@ }
+    \group_begin:
+    \char_set_catcode_active:N \^^~
+    \char_set_lccode:nn { `^^~ } { `: }
+    \tex_lowercase:D
+      {
+        \group_end:
+        \tl_const:Nn \c_ghsystem_french_colon_tl { ^^~ }
+      }
   }
 
 % fill-in functions:
@@ -76,7 +83,9 @@
 % <or state all organs affected, if known>
 \cs_set:Npn \ghsystem_organs:
   {
-    \bool_if:nT { \l_ghsystem_fill_in_bool && !\l_ghsystem_organs_bool }
+    \bool_lazy_and:nnT
+      { \l_ghsystem_fill_in_bool }
+      { !\l_ghsystem_organs_bool }
       {
         \c_space_tl
         \ghsystem_filler:n

Modified: trunk/Master/texmf-dist/tex/latex/ghsystem/language/ghsystem_german.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ghsystem/language/ghsystem_german.def	2020-02-17 22:15:57 UTC (rev 53821)
+++ trunk/Master/texmf-dist/tex/latex/ghsystem/language/ghsystem_german.def	2020-02-17 22:17:09 UTC (rev 53822)
@@ -26,7 +26,7 @@
 % - The Current Maintainer of this work is Clemens Niederberger.
 % --------------------------------------------------------------------------
 % GERMAN DEFINITIONS
-\ghsystemlanguagefile{german}{2016/01/16}
+\ghsystemlanguagefile {german} {2016/01/16}
 
 % table head and foot:
 \tl_set:Nn \l_ghsystem_identifier_tl { Nummer }
@@ -62,7 +62,9 @@
 % <or state all organs affected, if known>
 \cs_set:Npn \ghsystem_organs:
   {
-    \bool_if:nT { \l_ghsystem_fill_in_bool && !\l_ghsystem_organs_bool }
+    \bool_lazy_and:nnT
+      { \l_ghsystem_fill_in_bool }
+      { !\l_ghsystem_organs_bool }
       {
         \c_space_tl
         \ghsystem_filler:n

Modified: trunk/Master/texmf-dist/tex/latex/ghsystem/language/ghsystem_italian.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ghsystem/language/ghsystem_italian.def	2020-02-17 22:15:57 UTC (rev 53821)
+++ trunk/Master/texmf-dist/tex/latex/ghsystem/language/ghsystem_italian.def	2020-02-17 22:17:09 UTC (rev 53822)
@@ -28,7 +28,7 @@
 % - the Italian translation was kindly provided by Jonas Rivetti. Many thanks!
 
 % ITALIAN DEFINITIONS
-\ghsystemlanguagefile{italian}{2016/01/16}
+\ghsystemlanguagefile {italian} {2020/02/17}
 
 % table head and foot:
 \tl_set:Nn \l_ghsystem_identifier_tl { Numero }
@@ -66,7 +66,9 @@
 % <or state all organs affected, if known>
 \cs_set:Npn \ghsystem_organs:
   {
-    \bool_if:nT { \l_ghsystem_fill_in_bool && !\l_ghsystem_organs_bool }
+    \bool_lazy_and:nnT
+      { \l_ghsystem_fill_in_bool }
+      { !\l_ghsystem_organs_bool }
       {
         \c_space_tl
         \ghsystem_filler:n

Modified: trunk/Master/texmf-dist/tex/latex/ghsystem/language/ghsystem_langtemplate.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ghsystem/language/ghsystem_langtemplate.def	2020-02-17 22:15:57 UTC (rev 53821)
+++ trunk/Master/texmf-dist/tex/latex/ghsystem/language/ghsystem_langtemplate.def	2020-02-17 22:17:09 UTC (rev 53822)
@@ -70,7 +70,7 @@
 % -----------------------------------------------------------------------------
 %
 % <LANGUAGE> DEFINITIONS
-\ghsystemlanguagefile{language}{date}
+\ghsystemlanguagefile {language} {date}
 
 % table head:
 \tl_set:Nn \l_ghsystem_identifier_tl { ... }
@@ -100,7 +100,9 @@
 % <or state all organs affected, if known>
 \cs_set:Npn \ghsystem_organs:
   {
-    \bool_if:nT { \l_ghsystem_fill_in_bool && !\l_ghsystem_organs_bool }
+    \bool_lazy_and:nnT
+      { \l_ghsystem_fill_in_bool }
+      { !\l_ghsystem_organs_bool }
       {
         \c_space_tl \ghsystem_filler:n { ... }
       }

Modified: trunk/Master/texmf-dist/tex/latex/ghsystem/language/ghsystem_spanish.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ghsystem/language/ghsystem_spanish.def	2020-02-17 22:15:57 UTC (rev 53821)
+++ trunk/Master/texmf-dist/tex/latex/ghsystem/language/ghsystem_spanish.def	2020-02-17 22:17:09 UTC (rev 53822)
@@ -29,7 +29,7 @@
 % - Galván. Many thanks!
 
 % SPANISH DEFINITIONS
-\ghsystemlanguagefile{spanish}{2016/01/16}
+\ghsystemlanguagefile {spanish} {2020/02/17}
 
 % table head:
 \tl_set:Nn \l_ghsystem_identifier_tl { Identificador }
@@ -67,7 +67,9 @@
 % <or state all organs affected, if known>
 \cs_set:Npn \ghsystem_organs:
   {
-    \bool_if:nT { \l_ghsystem_fill_in_bool && !\l_ghsystem_organs_bool }
+    \bool_lazy_and:nnT
+      { \l_ghsystem_fill_in_bool }
+      { !\l_ghsystem_organs_bool }
       {
         \c_space_tl
         \ghsystem_filler:n

Modified: trunk/Master/tlpkg/libexec/ctan2tds
===================================================================
--- trunk/Master/tlpkg/libexec/ctan2tds	2020-02-17 22:15:57 UTC (rev 53821)
+++ trunk/Master/tlpkg/libexec/ctan2tds	2020-02-17 22:17:09 UTC (rev 53822)
@@ -1834,6 +1834,7 @@
  'german',      '\.sty',
  'getoptk',     '\.tex',
  'gfnotation',	'notation\.tex',
+ 'ghsystem',    '\.sty',		# not manual.cls
  'ginpenc',     '\.gie|\.sty',
  'gobble',	'gobble\.tex|' . $standardtex,
  'graphics-pln','^[^e].*\.tex|.*\.sty',  # not exmpl*



More information about the tex-live-commits mailing list.