diff options
author | Karl Berry <karl@freefriends.org> | 2014-12-12 00:30:52 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2014-12-12 00:30:52 +0000 |
commit | 2640b48d58d35f3f6ded2dfdc445d985fb80d804 (patch) | |
tree | a081df083671917fd3fbe8d0695e01bc6fc6ff25 /Master | |
parent | cc801e6495901e37af9ce71175f2aeca72eec887 (diff) |
jslectureplanner (11dec14)
git-svn-id: svn://tug.org/texlive/trunk@35789 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
20 files changed, 2090 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/README b/Master/texmf-dist/doc/latex/jslectureplanner/README new file mode 100644 index 00000000000..3a34df38740 --- /dev/null +++ b/Master/texmf-dist/doc/latex/jslectureplanner/README @@ -0,0 +1,61 @@ +================================================================== +The jslectureplanner package + +A package to help managing university courses. + +Maintained by Jürgen Spitzmüller +E-mail: juergen (at) spitzmueller (dot) org + +Released under the LaTeX Project Public License v1.3 or later +See http://www.latex-project.org/lppl.txt +================================================================== + +== PURPOSE == + +The jslectureplanner package facilitates the generation and managment +of university course material. It provides an interface to set up and +access centralized course data that can be reused in all course documents. +Furthermore, the package is able to calculate the session dates of +a whole semester and generate course programs, if the course is held +weekly and the date of the first lecture is specified. Moreover, +the package can be used to generate a sectioned course bibliography +via biblatex. + + +== CONTENTS == + +The package consists of the following files: + +* jslectureplanner.sty (the LaTeX package) +* jslectureplanner.pdf (package documentation) +* jslectureplanner.tex (documentation source) +* README (this very file) + +The following example files are included: + +* metadata.tex: example metadata file +* lectureprogram.tex: example course program +* lectureprogram.pdf +* lecturescript.tex: example course script +* lecturescript.pdf +* lecturepresentation.tex: example course presentation +* lecturepresentation.pdf +* lecturehandout.tex: example course handout +* lecturehandout.pdf +* lecpresbody.tex: common body of presentation/handout +* lecturebib.tex: example course bibliography +* lecturebib.pdf +* lectureplanner-examples.bib + + +== DOCUMENTATION == + +See the included manual jslectureplanner.pdf for usage +instructions; also have a look at the example files. + + +== CHANGES == + +* V. 0.6 (2014-12-12): Initial release to CTAN. + + diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecpresbody.tex b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecpresbody.tex new file mode 100644 index 00000000000..5f73cf9d835 --- /dev/null +++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecpresbody.tex @@ -0,0 +1,37 @@ +% Example file, part of the package jslectureplanner +% +% Body to be included in lecturepresentation.tex and lecturehandout.tex + +\title{\lectype\ \lecfulltitle} + +\date{\lecsemester} + +\frame{\maketitle} + +\ThisSession{1} + +\section<article>*{\lectypesession\ \sesnr: \sesfulltitle\ (\sesdate)} + +\begin{frame}<presentation>[plain] + +\Large\structure{\sesnr} + +\structure{\sesfulltitle\ (\sesdate)} +\end{frame} + +% Generate the course program slides +\makebeamerprogram + +\begin{frame}{Weitere Informationen} + +\begin{description} +\item [{Kursplattform:}] \lecplatform +\item [{Sprechstunden:}] \officehours +\end{description} +\end{frame} + +\begin{frame}{N\"achste Woche} + +\SessionFullTitle{2} + +\end{frame} diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturebib.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturebib.pdf Binary files differnew file mode 100644 index 00000000000..b397dd972e4 --- /dev/null +++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturebib.pdf diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturebib.tex b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturebib.tex new file mode 100644 index 00000000000..9f7ed363324 --- /dev/null +++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturebib.tex @@ -0,0 +1,37 @@ +% Example file, part of the package jslectureplanner +% +% Example of a bibliography generated with jslectureplanner +% Requires biblatex and biber + +\documentclass[ngerman]{article} + +\usepackage{mathptmx} +\usepackage[T1]{fontenc} +\usepackage[latin9]{inputenc} + +\RequirePackage[% + style=authoryear, + sorting=nyvt, + mincrossrefs=1000, + backend=biber] +{biblatex} + +\usepackage{jslectureplanner} + +\input{metadata.tex} + +\bibliography{/home/juergen/latex/jsp/jslectureplanner/examples/lectureplanner-examples} + +\usepackage{babel} + +\begin{document} + +\title{\lectype\ \lecfulltitle:\\Auswahlbibliographie} + +\date{\lecsemesterverb} + +\maketitle + +\makesessionbib + +\end{document} diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturehandout.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturehandout.pdf Binary files differnew file mode 100644 index 00000000000..cb1abb344c1 --- /dev/null +++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturehandout.pdf diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturehandout.tex b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturehandout.tex new file mode 100644 index 00000000000..db5ac448c54 --- /dev/null +++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturehandout.tex @@ -0,0 +1,21 @@ +% Example file, part of the package jslectureplanner +% +% Example of a handout generated with jslectureplanner +% Requires beamerarticle + +\documentclass[ngerman]{article} +\usepackage[T1]{fontenc} +\usepackage[latin9]{inputenc} + +\usepackage{mathptmx} +\usepackage{babel} +\usepackage{url} + +\usepackage{beamerarticle} + +\usepackage{jslectureplanner} +\input{metadata.tex} + +\begin{document} +\input{lecpresbody.tex} +\end{document} diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lectureplanner-examples.bib b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lectureplanner-examples.bib new file mode 100644 index 00000000000..2618af5ed38 --- /dev/null +++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lectureplanner-examples.bib @@ -0,0 +1,546 @@ +@comment{entries taken from biblatex-examples.bib and arbitraily tagged with keywords} + +@string{anch-ie = {Angew.~Chem. Int.~Ed.}} +@string{cup = {Cambridge University Press}} +@string{dtv = {Deutscher Taschenbuch-Verlag}} +@string{hup = {Harvard University Press}} +@string{jams = {J.~Amer. Math. Soc.}} +@string{jchph = {J.~Chem. Phys.}} +@string{jomch = {J.~Organomet. Chem.}} +@string{pup = {Princeton University Press}} + +@article{angenendt, + author = {Angenendt, Arnold}, + title = {In Honore Salvatoris~-- Vom Sinn und Unsinn der + Patrozinienkunde}, + journaltitle = {Revue d'Histoire Eccl{\'e}siastique}, + date = 2002, + volume = 97, + pages = {431--456, 791--823}, + langid = {german}, + indextitle = {In Honore Salvatoris}, + shorttitle = {In Honore Salvatoris}, + annotation = {A German article in a French journal. Apart from that, a + typical \texttt{article} entry. Note the \texttt{indextitle} + field}, + keywords = {einf} +} + +@article{baez/article, + author = {Baez, John C. and Lauda, Aaron D.}, + title = {Higher-Dimensional Algebra V: 2-Groups}, + journaltitle = {Theory and Applications of Categories}, + date = 2004, + volume = 12, + pages = {423-491}, + version = 3, + eprint = {math/0307200v3}, + eprinttype = {arxiv}, + langid = {english}, + langidopts = {variant=american}, + annotation = {An \texttt{article} with \texttt{eprint} and + \texttt{eprinttype} fields. Note that the arXiv reference is + transformed into a clickable link if \texttt{hyperref} support + has been enabled. Compare \texttt{baez\slash online}, which + is the same item given as an \texttt{online} entry}, + keywords = {einf} +} + +@article{doody, + author = {Doody, Terrence}, + title = {Hemingway's Style and Jake's Narration}, + year = 1974, + volume = 4, + number = 3, + pages = {212-225}, + langid = {english}, + langidopts = {variant=american}, + related = {matuz:doody}, + relatedstring= {\autocap{e}xcerpt in}, + journal = {The Journal of Narrative Technique}, + annotation = {An \texttt{article} entry cited as an excerpt from a + \texttt{collection} entry. Note the format of the + \texttt{related} and \texttt{relatedstring} fields}, + keywords = {lokal} +} + +@collection{matuz:doody, + editor = {Matuz, Roger}, + title = {Contemporary Literary Criticism}, + year = 1990, + volume = 61, + publisher = {Gale}, + location = {Detroit}, + pages = {204-208}, + langid = {english}, + langidopts = {variant=american}, + annotation = {A \texttt{collection} entry providing the excerpt information + for the \texttt{doody} entry. Note the format of the + \texttt{pages} field}, + keywords = {lokal} +} + +@article{gillies, + author = {Gillies, Alexander}, + title = {Herder and the Preparation of Goethe's Idea of World + Literature}, + journaltitle = {Publications of the English Goethe Society}, + date = 1933, + series = {newseries}, + volume = 9, + pages = {46-67}, + langid = {english}, + langidopts = {variant=british}, + annotation = {An \texttt{article} entry with a \texttt{series} and a + \texttt{volume} field. Note that format of the \texttt{series} + field in the database file}, + keywords = {lokal} +} + +@article{kastenholz, + author = {Kastenholz, M. A. and H{\"u}nenberger, Philippe H.}, + title = {Computation of methodology\hyphen independent ionic solvation + free energies from molecular simulations}, + journaltitle = jchph, + date = 2006, + subtitle = {I. The electrostatic potential in molecular liquids}, + volume = 124, + eid = 124106, + doi = {10.1063/1.2172593}, + langid = {english}, + langidopts = {variant=american}, + indextitle = {Computation of ionic solvation free energies}, + annotation = {An \texttt{article} entry with an \texttt{eid} and a + \texttt{doi} field. Note that the \textsc{doi} is transformed + into a clickable link if \texttt{hyperref} support has been + enabled}, + abstract = {The computation of ionic solvation free energies from + atomistic simulations is a surprisingly difficult problem that + has found no satisfactory solution for more than 15 years. The + reason is that the charging free energies evaluated from such + simulations are affected by very large errors. One of these is + related to the choice of a specific convention for summing up + the contributions of solvent charges to the electrostatic + potential in the ionic cavity, namely, on the basis of point + charges within entire solvent molecules (M scheme) or on the + basis of individual point charges (P scheme). The use of an + inappropriate convention may lead to a charge-independent + offset in the calculated potential, which depends on the + details of the summation scheme, on the quadrupole-moment + trace of the solvent molecule, and on the approximate form + used to represent electrostatic interactions in the + system. However, whether the M or P scheme (if any) represents + the appropriate convention is still a matter of on-going + debate. The goal of the present article is to settle this + long-standing controversy by carefully analyzing (both + analytically and numerically) the properties of the + electrostatic potential in molecular liquids (and inside + cavities within them).}, + keywords = {begr} +} + +@article{reese, + author = {Reese, Trevor R.}, + title = {Georgia in Anglo-Spanish Diplomacy, 1736-1739}, + journaltitle = {William and Mary Quarterly}, + date = 1958, + series = 3, + volume = 15, + pages = {168-190}, + langid = {english}, + langidopts = {variant=american}, + annotation = {An \texttt{article} entry with a \texttt{series} and a + \texttt{volume} field. Note the format of the series. If the + value of the \texttt{series} field is an integer, this number + is printed as an ordinal and the string \enquote*{series} is + appended automatically}, + keywords = {begr} +} + +@article{shore, + author = {Shore, Bradd}, + title = {Twice-Born, Once Conceived}, + journaltitle = {American Anthropologist}, + date = {1991-03}, + subtitle = {Meaning Construction and Cultural Cognition}, + series = {newseries}, + volume = 93, + number = 1, + pages = {9-27}, + annotation = {An \texttt{article} entry with \texttt{series}, + \texttt{volume}, and \texttt{number} fields. Note the format + of the \texttt{series} which is a localization key}, + keywords = {bessweg} +} + +@article{sigfridsson, + author = {Sigfridsson, Emma and Ryde, Ulf}, + title = {Comparison of methods for deriving atomic charges from the + electrostatic potential and moments}, + journaltitle = {Journal of Computational Chemistry}, + date = 1998, + volume = 19, + number = 4, + pages = {377-395}, + doi = {10.1002/(SICI)1096-987X(199803)19:4<377::AID-JCC1>3.0.CO;2-P}, + langid = {english}, + langidopts = {variant=american}, + indextitle = {Methods for deriving atomic charges}, + annotation = {An \texttt{article} entry with \texttt{volume}, + \texttt{number}, and \texttt{doi} fields. Note that the + \textsc{doi} is transformed into a clickable link if + \texttt{hyperref} support has been enabled}, + abstract = {Four methods for deriving partial atomic charges from the + quantum chemical electrostatic potential (CHELP, CHELPG, + Merz-Kollman, and RESP) have been compared and critically + evaluated. It is shown that charges strongly depend on how and + where the potential points are selected. Two alternative + methods are suggested to avoid the arbitrariness in the + point-selection schemes and van der Waals exclusion radii: + CHELP-BOW, which also estimates the charges from the + electrostatic potential, but with potential points that are + Boltzmann-weighted after their occurrence in actual + simulations using the energy function of the program in which + the charges will be used, and CHELMO, which estimates the + charges directly from the electrostatic multipole + moments. Different criteria for the quality of the charges are + discussed.}, + keywords = {bessweg} +} + +@article{springer, + author = {Springer, Otto}, + title = {Mediaeval Pilgrim Routes from Scandinavia to Rome}, + journaltitle = {Mediaeval Studies}, + date = 1950, + volume = 12, + pages = {92-122}, + langid = {english}, + langidopts = {variant=british}, + shorttitle = {Mediaeval Pilgrim Routes}, + annotation = {A plain \texttt{article} entry}, + keywords = {anf} +} + +@book{aristotle:anima, + author = {Aristotle}, + title = {De Anima}, + date = 1907, + editor = {Hicks, Robert Drew}, + publisher = cup, + location = {Cambridge}, + keywords = {primary}, + langid = {english}, + langidopts = {variant=british}, + annotation = {A \texttt{book} entry with an \texttt{author} and an + \texttt{editor}}, + keywords = {anf} +} + +@book{aristotle:physics, + author = {Aristotle}, + title = {Physics}, + date = 1929, + translator = {Wicksteed, P. H. and Cornford, F. M.}, + publisher = {G. P. Putnam}, + location = {New York}, + keywords = {primary}, + langid = {english}, + langidopts = {variant=american}, + shorttitle = {Physics}, + annotation = {A \texttt{book} entry with a \texttt{translator} field}, + keywords = {erf} +} + +@book{aristotle:poetics, + author = {Aristotle}, + title = {Poetics}, + date = 1968, + editor = {Lucas, D. W.}, + series = {Clarendon Aristotle}, + publisher = {Clarendon Press}, + location = {Oxford}, + keywords = {primary}, + langid = {english}, + langidopts = {variant=british}, + shorttitle = {Poetics}, + annotation = {A \texttt{book} entry with an \texttt{author} and an + \texttt{editor} as well as a \texttt{series} field}, + keywords = {erf} +} + +@book{averroes/bland, + author = {Averroes}, + title = {The Epistle on the Possibility of Conjunction with the Active + Intellect by Ibn Rushd with the Commentary of Moses Narboni}, + date = 1982, + editor = {Bland, Kalman P.}, + translator = {Bland, Kalman P.}, + series = {Moreshet: Studies in Jewish History, Literature and Thought}, + number = 7, + publisher = {Jewish Theological Seminary of America}, + location = {New York}, + keywords = {primary}, + langid = {english}, + langidopts = {variant=american}, + indextitle = {Epistle on the Possibility of Conjunction, The}, + shorttitle = {Possibility of Conjunction}, + annotation = {A \texttt{book} entry with a \texttt{series} and a + \texttt{number}. Note the concatenation of the \texttt{editor} + and \texttt{translator} fields as well as the + \texttt{indextitle} field}, + keywords = {konk} +} + +@book{averroes/hercz, + author = {Averroes}, + title = {Drei Abhandlungen {\"u}ber die Conjunction des separaten + Intellects mit dem Menschen}, + date = 1869, + editor = {Hercz, J.}, + translator = {Hercz, J.}, + publisher = {S.~Hermann}, + location = {Berlin}, + keywords = {primary}, + langid = {german}, + indexsorttitle= {Drei Abhandlungen uber die Conjunction}, + indextitle = {Drei Abhandlungen {\"u}ber die Conjunction}, + subtitle = {Von Averroes (Vater und Sohn), aus dem Arabischen + {\"u}bersetzt von Samuel Ibn Tibbon}, + shorttitle = {Drei Abhandlungen}, + annotation = {A \texttt{book} entry. Note the concatenation of the + \texttt{editor} and \texttt{translator} fields as well as the + \texttt{indextitle} and \texttt{indexsorttitle} fields}, + keywords = {konk} +} + +@book{cicero, + author = {Cicero, Marcus Tullius}, + title = {De natura deorum. {\"U}ber das Wesen der G{\"o}tter}, + date = 1995, + editor = {Blank-Sangmeister, Ursula}, + translator = {Blank-Sangmeister, Ursula}, + afterword = {Thraede, Klaus}, + language = {langlatin and langgerman}, + publisher = {Reclam}, + location = {Stuttgart}, + langid = {german}, + indextitle = {De natura deorum}, + shorttitle = {De natura deorum}, + annotation = {A bilingual edition of Cicero's \emph{De natura deorum}, with + a German translation. Note the format of the \texttt{language} + field in the database file, the concatenation of the + \texttt{editor} and \texttt{translator} fields, and the + \texttt{afterword} field}, + keywords = {entsch} +} + +@book{companion, + author = {Goossens, Michel and Mittelbach, Frank and Samarin, Alexander}, + title = {The LaTeX Companion}, + date = 1994, + edition = 1, + publisher = {Addison-Wesley}, + location = {Reading, Mass.}, + pagetotal = 528, + langid = {english}, + langidopts = {variant=american}, + sorttitle = {LaTeX Companion}, + indextitle = {LaTeX Companion, The}, + shorttitle = {LaTeX Companion}, + annotation = {A book with three authors. Note the formatting of the author + list. By default, only the first name is reversed in the + bibliography}, + keywords = {wesentl} +} + +@book{gerhardt, + author = {Gerhardt, Michael J.}, + title = {The Federal Appointments Process}, + date = 2000, + publisher = {Duke University Press}, + location = {Durham and London}, + langid = {english}, + langidopts = {variant=american}, + sorttitle = {Federal Appointments Process}, + indextitle = {Federal Appointments Process, The}, + subtitle = {A Constitutional and Historical Analysis}, + shorttitle = {Federal Appointments Process}, + annotation = {This is a \texttt{book} entry. Note the format of the + \texttt{location} field as well as the \texttt{sorttitle} and + \texttt{indextitle} fields}, + keywords = {fok} +} + +@book{gonzalez, + author = {Gonzalez, Ray}, + title = {The Ghost of John Wayne and Other Stories}, + date = 2001, + publisher = {The University of Arizona Press}, + location = {Tucson}, + isbn = {0-816-52066-6}, + langid = {english}, + langidopts = {variant=american}, + sorttitle = {Ghost of John Wayne and Other Stories}, + indextitle = {Ghost of John Wayne and Other Stories, The}, + shorttitle = {Ghost of John Wayne}, + annotation = {A collection of short stories. This is a \texttt{book} entry. + Note the \texttt{sorttitle} and \texttt{indextitle} fields in + the database file. There's also an \texttt{isbn} field}, + keywords = {fok} +} + +@book{iliad, + author = {Homer}, + title = {Die Ilias}, + date = 2004, + translator = {Schadewaldt, Wolfgang}, + introduction = {Latacz, Joachim}, + edition = 3, + publisher = {Artemis \& Winkler}, + location = {D{\"u}sseldorf and Z{\"u}rich}, + langid = {german}, + sorttitle = {Ilias}, + indextitle = {Ilias, Die}, + shorttitle = {Ilias}, + annotation = {A German translation of the \emph{Iliad}. Note the + \texttt{translator} and \texttt{introduction} fields and the + format of the \texttt{location} field in the database + file. Also note the \texttt{sorttitle} and \texttt{indextitle} + fields}, + keywords = {fok} +} + +@book{knuth:ct, + author = {Knuth, Donald E.}, + title = {Computers \& Typesetting}, + date = {1984/1986}, + volumes = 5, + publisher = {Addison-Wesley}, + location = {Reading, Mass.}, + langid = {english}, + langidopts = {variant=american}, + sortyear = {1984-0}, + sorttitle = {Computers & Typesetting}, + indexsorttitle= {Computers & Typesetting}, + annotation = {A five-volume book cited as a whole. This is a \texttt{book} + entry, note the \texttt{volumes} field}, + keywords = {rekap} +} + +@book{knuth:ct:a, + author = {Knuth, Donald E.}, + title = {The \TeX book}, + date = 1984, + maintitle = {Computers \& Typesetting}, + volume = {A}, + publisher = {Addison-Wesley}, + location = {Reading, Mass.}, + langid = {english}, + langidopts = {variant=american}, + sortyear = {1984-1}, + sorttitle = {Computers & Typesetting A}, + indexsorttitle= {The TeXbook}, + indextitle = {\protect\TeX book, The}, + shorttitle = {\TeX book}, + annotation = {The first volume of a five-volume book. Note the + \texttt{sorttitle} and \texttt{sortyear} fields. We want this + volume to be listed after the entry referring to the entire + five-volume set. Also note the \texttt{indextitle} and + \texttt{indexsorttitle} fields. Indexing packages that don't + generate robust index entries require some control sequences + to be protected from expansion}, + keywords = {rekap} +} + +@book{knuth:ct:b, + author = {Knuth, Donald E.}, + title = {\TeX: The Program}, + date = 1986, + maintitle = {Computers \& Typesetting}, + volume = {B}, + publisher = {Addison-Wesley}, + location = {Reading, Mass.}, + langid = {english}, + langidopts = {variant=american}, + sortyear = {1986-1}, + sorttitle = {Computers & Typesetting B}, + indexsorttitle= {TeX: The Program}, + shorttitle = {\TeX}, + annotation = {The second volume of a five-volume book. Note the + \texttt{sorttitle} and \texttt{sortyear} fields. Also note the + \texttt{indexsorttitle} field}, + keywords = {rekap} +} + +@book{maron, + author = {Maron, Monika}, + title = {Animal Triste}, + date = 2000, + translator = {Brigitte Goldstein}, + origlanguage = {german}, + publisher = {University of Nebraska Press}, + location = {Lincoln}, + langid = {english}, + langidopts = {variant=american}, + shorttitle = {Animal Triste}, + annotation = {An English translation of a German novel with a French title. + In other words: a \texttt{book} entry with a + \texttt{translator} field. Note the \texttt{origlanguage} + field which is concatenated with the \texttt{translator}}, + keywords = {welt} +} + +@book{nietzsche:ksa, + author = {Nietzsche, Friedrich}, + title = {S{\"a}mtliche Werke}, + date = 1988, + editor = {Colli, Giorgio and Montinari, Mazzino}, + edition = 2, + volumes = 15, + publisher = dtv # { and Walter de Gruyter}, + location = {M{\"u}nchen and Berlin and New York}, + langid = {german}, + sortyear = {1988-0}, + sorttitle = {Werke-00-000}, + indexsorttitle= {Samtliche Werke}, + subtitle = {Kritische Studienausgabe}, + annotation = {The critical edition of Nietzsche's works. This is a + \texttt{book} entry referring to a 15-volume work as a + whole. Note the \texttt{volumes} field and the format of the + \texttt{publisher} and \texttt{location} fields in the + database file. Also note the \texttt{sorttitle} and + \texttt{sortyear} fields which are used to fine-tune the + sorting order of the bibliography. We want this item listed + first in the bibliography}, + keywords = {welt} +} + +@book{nietzsche:ksa1, + author = {Nietzsche, Friedrich}, + title = {Die Geburt der Trag{\"o}die. Unzeitgem{\"a}{\ss}e + Betrachtungen I--IV. Nachgelassene Schriften 1870--1973}, + date = 1988, + editor = {Colli, Giorgio and Montinari, Mazzino}, + maintitle = {S{\"a}mtliche Werke}, + mainsubtitle = {Kritische Studienausgabe}, + volume = 1, + edition = 2, + publisher = dtv # { and Walter de Gruyter}, + location = {M{\"u}nchen and Berlin and New York}, + langid = {german}, + sortyear = {1988-1}, + sorttitle = {Werke-01-000}, + indexsorttitle= {Samtliche Werke I}, + bookauthor = {Nietzsche, Friedrich}, + indextitle = {S{\"a}mtliche Werke I}, + shorttitle = {S{\"a}mtliche Werke I}, + annotation = {A single volume from the critical edition of Nietzsche's + works. This \texttt{book} entry explicitly refers to the first + volume only. Note the \texttt{title} and \texttt{maintitle} + fields. Also note the \texttt{sorttitle} and \texttt{sortyear} + fields. We want this entry to be listed after the entry + referring to the entire edition}, + keywords = {welt} +} + diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturepresentation.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturepresentation.pdf Binary files differnew file mode 100644 index 00000000000..8310058ad57 --- /dev/null +++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturepresentation.pdf diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturepresentation.tex b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturepresentation.tex new file mode 100644 index 00000000000..ff411864285 --- /dev/null +++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturepresentation.tex @@ -0,0 +1,19 @@ +% Example file, part of the package jslectureplanner +% +% Example of a beamer presentantion generated with jslectureplanner + +\documentclass[ngerman]{beamer} + +\usepackage[T1]{fontenc} +\usepackage[latin9]{inputenc} + +\usepackage{jslectureplanner} +\input{metadata.tex} + +\usepackage{babel} + +\begin{document} + +\input{lecpresbody.tex} + +\end{document} diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lectureprogram.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lectureprogram.pdf Binary files differnew file mode 100644 index 00000000000..19d707e1ffd --- /dev/null +++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lectureprogram.pdf diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lectureprogram.tex b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lectureprogram.tex new file mode 100644 index 00000000000..fbb41d59aaf --- /dev/null +++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lectureprogram.tex @@ -0,0 +1,39 @@ +% Example file, part of the package jslectureplanner +% +% Example of a course program generated with jslectureplanner + +\documentclass[ngerman]{article} + +\usepackage{mathptmx} +\usepackage[T1]{fontenc} +\usepackage[latin9]{inputenc} + +\usepackage{jslectureplanner} +\usepackage{url} +\input{metadata.tex} + +\usepackage{babel} +\pagestyle{empty} + +\begin{document} + +\title{\lectypeverb: \lecfulltitle} + +\date{\lecsemesterverb} + +\maketitle + +\section*{Programm} + +\makeprogram + +\vfill{} + +\noindent% +\fbox{\begin{minipage}[t][1.3\totalheight][c]{1\columnwidth}% +\begin{labeling}{\textbf{~Sprechstunden:}} +\item [{\textbf{~Sprechstunden:}}] \officehours\setlength\itemsep{0pt} +\item [{\textbf{~Materialien:}}] \lecplatform\end{labeling} +% +\end{minipage}} +\end{document} diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturescript.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturescript.pdf Binary files differnew file mode 100644 index 00000000000..abe81d6fe97 --- /dev/null +++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturescript.pdf diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturescript.tex b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturescript.tex new file mode 100644 index 00000000000..8ff6b4a4025 --- /dev/null +++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/lecturescript.tex @@ -0,0 +1,38 @@ +% Example file, part of the package jslectureplanner +% +% Example of a course script generated with jslectureplanner + +\documentclass[ngerman]{article} +\usepackage{mathptmx} +\usepackage[T1]{fontenc} +\usepackage[latin9]{inputenc} + +\usepackage{jslectureplanner} +\input{metadata.tex} + +\usepackage{lipsum} +\usepackage{babel} + +\begin{document} + +\title{\lectype\ \lecfulltitle} + +\date{\lecsemester} + +\maketitle + +% Start Session 1 +\ThisSession{1} + +\section*{Sitzung \sesnr: \sesfulltitle\ (\sesdate)} + +\lipsum + +% Start Session 2 +\ThisSession{2} + +\section*{Sitzung \sesnr: \sesfulltitle\ (\sesdate)} + +\lipsum + +\end{document} diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/examples/metadata.tex b/Master/texmf-dist/doc/latex/jslectureplanner/examples/metadata.tex new file mode 100644 index 00000000000..26b01853111 --- /dev/null +++ b/Master/texmf-dist/doc/latex/jslectureplanner/examples/metadata.tex @@ -0,0 +1,104 @@ +% Example file, part of the package jslectureplanner +% +% METADATA example + +% +% General course data +% +\LecType{vl} +\LecTitle[shorttitle={Meine Wissenschaft}, + subtitle={Grundlagen und Theorien}, + titlesep={\ --\ }]{Einf\"uhrung in meine Wissenschaft} +\LecYear{ss}{2013} +\LecUni{Universit\"at Schwanheim} +\LecInstitute{Institut f\"ur Wissenschaftsgeschichte} +\LecStartDate{17/04/2013} + +% +% Session data +% + +% a single session +\NewSession[bibsec=einf]{Einf\"uhrung in die Einf\"uhrung} + +% a thematic block +\begin{SessionBlock}{Meine Wissenschaft: Begr\"undung} + + \NewSession[% + titlesep={:\ }, + subtitle={Irrwege und Unwahrheiten}, + bibsec=begr + ]{Andere Wissenschaften} + + \NewSession[% + titlesep={:\ }, + subtitle={Der bessere Weg}, + bibsec=bessweg + ]{Meine Wissenschaft} + +\end{SessionBlock} + +% another thematic block +\begin{SessionBlock}{Die Geschichte meiner Wissenschaft} + + \NewSession[bibsec=anf]{Die Anf\"ange} + + \NewSession[bibsec=erf]{Erste Erfolge} + + \NewSession[cancel=true]{Dies Academicus} + + \NewSession[bibsec=konk]{Konkurrenzk\"ampfe} + + \NewSession[% + titlesep={:\ }, + subtitle={Andere werden ignoriert}, + bibsec=entsch + ]{Die Entscheidung} + +\end{SessionBlock} + +% a semester break of two weeks +\SetBreaks[weeks=2,span={10.\,--\,23.\,06.}]{Osterferien} + +% start a new frame in beamer +\SetBeamerFrameBreak + +% another thematic block +\begin{SessionBlock}{Theorien meiner Wissenschaft} + + \NewSession[bibsec=wesentl]{Bestimmung des Wesentlichen} + + \NewSession[bibsec=fok]{Fokussierung auf das Wesentliche} + + \NewSession[bibsec=rekap]{Rekapitulation der Wesensbestimmung} + +\end{SessionBlock} + +% and a last thematic block +\begin{SessionBlock}{Anwendungsfelder} + + \NewSession[% + titlesep={:\ }, + subtitle={Mein Institut}, + bibsec=lokal + ]{Das lokale Umfeld} + + \NewSession[% + titlesep={:\ }, + subtitle={Die Welt}, + bibsec=welt + ]{Der Rest} + +\end{SessionBlock} + +\NewSession{Fazit, Ausblick, Reflexion} + +% +% Further info +% + +\SetPlatform{\url{http://myelearningplatform/mycourse}} + +\SetOfficeHours{Sonntag, 02:00\,--\,03:00 Uhr} + +% Finis diff --git a/Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.pdf b/Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.pdf Binary files differnew file mode 100644 index 00000000000..d14814f3809 --- /dev/null +++ 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 new file mode 100644 index 00000000000..bde16dedffc --- /dev/null +++ b/Master/texmf-dist/doc/latex/jslectureplanner/jslectureplanner.tex @@ -0,0 +1,555 @@ +\documentclass[english]{article} + +\usepackage{charter} +\usepackage[scaled=0.87]{beramono} +\usepackage[T1]{fontenc} +\usepackage[latin9]{inputenc} + +\newcommand*\jmacro[1]{\textbf{\texttt{#1}}} +\newcommand*\joption[1]{\textbf{\texttt{#1}}} +\newcommand*\jfmacro[1]{\texttt{#1}} + +\usepackage{babel} +\usepackage{listings} +\lstset{language={[LaTeX]TeX}, + basicstyle={\small\ttfamily}, + frame=single} +\renewcommand{\lstlistingname}{Listing} + +\begin{document} + +\title{The jslectureplanner package} + +\author{Jürgen Spitzmüller\thanks{juergen@spitzmueller.org}} + +\date{Version 0.6, 2014/12/12} + +\maketitle + +\section{Aim of this package} + +I have written this package in order to facilitate (and somewhat systematize) +the planning of my university courses. The basic idea of this package +is that you write all general data of a course (date, semester, type, +course title, session titles, general information etc.) into a central +tex file (e.\,g., \emph{metadata.tex}), and then input this file +into all documents related to the course (course program, bibliography, +scripts, handouts, beamer presentations, exercises etc.), in order +to re-use the data. This is particularly helpful if you have standard +courses which are held every other semester: instead of changing the +data in every single file, you just need to change it once, in the +metadata file. + +To further facilitate the planning, the package is able to calculate +the session dates of a whole semester, if the course is held weekly. +You only need to set the date of the first lecture, the package does +the rest. Moreover, the package can be used to generate a sectioned +bibliography for the course via \textsf{biblatex}. + +Since the package was written for my own needs, it is somewhat tied +to my workflow. Particularly, it is tied to my context: teaching in +the Humanities at a German-speaking university. Hence, the categorization +of the package draws on this context. In particular, all strings and +formats are German. However, it is possible to customize them to some +degree, particularly to translate them to other languages. This is +described later in this manual. + +This manual describes the basic user interface of the package. You +might want to have a look at the example file included in the package +in order to see how it is supposed to be used. + + +\section{Requirements} + +The following packages are required: \textsf{etoolbox}, \textsf{advdate}, +\textsf{xkeyval}, \textsf{datetime}, \textsf{calc}. + + +\section{General idea} + +The general idea goes as follows: +\begin{itemize} +\item Set up a \emph{metadata.tex} file (or whatever name you prefer) and +insert all meta information of the course there (as described in sec.~\ref{sec:course-metadata} +and \ref{sec:lecplan}). +\item In your documents, load the package (\jmacro{\textbackslash{}usepackage\{jslectureplanner\}}) +and then input the metadata file (\jmacro{\textbackslash{}input\{metadata.tex\}}). +\item Then use the macros described below (sec.~\ref{sec:general-course-info} +and \ref{sec:session-specific-info}) to retrieve the respective data. +\end{itemize} +The procedure is detailed in the following sections. + + +\section{Setting up course metadata\label{sec:course-metadata}} + +You can set up the course metadata either via package options (if +you load the package in the metadata file; see sec.~\ref{sub:package-options}) +or via specific macros (see sec.~\ref{sec:via-macros}). + + +\subsection{Via package Options\label{sub:package-options}} + + +\subsubsection{Course classification\label{sec:lecture-classification}} + +The course classification draws on the conventions at German universities +(or those where I have worked, for that matter). Each type is connected +to a verbose string (such as ``Seminar''), a short form (such as +``SE'') and a form that is used to denote individual sessions (as +in ``the second \emph{session} of this course''). +\begin{description} +\item [{type=<type>,}] where \joption{<type>} is one of + +\begin{itemize} +\item \joption{vl}: a lecture (verbose form: ``Vorlesung''\footnote{Sec.~\ref{sec:customizing-strings} explains how to customize these +strings.}, short form: ``VL'', session form: ``Vorlesung'') +\item \joption{vo}: also a lecture\footnote{The division of ``vl'' and ``vo'' has historical (personal) reasons.} +(verbose form: ``Vorlesung'', short form: ``VO'', session form: +``Vorlesung'') +\item \joption{ps}: undergraduate seminar (verbose form: ``Proseminar'', +short form: ``PS'', session form: ``Sitzung'') +\item \joption{se}: seminar (verbose form: ``Seminar'', short form: ``SE'', +session form: ``Sitzung'') +\item \joption{ue}: practical course (verbose form: ``Übung'', short +form: ``UE'', session form: ``Sitzung'') +\item \joption{ko}: colloquium (verbose form: ``Kolloquium'', short form: +``KO'', session form: ``Sitzung'') +\item \joption{pv}: research seminar (verbose form: ``Privatissimum'', +short form: ``PV'', session form: ``Sitzung'') +\end{itemize} +\end{description} + +\subsubsection{Course title} +\begin{description} +\item [{title=<title>}] Title of the course +\item [{titlesep=<separator>}] Separator between title and subtitle +\item [{subtitle=<subtitle>}] Subtitle of the course +\item [{shorttitle=<shorttitle>}] Short title of the course (for headings +etc.) +\end{description} + +\subsubsection{Date and place\label{sec:date-and-place}} +\begin{description} +\item [{semester=<term>,}] where \joption{<term>} is one of + +\begin{itemize} +\item \joption{fs}: spring term (``Frühjahrssemester'', short form: ``FS'') +\item \joption{hs}: autumn term (``Herbstsemester'', short form: ``HS'') +\item \joption{ss}: summer term (``Sommersemester'', short form: ``SoSe'') +\item \joption{ws}: winter term (``Wintersemester'', short form: ``WS'') +\end{itemize} +\item [{year=<year>}]~ +\item [{uni=<university>}]~ +\item [{institute=<institute>}]~ +\item [{startdate=<startdate>}] Date of the first session (argument\emph{ +must} have the form DD/MM/YYYY) +\end{description} + +\subsubsection{Additional information} +\begin{description} +\item [{platform=<url>}] information (e.g., URL) of the e-learning platform +\item [{officehours=<data>}] date of the office hours +\end{description} + +\subsection{Via macros\label{sec:via-macros}} + + +\subsubsection{Course classification} +\begin{itemize} +\item \jmacro{\textbackslash{}LecType\{<course type>\}}: Set course type; +\joption{<course type>} is one of\footnote{See above sec.~\ref{sec:lecture-classification} for a detailed description.} + +\begin{itemize} +\item \joption{vl} +\item \joption{vo} +\item \joption{ps} +\item \joption{se} +\item \joption{ue} +\item \joption{ko} +\item \joption{pv} +\end{itemize} +\end{itemize} + +\subsubsection{Course title} +\begin{itemize} +\item \jmacro{\textbackslash{}LecTitle{[}<options>{]}\{<title>\}}: Set +course title; \joption{<options>} might be any set of package options +described in sec.~\ref{sub:package-options} +\item \jmacro{\textbackslash{}LecTitleSep\{<title separator>\}}: Set course +title-subtitle separator +\item \jmacro{\textbackslash{}LecSubTitle\{<subtitle>\}}: Set course subtitle +\end{itemize} + +\subsubsection{Date and place} +\begin{itemize} +\item \textbackslash{}\jmacro{LecYear\{<term>\}\{<year>\}}, Set term and +year of the course; \joption{<term>} is one of\footnote{See above sec.~\ref{sec:date-and-place} for a detailed description.} + +\begin{itemize} +\item \joption{fs} +\item \joption{hs} +\item \joption{ss} +\item \joption{ws} +\end{itemize} +\item \jmacro{\textbackslash{}LecUni\{<university>\}}: Set the name of +your university +\item \jmacro{\textbackslash{}LecInstitute\{<institute>\}}: Set your institute +name +\item \jmacro{\textbackslash{}LecStartDate\{<startdate>\}}: Set date of +the first session (argument\emph{ must} have the form DD/MM/YYYY) +\end{itemize} + +\subsubsection{Additional information} +\begin{itemize} +\item \jmacro{\textbackslash{}SetOfficeHours\{<office hours>\}}: Set date +of your office hours +\item \jmacro{\textbackslash{}SetPlatform\{<platform information>\}}: Set +information (e.g., URL) of the e-learning platform +\end{itemize} + +\section{Setting up a course plan\label{sec:lecplan}} + +In the metadata file, you can setup a plan for the course by entering +session information in chronological order. This is done via the following +macro: +\begin{itemize} +\item \jmacro{\textbackslash{}NewSession{[}<options>{]}\{Session title\}} + + +\joption{<options>} include: +\begin{itemize} +\item \joption{titlesep=<separator>}: Separator between session title and +subtitle +\item \joption{subtitle=<subtitle>}: Subtitle of the session +\item \joption{shorttitle=<shorttitle>}: Short title of the session (for +headings etc.) +\item \joption{bibsec=<keyword>}: Session keyword for the bibliography +(see below sec.~\ref{sub:bibliographies}) +\item \joption{cancel=<true|false>}: Whether this session takes place. +If you specify \joption{cancel=false}, the program will mark the +session as ``canceled''. For instance, + + +\jmacro{\textbackslash{}NewSession{[}cancel=true{]}\{Dies Academicus\}} + + +will output something like +\begin{quote} +\textbf{15.\,05.: Dies Academicus -- keine Sitzung} +\end{quote} + +(i.\,e., ``Dies Academicus -- no session'') + +\end{itemize} +\item \jmacro{\textbackslash{}SetBreak{[}<span>{]}\{Reason\}}: Add a semester +break (e.g., holidays). This increments the counter for one week and +outputs in the program + + +\begin{center} +\textbf{(<span>: Reason)} +\par\end{center} + + +E.\,g., \jmacro{\textbackslash{}SetBreak{[}28.05.-{}-3.06.{]}\{Whitsun holidays\}} +expands to + + +\begin{center} +\textbf{(28.05.--3.06.: Whitsun holidays)} +\par\end{center} + +\item \jmacro{\textbackslash{}SetBreaks{[}<options>{]}\{Reason\}}: Add +a semester break (e.g., holidays) that is longer than one week. This +increments the counter respectively, and outputs in the program + + +\begin{center} +\textbf{(<span>: Reason)} +\par\end{center} + + +\jmacro{<options>} include: +\begin{itemize} +\item \joption{weeks=<int>}: Number of weeks the break takes (to increment +the internal counter that is used to calculate the session dates) +\item \joption{span=<time span>}: time span (to be output on the program) +\end{itemize} +\item \jmacro{\textbackslash{}SetBeamerFrameBreak}: Add a frame break in +the beamer program at this position. This also increments the frame +counter which is used for subsequent program frame titles. Note that +you can insert maximally 3 breaks. +\item \jmacro{\textbackslash{}SetBeamerHook\{<code>\}}: Add arbitrary \LaTeX{} +code to the beamer program +\item \jmacro{\textbackslash{}begin\{SessionBlock\}\{<Block title>\}}\\ +\ldots{} \\ +\jmacro{\textbackslash{}end\{SessionBlock\}}:\\ +Thematic block consisting of several sessions. Respective sessions +are nested inside this block. +\end{itemize} + +\section{Retrieving general course information\label{sec:general-course-info}} + +Once the metadata file is set up as documented above and input to +your document(s), you can retrieve the recorded as well as concatenated +information by means the following macros. + + +\subsection{Course data} + +The following macros output general course-specific information: +\begin{itemize} +\item \jmacro{\textbackslash{}lectype}: Outputs the course type in short +form (e.\,g., ``SE'') +\item \jmacro{\textbackslash{}lectypeverb}: Outputs the course type in +verbose form (e.\,g., ``Seminar'') +\item \jmacro{\textbackslash{}lectypesession}: Outputs the appropriate +``session'' string (e.\,g., ``Vorlesung'' or ``Sitzung'') +\item \jmacro{\textbackslash{}lectitle}: Outputs the main title of the +course +\item \jmacro{\textbackslash{}lectitlesep}: Outputs the separator between +title and subtitle +\item \jmacro{\textbackslash{}lecsubtitle}: Outputs the subtitle of the +course +\item \jmacro{\textbackslash{}lecfulltitle}: Outputs the full title of +the course (title, separator, subtitle) +\item \jmacro{\textbackslash{}lecshorttitle}: Outputs the short version +of the course title +\item \jmacro{\textbackslash{}lecsemshort}: Outputs the short version of +the term type (e.\,g., ``WS'') +\item \jmacro{\textbackslash{}lecsemverb}: Outputs the verbose version +of the term type (e.\,g., ``Wintersemester'') +\item \jmacro{\textbackslash{}lecyear}: Outputs the year +\item \jmacro{\textbackslash{}lecsemester}: Outputs the short version of +the semester (e.\,g., ``WS 2014'') +\item \jmacro{\textbackslash{}lecsemesterverb}: Outputs the verbose version +of the semester (e.\,g., ``Wintersemester 2014'') +\item \jmacro{\textbackslash{}lecuniversity}: Outputs the university name +\item \jmacro{\textbackslash{}lecinstitute}: Outputs the institute name +\item \jmacro{\textbackslash{}lecplatform}: Outputs information on the +e-learning platform +\item \jmacro{\textbackslash{}officehours}: Outputs the office hours +\end{itemize} + +\subsection{Generating lecture programs} +\begin{itemize} +\item \jmacro{\textbackslash{}makeprogram}: Generates a lecture program +from the metadata in the form + + +\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single] +\begin{labeling}{\lecprogramlistindent} +\item[<short date>] <session full title> +... +(break) +... +\item[<short date>] <session full title> +\end{labeling} +\end{lstlisting} + + + +The \jmacro{labeling} environment is defined by the KOMA classes. +The package provides a fallback, however, if another class is used. + +\item \jmacro{\textbackslash{}makebeamerprogram{[}<options>{]}}: Generates +a beamer-suited lecture program from the metadata in the form + + +\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single] +\begin[label=beamerprogram<nr>,<bfoptions>]{frame} +\frametitle{<Heading>} +\begin{description}[\lecprogramlistindent] +\item[<short date>] <session full title> +... +(break) +... +\item[<short date>] <session full title> +\end{description} +\end{frame} +\end{lstlisting} + + + +\joption{<options>} can be one of +\begin{itemize} +\item \joption{title=<title>}: Program title (<Heading>) +\item \joption{options=<bfoptions>}: Beamer frame options +\end{itemize} + +Note that multiple subsequent frames are generated if the metadata +file contains \jmacro{\textbackslash{}SetBeamerFrameBreak} macros. +Also note that you can refer to the frames via the automatically generated +labels \emph{beamerprogram} (for the first frame), \emph{beamerprogram2} +for the second, etc. Finally note that the number of program frames +is currently limited to 4. If you need more, you should probably rethink +your program structure. + +\end{itemize} + +\subsection{Generating bibliographies\label{sub:bibliographies}} + +The package provides macros for easy generation of sectioned bibliographies +via \textsf{biblatex}. The macro +\begin{itemize} +\item \jmacro{\textbackslash{}makesessionbib} +\end{itemize} +generates code in the form + +\begin{lstlisting}[basicstyle={\small\ttfamily},frame=single,moretexcs={[1]{printbibliography}}] +\section{<session full title>} +\nocite{*} +\printbibliography[keyword=<session keyword>,heading=none] +\end{lstlisting} + for each session of the lecture which has been linked to a \textsf{biblatex} +keyword via the \joption{bibsec} option (see above sec.~\ref{sec:lecplan}). + +So if you specify your session with a keyword via the \joption{bibsec} +option, and tag your Bib\TeX{} database entries with that keyword, +you will get a list of session-specific literature. + + +\section{Retrieving session-specific information\label{sec:session-specific-info}} + +In session-specific documents, you also need information specific +to the current session. This is done as follows. + + +\subsection{Setting the current session} + +Use \jmacro{\textbackslash{}ThisSession\{<nr>\}} to tell the package +which session is current. \joption{<nr>} is an integer value, e.g. +\jmacro{\textbackslash{}ThisSession\{3\}} for the 3rd session of +the lecture. + + +\subsection{Generating session-specific information for the current session} + +If you have specified the current session via the macro \jmacro{\textbackslash{}ThisSession}, +the following macros output general session-specific information: +\begin{itemize} +\item \jmacro{\textbackslash{}sesdate}: Date of the current session +\item \jmacro{\textbackslash{}sesshortdate}: Date of the current session, +short form (no year) +\item \jmacro{\textbackslash{}sestitle}: Main title of the current session +\item \jmacro{\textbackslash{}sestitlesep}: Title-subtitle separator of +the current session +\item \jmacro{\textbackslash{}sessubtitle}: Subtitle of the current session +\item \jmacro{\textbackslash{}sesfulltitle}: Full title of the current +session (title, separator, subtitle) +\item \jmacro{\textbackslash{}sesnr}: Number of the current session +\end{itemize} + +\subsection{Generating session-specific information for an arbitrary session} + +Independent of the value of \jmacro{\textbackslash{}ThisSession}, +you can retrieve the following information for arbitrary sessions +(session number \joption{<nr>}) via the following macros: +\begin{itemize} +\item \jmacro{\textbackslash{}SessionTitle\{<nr>\}}: Outputs the main title +of session number \joption{<nr>} +\item \jmacro{\textbackslash{}SessionFullTitle\{<nr>\}}: Outputs the full +title (main title, separator, subtitle) of session number \joption{<nr>} +\item \jmacro{\textbackslash{}SessionShortTitle\{<nr>\}}: Outputs the short +title of session number \joption{<nr>} +\item \jmacro{\textbackslash{}SessionDate\{<nr>\}}: Outputs the date of +session number \joption{<nr>} +\item \jmacro{\textbackslash{}SessionShortDate\{<nr>\}}: Outputs the short +date (no year) of session number \joption{<nr>} +\item \jmacro{\textbackslash{}MakeProgramline\{<nr>\}}: Outputs a list +item line for session number \joption{<nr>} in the form + + +\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single] +\item[{\bfseries <short date>}] <session full title> +\end{lstlisting} + + +\end{itemize} + +\section{Customizing the output} + + +\subsection{Customizing the course type strings\label{sec:customizing-strings}} + +The strings of the course types can be changed via the macros: +\begin{itemize} +\item \jmacro{\textbackslash{}DefTypeVL\{<short form>\}\{<title>\}\{<session title>\}} +\item \jmacro{\textbackslash{}DefTypeVO\{<short form>\}\{<title>\}\{<session title>\}} +\item \jmacro{\textbackslash{}DefTypePS\{<short form>\}\{<title>\}\{<session title>\}} +\item \jmacro{\textbackslash{}DefTypeSE\{<short form>\}\{<title>\}\{<session title>\}} +\item \jmacro{\textbackslash{}DefTypeUE\{<short form>\}\{<title>\}\{<session title>\}} +\item \jmacro{\textbackslash{}DefTypeKO\{<short form>\}\{<title>\}\{<session title>\}} +\item \jmacro{\textbackslash{}DefTypePV\{<short form>\}\{<title>\}\{<session title>\}} +\end{itemize} +An English form for a lecture, thus, can be achieved by e.\,g. +\begin{itemize} +\item \jmacro{\textbackslash{}DefTypeVL\{LEC\}\{Lecture\}\{Session\}} +\end{itemize} +The types themselves are hardcoded. If you need further\slash{}other +types, you need to modify the package. + + +\subsection{Customizing the term types} + +The strings of the term types can be changed via the macros: +\begin{itemize} +\item \jmacro{\textbackslash{}DefTypeFS\{<short form>\}\{<verbose form>\}} +\item \jmacro{\textbackslash{}DefTypeHS\{<short form>\}\{<verbose form>\}} +\item \jmacro{\textbackslash{}DefTypeSS\{<short form>\}\{<verbose form>\}} +\item \jmacro{\textbackslash{}DefTypeWS\{<short form>\}\{<verbose form>\}} +\end{itemize} + +\subsection{Customizing the date format} + +If you need to change the date format, redefine the macros \jmacro{\textbackslash{}lecdateformat} +(for the long format) and \jmacro{\textbackslash{}lecdateshortformat} +(for the short format), using the syntax provided by the \textsf{datetime} +package. By default, the two formats are defined as follows: + +\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single] +\newcommand*\lecdateformat{% + \THEDAY.\,\twodigit{\THEMONTH}.\,\THEYEAR} +\newcommand*\lecdateshortformat{% + \THEDAY.\,\twodigit{\THEMONTH}.} +\end{lstlisting} + + +Use \jfmacro{\textbackslash{}renewcommand{*}} to redefine them. + + +\subsection{Misc. customizing} + +The canceling output is ``Session title -- keine <Session>'' (``keine'' +is German for ``no''). To modify or translate this, redefine the +following macro + +\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single] +\newcommand*\leccancel{-- keine} +\end{lstlisting} + + +The default program string used in beamer frames can be changed by +redefining + +\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single] +\newcommand*\lecprogram{Programm} +\end{lstlisting} + + +The indentation used in program lists can be changed by redefining + +\begin{lstlisting}[language={[LaTeX]TeX},basicstyle={\small\ttfamily},frame=single] +\newcommand*\lecprogramlistindent{\textbf{88.\,88.}} +\end{lstlisting} + + +Again, use \jfmacro{\textbackslash{}renewcommand{*}} to redefine +those. + + +\section{History} +\begin{itemize} +\item 2012/12/12 (v. 0.6): Initial release to CTAN.\end{itemize} + +\end{document} diff --git a/Master/texmf-dist/tex/latex/jslectureplanner/jslectureplanner.sty b/Master/texmf-dist/tex/latex/jslectureplanner/jslectureplanner.sty new file mode 100644 index 00000000000..8f32e39dd13 --- /dev/null +++ b/Master/texmf-dist/tex/latex/jslectureplanner/jslectureplanner.sty @@ -0,0 +1,630 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% File jslectureplanner.sty +%% +%% Package to manage university courses. +%% +%% Author: Juergen Spitzmueller <juergen.spitzmueller@univie.ac.at> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2003/12/01 or later. +%% +%% This work has the LPPL maintenance status "maintained". +%% +%% The Current Maintainer of this work is Juergen Spitzmueller. +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\filedate{2014/12/12} +\def\fileversion{0.6} +\def\filename{jslectureplanner.sty} + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{jslectureplanner} + [\filedate\space v\fileversion\space JS lecture planner] + + +% +% REQUIRED PACKAGES +% +\RequirePackage{etoolbox} +\RequirePackage{advdate} +\RequirePackage{xkeyval} +\RequirePackage{datetime} +\RequirePackage{calc} + +% +% VARIABLES +% +\def\lectype{} +\def\lectypeverb{} +\def\lectypesession{} +\def\lectitle{} +\def\lectitlesep{} +\def\lecsubtitle{} +\def\lecshorttitle{} +\def\lecsemshort{} +\def\lecsemverb{} +\def\lecyear{} +\def\lecsemester{} +\def\lecsemesterverb{} +\def\lecuniversity{} +\def\lecinstitute{} + +\def\lecplatform{} +\def\officehours{} + +\def\sesdate{} +\def\sesshortdate{} +\def\sestitle{} +\def\sestitlesep{} +\def\sessubtitle{} +\def\sesnr{} + +\def\programlist{} +\def\programlistbeamer{} +\def\jsbiblist{} + +% +% STRINGS +% +% vl +\def\lectypevl{Vorlesung} +\def\lectypevls{VL} +\def\lectypevlses{Vorlesung} +% vo +\def\lectypevo{Vorlesung} +\def\lectypevos{VO} +\def\lectypevoses{Vorlesung} +% ps +\def\lectypeps{Proseminar} +\def\lectypepss{PS} +\def\lectypepsses{Sitzung} +% se +\def\lectypese{Seminar} +\def\lectypeses{SE} +\def\lectypeseses{Sitzung} +% ue +\def\lectypeue{\"Ubung} +\def\lectypeues{UE} +\def\lectypeueses{Sitzung} +% ko +\def\lectypeko{Kolloquium} +\def\lectypekos{KO} +\def\lectypekoses{Sitzung} +% pv +\def\lectypepv{Privatissimum} +\def\lectypepvs{PV} +\def\lectypepvses{Sitzung} + +% fs +\def\lectermfs{Fr\"uhjahrssemester} +\def\lectermfss{FS} +% hs +\def\lectermhs{Herbstsemester} +\def\lectermhss{HS} +% ss +\def\lectermss{Sommersemester} +\def\lectermsss{SoSe} +% ws +\def\lectermws{Wintersemester} +\def\lectermwss{WS} + +% misc. +\newcommand*\leccancel{-- keine} +\newcommand*\lecprogram{Programm} +\newcommand*\lecprogramlistindent{\textbf{88.\,88.}} + +% +% PACKAGE OPTIONS +% +\define@choicekey*+{lec}{lectype}[\val\nr]{vl,vo,ps,se,ue,ko,pv}{% + \ifcase\nr\relax% vl + \def\lectype{\lectypevls} + \def\lectypeverb{\lectypevl} + \def\lectypesession{\lectypevlses} + \or% vo (wien) + \def\lectype{\lectypevos} + \def\lectypeverb{\lectypevo} + \def\lectypesession{\lectypevoses} + \or% ps + \def\lectype{\lectypepss} + \def\lectypeverb{\lectypeps} + \def\lectypesession{\lectypepsses} + \or% se + \def\lectype{\lectypeses} + \def\lectypeverb{\lectypese} + \def\lectypesession{\lectypeseses} + \or% ue + \def\lectype{\lectypeues} + \def\lectypeverb{\lectypeue} + \def\lectypesession{\lectypeueses} + \or% ko + \def\lectype{\lectypekos} + \def\lectypeverb{\lectypeko} + \def\lectypesession{\lectypekoses} + \or% pv + \def\lectype{\lectypepvs} + \def\lectypeverb{\lectypepv} + \def\lectypesession{\lectypepvses} + \fi +}{% + \PackageWarning{jslectureplanner}{unknown type value '#1'}% +} +\DeclareOptionX{type}{\setkeys{lec}{lectype=#1}} + +\define@choicekey*+{lec}{lecsem}[\val\nr]{fs,hs,ss,ws}{% + \ifcase\nr\relax% fs + \def\lecsemshort{\lectermfss} + \def\lecsemverb{\lectermfs} + \or% hs + \def\lecsemshort{\lectermhss} + \def\lecsemverb{\lectermhs} + \or% ss + \def\lecsemshort{\lectermsss} + \def\lecsemverb{\lectermss} + \or% ws + \def\lecsemshort{\lectermwss} + \def\lecsemverb{\lectermws} + \fi +}{% + \PackageWarning{jslectureplanner}{unknown semester value '#1'}% +} +\DeclareOptionX{semester}{\setkeys{lec}{lecsem=#1}} + +\define@key{lec}{title}{\def\lectitle{#1}} +\define@key{lec}{titlesep}{\def\lectitlesep{#1}} +\define@key{lec}{subtitle}{\def\lecsubtitle{#1}} +\define@key{lec}{shorttitle}{\def\lecshorttitle{#1}} +\define@key{lec}{year}{\def\lecyear{#1}} +\define@key{lec}{uni}{\def\lecuniversity{#1}} +\define@key{lec}{institute}{\def\lecinstitute{#1}} +\define@key{lec}{platform}{\def\lecplatform{#1}} +\define@key{lec}{officehours}{\def\officehours{#1}} +\define@key{lec}{startdate}{\SetDate[#1]} + +\DeclareOptionX{title}{\setkeys{lec}{title=#1}} +\DeclareOptionX{titlesep}{\setkeys{lec}{titlesep=#1}} +\DeclareOptionX{subtitle}{\setkeys{lec}{subtitle=#1}} +\DeclareOptionX{shorttitle}{\setkeys{lec}{shorttitle=#1}} +\DeclareOptionX{year}{\setkeys{lec}{year=#1}} +\DeclareOptionX{uni}{\setkeys{lec}{uni=#1}} +\DeclareOptionX{institute}{\setkeys{lec}{institute=#1}} +\DeclareOptionX{startdate}{\setkeys{lec}{startdate=#1}} +\DeclareOptionX{platform}{\setkeys{lec}{platform=#1}} +\DeclareOptionX{officehours}{\setkeys{lec}{officehours=#1}} + +\ProcessOptionsX + +% +% End Options +%% + +% +% ALTERNATIVE SETUP MACROS +% + +\newcommand*{\LecType}[1]{\setkeys{lec}{lectype=#1}} +\newcommand*{\LecTitle}[2][]{\setkeys{lec}{#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}} +\newcommand*{\LecUni}[1]{\setkeys{lec}{uni=#1}} +\newcommand*{\LecInstitute}[1]{\setkeys{lec}{institute=#1}} +\newcommand*{\LecStartDate}[1]{\setkeys{lec}{startdate=#1}} + +% +% CONCATENATED VARIABLES +% +\def\lecsemester{\lecsemshort~\lecyear} +\def\lecsemesterverb{\lecsemverb\ \lecyear} +\def\lecfulltitle{\lectitle\lectitlesep\lecsubtitle} +\def\sesfulltitle{\sestitle\sestitlesep\sessubtitle} + + +% +% CUSTOM DATE FORMATS (via datetime) +% +\newcommand*\lecdateformat{\THEDAY.\,\twodigit{\THEMONTH}.\,\THEYEAR} +\newcommand*\lecdateshortformat{\THEDAY.\,\twodigit{\THEMONTH}.} +\newdateformat{vldate}{\lecdateformat} +\newdateformat{vlshdate}{\lecdateshortformat} + +% +% COUNTERS +% +\newcounter{week} +\newcounter{dateratio} +\setcounter{dateratio}{1} +\newcounter{cancellations} +\newcounter{snum} +\newcounter{blocks} +\newcounter{fbreaks} + +% +% MACROS (UI) +% + +% Change strings +% vl +\newcommand*\DefTypeVL[3]{% + \def\lectypevl{#2} + \def\lectypevls{#1} + \def\lectypevlses{#2} +} +% vo +\newcommand*\DefTypeVO[3]{% + \def\lectypevo{#2} + \def\lectypevos{#1} + \def\lectypevoses{#3} +} +% ps +\newcommand*\DefTypePS[3]{% + \def\lectypeps{#2} + \def\lectypepss{#1} + \def\lectypepsses{#3} +} +% se +\newcommand*\DefTypeSE[3]{% + \def\lectypese{#2} + \def\lectypeses{#1} + \def\lectypeseses{#3} +} +% ue +\newcommand*\DefTypeUE[3]{% + \def\lectypeue{#2} + \def\lectypeues{#1} + \def\lectypeueses{#3} +} +% ko +\newcommand*\DefTypeKO[3]{% + \def\lectypeko{#2} + \def\lectypekos{#1} + \def\lectypekoses{#3} +} +% pv +\newcommand*\DefTypePV[3]{% + \def\lectypepv{#2} + \def\lectypepvs{#1} + \def\lectypepvses{#3} +} + +% fs +\newcommand*\DefTypeFS[2]{% + \def\lectermfss{#1} + \def\lectermfs{#2} +} +% hs +\newcommand*\DefTypeHS[2]{% + \def\lectermhss{#1} + \def\lectermhs{#2} +} +% ss +\newcommand*\DefTypeSS[2]{% + \def\lectermsss{#1} + \def\lectermss{#2} +} +% ws +\newcommand*\DefTypeWS[2]{% + \def\lectermwss{#1} + \def\lectermws{#2} +} + +% Program +% Define labeling list if not available +\@ifundefined{labeling}{% + \newenvironment{labeling}[2][]{% + \def\sc@septext{#1}% + \list{}{\settowidth{\labelwidth}{{% + \textbf{#2\sc@septext}% + }}% + \leftmargin\labelwidth \advance\leftmargin by \labelsep + \let\makelabel\labelinglabel + }% + }{% + \endlist + } + \newcommand\labelinglabel[1]{% + \textbf{#1\hfil\sc@septext}% + } +}{} +\newcommand\makeprogram{% + \raggedright + \begin{labeling}{\lecprogramlistindent} + \programlist + \end{labeling} +} + +% Bibliography +\newcommand\makesessionbib{% + \jsbiblist +} + +% Beamer program generation +\define@key{beamerprogram}{title}{\csdef{@bptitle}{#1}} +\define@key{beamerprogram}{options}{\csdef{@bpopts}{#1}} +\define@key{beamerprogram}{listoptions}{\csdef{@bplistopts}{#1}} +\define@boolkey{beamerprogram}{alerted}[true]{} + +\newcommand*\makebeamerprogram[1][]{% + \csdef{@bptitle}{\lecprogram} + \def\btitleapp{} + \numdef\pframes{\thefbreaks + 1} + \setkeys{beamerprogram}{alerted=false} + \setkeys{beamerprogram}{#1} + \def\bpdescbeg{\begin{description}[\lecprogramlistindent]} + \providebool{alertedlist} + \ifKV@beamerprogram@alerted + \booltrue{alertedlist} + \else + \boolfalse{alertedlist} + \fi + \@ifundefined{programlistbeamerii}{}{% + \def\btitleapp{\ (1/\pframes)} + \ifcsdef{@bpopts}{% + \begin{frame}[\csuse{@bpopts}]{\csuse{@bptitle}\btitleapp} + }{% + \begin{frame}[label=beamerprogram1]{\csuse{@bptitle}\btitleapp} + } + \ifbool{alertedlist}{% + \begin{description}[<alert@+(1)>][\lecprogramlistindent] + \programlistbeamerii + \end{description} + }{% + \begin{description}[\lecprogramlistindent] + \programlistbeamerii + \end{description} + } + \end{frame} + } + \@ifundefined{programlistbeameriii}{}{% + \def\btitleapp{\ (2/\pframes)} + \ifcsdef{@bpopts}{% + \begin{frame}[\csuse{@bpopts}]{\csuse{@bptitle}\btitleapp} + }{% + \begin{frame}[label=beamerprogram2]{\csuse{@bptitle}\btitleapp} + } + \ifbool{alertedlist}{% + \begin{description}[<alert@+(1)>][\lecprogramlistindent] + \programlistbeameriii + \end{description} + }{% + \begin{description}[\lecprogramlistindent] + \programlistbeameriii + \end{description} + } + \end{frame} + } + \@ifundefined{programlistbeameriv}{}{% + \def\btitleapp{\ (2/\pframes)} + \ifcsdef{@bpopts}{% + \begin{frame}[\csuse{@bpopts}]{\csuse{@bptitle}\btitleapp} + }{% + \begin{frame}[label=beamerprogram3]{\csuse{@bptitle}\btitleapp} + } + \ifbool{alertedlist}{% + \begin{description}[<alert@+(1)>][\lecprogramlistindent] + \programlistbeameriv + \end{description} + }{% + \begin{description}[\lecprogramlistindent] + \programlistbeameriv + \end{description} + } + \end{frame} + } + \ifnumgreater{\thefbreaks}{0}{\def\btitleapp{\ (\pframes/\pframes)}}{} + \ifcsdef{@bpopts}{% + \begin{frame}[\csuse{@bpopts}]{\csuse{@bptitle}\btitleapp} + }{% + \@ifundefined{programlistbeamerii}{% + \begin{frame}[label=beamerprogram]{\csuse{@bptitle}\btitleapp} + }{% + \@ifundefined{programlistbeameriii}{% + \begin{frame}[label=beamerprogram2]{\csuse{@bptitle}\btitleapp} + }{% + \@ifundefined{programlistbeameriv}{% + \begin{frame}[label=beamerprogram3]{\csuse{@bptitle}\btitleapp} + }{% + \begin{frame}[label=beamerprogram4]{\csuse{@bptitle}\btitleapp} + } + } + } + } + \ifbool{alertedlist}{% + \begin{description}[<alert@+(1)>][\lecprogramlistindent] + \programlistbeamer + \end{description} + }{% + \begin{description}[\lecprogramlistindent] + \programlistbeamer + \end{description} + } + \end{frame} +} + +% Beamer frame breaks +\newcommand*\SetBeamerFrameBreak{% + \stepcounter{fbreaks} + \@ifundefined{programlistbeamerii}{% + \global\let\programlistbeamerii\programlistbeamer + }{% + \@ifundefined{programlistbeameriii}{% + \global\let\programlistbeameriii\programlistbeamer + }{% + \global\let\programlistbeameriv\programlistbeamer + } + } + \global\let\programlistbeamer\empty +} + +% Session definition +\define@key{session}{titlesep}{\csdef{@sestitlesep}{#1}} +\define@key{session}{subtitle}{\csdef{@vasutitle}{#1}} +\define@key{session}{shorttitle}{\csdef{@vashorttitle}{#1}} +\define@key{session}{bibsec}{\csdef{@sesbibsec}{#1}} +\define@boolkey{session}{cancel}[true]{} + +\newcommand*\NewSession[2][]{% + \stepcounter{week} + \setcounter{dateratio}{(\theweek-1)*7} + \setcounter{snum}{\theweek-\thecancellations} + \protected@csxdef{sesnr\thesnum}{\thesnum} + \csdef{@sestitlesep}{} + \csdef{@vasutitle}{} + \csdef{@vashorttitle}{} + \csdef{@sesbibsec}{} + \setkeys{session}{cancel=false} + \setkeys{session}{#1} + \csdef{@sestitle}{#2} + \protected@csxdef{sesdate\thesnum}{\AdvanceDate[\thedateratio]\vldate\today\AdvanceDate[-\thedateratio]} + \protected@csxdef{sesshortdate\thesnum}{\AdvanceDate[\thedateratio]\vlshdate\today\AdvanceDate[-\thedateratio]} + \protected@csxdef{sestitle\thesnum}{\csuse{@sestitle}} + \protected@csxdef{sestitlesep\thesnum}{\csuse{@sestitlesep}} + \protected@csxdef{sessubtitle\thesnum}{\csuse{@vasutitle}} + \protected@csxdef{sesshorttitle\thesnum}{\csuse{@vashorttitle}} + \protected@csxdef{sesbib\thesnum}{\csuse{@sesbibsec}} + \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}% + \ \leccancel\ \lectypesession\noexpand\egroup} + \protected@eappto\programlistbeamer{\noexpand\item[{\noexpand\bfseries\csuse{sesshortdate\thesnum}}]% + \noexpand\bgroup\noexpand\bfseries\csuse{sestitle\thesnum}\csuse{@sestitlesep}\csuse{@vasutitle}% + \ \leccancel\ \lectypesession\noexpand\egroup} + \else + \protected@eappto\programlist{\noexpand\item[{\noexpand\bfseries\csuse{sesshortdate\thesnum}}]% + \csuse{sestitle\thesnum}\csuse{@sestitlesep}\csuse{@vasutitle}} + \protected@eappto\programlistbeamer{\noexpand\item[{\noexpand\bfseries\csuse{sesshortdate\thesnum}}]% + \csuse{sestitle\thesnum}\csuse{@sestitlesep}\csuse{@vasutitle}} + \ifcsempty{sesbib\thesnum}{}{% + \xappto\jsbiblist{\noexpand\section{\csuse{sestitle\thesnum}\csuse{@sestitlesep}\csuse{@vasutitle}}% + \noexpand\nocite{*}% + \noexpand\printbibliography[keyword=\csuse{sesbib\thesnum},heading=none]}% + }% + \fi +} + +\newcommand*\SetBreak[2][\empty]{% + \stepcounter{week} + \stepcounter{cancellations} + \ifx\empty#1 + \protected@eappto\programlist{\noexpand\begin{center} (#2) \noexpand\end{center}} + \protected@eappto\programlistbeamer{\noexpand\begin{center} (#2) \noexpand\end{center}} + \else + \protected@eappto\programlist{\noexpand\begin{center} (#1: #2) \noexpand\end{center}} + \protected@eappto\programlistbeamer{\noexpand\begin{center} (#1: #2) \noexpand\end{center}} + \fi +} + +% Beamer program hook +\newcommand*\SetBeamerHook[1]{% + \protected@eappto\programlistbeamer{\noexpand#1} +} + +\define@key{break}{weeks}{\csdef{@breakweeks}{#1}} +\define@key{break}{span}{\csdef{@breakspan}{#1}} +\newcommand*\SetBreaks[2][weeks=1]{% + \csdef{@breakweeks}{\empty} + \csdef{@breakspan}{\empty} + \setkeys{break}{#1} + \setcounter{week}{\theweek+\csuse{@breakweeks}} + \setcounter{cancellations}{\thecancellations+\csuse{@breakweeks}} + \ifx\empty\csuse{@breakspan} + \protected@eappto\programlist{\noexpand\begin{center} (#2) \noexpand\end{center}} + \protected@eappto\programlistbeamer{\noexpand\begin{center} (#2) \noexpand\end{center}} + \else + \protected@eappto\programlist{\noexpand\begin{center} (\csuse{@breakspan}: #2) \noexpand\end{center}} + \protected@eappto\programlistbeamer{\noexpand\begin{center} (\csuse{@breakspan}: #2) \noexpand\end{center}} + \fi +} + +\newcommand*\StartBlock[1]{% + \stepcounter{blocks} + \protected@eappto\programlist{\noexpand\item[{\noexpand\bfseries\Roman{blocks}}.]% + \noexpand\bgroup\noexpand\bfseries #1\noexpand\egroup} + \gappto\programlist{\begin{labeling}{\lecprogramlistindent}} + \protected@eappto\programlistbeamer{\noexpand\item[{\noexpand\bfseries\Roman{blocks}}.]% + \noexpand\bgroup\noexpand\bfseries #1\noexpand\egroup} + \gappto\programlistbeamer{\begin{description}[\lecprogramlistindent]} +} + +\newcommand*\EndBlock{% + \gappto\programlist{\end{labeling}} + \gappto\programlistbeamer{\end{description}} +} + +\newcommand*\NewBlock[1]{% + \EndBlock + \StartBlock{#1} +} + +\newenvironment{SessionBlock}[1]{\StartBlock{#1}}{\EndBlock} + +% Infrastructure +\newcommand\SetOfficeHours[1]{% + \def\officehours{#1}% +} + +\newcommand\SetPlatform[1]{% + \def\lecplatform{#1}% +} + +% Define current session +\newcommand\ThisSession[1]{% + \gdef\sesnr{\csuse{sesnr#1}}% + \gdef\sesdate{\csuse{sesdate#1}}% + \gdef\sesshortdate{\csuse{sesshortdate#1}}% + \gdef\sestitle{\csuse{sestitle#1}}% + \gdef\sestitlesep{\csuse{sestitlesep#1}}% + \gdef\sesshorttitle{\csuse{sesshorttitle#1}}% + \gdef\sessubtitle{\csuse{sessubtitle#1}}% +} + +\newcommand\LocalSession[1]{% + \gdef\lsesnr{\csuse{sesnr#1}}% + \gdef\lsesdate{\csuse{sesdate#1}}% + \gdef\lsesshortdate{\csuse{sesshortdate#1}}% + \gdef\lsestitle{\csuse{sestitle#1}}% + \gdef\lsestitlesep{\csuse{sestitlesep#1}}% + \gdef\lsesshorttitle{\csuse{sesshorttitle#1}}% + \gdef\lsessubtitle{\csuse{sessubtitle#1}}% +} + +% Session information +\newcommand*\SessionFullTitle[1]{% + \LocalSession{#1}% + \lsestitle\lsestitlesep\lsessubtitle% +} + +\newcommand*\SessionDate[1]{% + \LocalSession{#1}% + \lsesdate% +} + +\newcommand*\SessionShortTitle[1]{% + \LocalSession{#1}% + \lsesshorttitle% +} + +\newcommand*\SessionTitle[1]{% + \LocalSession{#1}% + \lsestitle% +} + +\newcommand*\SessionShortDate[1]{% + \LocalSession{#1}% + \lsesshortdate% +} + +\newcommand*\MakeProgramline[1]{% + \LocalSession{#1}% +\item[{\bfseries\lsesshortdate}]% + \lsestitle\lsestitlesep\lsessubtitle% +} + +% Finis diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index 127d4ee4882..57a8b800713 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -268,7 +268,8 @@ my @TLP_working = qw( iso10303 isodate isodoc isomath isonums isorot isotope issuulinks itnumpar iwhdp iwona jablantile jamtimes japanese japanese-otf japanese-otf-uptex - jfontmaps jknapltx jlabels jmlr jneurosci jpsj jsclasses junicode + jfontmaps jknapltx jlabels jmlr jneurosci jpsj jsclasses + jslectureplanner junicode jura juraabbrev jurabib juramisc jurarsp js-misc jvlisting kantlipsum karnaugh kastrup kdgdocs kerkis kerntest keycommand keyreader keystroke keyval2e kix kixfont diff --git a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc index e8db39c704c..e3517a093d7 100644 --- a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc @@ -440,6 +440,7 @@ depend isotope depend issuulinks depend iwhdp depend jlabels +depend jslectureplanner depend jvlisting depend kantlipsum depend kerntest diff --git a/Master/tlpkg/tlpsrc/jslectureplanner.tlpsrc b/Master/tlpkg/tlpsrc/jslectureplanner.tlpsrc new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/Master/tlpkg/tlpsrc/jslectureplanner.tlpsrc |