根据文本宽度调整化学名称

根据文本宽度调整化学名称

我有几个小问题:

  1. 如何让化合物名称适应文本宽度?问题出现在propyl 4-hydroxybenzoate
  2. 代码还可以吗,或者可以改进或变得更优雅吗?
  3. 我不太明白这个命令\begin{tabular*}{\textwidth}{c @{\extracolsep{\fill}} cc}。 一定c要在符号前面吗@,还是我也可以那样做\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} ccc}
  4. 实际上,我可以省略\begin{center}\end{center},对吧?这样不会有什么变化吗?

我希望你能回答我的所有问题。

\documentclass[english]{scrartcl}

\usepackage{babel}
\usepackage{blindtext}
\usepackage{chemfig}
\setchemfig{atom sep=2.25em}
\usepackage{booktabs}

\begin{document}

\section{Structural formula}

\begin{center}
\schemestart
    \begin{tabular*}{\textwidth}{c @{\extracolsep{\fill}} cc}
\chemname{
    \chemfig{*6(=(-OH)-=-(-(=[:150]O)-[:30]OMe)=-)}
        }{Methyl 4-hydroxybenzoate}
    &
    \chemname{
        \chemfig{*6(=(-OH)-=-(-(=[:150]O)-[:30]OEt)=-)}
        }{Ethyl 4-hydroxybenzoate}
        &
        \chemname{
            \chemfig{*6(=(-OH)-=-(-(=[:150]O)-[:30]OPr)=-)}
            }{Propyl 4-hydroxybenzoate}
    \\
    \addlinespace[2ex]
\chemname{
    \chemfig{*6((=O)-N(-Me)-*5(-N=-N(-Me)-=)--(=O)-N(-Me)-)}
        }{Caffeine}
    &
    \chemname{
        \chemfig{H_2N-[:30](=[:90]S)-[::-60]NH_2}
            }{Thiourea}
        &
    \chemname{
        \chemfig{H-C(-[2]H)(-[6]H)-OH}
            }{Methanol}
    \end{tabular*}
\schemestop
\end{center}

\section{Experimental procedure}

\blindtext

\end{document}

在此处输入图片描述

答案1

以下是我的尝试:

\documentclass[english]{scrartcl}

\usepackage{babel}
\usepackage{blindtext}
\usepackage{chemfig}
\setchemfig{atom sep=2.25em}
\usepackage{booktabs}

\begin{document}
\section{Structural formula}
\blindtext

\begin{center}
\schemestart
\begin{tabular*}{\textwidth}{@{}c@{\extracolsep{\fill}}c@{\extracolsep{\fill}}c@{}}
  \chemfig{*6(=(-OH)-=-(-(=[:150]O)-[:30]OMe)=-)}
  &
  \chemfig{*6(=(-OH)-=-(-(=[:150]O)-[:30]OEt)=-)}
  &
  \chemfig{*6(=(-OH)-=-(-(=[:150]O)-[:30]OPr)=-)}\\
  \\
  Methyl 4-hydroxybenzoate
  &
  Ethyl 4-hydroxybenzoate
  &
  Propyl 4-hydroxybenzoate\\
  \\
  \chemfig{*6((=O)-N(-Me)-*5(-N=-N(-Me)-=)--(=O)-N(-Me)-)}
  &
  \chemfig{H_2N-[:30](=[:90]S)-[::-60]NH_2}
  &
  \chemfig{H-C(-[2]H)(-[6]H)-OH}\\
  \\
  Caffeine
  &
  Thiourea
  &
  Methanol
\end{tabular*}
\schemestop
\end{center}

\section{Experimental procedure}
\blindtext

\end{document}

在此处输入图片描述

我不知道为什么center环境对于正确的布局来说似乎是必要的。

答案2

这里我做了两处修改:

  1. 我把有问题的名字放入堆栈中,将其分成两行

  2. ~~在每行末尾添加了两个空格,将化学图形稍微向左推,从而为名称留出额外的空间。

MWE。

\documentclass[english]{scrartcl}

\usepackage{babel}
\usepackage{blindtext}
\usepackage{chemfig}
\setchemfig{atom sep=2.25em}
\usepackage{booktabs,stackengine}

\begin{document}

\section{Structural formula}

\begin{center}
\schemestart
    \begin{tabular*}{\textwidth}{c @{\extracolsep{\fill}} cc}
