让一些数字出现在两个列表中:数字列表和特殊数字列表

让一些数字出现在两个列表中:数字列表和特殊数字列表

我的论文中有许多图表。其中有些图表我想同时包含在listof:标准的“图表列表”和非标准的“学习系统列表”。

例如,我有以下图表,它是一个研究系统。因此,它应该在图表列表中,也应该在研究系统列表中。请注意两个列表中的不同标题。

数字

我希望它出现在标准图形列表中,如下所示:

洛夫

并同时出现在自定义学习系统列表中,如下所示:

损失

答案1

以下是使用 caption 包提供的功能的一种可能解决方案。基本思路是system使用声明一个名为 的新浮点数\DeclareCaptionType,然后使用一个带有一个强制参数的新命令,该命令只会增加计数器system,并将其参数写入 LoF 和新列表:

\documentclass{article}
\usepackage{caption}

\newcommand\listofsystemname{List of Study Systems}
\DeclareCaptionType[fileext=sys]{system}[\listofsystemname]

\renewcommand\thesystem{\Roman{system}}

\newcommand\DoubleCaption[1]{%
  \stepcounter{system}%
  \caption{Study system \thesystem: #1}
  \addcontentsline{sys}{figure}{\protect\numberline{\thesystem}#1}}

\begin{document}

\listofsystems
\listoffigures

\begin{figure}
  \centering A
  \DoubleCaption{IEEE 13-bus unbalanced}
  \label{fig:test1}
\end{figure}

\begin{figure}
  \centering B
  \caption{A standard figure caption}
  \label{fig:test2}
\end{figure}

\begin{figure}
  \centering C
  \DoubleCaption{IEEE 16-bus balanced}
  \label{fig:test3}
\end{figure}

\end{document}

在此处输入图片描述

根据实际需要,我之前的解决方案可能有点过头了;毕竟,如果唯一的要求是“新的列表”,那么创建新的浮点类型并不是必要的。在这种情况下,简单使用\@starttoc就足够了:

\documentclass{article}

\newcommand\listofsystemname{List of Study Systems}

\newcounter{system}
\renewcommand\thesystem{\Roman{system}}

\makeatletter
\newcommand\listofsystems{\section*{\listofsystemname}\@starttoc{sys}}
\makeatother

\newcommand\DoubleCaption[1]{%
  \stepcounter{system}%
  \caption{Study system \thesystem: #1}
  \addcontentsline{sys}{figure}{\protect\numberline{\thesystem}#1}}

\begin{document}

\listofsystems
\listoffigures

\begin{figure}
  \centering A
  \DoubleCaption{IEEE 13-bus unbalanced}
  \label{fig:test1}
\end{figure}

\begin{figure}
  \centering B
  \caption{A standard figure caption}
  \label{fig:test2}
\end{figure}

\begin{figure}
  \centering C
  \DoubleCaption{IEEE 16-bus balanced}
  \label{fig:test3}
\end{figure}

\end{document}

答案2

我自己就是这么做的:

在序言中增加以下内容:

% Add a list of study systems
\usepackage{tocloft}
\newcommand{\tocloftclearpage}{\cleardoublepage\phantomsection}
                    % tocloft won't print listofs on new pages otherwise
\newcommand{\liststudysystemname}{List of Study Systems}
\newlistof[chapter]{studysystem}{sts}{\liststudysystemname}
\newcounter{studysystemdiagram}
\newcommand{\studysystem}[1]{%
    \stepcounter{studysystemdiagram}
    \addcontentsline{sts}{figure}{\protect\numberline{\Roman{studysystemdiagram}}#1}}
\newcommand{\studysystemcaption}[1]{Default caption}
\newcommand{\studysystemcaptionprefix}{Study system \Roman{studysystemdiagram}:\ }
\newcommand{\definesystemlabel}[1]{%
    \newcommand{#1}{\Roman{studysystemdiagram}}}

然后对于每个“特殊图形”,更新其图形环境类似于此:

\begin{figure}
    \centering
    \includegraphics[width=0.65\textwidth]{Figs/systemIEEE13bus}
    \renewcommand{\studysystemcaption}{IEEE 13-bus unbalanced test feeder with the augmented DER unit and load.}
    \studysystem{\studysystemcaption}
    \caption[\studysystemcaptionprefix\studysystemcaption]{\studysystemcaptionprefix \studysystemcaption\ Loads and shunt capacitors of the original test feeder are not shown.}
    \label{fig:SPAACE_systemIEEE13bus}
\end{figure}

相关内容