我需要输入内联化学公式,例如 HO-(C=O)-(苯)-(C=O)-OH。有什么方法可以插入一个小的苯符号(紧凑的、不使用tikzpicture
环境\schemestart...\schemestop
等的符号)吗?
我知道有一个unicode 符号但我无法让它发挥作用,我也不认为它是最佳的。
现在我有:
HO-\stackrel{\stackrel{O}{||}}{C}-Bz-\stackrel{\stackrel{O}{||}}{C}-OH
其中“Bz”是苯符号应该出现的位置。
答案1
为了得到\smallbenz
,我将 堆叠\circ
在 内\hexagon
。然后我使用\scalerel*
使其具有适当的大小,我任意选择它为.8\baselineskip
高度,向下移动 以.2\baselineskip
居中。这些值可以更改。
已编辑,以将垂直堆叠间隙减小至 2pt。已重新编辑,以提供第二种选择,即在六边形内部插入破折号。
\documentclass{article}
\usepackage{stackengine,wasysym,scalerel}
\newcommand\wrule[3][0pt]{\textcolor{white}{\rule[#1]{#2}{#3}}}
\def\smallbenz{\scalerel*{\stackinset{c}{}{c}{-.25pt}{$\circ$}{\hexagon}}{%
\rule[-.2\baselineskip]{1pt}{.8\baselineskip}}}
\setstackgap{S}{2pt}
\begin{document}
HO$-$\stackon{C}{\stackon{$||$}{O}}$-$%
\smallbenz%
$-$\stackon{C}{\stackon{$||$}{O}}$-$OH
\vspace{2em}
\def\smallbenz{\scalerel*{\kern-3pt%
\stackinset{c}{0.95pt}{b}{2.2pt}{-}{%
\rotatebox[origin=center]{120}{\stackinset{c}{-0.4pt}{b}{.3pt}{-}{%
\rotatebox[origin=center]{120}{\stackinset{c}{.24pt}{b}{-1.5pt}{-}{%
\hexagon}}}}}}{\rule[-.75\baselineskip]{1pt}{2\baselineskip}}\kern-3pt}
%
HO$-$\stackon{C}{\stackon{$||$}{O}}$-$%
\smallbenz%
$-$\stackon{C}{\stackon{$||$}{O}}$-$OH
\end{document}
或者,你可以使用\chemfig
:
\usepackage{chemfig}
\def\smallbenz{\raisebox{0.2em}%
{\chemfig[scale=0.18][scale=0.18]{[:-30]**6(------)}}}
\textnormal{HO}-\smallbenz-\textnormal{OH}