使用 endfloat 删除所有图形,但保留对它们的引用

使用 endfloat 删除所有图形,但保留对它们的引用

我正在尝试删除文档中的所有图表和表格,但保持文本内的引用仍然正确(即图 8/9/x)。

我找到了以下答案这里这允许不处理所有浮点数/表格(这很好,因为我已经在使用这个包)。

但是,我希望仍然保留图形计数等,以便文本中对图形的引用仍然有效。此外,如果我使用该subfloat包,它还必须删除子标签(即 a) 和 b))。

梅威瑟:

\documentclass{article}
\usepackage{graphicx}
\usepackage{float}
\usepackage{subfig}

%%% Remove the next two lines if you want the figures at their place    
\usepackage[nolists,nomarkers]{endfloat}
\renewcommand{\processdelayedfloats}{}

\usepackage{lipsum}% mock text

\begin{document}

\lipsum[1]

\begin{figure}
\includegraphics[width=.3\textwidth]{example-image-a}
\caption{Whatever}
\label{fig:A}
\end{figure}

\lipsum[2]

\begin{figure}
\includegraphics[width=.3\textwidth]{example-image-a}
\caption{Whatever}
\label{fig:B}
\end{figure}

\lipsum[3]

\begin{table}[htp]
A table
\caption{Something}
\label{tab:A}
\end{table}

\lipsum[4]

\begin{figure}[H]
\centering
\subfloat[]{\includegraphics[width=0.50\textwidth]{images/s.pdf}\label{sv}}
\hfil
\subfloat[]{\includegraphics[width=0.50\textwidth]{images/p.pdf}\label{pv}}
\caption{(a) shows the orthogonal plots of variables and their contribution on PC1 and PC2 while (b) highlights the individual contribution of each site. Ellipses for north and south in (b) are for 1 $\sigma$.}
\label{svp}
\end{figure} 

\end{document}

答案1

根据您的 MWE,我不太确定您希望输出什么样的表格和图片列表,以及表格是否应该放在文本中。考虑到该endfloat包的选项,我假设您确实不想要表格和图片列表,而想要表格放在文本中。我从未见过有这套特定要求的期刊,但有很多期刊。

处理任意浮动内容及其位置、图形和列表中长标题和短标题的使用、文本中的标记以及交叉引用的强大解决方案非常麻烦。对于环境figure仅包括\includegraphics、标题、子浮动和标签的特定 MWE,以下内容应该有效。

  1. 添加floatsubfig包以便 MWE 编译
  2. \label在每个图表中添加一个,以便进行交叉引用
  3. endfloat放弃软件包中的很多功能
  4. 重载\@makecaption\includegraphics\subfloat宏,使它们除了吞噬其参数外不做任何其他事情

请注意,如果您使用hyperref包修补,\@makecaption则可能会更加复杂,具体取决于您希望反向引用如何运行。

事情之所以困难,是因为你需要输出环境中的部分内容float,特别是label为了让交叉引用工作,但你并不需要环境的其余部分。可能有一些很酷的技巧,你可以重新定义它\label以吞噬它之前和之后的所有内容,但这需要大量工作。

\documentclass{article}
\usepackage{graphicx}

\usepackage{float}
\usepackage{subfig}

%%% Remove the next two lines if you want the figures at their place    

\makeatletter

\let\OldAtEndDocument\@enddocumenthook
\usepackage[figuresonly,nolists,nomarkers]{endfloat}
\let\@enddocumenthook\OldAtEndDocument
\efloat@AtEndDocument{\processdelayedfloats}
\renewcommand\efloatseparator{}
\renewcommand\efloatbegin{}
\renewcommand\efloatendlist{}

\renewcommand{\@makecaption}[2]{}
\renewcommand{\includegraphics}[2][]{}
\long\def\sf@@@subfloat#1[#2][#3]#4{#4\endgroup\ignorespaces}
\makeatother

\usepackage{lipsum}% mock text

\begin{document}
Figure \ref{fig:A} and \ref{fig:B} Table \ref{tab:A} and subfloat \ref{svp}, \ref{sv}, and \ref{pv}

\lipsum[1]

\begin{figure}
\includegraphics[width=.3\textwidth]{example-image-a}
\caption{Whatever}
\label{fig:A}
\end{figure}

\lipsum[2]

\begin{figure}
\includegraphics[width=.3\textwidth]{example-image-a}
\caption{Whatever}
\label{fig:B}
\end{figure}

\lipsum[3]

\begin{table}[htp]
A table
\caption{Something}
\label{tab:A}
\end{table}

\lipsum[4]

\begin{figure}[H]
\centering
\subfloat[]{\includegraphics[width=0.50\textwidth]{images/s.pdf}\label{sv}}
\hfil
\subfloat[]{\includegraphics[width=0.50\textwidth]{images/p.pdf}\label{pv}}
\caption{(a) shows the orthogonal plots of variables and their contribution on PC1 and PC2 while (b) highlights the individual contribution of each site. Ellipses for north and south in (b) are for 1 $\sigma$.}
\label{svp}
\end{figure}

\lipsum[5]


\end{document}

相关内容