我为一家采用双栏布局的杂志社工作。双栏左侧有一些额外的空白空间,图片、表格和文本框可以占据这些空白空间,使它们更加突出,请参见下面的一些示例。图片被包裹在环境中,adjustwidth
以使其从左侧弹出,例如:
我遇到的问题是(可以预见的)有时 LaTeX 认为数字应该放在右列,这会导致如下令人不快的情况:
我想要 LaTeX总是将数字放在左栏,有什么办法吗?
我尝试过/考虑过的事情:
- 只需移动图形,直到它移动到左列即可。这种方法可行,但 a) 当图形很多时,可能需要花费大量时间,并且文本中的细微变化非常敏感;b) 我理想情况下也希望使用 TeX 文件来生成 HTML 版本,因此理想情况下图形应该位于文本中有意义的位置(例如,在某一节的末尾)。
\FloatBarrier
不是很有帮助。\newpage
- 手动打破这一局面也不太好。- 只使用裸的
\includefigure
和\tabular
,所以没有浮动。这通常会以不太讨人喜欢的方式破坏文本,我希望数字浮动,但不在正确的列中。 - 该包
multicol
:据我所知,该包根本不允许浮动。
请参阅此 MWE:有没有办法让图 B 出现\section{More Figures}
在代码中但出现在左栏?(对于我来说,图形出现在哪一页并不重要,只要它接近即可)
\documentclass[twocolumn]{article}
\usepackage{graphicx}
\usepackage{changepage}
\usepackage{kantlipsum}
\usepackage[left=20em]{geometry}
\begin{document}
\begin{figure}
\begin{adjustwidth}{-15em}{}
\includegraphics[width=\linewidth]{example-image-a}
\end{adjustwidth}
\end{figure}
\kant[1]
\section{Introduction}
\kant[2-4]
\begin{figure}
\begin{adjustwidth}{-15em}{}
\includegraphics[width=\linewidth]{example-image-b}
\end{adjustwidth}
\end{figure}
\section{More Figure}
\kant
\end{document}
谢谢你!
答案1
这修改了部分\output
检查\if@firstcolumn
。
\documentclass[twocolumn]{article}
\usepackage{graphicx}
\usepackage{changepage}
\usepackage{kantlipsum}
\usepackage[left=20em]{geometry}
\makeatletter
\let\@leftfloatplacement=\@floatplacement
\def\@rightfloatplacement{\global\@topnum=0
% Textpage bit, global:
\global\@toproom=\z@
\global\@botnum=0
\global\@botroom=\z@
\global\@colnum=0
% Floatpage bit, local:
\@fpmin=\@colht}
\def\@floatplacement{\if@firstcolumn\@leftfloatplacement
\else\@rightfloatplacement
\fi}
\makeatother
\begin{document}
\begin{figure}
\begin{adjustwidth}{-15em}{}
\includegraphics[width=\linewidth]{example-image-a}
\end{adjustwidth}
\end{figure}
\kant[1]
\section{Introduction}
\kant[2-4]
\begin{figure}
\begin{adjustwidth}{-15em}{}
\includegraphics[width=\linewidth]{example-image-b}
\end{adjustwidth}
\end{figure}
\section{More Figure}
\kant
\end{document}
答案2
@JohnKormylo 的回答很好,但它可能会在页面上放置一个图n当引用位于页面第 1 列时 +1n.这完全取决于图形输入在源文件中出现的位置。
当仍有空间将图形输入放置在输出中的预期位置时,图形输入必须始终出现在源文件中。因此,如果图形的引用位于第一列的中间位置,而图形输入直到引用之后才包含,则它将被保留到下一页。如果输入是“延迟的”,则第二列中引用的所有浮点数都将保留到后面的页面,即使同一页面上有足够的空间。
建议的方法是手动的。最好等到文本最终完成,但它可以让你完全控制。将输入放置在图形上前图形显示页面的开始文本。浮点输入最好以垂直模式包含,其上方和下方各有一空白行。将每个浮点放在单独的文件中(至少是暂时的)可能是有意义的,这样可以轻松移动它们。在输出中的位置固定后,详细代码始终可以移动到主源文件中。