diff options
author | Karl Berry <karl@freefriends.org> | 2016-10-19 20:37:14 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2016-10-19 20:37:14 +0000 |
commit | 8bd51564ec4daf2be1c0e6767abbd5215cb8b21a (patch) | |
tree | 0b919a56f5ecdafa122ca9e7daefd7f34bae104a /Master/texmf-dist/tex/latex | |
parent | 214c5615badcad020bb0b24d205e83e0b10d8f63 (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')
-rw-r--r-- | Master/texmf-dist/tex/latex/jslectureplanner/jslectureplanner.sty | 181 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/jslectureplanner/jsmembertable.sty | 4 |
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} |