![化学结构和文本宽度](https://linux22.com/image/435534/%E5%8C%96%E5%AD%A6%E7%BB%93%E6%9E%84%E5%92%8C%E6%96%87%E6%9C%AC%E5%AE%BD%E5%BA%A6.png)
如何设法将结构公式缩小到下面文本的宽度,以便它们仍然在一行上?如有必要,您可以将结构公式分布在两行或更多行上,最主要的是它们要适应文本宽度
\documentclass[english]{scrartcl}
\usepackage{babel}
\usepackage{chemfig}
\usepackage{blindtext}
\begin{document}
\section{Structural formula}
\begin{center}
\schemestart
\chemname{
\chemfig{*6(=-=(-OH)-(-(=[::60]O)-[::-60]OH)=-)}
}{Salicylic acid}
\chemname{
\chemfig{*6(=-=(-(=[::60]O)-[::-60]OH)-(-O-[::60](=O)-[::60]Me)=-)}
}{Acetylsalicylic acid}
\chemname{
\chemfig{(-[:-150]Me)(-[:330,,,1]OH)=[:90]O}
}{Acetic acid}
\chemname{
\chemfig{(-[:-150]Me)(=[:90]O)-[:330]O-[:30](-[:330]Me)}
}{Ethyl acetate}
\schemestop
\end{center}
\section{Experimental procedure}
\blindtext
\end{document}
让我有点困扰的是,水杨酸的化学名称并不正好位于结构式的中间。它看起来好像向右移动了。
答案1
调整整个方案的大小(使用resizebox
或scalebox
类似方法)可以确保所有分子都适合文本宽度。但是,如果您的文档中有多个方案,这种方法将导致整个文档中的字体大小、键长和线宽不一致。如果您想避免这种情况,您可能会对基于全局改变键长的方法感到满意。通过在\setchemfig{atom sep=2.25em}
文档的序言中添加(或任何其他适合您需要的长度),您的方案应该很容易适合文档的文本宽度:
\documentclass[english]{scrartcl}
\usepackage{babel}
\usepackage{chemfig}
\usepackage{blindtext}
\setchemfig{atom sep=2.25em}
\begin{document}
\section{Structural formula}
\begin{center}
\schemestart
\chemname{
\chemfig{*6(=-=(-OH)-(-(=[::60]O)-[::-60]OH)=-)}
}{Salicylic acid}
\chemname{
\chemfig{*6(=-=(-(=[::60]O)-[::-60]OH)-(-O-[::60](=O)-[::60]Me)=-)}
}{Acetylsalicylic acid}
\chemname{
\chemfig{(-[:-150]Me)(-[:330,,,1]OH)=[:90]O}
}{Acetic acid}
\chemname{
\chemfig{(-[:-150]Me)(=[:90]O)-[:330]O-[:30](-[:330]Me)}
}{Ethyl acetate}
\schemestop
\end{center}
\section{Experimental procedure}
\blindtext
\end{document}
tabular
这是一个替代版本,尝试使用或chemfig
命令来解决化合物名称垂直放置不均匀的问题\chenmameinit
:
\documentclass[english]{scrartcl}
\usepackage{babel}
\usepackage{chemfig}
\usepackage{blindtext}
\usepackage{booktabs}
\setchemfig{atom sep=2.25em}
\begin{document}
\section{Structural formula}
\begin{center}
\setlength{\tabcolsep}{0pt}
\schemestart
\begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}cccc}
\chemfig{*6(=-=(-OH)-(-(=[::60]O)-[::-60]OH)=-)}
&\chemfig{*6(=-=(-(=[::60]O)-[::-60]OH)-(-O-[::60](=O)-[::60]Me)=-)}
&\chemfig{(-[:-150]Me)(-[:330,,,1]OH)=[:90]O}
&\chemfig{(-[:-150]Me)(=[:90]O)-[:330]O-[:30](-[:330]Me)} \\\addlinespace
Salicylic acid
& Acetylsalicylic acid
& Acetic acid
& Ethyl acetate
\end{tabular*}
\schemestop
\end{center}
\begin{center}
\chemnameinit{\chemfig{(-[:-150]Me)(-[:330,,,1]OH)=[:90]O}}
\schemestart
\chemname{
\chemfig{*6(=-=(-OH)-(-(=[::60]O)-[::-60]OH)=-)}
}{Salicylic acid}
\chemname{
\chemfig{*6(=-=(-(=[::60]O)-[::-60]OH)-(-O-[::60](=O)-[::60]Me)=-)}
}{Acetylsalicylic acid}
\chemname{
\chemfig{(-[:-150]Me)(-[:330,,,1]OH)=[:90]O}
}{Acetic acid}
\chemname{
\chemfig{(-[:-150]Me)(=[:90]O)-[:330]O-[:30](-[:330]Me)}
}{Ethyl acetate}
\schemestop
\end{center}
\section{Experimental procedure}
\blindtext
\end{document}
答案2
如何用以下方式包装图片\resizebox
:
\documentclass[english]{scrartcl}
\usepackage{babel}
\usepackage{chemfig}
\usepackage{blindtext}
\begin{document}
\section{Structural formula}
\begin{center}
\resizebox{\textwidth}{!}{ % <--
\schemestart
\chemname{
\chemfig{*6(=-=(-OH)-(-(=[::60]O)-[::-60]OH)=-)}
}{Salicylic acid}
\chemname{
\chemfig{*6(=-=(-(=[::60]O)-[::-60]OH)-(-O-[::60](=O)-[::60]Me)=-)}
}{Acetylsalicylic acid}
\chemname{
\chemfig{(-[:-150]Me)(-[:330,,,1]OH)=[:90]O}
}{Acetic acid}
\chemname{
\chemfig{(-[:-150]Me)(=[:90]O)-[:330]O-[:30](-[:330]Me)}
}{Ethyl acetate}
\schemestop
}
\end{center}
\section{Experimental procedure}
\blindtext
\end{document}