3

I'm making my first syllabus in LaTeX and would like to know if there is a LaTeX-y way to generate the course schedule. Something like:

7/5 Friday: Read blah

7/8 Monday: Blah

7/10 Wednesday: Blah

7/12 Friday: Blah

The course is Monday-Wednesday-Friday, so I'm looking for a way to generate a list that will skip Tuesday, Thursday, Saturday and Sunday.

I realize that simply manually editing the labels to reflect the dates would be easy enough, there are only 40 or so class meetings, but is there a way (package or native commands I'm unfamiliar with) to do this in a more automated way? Especially because it would make using this syllabus as a template for future syllabi much easier.

5

Here is a starting point:

enter image description here

\documentclass{article}
\usepackage{advdate,datetime}% http://ctan.org/pkg/{advdate,datetime}
\newenvironment{schedule}
  {\par\longdate\renewcommand{\item}{\par%
    \stepcounter{mycntr}\ifnum\value{mycntr}>3\relax%
      \setcounter{mycntr}{0}\AdvanceDate[3]%
    \else
      \AdvanceDate[2]%
    \fi\today\quad}
  }{\par}
\newcounter{mycntr}
\begin{document}
\begin{schedule}
  \item Something
  \item Something else
  \item Relax
  \item Go to the sea
  \item Something
  \item Something else
  \item Relax
  \item Go to the sea
\end{schedule}
\end{document}

It would be possible to adjust the alignment as well as a starting date via an optional argument (say).

  • I posted another follow-up question to this. If you knew of a quick fix to that problem it would be greatly appreciated. – Dennis Jul 6 '13 at 23:47
  • Thank you for your answer, which I upvoted. However, at the end, you say that it is possible to adjust the starting date. How can this be done ? Thank you! – Watson Sep 3 at 18:55
  • 1
    @Watson: Try this code. It allows for an optional argument to schedule where you can update any combination of the registers \year, \month and \day to suit your needs (don't use commas , to separate the setting of registers). This updates \today that is used in the calculation. It assumes the new date will be a Monday, since it still skips Tuesdays, Thursdays and the weekend (Saturday, Sunday). – Werner Sep 3 at 19:08
  • Dear @Werner, thank you very much for your helpful comment. My final version for this part of the code can be found here. – Watson Sep 4 at 8:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.