对于我正在编写的一本新书,目前处于最终提交阶段,出版商要求我们在示例开始时就将图表放在其中。例如,如果我将图表作为问题的一部分,出版商希望图表在问题结束、解决方案开始时就出现。不幸的是,图表出现在输出 (PDF) 文件的下一页,我不知道该怎么做。我的问题是:如何将图表放在 LaTeX 文档中我们希望的准确位置?可以借助任何特殊软件包来实现吗?非常感谢您的帮助!
答案1
不要使用浮点数,因为浮点数会告诉 LaTeX 将内容移动到“最佳位置”。相反,使用\captionof
或capt-of
包caption
和center
环境或类似环境来补偿figure
垂直间距的损失。该示例演示了这可以很好地生成图形列表,但由于 Okular-on-X 错误,我现在无法制作像样的图像。
\documentclass[]{article}
\usepackage{capt-of}
\usepackage{graphics}
\begin{document}
\listoffigures
\begin{center}\includegraphics{example-image-a}\par\captionof{figure}{A figure.}\end{center}
\begin{center}\includegraphics{example-image-b}\par\captionof{figure}{A figure.}\end{center}
\begin{center}\includegraphics{example-image-c}\par\captionof{figure}{A figure.}\end{center}
\end{document}
答案2
可以借助任何特殊包来实现这一点吗?
所以,如果我理解了这个问题,发行商希望按以下顺序保留所有三个元素:问题、图像和解决方案。我不清楚整个块是否应该作为漂浮或者完全按照文本中的要求放置在特定段落之间。在这里,我假设前者,即ProblemSolution
浮点数。这意味着 LaTeX 将以与环境中的图像完全相同的方式将问题解决方案块放置figure
为浮点数,但是所有这三个元素始终组合在一起。
只需将所有东西都放入环境中即可实现目标figure
。但是,漂浮由于一些附加功能,包在这里非常方便(见下面的示例)。例如,\caption
将使用自定义标签,您可以制作自定义浮动列表,您可以设置浮动样式等。最重要的宏是\newfloat
。它创建一个自定义环境,然后里面的所有内容都将以与其他标准浮动完全相同的方式移动。
在示例中,请注意ProblemsSolution
环境在文本中的确切位置以及它们在 PDF 中的出现位置。例如,第一个问题放在第一段之后,但由于 LaTeX 找不到足够的空间,它出现在 PDF 的下一页顶部。第二段和第三段ProblemSolution
在 PDF 中显示为请求因为现在有足够的空间容纳它们。在这三个实例中,所有内容仍然组合在一起。
这个例子:
\documentclass[12pt]{book}
\usepackage{graphicx}
\usepackage{float}
\usepackage{caption}
\usepackage[colorlinks]{hyperref}
\usepackage{kantlipsum}
\newfloat{problem}{tbhp}{psf}[chapter]
\floatname{problem}{Problem}
\newenvironment{ProblemSolution}{%
\begin{problem}
\noindent\leftskip=2cm\rightskip=2cm\small
}{\end{problem}}
\captionsetup[problem]{font=small,labelfont=bf,width=\dimexpr\linewidth-4cm}%
% \usepackage{showframe}
% \renewcommand*\ShowFrameLinethickness{0.2pt}
% \renewcommand*\ShowFrameColor{\color{blue}}
\title{The Title}
\author{First Last}
\date{}
\begin{document}
\maketitle
\listof{problem}{List of Problems}
\chapter{First one}
First paragraph.
\kant[1]
\begin{ProblemSolution}
\paragraph{Problem:}
Some notes about a problem that should be a little longer and span multiple lines.
\begin{center}
\includegraphics[width=0.5\linewidth,height=0.25\linewidth]{example-image-a}
\caption{Caption about the first problem}
\end{center}
\paragraph{Solution:}
Something about solution.
\end{ProblemSolution}
Second paragraph.
\kant[2]
Third paragraph.
\kant[3]
Fourth paragraph.
\kant[4]
\begin{ProblemSolution}
\paragraph{Problem:}
Some notes about a problem that should be a little longer and span multiple lines.
\begin{center}
\includegraphics[width=0.5\linewidth,height=0.25\linewidth]{example-image-b}
\caption{Caption about the second problem}
\end{center}
\paragraph{Solution:}
Something about solution.
\end{ProblemSolution}
\chapter{Second two}
Fifth paragraph.
\kant[5-6]
\begin{ProblemSolution}
\paragraph{Problem:}
Some notes about a problem that should be a little longer and span multiple lines.
\begin{center}
\includegraphics[width=0.5\linewidth,height=0.25\linewidth]{example-image-c}
\caption{Caption about the third problem}
\end{center}
\paragraph{Solution:}
Something about solution.
\end{ProblemSolution}
Sixth paragraph.
\kant[7]
\end{document}