texlive[42304] Master/texmf-dist: jslectureplanner (18oct16)

commits+karl at tug.org commits+karl at tug.org
Wed Oct 19 22:37:14 CEST 2016


Revision: 42304
          http://tug.org/svn/texlive?view=revision&revision=42304
Author:   karl
Date:     2016-10-19 22:37:14 +0200 (Wed, 19 Oct 2016)
Log Message:
-----------
jslectureplanner (18oct16)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/README
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturebib.pdf
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturehandout.pdf
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturepresentation.pdf
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/lectureprogram.pdf
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturescript.pdf
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/membertable-blank.pdf
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/membertable-filled.pdf
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/presencetable-blank.pdf
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/presencetable-filled.pdf
    trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/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/lecturebib.pdf
===================================================================
(Binary files differ)

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

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

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

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

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

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

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

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

Modified: trunk/Master/texmf-dist/doc/latex/jslectureplanner/examples/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	2016-10-19 20:36:58 UTC (rev 42303)
+++ trunk/Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.tex	2016-10-19 20:37:14 UTC (rev 42304)
@@ -69,7 +69,7 @@
 \author{J\xFCrgen Spitzm\xFCller%
 \thanks{Please report issues via \protect\url{https://github.com/jspitz/jslectureplanner}.}}
 
-\date{Version 1.3, 2016/08/31}
+\date{Version 1.4, 2016/10/19}
 
 \maketitle
 
@@ -222,21 +222,22 @@
 \item [\joption{year=<year>}] Year of the term
 \item [\joption{uni=<university>}] Your university
 \item [\joption{institute=<institute>}] Your institute/department
-\item [\joption{room=<room>}] The room where the course generally takes place.
-      It is possible to specify diverging rooms for individual sessions
-      (see sec. \ref{sec:lecplan}).
+\item [\joption{room=<room>}] The room where the course generally takes place;
+      it is possible to specify diverging rooms for individual sessions
+      (see sec. \ref{sec:lecplan})
 \item [\joption{startdate=<startdate>}] The date of the first session (the argument
-      \emph{must} have the form DD/MM/YYYY). If no startdate is given,
-      \jfcsmacro{today} is used.
-\item [\joption{interval=<interval>}] The interval (in days) between two sessions.
-      The preset interval is 7 (=~weekly courses).
+      \emph{must} have the form DD/MM/YYYY); if no startdate is given,
+      \jfcsmacro{today} is used
+\item [\joption{interval=<interval>}] The interval (in days) between two sessions;
+      the preset interval is 7 (=~weekly courses)
 \end{description}
 
 \subsubsection{Additional information}
 \begin{description}
-\item [\joption{instructor=<name>}] (General) course instructor's name.
-      It is possible to specify different or specific instructors for individual sessions
-      (see sec. \ref{sec:lecplan}).
+\item [\joption{instructor=<name>}] (General) course instructor's name;
+      it is possible to specify different or specific instructors for individual sessions
+      (see sec. \ref{sec:lecplan})
+\item [\joption{shortinstructor=<name>}] Short form of the (general) course instructor's name (e.\,g., for headings)
 \item [\joption{platform=<data>}] Information of the e-learning platform
       (such as the URL)
 \item [\joption{officehours=<data>}] Date of your office hours
@@ -306,7 +307,7 @@
 
 \subsubsection{Additional information}\label{ses-add}
 \begin{itemize}
-\item \jcsmacro{LecInstructor\{<name>\}}: Record the (general) instructor's name
+\item \jcsmacro{LecInstructor[<short name>]\{<name>\}}: Record the (general) instructor's name, including an optional short form for headings etc.
 \item \jcsmacro{SetOfficeHours\{<office hours>\}}: Record date of your office hours
 \item \jcsmacro{SetOfficeNumber\{<office number>\}}: Record your office (room) number
 \item \jcsmacro{SetPlatform\{<platform information>\}}: Record information
@@ -331,6 +332,7 @@
     headings etc.)
 \item \joption{instructor=<name>}: Specific instructor for this session
     (if it differs from the usual course instructor)
+\item \joption{shortinstructor=<name>}: Short form of the specific instructor for this session
 \item \joption{presstudents=<names>}: Students presenting in this session
     (used for student presentation lists, see below sec.~\ref{sec:preslists})
 \item \joption{room=<room>}: Specific room for this session (if it differs
@@ -438,7 +440,10 @@
 \item \jcsmacro{lecfulltitle}: Outputs the course's full title
     (title, separator, subtitle)
 \item \jcsmacro{lecshorttitle}: Outputs the short version
-of the course title
+of the course title; if no explicit short title is specified,
+the normal title is output (you can check whether
+there is a unique short title by the test
+\jcsmacro{iftoggle\{uniquelecshorttitle\}\{<true>\}\{<false>\}})
 \item \jcsmacro{lecsemshort}: Outputs the short version of
 the term type (e.\,g., ``WS'')
 \item \jcsmacro{lecsemverb}: Outputs the verbose version
@@ -451,6 +456,10 @@
 \item \jcsmacro{lecuniversity}: Outputs the university's name
 \item \jcsmacro{lecinstitute}: Outputs the institute's/department's name
 \item \jcsmacro{lecinstructor}: Outputs the (general) instructor's name
+\item \jcsmacro{lecshortinstructor}: Outputs short form of the (general) instructor's name;
+if no explicit short name is given, the normal name will be output (you can check whether
+there is a unique short name by the test
+\jcsmacro{iftoggle\{uniquelecshortinstructor\}\{<true>\}\{<false>\}})
 \item \jcsmacro{lecroom}: Outputs the (general) course room
 \item \jcsmacro{lecplatform}: Outputs information on the
 e-learning platform
@@ -615,12 +624,21 @@
 \item \jcsmacro{sesshortdate}: Date of the current session,
 short form (no year)
 \item \jcsmacro{sestitle}: Main title of the current session
+\item \jcsmacro{sesshorttitle}: Short title of the current session; if
+no explicit short title is specified, the normal [main] title is output
+(you can check whether there is a unique short title by the test
+\jcsmacro{iftoggle\{uniquesesshorttitle\}\{<true>\}\{<false>\}})
 \item \jcsmacro{sestitlesep}: Title-subtitle separator of
 the current session
 \item \jcsmacro{sessubtitle}: Subtitle of the current session
 \item \jcsmacro{sesfulltitle}: Full title of the current
 session (title, separator, subtitle)
-\item \jcsmacro{sesinstructor}: Current session's instructor's name
+\item \jcsmacro{sesinstructor}: Current session's instructor's name; if you want to output this name only if it differs from the general instructor (\jcsmacro{lecinstructor}), use the starred version \jcsmacro{sesinstructor*} (furthermore, you can check whether
+there is a unique session instructor by the test
+\jcsmacro{iftoggle\{uniquesesinstructor\}\{<true>\}\{<false>\}})
+\item \jcsmacro{sesshortinstructor}: Current session's instructor's short name; if you want to output this name only if it differs from the general instructor (\jcsmacro{lecshortinstructor}), use the starred version \jcsmacro{sesshortinstructor*}; if no explicit instructor short name is given, the normal instructor name will be output (you can check whether
+there is a unique short instructor [that differs from the long session instructor name] by the test
+\jcsmacro{iftoggle\{uniquesesshortinstructor\}\{<true>\}\{<false>\}})
 \item \jcsmacro{sespresstudents}: Students presenting in this session
 \item \jcsmacro{sesnr}: Number of the current session
 \item \jcsmacro{sesroom}: Room of the current session
@@ -636,11 +654,14 @@
 	\item \jcsmacro{AdjSessionFullTitle[<offset>]}: Outputs the full
 	title (main title, separator, subtitle) of the adjacent session
 	\item \jcsmacro{AdjSessionShortTitle[<offset>]}: Outputs the short
-	title of the adjacent session
+	title of the adjacent session; if no explicit short title is specified, the normal main title is output
 	\item \jcsmacro{AdjSessionDate[<offset>]}: Outputs the date of the adjacent session
 	\item \jcsmacro{AdjSessionShortDate[<offset>]}: Outputs the short
 	date (no year) of the adjacent session
 	\item \jcsmacro{AdjSessionInstructor[<offset>]}: Outputs the name of the instructor of the adjacent session
+	\item \jcsmacro{AdjSessionInstructor*[<offset>]}: Outputs the name of the instructor of the adjacent session if it differs from the general instructor (\jcsmacro{lecinstructor})
+	\item \jcsmacro{AdjSessionShortInstructor[<offset>]}: Outputs the short name (or normal name, if no short name was specified) of the instructor of the adjacent session if it differs from the general instructor (\jcsmacro{lecshortinstructor})
+	\item \jcsmacro{AdjSessionShortInstructor*[<offset>]}: Outputs the short name  (or normal name, if no short name was specified) of the instructor of the adjacent session
 	\item \jcsmacro{AdjSessionPresStudents[<offset>]}: Outputs the name of the students presenting in the adjacent session
 	\item \jcsmacro{AdjSessionRoom[<offset>]}: Outputs the room of the adjacent session
 \end{itemize}
@@ -657,7 +678,8 @@
 \item \jcsmacro{SessionFullTitle\{<nr>\}}: Outputs the full
 title (main title, separator, subtitle) of session number \joption{<nr>}
 \item \jcsmacro{SessionShortTitle\{<nr>\}}: Outputs the short
-title of session number \joption{<nr>}
+title of session number \joption{<nr>}; if
+no explicit short title is specified, the normal main title is output
 \item \jcsmacro{SessionDate\{<nr>\}}: Outputs the date of
 session number \joption{<nr>}
 \item \jcsmacro{SessionShortDate\{<nr>\}}: Outputs the short
@@ -664,6 +686,12 @@
 date (no year) of session number \joption{<nr>}
 \item \jcsmacro{SessionInstructor\{<nr>\}}: Outputs the name of the instructor of session
 number \joption{<nr>}
+\item \jcsmacro{SessionInstructor*\{<nr>\}}: Outputs the name of the instructor of session
+number \joption{<nr>} if it differs from the general instructor (\jcsmacro{lecinstructor})
+\item \jcsmacro{SessionShortInstructor\{<nr>\}}: Outputs the short name (or normal name, if no short name was specified) of the instructor of session
+number \joption{<nr>}
+\item \jcsmacro{SessionShortInstructor*\{<nr>\}}: Outputs the short name  (or normal name, if no short name was specified) of the instructor of session
+number \joption{<nr>} if it differs from the general instructor (\jcsmacro{lecinstructor})
 \item \jcsmacro{SessionPresStudents\{<nr>\}}: Outputs the name of the students presenting
 in session number \joption{<nr>}
 \item \jcsmacro{SessionRoom\{<nr>\}}: Outputs the room of session number \joption{<nr>}
@@ -1021,6 +1049,13 @@
 \section{Release History}
 
 \begin{itemize}
+\item 2016/10/19 (v. 1.4):
+	\begin{itemize}
+		\item Add instructor short forms for lecture and session.
+		\item Add starred versions of the \jcsmacro{sesinstructor}, \jcsmacro{SessionInstructor} and \jcsmacro{AdjSessionInstructor} macros that only produce output if the session instructor differs from the general course instructor.
+		\item All short\{instructor|title\} macros now output the long version if no short form was defined.
+		\item Add boolean tests for unique short forms and session instructors.
+	\end{itemize}
 \item 2016/08/31 (v. 1.3):
      \begin{itemize}
      	\item \textbf{Backwards-incompatible change!} Use \textsf{datetime2} instead of \textsf{datetime} and \textsf{advdate}.

Modified: trunk/Master/texmf-dist/tex/latex/jslectureplanner/jslectureplanner.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/jslectureplanner/jslectureplanner.sty	2016-10-19 20:36:58 UTC (rev 42303)
+++ trunk/Master/texmf-dist/tex/latex/jslectureplanner/jslectureplanner.sty	2016-10-19 20:37:14 UTC (rev 42304)
@@ -23,8 +23,8 @@
 %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-\def\filedate{2016/08/31}
-\def\fileversion{1.3}
+\def\filedate{2016/10/19}
+\def\fileversion{1.4}
 \def\filename{jslectureplanner.sty}
 
 \NeedsTeXFormat{LaTeX2e}
@@ -62,6 +62,7 @@
 \def\lecroom{}
 \def\lecstartdate{}
 \def\lecinstructor{}
+\def\lecshortinstructor{}
 
 \def\lecplatform{}
 \def\officenumber{}
@@ -70,6 +71,7 @@
 \def\sesdate{}
 \def\sesshortdate{}
 \def\sestitle{}
+\def\sesshorttitle{}
 \def\sestitlesep{}
 \def\sessubtitle{}
 \def\sesnr{}
@@ -160,7 +162,17 @@
 \newcounter{loopcounter}
 \newcounter{adjsession}
 
+
 %
+% Booleans
+%
+\newtoggle{uniquelecshortinstructor}
+\newtoggle{uniquesesinstructor}
+\newtoggle{uniquesesshortinstructor}
+\newtoggle{uniquelecshorttitle}
+\newtoggle{uniquesesshorttitle}
+
+%
 % HELPERS
 %
 
@@ -203,10 +215,16 @@
 }
 \DeclareOptionX{semester}{\setkeys{lec}{lecsem=#1}}
 
-\define at key{lec}{title}{\def\lectitle{#1}}
+\define at key{lec}{title}{\def\lectitle{#1}%
+    \ifx\lecshorttitle\empty%
+      \def\lecshorttitle{#1}%
+      \global\togglefalse{uniquelecshorttitle}%
+    \fi}
 \define at key{lec}{titlesep}{\def\lectitlesep{#1}}
 \define at key{lec}{subtitle}{\def\lecsubtitle{#1}}
-\define at key{lec}{shorttitle}{\def\lecshorttitle{#1}}
+\define at key{lec}{shorttitle}{%
+    \def\lecshorttitle{#1}%
+    \global\toggletrue{uniquelecshorttitle}}
 \define at key{lec}{year}{\def\lecyear{#1}}
 \define at key{lec}{uni}{\def\lecuniversity{#1}}
 \define at key{lec}{institute}{\def\lecinstitute{#1}}
@@ -215,7 +233,11 @@
 \define at key{lec}{officenumber}{\def\officenumber{#1}}
 \define at key{lec}{room}{\def\lecroom{#1}}
 \define at key{lec}{startdate}{\def\lecstartdate{#1}}
-\define at key{lec}{instructor}{\def\lecinstructor{#1}}
+\define at key{lec}{instructor}{\def\lecinstructor{#1}%
+    \ifx\lecshortinstructor\empty\def\lecshortinstructor{#1}\fi}
+\define at key{lec}{shortinstructor}{%
+    \def\lecshortinstructor{#1}%
+    \global\toggletrue{uniquelecshortinstructor}}
 \define at key{lec}{style}{\AtEndOfPackage{\input{#1.lps}}}
 \define at key{lec}{interval}{%
     % test if the input is a number
@@ -238,6 +260,7 @@
 \DeclareOptionX{institute}{\setkeys{lec}{institute={#1}}}
 \DeclareOptionX{startdate}{\setkeys{lec}{startdate=#1}}
 \DeclareOptionX{instructor}{\setkeys{lec}{instructor={#1}}}
+\DeclareOptionX{shortinstructor}{\setkeys{lec}{shortinstructor={#1}}}
 \DeclareOptionX{platform}{\setkeys{lec}{platform={#1}}}
 \DeclareOptionX{officehours}{\setkeys{lec}{officehours={#1}}}
 \DeclareOptionX{officenumber}{\setkeys{lec}{officenumber={#1}}}
@@ -257,7 +280,7 @@
 %
 
 \newcommand*{\LecType}[1]{\setkeys{lec}{lectype=#1}}
-\newcommand*{\LecTitle}[2][]{\setkeys{lec}{#1,title={#2}}}
+\newcommand*{\LecTitle}[2][]{\setkeys{lec}{shorttitle={#2},#1,title={#2}}}
 \newcommand*{\LecTitleSep}[1]{\setkeys{lec}{titlesep={#1}}}
 \newcommand*{\LecSubTitle}[1]{\setkeys{lec}{subtitle={#1}}}
 \newcommand*{\LecYear}[2]{\setkeys{lec}{lecsem=#1,year=#2}}
@@ -265,7 +288,13 @@
 \newcommand*{\LecInstitute}[1]{\setkeys{lec}{institute={#1}}}
 \newcommand*{\LecRoom}[1]{\setkeys{lec}{room={#1}}}
 \newcommand*{\LecStartDate}[1]{\setkeys{lec}{startdate=#1}}
-\newcommand*{\LecInstructor}[1]{\setkeys{lec}{instructor={#1}}}
+\newcommand*{\LecInstructor}[2][\empty]{%
+    \ifx#1\empty
+        \setkeys{lec}{instructor={#2}}%
+    \else
+        \setkeys{lec}{instructor={#2},shortinstructor={#1}}%
+    \fi
+}
 \newcommand*{\LecInterval}[1]{\setkeys{lec}{interval=#1}}
 
 
@@ -523,12 +552,17 @@
 
 % 1) Session definition
 %
+\newtoggle{shortinstrdef}
 \define at key{session}{titlesep}{\csdef{@sestitlesep}{{#1}}}
-\define at key{session}{subtitle}{\csdef{@vasutitle}{{#1}}}
-\define at key{session}{shorttitle}{\csdef{@vashorttitle}{{#1}}}
+\define at key{session}{subtitle}{\csdef{@sessubtitle}{{#1}}}
+\define at key{session}{shorttitle}{\csdef{@sesshorttitle}{{#1}}\csdef{@usesshorttitle}{{#1}}}
 \define at key{session}{bibsec}{\csdef{@sesbibsec}{#1}}
 \define at key{session}{room}{\csdef{@sesroom}{{#1}}}
-\define at key{session}{instructor}{\csdef{@sesinstructor}{{#1}}}
+\define at key{session}{instructor}{%
+    \csdef{@sesinstructor}{{#1}}\csdef{@usesinstructor}{{#1}}%
+    \iftoggle{shortinstrdef}{}{\csdef{@sesshortinstructor}{{#1}}\csdef{@usesshortinstructor}{{#1}}}}
+\define at key{session}{shortinstructor}{%
+    \csdef{@sesshortinstructor}{{#1}}\csdef{@usesshortinstructor}{{#1}}\toggletrue{shortinstrdef}}
 \define at key{session}{presstudents}{\csdef{@sespresstudents}{{#1}}}
 \define at boolkey{session}{cancel}[true]{}
 %
@@ -543,12 +577,17 @@
   \setcounter{dateratio}{(\thesesunit-1)*\thelecinterval+\thesesoffset}
   \setcounter{snum}{\thesesunit-\thecancellations}
   \protected at csxdef{sesnr\thesnum}{\thesnum}
+  \togglefalse{shortinstrdef}
   \csdef{@sestitlesep}{}
-  \csdef{@vasutitle}{}
-  \csdef{@vashorttitle}{}
+  \csdef{@sessubtitle}{}
+  \csdef{@sesshorttitle}{#2}
+  \csdef{@usesshorttitle}{}
   \csdef{@sesbibsec}{}
   \csdef{@sesroom}{\lecroom}
   \csdef{@sesinstructor}{\lecinstructor}
+  \csdef{@sesshortinstructor}{\lecshortinstructor}
+  \csdef{@usesinstructor}{}
+  \csdef{@usesshortinstructor}{}
   \csdef{@sespresstudents}{}
   \setkeys{session}{cancel=false}
   \setkeys{session}{#1}
@@ -561,27 +600,31 @@
       \DTMsetdatestyle{lecshortdate}\DTMdate{\year-\month-\day+\thedateratio}\egroup}
   \protected at csxdef{sestitle\thesnum}{\csuse{@sestitle}\ifcsempty{@sestitle}{\strut}{}}
   \protected at csxdef{sestitlesep\thesnum}{\csuse{@sestitlesep}}
-  \protected at csxdef{sessubtitle\thesnum}{\csuse{@vasutitle}}
-  \protected at csxdef{sesshorttitle\thesnum}{\csuse{@vashorttitle}}
+  \protected at csxdef{sessubtitle\thesnum}{\csuse{@sessubtitle}}
+  \protected at csxdef{sesshorttitle\thesnum}{\csuse{@sesshorttitle}}
+  \protected at csxdef{usesshorttitle\thesnum}{\csuse{@usesshorttitle}}
   \protected at csxdef{sesbib\thesnum}{\csuse{@sesbibsec}}
   \protected at csxdef{sesroom\thesnum}{\csuse{@sesroom}}
   \protected at csxdef{sesinstructor\thesnum}{\csuse{@sesinstructor}}
+  \protected at csxdef{sesshortinstructor\thesnum}{\csuse{@sesshortinstructor}}
+  \protected at csxdef{usesinstructor\thesnum}{\csuse{@usesinstructor}}
+  \protected at csxdef{usesshortinstructor\thesnum}{\csuse{@usesshortinstructor}}
   \protected at csxdef{sespresstudents\thesnum}{\csuse{@sespresstudents}}
   \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{@vasutitle}%
+      \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{@vasutitle}%
+      \noexpand\bgroup\noexpand\bfseries\csuse{sestitle\thesnum}\csuse{@sestitlesep}\csuse{@sessubtitle}%
         \noexpand\leccancel\noexpand\egroup}
   \else
     \protected at eappto\programlist{\noexpand\item[{\noexpand\bfseries\csuse{sesshortdate\thesnum}}]%
-      \csuse{sestitle\thesnum}\csuse{@sestitlesep}\csuse{@vasutitle}}
+      \csuse{sestitle\thesnum}\csuse{@sestitlesep}\csuse{@sessubtitle}}
     \protected at eappto\programlistbeamer{\noexpand\item[{\noexpand\bfseries\csuse{sesshortdate\thesnum}}]%
-      \csuse{sestitle\thesnum}\csuse{@sestitlesep}\csuse{@vasutitle}}
+      \csuse{sestitle\thesnum}\csuse{@sestitlesep}\csuse{@sessubtitle}}
     \ifcsempty{sesbib\thesnum}{}{%
-    \xappto\jsbiblist{\noexpand\section{\csuse{sestitle\thesnum}\csuse{@sestitlesep}\csuse{@vasutitle}}%
+    \xappto\jsbiblist{\noexpand\section{\csuse{sestitle\thesnum}\csuse{@sestitlesep}\csuse{@sessubtitle}}%
       \noexpand\nocite{*}%
       \noexpand\printbibliography[keyword=\csuse{sesbib\thesnum},heading=none]}%
     }%
@@ -795,10 +838,29 @@
   \gdef\sestitle{\csuse{sestitle#1}}%
   \gdef\sestitlesep{\csuse{sestitlesep#1}}%
   \gdef\sesshorttitle{\csuse{sesshorttitle#1}}%
+  \gdef\@usesshorttitle{\csuse{usesshorttitle#1}}%
   \gdef\sessubtitle{\csuse{sessubtitle#1}}%
   \gdef\sesroom{\csuse{sesroom#1}}%
-  \gdef\sesinstructor{\csuse{sesinstructor#1}}%
+  \gdef\@sesinstructor{\csuse{sesinstructor#1}}%
+  \gdef\@sesshortinstructor{\csuse{sesshortinstructor#1}}%
+  \gdef\@usesinstructor{\csuse{usesinstructor#1}}%
+  \gdef\@usesshortinstructor{\csuse{usesshortinstructor#1}}%
   \gdef\sespresstudents{\csuse{sespresstudents#1}}%
+  \if\hfuzz\@usesinstructor\hfuzz%
+    \global\togglefalse{uniquesesinstructor}%
+  \else
+    \global\toggletrue{uniquesesinstructor}%
+  \fi
+  \if\hfuzz\@usesshortinstructor\hfuzz%
+    \global\togglefalse{uniquesesshortinstructor}%
+  \else
+    \global\toggletrue{uniquesesshortinstructor}%
+  \fi
+  \if\hfuzz\@usesshorttitle\hfuzz%
+    \global\togglefalse{uniquesesshorttitle}%
+  \else
+    \global\toggletrue{uniquesesshorttitle}%
+  \fi
 }
 
 % Define a local session
@@ -812,10 +874,22 @@
   \gdef\lsesshorttitle{\csuse{sesshorttitle#1}}%
   \gdef\lsessubtitle{\csuse{sessubtitle#1}}%
   \gdef\lsesroom{\csuse{sesroom#1}}%
-  \gdef\lsesinstructor{\csuse{sesinstructor#1}}%
+  \gdef\@lsesinstructor{\csuse{sesinstructor#1}}%
+  \gdef\@lsesshortinstructor{\csuse{sesshortinstructor#1}}%
+  \gdef\@lusesinstructor{\csuse{usesinstructor#1}}%
+  \gdef\@lusesshortinstructor{\csuse{usesshortinstructor#1}}%
   \gdef\lsespresstudents{\csuse{sespresstudents#1}}%
 }
 
+% \ses[short]instructor and \ses[short]instructor*.
+% The starred versions only output something if the session
+% instructor differs from the general lecture instructor
+\newcommand\sesinstructor{\@ifstar{\@usesinstructor}{\@sesinstructor}}
+\newcommand\sesshortinstructor{\@ifstar{\@usesshortinstructor}{\@sesshortinstructor}}
+% same for local instructor macros 
+\newcommand\lsesinstructor{\@ifstar{\@lusesinstructor}{\@lsesinstructor}}
+\newcommand\lsesshortinstructor{\@ifstar{\@lusesshortinstructor}{\@lsesshortinstructor}}
+
 % Get information for a specific (local) session
 %
 % Full title
@@ -854,12 +928,40 @@
   \lsesroom%
 }
 
-% Instructor
-\newcommand*\SessionInstructor[1]{%
+% Instructor relay
+\newcommand*\SessionInstructor{%
+  \@ifstar{\@@SessionInstructor}{\@SessionInstructor}%
+}
+
+% Instructor, unstarred
+\newcommand*\@SessionInstructor[1]{%
   \LocalSession{#1}%
   \lsesinstructor%
 }
 
+% Instructor, starred
+\newcommand*\@@SessionInstructor[1]{%
+  \LocalSession{#1}%
+  \lsesinstructor*%
+}
+
+% Instructor (Short Form) relay
+\newcommand*\SessionShortInstructor{%
+  \@ifstar{\@@SessionShortInstructor}{\@SessionShortInstructor}%
+}
+
+% Instructor (Short Form), unstarred
+\newcommand*\@SessionShortInstructor[1]{%
+  \LocalSession{#1}%
+  \lsesshortinstructor%
+}
+
+% Instructor (Short Form), starred
+\newcommand*\@@SessionShortInstructor[1]{%
+  \LocalSession{#1}%
+  \lsesshortinstructor*%
+}
+
 % Presenting students
 \newcommand*\SessionPresStudents[1]{%
   \LocalSession{#1}%
@@ -918,13 +1020,42 @@
     \SessionRoom{\theadjsession}%
   \fi
 }
-% Instructor
-\newcommand*\AdjSessionInstructor[1][1]{%
+% Instructor relay
+\newcommand*\AdjSessionInstructor{%
+  \@ifstar{\@@AdjSessionInstructor}{\@AdjSessionInstructor}%
+}
+% Instructor, unstarred
+\newcommand*\@AdjSessionInstructor[1][1]{%
   \ifnum0<0\sesnr\relax
     \setcounter{adjsession}{\numexpr\sesnr+#1\relax}%
     \SessionInstructor{\theadjsession}%
   \fi
 }
+% Instructor, starred
+\newcommand*\@@AdjSessionInstructor[1][1]{%
+  \ifnum0<0\sesnr\relax
+    \setcounter{adjsession}{\numexpr\sesnr+#1\relax}%
+    \SessionInstructor*{\theadjsession}%
+  \fi
+}
+% Instructor (Short Form) relay
+\newcommand*\AdjSessionShortInstructor{%
+  \@ifstar{\@@AdjSessionShortInstructor}{\@AdjSessionShortInstructor}%
+}
+% Instructor (Short Form), unstarred
+\newcommand*\@AdjSessionShortInstructor[1][1]{%
+  \ifnum0<0\sesnr\relax
+    \setcounter{adjsession}{\numexpr\sesnr+#1\relax}%
+    \SessionShortInstructor{\theadjsession}%
+  \fi
+}
+% Instructor (Short Form), starred
+\newcommand*\@@AdjSessionShortInstructor[1][1]{%
+  \ifnum0<0\sesnr\relax
+    \setcounter{adjsession}{\numexpr\sesnr+#1\relax}%
+    \SessionShortInstructor*{\theadjsession}%
+  \fi
+}
 % Presenting students
 \newcommand*\AdjSessionPresStudents[1][1]{%
   \ifnum0<0\sesnr\relax

Modified: trunk/Master/texmf-dist/tex/latex/jslectureplanner/jsmembertable.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/jslectureplanner/jsmembertable.sty	2016-10-19 20:36:58 UTC (rev 42303)
+++ trunk/Master/texmf-dist/tex/latex/jslectureplanner/jsmembertable.sty	2016-10-19 20:37:14 UTC (rev 42304)
@@ -24,8 +24,8 @@
 %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-\def\filedate{2016/08/31}
-\def\fileversion{1.3}
+\def\filedate{2016/10/19}
+\def\fileversion{1.4}
 \def\filename{jsmembertable.sty}
 
 \NeedsTeXFormat{LaTeX2e}



More information about the tex-live-commits mailing list