我是 LaTeX 的新手,一直在努力解决我认为应该简单的事情。
我想创建一个带有蓝色边框和黄色内部的框。框内左侧应为图形,右侧为文本。这似乎很简单,我已经让它工作了,但这将从数据库生成,因此文本长度是可变的。如果在文本后添加 vspace 以将框填充到图形的高度,它目前可以工作。否则,框的高度仅为文本的高度,图像会溢出底部。
我使用的代码是:
\noindent{\fboxsep=.3pt\framebox{\colorbox{newyell}{
\parbox{\textwidth}{
\begin{wrapfigure}{l}{0.4\textwidth}
\vspace{-35pt}
\begin{center}
\includegraphics[width=0.35\textwidth]{img_0236.jpg}
\end{center}
\end{wrapfigure}
\phantom{0}\textcolor{blue}{
{\bf Test:}\ My test line\newline
\phantom{0}\ this is a tesrt\newline
\phantom{0}\ this is a tesrt\newline
\phantom{0}\ this is a tesrt\newline
\phantom{0}\ this is a tesrt\newline
\phantom{0}\ this is a tesrt\newline
}
}
%\vskip80pt
}}}
}
如果我启用\vskip
,框的大小就正确,否则框太短。由于它来自具有可变长度文本的数据库,因此我无法硬编码值。
我究竟做错了什么?!?!?
答案1
\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{wrapfig,xcolor,ragged2e,tabularx,calc}
\begin{document}
\noindent
\fcolorbox{black}{yellow!40}{%
\begin{tabularx}{\linewidth-2\fboxsep-2\fboxrule}{@{}>{\Centering}p{0.4\textwidth}X@{}}
\vspace{0pt}\includegraphics[width=0.35\textwidth]{img_0236.jpg}
&
\vspace{0pt}
\phantom{0}\color{blue}%
{\bf Test:}~My test line\newline
\phantom{0}~this is a tesrt\newline
\phantom{0}~this is a tesrt\newline
\phantom{0}~this is a tesrt\newline
\phantom{0}~this is a tesrt\newline
\phantom{0}~this is a tesrt\newline
\end{tabularx}%
}
\end{document}