在 TikZ 中交织两个字母

在 TikZ 中交织两个字母

我感兴趣的是将两个字母交织在一起,它们是两个节点的标签;或者将字母的形状转换为两条路径(很像 Inkscape 中同名的功能),然后我可以像这个 Borromean 环的例子一样将它们交织在一起:http://www.texample.net/tikz/examples/borromean-rings/

这是我的 MWE:

\begin{tikzpicture}
\fill[gray!60] (0,0) circle (2);
 \node[color=black!80] 
at (0.25,-0.25) 
{\fontsize{60}{20}\fontfamily{ppl}\fontseries{b}\selectfont C};
\node[color=yellow!50] 
at (-0.25,0.25) 
{\fontsize{60}{20}\fontfamily{ppl}\fontseries{b}\selectfont Q};
\end{tikzpicture}

我想要的是,在最上面的交叉点,C 从 Q 上方经过,而在最下面的交叉点,C 从 Q 下方经过。我附上了一张我想要的图片,是用 Pinta 随意制作的。

期望的结果。

答案1

这不是一个通用的解决方案,但你可以只绘制两次黑色字母,但第二次剪辑它,以便只绘制你想要的部分:

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
  \fill[gray!60] (0,0) circle (2);
  \node[color=black!80, font=\fontsize{60}{20}\fontfamily{ppl}\fontseries{b}\selectfont]
    at (0.25,-0.25) {C};
  \node[color=yellow!50, font=\fontsize{60}{20}\fontfamily{ppl}\fontseries{b}\selectfont] 
    at (-0.25,0.25) {Q};
  \clip (0,0) -- (0:2) arc (0:90:2) -- cycle;
  \node[color=black!80, font=\fontsize{60}{20}\fontfamily{ppl}\fontseries{b}\selectfont]
    at (0.25,-0.25) {C};
\end{tikzpicture}
\end{document}

输出

答案2

这只是对David Purton 的精彩回答。有些人可能觉得直接指定字符应该被剪切多少会更舒服。只要距离字符的任一边界有一段距离,trimclip就可以完成工作(原则上你不需要tikz那么做)。通常最好使用fontnode font键来设置字体,而circle[radius=2]不是circle(2)

\documentclass[tikz,border=3mm]{standalone}
\usepackage{trimclip}
\begin{document}
\begin{tikzpicture}[node font=\fontsize{60}{20}\fontfamily{ppl}\fontseries{b}\selectfont]
 \fill[gray!60] (0,0) circle[radius=2];
 \node[color=black!80,below] at (0.25,1.25) {C};
 \node[color=yellow!50] at (-0.25,0.25) {Q};
 \node[color=black!80,below] at (0.25,1.25) {\clipbox{0em 0.5em 0em 0em}{C}};
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容