0

I have a rough draft of some GHS labels using the labels and ghsystem packages::

\documentclass[preview]{standalone}

\usepackage{ghsystem}

\usepackage[newdimens]{labels}
\LabelCols=2
\LabelRows=5

\LabelGridtrue % show grid for labels

% Signal words.
\newcommand{\warning}{{\color{red}{\textbf{WARNING}}}}
\newcommand{\danger}{{\color{red}{\textbf{DANGER}}}}

\begin{document}
\begin{labels}
  \textbf{Calcium chloride}
  \warning
  \ghs*{h}{319}
  \ghs*[dots=skin]{p}{264} \ghs*{p}{280}
  \ghs*{p}{305+351+338} \ghs*{p}{337+313}
  \ghspic{exclam}

  \textbf{1-Methyl-2-pyrrolidine}
  \danger
  \ghs*{h}{227} \ghs*{h}{315} \ghs*{h}{319} \ghs*{h}{335} \ghs*{h}{360}
  % Precautions do not fit.
  %\ghs*{p}{201} \ghs*{p}{202} \ghs*{p}{210} \ghs*{p}{261} \ghs*[dots=skin]{p}{264} \ghs*{p}{271} \ghs*{p}{280} \ghs*{p}{302+352} \ghs*{p}{304+340+312} \ghs*{p}{305+351+338} \ghs*{p}{308+313} \ghs*{p}{332+313} \ghs*{p}{337+313} \ghs*{p}{362} \ghs*[dots=dry sand or dry chemical or alcohol-resistant foam]{p}{370+378} \ghs*{p}{403+233} \ghs*{p}{403+235} \ghs*{p}{405} \ghs*[dots=an approved waste disposal plant]{p}{501}
  \ghspic{health}\ghspic{exclam}

  \textbf{Methanol}
  \danger
  \ghs*{h}{225} \ghs*{h}{301} \ghs*{h}{311} \ghs*{h}{331} \ghs*{h}{370}
  % Precautions do not fit.
  %\ghs*{p}{210} \ghs*{p}{233} \ghs*{p}{240} \ghs*{p}{241} \ghs*{p}{242} \ghs*{p}{243} \ghs*{p}{260} \ghs*[dots=skin]{p}{264} \ghs*{p}{270} \ghs*{p}{271} \ghs*{p}{280} \ghs*{p}{301} \ghs*{p}{310} \ghs*{p}{330} \ghs*{p}{303+361+353} \ghs*{p}{304+340+311} \ghs*{p}{307+311} \ghs*{p}{362} \ghs*[dots=dry sand or dry chemical or alcohol-resistant foam]{p}{370+378} \ghs*{p}{403+233} \ghs*{p}{403+235} \ghs*{p}{405} \ghs*[dots=an approved waste disposal plant]{p}{501}
  \ghspic{flame}\ghspic{skull}\ghspic{health}

  \textbf{Ammonia}
  \danger
  \ghs*{h}{221} \ghs*{h}{280} \ghs*{h}{314} \ghs*{h}{331} \ghs*{h}{410}
  % Precautions do not fit.
  % \ghs*{p}{210} \ghs*{p}{261} \ghs*[dots=skin]{p}{264} \ghs*{p}{271} \ghs*{p}{273} \ghs*{p}{280} \ghs*{p}{301+330+331} \ghs*{p}{303+361+353} \ghs*{p}{304+340+310} \ghs*{p}{305+338+310} \ghs*{p}{363} \ghs*{p}{377} \ghs*{p}{381} \ghs*{p}{391} \ghs*{p}{403+233} \ghs*{p}{405} \ghs*{p}{410+403} \ghs*[dots=an approved waste disposal plant]{p}{501}
  \ghspic{bottle}\ghspic{skull}\ghspic{acid}\ghspic{aqpol}
\end{labels}
\end{document}

It looks like this:

original label layout

However, there are some issues I would like to resolve:

  • There isn't enough room for all the precautionary statements.

Making the font smaller helps a little, but not enough.

  • The hazard communication pictograms would be better placed in the upper right.

