我有几个小问题:
- 如何让化合物名称适应文本宽度?问题出现在
propyl 4-hydroxybenzoate
。 - 代码还可以吗,或者可以改进或变得更优雅吗?
- 我不太明白这个命令
\begin{tabular*}{\textwidth}{c @{\extracolsep{\fill}} cc}
。 一定c
要在符号前面吗@
,还是我也可以那样做\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} ccc}
- 实际上,我可以省略
\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
这里我做了两处修改:
我把有问题的名字放入堆栈中,将其分成两行
我
~~
在每行末尾添加了两个空格,将化学图形稍微向左推,从而为名称留出额外的空间。
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}