化学结构编号问题

化学结构编号问题

我希望化学相关结构的编号能够像这样出现。

化合物 1a 和 1b 是有用的,而化合物 1c 和 2a 是有害的。

我不想自己生成参考资料。我可以生成png / jpg / bmp/ gif / tif / emf / svg格式不正确的图像eps

Compound    R1  R2
Toluene, 1a CH3 H
Ethyl benzene, 1b   C2H5    H
Chlorobenzene, 1c   Cl  H
o-chlorotoluene, 2a CH3 Cl

修改后的问题是“问题是我如何在连续内容中标记 1a、1b、1c 和 2a。我如何在任何我想要的地方插入参考。” 请参阅随附的 pdf 图像!

在此处输入图片描述

答案1

最好的化学编号软件包是chemnum,比chemcompounds(我之前挑选的套餐), bpchemcompoundcntr(使用起来很别扭)。使用chemnum,每个化合物都使用宏进行标记\cmpd。这会创建数字引用,但允许我们使用细分.以生成字母。我会结合mhchem对于公式部分:

\documentclass{article}
\usepackage{booktabs,chemnum}
\usepackage[version=3]{mhchem}
\begin{document}
\begin{table}
  \centering
  \caption{Benzene derivatives}
  \label{tbl:compounds}
  \begin{tabular}{lll}
    \toprule
      Compounds & R$^1$ & R$^2$ \\
    \midrule
      Toluene                (\cmpd{Ph.Me})    & \ce{CH3}  & \ce{H}  \\
      Ethyl benzene          (\cmpd{Ph.Et})    & \ce{C2H5} & \ce{H}  \\
      Chlorobenzene          (\cmpd{Ph.Cl})    & \ce{Cl}   & \ce{H}  \\
      \emph{o}-Chlorotoluene (\cmpd{o-Tol.Cl}) & \ce{CH3}  & \ce{Cl} \\
    \bottomrule
  \end{tabular}
\end{table}

In Table~\ref{tbl:compounds}, compounds~\cmpd{Ph.Me} and~\cmpd{Ph.Et}
are useful, whereas compounds~\cmpd{Ph.Cl} and~\cmpd{o-Tol.Cl}
are harmful.

\end{document}

请注意,我采用了标准方法,即化学编号用粗体表示,可以使用包选项进行设置。

答案2

以下是复合编号方案的一种方法(取自LaTeX 用户组上的重复帖子):

在此处输入图片描述

\documentclass{article}
\usepackage{booktabs}% http://ctan.org/pkg/booktabs
\usepackage{xparse}% http://ctan.org/pkg/xparse
\newcounter{compoundcntr} \newcounter{subcompoundcntr}[compoundcntr]
\renewcommand{\thesubcompoundcntr}{\thecompoundcntr\alph{subcompoundcntr}}
\NewDocumentCommand{\compound}{s o m}{%
  \IfBooleanTF{#1}
    {% \compound*[<label>]{<name>}
      \IfNoValueTF{#2}
        {#3}% \compound{<name>}
        {\stepcounter{compoundcntr}\refstepcounter{subcompoundcntr}#3, \thesubcompoundcntr\label{#2}}% \compound[<label>]{<name>}
    }
    {% \compound[<label>]{<name>}
      \ifnum\value{compoundcntr}=0\stepcounter{compoundcntr}\fi% Can use \compound[<label>]{<name>} to start first compound
      \IfNoValueTF{#2}
        {#3}% \compound*{<name>}
        {\refstepcounter{subcompoundcntr}#3, \thesubcompoundcntr\label{#2}}% \compound*[<label>]{<name>}
    }
}
\begin{document}
\begin{table}[t]
  \centering
    \begin{tabular}{lll}
      \toprule
      Compound & R$^1$ & R$^2$ \\
      \midrule
      \compound*[toluene]{Toluene} & CH3 & H \\
      \compound[ethylbenzene]{Ethyl benzene} & C2H5 & H \\
      \compound[chlorobenzene]{Chlorobenzene} & Cl & H \\
      \compound*[o-chlorotoluene]{o-chlorotoluene} & CH3 & Cl \\
      \bottomrule
    \end{tabular}
    \caption{Some compounds} \label{tbl:compounds}
\end{table}

In Table~\ref{tbl:compounds}, compound~\ref{toluene} and~\ref{ethylbenzene} are useful, whereas compound~\ref{chlorobenzene} and~\ref{o-chlorotoluene} are harmful. 
\end{document}

主要命令是\compound*[<label>]{<name>}。如果您指定带星号的版本 ( \compound*[<label>]{<name>}),则会创建一个新的“主化合物”(增加第一个数字)。不带星号的版本 ( \compound[<label>]{<name>}) 不会增加“主化合物”计数器,但会增加“子化合物”计数器。如果您指定了<label>(是的,这是可选的),它会打印化合物编号。否则,它不会。您在<name>(强制参数)中指定的任何内容都会打印为名称。

总之,可用的命令是

  • \compound*[<label>]{<name>}= 新的“主要化合物”,含化合物编号
  • \compound*{<name>}= 新的“主要化合物”,无化合物编号
  • \compound[<label>]{<name>}= 具有化合物编号的新“子化合物”
  • \compound{<name>}= 新的“子化合物”,无化合物编号

实际上\compound*{<name>}\compound{<name>}是相同的。您可以像往常一样使用 来引用化合物\ref{<label>},如示例中所示。还可以修改标签表示和命令用法。已注意允许以\compound而不是来开始第一个化合物\compound*


如果你对单一复合编号方案感兴趣,那么的构造\compound就简单多了。以下是此类构造的视图:

在此处输入图片描述

\documentclass{article}
\usepackage{booktabs}% http://ctan.org/pkg/booktabs
\usepackage{xparse}% http://ctan.org/pkg/xparse
\newcounter{compoundcntr}
\renewcommand{\thecompoundcntr}{\arabic{compoundcntr}}
\NewDocumentCommand{\compound}{s o m}{%
  \IfBooleanTF{#1}
    {% \compound*[<label>]{<name>}
      #3%
    }
    {% \compound[<label>]{<name>}
      \refstepcounter{compoundcntr}% Increment compound counter for correct referencing
      #3, \thecompoundcntr
      \IfNoValueTF{#2}
        {}% \compound{<name>}
        {\label{#2}}% \compound[<label>]{<name>}
    }
}
\begin{document}
\begin{table}[t]
  \centering
    \begin{tabular}{lll}
      \toprule
      Compound & R$^1$ & R$^2$ \\
      \midrule
      \compound[toluene]{Toluene} & CH3 & H \\
      \compound[ethylbenzene]{Ethyl benzene} & C2H5 & H \\
      \compound[chlorobenzene]{Chlorobenzene} & Cl & H \\
      \compound[o-chlorotoluene]{o-chlorotoluene} & CH3 & Cl \\
      \bottomrule
    \end{tabular}
    \caption{Some compounds} \label{tbl:compounds}
\end{table}

In Table~\ref{tbl:compounds}, compound~\ref{toluene} and~\ref{ethylbenzene} are useful, whereas compound~\ref{chlorobenzene} and~\ref{o-chlorotoluene} are harmful. 
\end{document}

使用\compound*[<label>]{<name>}没有多大意义,因为<label>被忽略了。

相关内容