我想创建一个带有参数的样式以供 TikZcalendar
库使用。
这是一个与我想要的类似的工作示例:
\documentclass[10pt]{article}
\usepackage{tikz}
\usetikzlibrary{calendar}
\begin{document}
\tikzstyle{ColorDay}=[if={(equals=2-7) [every day/.append style=#1]}]
\begin{tikzpicture}
\calendar (cal) [dates=2013-02-1 to 2013-02-28,week list,
ColorDay={red}];
\end{tikzpicture}
\end{document}
我有两个问题。
首先,我不得不\tikzstyle
在这里使用弃用的命令,而不是\tikzset
。我根本无法\tikzset
使用calendar
if。例如,
\tikzset{ColorDay/.style=if={(equals=2-7) [every day/.append style=#1]}}
不起作用。事实上,即使我删除该参数,它也不会起作用。
\tikzset{ColorDay/.style=if={(equals=2-7) [every day/.append style=red]}}
其次,我不知道如何创建具有多个参数的样式。例如,
\tikzstyle{ColorDay}=[if={(equals=#1) [every day/.append style=#2]}]
不起作用。
答案1
\tikzset
在这里确实有效,但如果样式包含逗号或等号,则需要使用一对括号。要获取具有两个参数的样式,请使用\tikzset{Color Day/.style 2 args={...}}
,或者如果您想要更多参数,请使用\tikzset{Color Day/.style n args={3}{...}}
:
\documentclass[10pt]{article}
\usepackage{tikz}
\usetikzlibrary{calendar}
\begin{document}
\tikzset{
ColorDay/.style 2 args={
if={(equals=#1) [every day/.append style=#2]}
}
}
\begin{tikzpicture}
\calendar (cal) [dates=2013-02-1 to 2013-02-28,week list,
ColorDay={2-7}{red},
ColorDay={2-16}{blue, font=\bfseries}];
\end{tikzpicture}
\end{document}