4 列环境中的两列宽图形

4 列环境中的两列宽图形

我有一张 4 列的海报。我想将图形放在海报中间,宽度应该只有 2 列。我正在使用这个a0poster包。所以我有类似这样的内容:

\begin{document}
\begin{multicols}{4} 
Some text

\begin{figure}[H]% This figure should be two columns wide

\end{figure}
More text
\end{multicols}
\end{document}

答案1

使用一些想法三栏文字,数字为 2\columnwidthflowfram可以帮助你的文本按照特定的(直线)布局围绕图像流动:

在此处输入图片描述

\documentclass{a0poster}% http://ctan.org/pkg/a0poster
\usepackage[landscape,margin=1cm]{geometry}% http://ctan.org/pkg/geometry
\usepackage{flowfram,graphicx,microtype}% http://ctan.org/pkg/{flowfram,graphicx,microtype}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum

\newlength{\blockwidth}\setlength{\blockwidth}{.24\textwidth}
\setlength{\columnsep}{\dimexpr.01333\textwidth}

\newlength{\imageheight}\setlength{\imageheight}{.3\textheight}

\newflowframe{0.24\textwidth}{\textheight}
  {0pt}{0pt}[columnone]

\newflowframe{0.24\textwidth}{\dimexpr.5\textheight-.5\imageheight-\columnsep}
  {\dimexpr\blockwidth+\columnsep}{\dimexpr.5\textheight+.5\imageheight+\columnsep}[columntwoTOP]
\newflowframe{0.24\textwidth}{\dimexpr.5\textheight-.5\imageheight-\columnsep}
  {\dimexpr\blockwidth+\columnsep}{0pt}[columntwoBOT]

\newflowframe{0.24\textwidth}{\dimexpr.5\textheight-.5\imageheight-\columnsep}
  {\dimexpr2\blockwidth+2\columnsep}{\dimexpr.5\textheight+.5\imageheight+\columnsep}[columnthreeTOP]
\newflowframe{0.24\textwidth}{\dimexpr.5\textheight-.5\imageheight-\columnsep}
  {\dimexpr2\blockwidth+2\columnsep}{0pt}[columnthreeBOT]

\newflowframe{0.24\textwidth}{\textheight}
  {\dimexpr3\blockwidth+3\columnsep}{0pt}[columnfour]

\newstaticframe{\dimexpr2\blockwidth+\columnsep}{\imageheight}
{\dimexpr\blockwidth+\columnsep}{\dimexpr.5\textheight-.5\imageheight}[centerfigure]

\title{\textbf{Flowfram poster}}
\author{by Me}
\date{\today}

\begin{document}

\maketitle

\lipsum[1]

\begin{staticcontents*}{centerfigure}
\includegraphics[
  width=\dimexpr2\blockwidth+\columnsep,
  height=\imageheight]{example-image-a}
\end{staticcontents*}

\lipsum[2-33]

\end{document}

上述 MWE 创建了 6 个动态框架(columnonecolumntwo跨越整个\textheight,而columntwoTOP/BOTcolumnthreeTOP/BOT跨越插入图像后剩下的内容。从技术上讲,您需要做的就是更改图像的高度(设置\imageheight),其他一切都应该到位。当然,我假设您只插入图像(而不是标题,但可以更改)。

图像包含在一个称为“静态框架”内,centerfigure该框架跨越正好 2 列(包括列分隔/间隙)。

答案2

对于海报来说,一些手动间距似乎是可以接受的,这只是将图形放置在您想要的任何位置,然后在文本中添加两个垂直空格以留出空间。

在此处输入图片描述

\documentclass{article}

\def\a{One two three four five six. }
\def\b{Red yellow green blue white black grey purple pink. }
\def\c{\a\b\b\a\a\a\b\b\a\b}
\def\d{\c\c\a\a\b\a\b}
\usepackage{multicol,capt-of}
\begin{document}

\noindent\begin{picture}(0,0)
\put(82,-300){\fbox{\begin{minipage}{.5\textwidth}
\centering
\rule{3cm}{5cm}
\captionof{figure}{a picture of somethimg}
\end{minipage}}}
\end{picture}

\begin{multicols}{4}
\d

aa zzz bbb\\[7cm]
\c\a

yyyy yyy yyy yyy yyy \\[7cm]
\d\d\d\d\d\d


More text
\end{multicols}
\end{document}

相关内容