==================================================================
The jslectureplanner bundle

A set of LaTeX packages to help managing university courses.

Maintained by Jürgen Spitzmüller
E-mail: juergen (at) spitzmueller (dot) org
Code repository and issue tracker:
    https://github.com/jspitz/jslectureplanner

Released under the LaTeX Project Public License v1.3 or later
See http://www.latex-project.org/lppl.txt
==================================================================

== PURPOSE ==

The jslectureplanner bundle 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, it is able to calculate the session dates of a whole semester
and generate course programs, if the sessions follow at regular intervals
and the date of the first session is specified. Moreover, it can be used
to generate a sectioned course bibliography via biblatex.
Next to the main, title-giving package, the bundle includes a package
that helps generating course member and presence lists.


== CONTENTS ==

The package consists of the following files:

* jslectureplanner.sty (the main LaTeX package)
* jsmembertable.sty (LaTeX package to generate course member and presence lists)
* german-default.lps (German 'model' style file with default settings)
* cologne.lps (German style file attempted at the University of Cologne)
* jslectureplanner.pdf (documentation)
* jslectureplanner.tex (documentation source)
* README (this very file)

The following example files are included:

* metadata.tex: example metadata file
* lectureprogram.tex: example course program
* lectureprogram.pdf
* lecturescript.tex: example course script
* lecturescript.pdf
* lecturepresentation.tex: example course presentation
* lecturepresentation.pdf
* lecturehandout.tex: example course handout
* lecturehandout.pdf
* lecpresbody.tex: common body of presentation/handout
* lecturebib.tex: example course bibliography
* lecturebib.pdf
* lectureplanner-examples.bib: example bibliography data
* membertable.tex: example member table
* membertable.pdf
* presencetable.tex: example presence table
* presencetable.pdf
* preslist.tex: example student presentation list
* preslist.pdf


== DOCUMENTATION ==

See the included manual jslectureplanner.pdf for usage
instructions; also have a look at the example files.


== CHANGES ==

* V. 1.15 (2025-10-02):  - Add \IfSemesterTF check.
                         - Add size option to \makebeamerprogram.
                         - Fix expansion issue with datatool keys in jsmembertable.
                         - Fix some expl3 code.

* V. 1.14 (2025-01-29):  - Add jsmembertable/followuptable/before LaTeX hook (jsmembertable).
                         - Add way to generate programs with session instructors (\makeprogram* and
                           instructors=true with \makebeamerprogram).

* V. 1.13 (2024-03-06):  - use legacy keyvals rather than xkeyval.
                         - fix row spacing in prestables.

* V. 1.12 (2020-12-08):  - Correctly parse staryear/endyear.

* V. 1.11 (2020-05-11):  - Allow for customization of program and presentation lists.
                         - Correctly set first session in presentation list. 

* V. 1.10 (2020-04-30):  - Do not increment session topic counter for cancelled sessions
                           and breaks.
                         - Add session option topicnumber to reset topic number in draft mode.
                         - Recode manual in utf8.

* V. 1.9 (2020-02-04):   - Allow \SetBeamerFrameBreak within SessionBlock.
                         - Fix \SetAutoOffset at first session and add optional argument
		            to alter first session (fix contributed by Richard Zach).

* V. 1.8 (2019-02-06):   - Add extradate option to \NewSession to support fix dates.
                         - Add possibility to enter exam dates that are not added to
                           the standard program (option exam of \NewSession).
		           Also add macros to display them separately (\makeexamprogram,
		           \makebeamerexamprogram) and to access their session number
                           (\examsesno).
                         - Switch input format of \LecStartDate to ISO (YYYY-MM-DD).
                           The old format (DD/MM/YYYY) is still supported for backwards
                           compatibility.
                         - Add macros to receive session block numbers (\sesblocknumber,
                           \SessionBlockNumber{<session no>} and \AdjSessionBlockNumber).
                         - Add unstyled date formats which allow preceding \DTMsetdatestyle
                           (the short and long date formats would override such settings).
                         - Add support for lecture and session start time, duration and thus
                           also end time calculation.
                         - Add support for displaying the next semester (\adjsemester and
                           \adjsemesterverb).