\chemname{
    \chemfig{*6(=(-OH)-=-(-(=[:150]O)-[:30]OMe)=-)}
        }{Methyl 4-hydroxybenzoate}
    &
    \chemname{
        \chemfig{*6(=(-OH)-=-(-(=[:150]O)-[:30]OEt)=-)}
        }{Ethyl 4-hydroxybenzoate}
        &
        \chemname{
            \chemfig{*6(=(-OH)-=-(-(=[:150]O)-[:30]OPr)=-)}
            }{\Longunderstack{Propyl 4-hydroxybenzoate}}
    ~~\\
    \addlinespace[2ex]
\chemname{
    \chemfig{*6((=O)-N(-Me)-*5(-N=-N(-Me)-=)--(=O)-N(-Me)-)}
        }{Caffeine}
    &
    \chemname{
        \chemfig{H_2N-[:30](=[:90]S)-[::-60]NH_2}
            }{Thiourea}
        &
    \chemname{
        \chemfig{H-C(-[2]H)(-[6]H)-OH}
            }{Methanol}~~
    \end{tabular*}
\schemestop
\end{center}

\section{Experimental procedure}

\blindtext

\end{document}

在此处输入图片描述

答案3

此版本使用\tabularx而不是tabular*。主要区别在于所有列的宽度相同。主要优点是\linewidth有可用空间,因此可以用来\parbox[t]{\linewidth}{\centering ...}处理名称。

\documentclass[english]{scrartcl}

\usepackage{babel}
\usepackage{blindtext}
\usepackage{chemfig}
\setchemfig{atom sep=2.25em}
\usepackage{booktabs}
\usepackage{tabularx}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\usepackage{showframe}

\begin{document}

\section{Structural formula}

\schemestart
    \begin{tabularx}{\textwidth}{CCC}
\chemname{
    \chemfig{*6(=(-OH)-=-(-(=[:150]O)-[:30]OMe)=-)}
        }{\parbox[t]{\linewidth}{\centering Methyl 4-hydroxybenzoate plus more}}
    &
    \chemname{
        \chemfig{*6(=(-OH)-=-(-(=[:150]O)-[:30]OEt)=-)}
        }{Ethyl 4-hydroxybenzoate}
        &
        \chemname{
            \chemfig{*6(=(-OH)-=-(-(=[:150]O)-[:30]OPr)=-)}
            }{\parbox[t]{\linewidth}{\centering Propyl 4-hydroxybenzoate}}
    \\
    \addlinespace[2ex]
\chemname{
    \chemfig{*6((=O)-N(-Me)-*5(-N=-N(-Me)-=)--(=O)-N(-Me)-)}
        }{Caffeine}
    &
    \chemname{
        \chemfig{H_2N-[:30](=[:90]S)-[::-60]NH_2}
            }{Thiourea}
        &
    \chemname{
        \chemfig{H-C(-[2]H)(-[6]H)-OH}
            }{Methanol}
    \end{tabularx}
\schemestop

\section{Experimental procedure}

\blindtext

\end{document}

演示


\schemestart和之间的交互tabular让我很困扰,因为它们的作用类似。此版本仅使用tabularx\chemfig

\documentclass[english]{scrartcl}

\usepackage{babel}
\usepackage{blindtext}
\usepackage{chemfig}
\setchemfig{atom sep=2.25em}
\usepackage{booktabs}
\usepackage{tabularx}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\usepackage{showframe}

\begin{document}

\section{Structural formula}

{\def\arraystretch{1.4}% adjust space between figure and text
\begin{tabularx}{\textwidth}{CCC}
    \chemfig{*6(=(-OH)-=-(-(=[:150]O)-[:30]OMe)=-)}
    &
    \chemfig{*6(=(-OH)-=-(-(=[:150]O)-[:30]OEt)=-)}
    &
    \chemfig{*6(=(-OH)-=-(-(=[:150]O)-[:30]OPr)=-)}
    \\
    Methyl 4-hydroxybenzoate plus more 
    &
    Ethyl 4-hydroxybenzoate
    &
    Propyl 4-hydroxybenzoate
    \\
    \addlinespace[2ex]
    \chemfig{*6((=O)-N(-Me)-*5(-N=-N(-Me)-=)--(=O)-N(-Me)-)}
    &
    \chemfig{H_2N-[:30](=[:90]S)-[::-60]NH_2}
    &
    \chemfig{H-C(-[2]H)(-[6]H)-OH}
    \\
    Caffeine
    &
    Thiourea
    &
    Methanol
\end{tabularx}}

\section{Experimental procedure}

\blindtext

\end{document}

相关内容