chemfig 中不显示连字符

chemfig 中不显示连字符

我遇到了一个问题,即化学结构中的连字符(箭头后,{n}-Bu_4N^+)=-=))没有显示(根据我的 pdf 文件),尽管它存在于代码中。我的示例代码如下:

\documentclass[12pt,doublespacing,letterpaper]{report}

\usepackage{chemfig}


\begin{document}


\setatomsep{2em}
setbondoffset{1pt}
\setdoublesep{3pt}
setbondstyle{line width=1pt}


\schemestart[0,2.2,thick]
\scriptsize
\chemfig{[:-30]*6(-=-(-[,1.2]BF{_3^-}K^+)=-=)}
\arrow{
->[\footnotesize \emph{n}-Bu$_4$N$^+$Br$^-$
\footnotesize][\footnotesize{\centering THF, rt, 3-5 min\footnotesize}]}
\scriptsize
\chemfig{[:-30]*6(-=-(-[,1.2]BF{_3^-}\emph{n}-Bu_4N^+)=-=)}
\schemestop


\end{document}

箭头上方的结构中有一个连字符,但显示没有问题。如能提供任何帮助,我们将不胜感激。

答案1

-被解释为单键。由于“原子”的宽度BF{_3^-}\emph{n}太大,它似乎消失了。实际上,您不希望连字符被解析为键,因此您需要隐藏它。

在评论中,有人建议使用\emph{n-}它可以隐藏 解析器的连字符。我还有另一个建议:由于公式chemfig中的原子是在数学模式下设置的,因此您可以使用chemfigamsmath\text{}。简单地使用{-}也会隐藏破折号,但它会被解释为减号。

下面我还定义了命令\normal下面我还定义了排版n因为这对我来说似乎更自然。另外,我使用3--5\,min时间范围。我个人更喜欢使用siunitx包并使用\SIrange{3}{5}{\minute}。使用适当的设置(\sisetup{range-phrase=--,range-units=single}),输出将是相同的。

\documentclass{report}
\usepackage{chemfig}
\usepackage{amsmath}

% gloabel settings should go into the preamble:
\setatomsep{2em}
\setbondoffset{1pt}
\setdoublesep{3pt}
\setbondstyle{line width=1pt}

% a semantic command:
\newcommand\normal{\textit{n}}

\begin{document}

% if these are scheme-specific they're fine here; else they also should go
% into the preamble
\setarrowdefault{0,2.2,thick}% if it is scheme-specific better use the
                             % optional argument to \schemestart; else place
                             % it in the preamble
\setcompoundstyle{font=\scriptsize}
\schemestart
\chemfig{[:-30]*6(-=-(-[,1.2]BF{_3^-}K^+)=-=)}
\arrow{%
  ->[\footnotesize \normal-Bu$_4$N$^+$Br$^-$]%
    [\footnotesize THF, rt, 3--5\,min]}
\chemfig{[:-30]*6(-=-(-[,1.2]BF{_3^-}\text{\normal-}Bu_4N^+)=-=)}
\schemestop
\setcompoundstyle{}% default

\end{document}

在此处输入图片描述

相关内容