chemmacros 包提供了scheme
创建类似图形的环境方案的模块,还可以创建方案列表,只需发出 即可生成\listofschemes
。太棒了!
现在,我想拥有subscheme
s,就像subfigure
环境对图形所做的那样。我该如何实现呢?此外,我还想让子方案标题显示在方案列表中(即,应调整其深度以不仅显示主标题,还显示第一级子标题)。当然,这不会影响其他“... 列表”。
答案1
为了实现子方案,我们可以利用包\DeclareCaptionSubType
的命令subcaption
(参见手册第 5 节)。
因此,我们应该scheme
使用定义一个新的newfloat
浮点数\DeclareFloatingEnvironment
,然后我们\DeclareCaptionSubType{scheme}
就可以获得我们subscheme
想要的环境。
\usepackage{chemmacros}
\usechemmodule{scheme}
\usepackage{newfloat}
\DeclareFloatingEnvironment[
fileext=los,
listname={List of Schemes},
name=Scheme,
placement=tbp,
within=none % don't reset numbering
]{scheme}
\DeclareCaptionSubType{scheme}
这应该允许您在文档中执行类似的操作:
\begin{scheme}[tb]
\centering
\begin{subscheme}{0.5\textwidth}
% your chemical structure
\caption{Your subcaption.}
\label{sch:subscheme-1}
\end{subscheme}%
\begin{subscheme}{0.5\textwidth}
\centering
% another chemical structure
\caption{Your other subcaption.}
\label{sch:subscheme-2}
\end{subscheme}
\caption{Structures.}
\label{sch:structures}
\end{scheme}
太棒了!我还应该指出,chemmacros 手册非常有用,其中包括以下内容(释义):
\begin{scheme}
仅scheme
当前导码末尾不存在环境时, scheme 模块才会定义浮动环境。(第 7.9 节)
因此,我们可以定义自己的方案环境(如上所述),而不会干扰 chemmacros 方案模块。现在我们有了子方案,方案列表可能看起来有点无聊(对我来说确实如此),因为实际化学结构的标题位于副标题。
这有点难以实现,但简而言之,你必须在包参数list=true
中设置subcaption
,也 \setcounter{losdepth}{2}
(假设您已fileext=los
在\DeclareFloatingEnvironment
)之前的某个地方设置\listofschemes
。
这是一个完整的 MWE,它显示一个包含子方案、子图、显示子标题的方案列表和图形列表的文档。
\documentclass[a4paper]{article}
\usepackage[english]{babel}
% my original document happened to use lualatex
\usepackage[utf8]{luainputenc}
\usepackage{fontspec}
\usepackage{graphicx}
\usepackage[%
% the following two lines are not required
margin=0pt,font+=small,labelformat=parens,%
labelsep=space,justification=centering,skip=6pt,%
% list=true must be used *in combination with* \setcounter{\Zdepth}{2}
list=true%
]{subcaption}
% not loading tocloft gives "no counter lofdepth defined"
% titles makes tocloft surrender control of the TOC title font, spacing, etc.to the document's default behaviour (otherwise tocloft uses its own settings)
\usepackage[titles]{tocloft}
\usepackage{chemmacros}
\usechemmodule{scheme}
\usepackage{newfloat}
\DeclareFloatingEnvironment[
fileext=los,
listname={List of Schemes},
name=Scheme,
placement=tbp,
within=none % other options are within={section,chapter}
]{scheme}
\DeclareCaptionSubType{scheme}
\usepackage{chemfig}
% print atoms in sans-serif instead of serif, looks better
\renewcommand*\printatom[1]{\ensuremath{\mathsf{#1}}}
\usepackage{hyperref}
\begin{document}
\setcounter{losdepth}{2}
\setcounter{lofdepth}{1} % not strictly necessary, depth=1 is default
\tableofcontents
\listofschemes
\listoffigures
\section{Chemistry}
\subsection{Dyes}
\begin{scheme}[tb]
\centering
\begin{subscheme}{0.5\textwidth}
\centering
% define invisible bond (for use between the charged species)
\definesubmol\nobond{-[,1.2,,,draw=none]}
\footnotesize\chemfig[atom sep=2.0em]{[7]H_3C-N(-[6]CH_3)-[:30]*6(=-(*6(=\chembelow{S}{\scriptscriptstyle\oplus}(!\nobond\chemabove{Cl}{\scriptscriptstyle\ominus})-(*6(-=(-N(-[1]CH_3)-[6]CH_3)-=-=))--N=-))--=-)}
\caption[Methylene blue]{Methylene blue.}
\label{sch:MB-structure}
\end{subscheme}\,%
\begin{subscheme}{0.5\textwidth}
\centering\footnotesize
\chemfig[atom sep=2.0em]{([:-30]*6((-=^[::+60]-[::+60]=^[::+60]-[::+60])=-(-OH)=(-N=[::60]N-*6(=(-OH)-=(-S(=[::+90]O)(=[::-90]O)(-O^\ominus\,Na^\oplus))-*6(-=(-NO_2)-=--)=-))-=-))}
\caption[Eriochrome black T]{Eriochrome black T.}
\label{sch:EBT-structure}
\end{subscheme}
\caption[MB and EBT dyes]{MB and EBT.}
\label{sch:MB-EBT-structures}
\end{scheme}
\begin{figure}[tbh]
\centering
\begin{subfigure}[b]{0.5\linewidth}
\centering
\includegraphics[width=0.97\textwidth]{example-image-a}
\caption{}
\label{fig:031-005}
\end{subfigure}%
\begin{subfigure}[b]{0.5\linewidth}
\centering
\includegraphics[width=0.97\textwidth]{example-image-b}
\caption{}
\label{fig:031-014}
\end{subfigure}
\caption[Photographs of cell]{Nice photographs.}
\label{fig:031}
\end{figure}
\end{document}
环境:TeXLive 2020、chemmacros v5.11、newfloat v1.1l、caption v1.3。
在弄清楚这种行为时,我得到了很多帮助化学宏指令,副标题和新浮点数包装手册,以及其他问题(并不总是密切相关):
新的图形环境
定义新型漂浮环境
如何编辑方案列表中的方案编号?
如何更改图形列表中子图的显示?
\listoffigures 不能与 \subfig 一起使用
修改 \listofschemes 输出以匹配回忆录类
\setcounter{目录深度}