texlive[55100] Master/texmf-dist: jslectureplanner (11may20)

commits+karl at tug.org commits+karl at tug.org
Mon May 11 22:47:10 CEST 2020


Revision: 55100
          http://tug.org/svn/texlive?view=revision&revision=55100
Author:   karl
Date:     2020-05-11 22:47:10 +0200 (Mon, 11 May 2020)
Log Message:
-----------
jslectureplanner (11may20)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/README
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/English/lecturebib-english.pdf
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/English/lecturehandout-english.pdf
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/English/lecturepresentation-english.pdf
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/English/lectureprogram-english.pdf
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/English/lecturescript-english.pdf
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/English/membertable-blank-english.pdf
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/English/membertable-filled-english.pdf
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/English/presencetable-blank-english.pdf
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/English/presencetable-filled-english.pdf
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/English/presentation-list-english.pdf
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/German/lecturebib.pdf
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/German/lecturehandout.pdf
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/German/lecturepresentation.pdf
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/German/lectureprogram.pdf
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/German/lecturescript.pdf
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/German/membertable-blank.pdf
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/German/membertable-filled.pdf
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/German/presencetable-blank.pdf
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/German/presencetable-filled.pdf
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/German/presentation-list.pdf
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.pdf
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.tex
    trunk/Master/texmf-dist/tex/latex/jslectureplanner/jslectureplanner.sty
    trunk/Master/texmf-dist/tex/latex/jslectureplanner/jsmembertable.sty

Modified: trunk/Master/texmf-dist/doc/latex/jslectureplanner/README
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/English/lecturebib-english.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/English/lecturehandout-english.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/English/lecturepresentation-english.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/English/lectureprogram-english.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/English/lecturescript-english.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/English/membertable-blank-english.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/English/membertable-filled-english.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/English/presencetable-blank-english.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/English/presencetable-filled-english.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/English/presentation-list-english.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/German/lecturebib.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/German/lecturehandout.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/German/lecturepresentation.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/German/lectureprogram.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/German/lecturescript.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/German/membertable-blank.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/German/membertable-filled.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/German/presencetable-blank.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/German/presencetable-filled.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/German/presentation-list.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.tex	2020-05-11 20:46:52 UTC (rev 55099)
+++ trunk/Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.tex	2020-05-11 20:47:10 UTC (rev 55100)
@@ -1,3 +1,4 @@
+% !TeX spellcheck = en_US
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %% File jslectureplanner.tex
 %%
@@ -54,6 +55,20 @@
 \vfuzz \hfuzz
 \raggedbottom
 
+\usepackage[bookmarks=true,
+bookmarksnumbered=false,
+bookmarksopen=false,
+breaklinks=false,
+pdfborder={0 0 0},
+backref=false,
+colorlinks=false
+]{hyperref}
+\hypersetup{%
+	pdftitle={The jslectureplanner manual},
+	pdfauthor={Jürgen Spitzmüller},
+	pdfkeywords={latex,course planning}
+}
+
 \usepackage{microtype}
 
 \usepackage{babel}
@@ -72,7 +87,7 @@
 \author{Jürgen Spitzmüller%
 \thanks{Please report issues via \protect\url{https://github.com/jspitz/jslectureplanner}.}}
 
-\date{Version 1.10, 2020/04/30}
+\date{Version 1.11, 2020/05/11}
 
 \maketitle
 
@@ -343,6 +358,8 @@
 \item \jcsmacro{SessionTitleSep\{\jparam{separator}\}}: Specify a default separator between session title and subtitle (e.\,g., ``. '' or `` -- ''). This is used if no specific separator has been specified in the session entry (see sec.~\ref{sec:lecplan}); by default, no separator is defined.
 \end{itemize}
 
+\clearpage
+
 \section{Setting up a course schedule}\label{sec:lecplan}
 
 In the metadata file, you can set up a schedule for the course by entering
@@ -355,7 +372,7 @@
 Valid \joption{\jparam{options}} include:
 \begin{itemize}
 \item \joption{draft=\jparam{true|false}}: If \joption{true}, a placeholder text (by default: ``Thema \jparam{n}'',
-    see sec.~\ref{sec:misccust}) will be output if no session title is defined.
+    see sec.~\ref{sec:listcust}) will be output if no session title is defined.
     This might be handy for planning the schedule.
 \item \joption{topicnumber=\jparam{n}}: In draft mode, reset the current topic number of this session to \jparam{n}.
     All subsequent topics will be calculated from this unless reset again. This might be useful if only part of
@@ -523,10 +540,11 @@
 \item \jcsmacro{officenumber}: Outputs the office (room) number
 \end{itemize}
 
-\subsection{Generating course programs}
+\subsection{Generating course programs}\label{subsec:genprog}
 \label{sec:lecprog}
 \begin{itemize}
-\item \jcsmacro{makeprogram}: Generates a course program in the form:
+\item \jcsmacro{makeprogram}: Generates a course program that, by default,
+expands to the form:
 \begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},
                    frame=single,escapechar=\$]
 \begin{labeling}{\lecprogramlistindent}
@@ -540,6 +558,7 @@
 
 The \jmacro{labeling} environment is defined by the KOMA classes.
 The package provides a fallback, however, if a different class is used.
+The list type can also be customized. See sec.~\ref{sec:listcust} for details.
 
 \item \jcsmacro{makebeamerprogram[\jparam{options}]}: Generates
 a beamer-suited lecture program from the metadata in the form
@@ -557,6 +576,8 @@
 \end{frame}
 \end{lstlisting}
 
