这是一个不寻常的问题,涉及在 LaTeX、XeLaTex 或任何其他 TeX 风格中渲染具有特定 3D 风格的字体。
前几天我在看一些字体时,发现了一种我非常喜欢的字体:
这种字体有很多精美的例子,例如:
然而,这些示例中的每一个都具有 3D 品质。字体既阴影和有色,这让它看起来还可以忍受。在常规的二维中它看起来像这样: 这几乎没什么好说的。我的问题很简单:我怎样才能让 LaTeX、XeLaTeX 或任何其他风格渲染出像上图那样的 3D 效果的字体?这有可能吗?还是必须在图像编辑器中完成?
不幸的是,谷歌搜索的结果很差,我开始觉得这可能是无望的,尽管像这个让我认为这是有可能的。
[编辑]
进一步说明一下,令人感兴趣的 3D 效果是字体字符上的阴影。在第一张图片中,可以在单词“Octant”的字母上观察到这种效果,它为右侧的每个字符添加了阴影,就好像左侧有一个光源一样。该效果的另一个示例是第二张图片中的单词“Griffin & Quayle”。
答案1
仅适用于latex->dvips->ps2pdf
:
\documentclass[landscape]{article}
\usepackage{geometry}
\usepackage{pst-light3d}
\DeclareFixedFont{\Bf}{T1}{ptm}{b}{n}{3cm}
\begin{document}
\psframebox[fillstyle=solid,fillcolor=blue!20!black!40,framesep=20pt]{%
\PstLightThreeDText[fillstyle=solid,fillcolor=white!90]%
{\Bf 3D font in L\kern-35pt\raisebox{0.7ex}{A}\kern-15pt\TeX}}
\end{document}
答案2
我对分层字体做了一些额外的研究(感谢 Thérèse),发现它们正是我需要的。切换到 XeLaTex,我找到了一种免费的分层字体并开始尝试。
该字体被称为特里本,虽然它看起来与我感兴趣的字体完全不同,但它几乎可以实现相同的效果。我下载并安装了该字体,然后就可以简单地让它以不同的颜色和不同的不透明度叠加。这是我编写的一个很好的例子:
\documentclass{article}
\usepackage{xcolor}%for color change
\usepackage{pgf}%must have for the transparency
\usepackage{fontspec}%for font specification
\definecolor{mysilver}{RGB}{208,208,208}
\begin{document}
Tribbon is a layered font.\\
{\fontspec{Tribbon A}Tribbon A}\\
{\fontspec{Tribbon B}Tribbon B}\\
{\fontspec{Tribbon C}Tribbon C}\\
\\
By combing the layers using different colors and opacities, using \rlap to overlay the text, we can achieve a shading effect on the characters in the font. For example, combining the following:\\
{\color{mysilver}\fontspec{Tribbon B}\huge THIS IS A SAMPLE} \\ {\pgfsetfillopacity{0.3}\color{black}\fontspec{Tribbon C}\huge THIS IS A SAMPLE} \\ {\pgfsetfillopacity{0.4}\color{mysilver}\fontspec{Tribbon A}\huge THIS IS A SAMPLE}\\
\\becomes\\
\\
\rlap{\pgfsetfillopacity{1}\color{mysilver}\fontspec{Tribbon B}\huge THIS IS A SAMPLE}{\pgfsetfillopacity{0.3}\color{black}\fontspec{Tribbon C}\huge THIS IS A SAMPLE}\llap{\pgfsetfillopacity{0.4}\color{mysilver}\fontspec{Tribbon A}\huge THIS IS A SAMPLE}\\
\end{document}
其结果为:
这种方法需要对每种字体进行微调,并且可能需要根据颜色和需求进行额外调整。也就是说,将其转换为以文本和颜色为输入并以分层的 3D 字体输出阴影文本的宏应该很简单。唯一的困难是找到正确的分层字体。