![不良行为:无论如何,编译器都会跳过图片进入下一页](https://linux22.com/image/317308/%E4%B8%8D%E8%89%AF%E8%A1%8C%E4%B8%BA%EF%BC%9A%E6%97%A0%E8%AE%BA%E5%A6%82%E4%BD%95%EF%BC%8C%E7%BC%96%E8%AF%91%E5%99%A8%E9%83%BD%E4%BC%9A%E8%B7%B3%E8%BF%87%E5%9B%BE%E7%89%87%E8%BF%9B%E5%85%A5%E4%B8%8B%E4%B8%80%E9%A1%B5.png)
这让我发疯了,我真的希望有人能告诉我发生了什么事......
在此打印屏幕中,您可以看到代码与编译结果的比较:
无论我将图像缩小到多小(0.1\textwidth
,0.01\textwidth
...),我都无法使其出现在正确的页面中。图像会单独转到下一页。
该图像的尺寸为 2506x2014 像素,因此,除了0.3\textwidth
图形下方的两行文字之外,页面底部还有足够的空间。
如果您需要有关代码的任何其他信息,请告诉我。
编辑:上传了带有图像的简化版本的 .tex 项目(它可以很好地编译并像以前一样跳过图像),可以在此处下载:http://www.mediafire.com/download/uztssz91s9yyyru/latex_test.zip
自包含的 MWE 不需要下载:
\documentclass[12pt]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\renewcommand{\familydefault}{\sfdefault} % modern style
\usepackage{graphicx}
\usepackage{multicol}
\setlength\columnsep{20pt}
\pagenumbering{alph}
\pagestyle{plain} % page numbers but no headers
\usepackage[hmargin=1.9cm,vmargin=1.9cm,footskip=1cm]{geometry}
\begin{document}\large
\section{La columna vertebral}
\begin{figure}[!htb]
\centering
\rule{3cm}{13cm}
\caption[Columna vertebral adulta] % index text
{Columna vertebral adulta. 7 vértebras cervicales, 12 torácicas, 5
lumbares, 5 sacras y las 4 últimas, fusionadas, forman el
cóccix.} % text under figure
\label{} % for ref and pageref
\end{figure}
\begin{multicols}{2}
\textbf{La columna vertebral adulta} tiene curvas en forma de
S. Está formada por huesos llamados vértebras y por discos
intervertebrales cartilaginosos. Si las curvas están bien
estructuradas, la musculatura del tronco trabaja de una manera
armónica y habitualmente se adoptan posturas correctas, los discos
intervertebrales están sometidos a una presión adecuada.
En el caso de \textbf{la columna vertebral infantil}, dentro del útero
materno, el feto descansa con la columna vertebral flexionada y las
piernas dobladas. Por ello, al principio, el recién nacido tiene la
columna vertebral doblada hacia delante y no tiene las curvas en S
como el adulto. Poco a poco, se va formando la curvatura lumbar cuando
el bebé yace estirado de espalda sobre una superficie semidura. Más
adelante, cuando se pone en la posición denominada de la esfinge, boca
abajo y apoyado sobre los antebrazos estira la cabeza (ver Fig.5.3),
se va reforzando la musculatura que recubre la columna y se va
formando la curvatura de la zona cervical.
Las curvas en S van alcanzando su mayor desarrollo cuando el niño
empieza a andar y no están bien formadas hasta los cuatro años,
aproximadamente. (Fig. \ref{006}).La forma definitiva de la columna
vertebral se alcanza entre los cinco y los siete años.
\end{multicols}
\begin{figure}[!htb]
\centering
\rule{2cm}{5cm}
\caption[Columna vertebral bien formada] % index text
{Columna vertebral bien formada: A: curva cervical / B: curva
torácica / C: curva lumbar / D: curva sacra.} % text under figure
\label{006} % for ref and pageref
\end{figure}
% New subsection:
\subsection{Principales causas de los problemas de columna}
\textbf{a) Falta de entrenamiento de la musculatura}
\begin{figure}[!htb]
\centering
\rule{1cm}{1cm}
\caption[Bebé con el tronco inmovilizado] % index text
{Es aconsejable tener poco tiempo al bebé con el tronco
inmovilizado.} % text under figure
\label{008} % for ref and pageref
\end{figure}
\end{document}
答案1
这是与最近发现的有关 marginpars 的错误类似的错误multicol
。在页面末尾,LaTeX 的正常输出例程会重置变量\@mparbottom
和\@textfloatsminheight
。该multicol
包忽略了这样做,因此\@textfloatsminheight
仍然包含第一页的此处浮点的高度 --- 结果可用空间计算偏离了轨道。
因此,仅当开始页面上有一个“此处”浮动multicols
,而结束页面上有另一个“此处”浮动时,才会出现问题。
在加载软件包后尝试以下修复,multicol
直到我能够将新版本上传到 CTAN(您需要 1.8m 版本才能使补丁成功):
\usepackage{etoolbox}
\makeatletter
\patchcmd{\multi@column@out}
{ \global \@mparbottom \z@}
{ \global \@mparbottom \z@ \global\@textfloatsheight\z@}
{\typeout{patched}}
{\ERROR} % the patch failed for some reason
\makeatother
答案2
我所能推测的是,这个数字无法合适,这与你在问题中的陈述相反。
就像上面的评论者所说的那样,删除它,\begin{center}...\end{center}
因为它会增加额外的(和不必要的)垂直空间。以下示例显示您应该能够将这样的图像挤压到页面上:
\documentclass[a4paper]{article}
\usepackage[margin=3cm]{geometry}
\def\1{text }\def\2{\1\1\1\1\1}\def\3{\2\2\2\2\2}\def\4{\3\3\3\3}
\begin{document}
\4
\begin{figure}[!htbp]
\centering
\rule{0.25\textheight}{0.3\textheight}
\caption{\3}
\end{figure}
\4
\begin{figure}[!htbp]
\centering
\rule{0.25\textheight}{0.3\textheight}
\caption{\3 \3}
\end{figure}
\end{document}
如果要确保不是图形放置算法移动了浮动,则可以通过几种方式插入非浮动图形。一种方法是:
\usepackage{float}
...
\begin{figure}{H}
我通常不推荐这样做,但如果您正处于出版前的最后阶段,那么更容易证明像这样的排版决定是合理的。