![在 \draw 中使用宏](https://linux22.com/image/379497/%E5%9C%A8%20%5Cdraw%20%E4%B8%AD%E4%BD%BF%E7%94%A8%E5%AE%8F.png)
我遇到了一些可能非常愚蠢的问题。我想要一个多版本文档 - 一个给我自己,一个给我的学生,还有一个完整版本。
这个想法是,你只需在文档开头更改版本,它就会切换我想要留空的部分的字体颜色(通常是我的例子):在学生版中,它会将部分文本写成与背景相同的颜色(因此不可见),在教师版中,它会以不同的颜色书写(这样我就知道我的学生必须完成什么),而完整版则将所有内容写成黑色。我有一份大文件,系统运行得很好。
但是,在使用 tikz 处理此系统时,我遇到了一些困难。以下代码:
\documentclass[a4paper,11pt]{article}
\usepackage{tikz}
\usepackage{ifthen}
\def\fondExercice{gray!10}
\def\couleurMaitre{gray!80}
\def\couleurComplet{black}
\newcommand{\versionEleve}{
\def\macouleur{\fondExercice}
\def\edition{E}
}
\newcommand{\versionMaitre}{
\def\macouleur{\couleurMaitre}
\def\edition{P}
}
\newcommand{\versionComplete}{
\def\macouleur{\couleurComplet}
\def\edition{C}
}
\newcommand\couleurTik[1][black]{
\ifthenelse{\equal{\edition}{E}}{\fondExercice}{#1}
}
\begin{document}
\versionEleve
The current color is \couleurTik[yellow]
\begin{tikzpicture}
\draw[\couleurTik] (0,0) circle (1);
\end{tikzpicture}
\end{document}
不起作用并产生了一个我不明白的错误:\couleurTik[yellow]
产生了预期的结果但\draw[\couleurTik] (0,0) circle (1);
产生了错误。
我猜这是一种扩展问题,但尽管我尝试阅读一些相关内容,但对我来说它仍然很神秘。
有人知道为什么会失败吗?提前致谢!
编辑 :
经过寻找colorlet
,我发现这是可行的
\documentclass[a4paper,11pt]{article}
\usepackage{tikz}
\usepackage{ifthen}
\def\fondExercice{gray!10}
\def\couleurMaitre{gray!80}
\def\couleurComplet{black}
\newcommand{\versionEleve}{
\def\macouleur{\fondExercice}
\colorlet{couleurTik}{\fondExercice}
\def\edition{E}
}
\newcommand{\versionMaitre}{
\def\macouleur{\couleurMaitre}
\colorlet{couleurTik}{\couleurMaitre}
\def\edition{P}
}
\newcommand{\versionComplete}{
\def\macouleur{\couleurComplet}
\colorlet{couleurTik}{\couleurComplet}
\def\edition{C}
}
\begin{document}
\versionEleve
\begin{tikzpicture}
\draw[color=couleurTik] (0,0) circle (1);
\end{tikzpicture}
\end{document}
但我还是不明白为什么第一个代码没有......
答案1
您可以简单地tikzstyle
使用定义的颜色为每个版本定义一个新的颜色。
\documentclass[a4paper,11pt]{article}
\usepackage{tikz}
\usepackage{ifthen}
\def\fondExercice{gray!10}
\def\couleurMaitre{gray!80}
\def\couleurComplet{black}
\newcommand{\versionEleve}{
\def\macouleur{\fondExercice}
\def\edition{E}
\tikzstyle{mycolor} = [\macouleur]
}
\newcommand{\versionMaitre}{
\def\macouleur{\couleurMaitre}
\def\edition{P}
\tikzstyle{mycolor} = [\macouleur]
}
\newcommand{\versionComplete}{
\def\macouleur{\couleurComplet}
\def\edition{C}
\tikzstyle{mycolor} = [\macouleur]
}
\newcommand\couleurTik[1][black]{
\ifthenelse{\equal{\edition}{E}}{\fondExercice}{#1}
}
\begin{document}
\versionEleve
%\versionMaitre
%\versionComplete
\begin{tikzpicture}
\draw[mycolor] (0,0) circle (1);
\end{tikzpicture}
\end{document}