我有两个并排的小页面。左边的页面包含一张图片,右边的页面包含一些文本。文本被顶部和底部的规则“包围”。文本依次与顶部对齐(顶部规则下方)。在文本下方,我想插入垂直空白,以便底部规则与旁边的图像底部对齐。
下面是一个 MWE,将底部规则放在文本正下方:
\documentclass{article}
\usepackage{adjustbox}
\usepackage{graphicx}
\begin{document}
\adjustbox{valign=t}{\begin{minipage}{0.4\textwidth}
\includegraphics[width=\textwidth]{image.jpeg}
\end{minipage}}
\adjustbox{valign=t}{\begin{minipage}{0.6\textwidth}
\rule{\textwidth}{0.6mm}\\[0.2cm]
Text
\vspace*{\fill}
\rule{\textwidth}{0.6mm}
\end{minipage}}
\end{document}
我该如何达到想要的效果?谢谢你的帮助
答案1
如果您考虑使用其他软件包,我可以提供一个tcolorbox
解决方案。如果图像高于文本,则规则与图像匹配。否则,规则遵循文本:
源代码是:
\documentclass{article}
\usepackage{adjustbox}
\usepackage{graphicx}
\usepackage{lipsum}
\usepackage[skins]{tcolorbox}
\newcommand{\ImageAndText}[2]{%
\begin{tcolorbox}[blankest,sidebyside,
sidebyside align=top seam,
sidebyside gap=2mm,
lefthand width=0.4\textwidth,
before lower=\par\vspace*{2mm},
after lower=\par\vspace*{2mm},
underlay={
\draw[line width=0.6mm] ([yshift=-0.3mm]segmentation.north east)--(interior.north east);
\draw[line width=0.6mm] ([yshift=0.3mm]segmentation.south east)--(interior.south east);
},
]
\includegraphics[width=\linewidth]{#1}
\tcblower
#2
\end{tcolorbox}%
}
\begin{document}
\lipsum[1]
\ImageAndText{example-image}{Text}
\ImageAndText{example-image}{\lipsum[2]}
\end{document}
答案2
我们可以用测量文本的高度来environ
判断它是否高于图形。
\documentclass{article}
\usepackage{graphicx}
\usepackage{environ}
\usepackage{lipsum}
\NewEnviron{graphicsandtext}[2][]{%
% #1 (optional) = the options for \includegraphics
% #2 (mandatory) = the image file
\par\noindent
\sbox{0}{\includegraphics[#1]{#2}}%
\raisebox{-\height}{\usebox{0}}%
\sbox{2}{%
\begin{minipage}[t]{\dimexpr\columnwidth-\wd0-\columnsep}
\hrule depth 0.6mm
\vspace{2pt}
\BODY
\par\vspace{2pt}
\hrule height 0.6mm
\end{minipage}%
}%
\hfill
\ifdim\dp2<\ht0
\begin{minipage}[t][\ht0][s]{\dimexpr\columnwidth-\wd0-\columnsep}
\hrule depth 0.6mm
\vspace{2pt}
\BODY
\par
\vfill
\vspace{2pt}
\hrule height 0.6mm
\end{minipage}
\else
\usebox{2}
\fi
\par
}
\begin{document}
\lipsum[1]
\begin{graphicsandtext}[width=0.4\textwidth]{example-image}
Some short text
\end{graphicsandtext}
\bigskip
\begin{graphicsandtext}[width=0.4\textwidth]{example-image}
\lipsum[3]
\end{graphicsandtext}
\end{document}
如果第二个实例有,则效果如下0.3\textwidth
:
答案3
这取决于您的使用情况,有针对此类任务的软件包(请参阅其他答案)。但如果您想使用 LaTeX 板载工具实现此目的,则可以使用height
以下可选参数minipage
:
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\begin{figure}[tbp]
\centering
\includegraphics[height=4cm,keepaspectratio]{example-image-a}%
\quad
\begin{minipage}[b][4cm][t]{4cm}
\rule{\linewidth}{0.6mm}\\[0.2cm]
Text\par
\vspace{\fill}
\rule{\linewidth}{0.6mm}
\end{minipage}
\caption{Your Caption}
\end{figure}
\end{document}