diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/dvdcoll/dvdcoll.cls')
-rw-r--r-- | Master/texmf-dist/tex/latex/dvdcoll/dvdcoll.cls | 392 |
1 files changed, 392 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/dvdcoll/dvdcoll.cls b/Master/texmf-dist/tex/latex/dvdcoll/dvdcoll.cls new file mode 100644 index 00000000000..9bb54484a8f --- /dev/null +++ b/Master/texmf-dist/tex/latex/dvdcoll/dvdcoll.cls @@ -0,0 +1,392 @@ +%% +%% Copyright (C) 2006 by: +%% Josef Kleber +%% <josef.kleber@gmx.net> +%% +%% This file 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 "author-maintained". +%% +%% This Current Maintainer of this work is Josef Kleber. +%% +%% This work consists of all files listed in manifest.txt. +%% +% +\NeedsTeXFormat{LaTeX2e}% +% +\ProvidesClass{dvdcoll}[2006/06/14 dvdcoll.cls v0.52 - Josef Kleber (C) 2006]% +% +\RequirePackage{xkeyval}% +\RequirePackage{ifthen}% +% +\define@key{dvdcoll.cls}{language}[babel]% +{% + \ifthenelse{\NOT\equal{#1}{babel}}% + {%no babel + \def\dc@option@language{#1}% + }% + {%babel + \def\dc@option@language{#1}% + \AtBeginDocument% + {% + \ifthenelse{\NOT\equal{\dc@option@language}{babel}}% + {%no babel + \InputIfFileExists{\dc@option@language.dcl}% + {}% + {% + \input{english.dcl}% + \ClassWarningNoLine{dvdcoll}% + {% + You tried to use option language=\dc@option@language\MessageBreak + <\dc@option@language> is at the moment not available\MessageBreak + dvdcoll.cls is using english instead!\MessageBreak + Please take a look at <english.dcl>,\MessageBreak + translate it to your language and email\MessageBreak + it to: dvdcoll@web.de + }% + }% + }% + {%babel + \@ifpackageloaded{babel}% + {% yes + \def\dc@option@language{\languagename}% + \InputIfFileExists{\dc@option@language.dcl}% + {}% + {% + \input{english.dcl}% + \ClassWarningNoLine{dvdcoll}% + {% + You tried to use babel with option <\dc@option@language>\MessageBreak + <\dc@option@language> is at the moment not available\MessageBreak + dvdcoll.cls is using english instead!\MessageBreak + Please take a look at <english.dcl>,\MessageBreak + translate it to your language and email\MessageBreak + it to: dvdcoll@web.de + }% + }% + }% + {% no + \input{english.dcl}% + \ClassWarningNoLine{dvdcoll}% + {% + You did not specify a language via Package <babel>\MessageBreak + or with the dvdcoll option language.\MessageBreak + dvdcoll is using <english> as default instead + }% + }% + }% + }% + }% +}% +% +\define@choicekey*{dvdcoll.cls}{dvdlabel}[\valuedvdcoll\nr]{wide,narrow}[wide]% +{% + \ifcase\nr\relax% + \def\dc@option@dvdlabel{\hfill}% + \or% + \def\dc@option@dvdlabel{\hspace{1em}}% + \fi% +}% +% +\define@choicekey*{dvdcoll.cls}{dvdskip}[\valuedvdskip\nr]{small,medium,big}[medium]% +{% + \ifcase\nr\relax% + \def\dc@addvspace@endDvd{\dc@smallskip}% + \or% + \def\dc@addvspace@endDvd{\dc@medskip}% + \or% + \def\dc@addvspace@endDvd{\dc@bigskip}% + \fi% +}% +% +\define@choicekey*{dvdcoll.cls}{pagenumbers}[\valuepagenumbers\nr]{yes,no}[yes]% +{% + \ifcase\nr\relax% + {}% + \or% + \AtBeginDocument% + {% + \pagestyle{empty}% + \let\ps@plain=\ps@empty% LaTeX Begleiter S.231 + }% + \fi% +}% +% +\define@choicekey*{dvdcoll.cls}{heading}[\valueheading\nr]{number,nonumber}[nonumber]% +{% + \ifcase\nr\relax% + {% + \AtBeginDocument% + {% + \setcounter{secnumdepth}{4}% + \SetTOCSecIndent{1em}% + \SetLFRSecNumwidth{4.5em}% + }% + }% + \or% + \AtEndOfClass{\SetTOCNumwidth{2.2em}}% default + \AtBeginDocument% + {% + \setcounter{secnumdepth}{-2}% + \SetTOCSecIndent{1em}% + \SetLFRSecNumwidth{0em}% + }% + \fi% +}% +% +\ExecuteOptionsX{dvdlabel,dvdskip,pagenumbers,heading,language}% +% +\ProcessOptionsX\relax% +% +\LoadClassWithOptions{scrreprt}% +% +\RequirePackage{xspace}% +\RequirePackage{tabularx}% +\RequirePackage{booktabs}% +\RequirePackage{array}% +\RequirePackage[naturalnames=true,hypertexnames=false]{hyperref}% +%--- naturalnames=true,hypertexnames=false --- verhindert das mehrfache Anlegen von hyperref-Ankern +% (bedingt durch das Rücksetzen des Zahlers chapter) +% und beseitigt die Warnungen (ext4) von hyperref +% +% +%--- Counters --- +% +\newcounter{dvdcount}[chapter]% +\newcounter{titlecount}[dvdcount]% +% +% +%--- Variables --- +% +\def\dc@part{}% +\def\dc@series{}% +\def\dc@title{}% +% +% +%--- Internal Commands --- +% +\def\dc@third{min}% +\def\dc@addhspace@title@count{0.7em}% +\newcommand*\dc@miss{}% +\newcommand*\dc@lfrname{}% +% \***skip aus source2e; etwas vergrößert +\def\dc@smallskip{\vspace{6pt plus 2pt minus 2pt}} +\def\dc@medskip{\vspace{12pt plus 4pt minus 4pt}} +\def\dc@bigskip{\vspace{18pt plus 6pt minus 6pt}} +% +% +\newcommand*\dc@print@dvdlabel[1]% +{% + \ifthenelse{\equal{}{#1}}% + {}% no label! + {% + \textbf{[#1]}% + }% +}% +% +% +%--- Commands --- +% +\newcommand*\SetCounterSpace[1]% +{% + \def\dc@addhspace@title@count{#1}% +}% +% +% +\newcommand*\SetThirdColumnAddition[1]% +{% + \def\dc@third{#1}% +}% +% +% +\newcommand*\DvdCounter% +{% + \DvdSpace\thedvdcount% +}% +% +% +\newcommand*\AutoTitle% +{% + \dc@series\DvdCounter\DvdSpace% +}% +% +% +\newcommand*\DvdSpace% +{% + \hspace{\dc@addhspace@title@count}% +}% +% +% +\newcommand*\DvdPart[1]% +{% + \part{#1}% + \def\dc@part{#1}% + \setcounter{chapter}{0}% +}% +% +% +\newcommand*\DvdSeries[1]% +{% + \chapter{#1}% + \def\dc@series{#1}% + \ifthenelse{\equal{\valueheading}{nonumber}}% + {% + \setcounter{dvdcount}{0}% + }% + % durch heading=nonumber (secnumdepth=-2) funktioniert das automatische + % Zurücksetzen von dvdcount nicht mehr, da chapter offensichtlich nicht + % mehr zurückgesetzt wird! + {}% +}% +% +% +\newcommand*\DvdTitle[2]% +{% + %\refstepcounter für richtigen (DvdTitle anstatt Dvd) Hyperref-Link in lfr + \refstepcounter{titlecount}% + \ifthenelse{\equal{\dc@miss}{#2}}% + { + %Eintrag in lfr unbedingt vor Tabelleneintrag, ansonsten Fehler in der Tabelle - don't no why! + %Eintrag in lfr bei heading=nonumber OHNE Nummern + \ifthenelse{\equal{\valueheading}{nonumber}}% + {% + \addcontentsline{lfr}{lfrsec}{\protect\numberline{} \dc@series\ - #1}% + }% + {% + \addcontentsline{lfr}{lfrsec}{\protect\numberline{\thepart.\thechapter.\thedvdcount.\thetitlecount} \dc@series\ - #1}% + }% + \thetitlecount{}. & #1 & \hfill\dc@miss \tabularnewline% + } + {% + \ifthenelse{\equal{}{#2}}% + % keine Minutenangabe + {\thetitlecount{}. & #1 & \tabularnewline}% + % mit Minutenangabe + {\thetitlecount{}. & #1 & \hfill{}#2~\dc@third \tabularnewline}% + }% +}% +% +% +\newcommand{\listoffaultyrecordings}% +{% + \setboolean{@restonecol}{false}% + \ifthenelse{\boolean{@twocolumn}}% + {\setboolean{@restonecol}{true}\onecolumn}% + {}% + \@ifundefined{chapter}% + {\section*{\dc@lfrname\@mkboth{\dc@lfrname}{\dc@lfrname}}}% + {\chapter*{\dc@lfrname\@mkboth{\dc@lfrname}{\dc@lfrname}}}% + {% + \setlength{\parindent}{0pt}% + \@starttoc{lfr}% + }% + \ifthenelse{\boolean{@restonecol}}% + {\twocolumn}% + {}% +}% +% +% +\newcommand\l@lfrsec{\@dottedtocline{1}{0em}{0em}} +% +% +\newcommand\SetLFRSecNumwidth[1]% +{% + \renewcommand*\l@lfrsec{\@dottedtocline{1}{0pt}{#1}} +}% +% +% +\newcommand\SetTOCSecIndent[1]% +{% + \renewcommand*\l@section{\@dottedtocline{1}{#1}{0pt}} +}% +% +% +\newcommand*\SetTOCNumwidth[1]% +{% +\renewcommand*\l@chapter[2]{% + \ifnum \c@tocdepth >\m@ne + \addpenalty{-\@highpenalty}% + \vskip 1.0em \@plus\p@ + \setlength\@tempdima{#1}% + \if@tocleft + \ifx\toc@l@number\@empty\else + \setlength\@tempdima{0\toc@l@number}% + \fi + \fi + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \leavevmode \sectfont + \advance\leftskip\@tempdima + \hskip -\leftskip + ##1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss ##2}\par + \penalty\@highpenalty + \endgroup + \fi} +% +\renewcommand*\l@part[2]{% + \ifnum \c@tocdepth >-2\relax + \addpenalty{-\@highpenalty}% + \addvspace{2.25em \@plus\p@}% + \setlength\@tempdima{#1}% + \if@tocleft + \ifx\toc@l@number\@empty\else + \setlength\@tempdima{0\toc@l@number}% + \fi + \fi + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \leavevmode\sectfont\large + \advance\leftskip\@tempdima + \hskip -\leftskip + ##1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss ##2}\par + \penalty\@highpenalty + \endgroup + \fi} +}% +% +% +%--- Environments --- +% +\newenvironment{Dvd}[2]% +{% +% + %Hack von Markus Kohm zur Behebung des \bottomrule-Problems bei \endtabularx in Environments (-> Google-Groups) + \expandafter\let\expandafter\SavedEndTab\csname endtabular*\endcsname% + \expandafter\renewcommand\expandafter*\csname endtabular*\endcsname{% + \midrule% + \SavedEndTab% + }% + \refstepcounter{dvdcount}% \refstepcounter für hyperref-Link auf die jeweilige DVD + \ifthenelse{\equal{}{#1}}{\def\dc@title{\dc@series\DvdCounter}}{\def\dc@title{#1}}% + \addcontentsline{toc}{section}{\dc@title}% + \phantomsection% korrigiert fehlerhafte (falsch positionierte) Links auf dvd-Tabellen + \noindent% + % verhindert overfull \hbox Errors wegen \tabularx{\linewidth}... + \tabularx{\linewidth}{>{\large}r>{\large}X>{\large}l}% + \multicolumn{3}{l}{\Large\dc@title\dc@option@dvdlabel\dc@print@dvdlabel{#2}}\\% + \midrule% +}% +{% + %\midrule% bereits in der Definition enthalten durch Hack von Markus Kohm siehe oben + \endtabularx% + \dc@addvspace@endDvd% +}% +% +% +%---------------------------------------------------------------------------------------------------------------- +% +% ToDo: +% +% - Option titlenumbers: verringern auf 2 Spalten unter Weglassen der Nummerierung +% Fehler bei Implementationsversuch (1. ifthenelse mit tabularx / 2. \multicolumn) +% mal in Newsgroup fragen
\ No newline at end of file |