如何将图片设置为小页面的中心背景?

如何将图片设置为小页面的中心背景?

我正在尝试将徽标放在迷你页面的背景中。我希望它们具有与迷你页面相同的高度,因为它很短,并且水平居中。

为了做到这一点,我尝试将这两个问题的解决方案结合起来: 迷你页面的背景图片(高度合适但不居中或不透明) 使用 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中的改为可恢复原始图像。将 改为 可使其完全消失。decodearray01

答案2

tcolorbox提供watermark textwatermark 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}

在此处输入图片描述

相关内容