化学结构和文本宽度

化学结构和文本宽度

如何设法将结构公式缩小到下面文本的宽度,以便它们仍然在一行上?如有必要,您可以将结构公式分布在两行或更多行上,最主要的是它们要适应文本宽度

\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

调整整个方案的大小(使用resizeboxscalebox类似方法)可以确保所有分子都适合文本宽度。但是,如果您的文档中有多个方案,这种方法将导致整个文档中的字体大小、键长和线宽不一致。如果您想避免这种情况,您可能会对基于全局改变键长的方法感到满意。通过在\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}

在此处输入图片描述

相关内容