我经常在 TikZ 图片中使用颜色。有没有简单的方法可以制作出在黑白打印机上打印时看起来不错的版本?
例如,假设我的图片中有一些填充区域,我能否一致且轻松地将它们更改为交叉影线或点状区域?理想情况下,我希望可以传递给环境的一些选项tikzpicture
会将填充区域的颜色重新解释为某种交叉影线或小点类型的填充,而不是颜色...
答案1
你可以创建自己的风格(例如afill
,bfill
...)并将它们应用于要填充的区域。然后,您可以全局更改样式,或者创建两个定义文件(一个用于黑白,另一个用于彩色打印),然后您可以选择风格通过加载其中一个\include
确实,这只适用于新图片,但也许你的编辑器允许搜索fill=red
并替换它afill
或类似的东西
以下是一个例子:
% make the definition files (this way just for the example)
\begin{filecontents}{color.tkz}
\tikzset{%
afill/.style={fill=red},
bfill/.style={fill=blue},
}
\endinput
\end{filecontents}
\begin{filecontents}{bw.tkz}
\usetikzlibrary{patterns}
\tikzset{%
afill/.style={draw,pattern=crosshatch},
bfill/.style={draw,pattern=crosshatch dots},
}
\endinput
\end{filecontents}
% document begins here ...
\documentclass{minimal}
\usepackage{tikz}
\input{color.tkz}% or \input{bw.tkz}
\begin{document}
\begin{tikzpicture}
\path [afill] (0,0) rectangle (2,2);
\path [bfill] (3,0) rectangle (5,2);
\end{tikzpicture}
\end{document}
给出
通常你会制作定义文件用手。您还可以将它们保存在本地texmf
树中,以便在多个文档中使用它们。
附言:我不喜欢交叉阴影区域,更喜欢在黑白打印中使用简单的灰度。在这种情况下,可以更改所用颜色的定义,将其更改为灰度……参见PGF 手册,第 89 页,第 7.7 节之前的最后一项
不要使用背景图案(如交叉阴影或对角线)代替颜色。它们会分散注意力。信息图形中的背景图案很糟糕。
答案2
要更改文档中的颜色,我会在前言或配置文件中定义颜色。可以使用“if”结构在两组颜色之间进行选择。我没有测试下一个代码,但这就是我的想法。
\newif\ifgraystyle \graystylefalse % true
\ifgraystyle
\def\backgroundone{gray!20}
\def\backgroundtwo{gray!50}
\else
\def\backgroundone{blue}
\def\backgroundtwo{red}
\fi
\tikzset{%
afill/.style={fill=\backgroundone},
bfill/.style={fill=\backgroundtwo},
}