+Again, see sec.~\ref{sec:listcust} for customization possibilities.
+
 Note that 
 \begin{itemize}
 	\item multiple subsequent frames (not just slides) are generated if the metadata
@@ -644,6 +665,7 @@
 \end{lstlisting}
 If no presenting students have been assigned to a given session,
 an em-dash (---) is output instead.
+This all can be customized (please refer to sec.~\ref{sec:listcust} for details).
 
 A starred version of the macro outputs a ``blank'' presentation list that just consists of
 the session dates and titles with enough space to fill in student names manually.
@@ -910,31 +932,237 @@
 \end{lstlisting}
 The time format itself can be customized by the means of \textsf{datetime2} (timestyle). Please refer to the package's manual for details.
 
-\subsection{Misc. customizing}\label{sec:misccust}
 
-The canceling output is ``Session title -- keine \jparam{Session}'' (``keine''
+\subsection{Customizing program and presentation list appearance}\label{sec:listcust}
+
+\subsubsection{List layout}
+The course program generated by \jcsmacro{makeprogram} is typeset using
+a \textit{labeling} list, i.\,e., a description list
+with a customizable indentation (see sec.~\ref{subsec:genprog}).
+Since \jslp\ uses customizable environments, this can be easily changed.
+Simply redefine the following environment (\jcsmacro{lecprogramlistindent}
+holds a string that represents the indentation width; see below):
+
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},
+frame=single,moretexcs={[1]{lecprogramlistindent}}]
+\newenvironment{ProgramList}{\begin{labeling}{\lecprogramlistindent}}{\end{labeling}}
+\end{lstlisting}
+%
+This will also change the list of the exam sessions generated by \jcsmacro{makeexamprogram}
+and the student presentation lists generated by \jcsmacro{makepreslist}.
+If you want these lists to look different from the normal program list, redefine:
+
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single]
+\newenvironment{ProgramListExam}{\begin{ProgramList}}{\end{ProgramList}}
+\end{lstlisting}
+%
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single]
+\newenvironment{PresList}{\begin{ProgramList}}{\end{ProgramList}}
+\end{lstlisting}
+%
+For beamer programs, exam and presentation lists, a description environment is used instead,
+and the respective commands are
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},
+frame=single,moretexcs={[1]{lecprogramlistindent}}]
+\newenvironment{BeamerProgramList}{\begin{description}[\lecprogramlistindent]}%
+                                  {\end{description}}
+\end{lstlisting}
+%
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},
+frame=single,moretexcs={[1]{lecprogramlistindent}}]
+\newenvironment{BeamerPresList}{\begin{BeamerProgramList}}{\end{BeamerProgramList}}
+\end{lstlisting}
+%
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},
+frame=single,moretexcs={[1]{lecprogramlistindent}}]
+\newenvironment{BeamerProgramListExam}{\begin{BeamerProgramList}}{\end{BeamerProgramList}}
+\end{lstlisting}
+%
+The individual lines of the program are defined in the following macro that can be redefined
+(\texttt{\#1} represents the date, \texttt{\#2} the session title, \texttt{\#3} the session title--subtitle separator,
+and \texttt{\#4} the session subtitle; for the used text formatting macros, see sec.~\ref{subsec:textform}):
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},
+frame=single,moretexcs={[3]{ProgramListItem,programdateformat,sestitleformat}}]
+\newcommand*{\ProgramListItem}[4]{\item[\programdateformat{#1}] \sestitleformat{#2#3#4}}
+\end{lstlisting}
+%
+This also redefines the presentation list items. 
+If you want these lists to look different from the normal program list, redefine:
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},
+frame=single,moretexcs={[2]{PresListItem,ProgramListItem}}]
+\newcommand*\PresListItem[4]{%
+    \ProgramListItem{#1}{#2}{#3}{#4}%
+}
+\end{lstlisting}
+%
+Analogous macros for canceled session items, exam items and presentation list items are:
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},
+frame=single,moretexcs={[3]{ProgramListCancelItem,programdateformat,cansestitleformat}}]
+\newcommand*{\ProgramListCancelItem}[4]{\item[\programdateformat{#1}]
+                                             \cansestitleformat{#2#3#4 \leccancel}}
+\end{lstlisting}
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},
+frame=single,moretexcs={[3]{ProgramListExamItem,programdateformat,exsestitleformat}}]
+\newcommand*{\ProgramListExamItem}[4]{\item[\programdateformat{#1}]
+                                           \exsestitleformat{#2#3#4}}
+\end{lstlisting}
+%
+For the beamer program, the respective macros are:
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},
+frame=single,moretexcs={[3]{BeamerProgramListItem,programdateformat,sestitleformat}}]
+\newcommand*{\BeamerProgramListItem}[4]{\item[\programdateformat{#1}]
+                                              \sestitleformat{#2#3#4}}
+\end{lstlisting}
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},
+frame=single,moretexcs={[2]{BeamerPresListItem,BeamerProgramListItem}}]
+\newcommand*\BeamerPresListItem[4]{%
+    \BeamerProgramListItem{#1}{#2}{#3}{#4}%
+}
+\end{lstlisting}
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},
+frame=single,moretexcs={[3]{BeamerProgramListCancelItem,programdateformat,cansestitleformat}}]
+\newcommand*{\BeamerProgramListCancelItem}[4]{\item[\programdateformat{#1}]
+                                              \cansestitleformat{#2#3#4\leccancel}}
+\end{lstlisting}
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},
+frame=single,moretexcs={[3]{BeamerProgramListExamItem,programdateformat,exsestitleformat}}]
+\newcommand*{\BeamerProgramListExamItem}[4]{\item[\programdateformat{#1}]
+                                            \exsestitleformat{#2#3#4}}
+\end{lstlisting}
+%
+The program block titles are set in the embedding list via the following macro:
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},
+frame=single,moretexcs={[3]{ProgramBlockItem,blocknumberformat,blocktitleformat}}]
+\newcommand*{\ProgramBlockItem}[2]{\item[\blocknumberformat{#1}.] \blocktitleformat{#2}}
+\end{lstlisting}
+%
+For beamer, the following is used with \joption{blocksonly=false}:
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},
+frame=single,moretexcs={[3]{BeamerProgramBlockItem,blocknumberformat,blocktitleformat}}]
+\newcommand*{\BeamerProgramBlockItem}[2]{\item[\blocknumberformat{#1}.]
+                                              \blocktitleformat{#2}}
+\end{lstlisting}
+%
+and the following is used with \joption{blocksonly=true}:
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},
+frame=single,moretexcs={[1]{BeamerProgramBlockBlocksOnlyItem}}]
+\newcommand*{\BeamerProgramBlockBlocksOnlyItem}[2]{\item[#1.] #2}
+\end{lstlisting}
+%
+The indentation used in program lists can be changed by redefining
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single,
+moretexcs={[2]{lecprogramlistindent,programdateformat}}]
+\newcommand*\lecprogramlistindent{\programdateformat{88.\,88.}}
+\end{lstlisting}
+%
+The vertical space that separates lines in blank presentation lists can be changed
+by redefining
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single,
+moretexcs={[2]{blankpreslistvspace,setlength}}]
+\setlength\blankpreslistvspace{2\baselineskip}
+\end{lstlisting}
+%
+The separator between session title and presenting students in presentation lists
+can be adjusted by changing
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single,
+moretexcs={[1]{presseparator}}]
+\newcommand*\presseparator{\par}
+\end{lstlisting}
+%
+For beamer presentation lists, the adaptation can be done by changing
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single,
+moretexcs={[1]{beamerpresseparator}}]
+\newcommand*\beamerpresseparator{:\ }
+\end{lstlisting}
+
+
+\subsubsection{Text formatting}\label{subsec:textform}
+
+If you only want to change the formatting of lines, you do not need to redefine the whole macros
+describe above. You can simply adjust the respective markup macros, as described in what follows.
+
+The dates in the program are bold by default. You can change this globally by redefining
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single,
+moretexcs={[1]{programdateformat}}]
+\newcommand*\programdateformat[1]{\textbf{#1}}
+\end{lstlisting}
+%
+Cancelled session titles in the program are bold by default as well. You can change this globally by redefining
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single,
+frame=single,moretexcs={[1]{cansestitleformat}}]
+\newcommand*\cansestitleformat[1]{\textbf{#1}}
+\end{lstlisting}
+%
+Normal session titles, on the other hand, are by default not emphasized at all. You can also change this
+globally by redefining
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single,
+frame=single,moretexcs={[1]{sestitleformat}}]
+\newcommand*\sestitleformat[1]{#1}
+\end{lstlisting}
+%
+Exam session titles are copies of the above. You can also change this
+globally by redefining
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single,
+frame=single,moretexcs={[2]{exsestitleformat,sestitleformat}}]
+\newcommand*\exsestitleformat[1]{\sestitleformat{#1}}
+\end{lstlisting}
+%
+Session block titles and session block numbers can be redefined by changing
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single,
+frame=single,moretexcs={[1]{blocktitleformat}}]
+\newcommand*\blocktitleformat[1]{\textbf{#1}}
+\end{lstlisting}
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single,
+frame=single,moretexcs={[1]{blocknumberformat}}]
+\newcommand*\blocknumberformat[1]{\textbf{#1}}
+\end{lstlisting}
+%
+If you want to change the line in which semester breaks are output, redefine
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single,
+frame=single,moretexcs={[1]{breakevent}}]
+\newcommand*{\ProgramListBreak}[2][\empty]%
+{%
+  \begin{center}
+    (\breakevent{#1}{: }{#2})
+  \end{center}%
+}
+\end{lstlisting}
+%
+\jcsmacro{breakevent} thereby checks whether a date range has been given (\texttt{\#1}),
+and if so, it is output followed by the separator given as second argument and the break
+title (\texttt{\#2}). If not, only the break title (\texttt{\#2}) is output.
+
+\subsubsection{Strings}
+
+For canceled sessions, the program outputs
+``\jparam{Session title} -- keine \jparam{Session}'' (``keine''
 is German for ``no''). To modify or translate this, redefine the
 following macro
-\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single]
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single,
+                   moretexcs={[2]{leccancel,lectypesession}}]
 \newcommand*\leccancel{\ -- keine \lectypesession}
 \end{lstlisting}
 The default program string used in beamer frames can be changed by
 redefining
-\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single]
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single,
+                             moretexcs={[1]{lecprogram}}]
 \newcommand*\lecprogram{Programm}
 \end{lstlisting}
-The indentation used in program lists can be changed by redefining
-\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single]
-\newcommand*\lecprogramlistindent{\textbf{88.\,88.}}
-\end{lstlisting}
 The placeholder text for session without title with \joption{draft=true}
 (see sec.~\ref{sec:lecplan}) is ``Thema \jparam{n}'' (``Thema'' is German for ``topic'').
-It can be changed by redefinition of this macro (\lstinline|\thesestopic| outputs
+It can be changed by redefinition of this macro (\jcsmacro{thesestopic} outputs
 the value of the internal topic counter).
-\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single]
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single,
+                   moretexcs={[2]{sestopic,thesestopic}}]
 \newcommand*\sestopic{Thema~\thesestopic}
 \end{lstlisting}
-Use \jfcsmacro{renewcommand{*}} for the redefinitions.
+%
+The placeholder for presentation sessions with no students assigned (by default
+an em-dash), can be redefined by changing
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single,
+moretexcs={[1]{emptypressession}}]
+\newcommand*\emptypressession{---}
+\end{lstlisting}
 
 \subsection{Using styles}\label{sec:styles}
 
@@ -1190,7 +1418,8 @@
 The time span calculation uses code provided by Christian Hupfer at
 \url{https://tex.stackexchange.com/a/473552/19291}.
 Thank you, Herbert, Enrico and Christian!
-Richard Zach provided a fix and enhancement to \jcsmacro{SetAutoOffset}. Many thanks for this.
+Richard Zach provided a fix and enhancement to \jcsmacro{SetAutoOffset} and code to customize
+the program list. Many thanks for this.
 Finally, Dominik Waßenhoven tested the package and provided
 me with multiple suggestions, which effectively manifested in major new features such as
 the \jslp\ style files. Thanks, Dominik.
@@ -1198,6 +1427,11 @@
 \section{Release History}
 
 \begin{itemize}
+\item 2020/05/11 (v. 1.11):
+	\begin{itemize}
+		\item Allow for customization of program and presentation lists (see sec.~\ref{sec:listcust}).
+		\item Correctly set first session in presentation list.
+	\end{itemize}
 \item 2020/04/30 (v. 1.10):
 	\begin{itemize}
 		\item Do not increment session topic counter for cancelled sessions and breaks.

Modified: trunk/Master/texmf-dist/tex/latex/jslectureplanner/jslectureplanner.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/jslectureplanner/jslectureplanner.sty	2020-05-11 20:46:52 UTC (rev 55099)
+++ trunk/Master/texmf-dist/tex/latex/jslectureplanner/jslectureplanner.sty	2020-05-11 20:47:10 UTC (rev 55100)
@@ -23,8 +23,8 @@
 %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-\def\filedate{2020/04/30}
-\def\fileversion{1.10}
+\def\filedate{2020/05/11}
+\def\fileversion{1.11}
 \def\filename{jslectureplanner.sty}
 
 \NeedsTeXFormat{LaTeX2e}
@@ -88,7 +88,7 @@
 \def\programlistexam{}
 \def\programlistbeamer{}
 \def\programlistbeamerexam{}
-\def\programblocklistbeamer{\item}
+\def\programblocklistbeamer{}
 \def\jsbiblist{}
 
 
@@ -182,7 +182,7 @@
 % Beamer program heading
 \newcommand*\lecprogram{Programm}
 % Program list indentation
-\newcommand*\lecprogramlistindent{\textbf{88.\,88.}}
+\newcommand*\lecprogramlistindent{\programdateformat{88.\,88.}}
 % Session topic placeholder
 \newcommand*\sestopic{Thema~\thesestopic}
 % Time slot
@@ -540,19 +540,93 @@
 % Program generation
 \newcommand\makeprogram{%
   \raggedright
-  \begin{labeling}{\lecprogramlistindent}
+  \begin{ProgramList}
   \programlist
-  \end{labeling}
+  \end{ProgramList}
 }
 
 % Exam schedule generation
 \newcommand\makeexamprogram{%
   \raggedright
-  \begin{labeling}{\lecprogramlistindent}
+  \begin{ProgramListExam}
   \programlistexam
-  \end{labeling}
+  \end{ProgramListExam}
 }
 
+% Customizable environments for formatting the lists
+
+% ProgramList is the list used in programs
+\newenvironment{ProgramList}{\begin{labeling}{\lecprogramlistindent}}{\end{labeling}}
+
+% BeamerProgramList is the list used in programs
+\newenvironment{BeamerProgramList}{\begin{description}[\lecprogramlistindent]}{\end{description}}
+
+% ProgramListExam is the list used in exam schedules. By default identical to ProgramList
+\newenvironment{ProgramListExam}{\begin{ProgramList}}{\end{ProgramList}}
+
+% PresList is the list of presenting students
+\newenvironment{PresList}{\begin{ProgramList}}{\end{ProgramList}}
+
+% Same for beamer
+\newenvironment{BeamerPresList}{\begin{BeamerProgramList}}{\end{BeamerProgramList}}
+\newenvironment{BeamerProgramListExam}{\begin{BeamerProgramList}}{\end{BeamerProgramList}}
+
+% Text format of program date
+\newcommand*\programdateformat[1]{\textbf{#1}}
+% Text format of program title
+\newcommand*\sestitleformat[1]{#1}
+% Text format of program title
+\newcommand*\exsestitleformat[1]{\sestitleformat{#1}}
+% Text format of canceled session titles
+\newcommand*\cansestitleformat[1]{\textbf{#1}}
+% Text format of block titles
+\newcommand*\blocktitleformat[1]{\textbf{#1}}
+% Text format of block numbers
+\newcommand*\blocknumberformat[1]{\textbf{#1}}
+
+% ProgramListItem, ProgramListExamItem and ProgramListCancelItem typeset a single
+% session. Arguments: #1 date, #2 title, #3 title separator, #4 subtitle
+\newcommand*{\ProgramListItem}[4]{\item[\programdateformat{#1}] \sestitleformat{#2#3#4}}
+\newcommand*{\ProgramListCancelItem}[4]{\item[\programdateformat{#1}] \cansestitleformat{#2#3#4\leccancel}}
+\newcommand*{\ProgramListExamItem}[4]{\item[\programdateformat{#1}] \exsestitleformat{#2#3#4}}
+
+% Same for beamer program
+\newcommand*{\BeamerProgramListItem}[4]{\item[\programdateformat{#1}] \sestitleformat{#2#3#4}}
+\newcommand*{\BeamerProgramListCancelItem}[4]{\item[\programdateformat{#1}] \cansestitleformat{#2#3#4\leccancel}}
+\newcommand*{\BeamerProgramListExamItem}[4]{\item[\programdateformat{#1}] \exsestitleformat{#2#3#4}}
+
+% PresListItem: Program line for student presentation lists
+\newcommand*\PresListItem[4]{%
+  \ProgramListItem{#1}{#2}{#3}{#4}%
+}
+
+\newcommand*\BeamerPresListItem[4]{%
+  \BeamerProgramListItem{#1}{#2}{#3}{#4}%
+}
+
+% Format break event
+\newcommand*\breakevent[3]{\ifx\empty#1 #2\else#1#2#3\fi}
+% ProgramListBreak typesets a break.
+% Optional argument is date range, #2 is name of break
+\newcommand*{\ProgramListBreak}[2][\empty]%
+{%
+  \begin{center}
+    (\breakevent{#1}{: }{#2})
+  \end{center}%
+}
+
+% ProgramListBlock
+\newenvironment{ProgramListBlock}[2]%
+ {%
+  \ProgramBlockItem{#1}{#2}
+  \begin{ProgramList}%
+ }%
+ {\end{ProgramList}}
+
+\newcommand*{\ProgramBlockItem}[2]{\item[\blocknumberformat{#1}.] \blocktitleformat{#2}}
+\newcommand*{\BeamerProgramBlockItem}[2]{\item[\blocknumberformat{#1}.] \blocktitleformat{#2}}
+\newcommand*{\BeamerProgramBlockBlocksOnlyItem}[2]{\item[#1.] #2}
+
 %
 % Beamer program generation
 \define at key{beamerprogram}{title}{\csdef{@bptitle}{#1}}
@@ -566,6 +640,11 @@
 \define at boolkey{beamerprogram}{blocksonly}[true]{}
 \define at boolkey{beamerprogram}{uncover}[true]{}
 
+% Overlay specifications for uncover programs
+\newcommand*\beameruncoverspec{\beamerdefaultoverlayspecification{<+(1)->}}
+\newcommand*\beameruncoverffslidesspec{\beamerdefaultoverlayspecification{<+(-1)->}}
+\newcommand*\beameruncoverblocksonlyspec{\beamerdefaultoverlayspecification{<+->}}
+
 \newcommand*\makebeamerprogram[1][]{%
   \csdef{@bptitle}{\lecprogram}
   \def\btitleapp{}
@@ -574,7 +653,7 @@
   \setkeys{beamerprogram}{blocksonly=false}
   \setkeys{beamerprogram}{uncover=false}
   \setkeys{beamerprogram}{#1}
-  \def\bpdescbeg{\begin{description}[\lecprogramlistindent]}
+  \def\bpdescbeg{\begin{BeamerProgramList}}
   \ifKV at beamerprogram@alerted
   \fi
   \providebool{uncoveredlist}
@@ -599,13 +678,10 @@
            \begin{frame}[label=beamerprogram]{\csuse{@bptitle}\btitleapp}
         }%
      }%
-       \ifbool{uncoveredlist}{%
-         \begin{description}[<+->][\lecprogramlistindent]
-       }{%
-         \begin{description}[\lecprogramlistindent]
-       }
-         \programblocklistbeamer
-       \end{description}
+       \ifbool{uncoveredlist}{\beameruncoverblocksonlyspec}{}
+       \begin{BeamerProgramList}
+         \ifcsempty{programblocklistbeamer}{\BeamerProgramBlockBlocksOnlyItem{}{}}{\programblocklistbeamer}
+       \end{BeamerProgramList}
      \end{frame}
   \else% not \ifKV at beamerprogram@blocksonly
     % All but last slide(s) are generated in what follows
@@ -626,13 +702,10 @@
            \begin{frame}[label=beamerprogram]{\csuse{@bptitle}\btitleapp}
         }%
     }%
-    \ifbool{uncoveredlist}{%
-      \begin{description}[<+(1)->][\lecprogramlistindent]
-    }{%
-      \begin{description}[\lecprogramlistindent]
-    }
+     \ifbool{uncoveredlist}{\beameruncoverspec}{}
+     \begin{BeamerProgramList}
       \programlistbeamerii
-      \end{description}
+     \end{BeamerProgramList}
     \end{frame}
     }
     \@ifundefined{programlistbeameriii}{}{%
@@ -652,13 +725,10 @@
            \begin{frame}[label=beamerprogram2]{\csuse{@bptitle}\btitleapp}
         }%
     }%
-    \ifbool{uncoveredlist}{%
-      \begin{description}[<+->][\lecprogramlistindent]
-    }{%
-      \begin{description}[\lecprogramlistindent]
-    }
+     \ifbool{uncoveredlist}{\beameruncoverffslidesspec}{}
+     \begin{BeamerProgramList}
       \programlistbeameriii
-      \end{description}
+     \end{BeamerProgramList}
     \end{frame}
     }
     \@ifundefined{programlistbeameriv}{}{%
@@ -678,13 +748,10 @@
            \begin{frame}[label=beamerprogram3]{\csuse{@bptitle}\btitleapp}
         }%
     }%
-    \ifbool{uncoveredlist}{%
-      \begin{description}[+(1)->][\lecprogramlistindent]
-    }{%
-      \begin{description}[\lecprogramlistindent]
-    }
+     \ifbool{uncoveredlist}{\beameruncoverffslidesspec}{}
+     \begin{BeamerProgramList}
       \programlistbeameriv
-      \end{description}
+     \end{BeamerProgramList}
     \end{frame}
     }
     % The last slide is generated separately:
@@ -758,14 +825,10 @@
              }%
           }%
       }%
-
-    \ifbool{uncoveredlist}{%
-      \begin{description}[<+->][\lecprogramlistindent]
-    }{%
-      \begin{description}[\lecprogramlistindent]
-    }
+     \ifbool{uncoveredlist}{\beameruncoverffslidesspec}{}
+     \begin{BeamerProgramList}
       \programlistbeamer
-      \end{description}
+     \end{BeamerProgramList}
     \end{frame}
   \fi%\else\ifKV at beamerprogram@blocksonly
 }
@@ -780,7 +843,7 @@
   \setkeys{beamerprogram}{blocksonly=false}
   \setkeys{beamerprogram}{uncover=false}
   \setkeys{beamerprogram}{#1}
-  \def\bpdescbeg{\begin{description}[\lecprogramlistindent]}
+  \def\bpdescbeg{\begin{BeamerProgramList}}
   \ifKV at beamerprogram@alerted
   \fi
   \providebool{uncoveredlist}
@@ -792,33 +855,30 @@
   \ifKV at beamerprogram@blocksonly
   \else% not \ifKV at beamerprogram@blocksonly
     % All but last slide(s) are generated in what follows
-    \@ifundefined{programlistbeamerexam}{}{%
-    \def\btitleapp{}
-     \ifcsdef{@bpolarg}{%
-        \ifcsdef{@bpopts}{%
-           \begingroup\edef\tempa{\endgroup\noexpand%
-             \begin{frame}<\csuse{@bpolarg}>[\csuse{@bpopts}]{\csuse{@bptitle}\btitleapp}}\tempa
-        }{%
-           \begin{frame}<\csuse{@bpolarg}>[label=beamerprogram]{\csuse{@bptitle}\btitleapp}
-        }%
-     }{%
-        \ifcsdef{@bpopts}{%
-           \begingroup\edef\tempa{\endgroup\noexpand%
-             \begin{frame}[\csuse{@bpopts}]{\csuse{@bptitle}\btitleapp}}\tempa
-        }{%
-           \begin{frame}[label=beamerprogram]{\csuse{@bptitle}\btitleapp}
-        }%
-    }%
-   \ifbool{uncoveredlist}{%
-      \begin{description}[<+->][\lecprogramlistindent]
-    }{%
-      \begin{description}[\lecprogramlistindent]
-    }
-      \programlistbeamerexam
-      \end{description}
-    \end{frame}
+    \ifcsempty{programlistbeamerexam}{}{%
+     \def\btitleapp{}
+      \ifcsdef{@bpolarg}{%
+         \ifcsdef{@bpopts}{%
+            \begingroup\edef\tempa{\endgroup\noexpand%
+              \begin{frame}<\csuse{@bpolarg}>[\csuse{@bpopts}]{\csuse{@bptitle}\btitleapp}}\tempa
+         }{%
+            \begin{frame}<\csuse{@bpolarg}>[label=beamerprogram]{\csuse{@bptitle}\btitleapp}
+         }%
+      }{%
+         \ifcsdef{@bpopts}{%
+            \begingroup\edef\tempa{\endgroup\noexpand%
+              \begin{frame}[\csuse{@bpopts}]{\csuse{@bptitle}\btitleapp}}\tempa
+         }{%
+            \begin{frame}[label=beamerprogram]{\csuse{@bptitle}\btitleapp}
+         }%
+     }%
+      \ifbool{uncoveredlist}{\beameruncoverspec}{}
+      \begin{BeamerProgramListExam}
+       \programlistbeamerexam
+      \end{BeamerProgramListExam}
+     \end{frame}
+   }%
   \fi%\else\ifKV at beamerprogram@blocksonly
-  }%
 }
 
 
@@ -943,20 +1003,14 @@
   \protected at csxdef{sesblockno\thesnum}{\csuse{@currentblockno}}
   \ifKV at session@cancel
     \stepcounter{cancellations}
-    \protected at eappto\programlist{\noexpand\item[{\noexpand\bfseries\csuse{sesshortdate\thesnum}}]%
-      \noexpand\bgroup\noexpand\bfseries\csuse{sestitle\thesnum}\csuse{@sestitlesep}\csuse{@sessubtitle}%
-        \noexpand\leccancel\noexpand\egroup}
-    \protected at eappto\programlistbeamer{\noexpand\item[{\noexpand\bfseries\csuse{sesshortdate\thesnum}}]%
-      \noexpand\bgroup\noexpand\bfseries\csuse{sestitle\thesnum}\csuse{@sestitlesep}\csuse{@sessubtitle}%
-        \noexpand\leccancel\noexpand\egroup}
+    \protected at eappto\programlist{\noexpand\ProgramListCancelItem{\csuse{sesshortdate\thesnum}}{\csuse{sestitle\thesnum}}{\csuse{@sestitlesep}}{\csuse{@sessubtitle}}}
+    \protected at eappto\programlistbeamer{\noexpand\BeamerProgramListCancelItem{\csuse{sesshortdate\thesnum}}{\csuse{sestitle\thesnum}}{\csuse{@sestitlesep}}{\csuse{@sessubtitle}}}
   \else
     \ifKV at session@exam
         \stepcounter{exams}
         \protected at csxdef{examsesno\theexams}{\thesnum}
-        \protected at eappto\programlistexam{\noexpand\item[{\noexpand\bfseries\csuse{sesshortdate\thesnum}}]%
-          \csuse{sestitle\thesnum}\csuse{@sestitlesep}\csuse{@sessubtitle}}
-        \protected at eappto\programlistbeamerexam{\noexpand\item[{\noexpand\bfseries\csuse{sesshortdate\thesnum}}]%
-          \csuse{sestitle\thesnum}\csuse{@sestitlesep}\csuse{@sessubtitle}}
+        \protected at eappto\programlistexam{\noexpand\ProgramListExamItem{\csuse{sesshortdate\thesnum}}{\csuse{sestitle\thesnum}}{\csuse{@sestitlesep}}{\csuse{@sessubtitle}}}
+        \protected at eappto\programlistbeamerexam{\noexpand\BeamerProgramListExamItem{\csuse{sesshortdate\thesnum}}{\csuse{sestitle\thesnum}}{\csuse{@sestitlesep}}{\csuse{@sessubtitle}}}
         \ifcsempty{sesbib\thesnum}{}{%
         \xappto\jsbiblist{\noexpand\section{\csuse{sestitle\thesnum}\csuse{@sestitlesep}\csuse{@sessubtitle}}%
           \noexpand\nocite{*}%
@@ -967,10 +1021,8 @@
         \ifKV at session@draft
             \ifcsempty{@sestitle}{\protected at csxdef{sestitle\thesnum}{\sestopic}}{}
         \fi
-        \protected at eappto\programlist{\noexpand\item[{\noexpand\bfseries\csuse{sesshortdate\thesnum}}]%
-          \csuse{sestitle\thesnum}\csuse{@sestitlesep}\csuse{@sessubtitle}}
-        \protected at eappto\programlistbeamer{\noexpand\item[{\noexpand\bfseries\csuse{sesshortdate\thesnum}}]%
-          \csuse{sestitle\thesnum}\csuse{@sestitlesep}\csuse{@sessubtitle}}
+        \protected at eappto\programlist{\noexpand\ProgramListItem{\csuse{sesshortdate\thesnum}}{\csuse{sestitle\thesnum}}{\csuse{@sestitlesep}}{\csuse{@sessubtitle}}}
+        \protected at eappto\programlistbeamer{\noexpand\BeamerProgramListItem{\csuse{sesshortdate\thesnum}}{\csuse{sestitle\thesnum}}{\csuse{@sestitlesep}}{\csuse{@sessubtitle}}}
         \ifcsempty{sesbib\thesnum}{}{%
         \xappto\jsbiblist{\noexpand\section{\csuse{sestitle\thesnum}\csuse{@sestitlesep}\csuse{@sessubtitle}}%
           \noexpand\nocite{*}%
@@ -993,10 +1045,10 @@
      }{\stepcounter{autooffsetcounter}}
   }{}
   \ifx\empty#1
-    \protected at eappto\programlist{\noexpand\begin{center} (#2) \noexpand\end{center}}
+    \protected at eappto\programlist{\noexpand\ProgramListBreak{#2}}
     \protected at eappto\programlistbeamer{\noexpand\begin{center} (#2) \noexpand\end{center}}
   \else
-    \protected at eappto\programlist{\noexpand\begin{center} (#1: #2) \noexpand\end{center}}
+    \protected at eappto\programlist{\noexpand\ProgramListBreak[#1]{#2}}
     \protected at eappto\programlistbeamer{\noexpand\begin{center} (#1: #2) \noexpand\end{center}}
   \fi
 }
@@ -1026,10 +1078,10 @@
     \stepcounter{loopcounter}
   \repeat
   \ifcsempty{@breakspan}{%
-    \protected at eappto\programlist{\noexpand\begin{center} (#2) \noexpand\end{center}}
+    \protected at eappto\programlist{\noexpand\ProgramListBreak{#2}}
     \protected at eappto\programlistbeamer{\noexpand\begin{center} (#2) \noexpand\end{center}}
   }{%
-    \protected at eappto\programlist{\noexpand\begin{center} (\csuse{@breakspan}: #2) \noexpand\end{center}}
+    \protected at eappto\programlist{\noexpand\ProgramListBreak[\csuse{@breakspan}]{#2}}
     \protected at eappto\programlistbeamer{\noexpand\begin{center} (\csuse{@breakspan}: #2) \noexpand\end{center}}
   }
 }
@@ -1051,13 +1103,10 @@
 \newtoggle{inblock}
 \newcommand*\StartBlock[1]{%
   \stepcounter{blocks}%
-  \protected at eappto\programlist{\noexpand\item[{\noexpand\bfseries\Roman{blocks}}.]%
-    \noexpand\bgroup\noexpand\bfseries #1\noexpand\egroup}%
-  \gappto\programlist{\begin{labeling}{\lecprogramlistindent}}%
-  \protected at eappto\programlistbeamer{\noexpand\item[{\noexpand\bfseries\Roman{blocks}}.]%
-    \noexpand\bgroup\noexpand\bfseries #1\noexpand\egroup}%
-  \gappto\programlistbeamer{\begin{description}[\lecprogramlistindent]}
-  \protected at xappto\programblocklistbeamer{\noexpand\item[{\Roman{blocks}}.] #1}%
+  \protected at eappto\programlist{\noexpand\begin{ProgramListBlock}{\Roman{blocks}}{#1}}
+  \protected at eappto\programlistbeamer{\noexpand\BeamerProgramBlockItem{\Roman{blocks}}{#1}}%
+  \gappto\programlistbeamer{\begin{BeamerProgramList}}
+  \protected at xappto\programblocklistbeamer{\noexpand\BeamerProgramBlockBlocksOnlyItem{\Roman{blocks}}{#1}}%
   \csxdef{@currentblock}{#1}%
   \csxdef{@currentblockno}{\Roman{blocks}}%
   \global\toggletrue{inblock}%
@@ -1064,8 +1113,8 @@
 }
 
 \newcommand*\EndBlock{%
-  \gappto\programlist{\end{labeling}}
-  \gappto\programlistbeamer{\end{description}}
+  \gappto\programlist{\end{ProgramListBlock}}
+  \gappto\programlistbeamer{\end{BeamerProgramList}}
   \csxdef{@currentblock}{}%
   \csxdef{@currentblockno}{}%
   \global\togglefalse{inblock}%
@@ -1077,14 +1126,12 @@
 }
 
 \newcommand*\@PauseBlock{%
-  \gappto\programlist{\end{labeling}}
-  \gappto\programlistbeamer{\end{description}}
+  \gappto\programlistbeamer{\end{BeamerProgramList}}
 }
 
 \newcommand*\@ResumeBlock{%
   % the \item here is necessary since this is nested immediately into another list
-  \gappto\programlist{\item \begin{labeling}{\lecprogramlistindent}}%
-  \gappto\programlistbeamer{\item \begin{description}[\lecprogramlistindent]}
+  \gappto\programlistbeamer{\item \begin{BeamerProgramList}}
 }
 
 \newenvironment{SessionBlock}[1]{\StartBlock{#1}}{\EndBlock}
@@ -1136,6 +1183,7 @@
 %
 
 \newcounter{pressession}
+\setcounter{pressession}{1}
 \newcounter{lastpressession}
 \providebool{deflastpressession}
 
@@ -1154,46 +1202,52 @@
 \newcommand\makepreslist{%
   \@ifstar{\@makeblankpreslist}{\@makepreslist}%
 }
+\newcommand*\emptypressession{---}
+\newcommand*\presseparator{\par}
 % Unstarred: use sespresstudents
 \newcommand\@makepreslist{%
   \ifbool{deflastpressession}{}{\setcounter{lastpressession}{\thesnum}}%
-  \begin{labeling}{\lecprogramlistindent}
+  \begin{PresList}
   \whiledo {\not{\value{pressession} > \value{lastpressession}}}%
   {%
     \ThisSession{\thepressession}%
     \if\relax\sespresstudents\relax
-    \MakeProgramline{\thepressession}\par
-     ---
+    \MakePresListLine{\thepressession}\presseparator%
+    \emptypressession
     \else
-    \MakeProgramline{\thepressession}\par
+    \MakePresListLine{\thepressession}\presseparator%
     \SessionPresStudents{\thepressession}
     \fi
     \stepcounter{pressession}%
   }
-  \end{labeling}
+  \end{PresList}
 }
+\newlength\blankpreslistvspace
+\setlength\blankpreslistvspace{2\baselineskip}
 % Starred: blank list
 \newcommand\@makeblankpreslist{%
   \ifbool{deflastpressession}{}{\setcounter{lastpressession}{\thesnum}}%
-  \begin{labeling}{\lecprogramlistindent}
+  \begin{PresList}
   \whiledo {\not{\value{pressession} > \value{lastpressession}}}%
   {%
-    \MakeProgramline{\thepressession}\vspace{2\baselineskip}
+    \MakePresListLine{\thepressession}\vspace{\blankpreslistvspace}
     \stepcounter{pressession}%
   }
-  \end{labeling}
+  \end{PresList}
 }
 
 % A beamer-specific version
+\newcommand*\beamerpresseparator{:\ }
 \newcommand\makebeamerpreslist{%
   \ifbool{deflastpressession}{}{\setcounter{lastpressession}{\thesnum}}%
-  \begin{description}[\lecprogramlistindent]
+  \begin{BeamerPresList}
   \whiledo {\not{\value{pressession} > \value{lastpressession}}}%
   {%
-    \MakeProgramline{\thepressession}: \SessionPresStudents{\thepressession}
+    \MakeBeamerPresListLine{\thepressession}\beamerpresseparator%
+    \SessionPresStudents{\thepressession}
     \stepcounter{pressession}%
   }
-  \end{description}
+  \end{BeamerPresList}
 }
 
 
@@ -1398,6 +1452,16 @@
     \lsestitle\lsestitlesep\lsessubtitle%
 }
 
+% Program line suitable for preslist
+\newcommand*\MakePresListLine[1]{%
+  \LocalSession{#1}%
+  \PresListItem{\lsesshortdate}{\lsestitle}{\lsestitlesep}{\lsessubtitle}%
+}
+\newcommand*\MakeBeamerPresListLine[1]{%
+  \LocalSession{#1}%
+  \BeamerPresListItem{\lsesshortdate}{\lsestitle}{\lsestitlesep}{\lsessubtitle}%
+}
+
 % Get information for adjacent (next, previous etc.) sessions
 %
 % Full title

Modified: trunk/Master/texmf-dist/tex/latex/jslectureplanner/jsmembertable.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/jslectureplanner/jsmembertable.sty	2020-05-11 20:46:52 UTC (rev 55099)
+++ trunk/Master/texmf-dist/tex/latex/jslectureplanner/jsmembertable.sty	2020-05-11 20:47:10 UTC (rev 55100)
@@ -24,8 +24,8 @@
 %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-\def\filedate{2020/04/30}
-\def\fileversion{1.10}
+\def\filedate{2020/05/11}
+\def\fileversion{1.11}
 \def\filename{jsmembertable.sty}
 
 \NeedsTeXFormat{LaTeX2e}



More information about the tex-live-commits mailing list.