答案1
正如已经强调的那样https://tex.stackexchange.com/a/137031,这个答案应该被视为一种解决方法:正确的解决方案是“等待 tikz 中的功能请求”。
当然,这可能比手头上笨拙的解决方法花费更长的时间。
这里尝试使用pgfplots
曲面图来模拟所需的填充阴影:
\documentclass[a4paper]{article}
\usepackage[cmyk]{xcolor}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}
% if you have v1.8, write:
%\pgfplotsset{mesh/colorspace explicit color output=cmyk}
\begin{document}
\begin{tikzpicture}
\draw (0,0) grid (3,3);
\shadedraw
[shading=axis,left color=green,right color=orange,color=blue,line width=2]
(2,0) -- (2,1)
{[rounded corners=1em] -- (3,1)} --
(3,0) -- (2,0);
\end{tikzpicture}
\begin{tikzpicture}
\draw (0,0) grid (3,3);
\draw
[color=blue,line width=4pt]
(2,0) -- (2,1)
{[rounded corners=1em] -- (3,1)} --
(3,0) -- cycle;
\clip
(2,0) -- (2,1)
{[rounded corners=1em] -- (3,1)} --
(3,0) -- cycle;
\begin{axis}[
% necessary to match up coordinate systems:
xmin=0,ymin=0,
anchor=origin,
x=1cm,y=1cm,
hide axis,
]
\addplot[surf,mesh/color input=explicit,shader=interp]
table[meta=cdata] {
x y cdata
2 0 color=green
2 1 color=green
3 0 color=orange
3 1 color=orange
};
\end{axis}
\end{tikzpicture}
\end{document}
两者都是 tikzpictures,第一个是从您的问题中复制而来的,第二个是基于pgfplots
。您会发现它涉及的内容要多得多:它安装一条clip
路径以将阴影限制在您的“圆角”矩形中,然后绘制剪辑路径的轮廓(出于某种原因,如果我使用\draw[clip]
其余选项,pgf 会拒绝它)。其余部分是一个pgfplots
轴,它被强制使用与外部图片相同的坐标系tikz
(需要 pgfplots 手册中“TikZ 互操作性”部分中解释的一组键)。
一旦 TikZ 支持 CMYK 阴影,这个答案有望变得多余。