From 675bcc9067ccef91624a9eca025506a4ce1d37b3 Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Tue, 12 May 2020 03:03:03 +0000
Subject: CTAN sync 202005120303

---
 .../contrib/jslectureplanner/jslectureplanner.sty  | 284 +++++++++++++--------
 1 file changed, 174 insertions(+), 110 deletions(-)

(limited to 'macros/latex/contrib/jslectureplanner/jslectureplanner.sty')

diff --git a/macros/latex/contrib/jslectureplanner/jslectureplanner.sty b/macros/latex/contrib/jslectureplanner/jslectureplanner.sty
index 975be52a0d..72c62b27fa 100644
--- a/macros/latex/contrib/jslectureplanner/jslectureplanner.sty
+++ b/macros/latex/contrib/jslectureplanner/jslectureplanner.sty
@@ -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@key{beamerprogram}{title}{\csdef{@bptitle}{#1}}
@@ -566,6 +640,11 @@
 \define@boolkey{beamerprogram}{blocksonly}[true]{}
 \define@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@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@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@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@beamerprogram@alerted
   \fi
   \providebool{uncoveredlist}
@@ -792,33 +855,30 @@
   \ifKV@beamerprogram@blocksonly
   \else% not \ifKV@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@beamerprogram@blocksonly
-  }%
 }
 
 
@@ -943,20 +1003,14 @@
   \protected@csxdef{sesblockno\thesnum}{\csuse{@currentblockno}}
   \ifKV@session@cancel
     \stepcounter{cancellations}
-    \protected@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@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@eappto\programlist{\noexpand\ProgramListCancelItem{\csuse{sesshortdate\thesnum}}{\csuse{sestitle\thesnum}}{\csuse{@sestitlesep}}{\csuse{@sessubtitle}}}
+    \protected@eappto\programlistbeamer{\noexpand\BeamerProgramListCancelItem{\csuse{sesshortdate\thesnum}}{\csuse{sestitle\thesnum}}{\csuse{@sestitlesep}}{\csuse{@sessubtitle}}}
   \else
     \ifKV@session@exam
         \stepcounter{exams}
         \protected@csxdef{examsesno\theexams}{\thesnum}
-        \protected@eappto\programlistexam{\noexpand\item[{\noexpand\bfseries\csuse{sesshortdate\thesnum}}]%
-          \csuse{sestitle\thesnum}\csuse{@sestitlesep}\csuse{@sessubtitle}}
-        \protected@eappto\programlistbeamerexam{\noexpand\item[{\noexpand\bfseries\csuse{sesshortdate\thesnum}}]%
-          \csuse{sestitle\thesnum}\csuse{@sestitlesep}\csuse{@sessubtitle}}
+        \protected@eappto\programlistexam{\noexpand\ProgramListExamItem{\csuse{sesshortdate\thesnum}}{\csuse{sestitle\thesnum}}{\csuse{@sestitlesep}}{\csuse{@sessubtitle}}}
+        \protected@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@session@draft
             \ifcsempty{@sestitle}{\protected@csxdef{sestitle\thesnum}{\sestopic}}{}
         \fi
-        \protected@eappto\programlist{\noexpand\item[{\noexpand\bfseries\csuse{sesshortdate\thesnum}}]%
-          \csuse{sestitle\thesnum}\csuse{@sestitlesep}\csuse{@sessubtitle}}
-        \protected@eappto\programlistbeamer{\noexpand\item[{\noexpand\bfseries\csuse{sesshortdate\thesnum}}]%
-          \csuse{sestitle\thesnum}\csuse{@sestitlesep}\csuse{@sessubtitle}}
+        \protected@eappto\programlist{\noexpand\ProgramListItem{\csuse{sesshortdate\thesnum}}{\csuse{sestitle\thesnum}}{\csuse{@sestitlesep}}{\csuse{@sessubtitle}}}
+        \protected@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@eappto\programlist{\noexpand\begin{center} (#2) \noexpand\end{center}}
+    \protected@eappto\programlist{\noexpand\ProgramListBreak{#2}}
     \protected@eappto\programlistbeamer{\noexpand\begin{center} (#2) \noexpand\end{center}}
   \else
-    \protected@eappto\programlist{\noexpand\begin{center} (#1: #2) \noexpand\end{center}}
+    \protected@eappto\programlist{\noexpand\ProgramListBreak[#1]{#2}}
     \protected@eappto\programlistbeamer{\noexpand\begin{center} (#1: #2) \noexpand\end{center}}
   \fi
 }
@@ -1026,10 +1078,10 @@
     \stepcounter{loopcounter}
   \repeat
   \ifcsempty{@breakspan}{%
-    \protected@eappto\programlist{\noexpand\begin{center} (#2) \noexpand\end{center}}
+    \protected@eappto\programlist{\noexpand\ProgramListBreak{#2}}
     \protected@eappto\programlistbeamer{\noexpand\begin{center} (#2) \noexpand\end{center}}
   }{%
-    \protected@eappto\programlist{\noexpand\begin{center} (\csuse{@breakspan}: #2) \noexpand\end{center}}
+    \protected@eappto\programlist{\noexpand\ProgramListBreak[\csuse{@breakspan}]{#2}}
     \protected@eappto\programlistbeamer{\noexpand\begin{center} (\csuse{@breakspan}: #2) \noexpand\end{center}}
   }
 }
@@ -1051,21 +1103,18 @@
 \newtoggle{inblock}
 \newcommand*\StartBlock[1]{%
   \stepcounter{blocks}%
-  \protected@eappto\programlist{\noexpand\item[{\noexpand\bfseries\Roman{blocks}}.]%
-    \noexpand\bgroup\noexpand\bfseries #1\noexpand\egroup}%
-  \gappto\programlist{\begin{labeling}{\lecprogramlistindent}}%
-  \protected@eappto\programlistbeamer{\noexpand\item[{\noexpand\bfseries\Roman{blocks}}.]%
-    \noexpand\bgroup\noexpand\bfseries #1\noexpand\egroup}%
-  \gappto\programlistbeamer{\begin{description}[\lecprogramlistindent]}
-  \protected@xappto\programblocklistbeamer{\noexpand\item[{\Roman{blocks}}.] #1}%
+  \protected@eappto\programlist{\noexpand\begin{ProgramListBlock}{\Roman{blocks}}{#1}}
+  \protected@eappto\programlistbeamer{\noexpand\BeamerProgramBlockItem{\Roman{blocks}}{#1}}%
+  \gappto\programlistbeamer{\begin{BeamerProgramList}}
+  \protected@xappto\programblocklistbeamer{\noexpand\BeamerProgramBlockBlocksOnlyItem{\Roman{blocks}}{#1}}%
   \csxdef{@currentblock}{#1}%
   \csxdef{@currentblockno}{\Roman{blocks}}%
   \global\toggletrue{inblock}%
 }
 
 \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
-- 
cgit v1.2.3

