我正在尝试将徽标放在迷你页面的背景中。我希望它们具有与迷你页面相同的高度,因为它很短,并且水平居中。
为了做到这一点,我尝试将这两个问题的解决方案结合起来: 迷你页面的背景图片(高度合适但不居中或不透明) 使用 tikz 在小页面中定位背景图像(居中且可见但高度不对)
我想到的是这个:
\documentclass{article}
\usepackage{lipsum}%
\usepackage{fullpage}%
\usepackage{tikz}%
\usepackage{graphicx}%
\newsavebox\mysavebox
\newcommand{\bgfield}[2]{
\begin{tikzpicture}
\node[inner sep=0pt,outer sep=0pt,text width=\textwidth](a){%
\kern\dimexpr-\fboxsep-\fboxrule\relax
\begin{lrbox}{\mysavebox}%
\begin{minipage}{\textwidth}
{\Large\bfseries Title}\par%
\emph{Subtitle}%
\begin{flushleft}
#1 % \lipsum[1]
\end{flushleft}
\end{minipage}
\end{lrbox}
\sbox\mysavebox{\usebox\mysavebox}%
\mbox{\usebox\mysavebox}%
};
\node[anchor=north ,inner sep=0pt,outer sep=0pt,opacity=0.5] at (a.north) {
\includegraphics[width=\textwidth %, height=\dimexpr\ht\mysavebox+\dp\mysavebox\relax]{#2}};
\end{tikzpicture}
}
\begin{document}
\bgfield{\lipsum[1]}{LaTeX.png}
\end{document}
如果我取消注释的高度\includegraphics
,那么\includegraphics[width=\textwidth, height=\dimexpr\ht\mysavebox+\dp\mysavebox\relax]{#2}
徽标就会消失。
关于如何解决这个问题有什么想法吗?
答案1
也许这种不包含所有tikz
东西的替代方案是可以接受的。
已编辑,为小页面提供可选的宽度参数。
\documentclass{article}
\usepackage{lipsum}%
\usepackage{fullpage}%
\usepackage{graphicx}%
\usepackage{stackengine}
\newcommand\bgfield[3][\textwidth]{
\setbox0=\hbox{%
\begin{minipage}[b]{#1}
{\Large\bfseries Title}\par%
\emph{Subtitle}%
\begin{flushleft}
#2
\end{flushleft}
\end{minipage}%
}
\noindent\stackinset{c}{}{c}{}{\copy0}{\makebox[#1]{%
\includegraphics[height=\dimexpr\ht0+\dp0\relax]{#3}}}
}
\begin{document}
\bgfield{\lipsum[1]}{example-image.jpg}
\centering\bgfield[.7\textwidth]{\lipsum[1]}{example-image.jpg}
\end{document}
请注意,图像的底部延伸到“dignissim”的“g”的底部。如果您只希望它延伸到基线(即“rutrum”的底部),则应将可选参数修改\includegraphics
为[height=\ht0]
。
附录
OP 评论了透明度以及使图像更像水印。我注意到,对于灰度和 rgb(不是 cmyk)图像,参数decodearray
也\includegraphics
可以模拟这一点。
\documentclass{article}
\usepackage{lipsum}%
\usepackage{fullpage}%
\usepackage{graphicx}%
\usepackage{stackengine}
\newcommand\bgfield[3][\textwidth]{
\setbox0=\hbox{%
\begin{minipage}[b]{#1}
{\Large\bfseries Title}\par%
\emph{Subtitle}%
\begin{flushleft}
#2
\end{flushleft}
\end{minipage}%
}
\noindent\stackinset{c}{}{c}{}{\copy0}{\makebox[#1]{%
\includegraphics[decodearray={.7 1 .7 1 .7 1},height=\dimexpr\ht0+\dp0\relax]{#3}}}
}
\begin{document}
\bgfield{\lipsum[1]}{GoogleLogo}
\centering\bgfield[.7\textwidth]{\lipsum[1]}{example-image.jpg}
\end{document}
将参数.7
中的改为可恢复原始图像。将 改为 可使其完全消失。decodearray
0
1
答案2
tcolorbox
提供watermark text
和watermark graphics
选项以在盒子内容后面添加水印。可以强制此水印占据盒子的高度或宽度,同时保持纵横比watermark zoom=1.0
。
\documentclass{article}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}
\newtcolorbox{myminipage}[5][]{
blankest,
before upper={\Large\bfseries #4}\par\emph{#5}\par,
parbox=false,
halign=flush left,
watermark graphics=#3,
watermark zoom=1.0,
width=#2,
#1
}
\begin{document}
\begin{myminipage}{\linewidth}{example-image}{Title}{Subtitle}
\lipsum[3]
\end{myminipage}
\begin{myminipage}{.6\linewidth}{example-image}{Title}{Subtitle}
This is a not so long minipage. This is a not so long minipage. This is a
not so long minipage. This is a not so long minipage. This is a not so long
minipage.
\end{myminipage}
\end{document}