我使用 Tikz 为数学软件 Maxima 制作了一个徽标,使用了轮廓包和透明度,但除了字母周围外,轮廓似乎还显示在字母“后面”。使用透明度时会出现这种情况。如何避免轮廓出现在字母后面?
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\usepackage[outline]{contour}
\begin{document}
\scalebox{20} {
\begin{tikzpicture}
\draw node [rectangle,
rounded corners=2.55mm,
draw=white,
very thin,
fill=blue!10!white,
inner sep=2.55mm,
anchor=north east] (logo) {};
\contourlength{0.05mm};
\node (xi) [ left=-3.7mm of logo] {
\large\bf\color{blue!20!white}\contour{white}{$\zeta$}};
\contourlength{0.05mm};
\node (sigma) [right=-4.7mm of logo] {
\large\bf\color{blue!20!white}\contour{white}{$\Sigma$}};
\contourlength{0.15mm};
\node (M) [opacity=.6] at (logo) {
\bf\color{red!50!white}\contour{white}{M}};
\end{tikzpicture}
}
\end{document}
答案1
使用透明度组来设置不透明度。这可确保透明度组中的元素彼此不透明,并且仅在它们渲染到画布上时才设置不透明度。
\documentclass{article}
%\url{http://tex.stackexchange.com/q/140437/86}
\usepackage{tikz}
\usepackage[outline]{contour}
\begin{document}
\scalebox{20} {
\begin{tikzpicture}
\fill[blue!10!white] (0,0) circle[radius=2.55mm];
\contourlength{0.05mm};
\node (xi) at (-1.15mm,0) {
\large\bf\color{blue!20!white}\contour{white}{$\zeta$}};
\contourlength{0.05mm};
\node (sigma) at (.6mm,0) {
\large\bf\color{blue!20!white}\contour{white}{$\Sigma$}};
\begin{scope}[transparency group,opacity=.6]
\contourlength{0.15mm};
\node (M) at (0,0) {
\bf\color{red!50!white}\contour{white}{M}};
\end{scope}
\end{tikzpicture}
}
\end{document}
我认为你画圆的方式是我见过的最复杂的方式之一!所以我把它重新画成了一个圆。由于你的定位是根据节点进行的,所以我要么手动设置坐标,要么放入一个空白节点来定位。我选择前者,因为似乎需要进行大量手动调整才能获得这些精确的长度。我认为我的位置相当准确。