有没有办法让表格和图片出现在同一个目录中,按照文档中的出现顺序排列,但单独编号?完全一样这个帖子,但表格和图片却按照页码顺序混在一起?我知道这听起来很奇怪,但我有一个应用程序特别需要这种格式。
编辑:感谢贾加斯,主要问题已解决。但是,这稍微打乱了格式。要使用他的 MWE:
\documentclass{article}
\usepackage{lipsum,tocloft}
\makeatletter
\newcommand{\listfloatname}{List of Floats}
\newlistof{float}{flt}{\listfloatname}
\long\def\@caption#1[#2]#3{%
\par
\refstepcounter{float}%
\addcontentsline{\csname ext@#1\endcsname}{#1}%
{\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}%
\addcontentsline{flt}{float}%
{\protect\numberline{\csname thefloat\endcsname}{\ignorespaces #2}}%
\begingroup
\@parboxrestore
\if@minipage
\@setminipage
\fi
\normalsize
\@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
\endgroup}
\makeatother
% my formatting
\renewcommand{\cfttabfont}{Table }
\renewcommand{\cftfigfont}{Figure }
\renewcommand{\cfttabaftersnum}{:}
\renewcommand{\cftfigaftersnum}{:}
\begin{document}
\listoffloat
\listoftables
\listoffigures
\newpage
\lipsum[1]
\begin{figure}
\caption{First figure.}
\end{figure}
\begin{table}[h]
\caption{First table.}
\end{table}
\lipsum[1]
\begin{figure}[h]
\caption{Second figure.}
\end{figure}
\lipsum[1]
\begin{table}
\caption{Second table.}[h]
\end{table}
\lipsum[1]
\end{document}
答案1
使用包可以实现以下目的tocloft
:
\documentclass{article}
\usepackage{lipsum,tocloft}
\makeatletter
\newcommand{\listfloatname}{List of Floats}
\newlistof{float}{flt}{\listfloatname}
\long\def\@caption#1[#2]#3{%
\par
\refstepcounter{float}%
\addcontentsline{\csname ext@#1\endcsname}{#1}%
{\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}%
\addcontentsline{flt}{float}%
{\protect\numberline{\csname thefloat\endcsname}{\ignorespaces #2}}%
\begingroup
\@parboxrestore
\if@minipage
\@setminipage
\fi
\normalsize
\@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
\endgroup}
\makeatother
\begin{document}
\listoffloat
\lipsum[1]
\begin{figure}
\caption{First figure.}
\end{figure}
\lipsum[1]
\begin{table}
\caption{First table.}
\centering
\begin{tabular}{cccc}
\multicolumn{1}{c}{$C$} & \multicolumn{1}{c}{$M_i$} & \multicolumn{1}{c}{$m$} & \multicolumn{1}{c}{$G'_i$} \\ \hline
28,3 & 1 & 22 & 43 \\
28,4 & 3 & 25 & 141
\end{tabular}
\end{table}
\lipsum[1]
\begin{figure}
\caption{Second figure.}
\end{figure}
\lipsum[1]
\begin{table}
\caption{Second table.}
\centering
\begin{tabular}{cccc}
\multicolumn{1}{c}{$C$} & \multicolumn{1}{c}{$M_i$} & \multicolumn{1}{c}{$m$} & \multicolumn{1}{c}{$G'_i$} \\ \hline
28,2 & 2 & 21 & 80 \\
28,4 & 3 & 25 & 141
\end{tabular}
\end{table}
\lipsum[1]
\end{document}
如果编号应该分开,则更改:
\addcontentsline{flt}{float}%
{\protect\numberline{\csname thefloat\endcsname}{\ignorespaces #2}}%
到
\addcontentsline{flt}{float}%
{\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}%
不同之处在于\csname thefloat\endcsname
改为\csname the#1\endcsname
。
更新答案:
以下代码将生成具有浮点名称的 PDF。
\documentclass{article}
\usepackage{lipsum,tocloft}
\makeatletter
\newcommand{\listfloatname}{List of Floats}
\newlistof{float}{flt}{\listfloatname}
\long\def\@caption#1[#2]#3{%
\par
\refstepcounter{float}%
\addcontentsline{\csname ext@#1\endcsname}{#1}%
{\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}%
\addcontentsline{flt}{#1}%
{\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}%
\begingroup
\@parboxrestore
\if@minipage
\@setminipage
\fi
\normalsize
\@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
\endgroup}
\makeatother
% my formatting
\renewcommand{\cfttabfont}{Table }
\renewcommand{\cftfigfont}{Figure }
\renewcommand{\cfttabaftersnum}{:}
\renewcommand{\cftfigaftersnum}{:}
\begin{document}
\listoffloat
\listoftables
\listoffigures
\newpage
\lipsum[1]
\begin{figure}
\caption{First figure.}
\end{figure}
\begin{table}[h]
\caption{First table.}
\end{table}
\lipsum[1]
\begin{figure}[h]
\caption{Second figure.}
\end{figure}
\lipsum[1]
\begin{table}
\caption{Second table.}[h]
\end{table}
\lipsum[1]
\end{document}