我有一张 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\columnwidth
,flowfram
可以帮助你的文本按照特定的(直线)布局围绕图像流动:
\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 个动态框架(columnone
和columntwo
跨越整个\textheight
,而columntwoTOP
/BOT
和columnthreeTOP
/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}