- 使用 endfloat 和 graphicx 包。
- 我在第 1 章中放置了一张图,其图号为 2.1。
- 该位置的一个框中显示:
[ Figure 1 about here ]
- 我们如何才能让盒子读取正确的图号?它不是图 1。
- 其次,我们怎样才能让该图采用正确的图号 1.1。因为该图是在第 1 章,而不是第 2 章?原来是图 2.1。但我们希望改为正确的图 1.1。
例子:
\documentclass[a4paper,12pt,twoside]{book}
\usepackage{graphicx}
\usepackage[nolists]{endfloat}
\begin{document}
\chapter{This is Chapter 1}
Some text in chapter 1. See my figure \ref{fig:MyFigure}.
\begin{figure}
\centering
\includegraphics{Figures/MyFigure.JPG}
\caption{My caption for this figure}
\label{fig:MyFigure}
\end{figure}
\let\cleardoublepage\clearpage
\chapter{This is Chapter 2}
Some text in chapter 2.
\end{document}
答案1
引用endfloat
文献第 1 页第一句:
这种样式的目的是将所有图表单独放在文章末尾名为“图表”的部分的页面上。
换句话说endfloat
,不是专为以命令为特色的文档类别\chapter
(书籍、报告等)设计。
作为一种快速解决方法,您可以在序言中添加以下内容:
\usepackage{chngcntr}
\counterwithout{figure}{chapter}
这会将figure
计数器与chapter
计数器分离,即数字将简单地编号为 1、2、...
将图形放在文档的末尾,但对它们进行编号,就像将它们放在章节内一样(图 1.1,......)似乎不可能endfloat
。
编辑:我应该更仔细地阅读文档。2.4 版endfloat
引入了\processdelayedfloats
宏。将此宏放在每章末尾;这“将处理目前为止所有未处理的表格和图表”(第 6 页)。浮标也将被正确编号。
编辑 2:我想您必须忍受每章末尾的数字,但这里是对“关于这里”标题的修复。
\documentclass[12pt]{book}
\usepackage[nolists]{endfloat}
% Use the following only together with \processdelayedfloats
\usepackage{chngcntr}
\counterwithin{postfig}{chapter}
\begin{document}
\chapter{This is Chapter~1}
Some text in chapter~1. See my figure \ref{fig:FirstFigure}.
\begin{figure}
\centering
\rule{1cm}{1cm}
\caption{First figure}
\label{fig:FirstFigure}
\end{figure}
\processdelayedfloats
\chapter{This is Chapter~2}
Some text in chapter~2.
\begin{figure}
\centering
\rule{1cm}{1cm}
\caption{Second figure}
\label{fig:SecondFigure}
\end{figure}
\processdelayedfloats
\end{document}
答案2
要将 [ 图 1 关于此处 ] 更改为 [ 图 1.3 关于此处 ],您可以重新定义\thepostfigure
并\theposttable
:
\renewcommand\thepostfigure{\arabic{chapter}.\arabic{postfig}}
\renewcommand\theposttable{\arabic{chapter}.\arabic{posttbl}}
然后将其与
\processdelayedfloats
\setcounter{postfig}{0}
\setcounter{posttbl}{0}
在每章末尾。您需要使用 setcounter 命令重置每章的计数器,否则您将得到例如第 1 章和第 2 章中的图 1.1、图 1.2、图 1.3、图 2.4、图 2.5 等
答案3
- 以下 MWE 显示了如何将所有图表和表格放在章节末尾,并且正确做法是:
- [图 XX 在此处] 或 [表 XX 在此处]
- 多个浮动元素也放置在同一页面上。
- 这对于任何撰写论文的人来说都应该是有用的。
\documentclass[a4paper,12pt,twoside]{book}
\usepackage{graphicx}
\usepackage[nolists]{endfloat}
\renewcommand{\efloatseparator}{\mbox{}}
\begin{document}
\chapter{This is Chapter 1}
Some text in chapter 1. See my figure \ref{fig:MyFigure1} and my table \ref{tab:MyTable1}.
\renewcommand{\tablename}{Figure} % if no babel
\renewcommand{\tableplace}{%
\begin{center}
[Ian says: Table \ref{tab:MyTable1} about here]
\end{center}}
\begin{table}
\begin{tabular}{ll}
1 & 2 \\
3 & 4 \\
\end{tabular}
\label{tab:MyTable1}
\end{table}
\renewcommand{\figurename}{Figure} % if no babel
\renewcommand{\figureplace}{%
\begin{center}
[Ian says: Figure \ref{fig:MyFigure1} about here]
\end{center}}
\begin{figure}
\centering
\includegraphics{Figures/MyFigure.JPG}
\caption{My caption for this figure}
\label{fig:MyFigure1}
\end{figure}
\renewcommand{\figurename}{Figure} % if no babel
\renewcommand{\figureplace}{%
\begin{center}
[Ian says: Figure \ref{fig:MyFigure2} about here]
\end{center}}
\begin{figure}
\centering
\includegraphics{Figures/MyFigure.JPG}
\caption{My caption for this figure}
\label{fig:MyFigure2}
\end{figure}
\processdelayedfloats
\let\cleardoublepage\clearpage
\chapter{This is Chapter 2}
Some text in chapter 2. See my figure \ref{fig:MyFigure3}.
\renewcommand{\figurename}{Figure} % if no babel
\renewcommand{\figureplace}{%
\begin{center}
[Ian says: Figure \ref{fig:MyFigure3} about here]
\end{center}}
\begin{figure}
\centering
\includegraphics{Figures/MyFigure.JPG}
\caption{My caption for this figure}
\label{fig:MyFigure3}
\end{figure}
\processdelayedfloats
\let\cleardoublepage\clearpage
\chapter{This is Chapter 3}
Some text in chapter 3.
\end{document}