我正在尝试通过修改代码来为标题添加一些阴影PGF/Beamer 中的文本阴影
考虑 MWE
\documentclass{article}
\usepackage{tikz}
\usepackage{xcolor}
\newcommand\titleshading[3]{
\newcommand\xoffset{0.3}
\newcommand\yoffset{-0.25}
% Blur
\foreach \x in {-0.1,0.1} {
\foreach \y in {-0.1,0.1} {
\node[blue!65!white] at (#1em+\xoffset em+\x em,#2em+\yoffset em+\y em) {
\scalebox{2}{\Huge\texttt{#3}}
};
}
}
% Main Shadow
\node[blue!40!white] at (#1em+0.3em,#2em-0.2em) {
\scalebox{2}{\Huge\texttt{#3}}
};
\node at (#1em,#2em) {
\scalebox{2}{\Huge\texttt{#3}}
};
}
\begin{document}
\begin{tikzpicture}[remember picture,overlay]
\titleshading{8}{0}{Book Title}
% \titleshading{8}{0}{\textcolor{red}{Book Title}}
\end{tikzpicture}
\end{document}
产生输出
此外,我想将标题中的黑色文本的颜色改为红色。
但是,当我\titleshading{8}{0}{Book Title}
用替换时\titleshading{8}{0}{\textcolor{red}{Book Title}}
,一切都变成了红色:
问题:我如何才能将标题中的文本颜色指定为红色,同时保留浅蓝色阴影?此外,如果有人知道一种更简单的方法来制作这个标题,我将不胜感激。
谢谢。
答案1
宏的第三个参数\titleshading
用于主文本和阴影;如果您在那里为文本着色,那么您将在任何地方更改它。
仅更改宏中主文本的颜色:
\documentclass{article}
\usepackage{tikz}
\usepackage{xcolor}
\newcommand\titleshading[3]{
\newcommand\xoffset{0.3}
\newcommand\yoffset{-0.25}
% Blur
\foreach \x in {-0.1,0.1} {
\foreach \y in {-0.1,0.1} {
\node[blue!65!white] at (#1em+\xoffset em+\x em,#2em+\yoffset em+\y em) {
\scalebox{2}{\Huge\texttt{#3}}
};
}
}
% Main Shadow
\node[blue!40!white] at (#1em+0.3em,#2em-0.2em) {
\scalebox{2}{\Huge\texttt{#3}}
};
\node[red] at (#1em,#2em) {% <-- here put the color you like
\scalebox{2}{\Huge\texttt{#3}}
};
}
\begin{document}
\begin{tikzpicture}[remember picture,overlay]
\titleshading{8}{0}{Book Title}
\end{tikzpicture}
\end{document}
做类似事情的一个更简单的方法可能是使用包shadowtext
,这里不需要加载 TikZ:
\documentclass{article}
\usepackage{xcolor}
\usepackage{graphicx}
\usepackage{shadowtext}
\shadowoffset{2.5pt}
\shadowcolor{blue!65!white}
\newcommand\titleshading[1]{\shadowtext{\color{red}\Huge\ttfamily\scalebox{2}{#1}}}
\begin{document}
\titleshading{Book Title}
\end{document}