\cmpd
我在标题中使用 时遇到问题,因为它太长了。出于某种奇怪的原因,化合物编号被放在新行上,即使没有必要。我已经有一个使用 的解决方法~
,但这不是我想要的。稍微解释一下:\iupac{}
您可以使用 添加一个可能的断点\|
。正如您将看到的,换行符将放在 (羟基) 之后,但 (1) 将放在新行上。我插入了两个标题。第一个是让我头疼的那个,第二个工作正常。第四个是解决方法。
这是我的(几乎)MWE:
\documentclass[12pt,english]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[english]{babel} % Silbentrennung, etc.
\usepackage{chemnum} % provides \cmpd{Name.Sub}
\usepackage{chemmacros} % provides iupac and loads siunitx
\begin{document}
\subsection{\iupac{\tert\-Butyl 2\-((\S\-2,2\-dimethyl\-1,3\-dioxolan\-4\-yl)\|(hy\|droxy)\|methyl)\|acryl\|ate} (\cmpd{iPrtBuAcrylate})}
Problematic subsection heading.
\subsection{\iupac{Sodium \S\-2,2\-dimethyl\-1,3\-dioxolane\-4\-carboxylate} (\cmpd{iPrCarboxylate})}
Working subsection heading.
\subsection{\iupac{\tert\-Butyl 2\-((\S\-2,2\-dimethyl\-1,3\-dioxolan\-4\-yl)\|(hy\|droxy)\|methyl)\|acryl\|ate}~(\cmpd{iPrtBuAcrylate})}
Problematic subsection with a workaround.
\end{document}
答案1
这与宏无关chem
。 中的默认标题scrartcl
是\raggedright
通过命令设置的\raggedsection
。 不规则的右侧环境说明了您遇到的问题。 解决此问题的一种方法是使用包ragged2e
并设置\raggedsection
为\RaggedRight
:
\documentclass[12pt,english]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{ragged2e}
\begin{document}
\subsection{Averylongword\-averylongwordaverylong\-wordaverylongwordavery\-long\-word X}
\begin{flushleft}
Averylongword\-averylongwordaverylong\-wordaverylongwordavery\-long\-word\-averylongwordaverylong\-wordaverylongwordavery\-long\-word X
\end{flushleft}
\let\raggedsection\RaggedRight
\subsection{Averylongword\-averylongwordaverylong\-wordaverylongwordavery\-long\-word X}
\end{document}