好吧,我搜索了 SE 网站,但似乎其他人都在问如何避免附加图形,而他们的意外并不是解决我的问题的一个很好的方法 --- 我正在寻找一种方法(如果可能的话,一行命令),这样我就可以将图形保持在文本中出现的位置,或者将所有内容扫描到文件的最后(包括参考书目在内的所有文本之后),同时保持它们的相对顺序。有什么想法吗?
答案1
对于第一种(有风险(见下面的链接))可能性(强制所有数字准确出现在代码中声明的位置,抑制浮动),您可以使用float
包及其\floatplacement
命令以及H
说明符:
\documentclass{article}
\usepackage{float}
\floatplacement{figure}{H}
\begin{document}
<contents>
\end{document}
当然,这也有一些缺点:`H` 说明符的缺点。
对于第二个(将所有图片移至文档末尾),endfloat
可以使用包。例如,以下内容:
\documentclass{article}
\usepackage[nomarkers,figuresonly]{endfloat}
\begin{document}
<contents>
\end{document}
将导致仅figure
环境(也不table
或其他用户定义的浮点数)被放置在文档的末尾,并且不会在图形原来的位置产生任何标记。
请参阅包文档来查看它提供的所有其他选项。
答案2
还有无花果帽包,它有两个简单的开关,用于将所有浮点数转发到末尾\figcapson
(默认启用)和\figcapsoff
。
\documentclass{article}
\usepackage[printfigures]{figcaps} % printfigures to display figure floats
%\figcapsoff % enable to keep floats in their positions
\begin{document}
<contents>
\end{document}
请注意,它figcaps
提供的选项要少得多,endfloat
而且如果您不想要的话,似乎没有(简单的)方法可以阻止它除了打印图形本身之外还打印图形标题。
答案3
figcaps
这两种方法都不能endFloat
按预期为我工作,因为我的一些图片是横向模式,我想将正文和附录中的图形分开。
虽然有点冗长,但这个解决方法效果很好,但如果有更方便的方法来做到这一点,我会很高兴。
梅威瑟:
\documentclass[a4paper,12pt]{scrartcl}
\usepackage{blindtext} % lorem ipsum
\usepackage{chngcntr} % for renumbering appendix
\usepackage{comment} % for choosing placement of figure in text (W for the "work-in-progress" and S for "submit" version)
\usepackage{pdflscape} %adds PDF support to the landscape environment of package lscape
\usepackage{graphicx}
\usepackage{flafter} % no figures before section headings
% creating a conditional
\newif\ifS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% set this to false if you want the figures in the text
% and to true if you want them at the end (S stands for "submit")
\Strue % \Sfalse or \Strue
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%this tells the comment-package which parts to include and exclude
\ifS
\includecomment{S}
\excludecomment{W}
\else
\excludecomment{S}
\includecomment{W}
\fi
%---------------------------------------
\begin{document}
\section{Intro}
% define figure1
\newcommand{\figureA}{
\begin{figure}
\includegraphics[width=\textwidth]{example-image-a}
\caption{figureA}
\label{fig:figureA}
\end{figure}
}
%place figure1 if this is the the work-in-progress (W) version
\begin{W}
\figureA
\end{W}
%define figure2
\newcommand{\figureB}{
\begin{landscape}\begin{figure}[!htb]
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{example-image-B}
\caption{figureB}
\label{fig:figureB}
\end{figure}
\end{landscape}
}
%place figure 2 if the work-in-progress (W) version
\begin{W}
\figureB
\end{W}
\Blindtext % lorem ipsum
%-----------------------------------------------
% When it is time to submit and you want your figures at the end, you can place your figures & tables at the end, but before appendix.
% Remember that this controlled by \Strue & \Sfalse in the preabmle
\cleardoublepage
\begin{S}
\listoffigures
\figureA
\figureB
\end{S}
%------------------------------------------
\cleardoublepage
\appendix
\counterwithin{figure}{section}
\counterwithin{table}{section}
\section{Appendix}\label{appendix}
\begin{figure}[!htb]
\includegraphics[width=8cm]{example-image-golden}
\caption{Golden}
\label{fig:Golden}
\end{figure}
\begin{figure}[!htb]
\includegraphics[width=8cm]{example-grid-100x100pt}
\caption{Grid}
\label{fig:Grid}
\end{figure}
\end{document}