summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-10-19 20:37:14 +0000
committerKarl Berry <karl@freefriends.org>2016-10-19 20:37:14 +0000
commit8bd51564ec4daf2be1c0e6767abbd5215cb8b21a (patch)
tree0b919a56f5ecdafa122ca9e7daefd7f34bae104a /Master
parent214c5615badcad020bb0b24d205e83e0b10d8f63 (diff)
jslectureplanner (18oct16)
git-svn-id: svn://tug.org/texlive/trunk@42304 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/latex/jslectureplanner/README10
-rw-r--r--Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturebib.pdfbin85429 -> 85429 bytes
-rw-r--r--Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturehandout.pdfbin59148 -> 59148 bytes
-rw-r--r--Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturepresentation.pdfbin84910 -> 84910 bytes
-rw-r--r--Master/texmf-dist/doc/latex/jslectureplanner/examples/lectureprogram.pdfbin57884 -> 57884 bytes
-rw-r--r--Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturescript.pdfbin34739 -> 34739 bytes
-rw-r--r--Master/texmf-dist/doc/latex/jslectureplanner/examples/membertable-blank.pdfbin28387 -> 28387 bytes
-rw-r--r--Master/texmf-dist/doc/latex/jslectureplanner/examples/membertable-filled.pdfbin28510 -> 28510 bytes
-rw-r--r--Master/texmf-dist/doc/latex/jslectureplanner/examples/presencetable-blank.pdfbin27892 -> 27892 bytes
-rw-r--r--Master/texmf-dist/doc/latex/jslectureplanner/examples/presencetable-filled.pdfbin26781 -> 26781 bytes
-rw-r--r--Master/texmf-dist/doc/latex/jslectureplanner/examples/presentation-list.pdfbin26863 -> 26863 bytes
-rw-r--r--Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.pdfbin423352 -> 427015 bytes
-rw-r--r--Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.tex67
-rw-r--r--Master/texmf-dist/tex/latex/jslectureplanner/jslectureplanner.sty181
-rw-r--r--Master/texmf-dist/tex/latex/jslectureplanner/jsmembertable.sty4
15 files changed, 219 insertions, 43 deletions
diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/README b/Master/texmf-dist/doc/latex/jslectureplanner/README
index 8980f594662..d8050cc7840 100644
--- a/Master/texmf-dist/doc/latex/jslectureplanner/README
+++ b/Master/texmf-dist/doc/latex/jslectureplanner/README
@@ -68,6 +68,16 @@ instructions; also have a look at the example files.
== CHANGES ==
+* V 1.4 (2016-10-19): - Add instructor short forms for lecture and session.
+
+ - Add starred version of \sesinstructor that only produces output
+ if the session instructor differs from the general course instructor.
+
+ - All short{instructor|title} macros now output the long version if no
+ short form was defined.
+
+ - Add boolean tests for unique short forms and session instructors.
+
* V. 1.3 (2016-08-31): - BACKWARDS-INCOMPATIBLE CHANGE! Use datetime2 instead of datetime
and advdate. This changes the interface to set the lecture date
format. Please refer to the documentation for details.
diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturebib.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturebib.pdf
index 26765829e96..cf6383561f5 100644
--- a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturebib.pdf
+++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturebib.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturehandout.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturehandout.pdf
index ee534d78a16..604108b8ac3 100644
--- a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturehandout.pdf
+++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturehandout.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturepresentation.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturepresentation.pdf
index b2195a77512..6de84bfc33d 100644
--- a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturepresentation.pdf
+++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturepresentation.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lectureprogram.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lectureprogram.pdf
index 2ae19d6d76f..7e13107b324 100644
--- a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lectureprogram.pdf
+++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lectureprogram.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturescript.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturescript.pdf
index f63e9d3c2ca..443e194e319 100644
--- a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturescript.pdf
+++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturescript.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/membertable-blank.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/examples/membertable-blank.pdf
index 9fb8a7e0970..83c0ff74273 100644
--- a/Master/texmf-dist/doc/latex/jslectureplanner/examples/membertable-blank.pdf
+++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/membertable-blank.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/membertable-filled.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/examples/membertable-filled.pdf
index 90006339dc5..890c45e4d43 100644
--- a/Master/texmf-dist/doc/latex/jslectureplanner/examples/membertable-filled.pdf
+++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/membertable-filled.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/presencetable-blank.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/examples/presencetable-blank.pdf
index 83fae9336e8..2be7842e3c4 100644
--- a/Master/texmf-dist/doc/latex/jslectureplanner/examples/presencetable-blank.pdf
+++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/presencetable-blank.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/presencetable-filled.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/examples/presencetable-filled.pdf
index dcb6f3244ee..aa72abb42d6 100644
--- a/Master/texmf-dist/doc/latex/jslectureplanner/examples/presencetable-filled.pdf
+++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/presencetable-filled.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/presentation-list.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/examples/presentation-list.pdf
index c98132035bd..1c3d5cb081f 100644
--- a/Master/texmf-dist/doc/latex/jslectureplanner/examples/presentation-list.pdf
+++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/presentation-list.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.pdf
index 32dee2cbab3..cbd380913c2 100644
--- a/Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.pdf
+++ b/Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.tex b/Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.tex
index 200bb441ebc..2086eaf92db 100644
--- a/Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.tex
+++ b/Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.tex
@@ -69,7 +69,7 @@
\author{Jürgen Spitzmüller%
\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 @@ Also cf. sec.~\ref{sec:styles}.
\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 @@ the first session (the argument \emph{must} have the form DD/MM/YYYY)
\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 @@ Valid \joption{<options>} include:
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 @@ title and subtitle
\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 @@ of the semester (such as ``Winter\-semester 2014'')
\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 @@ the following macros output general session-specific information:
\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 @@ information for sessions that follow or precede the current session by a specifi
\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,13 +678,20 @@ of session number \joption{<nr>}
\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
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 @@ the \jslp\ style files. Thanks, Dominik.
\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}.
diff --git a/Master/texmf-dist/tex/latex/jslectureplanner/jslectureplanner.sty b/Master/texmf-dist/tex/latex/jslectureplanner/jslectureplanner.sty
index ed719c4751c..e3774c026f9 100644
--- a/Master/texmf-dist/tex/latex/jslectureplanner/jslectureplanner.sty
+++ b/Master/texmf-dist/tex/latex/jslectureplanner/jslectureplanner.sty
@@ -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,6 +162,16 @@
\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@key{lec}{title}{\def\lectitle{#1}}
+\define@key{lec}{title}{\def\lectitle{#1}%
+ \ifx\lecshorttitle\empty%
+ \def\lecshorttitle{#1}%
+ \global\togglefalse{uniquelecshorttitle}%
+ \fi}
\define@key{lec}{titlesep}{\def\lectitlesep{#1}}
\define@key{lec}{subtitle}{\def\lecsubtitle{#1}}
-\define@key{lec}{shorttitle}{\def\lecshorttitle{#1}}
+\define@key{lec}{shorttitle}{%
+ \def\lecshorttitle{#1}%
+ \global\toggletrue{uniquelecshorttitle}}
\define@key{lec}{year}{\def\lecyear{#1}}
\define@key{lec}{uni}{\def\lecuniversity{#1}}
\define@key{lec}{institute}{\def\lecinstitute{#1}}
@@ -215,7 +233,11 @@
\define@key{lec}{officenumber}{\def\officenumber{#1}}
\define@key{lec}{room}{\def\lecroom{#1}}
\define@key{lec}{startdate}{\def\lecstartdate{#1}}
-\define@key{lec}{instructor}{\def\lecinstructor{#1}}
+\define@key{lec}{instructor}{\def\lecinstructor{#1}%
+ \ifx\lecshortinstructor\empty\def\lecshortinstructor{#1}\fi}
+\define@key{lec}{shortinstructor}{%
+ \def\lecshortinstructor{#1}%
+ \global\toggletrue{uniquelecshortinstructor}}
\define@key{lec}{style}{\AtEndOfPackage{\input{#1.lps}}}
\define@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@key{session}{titlesep}{\csdef{@sestitlesep}{{#1}}}
-\define@key{session}{subtitle}{\csdef{@vasutitle}{{#1}}}
-\define@key{session}{shorttitle}{\csdef{@vashorttitle}{{#1}}}
+\define@key{session}{subtitle}{\csdef{@sessubtitle}{{#1}}}
+\define@key{session}{shorttitle}{\csdef{@sesshorttitle}{{#1}}\csdef{@usesshorttitle}{{#1}}}
\define@key{session}{bibsec}{\csdef{@sesbibsec}{#1}}
\define@key{session}{room}{\csdef{@sesroom}{{#1}}}
-\define@key{session}{instructor}{\csdef{@sesinstructor}{{#1}}}
+\define@key{session}{instructor}{%
+ \csdef{@sesinstructor}{{#1}}\csdef{@usesinstructor}{{#1}}%
+ \iftoggle{shortinstrdef}{}{\csdef{@sesshortinstructor}{{#1}}\csdef{@usesshortinstructor}{{#1}}}}
+\define@key{session}{shortinstructor}{%
+ \csdef{@sesshortinstructor}{{#1}}\csdef{@usesshortinstructor}{{#1}}\toggletrue{shortinstrdef}}
\define@key{session}{presstudents}{\csdef{@sespresstudents}{{#1}}}
\define@boolkey{session}{cancel}[true]{}
%
@@ -543,12 +577,17 @@
\setcounter{dateratio}{(\thesesunit-1)*\thelecinterval+\thesesoffset}
\setcounter{snum}{\thesesunit-\thecancellations}
\protected@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@csxdef{sestitle\thesnum}{\csuse{@sestitle}\ifcsempty{@sestitle}{\strut}{}}
\protected@csxdef{sestitlesep\thesnum}{\csuse{@sestitlesep}}
- \protected@csxdef{sessubtitle\thesnum}{\csuse{@vasutitle}}
- \protected@csxdef{sesshorttitle\thesnum}{\csuse{@vashorttitle}}
+ \protected@csxdef{sessubtitle\thesnum}{\csuse{@sessubtitle}}
+ \protected@csxdef{sesshorttitle\thesnum}{\csuse{@sesshorttitle}}
+ \protected@csxdef{usesshorttitle\thesnum}{\csuse{@usesshorttitle}}
\protected@csxdef{sesbib\thesnum}{\csuse{@sesbibsec}}
\protected@csxdef{sesroom\thesnum}{\csuse{@sesroom}}
\protected@csxdef{sesinstructor\thesnum}{\csuse{@sesinstructor}}
+ \protected@csxdef{sesshortinstructor\thesnum}{\csuse{@sesshortinstructor}}
+ \protected@csxdef{usesinstructor\thesnum}{\csuse{@usesinstructor}}
+ \protected@csxdef{usesshortinstructor\thesnum}{\csuse{@usesshortinstructor}}
\protected@csxdef{sespresstudents\thesnum}{\csuse{@sespresstudents}}
\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{@vasutitle}%
+ \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{@vasutitle}%
+ \noexpand\bgroup\noexpand\bfseries\csuse{sestitle\thesnum}\csuse{@sestitlesep}\csuse{@sessubtitle}%
\noexpand\leccancel\noexpand\egroup}
\else
\protected@eappto\programlist{\noexpand\item[{\noexpand\bfseries\csuse{sesshortdate\thesnum}}]%
- \csuse{sestitle\thesnum}\csuse{@sestitlesep}\csuse{@vasutitle}}
+ \csuse{sestitle\thesnum}\csuse{@sestitlesep}\csuse{@sessubtitle}}
\protected@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
diff --git a/Master/texmf-dist/tex/latex/jslectureplanner/jsmembertable.sty b/Master/texmf-dist/tex/latex/jslectureplanner/jsmembertable.sty
index da3ab9364e2..01bdc0da4f8 100644
--- a/Master/texmf-dist/tex/latex/jslectureplanner/jsmembertable.sty
+++ b/Master/texmf-dist/tex/latex/jslectureplanner/jsmembertable.sty
@@ -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}