* V. 1.7 (2018-12-14):   - Allow options in \makebeamerprogram also with blocksonly.
                         - Add overlayarg option to \makebeamerprogram.
                         - Add macros to receive session block titles (\sesblocktitle,
                           \SessionBlockTitle{<session no>} and \AdjSessionBlockTitle).

* V. 1.6 (2018-09-26):   - Do not output session title-subtitle separator if there is no
                           subtitle.

                         - Add "blocksonly" and "uncover" options to \makebeamerprogram.

                         - Add "draft" option to \NewSession.

* V 1.5 (2017-03-12):    - Add "english" style file (proof of concept).

                         - Add datakeys option to the jsmembertable package.

                         - Add package option "sestitlesep" and macro \SessionTitleSep that
                           allow for the definition of a global session title-subtitle
                           separator.

* V. 1.4 (2016-10-19):   - Add instructor short forms for lecture and session.

                         - Add starred version of \sesinstructor that only produces output
                           if the session instructor differs from the general course instructor.

                         - All short{instructor|title} macros now output the long version if no
                           short form was defined.

                         - Add boolean tests for unique short forms and session instructors.

* V. 1.3 (2016-08-31):   - BACKWARDS-INCOMPATIBLE CHANGE! Use datetime2 instead of datetime
                           and advdate. This changes the interface to set the lecture date
                           format. Please refer to the documentation for details.

                         - Fix output of \SetBreaks when no span argument is given.

                         - Protect content of some \Lec* macros and options to allow for
                           commas in titles etc.

                         - Small microtypographic improvement in default definition of
                           the lecture date format.

* V. 1.2 (2016-05-11):   - Fix line breaking with empty session titles before course
                           breaks.

                         - New commands \AdjSessionFullTitle, \AdjSessionDate,
                           \AdjSessionShortTitle, \AdjSessionTitle, \AdjSessionShortDate,
                           \AdjSessionRoom, \AdjSessionInstructor, \AdjSessionPresStudents

* V. 1.1 (2015-07-15):   - Include and document the companion package jsmembertable.
                         - Add support for student presentation lists (new macros
                           \makepreslist, \makepreslist*, \makebeamerpreslist,
                           \jsetfirstpressession and \jsetlastpressession).
                         - Major revision of the manual.

* V. 1.0.2 (2015-07-07): - Permit \LecType and \LecYear in the document body again
                           (fix a regression introduced in v. 1.0).

* V. 1.0.1 (2015-02-27): - Properly expand \leccancel
                           (fix a regression introduced by v. 1.0).

* V. 1.0 (2015-02-27):   - Lecture types and term types are not hardcoded anymore and can
                           be freely modified and extended via \DefLecType and \DefSemType.
                         - Add option to add the instructor's name to both the course
                           (via \LecInstructor or 'instructor' package option) and to
                           specific sessions (via 'instructor' option of \NewSession).
                         - Add option to add names of presenting students to a session
                           (via 'presstudents' option).
                         - Add option to record the office number (\SetOfficeNumber
                           or 'officenumber' package option) [github issue #3].
                         - Add option to automatically shift all subsequent sessions by
                           a certain value after every nth session (\SetAutoOffset).
                           [github issue #2]
                         - Fix expansion issue in 'options' option of
                           \makebeamerprogram.
                         - Add 'cologne' style file.

* V. 0.9 (2015-02-08):   - Add a way to adjust the interval between two sessions
                           ('interval' package option and \LecInterval 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
                           session-specific room.
                         - Remove redundant lecture type "vo"
                           from the documentation.
                         - Change \leccancel default definition
                           in favour of better translatability.

* V. 0.7 (2015-01-04):   - Add macro for resetting \today.
                         - Minor corrections of the manual.

* V. 0.6b (2014-12-12):  - Minor corrections of the manual and
                           example files.

* V. 0.6 (2014-12-12):   - Initial release to CTAN.


