PGF/Beamer 中的文本阴影

PGF/Beamer 中的文本阴影

我想要真的强调我在 Beamer 幻灯片中使用的一些中心文本。我使用 tikz 和叠加功能将其放大并放在页面的中心,使用以下代码:

\begin{tikzpicture}[remember picture,overlay]
  \node[at=(current page.center)] {
    \scalebox{2}{\Huge\texttt{{This is important!}}}
  };
\end{tikzpicture}

我可以给字母本身添加阴影,这样它们看起来会更加突出吗? 有没有其他可以添加到文本本身的装饰,比如发光等? 或者 PGF 会完全忽略节点文本? 文本应该是打字机样式,因此使用特殊的花式字体可能不是解决方案。

答案1

这是一个糟糕的黑客攻击,并不完全适合您的情况,但我对 TeX 和 TikZ 还不熟悉。只是一个让事情顺利进行的想法。

\documentclass{article}
\usepackage{tikz}

\newcommand\importantstuff[3]{
    \node[black!30!white] at (#1+0.1,#2-0.1) {
        \scalebox{2}{\Huge\texttt{#3}} 
    };
    \node at (#1,#2) {
        \scalebox{2}{\Huge\texttt{#3}} 
    };
}

\begin{document}
\begin{tikzpicture}[remember picture,overlay]   
    \importantstuff{4}{0}{This is important!}
\end{tikzpicture} 
\end{document}

在此处输入图片描述


编辑:Marc van Dongen 正确地指出我应该使用字体相关的偏移量。而且由于我无论如何都在摆弄代码,所以我尝试模糊阴影,乡巴佬风格。

\newcommand\importantstuff[3]{
    \newcommand\xoffset{0.3}
    \newcommand\yoffset{-0.2}
    % Blur
    \foreach \x in {-0.1,0.1} {
        \foreach \y in {-0.1,0.1} {         
            \node[black!20!white] at (#1em+\xoffset em+\x em,#2em+\yoffset em+\y em) {
                \scalebox{2}{\Huge\texttt{#3}} 
            };
        }
    }

    % Main Shadow
    \node[black!40!white] at (#1em+0.3em,#2em-0.2em) {
        \scalebox{2}{\Huge\texttt{#3}} 
    };
    \node at (#1em,#2em) {
        \scalebox{2}{\Huge\texttt{#3}} 
    };
}

在此处输入图片描述

答案2

@Psirus 你的解决方案不是我想要的。以下内容自动拾取当前的字体大小。在您的解决方案中,节点始终为\Huge。这完全基于您的想法,但我认为如果您想要不同的字体大小,使用它会更好一些。

\documentclass{article}

\usepackage{tikz}

\newcommand\importantstuff[3]{
    \draw[every node/.style={scale=2}]
         (#1,#2)            coordinate (text destination)
      ++ (0.125em,-0.125em) coordinate (shadow destination)
         % Blur
         \foreach \x in {-0.025,0.025} {
             \foreach \y in {-0.025,0.025} {
                +(\x em,\y em) node[black!20!white] {\texttt{#3}}
             }
         }
        % Main Shadow
        (shadow destination) node[black!40!white] {\texttt{#3}}
        (text destination)   node {\texttt{#3}};
}

\begin{document}
   \begin{tikzpicture}
   \foreach \offset/\size in {0/Huge,1/small,2/normalsize} {
   \begin{\size}
       \importantstuff{0}{\offset}{This is important}
   \end{\size}}
   \end{tikzpicture}
\end{document}

答案3

如果你真的想要强调字母,您可以尝试从文本中的字形生成路径。要么使用 之类的工具将文本转换为路径inkscape。或者您可以向 Andrew Stacey 索要他的 STIX 字体的 TikZ-path 版本。

然后你可以使用pgf-blur添加漂亮的阴影:

带有模糊阴影的字母

但这不可能直接与 TeX 排版的文本一起使用。

相关内容