summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-02-08 21:52:29 +0000
committerKarl Berry <karl@freefriends.org>2015-02-08 21:52:29 +0000
commita26b9ff90e587a4678f1c9d38a1d87f04d14c633 (patch)
treebbc2b403b13efd16413e888ee6cd6d6e28b0fd83
parent0ab502f9af9ef6849cd94d45fe17d88bda544056 (diff)
jslectureplanner (8feb15)
git-svn-id: svn://tug.org/texlive/trunk@36235 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/jslectureplanner/README30
-rw-r--r--Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturebib.pdfbin85396 -> 85396 bytes
-rw-r--r--Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturehandout.pdfbin58721 -> 58721 bytes
-rw-r--r--Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturepresentation.pdfbin84795 -> 84795 bytes
-rw-r--r--Master/texmf-dist/doc/latex/jslectureplanner/examples/lectureprogram.pdfbin57438 -> 57438 bytes
-rw-r--r--Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturescript.pdfbin33925 -> 34420 bytes
-rw-r--r--Master/texmf-dist/doc/latex/jslectureplanner/examples/metadata.tex2
-rw-r--r--Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.pdfbin113392 -> 116569 bytes
-rw-r--r--Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.tex247
-rw-r--r--Master/texmf-dist/tex/latex/jslectureplanner/jslectureplanner.sty203
10 files changed, 302 insertions, 180 deletions
diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/README b/Master/texmf-dist/doc/latex/jslectureplanner/README
index ea21eebc0ce..626e6e34fd6 100644
--- a/Master/texmf-dist/doc/latex/jslectureplanner/README
+++ b/Master/texmf-dist/doc/latex/jslectureplanner/README
@@ -1,7 +1,7 @@
==================================================================
The jslectureplanner package
-A package to help managing university courses.
+A LaTeX package to help managing university courses.
Maintained by Jürgen Spitzmüller
E-mail: juergen (at) spitzmueller (dot) org
@@ -18,10 +18,10 @@ The jslectureplanner package facilitates the generation and managment
of university course material. It provides an interface to set up and
access centralized course data that can be reused in all course documents.
Furthermore, the package is able to calculate the session dates of
-a whole semester and generate course programs, if the course is held
-weekly and the date of the first lecture is specified. Moreover,
-the package can be used to generate a sectioned course bibliography
-via biblatex.
+a whole semester and generate course programs, if the sessions follow at
+regular intervals and the date of the first session is specified.
+Moreover, the package can be used to generate a sectioned course
+bibliography via biblatex.
== CONTENTS ==
@@ -29,6 +29,7 @@ via biblatex.
The package consists of the following files:
* jslectureplanner.sty (the LaTeX package)
+* german-default.lps (German style file)
* jslectureplanner.pdf (package documentation)
* jslectureplanner.tex (documentation source)
* README (this very file)
@@ -58,7 +59,14 @@ instructions; also have a look at the example files.
== CHANGES ==
-* V. 0.8 (2015-01-17): - Fix corruption of \today.
+* V. 0.9 (2015-02-08): - Add a way to adjust the interval between two sessions
+ ('interval' package option and \LecInternal macro).
+ - Add a way to shift session dates from the regular
+ interval (\SetLecOffset).
+ - Rename option 'weeks' of the \SetBreaks macro to 'units'
+ ('weeks' still works, but is marked deprecated).
+
+* V. 0.8 (2015-01-17): - Fix corruption of \today.
- Add framework for different styles.
- Add option and macro to set a room
for the course as well as a
@@ -68,12 +76,12 @@ instructions; also have a look at the example files.
- Change \leccancel default definition
in favour of better translatability.
-* V. 0.7 (2015-01-04): Add macro for resetting \today.
- Minor corrections in the manual.
+* V. 0.7 (2015-01-04): - Add macro for resetting \today.
+ - Minor corrections in the manual.
-* V. 0.6b (2014-12-12): Minor corrections in the manual and
- example files.
+* V. 0.6b (2014-12-12): - Minor corrections in the manual and
+ example files.
-* V. 0.6 (2014-12-12): Initial release to CTAN.
+* V. 0.6 (2014-12-12): - Initial release to CTAN.
diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturebib.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturebib.pdf
index b397dd972e4..67550ca0a4f 100644
--- a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturebib.pdf
+++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturebib.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturehandout.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturehandout.pdf
index cb1abb344c1..6951952daf0 100644
--- a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturehandout.pdf
+++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturehandout.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturepresentation.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturepresentation.pdf
index 8310058ad57..f5c5a997e98 100644
--- a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturepresentation.pdf
+++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturepresentation.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lectureprogram.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lectureprogram.pdf
index d8dbc7b6e61..a871c02b22c 100644
--- a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lectureprogram.pdf
+++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lectureprogram.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturescript.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturescript.pdf
index abe81d6fe97..fc247f35df4 100644
--- a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturescript.pdf
+++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturescript.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/metadata.tex b/Master/texmf-dist/doc/latex/jslectureplanner/examples/metadata.tex
index 26b01853111..0a9e85f428a 100644
--- a/Master/texmf-dist/doc/latex/jslectureplanner/examples/metadata.tex
+++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/metadata.tex
@@ -58,7 +58,7 @@
\end{SessionBlock}
% a semester break of two weeks
-\SetBreaks[weeks=2,span={10.\,--\,23.\,06.}]{Osterferien}
+\SetBreaks[units=2,span={10.\,--\,23.\,06.}]{Osterferien}
% start a new frame in beamer
\SetBeamerFrameBreak
diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.pdf
index 4334235e7fc..cb69d62a530 100644
--- a/Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.pdf
+++ b/Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.tex b/Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.tex
index 86da67de7d5..eace8e47c81 100644
--- a/Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.tex
+++ b/Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.tex
@@ -29,7 +29,7 @@
\author{Jürgen Spitzmüller%
\thanks{Please report issues via \protect\url{https://github.com/jspitz/jslectureplanner}.}}
-\date{Version 0.8, 2015/01/17}
+\date{Version 0.9, 2015/02/08}
\maketitle
@@ -39,19 +39,19 @@
I have written this package in order to facilitate (and somewhat systematize)
the planning of my university courses. The basic idea of this package
-is that you write all general data of a course (date, semester, type,
-course title, session titles, general information etc.) into a central
-tex file (e.\,g., \emph{metadata.tex}), and then input this file
-into all documents related to the course (course program, bibliography,
-scripts, handouts, beamer presentations, exercises etc.), in order
-to re-use the data. This is particularly helpful if you have standard
-courses which are held every other semester: instead of changing the
-data in every single file, you just need to change it once, in the
-metadata file.
+is that you record all general data of a course (date, semester, type,
+course title, session titles, general information etc.) in a central
+tex file and then input this file to all documents related to the
+course (such as the course program, bibliography, scripts, handouts, beamer
+presentations, exercises etc.), in order to re-use the recorded data.
+This is particularly helpful if you have standard courses which
+are held every other semester: instead of changing the data in every
+single file, you just need to change it once, in the metadata file.
To further facilitate the planning, the package is able to calculate
-the session dates of a whole semester, if the course is held weekly.
-You only need to set the date of the first lecture, the package does
+the session dates of a whole semester, if the sessions of the course
+follow at regular intervals.
+You only need to set the date of the first session, the package does
the rest. Moreover, the package can be used to generate a sectioned
bibliography for the course via \textsf{biblatex}.
@@ -63,9 +63,9 @@ formats are German. However, it is possible to customize them to some
degree, particularly to translate them to other languages. This is
described later in this manual.
-This manual describes the basic user interface of the package. You
-might want to have a look at the example file included in the package
-in order to see how it is supposed to be used.
+This manual describes the basic user interface of the package. Please
+also refer to the example files included in the package in order to
+see how it is supposed to be used ``in practice''.
\section{Requirements}
@@ -79,12 +79,17 @@ The following packages are required: \textsf{etoolbox}, \textsf{advdate},
The general idea goes as follows:
\begin{itemize}
\item Set up a \emph{metadata.tex} file (or whatever name you prefer) and
-insert all meta information of the course there (as described in sec.~\ref{sec:course-metadata}
+record all meta information of the course in it (as described in sec.~\ref{sec:course-metadata}
and \ref{sec:lecplan}).
\item In your documents, load the package (\jcsmacro{usepackage\{jslectureplanner\}})
-and then input the metadata file (\jcsmacro{input\{metadata.tex\}}).
-\item Then use the macros described below (sec.~\ref{sec:general-course-info}
-and \ref{sec:session-specific-info}) to retrieve the respective data.
+and/or%
+\footnote{If you prefer to record the data via package options
+(see sec.~\ref{sub:package-options}) instead of macros (see sec.~\ref{sec:via-macros}),
+you need to load the package in the metadata file itself.}
+ input the metadata file (\jcsmacro{input\{metadata.tex\}}).
+\item Finally, use the macros described in sec.~\ref{sec:general-course-info}
+and \ref{sec:session-specific-info} to retrieve the respective data and re-use
+the recorded information in your documents.
\end{itemize}
The procedure is detailed in the following sections.
@@ -98,6 +103,7 @@ or via specific macros (see sec.~\ref{sec:via-macros}).
\subsection{Via package options\label{sub:package-options}}
+\jcsmacro{usepackage[<comma-separated options>]\{jslectureplanner\}}
\subsubsection{Course classification\label{sec:lecture-classification}}
@@ -107,31 +113,30 @@ to a verbose string (such as ``Seminar''), a short form (such as
``SE'') and a form that is used to denote individual sessions (as
in ``the second \emph{session} of this course'').
\begin{description}
-\item [{type=<type>,}] where \joption{<type>} is one of
+\item [{type=<type>}] Defines the course type. Possible values:
\begin{itemize}
-\item \joption{vl}: a lecture (verbose form: ``Vorlesung''\footnote{Sec.~\ref{sec:customizing-strings}
+\item \joption{vl}: A lecture (verbose form: ``Vorlesung''\footnote{Sec.~\ref{sec:customizing-strings}
explains how to customize these strings.}, short form: ``VL'', session form: ``Vorlesung'')
-\item \joption{ps}: undergraduate seminar (verbose form: ``Proseminar'',
+\item \joption{ps}: Undergraduate seminar (verbose form: ``Proseminar'',
short form: ``PS'', session form: ``Sitzung'')
-\item \joption{se}: seminar (verbose form: ``Seminar'', short form: ``SE'',
+\item \joption{se}: Seminar (verbose form: ``Seminar'', short form: ``SE'',
session form: ``Sitzung'')
-\item \joption{ue}: practical course (verbose form: ``Übung'', short
+\item \joption{ue}: Practical course (verbose form: ``Übung'', short
form: ``UE'', session form: ``Sitzung'')
-\item \joption{ko}: colloquium (verbose form: ``Kolloquium'', short form:
+\item \joption{ko}: Colloquium (verbose form: ``Kolloquium'', short form:
``KO'', session form: ``Sitzung'')
-\item \joption{pv}: research seminar (verbose form: ``Privatissimum'',
+\item \joption{pv}: Research seminar (verbose form: ``Privatissimum'',
short form: ``PV'', session form: ``Sitzung'')
\end{itemize}
\end{description}
\subsubsection{Course title}
\begin{description}
-\item [{title=<title>}] Title of the course
+\item [{title=<title>}] Main title of the course
\item [{titlesep=<separator>}] Separator between title and subtitle
\item [{subtitle=<subtitle>}] Subtitle of the course
-\item [{shorttitle=<shorttitle>}] Short title of the course (for headings
-etc.)
+\item [{shorttitle=<shorttitle>}] Short title of the course (for headings etc.)
\end{description}
\subsubsection{Date and place\label{sec:date-and-place}}
@@ -139,29 +144,30 @@ etc.)
\item [{semester=<term>,}] where \joption{<term>} is one of
\begin{itemize}
-\item \joption{fs}: spring term (``Frühjahrssemester'', short form: ``FS'')
-\item \joption{hs}: fall term (``Herbstsemester'', short form: ``HS'')
-\item \joption{ss}: summer term (``Sommersemester'', short form: ``SoSe'')
-\item \joption{ws}: winter term (``Wintersemester'', short form: ``WS'')
+\item \joption{fs}: Spring term (``Frühjahrssemester'', short form: ``FS'')
+\item \joption{hs}: Fall term (``Herbstsemester'', short form: ``HS'')
+\item \joption{ss}: Summer term (``Sommersemester'', short form: ``SoSe'')
+\item \joption{ws}: Winter term (``Wintersemester'', short form: ``WS'')
\end{itemize}
\item [{year=<year>}]~
\item [{uni=<university>}]~
\item [{institute=<institute>}]~
\item [{room=<room>}]~
\item [{startdate=<startdate>}] Date of the first session (argument\emph{
-must} have the form DD/MM/YYYY).
+must} have the form DD/MM/YYYY). If no startdate is given, \jfcsmacro{today} is used.
+\item [{interval=<interval>}] Interval (in days) between two sessions.
+ The preset interval is 7 (=~weekly courses).
\end{description}
\subsubsection{Additional information}
\begin{description}
-\item [{platform=<url>}] information (e.g., URL) of the e-learning platform
-\item [{officehours=<data>}] date of the office hours
+\item [{platform=<data>}] Information (e.\,g., URL) of the e-learning platform
+\item [{officehours=<data>}] Date of your office hours
\end{description}
\subsection{Via macros\label{sec:via-macros}}
-The following macros provide an alternative interface to set up the course metadata described in the previous
-subsection.
+The following macros provide an alternative interface to set up the course metadata.
\subsubsection{Course classification}
\begin{itemize}
@@ -170,127 +176,144 @@ subsection.
description.}
\begin{itemize}
-\item \joption{vl}: lecture (\emph{Vorlesung})
-\item \joption{ps}: undergraduate seminar (\emph{Proseminar})
-\item \joption{se}: seminar (\emph{Seminar})
-\item \joption{ue}: practical course (\emph{Übung})
-\item \joption{ko}: colloquium (\emph{Kolloquium})
-\item \joption{pv}: research seminar (\emph{Privatissimum})
+\item \joption{vl}: Lecture (\emph{Vorlesung})
+\item \joption{ps}: Undergraduate seminar (\emph{Proseminar})
+\item \joption{se}: Seminar (\emph{Seminar})
+\item \joption{ue}: Practical course (\emph{Übung})
+\item \joption{ko}: Colloquium (\emph{Kolloquium})
+\item \joption{pv}: Research seminar (\emph{Privatissimum})
\end{itemize}
\end{itemize}
\subsubsection{Course title}
\begin{itemize}
-\item \jcsmacro{LecTitle{[}<options>{]}\{<title>\}}: Set
-course title; \joption{<options>} might be any set of package options
-described in sec.~\ref{sub:package-options}
-\item \jcsmacro{LecTitleSep\{<title separator>\}}: Set course
-title-subtitle separator
-\item \jcsmacro{LecSubTitle\{<subtitle>\}}: Set course subtitle
+\item \jcsmacro{LecTitle[<package options>]\{<title>\}}: Record course title and options;
+\joption{<package options>} might be any set of package options described
+in sec.~\ref{sub:package-options} (except for \joption{title} itself),
+so this macro can actually be used to record all metadata.
+\item \jcsmacro{LecTitleSep\{<title separator>\}}: Specify course
+title-subtitle separator (e.\,g., ``. '' or `` -- '')
+\item \jcsmacro{LecSubTitle\{<subtitle>\}}: Record course subtitle
\end{itemize}
\subsubsection{Date and place}
\begin{itemize}
-\item \textbackslash{}\jmacro{LecYear\{<term>\}\{<year>\}}, Set term and
+\item \textbackslash{}\jmacro{LecYear\{<term>\}\{<year>\}}, Record term and
year of the course; \joption{<term>} is one of\footnote{See above sec.~\ref{sec:date-and-place} for a detailed
description.}
\begin{itemize}
-\item \joption{fs}: spring term (\emph{Frühjahrssemester})
-\item \joption{hs}: fall term (\emph{Herbstsemester})
-\item \joption{ss}: summer term (\emph{Sommersemester})
-\item \joption{ws}: winter term (\emph{Wintersemester})
+\item \joption{fs}: Spring term (\emph{Frühjahrssemester})
+\item \joption{hs}: Fall term (\emph{Herbstsemester})
+\item \joption{ss}: Summer term (\emph{Sommersemester})
+\item \joption{ws}: Winter term (\emph{Wintersemester})
\end{itemize}
-\item \jcsmacro{LecUni\{<university>\}}: Set the name of
+\item \jcsmacro{LecUni\{<university>\}}: Record the name of
your university
-\item \jcsmacro{LecInstitute\{<institute>\}}: Set your institute
-name
-\item \jcsmacro{LecRoom\{<room>\}}: Set the room where the course takes place
+\item \jcsmacro{LecInstitute\{<institute>\}}: Record your institute's name
+\item \jcsmacro{LecRoom\{<room>\}}: Record the room where the course takes place
\item \jcsmacro{LecStartDate\{<startdate>\}}: Set date of
-the first session (argument\emph{ must} have the form DD/MM/YYYY).
+the first session (argument\emph{ must} have the form DD/MM/YYYY)
+\item \jcsmacro{LecInterval\{<interval>\}}: Adjust the interval (in days) between two sessions.
+ The preset interval is 7 (=~weekly courses).
\end{itemize}
\subsubsection{Additional information}
\begin{itemize}
-\item \jcsmacro{SetOfficeHours\{<office hours>\}}: Set date
-of your office hours
-\item \jcsmacro{SetPlatform\{<platform information>\}}: Set
-information (e.g., URL) of the e-learning platform
+\item \jcsmacro{SetOfficeHours\{<office hours>\}}: Record date of your office hours
+\item \jcsmacro{SetPlatform\{<platform information>\}}: Record information
+(e.\,g., URL) of the e-learning platform
\end{itemize}
-\section{Setting up a course plan\label{sec:lecplan}}
+\clearpage
-In the metadata file, you can setup a plan for the course by entering
+\section{Setting up a course schedule\label{sec:lecplan}}
+
+In the metadata file, you can set up a schedule for the course by entering
session information in chronological order. This is done via the following
macro:
\begin{itemize}
-\item \jcsmacro{NewSession{[}<options>{]}\{Session title\}}
+\item \jcsmacro{NewSession[<options>]\{Session title\}}
-\joption{<options>} include:
+Valid \joption{<options>}:
\begin{itemize}
\item \joption{titlesep=<separator>}: Separator between session title and
-subtitle
+ subtitle
\item \joption{subtitle=<subtitle>}: Subtitle of the session
\item \joption{shorttitle=<shorttitle>}: Short title of the session (for
-headings etc.)
-\item \joption{room=<room>}: Specific room for this session (if it differs)
+ headings etc.)
+\item \joption{room=<room>}: Specific room for this session (if it differs
+ from the usual course room)
\item \joption{bibsec=<keyword>}: Session keyword for the bibliography
-(see below sec.~\ref{sub:bibliographies})
-\item \joption{cancel=<true|false>}: Whether this session takes place.
-If you specify \joption{cancel=true}, the program will mark the
-session as ``canceled''. For instance,
-
-
-\jcsmacro{NewSession{[}cancel=true{]}\{Dies Academicus\}}
+ (see below sec.~\ref{sub:bibliographies} for its use)
+\item \joption{cancel=<true|false>}: Marks this session as ``canceled''.
+ If you specify \joption{cancel=true}, the session will be printed
+ in the program in bold type and appended by a verbal comment.
+ For example,
+\jcsmacro{NewSession[cancel=true]\{Dies Academicus\}}
-will output something like
+will expand to
\begin{quote}
\textbf{15.\,05.: Dies Academicus -- keine Sitzung}
\end{quote}
-(i.\,e., ``Dies Academicus -- no session'')
+(i.\,e., ``Dies Academicus -- no session'').
-\end{itemize}
-\item \jcsmacro{SetBreak{[}<span>{]}\{Reason\}}: Add a semester
-break (e.g., holidays). This increments the counter for one week and
-outputs in the program
+Furthermore, a canceled session is not counted in the session counter
+that is used to retrieve session-specific information
+(see below sec.~\ref{sec:session-specific-info}).
+\end{itemize}
+\item \jcsmacro{SetBreak[<span>]\{Break\}}: Add a semester break
+(e.\,g., holidays) that affects one session. The macro increments
+the internal counters respectively and expands in the program to
\begin{center}
-\textbf{(<span>: Reason)}
+\textbf{(Break)}
\par\end{center}
-
-E.\,g., \jcsmacro{SetBreak{[}28.05.-{}-3.06.{]}\{Whitsun holidays\}}
-expands to
-
+By means of the optional argument, the real time span of the break
+might be given if you want to print it on the program. If you pass
+an optional argument \joption{<span>}, the macro will expand to
\begin{center}
-\textbf{(28.05.--3.06.: Whitsun holidays)}
+\textbf{(<span>: Break)}
\par\end{center}
-\item \jcsmacro{SetBreaks{[}<options>{]}\{Reason\}}: Add
-a semester break (e.g., holidays) that is longer than one week. This
-increments the counter respectively, and outputs in the program
+E.\,g., \jcsmacro{SetBreak[28.05.-{}-3.06.]\{Whitsun holidays\}}
+expands to
\begin{center}
-\textbf{(<span>: Reason)}
+\textbf{(28.05.--3.06.: Whitsun holidays)}
\par\end{center}
+\item \jcsmacro{SetBreaks[<options>]\{Break\}}: Add
+a semester break that affects more than one session (e.\,g., two-week holidays).
+The output in the program is identical to the \jcsmacro{SetBreak} macro,
+but the counter incrementation can be adjusted to the needed time span.
-\jmacro{<options>} include:
+Possible \jmacro{<options>} are:
\begin{itemize}
-\item \joption{weeks=<int>}: Number of weeks the break takes (to increment
-the internal counter that is used to calculate the session dates)
-\item \joption{span=<time span>}: time span (to be output on the program)
+\item \joption{units=<n>}: Number of interval units the break takes. One \emph{unit}
+ is the number of days as specified by the \joption{interval} option (one week by
+ default\footnote{The former option \joption{weeks} is deprecated as of v. 0.9,
+ since the interval can be adjusted now.}).
+ This value is needed in order to increment the internal counter that is used to
+ calculate the session dates. If \joption{units} is not specified, the counter is
+ incremented by one.\footnote{That is: \jcsmacro{SetBreak\{Break\}} =
+ \jcsmacro{SetBreaks\{Break\}} = \jcsmacro{SetBreaks[units=1]\{Break\}}.}
+ <n> must be a positive integer.
+\item \joption{span=<span>}: Real time span (verbally output on the program)
\end{itemize}
+\item \jcsmacro{SetLecOffset\{<n>\}}: Shift the date of all subsequent sessions by <n> days.
+ <n> can also be negative.
\item \jcsmacro{SetBeamerFrameBreak}: Add a frame break in
-the beamer program at this position. This also increments the frame
-counter which is used for subsequent program frame titles. Note that
-you can insert maximally 3 breaks.
+the beamer program at this position (more precisely, start a new frame).
+This also increments the frame counter which is used for subsequent program
+frame titles. Note that you can insert maximally 3 breaks.
\item \jcsmacro{SetBeamerHook\{<code>\}}: Add arbitrary \LaTeX{}
code to the beamer program
\item \jcsmacro{begin\{SessionBlock\}\{<Block title>\}}\\
@@ -303,7 +326,7 @@ are nested inside this block.
\section{Retrieving general course information\label{sec:general-course-info}}
Once the metadata file is set up as documented above and input to
-your document(s), you can retrieve the recorded as well as concatenated
+your document(s), you can retrieve the recorded as well as some concatenated
information by means the following macros.
@@ -336,18 +359,18 @@ of the term type (e.\,g., ``Wintersemester'')
the semester (e.\,g., ``WS 2014'')
\item \jcsmacro{lecsemesterverb}: Outputs the verbose version
of the semester (e.\,g., ``Wintersemester 2014'')
-\item \jcsmacro{lecuniversity}: Outputs the university name
-\item \jcsmacro{lecinstitute}: Outputs the institute name
-\item \jcsmacro{lecroom}: Outputs the room
+\item \jcsmacro{lecuniversity}: Outputs the university's name
+\item \jcsmacro{lecinstitute}: Outputs the institute's name
+\item \jcsmacro{lecroom}: Outputs the course room
\item \jcsmacro{lecplatform}: Outputs information on the
e-learning platform
\item \jcsmacro{officehours}: Outputs the office hours
\end{itemize}
-\subsection{Generating lecture programs}
+\subsection{Generating course programs}
\label{sec:lecprog}
\begin{itemize}
-\item \jcsmacro{makeprogram}: Generates a lecture program
+\item \jcsmacro{makeprogram}: Generates a course program
from the metadata in the form
@@ -366,7 +389,7 @@ from the metadata in the form
The \jmacro{labeling} environment is defined by the KOMA classes.
The package provides a fallback, however, if another class is used.
-\item \jcsmacro{makebeamerprogram{[}<options>{]}}: Generates
+\item \jcsmacro{makebeamerprogram[<options>]}: Generates
a beamer-suited lecture program from the metadata in the form
@@ -422,6 +445,7 @@ So if you specify your session with a keyword via the \joption{bibsec}
option, and tag your Bib\TeX{} database entries with that keyword,
you will get a list of session-specific literature.
+\clearpage
\section{Retrieving session-specific information\label{sec:session-specific-info}}
@@ -432,7 +456,7 @@ to the current session. This is done as follows.
\subsection{Setting the current session}
Use \jcsmacro{ThisSession\{<nr>\}} to tell the package
-which session is current. \joption{<nr>} is an integer value, e.g.
+which session is current. \joption{<nr>} is an integer value, e.\,g.
\jcsmacro{ThisSession\{3\}} for the 3rd session of
the lecture.
@@ -579,6 +603,11 @@ them for inclusion to the package.
\section{History}
\begin{itemize}
+\item 2015/02/08 (v. 0.9): Add a way to adjust the interval between two sessions
+ (\joption{interval} package option and \jcsmacro{LecInternal} macro); add a way to shift
+ session dates from the regular interval (\jcsmacro{SetLecOffset}); rename option \joption{weeks}
+ of the \jcsmacro{SetBreaks} macro to \joption{units} (\joption{weeks} still works, but is
+ marked deprecated).
\item 2015/01/17 (v. 0.8): Fix corruption of \jfcsmacro{today};
add framework for different styles;
add option and macro to set a room for the course as well as a session-specific room;
diff --git a/Master/texmf-dist/tex/latex/jslectureplanner/jslectureplanner.sty b/Master/texmf-dist/tex/latex/jslectureplanner/jslectureplanner.sty
index 89827f0074b..b47a48a00c4 100644
--- a/Master/texmf-dist/tex/latex/jslectureplanner/jslectureplanner.sty
+++ b/Master/texmf-dist/tex/latex/jslectureplanner/jslectureplanner.sty
@@ -21,8 +21,8 @@
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\filedate{2015/01/17}
-\def\fileversion{0.8}
+\def\filedate{2015/02/08}
+\def\fileversion{0.9}
\def\filename{jslectureplanner.sty}
\NeedsTeXFormat{LaTeX2e}
@@ -39,10 +39,6 @@
\RequirePackage{datetime}
\RequirePackage{calc}
-%
-% Store \today
-%
-\SaveDate
%
% VARIABLES
@@ -78,9 +74,13 @@
\def\programlistbeamer{}
\def\jsbiblist{}
+
%
% STRINGS
%
+
+% 1) Course types
+%
% vl
\def\lectypevl{Vorlesung}
\def\lectypevls{VL}
@@ -111,6 +111,8 @@
\def\lectypepvs{PV}
\def\lectypepvses{Sitzung}
+% 2.) Term types
+%
% fs
\def\lectermfs{Fr\"uhjahrssemester}
\def\lectermfss{FS}
@@ -124,11 +126,31 @@
\def\lectermws{Wintersemester}
\def\lectermwss{WS}
-% misc.
+% 3.) misc.
+%
+% Suffix to cancelled sessions
\newcommand*\leccancel{\ -- keine \lectypesession}
+% Beamer program heading
\newcommand*\lecprogram{Programm}
+% Program list indentation
\newcommand*\lecprogramlistindent{\textbf{88.\,88.}}
+
+%
+% COUNTERS
+%
+\newcounter{sesunit}
+\newcounter{dateratio}
+\setcounter{dateratio}{1}
+\newcounter{cancellations}
+\newcounter{snum}
+\newcounter{blocks}
+\newcounter{fbreaks}
+\newcounter{lecinterval}
+\setcounter{lecinterval}{7}
+\newcounter{sesoffset}
+
+
%
% PACKAGE OPTIONS
%
@@ -198,6 +220,17 @@
\define@key{lec}{room}{\def\lecroom{#1}}
\define@key{lec}{startdate}{\def\lecstartdate{#1}}
\define@key{lec}{style}{\AtEndOfPackage{\input{#1.lps}}}
+\define@key{lec}{interval}{%
+ % test if the input is a number
+ % courtesy of egreg at http://tex.stackexchange.com/a/50131
+ \if\relax\detokenize\expandafter{\romannumeral-0#1}\relax
+ \setcounter{lecinterval}{#1}%
+ \else
+ \PackageError{jslectureplanner}{%
+ Value of 'interval' option must be a number\MessageBreak
+ ('#1' was given instead)}{}%
+ \fi
+}
\DeclareOptionX{title}{\setkeys{lec}{title=#1}}
\DeclareOptionX{titlesep}{\setkeys{lec}{titlesep=#1}}
@@ -211,6 +244,7 @@
\DeclareOptionX{officehours}{\setkeys{lec}{officehours=#1}}
\DeclareOptionX{room}{\setkeys{lec}{room=#1}}
\DeclareOptionX{style}{\setkeys{lec}{style=#1}}
+\DeclareOptionX{interval}{\setkeys{lec}{interval=#1}}
\ProcessOptionsX
@@ -218,6 +252,7 @@
% End Options
%%
+
%
% ALTERNATIVE SETUP MACROS
%
@@ -231,6 +266,8 @@
\newcommand*{\LecInstitute}[1]{\setkeys{lec}{institute=#1}}
\newcommand*{\LecRoom}[1]{\setkeys{lec}{room=#1}}
\newcommand*{\LecStartDate}[1]{\setkeys{lec}{startdate=#1}}
+\newcommand*{\LecInterval}[1]{\setkeys{lec}{interval=#1}}
+
%
% CONCATENATED VARIABLES
@@ -249,22 +286,13 @@
\newdateformat{vldate}{\lecdateformat}
\newdateformat{vlshdate}{\lecdateshortformat}
-%
-% COUNTERS
-%
-\newcounter{week}
-\newcounter{dateratio}
-\setcounter{dateratio}{1}
-\newcounter{cancellations}
-\newcounter{snum}
-\newcounter{blocks}
-\newcounter{fbreaks}
%
-% MACROS (UI)
+% CUSTOMIZATION OF STRINGS
%
-% Change strings
+% 1) Course types
+%
% vl
\newcommand*\DefTypeVL[3]{%
\def\lectypevl{#2}
@@ -309,6 +337,8 @@
\def\lectypepvses{#3}
}
+% 2.) Term types
+%
% fs
\newcommand*\DefTypeFS[2]{%
\def\lectermfss{#1}
@@ -330,7 +360,13 @@
\def\lectermws{#2}
}
-% Program
+
+%
+% RETRIEVE COURSE INFORMATION
+%
+
+% 1) Course program
+%
% Define labeling list if not available
\@ifundefined{labeling}{%
\newenvironment{labeling}[2][]{%
@@ -348,6 +384,8 @@
\textbf{#1\hfil\sc@septext}%
}
}{}
+%
+% Program generation
\newcommand\makeprogram{%
\raggedright
\begin{labeling}{\lecprogramlistindent}
@@ -355,11 +393,7 @@
\end{labeling}
}
-% Bibliography
-\newcommand\makesessionbib{%
- \jsbiblist
-}
-
+%
% Beamer program generation
\define@key{beamerprogram}{title}{\csdef{@bptitle}{#1}}
\define@key{beamerprogram}{options}{\csdef{@bpopts}{#1}}
@@ -463,33 +497,31 @@
\end{frame}
}
-% Beamer frame breaks
-\newcommand*\SetBeamerFrameBreak{%
- \stepcounter{fbreaks}
- \@ifundefined{programlistbeamerii}{%
- \global\let\programlistbeamerii\programlistbeamer
- }{%
- \@ifundefined{programlistbeameriii}{%
- \global\let\programlistbeameriii\programlistbeamer
- }{%
- \global\let\programlistbeameriv\programlistbeamer
- }
- }
- \global\let\programlistbeamer\empty
+
+% 2) Bibliography
+%
+\newcommand\makesessionbib{%
+ \jsbiblist
}
-% Session definition
+
+%
+% COURSE SCHEDULE SETUP
+%
+
+% 1) Session definition
+%
\define@key{session}{titlesep}{\csdef{@sestitlesep}{#1}}
\define@key{session}{subtitle}{\csdef{@vasutitle}{#1}}
\define@key{session}{shorttitle}{\csdef{@vashorttitle}{#1}}
\define@key{session}{bibsec}{\csdef{@sesbibsec}{#1}}
\define@key{session}{room}{\csdef{@sesroom}{#1}}
\define@boolkey{session}{cancel}[true]{}
-
+%
\newcommand*\NewSession[2][]{%
- \stepcounter{week}
- \setcounter{dateratio}{(\theweek-1)*7}
- \setcounter{snum}{\theweek-\thecancellations}
+ \stepcounter{sesunit}
+ \setcounter{dateratio}{(\thesesunit-1)*\thelecinterval+\thesesoffset}
+ \setcounter{snum}{\thesesunit-\thecancellations}
\protected@csxdef{sesnr\thesnum}{\thesnum}
\csdef{@sestitlesep}{}
\csdef{@vasutitle}{}
@@ -532,8 +564,11 @@
\fi
}
+% 2) Semester breaks and schedule offsets
+%
+% Set break of one interval unit
\newcommand*\SetBreak[2][\empty]{%
- \stepcounter{week}
+ \stepcounter{sesunit}
\stepcounter{cancellations}
\ifx\empty#1
\protected@eappto\programlist{\noexpand\begin{center} (#2) \noexpand\end{center}}
@@ -544,19 +579,19 @@
\fi
}
-% Beamer program hook
-\newcommand*\SetBeamerHook[1]{%
- \protected@eappto\programlistbeamer{\noexpand#1}
-}
-
-\define@key{break}{weeks}{\csdef{@breakweeks}{#1}}
+% Set break of multiple interval units
+\define@key{break}{units}{\csdef{@breakunits}{#1}}
\define@key{break}{span}{\csdef{@breakspan}{#1}}
-\newcommand*\SetBreaks[2][weeks=1]{%
- \csdef{@breakweeks}{\empty}
+\define@key{break}{weeks}{%
+ \PackageWarning{jslectureplanner}{\protect\SetBreaks\space option 'weeks' is deprecated. Use 'units' instead.}%
+ \setkeys{break}{units=#1}%
+}
+\newcommand*\SetBreaks[2][units=1]{%
+ \csdef{@breakunits}{\empty}
\csdef{@breakspan}{\empty}
\setkeys{break}{#1}
- \setcounter{week}{\theweek+\csuse{@breakweeks}}
- \setcounter{cancellations}{\thecancellations+\csuse{@breakweeks}}
+ \setcounter{sesunit}{\thesesunit+\csuse{@breakunits}}
+ \setcounter{cancellations}{\thecancellations+\csuse{@breakunits}}
\ifx\empty\csuse{@breakspan}
\protected@eappto\programlist{\noexpand\begin{center} (#2) \noexpand\end{center}}
\protected@eappto\programlistbeamer{\noexpand\begin{center} (#2) \noexpand\end{center}}
@@ -566,6 +601,13 @@
\fi
}
+% Offset in days
+\newcommand*\SetLecOffset[1]{%
+ \addtocounter{sesoffset}{#1}
+}
+
+% 3) Definition of thematic blocks
+%
\newcommand*\StartBlock[1]{%
\stepcounter{blocks}
\protected@eappto\programlist{\noexpand\item[{\noexpand\bfseries\Roman{blocks}}.]%
@@ -588,15 +630,45 @@
\newenvironment{SessionBlock}[1]{\StartBlock{#1}}{\EndBlock}
-% Infrastructure
+% 4) Beamer-specific features
+%
+% Beamer frame breaks
+\newcommand*\SetBeamerFrameBreak{%
+ \stepcounter{fbreaks}
+ \@ifundefined{programlistbeamerii}{%
+ \global\let\programlistbeamerii\programlistbeamer
+ }{%
+ \@ifundefined{programlistbeameriii}{%
+ \global\let\programlistbeameriii\programlistbeamer
+ }{%
+ \global\let\programlistbeameriv\programlistbeamer
+ }
+ }
+ \global\let\programlistbeamer\empty
+}
+
+% Beamer program hook
+\newcommand*\SetBeamerHook[1]{%
+ \protected@eappto\programlistbeamer{\noexpand#1}
+}
+
+% 5) Infrastructure
+%
+% Office hours
\newcommand\SetOfficeHours[1]{%
\def\officehours{#1}%
}
+% (E-learning) platform
\newcommand\SetPlatform[1]{%
\def\lecplatform{#1}%
}
+
+%
+% RETRIEVE SESSION-SPECIFIC INFORMATION
+%
+
% Define current session
\newcommand\ThisSession[1]{%
\gdef\sesnr{\csuse{sesnr#1}}%
@@ -609,6 +681,8 @@
\gdef\sesroom{\csuse{sesroom#1}}%
}
+% Define a local session
+% (independent of current session)
\newcommand\LocalSession[1]{%
\gdef\lsesnr{\csuse{sesnr#1}}%
\gdef\lsesdate{\csuse{sesdate#1}}%
@@ -620,37 +694,46 @@
\gdef\lsesroom{\csuse{sesroom#1}}%
}
-% Session information
+% Get information for a specific (local) session
+%
+% Full title
\newcommand*\SessionFullTitle[1]{%
\LocalSession{#1}%
\lsestitle\lsestitlesep\lsessubtitle%
}
+% Date
\newcommand*\SessionDate[1]{%
\LocalSession{#1}%
\lsesdate%
}
+% Short title
\newcommand*\SessionShortTitle[1]{%
\LocalSession{#1}%
\lsesshorttitle%
}
+% Main title
\newcommand*\SessionTitle[1]{%
\LocalSession{#1}%
\lsestitle%
}
+% Short date
\newcommand*\SessionShortDate[1]{%
\LocalSession{#1}%
\lsesshortdate%
}
+% Room
\newcommand*\SessionRoom[1]{%
\LocalSession{#1}%
\lsesroom%
}
+% Program line suitable for
+% a description or labeling list
\newcommand*\MakeProgramline[1]{%
\LocalSession{#1}%
\item[{\bfseries\lsesshortdate}]%
@@ -658,8 +741,10 @@
}
% Reset to today
-% Not needed anymore as of v. 0.8,
-% but kept for backwards compatibility reasons
-\newcommand*\ResetDate{\SetDate}
+% DEPRECATED as of v.0.8,
+\newcommand*\ResetDate{%
+ \PackageWarning{jslectureplanner}{%
+ \protect\ResetDate\space is deprecated (not needed anymore).}%
+}
% Finis