假设我想创建一个功能环境,它有两列,第一列是图片(带有标题),第二列是文本。对于奇数页,我希望图片在左边,文本在右边;对于偶数页,我希望文本在左边,图片在右边。
实现这一目标的最佳方法是什么?有人有例子吗?
我使用 tikz 做了一些工作,但代码很乱(需要根据具体情况进行大量手动调整)。我相信肯定有一个更清晰的例子……
答案1
您可以使用包裹changepage
检测它是奇数页还是偶数页,并切换放置内容的顺序:
笔记:
- 图像附近的文本块展示如何使用
tikz
将文本放置在相对于图像的适当位置。
代码:
\documentclass{article}
\usepackage[paperwidth=9.0cm, margin=0.5cm]{geometry}% For better illustrative image
\usepackage{graphicx}
\usepackage{array}
\usepackage{booktabs}
\usepackage{changepage}
\strictpagecheck
\newcommand*{\ImageSize}{3.5cm}% Set the width of the images here
\newcommand*{\TextSize}{\dimexpr\linewidth-\ImageSize-4\tabcolsep}%
\newcommand{\MyTwoColumn}[2]{%
\medskip\par\noindent%
\centering\checkoddpage%
\noindent
\ifoddpage
\begin{tabular}{m{\ImageSize}m{\TextSize}}\toprule
\includegraphics[width=\ImageSize]{#1} & {\raggedright#2\par} \\
\else
\begin{tabular}{m{\TextSize}m{\ImageSize}}\toprule
{\raggedright#2\par} & \includegraphics[width=\ImageSize]{#1}\\
\fi\bottomrule
\end{tabular}%
\medskip\par%
}
\begin{document}
\MyTwoColumn{../images/EiffelWide}{Awesome Vacation on left page}
\clearpage
\MyTwoColumn{../images/EiffelWide}{Awesome Vacation on right page}
\end{document}