summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/misc/abstbook.cls
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/misc/abstbook.cls')
-rw-r--r--macros/latex/contrib/misc/abstbook.cls266
1 files changed, 266 insertions, 0 deletions
diff --git a/macros/latex/contrib/misc/abstbook.cls b/macros/latex/contrib/misc/abstbook.cls
new file mode 100644
index 0000000000..ff699c941c
--- /dev/null
+++ b/macros/latex/contrib/misc/abstbook.cls
@@ -0,0 +1,266 @@
+%
+% This is second version of the class. It redefines Chapters
+% sections and subsections, in order to use the minitoc style!
+%
+%
+% DESCRIPTION:
+%
+% -``Quick and dirty'' class file for ``book of abstracts''
+% (used for IWEPNM - Kirchberg 1997)
+%
+% - It's getting less Quick and dirty, but it's far from beeing
+% what i want, should be much more flexible for that.
+%
+% -Written by Havlik Denis (havlik@pap.univie.ac.at) 02/1997.
+% -Based on the report class.
+%
+% This .cls file has been written for the conference in Kirchberg.
+% It has been designed to produce a4-size pages,
+% which are later converted into a5. Output is double-sided.
+%
+% Abstracts are suposed to be in separate files, with simple
+% formating (title, name, adress, text).
+%
+% As i have a feeling that many conferences need something
+% like this booklet, i will try to document this file as good as
+% i can. In the case anybody is interesting to use this class,
+% but neads more flexibility or new features, i would be pleased
+% to help. This is a first time ever that i write a Latex class,
+% but i'm learning.
+%
+% Features:
+% -Conferences consist of days and sessions.
+% -In every day there can be one or more sessions, in every
+% session there can be several abstracts. Abstracts appear
+% two on a page, with short name of the session, the number
+% of the abstract and an additional entry WRITTEN ON THE MARGIN.
+% -In the headings, day appears on the even, and session on the odd
+% pages.
+% -For every day, a table of abstracts is printed
+% -names of the authors are automatically added to index of authors
+% (don't forget to run the ``makeindex''!!!)
+%
+% I would like to thank the ``\"Osterreichischen Fonds zur F\"orderung
+% der wissenschaftlichen Forschung'' for financing my work
+% under project Nr. +P10924-PHY. Furthermore, a Linux, and \TeX/\LaTeX
+% comunity, for providing wonderfull free software, that i use for all my
+% work. Special thanks to Jean-Pierre Drucbert
+% Havlik Denis
+%
+% TODO:
+% 1. redefine \titl, \name and \adr, so i can get automatic:
+% indexing of authors and automatic referencing of authors to adress
+% 2. automatic resizing of abstracts to fit other page-sizes,
+% (not only a4) and other margines etc.
+% 3. add formatting stuff like:
+% \newcommand{\titlstyle}{\bf \Large \MakeUppercase}
+% with some logical names and use it consequently for all the macros
+% in the whole class
+% 4. ?%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{abstbook}[1997/02/10 for typseting book of abstracts]
+\DeclareOption{twocolumn}{\OptionNotUsed} % makes no sense to use it...
+% All other options go to ``report'' class.
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}}
+\ProcessOptions
+\LoadClass[a4,twoside]{report}
+\RequirePackage{makeidx} % neaded to make index
+\RequirePackage{graphicx} % neaded to input graphics into booklet.
+%\RequirePackage{minitoc}
+% page - size related stuff. Looks good on my printer...
+\setlength{\unitlength}{1cm}
+%\setlength{\topmargin}{1.5cm}
+\setlength{\hoffset}{-0.8in}
+%\setlength{\voffset}{-1in}
+\setlength{\textwidth}{16.5cm}
+\setlength{\textheight}{24.8cm}
+\setlength{\topskip}{0cm}
+\setlength{\footskip}{0cm}
+\setlength{\oddsidemargin}{1.5cm}
+\setlength{\evensidemargin}{1.5cm}
+\setlength{\marginparsep}{0.3cm}
+\setlength{\marginparwidth}{1.0 cm}
+\setlength{\parindent}{0cm}
+\pagestyle{myheadings} % to get the day - session in headings!
+
+% I had to redefine \chapter because i have to use it, if i want
+% mini-tables-of-contents...
+\renewcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi
+ \global\@topnum\z@
+ \@afterindentfalse
+ \secdef\@chapter\@schapter}
+\def\@makechapterhead#1{\relax} %write nothing...
+\RequirePackage{minitoc}
+
+\AtBeginDocument{% this comes after \begin{document}
+ \makeindex
+ \dominitoc
+ \faketableofcontents}
+
+\AtEndDocument{\printindex} % dont forget to run the ``makeindex'' program!
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% COMMANDS
+%
+\newcounter{Cabstract}[section]
+\newsavebox{\ConferenceDay} % hier comes the name of the day
+\newsavebox{\SessionName} % name of the session
+\newsavebox{\ShortSessionName}% short name of the session
+% Counters for days, sessions and abstracts.
+% hope this will work....
+
+\sbox{\ConferenceDay}{}
+\sbox{\SessionName}{}
+\markboth{\usebox{\ConferenceDay}}{\usebox{\SessionName}}
+
+\def\mtctitle{\relax}%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Command: \conferenceday
+% Usage: \conferenceday{some day}
+% Provides: advances day-counter, adds the day-name to TOC
+% and clears the page
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcommand{\conferenceday}[1]{%
+ \chapter{#1}
+ {\Large \bf #1}\par
+ \minitoc
+ \sbox{\ConferenceDay}{#1}
+ \sbox{\SessionName}{#1}
+ }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Command: \sessionname
+% Usage: \sessionname{shortname}{longname}
+% Provides: advances session-counter, adds the session-name to TOC
+% and clears the page
+% Important: I'm not using \section here. Instead, i try to emulate
+% the part that i nead. It worked with my version
+% of minitoc, but didn't work with an older version
+% we had at the university. Bad. Redefining \section
+% would be better, but i can't figure it out.
+% Well, Jean-Pierre Drucbert <Jean-Pierre.Drucbert@onecert.fr>
+% said it should be O.K., so be it.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcommand{\sessionname}[2]{%
+ \clearpage
+ \refstepcounter{section}
+ \sbox{\ShortSessionName}{#1}
+ \sbox{\SessionName}{#2}
+ \addcontentsline{toc}{section}{\MakeUppercase{#2}}
+ }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Following definitions determine how to deal with the abstracts %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ABSTRACTS SHOULD BE IN SEPARATE FILES, FORMATED LIKE THIS:
+%
+% Abstract example:
+% \index{Name1} \index{Name2}... - this is nessesary for authornames
+% to appear in index!!!
+% \titl{Title of the abstract}
+% \name{A. First$^1$, A. Second$^1$, A. Third$^2$}
+% \adr{1~First address\\
+% 2~Second addrass}
+%
+% \begin{abstr}
+% Abstracts text (in Latex notation). Most of the Latex commands
+% can be used here...
+% \end{abstr}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+% TO DO:
+% I would like to change \name and \adr in such a way that
+%
+% \name[mark1]{name1}
+% \name[mark2]{name2}
+% \name[mark1]{name3}
+% \adr[adr1]{adress1}
+% \adr[adr2]{adress2}
+%
+% produces the same result as one obtained in the previous example
+% and automaticaly includes the names into index list...
+% Unfortunately, i don't know how to do it.
+% !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% COMMANDS TO BE USED IN ABSTRACTS:
+%
+% Title of the abstract
+\newcommand{\titl}[1]{\large \bf \MakeUppercase{#1}\par\medskip}
+% author(s) name(s)
+\newcommand{\name}[1]{\rm \normalsize #1\par\smallskip}
+% author(s) addres(es)
+\newcommand{\adr}[1]{\it \normalsize #1\par\smallskip}
+% enviroment ``abstr''
+\newenvironment{abstr}{\par\medskip \normalsize \rm}{\par\bigskip}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% COMMANDS TO BE USED IN THE MAIN DOCUMENT
+%
+% Command: \loadabstr
+% Usage: \loadabstr[additional]{TOC-entry}{filename.tex}
+% Provides: reserves 1/2 page for the abstract, loads the abstract
+% from the file ``filename.tex'', writes the ``TOC-entry''
+% to table of contents, advances the abstracts-counter
+% and writes the short name of the session, abstract-number
+% and an additional entry to the margin.
+% (We have used the additional entry for the time..)
+%usage: \loadabstr[additional]{toc-entry}{name.tex}
+\newcommand{\loadabstr}[3][\relax]{%
+ \stepcounter{Cabstract}
+ \par
+ \rule[-6cm]{0cm}{12cm} % well, you might nead to change this
+ % if you change the size/format of the page
+ \marginpar{%
+ \large\centering
+ #1\par\smallskip
+ \usebox{\ShortSessionName}\par\smallskip
+ \arabic{Cabstract}}
+ \IfFileExists{#3}{%
+ \begin{minipage}{16.5cm} % this too...
+ \input{#3}
+ \end{minipage}}
+ {File #3 not found}
+ \addcontentsline{toc}{subsection}{#2}
+ }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Command: \loadpsabstr
+% Usage: \loadpsabstr[additional]{toc-entry}{name.ps}{formating}
+% Provides: Some of our abstracts arrived as postscript or with s-mail
+% This commands loads the postscript file, cuts part of it out
+% and puts it on its place, just like \loadabstr does with
+% an latex file. Additional parameter goes directly to
+% ``includegraphics'' (see explanation of graphicx package)
+% try something like: scale=1, bb=2.5cm 16cm 19cm 28cm
+\newcommand{\loadpsabstr}[4][\relax]{%
+ \stepcounter{Cabstract}
+ \par
+ \rule[-6cm]{0cm}{12cm} % well, you might nead to change this
+ % if you change the size/format of the page
+ \marginpar{%
+ \large\centering
+ #1\par\smallskip
+ \usebox{\ShortSessionName}\par\smallskip
+ \arabic{Cabstract}}
+ \begin{minipage}{16.5cm} % this too...
+ \unitlength 1cm
+ \IfFileExists{#3}{%
+ \begin{picture}(16.5,12) % and this, too!
+ \put(0,0){%
+ \includegraphics[%
+ angle=0, clip=true, #4]{#3}}
+ \end{picture}}
+ {File #3 not found!}
+ \end{minipage}
+ \addcontentsline{toc}{subsection}{#2}
+ }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% end of the Kirchberg.cls
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+