我正在写一个摘要,主要包括方程式,但也有一些图片。现在我想将包括这些图片的子部分浮动起来,这样它们就可以很好地排列起来。
我知道如何放置浮动图片。但是是否可以对整个子部分执行相同操作?
感谢您的回答!
编辑:浮动部分有效。尽管与 {multicol} 结合使用时,newfloat{subsec} 不再显示。
\documentclass{article}
\usepackage{lipsum,caption,graphicx,float,titlesec}
\usepackage{multicol} %multiple columns
\newfloat{subsec}{h}{lop}
\begin{document}
\begin{multicols*}{3}
\tableofcontents
\listoffigures
\section{The Section}
Here is my non-floating introduction, which I place here just to
demonstrate the margins.
\begin{subsec}[ht]
\subsection{Veni}
\lipsum[1-2]
\end{subsec}
\end{multicols*}
\end{document}
答案1
修改后的答案
使用原始答案(浮动小节和边注),我无法multicols
封装floats
,我不明白这是如何实现的。因此,虽然 OP 谈到了列内的浮动,但这个修改后的答案的解释略有不同。
如果 OP 的目标是让子部分保持为完整的块,那么浮动它们的一个替代方法是将它们分别放在自己的 中minipage
,这样不会跨列。这是我在这里采用的方法,但它也对 OP 施加了额外的限制,以将子部分的长度保持在列内。
这里也采用了我的\mpar
替代方案,但添加了一个可选参数或来指示调用来自哪一列。理论上,通过进一步重写可以处理 3 列或更多列。\marginpar
l
r
以下是 MWE 的结果:
\documentclass{article}
\usepackage{lipsum,caption,graphicx,tabto,multicol}
\newenvironment{subsec}[1][]{\par\noindent\begin{minipage}{5.9cm}}{\end{minipage}}
\def\mmargin{20pt}
\def\mwid{3cm}
\def\mposl{\dimexpr-\mmargin-\mwid}
\def\mposr{\dimexpr\textwidth+\mmargin}
\newcommand\mpar[2][l]{\tabto*{\csname mpos#1\endcsname}\smash{\parbox[t]{\mwid}{%
\raggedright#2}}\tabto*{\TabPrevPos}}
\begin{document}
\tableofcontents
\listoffigures
\clearpage
\begin{multicols}{2}
\section{The Section}
Here is my non-floating introduction, which I place here just to
demonstrate the margins.
\begin{subsec}[ht]
\subsection{Veni}
\lipsum[1]
Margin note call \mpar{Here is my longish margin note}
\lipsum[4]
\end{subsec}
\begin{subsec}[ht]
\subsection{Vidi}
\lipsum[3]
Margin note call \mpar[r]{Here is my second longish margin note}
\lipsum[4]
\end{subsec}
\begin{subsec}[ht]
\subsection{Vici}
\lipsum[4-5]
\begin{center}
\includegraphics[width=2in]{example-image-A}
\captionof{figure}{My Figure}
\end{center}
\end{subsec}
\end{multicols}
\end{document}
原始答案:
也许是这样的......在这里我创建一个新的浮点数,subsec
使用在浮动算法?。请注意,您无法将浮动图形放置在子部分内,但仍然可以使用\includegraphics
和\captionof
技术将它们放置在那里,正如我在最终浮动图形上所展示的那样。
正如我在对 OP 的问题的评论中提到的那样,LaTeX 浮动必须适合单个页面。
我已经验证它在插入时\tableofcontents
和\listoffigures
位于文档顶部时可以起作用。
根据 OP 的评论,编辑了提供仿制边注\mpar
功能(使用tabto
包),通过指定\mpos
相对于文本左边距的位置以及\mwid
边注宽度。我只是将边注设置为普通文本,但\mpar
可以轻松调整字体大小和样式。
\documentclass{article}
\usepackage{lipsum,caption,graphicx,float,tabto}
\newfloat{subsec}{h}{lop}
\def\mpos{\dimexpr\textwidth+20pt}
\def\mwid{3cm}
\def\mpar#1{\tabto*{\mpos}\smash{\parbox[t]{\mwid}{%
\raggedright#1}}\tabto*{\TabPrevPos}}
\begin{document}
%\tableofcontents
%\listoffigures
\section{The Section}
Here is my non-floating introduction, which I place here just to
demonstrate the margins.
\begin{subsec}[ht]
\subsection{Veni}
\lipsum[1]
Margin note call \mpar{Here is my longish margin note}
\lipsum[2]
\end{subsec}
\begin{subsec}[ht]
\subsection{Vidi}
\lipsum[3]
\end{subsec}
\begin{subsec}[ht]
\subsection{Vici}
\lipsum[4-7]
\begin{center}
\includegraphics[width=2in]{example-image-A}
\captionof{figure}{My Figure}
\end{center}
\end{subsec}
\end{document}