我遇到了一个问题,即化学结构中的连字符(箭头后,{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
中的原子是在数学模式下设置的,因此您可以使用chemfig
amsmath
的\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}