summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/jslectureplanner
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/texmf-dist/tex/latex/jslectureplanner
parent214c5615badcad020bb0b24d205e83e0b10d8f63 (diff)
jslectureplanner (18oct16)
git-svn-id: svn://tug.org/texlive/trunk@42304 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/jslectureplanner')
-rw-r--r--Master/texmf-dist/tex/latex/jslectureplanner/jslectureplanner.sty181
-rw-r--r--Master/texmf-dist/tex/latex/jslectureplanner/jsmembertable.sty4
2 files changed, 158 insertions, 27 deletions
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}