代码

代码

在 TikZ 中处理一些图形时,我遇到了一些特殊需求(当然我可以使用一些图像处理程序来实现,但我想知道是否有(La)TeXy 方法):我想改变字符的颜色之内字符(最好与某些线条相交)。

这就是我能够实现的(我知道这几乎不算什么):

一些输出

这就是我想要的:

特殊输出

如果您需要 MWE,这里有一个测试对象:

\documentclass[tikz]{standalone}

\begin{document}

\begin{tikzpicture}
    \node[color=gray] {A};
    \draw[thin] (2pt,-4pt) circle (3pt);
\end{tikzpicture}

\end{document}

答案1

我会把这个作为答案,尽管我不确定它是否足够长。只要你不想对字母的不同区域重复执行此操作,你就可以在 tikz 中剪辑内容:

\documentclass[tikz]{standalone}

\begin{document}

\begin{tikzpicture}
    \node[color=gray] {A};
    \draw[thin] (2pt,-4pt) circle (3pt);
\end{tikzpicture}
\begin{tikzpicture}
    \node[color=gray] {A};
    \clip (2pt,-4pt) circle (3pt);
    \node[color=blue] {A};
\end{tikzpicture}

\end{document}

可能更好的变体是定义一个宏,至少如果您需要多次这样做(例如大写的章节开头):

\newcommand{\coloredletter}[1]{\tikz{\node[color=gray] at (0, 0) {#1}; \clip (2pt,-4pt) circle (3pt); \node[color=blue] at (0, 0) {#1};}}

\coloredletter{A}
\coloredletter{B}

结果如下:

在此处输入图片描述

答案2

剪辑可以实现您想要的效果。

代码

\documentclass[tikz]{standalone}

\begin{document}

\begin{tikzpicture}
    \node[color=gray] {A};
    \clip(2pt,-4pt) circle[radius=3pt];
    \node[color=blue] {A};
    \draw[thin](2pt,-4pt) circle[radius=3pt];
\end{tikzpicture}

\end{document}

输出

在此处输入图片描述

相关内容