File: //usr/share/texlive/texmf-dist/tex/latex/ltxmisc/abstbook.cls
%
% 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
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%