我正在尝试创建一个包含 3 列表格的 Latex 文档,其中第一列应包含 2020 年 1 月 1 日至 2020 年 12 月 31 日之间的日期和星期名称,其他两列应可在打印输出上手动填写。每页应包含一个月。如果可能的话,周末应在整个行上用颜色突出显示。
是否可以让 Latex 自动执行该操作,以便当我需要 2021 文件时只需更改年份?
我知道这对于 Excel 来说很简单,但我想尝试一下 Latex。
答案1
起点可以是通过定义一个小的宏和一个循环以及advdate
和datetime
包,如下
\documentclass[12pt]{article}
\usepackage{advdate}
\usepackage[dayofweek]{datetime}
\usepackage{array,longtable}
\newcount\fooo
\long\def\addto#1#2{\expandafter\def\expandafter#1\expandafter{#1#2}}
% some help from this https://tex.stackexchange.com/questions/122807/inserting-day-of-the-week-into-custom-datetime-format
% some help from that
%https://tex.stackexchange.com/questions/122785/making-a-list-with-dates-for-labels-automatically-skipping-days
\SetDate[01/01/2020]
\newcounter{mycntr}
\begin{document}
\def\tabledata{} \fooo=365
\loop
\addto\tabledata{\AdvanceDate[\value{mycntr}]\today\stepcounter{mycntr} & & \\
\hline}
\advance \fooo -1
\ifnum \fooo>0
\repeat
\begin{longtable}{|c|c|c|}
\hline
\tabledata
\end{longtable}
\end{document}
这吐出了超过10 pages
,因此,我不敢发布它们的截图;)
未解决的问题:根据月末分页。我还不知道如何实现。
但是,另一方面,OP 可以通过定义每个月的SetDate
计数器然后跟上命令来手动打破表格(在我看来,这可能会使生活更简单)。\fooo
\newpage