我正在写一张 3 列格式的科学海报 ( \multicols*{3}
)。我有两张又高又窄的图片,我想用它们作为列分隔符。
我想知道是否有使用 multicol 包的正确方法。现在我通过不使用标尺分隔符并在两列中放置一个环绕图来实现这一点,但有时它只起作用,当它失败时我不明白为什么。
谢谢
答案1
请不要告诉弗兰克我对他的代码做了什么
\documentclass{article}
\usepackage{multicol,graphicx}
\newdimen\imgh
\makeatletter
\def\columnseprulecolor\vrule\@width\columnseprule{%
\unskip
\setbox0\lastbox
\imgh=\dimexpr\ht\z@+\dp\z@\relax
\box\z@
\hss
\smash{\includegraphics[width=5pt, height=\imgh]{example-image}}%
}
\makeatother
\begin{document}
\begin{multicols}{3}
\def\z{one two three four }
\def\zz{\z\z\z\z\z\z\z\par\z red yellow blue \z red yellow blue \z\z}
\def\zzz{\zz\z\zz\z\z\z\zz\zz\zz}
\zzz
\zzz
\end{multicols}
\end{document}
或者按照评论中的要求添加两张图片
\documentclass{article}
\usepackage{multicol,graphicx}
\setlength\columnsep{40pt}
\newdimen\imgh
\makeatletter
\def\columnseprulecolor\vrule\@width\columnseprule{%
\unskip
\setbox0\lastbox
\imgh=\dimexpr\ht\z@+\dp\z@\relax
\box\z@
\hss
\ifnum\count@<\mult@firstbox
\smash{\includegraphics[width=35pt, height=\imgh]{example-image-a}}%
\else
\smash{\includegraphics[width=35pt, height=\imgh]{example-image-b}}%
\fi
}
\makeatother
\begin{document}
\begin{multicols}{3}
\def\z{one two three four }
\def\zz{\z\z\z\z\z\z\z\par\z red yellow blue \z red yellow blue \z\z}
\def\zzz{\zz\z\zz\z\z\z\zz\zz\zz}
\zzz
\zzz
\end{multicols}
\end{document}