diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/hc/hc.dtx |
Initial commit
Diffstat (limited to 'macros/latex/contrib/hc/hc.dtx')
-rw-r--r-- | macros/latex/contrib/hc/hc.dtx | 1624 |
1 files changed, 1624 insertions, 0 deletions
diff --git a/macros/latex/contrib/hc/hc.dtx b/macros/latex/contrib/hc/hc.dtx new file mode 100644 index 0000000000..e76abdd853 --- /dev/null +++ b/macros/latex/contrib/hc/hc.dtx @@ -0,0 +1,1624 @@ +% \iffalse +% +% This is file `hc.dtx'. +% +%% Copyright (C) 1998--2000 Christian Siefkes <error@cs.tu-berlin.de> +%% +%% Updates are available via http://tal.cs.tu-berlin.de/error/TeX/ +%% +%% This file is part of the HC Bundle for LaTeX2e. +%% ----------------------------------------------- +%% +%% This file is free software; you can redistribute it and/or modify +%% it under the terms of the GNU Library General Public License as +%% published by the Free Software Foundation; either version 2 of the +%% License, or (at your option) any later version. +%% +%% This document is distributed in the hope that it will be useful, but +%% WITHOUT ANY WARRANTY; without even the implied warranty of +%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +%% General Public License for more details. +%% +%% You should have received a copy of the GNU General Public License +%% along with this program; see the file COPYING. If not, write to +%% the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +%% Boston, MA 02111-1307, USA. +%% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +%<class>\NeedsTeXFormat{LaTeX2e}[1995/12/01] +%<*dtx> + \ProvidesFile{hc.dtx}% +%</dtx> +%<german>\ProvidesFile{german.hld}% +%<hcart>\ProvidesClass{hcart}% +%<hcletter>\ProvidesClass{hcletter}% +%<hcreport>\ProvidesClass{hcreport}% +%<hcslides>\ProvidesClass{hcslides}% +% \fi +% \ProvidesFile{hc.dtx}% + [2000/03/23 v1.07 LaTeX2e HC Bundle] +% \iffalse +% +%<*driver> +\documentclass[paper]{hcart} +\usepackage{doc} +\begin{document} +\DocInput{hc.dtx} +\end{document} +%</driver> +% \fi +% +% \newcommand{\cs}[1]{\texttt{\backslash #1}} +% \changes{v0.9}{1999/09/09}{First public prerelease} +% \changes{v1.0}{1999/11/01}{First official public version} +% \changes{v1.01}{1999/11/05}{better PDF support, +% \cs{keywords} and \cs{hyperinfo} commands added} +% \changes{v1.02}{1999/11/28}{author's email \& homepage made +% hyperlinks, \cs{phyp} and \cs{arrow} commands added} +% \changes{v1.02a}{1999/12/23}{bugs fixed (load \texttt{babel} after +% \texttt{natbib} package; correct formatting of \cs{tit(sub)info)}} +% \changes{v1.02b}{1999/12/26}{\cs{bibfirst} command removed} +% \changes{v1.02c}{2000/01/02}{\cs{addrdiv} command added} +% \changes{v1.02d}{2000/01/04}{\cs{enge} command added, +% \cs{bibmov} command modified} +% \changes{v1.02e}{2000/01/05}{\cs{etal} command modified} +% \changes{v1.02f}{2000/01/30}{bug fixed (\texttt{german} option)} +% \changes{v1.03}{2000/01/31}{\cs{cfcite} command added} +% \changes{v1.04}{2000/02/23}{\texttt{xspace} package support added} +% \changes{v1.04a}{2000/02/24}{\texttt{mathpple} package support added} +% \changes{v1.04b}{2000/02/29}{output of \cs{noyear} and \cs{noplace} +% commands changed} +% \changes{v1.05}{2000/03/04}{\texttt{dialog} environment and \cs{newspeaker} +% command added} +% \changes{v1.06}{2000/03/10}{\texttt{fnbib} option and \cs{f} command added} +% \changes{v1.06a}{2000/03/11}{bug fixed (\texttt{fnbib} option)} +% \changes{v1.06b}{2000/03/13}{implementation of (\texttt{bib} option changed)} +% \changes{v1.06c}{2000/03/14}{\cs{ps@headings} macro changed)} +% \changes{v1.07}{2000/03/23}{\cs{see} macro added)} +% \GetFileInfo{hc.dtx} +% +% \tit[\filedate]{The HC Bundle for \LaTeXe\\\fileversion} +% +% \MakeShortVerb{\|} +% \newcommand{\descOpt}[1]{\marginbox{#1}} +% \newcommand{\descCom}[1]{\marginbox{\tt\textbackslash #1}} +% \newcommand{\descEnv}[2][] +% {\marginbox{\texttt{\textbackslash begin{\tt\string{}#2{\tt\string}}}#1}} +% \newcommand{\comdiv}{\\ \tt\textbackslash} +% \newcommand{\m}[1]{\mbox{\it #1\/}} +% \renewcommand{\arg}[1]{{\tt\string{}\m{#1}{\tt\string}}} +% \newcommand{\oarg}[1]{{\tt[}\m{#1}{\tt]}} +% \newcommand{\rarg}[1]{<\m{#1}>} +% +% \section{Introduction} +% The HC Bundle for \LaTeXe\ provides the following four classes as +% replacement for the \LaTeX\ default classes: +% \begin{flexlist}{hcreport.cls} +% \item[hcart.cls] substitute for the |article| class,\\ +% based upon the |scrartcl| class from the KoMa-Script bundle; +% \item[hcreport.cls] substitute for the |report| class,\\ +% based upon the |scrreprt| class from the KoMa-Script bundle; +% \item[hcletter.cls] substitute for the |letter| class,\\ +% based upon the |scrlettr| class from the KoMa-Script bundle; +% \item[hcslides.cls] substitute for the |slides| class,\\ +% based upon the |seminar| class. +% \end{flexlist} +% \begin{macrocode} +%<*hcart> +\newcommand{\thisclass}{hcart} +\newcommand{\superclass}{scrartcl} +%</hcart> +%<*hcletter> +\newcommand{\thisclass}{hcletter} +\newcommand{\superclass}{scrlettr} +%</hcletter> +%<*hcreport> +\newcommand{\thisclass}{hcreport} +\newcommand{\superclass}{scrreprt} +%</hcreport> +%<*hcslides> +\newcommand{\thisclass}{hcslides} +\newcommand{\superclass}{seminar} +%</hcslides> +% \end{macrocode} +% \section{Options} +% \subsection{General Options} +% \descOpt{german\\english} +% Loads a language. Default is English. At the moment no other languages are +% supported. Requires the |babel| package. +% \begin{macrocode} +%<*class> +\newif\if@german +\@germanfalse +\newif\if@deflang +\@deflangtrue +\DeclareOption{german}{\@deflangfalse\@germantrue + \PassOptionsToPackage{ngerman}{babel} + \PassOptionsToPackage{german}{fancyref} + \AtEndOfClass{\input{german.hld}}} +\DeclareOption{english}{\@deflangfalse + \PassOptionsToPackage{\CurrentOption}{babel}} +% \end{macrocode} +% \descOpt{a4paper\\letterpaper} +% Use the DIN~A4 (default) or the letter paper format? At the moment no other +% paper formats are supported. +% \begin{macrocode} +\newif\if@defpaper +\@defpapertrue +\DeclareOption{a4paper}{ +%<hcart|hcletter|hcreport>\PassOptionsToClass{\CurrentOption}{\superclass} +%<hcslides>\PassOptionsToClass{a4}{\superclass} +\PassOptionsToPackage{\CurrentOption}{hyperref} +\@defpaperfalse} +\DeclareOption{letterpaper}{ +%<hcart|hcletter|hcreport>\PassOptionsToClass{\CurrentOption}{\superclass} +\PassOptionsToPackage{\CurrentOption}{hyperref} +\@defpaperfalse} +% \end{macrocode} +% \descOpt{palatino\\nopalatino} +% Use the Palatino or the Standard \TeX\ font? Palatino is default (requires +% the |palatino| and the |mathpple| packages). +% \begin{macrocode} +\newif\if@palatino +\@palatinotrue +\DeclareOption{palatino}{\@palatinotrue} +\DeclareOption{nopalatino}{\@palatinofalse} +% \end{macrocode} +% \descOpt{ding} +% Provide some fancy lists and symbols using the Dingbat symbols (requires +% the |pifont| style of the |psnfss| package)? +% \begin{macrocode} +\newif\if@ding +\@dingfalse +\DeclareOption{ding}{\@dingtrue} +% \end{macrocode} +% \descOpt{euro\\noeuro} +% Provide the Euro symbol \E\ (default, requires the |eurofont| package)? +% \begin{macrocode} +\newif\if@euro +\@eurotrue +\DeclareOption{euro}{\@eurotrue} +\DeclareOption{noeuro}{\@eurofalse} +% \end{macrocode} +% \descOpt{fancyref\\nofancyref} +% Provide fancy reference commands (default, requires the |fancyref| and the +% |varioref| packages)? +% \begin{macrocode} +\newif\if@fancyref +\@fancyreftrue +\DeclareOption{fancyref}{\@fancyreftrue} +\DeclareOption{nofancyref}{\@fancyreffalse} +% \end{macrocode} +% \descOpt{html\\nohtml} +% Provide HTML commands (default, requires the |html| package bundled with +% \LaTeX2HTML)? +% \begin{macrocode} +\newif\if@html +\@htmltrue +\DeclareOption{html}{\@htmltrue} +\DeclareOption{nohtml}{\@htmlfalse} +%</class> +% \end{macrocode} +% \subsection{Options for the hcart and hcreport classes} +% \descOpt{headsepline\\headnosepline} +% Draw a horizontal line below the header line (default)? +% \begin{macrocode} +%<*hcart|hcreport> +\newif\if@defhsl +\@defhsltrue +\DeclareOption{headsepline}{\PassOptionsToClass +{\CurrentOption}{\superclass}\@defhslfalse} +\DeclareOption{headnosepline}{\PassOptionsToClass +{\CurrentOption}{\superclass}\@defhslfalse} +% \end{macrocode} +% \descOpt{onecolumn\\twocolumn} +% Set the text in one or two columns (default is one)? +% \begin{macrocode} +\DeclareOption{onecolumn}{\PassOptionsToClass +{\CurrentOption}{\superclass}} +\DeclareOption{twocolumn}{\PassOptionsToClass +{\CurrentOption}{\superclass}} +% \end{macrocode} +% \descOpt{hcarea\\hcnoarea} +% Set the default area to 240mm $\times$ 150mm (default)? Otherwise, +% the default value from the |scrartcl| resp. |scrreprt| classes is used +% if you do not set the area manually (e.g. with the |\areaset| command). +% \begin{macrocode} +\newif\if@hcarea +\@hcareatrue +\DeclareOption{hcarea}{\@hcareatrue} +\DeclareOption{hcnoarea}{\@hcareafalse} +% \end{macrocode} +% \descOpt{hcfootnotes\\hcnofootnotes} +% Nicer formatting of footnotes (default)? +% \begin{macrocode} +\newif\if@hcfootnotes +\@hcfootnotestrue +\DeclareOption{hcfootnotes}{\@hcfootnotestrue} +\DeclareOption{hcnofootnotes}{\@hcfootnotesfalse} +% \end{macrocode} +% \descOpt{magazine} +% Provide commands for magazine or newspaper articles? This sets the +% |html| option too. +% \begin{macrocode} +\newif\if@magazine +\@magazinefalse +\DeclareOption{magazine}{\@magazinetrue\@htmltrue} +% \end{macrocode} +% \descOpt{parskip} +% Skip paragraphs instead of indenting them? +% \begin{macrocode} +\newif\if@parskip +\@parskipfalse +\DeclareOption{parskip}{\@parskiptrue} +% \end{macrocode} +% \descOpt{wide} +% Use a wide line distance (ca. 1.5)? +% \begin{macrocode} +\newif\if@wide +\@widefalse +\DeclareOption{wide}{\@widetrue} +%</hcart|hcreport> +% \end{macrocode} +% \subsection{Options for the hcart, hcreport and hcletter classes} +% \descOpt{10pt\\11pt\\12pt} +% Use a font size of 10, 11, or 12 (default) points? +% \begin{macrocode} +%<*hcart|hcreport|hcletter> +\newif\if@defsize +\@defsizetrue +\DeclareOption{10pt}{\PassOptionsToClass{\CurrentOption}{\superclass} +\@defsizefalse} +\DeclareOption{11pt}{\PassOptionsToClass{\CurrentOption}{\superclass} +\@defsizefalse} +\DeclareOption{12pt}{\PassOptionsToClass{\CurrentOption}{\superclass} +\@defsizefalse} +%</hcart|hcreport|hcletter> +% \end{macrocode} +% \subsection{Options for the hcart, hcreport and hcslides classes} +% \descOpt{bib\\nobib} +% Use \BibTeX? +% \begin{macrocode} +%<*hcart|hcreport|hcslides> +\newif\if@bib +\@bibfalse +\DeclareOption{bib}{\@bibtrue} +\DeclareOption{nobib}{\@bibfalse} +% \end{macrocode} +% \descOpt{fnbib\\autbib\\numbib} +% \BibTeX\ references are written in footnotes (default) or in +% author-year or in numerical style. +% These options set the |bib| option too. +% \begin{macrocode} +\newif\if@fnbib +\@fnbibtrue +\newif\if@autbib +\@autbibfalse +\newif\if@numbib +\@numbibfalse +\DeclareOption{fnbib}{\@fnbibtrue\@autbibfalse\@numbibfalse\@bibtrue} +\DeclareOption{autbib}{\@fnbibfalse\@autbibtrue\@numbibfalse\@bibtrue} +\DeclareOption{numbib}{\@fnbibfalse\@autbibfalse\@numbibtrue\@bibtrue} +% \end{macrocode} +% \descOpt{htmlbib\\nohtmlbib} +% Use the |html| package for online references with \BibTeX\ (default)? +% This loads the |html| option too. +% \begin{macrocode} +\newif\if@htmlbib +\@htmlbibtrue +\DeclareOption{htmlbib}{\@htmlbibtrue\@htmltrue} +\DeclareOption{nohtmlbib}{\@htmlbibfalse} +% \end{macrocode} +% \descOpt{paper} +% Provide formatting and commands for a scientific paper? This sets the +% |bib| and |html| options too. +% \begin{macrocode} +\newif\if@paper +\@paperfalse +\DeclareOption{paper}{\@papertrue\@bibtrue\@htmltrue} +% \end{macrocode} +% \descOpt{pdf\\nopdf} +% Prepare file for the PDF format? This loads the |hyperref| package. +% This option is set automagically by running |pdflatex|. +% \begin{macrocode} +\newif\if@pdf +\ifx\pdfoutput\undefined + \@pdffalse +\else + \@pdftrue +\fi +\DeclareOption{pdf}{\@pdftrue} +\DeclareOption{nopdf}{\@pdffalse} +%</hcart|hcreport|hcslides> +% \end{macrocode} +% \subsection{Options for the hcreport class} +% \descOpt{openany\\openright} +% Start new chapters always on a right page (not by default)? +% \begin{macrocode} +%<*hcreport> +\DeclareOption{openany} + {\PassOptionsToClass{\CurrentOption}{\superclass}} +\DeclareOption{openright} + {\PassOptionsToClass{\CurrentOption}{\superclass}} +%</hcreport> +% \end{macrocode} +% \subsection{Options for the hcslides class} +% \descOpt{twotoc\\onetoc} +% Print table of contents in two columns (requires the |multicol| package)? +% \begin{macrocode} +%<*hcslides> +\newif\if@twotoc +\@twotocfalse +\DeclareOption{twotoc}{\@twotoctrue} +\DeclareOption{onetoc}{\@twotocfalse} +%</hcslides> +% \end{macrocode} +% \subsection{Other Options} +% Other options are ignored. +% \begin{macrocode} +%<*class> +\DeclareOption*{\ClassWarning{\thisclass}% + {Unknown Option: `\CurrentOption '}% +} +% \end{macrocode} +% Options not implemented: +% \begin{widedesc} +% \item[scrartcl, scrlettr, scrreprt] +% paper sizes except a4 and letter (a5paper, b5paper, legalpaper, +% executivepaper ...); oneside, twoside; +% \item[scrartcl, scrreprt] +% DIV\dots, DIVcalc, DIVclassic, BCOR; headinclude, headexclude, footinclude, +% footexclude; footsepline, footnosepline; +% bigheadings, normalheadings, smallheadings; +% pointednumbers, pointlessnumbers; abstracton, abstractoff; +% titlepage, notitlepage; leqno, fleqn; openbib; portrait, landscape; +% draft, final; bibtotocnumbered; +% \item[scrlettr] +% orgdate; wlocfield, slocfield; +% \item[seminar] +% portrait, landscape; article, slidesonly, notes, +% notesonly; semlayer, semcolor. +% \end{widedesc} +% \section{Commands and Environments} +% \subsection{Configuration} +% \descCom{defaulttitle\arg{title}\comdiv +% defaultauthor\arg{author}\comdiv +% defaultaddress\arg{address}\comdiv +% defaultemail\arg{mail-address}\comdiv +% defaulthomepage\arg{website}} +% Used if no author information is specified. +% They are all empty by default. Renew them in one of the config files +% (see below). +% \descCom{autdiv} +% Use instead of |\\| in |\defaultauthor|. +% \descCom{autinfodiv} +% Use instead of |\\| in |\defaultaddress| etc. +% \begin{macrocode} +\newcommand{\defaulttitle}{} +\newcommand{\defaultauthor}{} +\newcommand{\defaultaddress}{} +\newcommand{\defaultemail}{} +\newcommand{\defaulthomepage}{} +\newcommand{\currenttitle}{\defaulttitle} +\newcommand{\currentauthor}{\defaultauthor} +\newcommand{\autdiv}{\\[-0.4ex]\normalfont\Large} +\newcommand{\autinfodiv}{\\[-1ex]\normalfont\normalsize} +\ProcessOptions\relax +%</class> +%<*hcart|hcreport> +\if@defhsl + \PassOptionsToClass{headsepline}{\superclass} +\fi +% \end{macrocode} +% The |twoside|, |pointlessnumbers|, +% |liststotoc|, |bibtotoc| and |idxtotoc| +% options are always used with the |hcart| and |hcreport| classes. +% The |hcletter| class always uses the |wlocfield| option. +% \begin{macrocode} +\PassOptionsToClass{twoside,pointlessnumbers,liststotoc, + bibtotoc,idxtotoc}{\superclass} +%</hcart|hcreport> +%<hcletter>\PassOptionsToClass{wlocfield}{\superclass} +%<*hcart|hcreport|hcletter> +\if@defsize + \PassOptionsToClass{12pt}{\superclass} +\fi +%</hcart|hcreport|hcletter> +%<*class> +\if@deflang + \PassOptionsToPackage{english}{babel} +\fi +\if@defpaper +%<hcart|hcreport> \PassOptionsToClass{a4paper}{\superclass} +%<hcslides> \PassOptionsToClass{a4}{\superclass} + \PassOptionsToPackage{a4paper}{hyperref} +\fi +\LoadClass{\superclass} +% \end{macrocode} +% The normal spacing is used after the end of a sentence. +% \begin{macrocode} +\sloppy +\clubpenalty9999 +\@clubpenalty\clubpenalty +\widowpenalty9999 +\displaywidowpenalty1000 +\brokenpenalty1000 +\frenchspacing +% \end{macrocode} +% The modern font encoding (T1) and the latin1 input encoding are used +% (this requires the |T1| and |latin1| packages). The |ifthen|, +% the |babel| and the |xspace| packages are always used. +% The |bib| option loads the |natbib| package. +% \begin{macrocode} +%<hcart|hcreport|hcslides>\RequirePackage{natbib} +\RequirePackage[T1]{fontenc} +\RequirePackage[latin1]{inputenc} +\RequirePackage{ifthen} +\RequirePackage{babel} +\RequirePackage{xspace} +% \end{macrocode} +% The config file |hc.cfg| is used by all classes. Every class also +% uses a config file with its own name, e.g. the hcart class uses +% |hcart.cfg|. The settings in |hc.cfg| may be overwritten by the +% class specific config files. +% \begin{macrocode} +\InputIfFileExists{hc.cfg}{% + \ClassInfo{\thisclass} + {Loading configuration file hc.cfg}}{% + \ClassInfo{\thisclass} + {Configuration file hc.cfg not found}} +\InputIfFileExists{\thisclass.cfg}{% + \ClassInfo{\thisclass} + {Loading configuration file \thisclass.cfg}}{% + \ClassInfo{\thisclass} + {Configuration file \thisclass.cfg not found}} +% \end{macrocode} +% \subsection{General Commands and Environments} +% \descCom{q\arg{quote}} +% \rarg{quote} is put into quotation marks. May be nested: A quote inside +% another quote uses inner quotation marks. +% \begin{macrocode} +\newcommand{\nextstartq}{`} +\newcommand{\nextendq}{'} +\newcommand{\otherstartq}{``} +\newcommand{\otherendq}{''} +\newcommand{\tmpq}{} +\newcommand{\q}[1]{\nextstartq{}% + \let\tmpq\nextstartq% + \let\nextstartq\otherstartq% + \let\otherstartq\tmpq% + \let\tmpq\nextendq% + \let\nextendq\otherendq% + \let\otherendq\tmpq% + #1% + \let\tmpq\nextstartq% + \let\nextstartq\otherstartq% + \let\otherstartq\tmpq% + \let\tmpq\nextendq% + \let\nextendq\otherendq% + \let\otherendq\tmpq% + \nextendq{}% +} +% \end{macrocode} +% \descCom{hq\arg{quote}} +% \rarg{quote} is always put into inner (\hq{half}) quotation marks. +% \begin{macrocode} +\newcommand{\hq}[1]{``#1''} +% \end{macrocode} +% \descCom{fq\arg{quote}} +% \rarg{quote} is always put into outer (\fq{full}) quotation marks. +% \begin{macrocode} +\newcommand{\fq}[1]{`#1'} +% \end{macrocode} +% \descCom{dash\arg{text}} +% \rarg{text} is put between dashes. +% \begin{macrocode} +\newcommand{\dash}[1]{---#1---} +% \end{macrocode} +% \descEnv[\oarg{separator}\arg{longest-title}]{flexlist} +% A list environment similar to the |description| environment. +% All items are indented by the width of \rarg{longest-title}. +% The default \rarg{separator} is \q{:}. +% \begin{macrocode} +\newenvironment{flexlist}[2][:] + {\begin{list}{} + {\settowidth{\labelwidth}{\sffamily\bfseries #2#1 } + \setlength{\leftmargin}{\labelwidth} + \addtolength{\leftmargin}{\labelsep} + \renewcommand{\makelabel}[1] + {\sffamily\bfseries ##1#1 \hfill}}} + {\end{list}} +% \end{macrocode} +% \descEnv[\oarg{separator}]{widedesc} +% A variation of the |flexlist| environment. +% All items are indented by the width of a date (\q{00.00.0000}). +% The default \rarg{separator} is \q{:}. +% \begin{macrocode} +\newenvironment{widedesc}[1][:] + {\begin{flexlist}[#1]{00.00.0000}} + {\end{flexlist}} +% \end{macrocode} +% \descCom{pcent\arg{value}} +% Prints \rarg{value} followed by the percent symbol \%. +% \begin{macrocode} +\newcommand{\pcent}[1]{#1\,\%} +% \end{macrocode} +% \descCom{qdots} +% Prints the scientific omission symbol \qdots. +% \begin{macrocode} +\newcommand{\qdots}{\mbox{[\dots]}\xspace} +% \end{macrocode} +% \descCom{phyp} +% Prints a (part of a) word in parenthesis, ended by a hypen, like +% \phyp{love}letter. +% \begin{macrocode} +\newcommand{\phyp}[1] + {(#1\textormath{\leavevmode\hbox{-}}{-})\hskip\z@skip} +% \end{macrocode} +% \descCom{arrow} +% Prints an arrow: \arrow. +% \begin{macrocode} +\newcommand{\arrow}{\ensuremath{\rightarrow}\xspace} +% \end{macrocode} +% \descCom{f\comdiv ff} +% Print the abbreviations for \q{the following page(s)} +% (\q{f} resp. \q{ff} after a small space). +% \begin{macrocode} +\newcommand{\f}{\,f} +\newcommand{\ff}{\,ff} +% \end{macrocode} +% \descCom{distance} +% Starts a new un-indented paragraph following an empty line. +% \begin{macrocode} +\newcommand{\distance}{\par\bigskip\noindent} +% \end{macrocode} +% \descCom{stardistance} +% Starts a new un-indented paragraph following three centered stars. +% \begin{macrocode} +\newcommand{\stardistance} + {\par\bigskip{\centering *~~~*~~~*\par}\bigskip\noindent} +% \end{macrocode} +% \descCom{linedistance} +% Starts a new un-indented paragraph following an horizontal rule. +% \begin{macrocode} +\newcommand{\linedistance}{% + \begin{center} + \begin{tabular}{p{0.33\textwidth}} + \hrule + \end{tabular} + \end{center} + \medskip\noindent% +} +% \end{macrocode} +% \descCom{sig\arg{name}} +% Prints \rarg{name} as signature (flushright in italics). +% \begin{macrocode} +\newcommand{\sig}[1]{\par{\raggedleft\emph{#1}\par}} +% \end{macrocode} +% \descCom{intro\arg{text}} +% \rarg{text} is centered in an extra paragraph, using a bold font. +% Followed by some space. +% \begin{macrocode} +\newcommand{\intro}[1]{{\par\centering\textbf{#1}\par} + \medskip\noindent\ignorespaces} +% \end{macrocode} +% \descCom{hint\arg{text}} +% \rarg{text} is centered in an extra paragraph, using a large font. +% \begin{macrocode} +\newcommand{\hint}[1]{{\par\centering\LARGE #1\par} + \noindent\ignorespaces} +% \end{macrocode} +% \descCom{cen\arg{text}} +% An alternative to the |center| environment using less space before and after. +% \begin{macrocode} +\newcommand{\cen}[1] + {{\par\centering #1\par}\noindent\ignorespaces} +% \end{macrocode} +% \descCom{marginbox\arg{text}} +% A text in a box, set out into the margin. Lines are divided by |\\|. +% \begin{macrocode} +\newcommand{\marginbox}[1]% + {\par\small\addvspace{4.5ex plus 1ex}% + \vskip -\parskip +%<hcart|hcletter|hcreport> \noindent\hspace{-.75\leftmargini}% +%<hcslides> \noindent + \begin{tabular}{|l|}\hline\ignorespaces + #1 + \\\hline\end{tabular}\nobreak\par\nobreak + \vspace{2.3ex}\vskip -\parskip\noindent\ignorespaces} +% \end{macrocode} +% \descCom{rightaddress} +% Like the |\verse| environment, but moved to the right as far as possible. +% Lines are divided by |\\|. +% \begin{macrocode} +\newcommand{\rightaddress}[1]{% + \par\medskip + {\raggedleft \begin{tabular}{l}\ignorespaces + #1 + \end{tabular} + \medskip\par}\noindent\ignorespaces% +} +% \end{macrocode} +% \descCom{shorttoday} +% Prints the short form (YY/MM/DD) of the current date (|\today|). +% \begin{macrocode} +\newcounter{shortyear} +\setcounter{shortyear}{\the\year} +\addtocounter{shortyear}{-1900} +\whiledo{\theshortyear>99}{\addtocounter{shortyear}{-100}} +\newcommand{\shorttoday} + {\two@digits{\theshortyear}/\the\month/\the\day\xspace} +% \end{macrocode} +% \descEnv{dialog} +% An environment for dialogues and screenplay-like scenes. +% Use the |\newspeaker| command to make the persons you want to +% use in the dialogues. +% \begin{macrocode} +\newenvironment{dialog} + {\begin{flexlist}[\normalfont\emph{:}]{i} + \setlength{\itemsep}{0ex}} + {\end{flexlist}} +\makeatletter +% \end{macrocode} +% \descCom{newspeaker\arg{command-name}\arg{speaker's-name}} +% Produces the command \rarg{command-name} to mark the speeches of +% \rarg{speaker's-name} in a dialogue. \rarg{command-name} must begin +% with a backslash, like all commands.\\ +% Then the command \rarg{command-name} may be called in a |dialog| +% environment as follows:\\ +% |command-name\oarg{optional-explanation}\arg{speech-contribution}| +% \begin{macrocode} +\newcommand{\newspeaker}[2]{\newcommand{#1}[2][] + {\item[\normalfont\emph{#2\ifthenelse{\equal{##1}{}} + {}{ (##1)}}] ##2}} +% \end{macrocode} +% \descCom{enge\arg{English text}\arg{German text}} +% Prints \arg{English text}. With the |german| option, \rarg{German text} +% is printed instead. +% \begin{macrocode} +\newcommand{\enge}[2]{#1} +% \end{macrocode} +% Some language specific texts. +% \begin{macrocode} +\newcommand{\versiontext}{Version date:} +\newcommand{\onlinetext}{Online:} +\newcommand{\accesstext}{Access date:} +\newcommand{\cftext}{cf.} +\newcommand{\bibvoltext}{of} +\newcommand{\bvtext}{vol.} +\newcommand{\bibdir}{Director } +\newcommand{\bibmovtext}{Movie} +\newcommand{\bibactorsbefore}{With} +\newcommand{\bibactorsafter}{et~al} +\newcommand{\noyear}{n.d.} +\newcommand{\noaddress}{n.p.} +\newcommand{\otherabstractname}{Zusammenfassung} +\newcommand{\keywordsname}{Keywords} +% \end{macrocode} +% \subsubsection{The palatino option} +% \begin{macrocode} +\if@palatino + \RequirePackage{palatino} + \RequirePackage{mathpple} +\fi +% \end{macrocode} +% \subsubsection{The ding option} +% \begin{macrocode} +\if@ding + \RequirePackage{pifont} +% \end{macrocode} +% \descCom{tick} +% Prints a tick. +% \begin{macrocode} + \newcommand{\tick}{\ding{52}} +% \end{macrocode} +% \descCom{cross} +% Prints a cross. +% \begin{macrocode} + \newcommand{\cross}{\ding{56}} +% \end{macrocode} +% \descCom{checkbox} +% Prints a checkbox. +% \begin{macrocode} + \newcommand{\checkbox}{\ding{114}} +% \end{macrocode} +% \descEnv{ticklist} +% A item environment which uses a tick as label +% (e.g. for lists of do's). +% \begin{macrocode} + \newenvironment{ticklist} + {\begin{dinglist}{52}}{\end{dinglist}} +% \end{macrocode} +% \descEnv{crosslist} +% A item environment which uses a cross as label +% (e.g. for lists of don't). +% \begin{macrocode} + \newenvironment{crosslist} + {\begin{dinglist}{56}}{\end{dinglist}} +% \end{macrocode} +% \descEnv{checklist} +% A item environment which uses a checkbox as label +% (e.g. for check lists). +% \begin{macrocode} + \newenvironment{checklist} + {\begin{dinglist}{114}}{\end{dinglist}} +\fi +% \end{macrocode} +% \subsubsection{The euro option} +% \descCom{E} +% Prints the Euro symbol \E. +% \descCom{Es\arg{value}} +% Prints the Euro symbol followed by \rarg{value}. +% \begin{macrocode} +\if@euro + \RequirePackage[right,notextcomp]{eurofont} + \newcommand{\E}{\textsf{\makefakelighteuro}\xspace} + \newcommand{\Es}[1]{\E\nobreak\,#1} +\fi +% \end{macrocode} +% \subsubsection{The fancyref option} +% Loads the |fancyref| package which provides the command +% |\fref|\arg{prefix:labelname}. This prints not only the number, but also +% the type of a reference. The following prefixes (types) are recognized: +% |chap| (Chapter), +% |sec| (Section), +% |eq| (Equation), +% |fig| (Figure), +% |tab| (Table), +% |enum| (Enumeration), +% |fn| (Footnote). +% At the beginning of a sentence use |\Fref| instead, which gives upper-case +% output (in German documents there is no difference). +% \begin{macrocode} +\if@fancyref + \RequirePackage{fancyref} +\fi +% \end{macrocode} +% \descCom{see\arg{reference}} +% Prints \q{see \rarg{reference}} in a footnote, using the |\fref| command +% to print \rarg{reference}. +% \begin{macrocode} +\newcommand{\seetext}{see} +\newcommand{\see}[1]{\footnote{\seetext\ \fref{#1}}} +% \end{macrocode} +% \subsubsection{The html option} +% \descCom{htlink\arg{linked text}\arg{url}} +% Prints \rarg{linked text} followed by the \rarg{url}. With the |paper| +% option, a footnote is used. In the HTML version +% \rarg{linked text} becomes an active link to \rarg{url}. +% \descCom{hturl\arg{url}} +% Prints \rarg{url} nice and makes it an active link in the +% HTML version. +% \descCom{htmail\arg{mail-adress}} +% Prints \rarg{mail-adress} nice and makes it an active email link in the +% HTML version. +% \begin{macrocode} +\if@html +%</class> +%<*hcletter> + \newcounter{part} + \newcounter{section} + \newcounter{subsection} + \newcounter{subsubsection} + \newcounter{paragraph} + \newcommand{\part}{} + \newcommand{\section}{} + \newcommand{\subsection}{} + \newcommand{\subsubsection}{} + \newcommand{\paragraph}{} + \newcommand{\subparagraph}{} + \RequirePackage{html} + \newcommand{\htlink}[2] + {{\htmladdnormallink{#1 \texttt{<#2>}}{#2}}} +%</hcletter> +%<*hcart|hcreport|hcslides> + \RequirePackage{html} + \if@paper + \newcommand{\htlink}[2] + {\htmladdnormallink{#1}{#2}% + \footnote{\htmladdnormallink{\texttt{#2}}{#2}}} + \else + \newcommand{\htlink}[2] + {{\htmladdnormallink{#1 \texttt{<#2>}}{#2}}} + \fi +%</hcart|hcreport|hcslides> +%<*class> + \newcommand{\hturl}[1] + {{\htmladdnormallink{\texttt{#1}}{#1}}} + \newcommand{\htmail}[1] + {{\htmladdnormallink{\texttt{#1}}{mailto:#1}}} +\fi +%</class> +% \end{macrocode} +% \subsection{Commands and Environments for the hcart and hcreport classes} +% The default depth of section numbering and table of contents is three. +% |headings| is the default page style. The page number is printed in the +% header line, the footer line is empty. +% \begin{macrocode} +%<*hcart|hcreport> +\setcounter{secnumdepth}{3} +\setcounter{tocdepth}{3} +\RequirePackage[breakwords]{truncate} +\newlength{\rightmarklength} +\def\ps@headings{\let\@mkboth\markboth + \def\@evenhead{\vbox{\hsize=\textwidth + \hb@xt@ \textwidth{% + {\pnumfont\thepage\hfil\headfont\truncate{0.92\textwidth}% + {\raggedleft\strut\leftmark}}}% + \if@hsl \vskip 1.5\p@ \hrule \fi}} + \def\@oddhead{\settowidth{\rightmarklength}{\rightmark}% + \vbox{\hsize=\textwidth + \hb@xt@ \textwidth{{\headfont\truncate{0.92\textwidth}% + {\strut\ifthenelse{\lengthtest{\rightmarklength=0em}}% + {\leftmark{}}{\rightmark{}}% + \hfil}\hfil\pnumfont\thepage}}% + \if@hsl \vskip 1.5\p@ \hrule \fi}} + \def\@evenfoot{\vbox{\hsize=\textwidth + \if@fsl \hrule \vskip 3\p@ \fi + \hb@xt@ \textwidth{{\pnumfont\hfil}}}}% + \def\@oddfoot{\vbox{\hsize=\textwidth + \if@fsl \hrule \vskip 3\p@ \fi + \hb@xt@ \textwidth{{\pnumfont\hfil}}}}% +%<hcreport> \def\chaptermark##1{% +%<hcreport> \markboth {\ifnum \c@secnumdepth >\m@ne +%<hcreport> \chaptermarkformat\fi +%<hcreport> ##1}{}}% +%<hcreport> \def\sectionmark##1{% +%<hcreport> \markright {\ifnum \c@secnumdepth >\z@ +%<hcreport> \sectionmarkformat\fi +%<hcreport> ##1}}} +%<hcart> \def\sectionmark##1{% +%<hcart> \markboth {\ifnum \c@secnumdepth >\z@% +%<hcart> \sectionmarkformat\fi ##1}{}} +%<hcart> \def\subsectionmark##1{% +%<hcart> \markright {\ifnum \c@secnumdepth >\@ne% +%<hcart> \subsectionmarkformat\fi ##1}}} +\pagestyle{headings} +% \end{macrocode} +% \subsubsection{The hcarea option} +% \begin{macrocode} +\if@hcarea + \RequirePackage{typearea} + \areaset[15mm]{150mm}{240mm} +\fi +% \end{macrocode} +% \subsubsection{The hcfootnotes option} +% \begin{macrocode} +\if@hcfootnotes + \deffootnote{1em}{0.5em} + {\textsuperscript{\normalfont\thefootnotemark}\,} +\fi +% \end{macrocode} +% \subsubsection{The magazine option} +% \descCom{articletitle\arg{title}} +% Prints the article \rarg{title}. +% \descCom{subjecttitle\arg{subject}\arg{title}} +% Prints before the article \rarg{title} the \rarg{subject} in a smaller font. +% \descCom{titlesubject\arg{title}\arg{subject}} +% Prints after the article \rarg{title} the \rarg{subject} in a smaller font. +% \descCom{articlesection\arg{heading}} +% Prints a heading within an article (actually, a |\subsection*|). +% \descEnv[\oarg{signature}\arg{title}]{art} +% A magazine article set in two columns with a \rarg{title} (using +% |\articletitle|) and an optional \rarg{signature} (using |\sig|). +% Requires the |multicol| package. +% \descEnv[\oarg{signature}\arg{subject}\arg{title}]{artsubtit} +% Like the |art| environment, but uses |\subjecttitle| instead of +% |\articletitle|. +% \descEnv[\oarg{signature}\arg{title}\arg{subject}]{arttitsub} +% Like the |art| environment, but uses |\titlesubject| instead of +% |\articletitle|. +% \begin{macrocode} +\if@magazine + \RequirePackage{multicol} + \newcommand{\articletitle}[1] + {\addsec[#1]{\LARGE #1}} + \newcommand{\subjecttitle}[2] + {\addsec[#2]{{\large #1}\\{\LARGE #2}}} + \newcommand{\titlesubject}[2] + {\addsec[#1]{{\LARGE #1}\\{\large #2}}} + \newcommand{\articlesection}[1]{\subsection*{#1}} + \newcommand{\currentsig}{} + \newenvironment{@art}[2][]{% + \begin{multicols}{2}[#2] + \renewcommand{\currentsig}{#1}% + }{% + \ifthenelse{\equal{\currentsig}{}} + {} + {\sig{\currentsig}} + \end{multicols}% + } + \newenvironment{art}[2][] + {\begin{@art}[#1]{\articletitle{#2}}}{\end{@art}} + \newenvironment{artsubtit}[3][] + {\begin{@art}[#1]{\subjecttitle{#2}{#3}}}{\end{@art}} + \newenvironment{arttitsub}[3][] + {\begin{@art}[#1]{\titlesubject{#2}{#3}}}{\end{@art}} +\fi +% \end{macrocode} +% \subsubsection{The parskip option} +% \begin{macrocode} +\if@parskip + \setlength\parskip{\medskipamount} + \setlength\parindent{0pt} +\fi +% \end{macrocode} +% \subsubsection{The wide option} +% \begin{macrocode} +\if@wide + \linespread{1.3} +\fi +%</hcart|hcreport> +% \end{macrocode} +% \subsection{Commands and Environments for the hcart, hcreport and +% hcslides classes} +% \subsubsection{The bib option} +% With the |fnbib| option (default), the |\cite| and |\citet| and |\cite| +% commands all work the same. +% +% With the |autbib| option, |\cite| always works like |\citep|, +% i.\,e. puts the citation in brackets. +% Use |\citet| if you do not want this. +% +% Commands like |\cite| should always be used \emph{without} a space between +% them and the preceeding text. +% \begin{macrocode} +%<class>\newcommand{\bibliostyle}{hc-en} +%<*hcart|hcreport|hcslides> +\if@bib +\if@fnbib + \bibpunct[, ]{}{}{;}{a}{}{,} + \renewcommand\NAT@cite% + [3]{\footnote{\ifNAT@swa\NAT@@open\if*#2*\else#2\ \fi + #1\if*#3*\else\NAT@cmt#3\fi\NAT@@close\else#1\fi}\endgroup} + \let\@cite\NAT@cite +\fi +\if@autbib + \bibpunct[, ]{ [}{]}{;}{a}{}{,} + \let\cite\citep +\fi +\if@numbib + \bibpunct[, ]{ [}{]}{;}{n}{}{,} +\fi +% \end{macrocode} +% \descCom{cfcite\oarg{pages}\arg{source}} +% Shortcut for |\cite|\oarg{\cftext}\oarg{pages}\arg{source}. +% \begin{macrocode} +\newcommand{\cfcite}[2][]{\cite[\cftext][#1]{#2}} +% \end{macrocode} +% \descCom{biblio\oarg{style}\arg{bib files}} +% Writes the bibliography. \rarg{bib files} is a comma-separated list +% of bib files, \rarg{style} the \BibTeX\ style file (by default +% |hc-en| for English documents). +% \begin{macrocode} +%<hcart|hcslides>\if@paper +%<hcart|hcslides> \newcommand{\beforebiblio}{\newpage} +%<hcart|hcslides>\else +%<hcart|hcslides> \newcommand{\beforebiblio}{\vfill} +%<hcart|hcslides>\fi +\newcommand{\biblio}[2][\bibliostyle]{% +%<hcart|hcslides> \beforebiblio + \bibliographystyle{#1} + \bibliography{#2}% +} +% \end{macrocode} +% \descCom{qu\oarg{pages}\arg{source}\arg{quotation}} +% A \rarg{quotation} in quotes followed by the reference {[}\rarg{source}, +% \rarg{pages}{]}. +% \begin{macrocode} +\newcommand{\qu}[3][]{\q{#3}\cite[#1]{#2}} +% \end{macrocode} +% \descCom{qul\oarg{pages}\arg{source}\arg{quotation}} +% Like |\qu| but inside a |quote| environment (for longer quotions). +% \begin{macrocode} +\newcommand{\qul}[3][]{\begin{quote} + \qu[#1]{#2}{#3} + \end{quote}} +% \end{macrocode} +% \descCom{biburl\arg{url}\arg{access date}} +% \rarg{url} and \rarg{access date} of online documents. +% For online-only documents use a \textsc{manual} entry with |\biburl| +% in the \textsc{organization} field. +% For other documents put it in the \textsc{note} field. +% \begin{macrocode} + \if@htmlbib + \newcommand{\biburl}[2]{\onlinetext\\ + {\small\hturl{#1}}\\\accesstext\ #2} + \else + \newcommand{\biburl}[2]{\onlinetext\\ + {\small\texttt{#1}}\\\accesstext\ #2} + \fi +% \end{macrocode} +% \descCom{bibdiv} +% Separator between the title and subtitle of a document. +% \begin{macrocode} + \newcommand{\bibdiv}{. } +% \end{macrocode} +% \descCom{bibvol\oarg{separating word}\arg{volume number}\arg{serial title}} +% Use at the end of the \textsc{title} field (without space before) +% if the output of the \textsc{volume} and \textsc{series} fields +% is not convincing. Interesting +% especially for German documents where \q{der} instead of \q{von} +% is used as \rarg{separating word} (English: \q{of}). +% \begin{macrocode} + \newcommand{\bibvol}[3][\bibvoltext] + {\emph{, \bvtext~#2 #1} #3} +% \end{macrocode} +% \descCom{addrdiv} +% Separator between different places in a \BibTeX\ entry's +% \textsc{address} field. +% \begin{macrocode} + \newcommand{\addrdiv}{ -- } +% \end{macrocode} +% \descCom{etal\oarg{year}} +% Ends a list (e.\,g. of places in a \BibTeX\ entry's \textsc{address} field) +% which is not complete \mbox{(\q{\etal})}. A \rarg{year} can be given which +% is printed afterwards. +% \begin{macrocode} +\newcommand{\etal}[1][]{ et~al% + \ifthenelse{\equal{#1}{}}{}{. #1}% +} +% \end{macrocode} +% \descCom{noyear\comdiv noaddress} +% Use in the \textsc{year} resp. \textsc{address} field of a \BibTeX\ entry +% when no year resp. address is known. +% \minisec{The following commands are for movie databases +% (use \textsc{manual} entry):} +% \descCom{bibdir} +% Give the director in the \textsc{author} field in the following way:\\ +% |Surname, \bibdir, Christian Name| +% \descCom{bibmov\arg{country}\arg{studio}\arg{main actors}} +% Put in the \textsc{organization} field. +% \begin{macrocode} + \newcommand{\bibmov}[3]{\bibmovtext\bibdiv\ #2, #1\bibdiv\ + \bibactorsbefore\ #3 \bibactorsafter} +\fi +% \end{macrocode} +% \subsubsection{The pdf option} +% \begin{macrocode} +\newcommand{\hypertitle}{} +\newcommand{\hyperauthor}{} +\newcommand{\hyperabstract}{} +\newcommand{\hyperkeywords}{} +\if@pdf + \AtEndOfClass{\RequirePackage[hyperindex,colorlinks=true, + pdftex,latex2html,extension=pdf]{hyperref}} + \AtBeginDocument{% + \let\oldautdiv\autdiv + \renewcommand{\autdiv}{, } + \ifthenelse{\equal{\hypertitle}{}} + {\renewcommand{\hypertitle}{\currenttitle}}{} + \ifthenelse{\equal{\hyperauthor}{}} + {\renewcommand{\hyperauthor}{\currentauthor}}{} + \ifthenelse{\equal{\hyperabstract}{}} + {\renewcommand{\hyperabstract}{\abstext}}{} + \ifthenelse{\equal{\hyperkeywords}{}} + {\renewcommand{\hyperkeywords}{\keywordstext}}{} + \pdfinfo{ + /Title (\hypertitle) + /Author (\hyperauthor) + /Subject (\hyperabstract) + /Keywords (\hyperkeywords) + } + \let\autdiv\oldautdiv + } +\fi +%</hcart|hcreport|hcslides> +% \end{macrocode} +% \subsubsection{Title commands} +% \descCom{toc} +% Puts the table of contents at the end of the current page (i.e. after +% a vertical fill and before a pagebreak). +% With the |paper| option the table of contents is generated automatically, +% so |\toc| does nothing at all. +% \begin{macrocode} +%<*hcart|hcslides> +\if@paper + \newcommand{\@toc}{% + \newpage +%<hcart> \thispagestyle{empty} +%<hcslides> \slidepagestyle{HC} +%<hcart> \if@wide \linespread{1} \fi + \tableofcontents +%<hcart> \if@wide \linespread{1.3} \fi + \newpage% + } + \newcommand{\toc}{} +\else + \newcommand{\@toc}{% + \vfill +%<hcart> \thispagestyle{empty} +%<hcslides> \slidepagestyle{HC} +%<hcart> \if@wide \linespread{1} \fi + \tableofcontents +%<hcart> \if@wide \linespread{1.3} \fi + \newpage% + } + \newcommand{\toc}{\@toc} +\fi +%</hcart|hcslides> +%<*hcreport> +\newcommand{\@toc}{ + \if@wide \linespread{1} \fi + \tableofcontents + \if@wide \linespread{1.3} \fi + \thispagestyle{empty} +} +\if@paper + \newcommand{\toc}{} +\else + \newcommand{\toc}{\@toc} +\fi +%</hcreport> +% \end{macrocode} +% \descCom{titsubinfo\arg{main title}\arg{sub title}\arg{more info}\comdiv +% titsub\arg{main title}\arg{sub title}\comdiv +% titinfo\arg{main title}\arg{more info} +% } +% They should be used in the premable -- +% call |\tit[ver]| or |\titaut[ver]| in the document body. +% Use if your document has a main title and a sub title and/or you want to +% give additional information. Leave +% the \rarg{title} parameter of |\tit|\texttt{\qdots} empty. +% \rarg{more info} is printed below the \rarg{(sub) title} +% in a small font. +% \begin{macrocode} +%<*hcart|hcreport|hcslides> +\if@paper + \newcommand{\titsubinfo}[3]{ + \renewcommand{\defaulttitle}{% + #1\vfill + {\Large #2\vfill} + \vfill {\normalsize #3\vfill}% + } + \renewcommand{\currenttitle}{#1}% + } + \newcommand{\titsub}[2]{ + \renewcommand{\defaulttitle}{% + #1\vfill + {\Large #2\vfill\vfill}% + } + \renewcommand{\currenttitle}{#1}% + } + \newcommand{\titinfo}[2]{ + \renewcommand{\defaulttitle}{% + #1\vfill + \vfill {\normalsize #2\vfill}% + } + \renewcommand{\currenttitle}{#1}% + } +\else + \newcommand{\titsubinfo}[3]{ + \renewcommand{\defaulttitle}{#1\\[0.8ex] + {\Large #2\\[0.8ex]} + {\normalsize #3\\}% + } + \renewcommand{\currenttitle}{#1}% + } + \newcommand{\titsub}[2]{ + \renewcommand{\defaulttitle}{#1\\[0.8ex] + {\Large #2\\[0.8ex]}% + } + \renewcommand{\currenttitle}{#1}% + } + \newcommand{\titinfo}[2]{ + \renewcommand{\defaulttitle}{#1\\[0.8ex] + {\normalsize #2\\}% + } + \renewcommand{\currenttitle}{#1}% + } +\fi +% \end{macrocode} +% \descCom{autinfo\arg{author}\arg{address}\arg{email}\arg{homepage}} +% Should be used in the premable -- +% call |\tit|, |\titaut| or |\titautver| in the document body. +% Specifies information about the author (name, address, mail-address and +% homepage). Use |\autdiv| resp. |\autinfodiv| instead of |\\|. +% \begin{macrocode} +\newcommand{\autinfo}[4]{% + \renewcommand{\defaultauthor}{#1} + \renewcommand{\defaultaddress}{#2} + \renewcommand{\defaultemail}{#3} + \renewcommand{\defaulthomepage}{#4} + \renewcommand{\currentauthor}{#1} +} +% \end{macrocode} +% \descCom{abs\oarg{other-language abstract}\arg{abstract}} +% Should be used in the premable -- +% call |\tit|, |\titaut| or |\titautver| in the document body. +% Prints an abstract text. Optionally an additional abstract in another +% language is printed below. The title of the other-language abstract +% may be changed by redefining |\otherabstractname|. By default +% \q{\otherabstractname} is used (German). +% \begin{macrocode} +\newcommand{\abstext}{} +\newcommand{\otherabstext}{} +\newcommand{\abs}[2][]{% + \renewcommand{\otherabstext}{#1} + \renewcommand{\abstext}{#2} +} +% \end{macrocode} +% \descCom{keywords\arg{keywords}} +% Should be used in the premable -- +% call |\tit|, |\titaut| or |\titautver| in the document body. +% Prints a list of keywords. +% \begin{macrocode} +\newcommand{\keywordstext}{} +\newcommand{\keywords}[1]{% + \renewcommand{\keywordstext}{#1} +} +% \end{macrocode} +% \descCom{hyperinfo\arg{title}\arg{author}\arg{abstract}\arg{keywords}} +% An alternative way to specify document information for the PDF version. +% Use when the default document information extracted from +% |\tit[sub][info]|, |\autinfo|, +% |\abs| and |\keywords| does not work as it should. +% If one of the parameters is left empty the default information +% is used instead. +% Do not use any formatting or special commands. +% Must be used in the premable. Without the |pdf| option this command +% is ignored. +% \begin{macrocode} +\if@pdf + \newcommand{\hyperinfo}[4]{ + \renewcommand{\hypertitle}{#1} + \renewcommand{\hyperauthor}{#2} + \renewcommand{\hyperabstract}{#3} + \renewcommand{\hyperkeywords}{#4} + } +\else + \newcommand{\hyperinfo}[4]{} +\fi +% \end{macrocode} +% \descCom{titaut\oarg{date}\arg{title}\arg{author}} +% Replacement for: +% |\title|\arg{title} +% |\author|\arg{author} +% |\date|\arg{date} +% |\maketitle|\\ +% Default date is |\today|. With the |paper| option, a titlepage and +% a table of contents are generated. +% \begin{macrocode} +\if@paper + \newcommand{\titaut}[3][\today]{% +%<hcart|hcreport> \if@wide \linespread{1} \fi +%<hcslides> \slidepagestyle{empty}\setcounter{slide}{0} + \ifthenelse{\equal{#2}{}} + {} + {\renewcommand{\defaulttitle}{#2} + \renewcommand{\currenttitle}{#2}} + \title{\normalfont\huge \defaulttitle \vfill} + \ifthenelse{\equal{#3}{}} + {} + {\renewcommand{\defaultauthor}{#3} + \renewcommand{\currentauthor}{#3}} + \author{\normalfont\Large \defaultauthor\\[0.8ex] + \normalfont\normalsize \defaultaddress\\[0.4ex] + \normalfont\normalsize + \htmladdnormallink{\defaultemail}{mailto:\defaultemail}\\[-1ex] + \normalfont\normalsize + \htmladdnormallink{\defaulthomepage}{\defaulthomepage} +} + \date{\vfill\vfill \normalfont\normalsize #1} +%<hcreport> \lowertitleback{% +%<hcreport> \ifthenelse{\equal{\otherabstext}{}}{}% +%<hcreport> {\minisec{\centering\abstractname} +%<hcreport> \abstext}% +%<hcreport> \ifthenelse{\equal{\otherabstext}{}}{}% +%<hcreport> {\minisec{\centering\otherabstractname} +%<hcreport> \otherabstext}% +%<hcreport> \ifthenelse{\equal{\keywordstext}{}}{}% +%<hcreport> {\minisec{\centering\keywordsname} +%<hcreport> \cen{\keywordstext}}% +%<hcreport> } + \maketitle + \ifthenelse{\isundefined{\currentdate}} + {\newcommand{\currentdate}{#1}}{} +%<hcart|hcslides> \setcounter{page}{0} +%<hcart|hcslides> \thispagestyle{empty} +%<hcart|hcslides> \ifthenelse{\equal{\abstext}{}}{% +%<hcart|hcslides> \ifthenelse{\equal{\keywordstext}{}}{}{ +%<hcart|hcslides> \vfill\vfill +%<hcart|hcslides> \minisec{\centering\keywordsname} +%<hcart|hcslides> \cen{\keywordstext}} +%<hcart|hcslides> }{% +%<hcart|hcslides> \vfill\vfill +%<hcart|hcslides> \minisec{\centering\abstractname} +%<hcart|hcslides> \abstext +%<hcart|hcslides> \ifthenelse{\equal{\otherabstext}{}}{} +%<hcart|hcslides> {\minisec{\centering\otherabstractname} +%<hcart|hcslides> \otherabstext} +%<hcart|hcslides> \ifthenelse{\equal{\keywordstext}{}}{} +%<hcart|hcslides> {\minisec{\centering\keywordsname} +%<hcart|hcslides> \cen{\keywordstext}} +%<hcart|hcslides> } + \setcounter{page}{0} + \thispagestyle{empty} + \@toc% +%<hcart|hcreport> \if@wide \linespread{1.3} \fi +%<hcslides> \slidepagestyle{HC}% + } +\else + \newcommand{\titaut}[3][\today]{% +%<hcart|hcreport> \if@wide \linespread{1} \fi +%<hcslides> \slidepagestyle{empty}\setcounter{slide}{0} + \ifthenelse{\equal{#2}{}} + {} + {\renewcommand{\defaulttitle}{#2} + \renewcommand{\currenttitle}{#2}} + \title{\normalfont\huge \defaulttitle} + \ifthenelse{\equal{#3}{}} + {} + {\renewcommand{\defaultauthor}{#3} + \renewcommand{\currentauthor}{#3}} + \author{\normalfont\Large \defaultauthor} + \date{\normalfont\normalsize #1} +%<hcreport> \lowertitleback{% +%<hcreport> \ifthenelse{\equal{\otherabstext}{}}{}% +%<hcreport> {\minisec{\centering\abstractname} +%<hcreport> \abstext}% +%<hcreport> \ifthenelse{\equal{\otherabstext}{}}{}% +%<hcreport> {\minisec{\centering\otherabstractname} +%<hcreport> \otherabstext}% +%<hcreport> \ifthenelse{\equal{\keywordstext}{}}{}% +%<hcreport> {\minisec{\centering\keywordsname} +%<hcreport> \cen{\keywordstext}}% +%<hcreport> } + \maketitle + \ifthenelse{\isundefined{\currentdate}} + {\newcommand{\currentdate}{#1}}{} +%<hcart|hcslides> \setcounter{page}{0} +%<hcart|hcslides> \thispagestyle{empty} +%<hcart|hcslides> \ifthenelse{\equal{\abstext}{}}{}{ +%<hcart|hcslides> \minisec{\centering\abstractname} +%<hcart|hcslides> \abstext +%<hcart|hcslides> \ifthenelse{\equal{\otherabstext}{}}{} +%<hcart|hcslides> {\minisec{\centering\otherabstractname} +%<hcart|hcslides> \otherabstext} +%<hcart|hcslides> } +%<hcart|hcslides> \ifthenelse{\equal{\keywordstext}{}}{} +%<hcart|hcslides> {\minisec{\centering\keywordsname} +%<hcart|hcslides> \cen{\keywordstext}} + \setcounter{page}{0} + \thispagestyle{empty}% +%<hcart|hcreport> \if@wide \linespread{1.3} \fi +%<hcslides> \newpage\slidepagestyle{HC}% + } +\fi +% \end{macrocode} +% \descCom{tit\oarg{date}\arg{title}} +% Calls |\titaut| with the default author information. +% \begin{macrocode} +\newcommand{\tit}[2][\today]{\titaut[#1]{#2}{}} +% \end{macrocode} +% \descCom{titautver\oarg{version +% date}\arg{title}\arg{author}\arg{general date}} +% Prints a general date (e.g. of first release) and a version date +% (default: |\today|). +% \begin{macrocode} +\newcommand{\titautver}[4][\today]{ + \newcommand{\currentdate}{#1}% + \titaut[#4\\\versiontext\ #1]{#2}{#3} +} +% \end{macrocode} +% \descCom{titver\oarg{version date}\arg{title}\arg{general date}} +% Calls |\titautver| with the default author information. +% \begin{macrocode} +\newcommand{\titver}[3][\today]{\titautver[#1]{#2}{}{#3}} +% \end{macrocode} +% \subsubsection{Sectioning Commands} +% \descCom{fictionsec} +% A sectioning command producing just a number, no text -- useful e.g. +% for fiction without section headings. +% When a new |\section| starts the counter is reset. +% \begin{macrocode} +\newcounter{fictionsec}[section] +\newcommand{\fictionsec}{\addtocounter{fictionsec}{1}% + \subsection*{\centering\thefictionsec}} +%</hcart|hcreport|hcslides> +% \end{macrocode} +% \subsection{Commands and Environments for the hcart class} +% A |\part| command starts a new page. +% \begin{macrocode} +%<*hcart> +\renewcommand\part{\clearpage + \@afterindentfalse + \secdef\@part\@spart} +%</hcart> +% \end{macrocode} +% \subsection{Settings for the hcletter class} +% No fold marks are printed. +% \begin{macrocode} +%<*hcletter> +\foldmarksoff +%</hcletter> +% \end{macrocode} +% \subsection{Commands and Environments for the hcreport class} +% The first page of a chapter and the title page of a part do not +% have a page number. +% \begin{macrocode} +%<*hcreport> +\renewcommand\chapter + {\if@openright\cleardoublepage\else\clearpage\fi + \thispagestyle{empty}% + \global\@topnum\z@ + \@afterindentfalse + \secdef\@chapter\@schapter} +\renewcommand\addchap + {\if@openright\cleardoublepage\else\clearpage\fi + \thispagestyle{empty}% + \global\@topnum\z@ + \@afterindentfalse + \secdef\@addchap\@saddchap} +\renewcommand\part + {\if@openright\cleardoublepage\else\clearpage\fi + \thispagestyle{empty}% + \if@twocolumn + \onecolumn + \@tempswatrue + \else + \@tempswafalse + \fi + \null\vfil + \secdef\@part\@spart} +%</hcreport> +% \end{macrocode} +% \subsection{Commands and Environments for the hcslides class} +% A new page is started by a section or manually with the |\newslide| +% command. +% +% Everything is printed sans serif. +% The |HC| pagestyle is always used. +% The |fancybox| package is required for drawing an shadowed box around +% sections. +% \descCom{addsec\oarg{toc-entry}\arg{heading}} +% For compatibily with the |hcart| and |hcreport| classes. +% Should always be used instead of the |\section*| command. +% \descCom{minisec\arg{heading}} +% For compatibily with the |hcart| and |hcreport| classes. +% Sectioning level between |\subsubsection| and |\paragraph|. +% \begin{macrocode} +%<*hcslides> +\AtBeginDocument{\begin{slide}} +\AtEndDocument{\end{slide}} +\renewcommand{\rmdefault}{\sfdefault} +\raggedslides[5em] +\newcommand{\addsec}[2][]{% + \section*{#2} + \ifthenelse{\equal{#1}{}} + {\addcontentsline{toc}{section}{#2}} + {\addcontentsline{toc}{section}{#1}}% +} +\newcommand\minisec[1]{\@afterindentfalse \vskip 1.5ex + {\parindent \z@ \raggedright\sffamily\bfseries #1\par\nobreak}% + \@afterheading} +\setlength{\slideheight}{0.74\paperwidth} +\setlength{\slidewidth}{0.84\paperheight} +\renewcommand{\slidetopmargin}{0.12\paperwidth} +\renewcommand{\slidebottommargin}{0.12\paperwidth} +\renewcommand{\slideleftmargin}{0.08\paperheight} +\renewcommand{\sliderightmargin}{0.08\paperheight} +\slideframe{none} +\AtBeginDocument{ + \ifthenelse{\equal{\defaultemail}{}} + {\newcommand{\@email}{}} + {\newcommand{\@email} + { \texttt{<}\htmail{\defaultemail}\texttt{>}}} + \newpagestyle{HC}% + {\parbox[b]{\textwidth}% + {\currenttitle\hfill\currentdate\\[-.6ex]% + \rule{\textwidth}{0.6pt}}} + {\parbox[t]{\textwidth}{\rule{\textwidth}{0.6pt}\\[.6ex]% + \renewcommand{\autdiv}{, }% + \currentauthor\@email\hfill\thepage}} + \pagestyle{HC} +} +\RequirePackage{fancybox} +\setcounter{tocdepth}{3} +\renewcommand\section{\@startsection {section}{1}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\newslide\normalfont\Large\bfseries\shadowbox}} +\renewcommand\part{\clearpage + \if@twocolumn + \onecolumn + \@tempswatrue + \else + \@tempswafalse + \fi + \secdef\@part\@spart} +% \end{macrocode} +% \subsubsection{The twotoc option} +% \begin{macrocode} +\if@twotoc + \RequirePackage{multicol} + \renewcommand*\tableofcontents{% + \newlength{\old@columnseprule} + \setlength{\old@columnseprule}{\columnseprule} + \setlength{\columnseprule}{0.4pt} + \begin{multicols}{2}[\section*{\contentsname}] + \@starttoc{toc}% + \end{multicols} + \setlength{\columnseprule}{\old@columnseprule} + } +\fi +%</hcslides> +% \end{macrocode} +% \section{German Language Definitions} +% The |babel| package is loaded with the new German orthograpy (option +% |ngerman|: this requires a rather new version of |babel|). The commands +% |\q|, |\hq|, |\dash|, |\Es| and |\shorttoday| +% are adapted to the German typography. The |\enge| command is redefined. +% The German \BibTeX\ style |hc-de| is used by default. +% The language specific texts are redefined. The German redefinitions of the +% |varioref| package do not seem to work, so the are repeated. +% \begin{macrocode} +%<*german> +\addto{\captionsngerman}{% + \renewcommand{\nextstartq}{\guillemotright} + \renewcommand{\nextendq}{\guillemotleft} + \renewcommand{\otherstartq}{\guilsinglright} + \renewcommand{\otherendq}{\guilsinglleft} + \renewcommand{\hq}[1]{\guilsinglright{}#1\guilsinglleft{}} + \renewcommand{\fq}[1]{\guillemotright{}#1\guillemotleft{}} + \renewcommand{\dash}[1]{--~#1~--} + \renewcommand{\shorttoday} + {\the\day.\the\month.\two@digits{\theshortyear}\xspace} + \renewcommand{\enge}[2]{#2} + \renewcommand{\bibliostyle}{hc-de} + \renewcommand{\contentsname}{Inhalt} + \renewcommand{\versiontext}{Version vom} + \renewcommand{\accesstext}{Zugriff am} + \renewcommand{\cftext}{vgl.} + \renewcommand{\bibvoltext}{der} + \renewcommand{\bvtext}{Bd.} + \renewcommand{\bibdir}{Regie } + \renewcommand{\bibmovtext}{Spielfilm} + \renewcommand{\bibactorsbefore}{Mit} + \renewcommand{\bibactorsafter}{u.a} + \renewcommand{\noyear}{o.J.} + \renewcommand{\noaddress}{o.O.} + \renewcommand{\otherabstractname}{Abstract} + \renewcommand{\keywordsname}{Schl\"usselw\"orter} + \renewcommand{\seetext}{siehe} +} +\if@euro + \addto{\captionsngerman}{% + \renewcommand{\Es}[1]{#1\nobreak\,\E} + } +\fi +\if@fancyref + \def\reftextfaceafter {auf der n\"achsten Seite}% + \def\reftextfacebefore{auf der vorherigen Seite}% + \let\reftextafter \reftextfaceafter + \let\reftextbefore \reftextfacebefore + \def\reftextcurrent {auf dieser Seite}% + \def\reftextfaraway#1{auf Seite~\pageref{#1}}% + \def\reftextpagerange#1#2{auf + Seiten~\pageref{#1}--\pageref{#2}}% + \def\reftextlabelrange#1#2{\ref{#1} bis~\ref{#2}}% +\fi +%</german> +% \end{macrocode} +% +% \StopEventually +% \Finale +% +\endinput +% +% End of File `hc.dtx' |