diff options
Diffstat (limited to 'Master')
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 Binary files differindex 26765829e96..cf6383561f5 100644 --- a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturebib.pdf +++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturebib.pdf diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturehandout.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturehandout.pdf Binary files differindex ee534d78a16..604108b8ac3 100644 --- a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturehandout.pdf +++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturehandout.pdf diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturepresentation.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturepresentation.pdf Binary files differindex b2195a77512..6de84bfc33d 100644 --- a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturepresentation.pdf +++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturepresentation.pdf diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lectureprogram.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lectureprogram.pdf Binary files differindex 2ae19d6d76f..7e13107b324 100644 --- a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lectureprogram.pdf +++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lectureprogram.pdf diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturescript.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturescript.pdf Binary files differindex f63e9d3c2ca..443e194e319 100644 --- a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturescript.pdf +++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturescript.pdf diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/membertable-blank.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/examples/membertable-blank.pdf Binary files differindex 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 diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/membertable-filled.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/examples/membertable-filled.pdf Binary files differindex 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 diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/presencetable-blank.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/examples/presencetable-blank.pdf Binary files differindex 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 diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/presencetable-filled.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/examples/presencetable-filled.pdf Binary files differindex 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 diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/presentation-list.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/examples/presentation-list.pdf Binary files differindex 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 diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.pdf Binary files differindex 32dee2cbab3..cbd380913c2 100644 --- a/Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.pdf +++ b/Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.pdf 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} |