From bb5325dae4202b519b7210a338651301e048998d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Tue, 18 Feb 2020 03:02:28 +0000 Subject: CTAN sync 202002180302 --- macros/latex/contrib/ghsystem/README | 4 +- macros/latex/contrib/ghsystem/ghsystem-manual.cls | 272 ++++++++++++ macros/latex/contrib/ghsystem/ghsystem-manual.pdf | Bin 0 -> 782510 bytes macros/latex/contrib/ghsystem/ghsystem-manual.tex | 445 +++++++++++++++++++ macros/latex/contrib/ghsystem/ghsystem.sty | 7 +- macros/latex/contrib/ghsystem/ghsystem_en.pdf | Bin 780361 -> 0 bytes macros/latex/contrib/ghsystem/ghsystem_en.tex | 494 --------------------- .../contrib/ghsystem/language/ghsystem_english.def | 6 +- .../contrib/ghsystem/language/ghsystem_french.def | 27 +- .../contrib/ghsystem/language/ghsystem_german.def | 6 +- .../contrib/ghsystem/language/ghsystem_italian.def | 6 +- .../ghsystem/language/ghsystem_langtemplate.def | 6 +- .../contrib/ghsystem/language/ghsystem_spanish.def | 6 +- 13 files changed, 761 insertions(+), 518 deletions(-) create mode 100644 macros/latex/contrib/ghsystem/ghsystem-manual.cls create mode 100644 macros/latex/contrib/ghsystem/ghsystem-manual.pdf create mode 100644 macros/latex/contrib/ghsystem/ghsystem-manual.tex delete mode 100644 macros/latex/contrib/ghsystem/ghsystem_en.pdf delete mode 100644 macros/latex/contrib/ghsystem/ghsystem_en.tex (limited to 'macros/latex/contrib/ghsystem') diff --git a/macros/latex/contrib/ghsystem/README b/macros/latex/contrib/ghsystem/README index 6117fa22c4..d1dcf7617b 100644 --- a/macros/latex/contrib/ghsystem/README +++ b/macros/latex/contrib/ghsystem/README @@ -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 @@ language-definition files: - 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 diff --git a/macros/latex/contrib/ghsystem/ghsystem-manual.cls b/macros/latex/contrib/ghsystem/ghsystem-manual.cls new file mode 100644 index 0000000000..1a47c50a13 --- /dev/null +++ b/macros/latex/contrib/ghsystem/ghsystem-manual.cls @@ -0,0 +1,272 @@ +% -------------------------------------------------------------------------- +% the GHSYSTEM package +% +% globally harmonised system +% +% -------------------------------------------------------------------------- +% Clemens Niederberger +% -------------------------------------------------------------------------- +% https://github.org/cgnieder/ghsystem/ +% contact@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@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@figurestyle{LF} +\RequirePackage{amsmath} +\undef\lvert \undef\lVert +\undef\rvert \undef\rVert +\RequirePackage[libertine]{newtxmath} +\def\libertine@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@add@version[2]{% + \csdef{ghsystem@ver@#2}{% + \DTMdate{#1}% + \csgdef{ghsystem@ver@#2used}{}% + \csdef{ghsystem@ver@#2}{\DTMdate{#1}}% + }% +} + +\newrobustcmd*\ghsystem@date[1]{% + \ifcsdef{ghsystem@ver@#1used}{}{ (\csuse{ghsystem@ver@#1})}} +\newrobustcmd*\ghsystem@ifnew[1]{\ifcsstring{c_ghsystem_version_tl}{#1}} +\newrobustcmd*\ghsystem@NEW{\faStarO\ New} + +\renewrobustcmd*\sinceversion[1]{% + \ghsystem@ifnew{#1}% + {\cnltx@version@note{\textcolor{red}{\ghsystem@NEW}}}% + {\cnltx@version@note{\GetTranslation{cnltx-introduced}~#1\ghsystem@date{#1}}}% +} +\renewrobustcmd*\changedversion[1]{% + \cnltx@version@note{\GetTranslation{cnltx-changed}~#1\ghsystem@date{#1}}% +} + +\newnote*\sincechanged[2]{% + \GetTranslation{cnltx-introduced}~#1\ghsystem@date{#1}, + changed with version~#2\ghsystem@date{#2}\ghsystem@ifnew{#2}{ \ghsystem@NEW}{}% +} + +\RenewDocumentEnvironment{commands}{} + {% + \cnltx@set@catcode_{12}% + \let\command\cnltx@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@readoptions[1]{% + \catcode`\^^M=13 + \ghsystem@read@options{#1}% +} + +\begingroup +\catcode`\^^M=13 +\gdef\ghsystem@read@options#1#2^^M{% + \endgroup + \ifblank{#2}{}{\ghsystem@read@options@#2}% + #1% + \XSIMfilewritestart*{\jobname.tmp}% +}% +\endgroup +\def\ghsystem@read@options@[#1]{\pgfqkeys{/cnltx}{#1}} + +\RenewDocumentEnvironment{sourcecode}{} + {% + \begingroup + \ghsystem@readoptions{% + \setlength\cnltx@sidebysidewidth + {\dimexpr .45\columnwidth -\lst@xleftmargin -\lst@xrightmargin\relax}% + \expanded{% + \noexpand\lstset{ + style=cnltx, + \ifboolexpe{ bool {cnltx@sidebyside} and not bool {cnltx@codeonly} } + {linewidth=\cnltx@sidebysidewidth,}{}% + \expandonce\cnltx@local@listings@options + }% + }% + \XSIMgobblechars{2}% + }% + } + {% + \XSIMfilewritestop + \cnltxcode[breakable]% + \lstinputlisting[style=cnltx]{\jobname.tmp}% + \endcnltxcode + } + +\RenewDocumentEnvironment{example}{} + {% + \begingroup + \ghsystem@readoptions{% + \setlength\cnltx@sidebysidewidth + {\dimexpr .45\columnwidth -\lst@xleftmargin -\lst@xrightmargin\relax}% + \expanded{% + \noexpand\lstset{ + style=cnltx, + \ifboolexpe{ bool {cnltx@sidebyside} and not bool {cnltx@codeonly} } + {linewidth=\cnltx@sidebysidewidth,}{}% + \expandonce\cnltx@local@listings@options + }% + }% + \XSIMgobblechars{2}% + }% + } + {% + \XSIMfilewritestop + \ifbool{cnltx@sidebyside} + {% + \cnltxcode + \noindent + \minipage[c]{\cnltx@sidebysidewidth}% + \cnltx@pre@source@hook + \lstinputlisting[style=cnltx] {\jobname.tmp}% + \cnltx@after@source@hook + \endminipage\hfill + \minipage[c]{\cnltx@sidebysidewidth}% + \cnltx@pre@example@hook + \input {\jobname.tmp}% + \cnltx@after@example@hook + \endminipage + } + {% + \cnltxcode[breakable]% + \cnltx@pre@source@hook + \lstinputlisting{\jobname.tmp}% + \cnltx@after@source@hook + \tcblower + \cnltx@pre@example@hook + \input {\jobname.tmp}% + \cnltx@after@example@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@add@version{2012-01-28}{3.0} +\ghsystem@add@version{2012/01/30}{3.0a} +\ghsystem@add@version{2012/02/05}{3.0c} +\ghsystem@add@version{2012/05/13}{3.3a} +\ghsystem@add@version{2012/05/18}{3.3b} +\ghsystem@add@version{2012/05/18}{3.3c} +\ghsystem@add@version{2012/07/24}{3.3d} +\ghsystem@add@version{2013/02/19}{3.5a} +\ghsystem@add@version{2013/07/06}{4.0} +\ghsystem@add@version{2013/12/13}{4.0a} +\ghsystem@add@version{2014/01/09}{4.2e} +\ghsystem@add@version{2014/04/08}{4.5} +\ghsystem@add@version{2014/04/13}{4.5a} +\ghsystem@add@version{2014/06/30}{4.5b} +\ghsystem@add@version{2014/08/08}{4.6} +\ghsystem@add@version{2016/01/15}{4.7} +\ghsystem@add@version{2016/07/16}{4.8} +\ghsystem@add@version{2019/09/30}{4.8a} +\ghsystem@add@version{2020/01/16}{4.8b} +\ghsystem@add@version{2020/02/17}{4.8c} + +\endinput diff --git a/macros/latex/contrib/ghsystem/ghsystem-manual.pdf b/macros/latex/contrib/ghsystem/ghsystem-manual.pdf new file mode 100644 index 0000000000..c6d566d6c9 Binary files /dev/null and b/macros/latex/contrib/ghsystem/ghsystem-manual.pdf differ diff --git a/macros/latex/contrib/ghsystem/ghsystem-manual.tex b/macros/latex/contrib/ghsystem/ghsystem-manual.tex new file mode 100644 index 0000000000..230deda95b --- /dev/null +++ b/macros/latex/contrib/ghsystem/ghsystem-manual.tex @@ -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@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} +@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} +} +@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]{} or +% \chemsetup{ghsystem/,ghsystem/} +% \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@mychemistry.eu}{contact@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} diff --git a/macros/latex/contrib/ghsystem/ghsystem.sty b/macros/latex/contrib/ghsystem/ghsystem.sty index dfc4d1eacd..62f97b8282 100644 --- a/macros/latex/contrib/ghsystem/ghsystem.sty +++ b/macros/latex/contrib/ghsystem/ghsystem.sty @@ -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 @@ VERSION HISTORY 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 diff --git a/macros/latex/contrib/ghsystem/ghsystem_en.pdf b/macros/latex/contrib/ghsystem/ghsystem_en.pdf deleted file mode 100644 index dccf33b05d..0000000000 Binary files a/macros/latex/contrib/ghsystem/ghsystem_en.pdf and /dev/null differ diff --git a/macros/latex/contrib/ghsystem/ghsystem_en.tex b/macros/latex/contrib/ghsystem/ghsystem_en.tex deleted file mode 100644 index 1267fb29e3..0000000000 --- a/macros/latex/contrib/ghsystem/ghsystem_en.tex +++ /dev/null @@ -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@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@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@figurestyle\endcsname{LF} -\usepackage[libertine]{newtxmath} -\expandafter\def\csname libertine@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} -@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} -} -@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]{} or -% \chemsetup{ghsystem/,ghsystem/} -% \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@mychemistry.eu}{contact@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} diff --git a/macros/latex/contrib/ghsystem/language/ghsystem_english.def b/macros/latex/contrib/ghsystem/language/ghsystem_english.def index 67b579371c..1d6e18d7d0 100644 --- a/macros/latex/contrib/ghsystem/language/ghsystem_english.def +++ b/macros/latex/contrib/ghsystem/language/ghsystem_english.def @@ -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 @@ % \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 } diff --git a/macros/latex/contrib/ghsystem/language/ghsystem_french.def b/macros/latex/contrib/ghsystem/language/ghsystem_french.def index 417df28349..0901369fd3 100644 --- a/macros/latex/contrib/ghsystem/language/ghsystem_french.def +++ b/macros/latex/contrib/ghsystem/language/ghsystem_french.def @@ -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 - { - \group_end: - \tl_const:Nn \c_ghsystem_french_colon_tl { ^^@ } +% 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_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 @@ % \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 diff --git a/macros/latex/contrib/ghsystem/language/ghsystem_german.def b/macros/latex/contrib/ghsystem/language/ghsystem_german.def index f7f706996d..481830eab4 100644 --- a/macros/latex/contrib/ghsystem/language/ghsystem_german.def +++ b/macros/latex/contrib/ghsystem/language/ghsystem_german.def @@ -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 @@ % \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 diff --git a/macros/latex/contrib/ghsystem/language/ghsystem_italian.def b/macros/latex/contrib/ghsystem/language/ghsystem_italian.def index 9d97ca043c..6e89094ff3 100644 --- a/macros/latex/contrib/ghsystem/language/ghsystem_italian.def +++ b/macros/latex/contrib/ghsystem/language/ghsystem_italian.def @@ -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 @@ % \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 diff --git a/macros/latex/contrib/ghsystem/language/ghsystem_langtemplate.def b/macros/latex/contrib/ghsystem/language/ghsystem_langtemplate.def index 52a6a21011..75f19cae5c 100644 --- a/macros/latex/contrib/ghsystem/language/ghsystem_langtemplate.def +++ b/macros/latex/contrib/ghsystem/language/ghsystem_langtemplate.def @@ -70,7 +70,7 @@ % ----------------------------------------------------------------------------- % % DEFINITIONS -\ghsystemlanguagefile{language}{date} +\ghsystemlanguagefile {language} {date} % table head: \tl_set:Nn \l_ghsystem_identifier_tl { ... } @@ -100,7 +100,9 @@ % \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 { ... } } diff --git a/macros/latex/contrib/ghsystem/language/ghsystem_spanish.def b/macros/latex/contrib/ghsystem/language/ghsystem_spanish.def index ecbf46fa17..5b6a203884 100644 --- a/macros/latex/contrib/ghsystem/language/ghsystem_spanish.def +++ b/macros/latex/contrib/ghsystem/language/ghsystem_spanish.def @@ -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 @@ % \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 -- cgit v1.2.3