我正在使用 tcolorbox LaTeX 包创建一些带圆角的框。当文本进入这些框时,一切都运行良好。
但我想用图片(通常是 jpg 格式)填充其中一些框。在框内使用 \includegraphics 确实会将图片放入框中,但矩形图片没有我想要的圆角。换句话说,我希望图片的角变圆,而不是溢出圆角框。
如果有人能告诉我如何做到这一点,我将不胜感激。在 tcolorbox 中这样做会很好,但我也愿意接受其他解决方案。
谢谢!
答案1
由于tcolorbox
是使用 实现的tikz
,所以这实际上更简单。
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\sbox0{\includegraphics{example-image}}%
\path[clip,draw,rounded corners=1.5cm] (0,0) rectangle (\wd0,\ht0);
\path (0.5\wd0,0.5\ht0) node[inner sep=0pt]{\usebox0};
\end{tikzpicture}
\end{document}
答案2
watermark graphics
是tcolorbox
使用图形文件作为框背景的选项。如果不需要上部或下部内的文本,height
则选项将固定框大小。
\documentclass{article}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}
\begin{document}
\begin{tcolorbox}[enhanced, watermark graphics=frog, watermark overzoom=1.0, title=example]
\lipsum[1]
\end{tcolorbox}
\begin{tcolorbox}[enhanced, watermark graphics=frog, watermark overzoom=1.0, notitle, height=5cm]
\end{tcolorbox}
\end{document}
另一个选项是使用clip upper
选项,将上部调整为内部大小和形状。在这种情况下,\includegraphics
命令形成上部。以下代码是从tcolorbox
(v3.90) 文档第 166 页复制的。
\documentclass{article}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}
\newcommand{\mygraphics}[2][]{%
\tcbox[enhanced,boxsep=0pt,top=0pt,bottom=0pt,left=0pt,
right=0pt,boxrule=0.4pt,drop fuzzy shadow,clip upper,
colback=black!75!white,toptitle=2pt,bottomtitle=2pt,nobeforeafter,
center title,fonttitle=\small\sffamily,title=\detokenize{#2}]
{\includegraphics[width=\the\dimexpr(\linewidth-4mm)/2\relax]{#2}}}
\begin{document}
\mygraphics{frog}
\mygraphics{lion}
\end{document}
更新 tcolorbox
较新的版本包括将命令tcbincludegraphics
组合includegraphics
在 中的命令tcolorbox
。因此,可以简化前面的示例。更多信息可以在部分中找到11 包含盒装图像文件。下面是一些示例:
\documentclass{article}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}
\tcbset{colframe=red!70!black,
size=tight, boxrule=1mm, arc=2mm, auto outer arc,
nobeforeafter}
\begin{document}
\tcbincludegraphics{frog}
\tcbincludegraphics[width=.5\linewidth, graphics options={width=3cm}]{frog}
%
\tcbincludegraphics[width=.5\linewidth, hbox, graphics options={width=3cm}]{frog}
\end{document}