用图像背景替换标题颜色

用图像背景替换标题颜色

这是一种将图像完美拟合到Pspicture的简便方法

考虑一下代码

\documentclass[a5paper,12pt,onecolumn,openany,final]{book}
\usepackage[hmargin=0.7in,vmargin=0.75in]{geometry}
\usepackage{pstricks,psvectorian}
\usepackage{scalerel} % For Vertical Stretch of Letters
\usepackage{graphicx}
\usepackage{color}

% Overlay Title
\newcommand{\mytitle}[1]% #1 = title
{\bgroup
  \Huge
  \sbox0{\parbox{\columnwidth}{\centering\textbf{\color{black}#1}}}%
  \sbox1{\parbox{\columnwidth}{\centering\textbf{\color{white}#1}}}%
  \usebox0\llap{\raisebox{1.45pt}{\usebox1}}
\egroup}

\begin{document}
\thispagestyle{empty}

\begin{pspicture}(-5,-5)(5,12)%
\psframe[linecolor=black,linewidth=4pt](-5,-5)(5,12)% 
\rput(0,3.5){\includegraphics[width=.87\linewidth,height=1.49\linewidth]{example-image-a}}
\end{pspicture}

\newpage
\thispagestyle{empty}

\begin{pspicture}(-5.09,-5.09)(5.09,12.09)%
\renewcommand*{\psvectorianDefaultColor}{yellow!65!red}%
\psframe[fillcolor=yellow!65!red,fillstyle=solid](-5,-5)(5,12) 
\psframe[linecolor=black,linewidth=4pt](-5.09,-5.09)(5.09,12.09)% 

% TITLE 
\rput(0,6.25){\vstretch{1.25}{\mytitle{CUT-OUT TITLE}}}
\rput(0,5){\vstretch{1.25}{\mytitle{AND PLACE}}}
\rput(0,3.75){\vstretch{1.25}{\mytitle{OVER IMAGE}}}
\end{pspicture}%
\end{document}

产生两页输出

在此处输入图片描述

在此处输入图片描述

问:我怎样才能有效地剪掉三行白色部分pspicture然后将其叠加在pspicture第 1 页的图像上——这样出现的是第 2 页pspicture,其标题不再是白色,而是包含第 1 页图像作为背景?
笔记:原来产生的黑色覆盖层\mytitle在修改后仍可见pspicture

答案1

仅适用于latex->dvips->ps2dpf

\documentclass{book}
\usepackage{pstricks}
\usepackage{graphicx}
\usepackage{pst-char}
\DeclareFixedFont{\RM}{T1}{ptm}{b}{n}{2cm}
\begin{document}

\begin{pspicture}(-5,-5)(5,12)%
\begin{pscharclip}[linewidth=0.1pt]{\rput(0,3.5){\RM\shortstack{Cut-out title\\line 2\\line 3}}}%
\rput[lb](-5,-5){\includegraphics[width=10cm,height=17cm]{example-image-a}}
\end{pscharclip}
%\psframe[linecolor=black,linewidth=4pt,dimen=inner](-5,-5)(5,12)% 
\end{pspicture}

\end{document}

在此处输入图片描述

答案2

您可以使用\pscharclip软件包自带的功能pst-text

\documentclass[a5paper,12pt,onecolumn,openany,final]{book}
\usepackage[hmargin=0.7in,vmargin=0.75in]{geometry}
\usepackage{pstricks,psvectorian,pst-text}
\usepackage{scalerel} % For Vertical Stretch of Letters
\usepackage{graphicx}
\usepackage{color}

% Overlay Title
\newcommand{\mytitle}[1]{% #1 = title
    \parbox{\columnwidth}{\centering\Huge\textbf{#1}}%
}

\newcommand{\mytitleA}[1]% #1 = title
{\bgroup
  \Huge\textbf{#1}%
\egroup}

\begin{document}
\thispagestyle{empty}

\begin{pspicture}(-5.09,-5.09)(5.09,12.09)%
\renewcommand*{\psvectorianDefaultColor}{yellow!65!red}%
\psframe[fillcolor=yellow!65!red,fillstyle=solid](-5,-5)(5,12) 
\psframe[linecolor=black,linewidth=4pt](-5.09,-5.09)(5.09,12.09)% 

% TITLE 
\newdimen{\shiftedY}
\pssetlength{\shiftedY}{5cm}
\psaddtolength{\shiftedY}{-1.45pt}

\rput(0,\shiftedY){\vstretch{1.25}{\mytitle{CUT-OUT TITLE \\ AND PLACE \\ OVER IMAGE}}}

\pscharclip[linewidth=0pt,linestyle=none]{
    \rput(0,5){\vstretch{1.25}{\mytitle{CUT-OUT TITLE \\ AND PLACE \\ OVER IMAGE}}}
}
    \rput(0,3.5){\includegraphics[width=.87\linewidth,height=1.49\linewidth]{example-image-a}}
\endpscharclip

\end{pspicture}%
\end{document}

在此处输入图片描述


使用这个很好的建议作为起点,你可以使用 Ti 执行以下操作Z. 我尝试尽可能地重现您的示例,但它似乎仍然有所不同,尤其是在字体大小方面。无论如何,我希望主要思想是清楚的。您应该使用 PDFLaTeX 或 LuaLaTeX 来编译它。

\documentclass[a5paper,12pt,onecolumn,openany,final]{book}\usepackage[hmargin=0.7in,vmargin=0.75in]{geometry}

\usepackage{tikz}
\usetikzlibrary{fadings}

\newcommand{\mytitle}[2]{%
    \begin{tikzfadingfrompicture}[name=mytitle, color=transparent!0]
    
        % create fading from title
        \node[text width=\linewidth, align=center, font=\bfseries\Huge, yscale=1.25, transform shape] at (current page.center) {#2};
        
    \end{tikzfadingfrompicture}%
    \begin{tikzpicture}[overlay, remember picture]
    
        % orange background
        \fill[yellow!65!red, draw=black, line width=8pt] (current page.south west) rectangle (current page.north east);
    
        % text title shadow
        \fill[path fading=mytitle, fit fading=false, fading transform={shift=(current page.center)}, transform canvas={xshift=1pt, yshift=-1pt}] (current page.south west) rectangle (current page.north east);
        
        % text title cut out
        \fill[path fading=mytitle, fit fading=false, fading transform={shift=(current page.center)}, path picture={\node at (path picture bounding box.center) {
            \includegraphics[height=\paperheight, width=\paperwidth, keepaspectratio]{#1}
        };}] (current page.south west) rectangle (current page.north east);

    \end{tikzpicture}%
}

\begin{document}
\thispagestyle{empty}

\mytitle{background}{CUT-OUT TITLE \\ AND PLACE \\ OVER IMAGE}

\end{document}

在此处输入图片描述

相关内容