日历


排版日历要用到“calendar”库,所以请在LaTeX导言中加入

\usetikzlibrary{calendar}

日历由命令

\calendar日历规范
产生,其中“日历规范”由一系列下列元素构成
  1. [选项]选项间用逗号分隔
  2. (名字) 如同节点一样,日历可以有个名字,也可以在选项中用[name=名字]
  3. at 坐标 如同节点一样给出坐标,也可以在选项中用[at=坐标]
  4. if 日期条件 选项或命令 else 选项或命令
日历的风格由
every calendar
设定。

日历最重要的属性当然是日期范围,这可以通过选项

dates=起始日期 to 结束日期
“起始日期”和“结束日期”可以用ISO格式,就像2006-12-08。月的最后一天可以用 “last”,比如“2006-02-last”,它等于“2006-02-28”。

天与天之间的空隙可以用选项

day xshift=x轴方向的长度
day yshift=y轴方向的长度
上述长度实际上是表示天的节点的锚定点间的距离。月和月之间 的空隙可以用选项
month xshift=x轴方向的长度
month yshift=y轴方向的长度

你可以通过

day code={代码}
改变天的显示。比如
\tikz \calendar[dates=2000-01-01 to 2000-01-31,week list, day code={\fill[blue] (0,0) circle (2pt);}];
改变天的显示文本可以用
day text=文本
比如
\tikz \calendar[dates=2000-01-01 to 2000-01-31,week list, day text=x];
天还可以通过风格
every day
改变。比如
\tikz[every day/.style=red] \calendar[dates=2000-01-01 to 2000-01-31,week list];

与天类似,还有月和年也可以改变

month code={代码}
month text=文本
every month
year code={代码}
year text=文本
every year

日历规范中的“if”类似于C语言的“if”语句,比如

\tikz \calendar [dates=2000-01-01 to 2000-01-31,week list] if (Sunday) [red];

选项

day list downward
从上到下排列天,天增加。选项
day list upward
从上到下排列天,天减少。选项
day list right
day list left
左右排列天。选项
week list
按7天一行排列天。

选项
month list
按月一行排列天。

下列选项用于排列月

month label left
month label left vertical
month label right
month label right vertical
month label above left
month label above centered
month label above right
month label below left
month label below centered


目录