This way there is more room for the hazard and precautionary statements.

  • The font size for product identifiers should be larger.

Some chemical names are quite long, so it's hard to choose a consistent size. It should be larger than the rest of the text, but small enough to leave room for the hazard and precautionary statements.

Here's a mockup I made in GIMP:

better label layout

It puts the product identifier (e.g. "Methanol"), pictograms, and signal words (e.g. "DANGER") together in a box, leaving the rest of the space for hazard and precautionary statements.

How can I achieve this layout (or similar) with LaTeX?

  • Have you tried using minipages? – TeXnician Apr 9 '17 at 10:48
2

Here's a nice solution using stackengine and adjustbox. Effectively it creates a short stack and shifts it up, so that it fits image positioning. Feel free to experiment with the raise values.

image

\documentclass{article}

\usepackage{ghsystem}
\usepackage{stackengine}
\usepackage{adjustbox}

\usepackage[newdimens]{labels}
\LabelCols=2
\LabelRows=5

\LabelGridtrue % show grid for labels

% Signal words.
\newcommand{\warning}{{\color{red}{\textbf{WARNING}}}}
\newcommand{\danger}{{\color{red}{\textbf{DANGER}}}}

\begin{document}
\begin{labels}
  \adjustbox{raise=1.5em}{\mbox{\stackengine{\stackgap}{\textbf{\Large Calcium chloride}}{\warning}{U}{l}{F}{T}{S}}}\hfill\ghspic{exclam}\\
  \parbox{\textwidth}{\ghs*{h}{319}\ghs*[dots=skin]{p}{264} \ghs*{p}{280}\ghs*{p}{305+351+338} \ghs*{p}{337+313}}

  \adjustbox{raise=1.5em}{\mbox{\stackengine{\stackgap}{\textbf{\Large 1-Methyl-2-pyrrolidine}}{\danger}{U}{l}{F}{T}{S}}}\hfill\ghspic{health}\ghspic{exclam}\\
  \parbox{\textwidth}{\ghs*{h}{225} \ghs*{h}{315} \ghs*{h}{319} \ghs*{h}{335} \ghs*{h}{360}}

  \adjustbox{raise=1.5em}{\mbox{\stackengine{\stackgap}{\textbf{\Large Methanol}}{\danger}{U}{l}{F}{T}{S}}}\hfill\ghspic{flame}\ghspic{skull}\ghspic{health}\\
  \parbox{\textwidth}{\ghs*{h}{225} \ghs*{h}{301} \ghs*{h}{311} \ghs*{h}{331} \ghs*{h}{370}}

  \adjustbox{raise=1.5em}{\mbox{\stackengine{\stackgap}{\textbf{\Large Ammonia}}{\danger}{U}{l}{F}{T}{S}}}\hfill\ghspic{bottle}\ghspic{skull}\ghspic{acid}\ghspic{aqpol}\\
  \parbox{\textwidth}{\ghs*{h}{221} \ghs*{h}{280} \ghs*{h}{314} \ghs*{h}{331} \ghs*{h}{410}}
\end{labels}
\end{document}
  • Some chemical names are very long (e.g. "ammonium molybdate tetrahydrate"). Would it be possible to wrap those onto more than one line? – Nathaniel M. Beaver Apr 9 '17 at 21:08
  • @bariumbitmap A quick fix for manual breaking: \adjustbox{raise=2.5em}{\mbox{\stackengine{\stackgap}{\stackengine{\stackgap}{\textbf{\Large Ammonium Molybdate}}{\textbf{\Large Tetrahydrate}}{U}{l}{F}{T}{S}}{\warning}{U}{l}{F}{T}{S}}}\hfill\ghspic{exclam}\\ (you can stack as many as you want), but I'll try to make it auomated (therefore no edit yet). – TeXnician Apr 10 '17 at 6:33
  • That's alright; I shouldn't have piled on requirements that go beyond the original question. The existing answer is sufficient for now. – Nathaniel M. Beaver Apr 19 '17 at 15:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.