% % 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 % 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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%