From 0e56f3824a627653933a6e65e19a644fe9ecec9d Mon Sep 17 00:00:00 2001 From: ccolin Date: Mon, 28 Mar 2022 23:59:03 +0200 Subject: [PATCH] start working on the report --- .gitignore | 6 + rapport/gig.cls | 1583 +++++++++++++++++++++++++++++++++++++++ rapport/rapport.bib | 14 + rapport/rapport.tex | 48 ++ rapport/refig-alpha.bst | 1449 +++++++++++++++++++++++++++++++++++ 5 files changed, 3100 insertions(+) create mode 100644 rapport/gig.cls create mode 100644 rapport/rapport.bib create mode 100644 rapport/rapport.tex create mode 100644 rapport/refig-alpha.bst diff --git a/.gitignore b/.gitignore index 8bfa9ec..ab8aca0 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,9 @@ out build* CmakeSettings.json *.vtk +*.aux +*.bbl +*.blg +*.log +*.lbl +rapport/*.pdf diff --git a/rapport/gig.cls b/rapport/gig.cls new file mode 100644 index 0000000..7248c67 --- /dev/null +++ b/rapport/gig.cls @@ -0,0 +1,1583 @@ +%%%%%%%%%%%%%%%%%%%%%% start of gig.cls %%%%%%%%%%%%%%%%%%%%%% +\def\fileversion{3.42} +\def\filedate{2006/12/12} +\def\docdate {2006/12/12} +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{gig}[\filedate \space + Document Style for GIG Publications v\fileversion ] + +\usepackage[utf8]{inputenc} + +% +% EG Publications document style +% (based on EG Annual Event document style, which in turn was based on CFG Journal) +% Copyright (c) 1997-2005 D.Fellner +% +% based on the original LaTeX ARTICLE DOCUMENT STYLE +% for LaTeX version 2.09 by Leslie Lamport +% ...modifications by Sue Brooks, BUSS Ltd +% ... and Graham White 8.ix.92 +% ...redesign for LaTeX2e and adaption to Conf. Proc. by D.Fellner +% +% 24-04-15 DF 3.42 adapt \tabular to current article style +% 24-03-01 SB 3.41 define \printed@Version in context of package hyperref +% 24-02-05 DF 3.40 a more compact layout for the bibiography; +% added \shortcite +% 30-01-04 DF 3.30 support both latex and pdflatex +% 11-08-03 DF 3.20 adapt to new citation style (via eg-alpha.bst) +% and fix refs to Blackwell (address, name) +% 30-04-03 DF 3.15 replace use of \tt by \ttfamily +% 17-03-03 DF 3.14 add string constants to describe function of editor ... +% 09-02-03 DF 3.13 fix shape of page numbers in running heads (upshape) +% 22-04-02 DF 3.12 cleanup of some redundant structures; +% commented-out sections deleted +% 22-02-02 DF 3.11 delete page range information on top line of first page; +% 22-11-01 DF 3.10 include keyword-support; +% increase area top-left at first page +% 23-06-01 DF 3.00 integrate support for EG WS Proc +% \WsSubmission, \WsPaper +% 15-06-01 DF 2.90 activate computation of page range through an +% .lbl file holding a \pEndPage command +% 07-06-01 DF 2.80 fix problem with empty last page +% 27-03-00 DF 2.71 replace 'Short Paper' by 'Short Presentation' +% 23-03-00 DF 2.70 inlude support for ShortPaper +% 25-02-00 DF 2.60 use \volume to determine year on first page +% for all types of publications (not submissions); +% use \pStartPage to initialize page counter and pagerange; +% 25-02-00 DF 2.50 final polishing of (c) lines; +% introduce \issue, \pStartPage, \pEndPage to +% replace \pnumber and \pagerange; +% selection between printed and electronic version +% 10-10-99 DF 2.40 implement commands \JournalSubmission, \JournalPaper; +% define p@volume and compute as function of year; +% parametrize copyright text (to cater for different +% def's of year); +% replaced \editors by \ConfEditors; +% customize for EG 00 +% 20-11-98 DF 2.20 customize for EG 99 and introduce \ConfYear +% 26-02-98 DF 2.10 enhance level of customization +% \editors, \EGyear, +% 11-04-97 DF 2.00 port to LaTeX 2e and customization for EG'97 +% Introduced \STAR, \TUTORIAL +% 06-01-94 AJW 1.10 NFSS compatible +% 15-03-93 MR 1.00 Added check for \CUP@mtlplain@loaded and +% \CUP@cmtt@loaded flags for use at CUP. +% This allows the style file to check for the use +% of `mtclplain' instead of `mtlplain'. `mtclplain' +% has all it's mttt fonts changed to cmtt. +% 10-03-93 RM \pnumber, \looseness in catchline address, +% spaces in running head text. +% 25-02-93 SFB 0.01.01 keywords, +% 0.01.02 catchline default +% 0.01.03 copyright in running foot +% 0.01.04 onecolumn style option +% 0.01.05 appendix titles... +% 0.01.06 section headings -- bold and italic +% +\newif\ifoldfss +\newif\ifnfssone +\newif\ifnfsstwo +\def\f@s@s{}% +% +\@ifundefined{DeclareFontShape}% + {% + \@ifundefined{selectfont}% + {\global\oldfsstrue\let\reset@font=\relax}% old font selection scheme + {\global\nfssonetrue\def\f@s@s{with NFSS release 1,\space}}% + }% + {\global\nfsstwotrue\def\f@s@s{with NFSS release 2,\space}}% +% +% \typeout{Document Style `CGF' \f@s@s v1.10 released 6th January 1994} +% +% Journals use two-sided printing. +% +\@twosidetrue +\@twocolumntrue +\@mparswitchtrue +\def\ds@draft{\overfullrule 5pt} +\def\ds@twocolumn{\@twocolumntrue} +\def\ds@onecolumn{\@twocolumnfalse} +\newif\ifSFB@galley +%EG Version : +%\def\ds@galley{\SFB@galleytrue\@twosidefalse\@mparswitchfalse} +%REFIG Version : +\def\ds@galley{\SFB@galleytrue\@twosidetrue\@mparswitchfalse} +\@options +% +% **************************************** +% * FONTS * +% **************************************** +% +\lineskip 1pt +\normallineskip 1pt +\def\baselinestretch{1} + \def\@normalsize{\@setsize\normalsize{11pt}\ixpt\@ixpt + \abovedisplayskip 5.5pt plus 2pt minus .5pt + \belowdisplayskip \abovedisplayskip + \abovedisplayshortskip 5.5pt plus 2pt + \belowdisplayshortskip \abovedisplayshortskip + \let\@listi\@listI} +%% DF +\let\normalsize=\@normalsize +%% +\def\small{\@setsize\small{10pt}\viiipt\@viiipt + \abovedisplayskip 5pt plus 1pt minus .5pt + \belowdisplayskip \abovedisplayskip + \abovedisplayshortskip 5pt plus 1pt + \belowdisplayshortskip \abovedisplayshortskip + \def\@listi{\leftmargin\leftmargini + \topsep \z@ plus 1pt minus .5pt + \parsep \z@ + \itemsep \z@}} +\def\footnotesize{\@setsize\footnotesize{10pt}\viiipt\@viiipt + \abovedisplayskip 5pt plus 1pt minus .5pt + \belowdisplayskip \abovedisplayskip + \abovedisplayshortskip 5pt plus 1pt + \belowdisplayshortskip \abovedisplayshortskip + \def\@listi{\leftmargin\leftmargini + \topsep \z@ plus 1pt minus .5pt + \parsep \z@ + \itemsep \z@}} +\def\scriptsize{\@setsize\scriptsize{7pt}\vipt\@vipt} % ajw: was 7/8 +\def\tiny{\@setsize\tiny{8pt}\vipt\@vipt} +\def\large{\@setsize\large{11pt}\xpt\@xpt} +\def\Large{\@setsize\Large{14pt}\xiipt\@xiipt} +\def\LARGE{\@setsize\LARGE{17pt}\xivpt\@xivpt} +\def\huge{\@setsize\huge{20pt}\xviipt\@xviipt} +\def\Huge{\@setsize\Huge{25pt}\xxpt\@xxpt} +\normalsize + +% **************************************** +% * PAGE LAYOUT * +% **************************************** +% +% SIDE MARGINS: +\oddsidemargin \z@ \evensidemargin \z@ +\marginparwidth 4pc +\marginparsep 0.5pc + +% VERTICAL SPACING: +% \topmargin -3pc +\topmargin -1pc +\headheight 11pt +\headsep 11pt +\topskip 9pt +%% DF +%\footheight 11pt +%% +\footskip 22pt + +% DIMENSION OF TEXT: +\textwidth 38pc +%\textheight = 55\baselineskip \advance\textheight by \topskip +\textheight = 60\baselineskip \advance\textheight by \topskip +\columnsep 2pc +\columnseprule 0pt + +% FOOTNOTES: +\footnotesep 6pt +\skip\footins 19.5pt plus 12pt minus 1pt + +% FLOATS: +% for floats on a text page: +% one-column mode or single-column floats in two-column mode: +\floatsep 11pt plus 5.5pt minus 2.25pt +\textfloatsep 22pt plus 11pt minus 5.5pt +\intextsep 11pt plus 5.5pt minus 2.25pt +%% DF +% \@maxsep 22pt +%% +% two-column floats in two-column mode: +\dblfloatsep 11pt plus 5.5pt minus 2.25pt +\dbltextfloatsep 22pt plus 11pt minus 5.5pt +%% DF +% \@dblmaxsep 22pt +%% +% for floats on a separate float page or column: +% one-column mode or single-column floats in two-column mode: +\@fptop 0pt plus 0fil +\@fpsep 11pt plus 0.5fil +\@fpbot 0pt plus 3fil +% double-column floats in two-column mode. +\@dblfptop 0pt plus 0fil +\@dblfpsep 11pt plus 0.5fil +\@dblfpbot 0pt plus 3fil + +\marginparpush 5.5pt + +% **************************************** +% * PARAGRAPHING * +% **************************************** +% +\parskip 5.5pt plus 1pt minus 1.5pt +\parindent 1em +\partopsep 0pt plus 1pt +\@lowpenalty 51 +\@medpenalty 151 +\@highpenalty 301 +\@beginparpenalty -\@lowpenalty +\@endparpenalty -\@lowpenalty +\@itempenalty -\@lowpenalty +\clubpenalty=0 +\widowpenalty=10000 + +% **************************************** +% * FIGURES AND TABLES * +% **************************************** +% +\setcounter{topnumber}{2} +\def\topfraction{.9} +\setcounter{bottomnumber}{1} +\def\bottomfraction{.9} +\setcounter{totalnumber}{3} +\def\textfraction{.1} +\def\floatpagefraction{.75} +\setcounter{dbltopnumber}{2} +\def\dbltopfraction{.9} +\def\dblfloatpagefraction{.75} + +\newcounter{table} +\def\thetable{\@arabic\c@table} +\ifSFB@galley \def\fps@table{p} + \else \def\fps@table{tbp} +\fi +\def\ftype@table{1} +\def\ext@table{lot} +\def\fnum@table{Table \thetable} +\def\table{\@float{table}} +\let\endtable\end@float +\@namedef{table*}{\@dblfloat{table}} +\@namedef{endtable*}{\end@dblfloat} + +\newcounter{figure} +\def\thefigure{\@arabic\c@figure} +\ifSFB@galley \def\fps@figure{p} + \else \def\fps@figure{tbp} +\fi +\def\ftype@figure{2} +\def\ext@figure{lof} +\def\fnum@figure{Figure \thefigure} +\def\figure{\@float{figure}} +\let\endfigure\end@float +\@namedef{figure*}{\@dblfloat{figure}} +\@namedef{endfigure*}{\end@dblfloat} + +\long\def\@makecaption#1#2{\vskip 6pt + \setbox\@tempboxa\hbox{\textbf{#1\ :} \reset@font\textit{#2}} + \ifdim \wd\@tempboxa >\hsize + \textbf{#1\ :} \reset@font\itshape #2\par + \else + \hbox to\hsize{\hfil\box\@tempboxa\hfil} + \fi + \vskip 6pt +} + +% **************************************** +% * PARTS * +% **************************************** +% +\def\part{\par \addvspace{4ex}\@afterindentfalse + \secdef\@part\@spart} +\def\@part[#1]#2{\ifnum \c@secnumdepth >\m@ne + \refstepcounter{part} + \addcontentsline{toc}{part}{Part \thepart: #1} + \else \addcontentsline{toc}{part}{#1} + \fi + {\parindent 0pt \raggedright + \ifnum \c@secnumdepth >\m@ne + \reset@font\large\rmfamily PART + \ifcase\thepart \or ONE \or TWO \or THREE \or FOUR \or FIVE + \or SIX \or SEVEN \or EIGHT \or NINE \or TEN \else \fi + \par \nobreak + \fi + \reset@font\LARGE \rmfamily #2 \markboth{}{}\par } + \nobreak \vskip 3ex \@afterheading} +\def\@spart#1{{\parindent 0pt \raggedright + \reset@font\LARGE \rmfamily #1\par} + \nobreak \vskip 3ex \@afterheading} + +% **************************************** +% * SECTIONS * +% **************************************** +% +\def\section{\@startsection {section}{1}{\z@} + {-11pt plus -5.5pt minus -1pt} + {0.001pt} + {\raggedright\reset@font\normalsize\bfseries}} +\def\subsection{\@startsection{subsection}{2}{\z@} + {-11pt plus -5.5pt minus -1pt} + {0.001pt} + {\raggedright\reset@font\normalsize\bfseries}} +\def\subsubsection{\@startsection{subsubsection}{3}{\z@} + {-5.5pt plus -5.5pt minus -1pt} + {0.001pt} + {\raggedright\reset@font\normalsize\bfseries}} +\def\paragraph{\@startsection{paragraph}{4}{\z@} + {5.5pt plus 2.25pt minus 1pt} + {-0.5em} + {\reset@font\normalsize\bfseries}} +\def\subparagraph{\@startsection{subparagraph}{4}{1em} + {5.5pt plus 2.25pt minus 1pt} + {-0.5em} + {\reset@font\normalsize\bfseries}} +\setcounter{secnumdepth}{5} + +\def\@startsection#1#2#3#4#5#6{\if@noskipsec \leavevmode \fi + \par \@tempskipa #4\relax + \@afterindenttrue + \ifdim \@tempskipa <\z@ \@tempskipa -\@tempskipa \@afterindentfalse\fi + \if@nobreak \everypar{}\else + \addpenalty{\@secpenalty}\addvspace{\@tempskipa}\fi + \@ifstar{\SFB@ssect{#2}{#3}{#4}{#5}{#6}}% + {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}} +% +% \@sect{NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}[ARG1]{ARG2} +% +\def\@sect#1#2#3#4#5#6[#7]#8{% + \ifnum #2>\c@secnumdepth + \def\@svsec{}% + \else + \refstepcounter{#1} + \edef\@svsec{\csname the#1\endcsname.\hskip 0.5em}% + \fi + \@tempskipa #5\relax + \ifdim \@tempskipa>\z@ + \begingroup #6\relax + \ifnum #2=\@ne + \ifSFB@appendix + \ifSFB@appendixstar + \@hangfrom{\hskip #3\relax}{\interlinepenalty \@M + Appendix \csname the#1\endcsname\par}% + \else + \@hangfrom{\hskip #3\relax}{\interlinepenalty \@M + Appendix \csname the#1\endcsname:\hskip 0.5em\reset@font\rmfamily #8\par}% + \fi + \else + \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty \@M #8\par}% + \fi + \else + \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty \@M #8\par}% + \fi + \endgroup + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{\ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}\fi #7}% + \else + \def\@svsechd{#6\hskip #3\@svsec #8%\par + \csname #1mark\endcsname{#7} + \addcontentsline{toc}{#1}{\ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}\fi#7}}% + \fi + \@xsect{#5}} +% +% \SFB@ssect{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}{ARG} == +% +\def\SFB@ssect#1#2#3#4#5#6{\@tempskipa #4\relax + \ifSFB@appendix + \ifnum #1>\@ne \edef\@svsec{#6}% + \else \ifSFB@appendixstar \edef\@svsec{Appendix}% + \else \edef\@svsec{Appendix:\hskip 0.5em\reset@font\rmfamily #6}% + \fi + \fi + \else + \ifnum #1>\@ne \edef\@svsec{#6}% + \else \edef\@svsec{#6}% + \fi + \fi + \ifdim \@tempskipa>\z@ + \begingroup #5\relax + \@hangfrom{\hskip #2\relax}{\interlinepenalty \@M \@svsec \par}% + \endgroup + \else + \def\@svsechd{#5\hskip #2\relax \@svsec}% + \fi + \@xsect{#4}} + +\newif\ifSFB@appendix +\newif\ifSFB@appendixstar +\def\APPENDIX{\appendix\SFB@appendixstartrue} +\def\appendix{\SFB@appendixstarfalse\par + \SFB@appendixtrue + \setcounter{secnumdepth}{1} + \setcounter{section}{0} + \setcounter{subsection}{0} + \def\thesection{\Alph{section}}} + +% **************************************** +% * PARTS & SECTIONS NUMBERS * +% **************************************** +% +\newcounter{part} +\newcounter {section} +\newcounter {subsection}[section] +\newcounter {subsubsection}[subsection] +\newcounter {paragraph}[subsubsection] +\newcounter {subparagraph}[paragraph] +\def\thepart {\arabic{part}} +\def\thesection {\arabic{section}} +\def\thesubsection {\thesection.\arabic{subsection}} +\def\thesubsubsection {\thesubsection .\arabic{subsubsection}} +\def\theparagraph {\thesubsubsection.\arabic{paragraph}} +\def\thesubparagraph {\theparagraph.\arabic{subparagraph}} + +% **************************************** +% * LISTS * +% **************************************** +% +\leftmargini 1em +\leftmarginii 1pc +\leftmarginiii 1pc +\leftmarginiv 1pc +\leftmarginv 1pc +\leftmarginvi 1pc +\leftmargin\leftmargini +\labelsep 0.5em +\labelwidth\leftmargini\advance\labelwidth-\labelsep +% +% label macros for Range-Left and Range-Right labels +\def\makeRLlabel#1{\rlap{#1}\hss} +\def\makeRRlabel#1{\hss\llap{#1}} +% +\def\@listI{\leftmargin\leftmargini + \parsep \z@ + \partopsep \z@ + \topsep \z@ plus 1pt minus .5pt + \itemsep \z@ plus .1pt +} +\let\@listi\@listI +\@listi +\def\@listii{\leftmargin\leftmarginii + \labelwidth\leftmarginii\advance\labelwidth-\labelsep + \topsep 5.5pt plus 1pt minus 1pt + \parsep \z@ + \partopsep \z@ + \itemsep \z@ plus .1pt +} +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii\advance\labelwidth-\labelsep + \topsep 5.5pt plus 1pt minus 1pt + \parsep \z@ + \partopsep \z@ + \itemsep \z@ +} +\def\@listiv{\leftmargin\leftmarginiv + \labelwidth\leftmarginiv\advance\labelwidth-\labelsep +} +\def\@listv{\leftmargin\leftmarginv + \labelwidth\leftmarginv\advance\labelwidth-\labelsep +} +\def\@listvi{\leftmargin\leftmarginvi + \labelwidth\leftmarginvi\advance\labelwidth-\labelsep +} +% +% ITEMIZE +\def\itemize{\ifnum \@itemdepth >3 \@toodeep + \else \advance\@itemdepth \@ne + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + \list{\csname\@itemitem\endcsname}% + {\let\makelabel\makeRLlabel}% + \fi} +\def\labelitemi{$\bullet$} +\def\labelitemii{--} +\def\labelitemiii{$\circ$} +\def\labelitemiv{$\diamond$} +% +% ENUMERATE +% SFB -- enumerate with optional argument to set left margin... +\def\enumerate{\ifnum \@enumdepth >3 \@toodeep \else + \advance\@enumdepth \@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% + \fi + \@ifnextchar [{\@enumeratetwo}{\@enumerateone}% +} +\def\@enumeratetwo[#1]{\list{\csname label\@enumctr\endcsname}% + {\settowidth\labelwidth{#1} + \leftmargin\labelwidth \advance\leftmargin\labelsep + \usecounter{\@enumctr} + \let\makelabel\makeRRlabel}% +} +\def\@enumerateone{\list{\csname label\@enumctr\endcsname}% + {\settowidth\labelwidth{9.} + \leftmargin\labelwidth \advance\leftmargin\labelsep + \usecounter{\@enumctr} + \let\makelabel\makeRRlabel}% +} +\def\labelenumi{\theenumi} \def\theenumi {\arabic{enumi}.} +\def\labelenumii{\theenumii} \def\theenumii {\alph{enumii}.} +\def\p@enumii{\theenumi} +\def\labelenumiii{\theenumiii} \def\theenumiii{\roman{enumiii}.} +\def\p@enumiii{\theenumi(\theenumii)} +\def\labelenumiv{\theenumiv} \def\theenumiv {\Alph{enumiv}.} +\def\p@enumiv{\p@enumiii\theenumiii} +% +% DESCRIPTION +\def\descriptionlabel#1{\hspace\labelsep \bfseries #1} +\def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin + \let\makelabel\descriptionlabel}} +\let\enddescription\endlist + +% **************************************** +% * DISPLAYED TEXT * +% **************************************** +% +% VERSE +\def\verse{\let\\=\@centercr + \list{}{\itemsep\z@ + \itemindent -1em + \listparindent \itemindent + \rightmargin\leftmargin + \advance\leftmargin 1em}\item[]} +\let\endverse\endlist +% +% QUOTATION +\def\quotation{\list{}{%\listparindent 1em +% \itemindent\listparindent + \leftmargin 1.5pc\rightmargin\leftmargin + \parsep 0pt plus 1pt}\item[]} +\let\endquotation=\endlist +% +% QUOTE +\def\quote{\list{}{\leftmargin 1.5pc\rightmargin\leftmargin}\item[]} +\let\endquote=\endlist + +% **************************************** +% * OTHER ENVIRONMENTS * +% **************************************** +% +% THEOREM +\def\@begintheorem#1#2{\reset@font\rmfamily\list{}% + {\leftmargin\z@\rightmargin\leftmargin}\item[]{\bfseries #1\ #2 }} +\def\@opargbegintheorem#1#2#3{\reset@font\rmfamily\list{}% + {\leftmargin\z@\rightmargin\leftmargin}\item[]{\bfseries #1\ #2 (#3) }} +\def\@endtheorem{\endlist} +% +% PROOF +\def\proof{\reset@font\rmfamily\list{}% + {\leftmargin\z@\rightmargin\leftmargin}\item[]{\reset@font\itshape Proof\/}} +\def\endproof{\hspace*{1em}{\begin{picture}(6.5,6.5)% + \put(0,0){\framebox(6.5,6.5){}}\end{picture}}\endlist} +\@namedef{proof*}{\reset@font\rmfamily\list{}% + {\leftmargin\z@\rightmargin\leftmargin}\item[]{\reset@font\itshape Proof\/}} +\@namedef{endproof*}{\endlist} +\def\proofbox{\begin{picture}(6.5,6.5)% + \put(0,0){\framebox(6.5,6.5){}}\end{picture}} +% +% TITLEPAGE +\def\titlepage{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn + \else \newpage \fi \thispagestyle{empty}\c@page\z@} +\def\endtitlepage{\if@restonecol\twocolumn \else \newpage \fi} + +% ARRAY AND TABULAR +% +\arraycolsep 5pt +\tabcolsep 6pt +\arrayrulewidth .5pt +\doublerulesep 1.5pt + +% DF, 15.4.05: adapt \tabular to current article style +% +\def\tabular{\let\@halignto\@empty + \def\hline{\noalign{\ifnum0=`}\fi + \hrule \@height \arrayrulewidth + \futurelet \reserved@a \@xhline} + \def\@xhline{\ifx\reserved@a\hline + \vskip \doublerulesep \vskip -\arrayrulewidth + \fi + \ifnum0=`{\fi}} + \def\@arrayrule{\@addtopreamble{\hskip -.5\arrayrulewidth + \vrule \@width \arrayrulewidth + \hskip .5\arrayrulewidth}} + \let\fullhline\hline +\@tabular +} +% +% \def\tabular{\def\@halignto{} +% \def\hline{\noalign{\ifnum0=`}\fi +% \vskip 3pt +% \hrule \@height \arrayrulewidth +% \vskip 3pt +% \futurelet \@tempa\@xhline} +% \def\fullhline{\noalign{\ifnum0=`}\fi +% \vskip 3pt +% \hrule \@height \arrayrulewidth +% \vskip 3pt +% \futurelet \@tempa\@xhline} +% \def\@xhline{\ifx\@tempa\hline +% \vskip -6pt +% \vskip \doublerulesep +% \fi +% \ifnum0=`{\fi}} +% \def\@arrayrule{\@addtopreamble{\hskip -.5\arrayrulewidth +% % \vrule \@width \arrayrulewidth +% \hskip .5\arrayrulewidth}} +% \@tabular +% } + + +% EQNARRAY +% +\def\eqnarray{\stepcounter{equation}% + \let\@currentlabel=\theequation + \global\@eqnswtrue + \global\@eqcnt\z@ + \tabskip\@centering + \let\\=\@eqncr + $$\halign to \displaywidth\bgroup\@eqnsel\hskip\@centering + $\displaystyle\tabskip\z@{##}$&\global\@eqcnt\@ne + \hskip \arraycolsep + \hfil${##}$\hfil + &\global\@eqcnt\tw@ + \hskip \arraycolsep + $\displaystyle\tabskip\z@{##}$\hfil + \tabskip\@centering&\llap{##}\tabskip\z@\cr} + +% TABBING +% +\tabbingsep \labelsep + +% MINIPAGE +% +\skip\@mpfootins = \skip\footins + +% FRAMEBOX +% +% Space left between box and text by \fbox and \framebox. +\fboxsep = 3pt +% Width of rules in box made by \fbox and \framebox. +\fboxrule = \arrayrulewidth + +% **************************************** +% * TITLE AND ABSTRACT * +% **************************************** +% +\def\maketitle{\par + \begingroup + \setcounter{footnote}{0} + \def\thefootnote{\fnsymbol{footnote}} + \def\@makefnmark{\mbox{$^{\@thefnmark}$}} + \if@twocolumn + \twocolumn[\vspace*{27pt}\@maketitle] + \else + \newpage + \global\@topnum\z@ + \@maketitle + \fi + \thispagestyle{titlepage} + \endgroup + \setcounter{footnote}{0} + \let\maketitle\relax + \let\@maketitle\relax + \gdef\@author{} + \gdef\@title{} + \let\thanks\relax +} +\def\and{\end{author@tabular}\vskip 6pt\par + \begin{author@tabular}[t]{@{}c@{}}} +\def\@maketitle{\newpage + \vspace*{10pt} + {\centering \sloppy + {\reset@font\huge \bfseries \@title \par} + \vskip 35pt + {\reset@font\normalsize + \begin{author@tabular}[t]{@{}c@{}}\@author + \end{author@tabular}\par} + \vskip 46pt + }% +} +% +\newif\ifSFB@abstract +\def\abstract{\if@twocolumn + \SFB@abstracttrue\start@SFBbox\SFB@widerule\addvspace{2pt}\bgroup\@abstract + \else + \@abstract + \fi} +\def\endabstract{\if@twocolumn + \SFB@abstractfalse\endlist\egroup + \SFB@widerule\addvspace{15pt}\finish@SFBbox + \@thanks \gdef\@thanks{}% + \else + \endlist + \fi} +\def\@abstract{\list{}{\leftmargin 2pc\rightmargin\leftmargin + \parsep 0pt plus .1pt}\item[]{\textbf{Résumé}}\\\reset@font\itshape} +% +\def\classification{\vskip 5.5pt\par\reset@font\rmfamily% +Categories and Subject Descriptors {\small (according to ACM CCS)}: } +\def\endclassification{\relax} +%teaser +\newif\ifSFB@teaser +\def\teaser{\if@twocolumn + \SFB@teasertrue\start@SFBbox\vskip -18pt\bgroup\@teaser + \else + \@teaser + \fi} +\def\endteaser{\if@twocolumn + \SFB@teaserfalse\endlist\egroup + \addvspace{23pt}\finish@SFBbox + \else + \endlist + \fi} +\def\@teaser{\list{}{\leftmargin 0pc\rightmargin\leftmargin + \parsep 0pt plus 0.1pt}\item{}\par} +% + +\newcommand\CCScat[3]{#1 [#2]: #3} +% +\def\keywords{\vskip 5.5pt\par\reset@font\rmfamily\textbf{Mots clés : }} +\def\endkeywords{\relax} +\newcommand\keyword[1]{[#1]} +\def\nokeywords{\relax} + +\def\SFB@widerule{\bgroup\parskip 0pt\par\rule{\textwidth}{0.25pt}\par\egroup} + +\def\author@tabular{\def\@halignto{}\@authortable} +\let\endauthor@tabular=\endtabular +\def\author@tabcrone{{\ifnum0=`}\fi\@xtabularcr[11pt]\reset@font\small\rmfamily + \let\\=\author@tabcrtwo\ignorespaces} +\def\author@tabcrtwo{{\ifnum0=`}\fi\@xtabularcr[-1pt]\reset@font\small\rmfamily + \let\\=\author@tabcrtwo\ignorespaces} +\def\@authortable{\leavevmode \hbox \bgroup $\let\@acol\@tabacol + \let\@classz\@tabclassz \let\@classiv\@tabclassiv + \let\\=\author@tabcrone \ignorespaces \@tabarray} + +\def\start@SFBbox{\@next\@currbox\@freelist{}{}% + \global\setbox\@currbox + \vbox\bgroup + \hsize \textwidth + \@parboxrestore +} +\def\finish@SFBbox{\par\vskip -\dbltextfloatsep + \egroup + \global\count\@currbox\tw@ + \global\@dbltopnum\@ne + \global\@topnum\z@ + \global\@dbltoproom\maxdimen\@addtodblcol + \global\vsize\@colht + \global\@colroom\@colht +} + +% **************************************** +% * PAGE STYLES * +% **************************************** +% +\mark{{}{}} +\gdef\@author{\mbox{}} +\def\author{\@ifnextchar [{\@authortwo}{\@authorone}} +\def\@authortwo[#1]#2{\gdef\@author{#2}\gdef\@shortauthor{#1}} +\def\@authorone#1{\gdef\@author{#1}\gdef\@shortauthor{#1}} +\gdef\@shortauthor{} +\gdef\@title{\mbox{}} +\def\title{\@ifnextchar [{\@titletwo}{\@titleone}} +\def\@titletwo[#1]#2{\gdef\@title{#2}\gdef\@shorttitle{#1}} +\def\@titleone#1{\gdef\@title{#1}\gdef\@shorttitle{#1}} +\gdef\@shorttitle{} +% +%% DF add p@volume which is a counter automatically adjusting by the year +%% DF (the volumes volume can be computed as year-1981) +%% DF Pour REFIG +%% DF (the volumes volume can be computed as year-2007) +% +\gdef\j@year{2007} +\gdef\j@volume{1} +\gdef\j@issue{1} +% +\newcounter{p@volume} +% \setcounter{p@volume}{\number\year} % compute volume based on current year +% \addtocounter{p@volume}{-1981}% +% +\newcommand\volume[1]{% + \gdef\j@volume{#1}% + \setcounter{p@volume}{#1}% compute year for the given volume + \addtocounter{p@volume}{2007}% + \gdef\j@year{\thep@volume}% +} +% +\newcommand\issue[1]{\gdef\j@issue{#1}} +% +\newcommand\pStartPage[1]{\gdef\j@pStartPage{#1}} +\gdef\j@pStartPage{1} +% +\newcommand\pEndPage[1]{\gdef\j@pEndPage{#1}} +\gdef\j@pEndPage{000} +% +%** \newcommand\pagerange[1]{\gdef\j@pagerange{#1}} +%** \gdef\j@pagerange{000--000} +% +\newcommand\journal[1]{\gdef\@journal{#1}} +\gdef\@journal{{\reset@font\large\sffamily REFIG \reset@font\itshape }} +% +%% DF - add a few commands for customization +% +\newcommand\ConfEditors[1]{\gdef\p@ConfEditors{#1}} +\gdef\p@ConfEditors{N.N. and N.N.} +% +\newcommand\ConfEditorStrg[1]{\gdef\p@ConfEditorStrg{#1}} +\gdef\p@ConfEditorStrg{(Editors)} +% +\newcommand\ShortPresEditors[1]{\gdef\p@ShortPresEditors{#1}} +\gdef\p@ShortPresEditors{N.N. and N.N.} +% +\newcommand\EGyear[1]{\gdef\p@EGyear{#1}} +\gdef\p@EGyear{'0x} +% +%\newcommand\ConfYear[1]{\gdef\p@ConfYear{#1}} +%\gdef\p@ConfYear{200x} +% +%\newcommand\ConfName[1]{\gdef\p@ConfName{#1}} +%\gdef\p@ConfName{EUROGRAPHICS Workshop on ...} +% +% --- Handling of copyright text +% start with cmds to set the text for title page and running page +% +\newcommand\copyrightTextTitPag[1]{% + \renewcommand\p@copyrightTextTitPag{#1}% +} +\newcommand\p@copyrightTextTitPag{}% +% +\newcommand\copyrightTextRunPag[1]{% + \renewcommand\p@copyrightTextRunPag{#1}% +} +\newcommand\p@copyrightTextRunPag{}% +% +% --- and here are the parameterized texts defined +% +\newcommand\p@copyrightTextLong[1]{% +\copyright\ Master GIG #1 +}% +\newcommand\p@copyrightTextShort[1]{% +\copyright\ Master GIG #1.% +}% +%\newcommand\p@copyrightTextEG[1]{% +%\copyright\ Association Française d'Informatique Graphique #1.% +%}% +%\newcommand\p@journalSubmissionText[1]{% +%submitted to COMPUTER GRAPHICS \textit{Forum} #1.% +%}% +%\newcommand\p@confSubmissionText[1]{% +%submitted to EUROGRAPHICS #1.% +%}% +\newcommand\p@wsSubmissionText[1]{% +submitted to \textit{#1}% +}% +% ---- +% +% \ps@empty and \ps@plain defined in LATEX.TEX +% +\newcommand\EmptySectionmark[1]{} +\newcommand\EmptySubsectionmark[1]{} +% +\def\noEGpagenumber{\def\p@EGpagenumber{\mbox{}}} +\def\EGpagenumber{\def\p@EGpagenumber{\thepage}} +\EGpagenumber% +% +% ------ define Document Types +% ConferenceSubmission, ConferencePaper, +% STAR, Tutorial, ShortPresentation, +% JournalSubmission, JournalPaper, +% WsSubmission, WsPaper +% +\def\ConferenceSubmission{% +\EGpagenumber% +%\copyrightTextTitPag{\p@confSubmissionText{\p@ConfYear}} +%\copyrightTextRunPag{\p@confSubmissionText{\p@ConfYear}} +\def\ps@titlepage{\let\@mkboth\@gobbletwo + \def\@oddhead{\raisebox{\z@}[8pt][1pt]{\parbox{\textwidth}{\small + \parbox[t]{.7\textwidth}{\sloppy\raggedright + EUROGRAPHICS \p@EGyear{} / \p@ConfEditors{}\\ + \p@ConfEditorStrg}% (Guest Editors)} + \hfill + \textit{Volume \j@volume} (\textit{\p@ConfYear\/}), + \textit{Number \j@issue}}% + }% +} +% \def\@oddfoot{{\tiny\raisebox{\z@}[8pt][1pt]{\parbox[t]{18pc}{\sloppy + % \p@copyrightTextTitPag}}}\hfill} + \let\@evenhead=\@oddhead + %\let\@evenfoot=\@oddfoot + \let\sectionmark=\EmptySectionmark + \let\subsectionmark=\EmptySubsectionmark +}} +% ------- +\def\ConferencePaper{% +\noEGpagenumber% +%\copyrightTextTitPag{\p@copyrightTextLong{\number\year}} +%\copyrightTextRunPag{\p@copyrightTextShort{\number\year}} +\def\ps@titlepage{\let\@mkboth\@gobbletwo + \def\@oddhead{\raisebox{\z@}[8pt][1pt]{\parbox{\textwidth}{\small + \parbox[t]{.7\textwidth}{\sloppy\raggedright + GIG \p@EGyear{} / \p@ConfEditors{}\\ + \p@ConfEditorStrg}% (Guest Editors)} + \hfill +% \textit{Volume \j@volume} (\textit{\p@ConfYear\/}), + \textit{Volume \j@volume} (\textit{\j@year\/}), + \textit{Number \j@issue}}% + }% +} +% \def\@oddfoot{{\tiny\raisebox{\z@}[8pt][1pt]{\parbox[t]{18pc}{\sloppy +% \p@copyrightTextTitPag}}}\hfill} + \let\@evenhead=\@oddhead +% \let\@evenfoot=\@oddfoot + \let\sectionmark=\EmptySectionmark + \let\subsectionmark=\EmptySubsectionmark +}} +% ------- +\def\JournalSubmission{% +\EGpagenumber% +%\copyrightTextTitPag{\p@journalSubmissionText{(\number\month/\number\year)}} +%\copyrightTextRunPag{\p@journalSubmissionText{(\number\month/\number\year)}} +%% \pagerange{000--000}% +\def\ps@titlepage{\let\@mkboth\@gobbletwo + \def\@oddhead{\raisebox{\z@}[8pt][1pt]{\parbox{\textwidth}{\small + \textit{Master GIG - Géométrie et Informatique Graphique} +% \textit{Revue Électronique Francophone d'Informatique Graphique} +% \textit{Volume \j@volume} (\textit{\number\year}\/), +% \textit{Volume xx} (\textit{200y}\/), % Vol + year yet unknown ! +% \textit{Number z, \ pp.\ \j@pStartPage--\j@pEndPage}% + \hfill + }}}% +% +% \def\@oddfoot{{\tiny\raisebox{\z@}[8pt][1pt]{\parbox[t]{18pc}{\sloppy +% \p@copyrightTextTitPag}}}\hfill} + \let\@evenhead=\@oddhead +% \let\@evenfoot=\@oddfoot + \let\sectionmark=\EmptySectionmark + \let\subsectionmark=\EmptySubsectionmark +}} +% ------- +\def\JournalPaper{% +%\EGpagenumber% +\noEGpagenumber% +\copyrightTextTitPag{\p@copyrightTextLong{\number\year}} +\copyrightTextRunPag{\p@copyrightTextShort{\number\year}} +%% \pagerange{\mbox{}}% +\def\ps@titlepage{\let\@mkboth\@gobbletwo +\def\@oddhead{\raisebox{\z@}[8pt][1pt] +{% + +\begin{minipage}[c]{\textwidth} +\raggedright +%\includegraphics[width=0.4\textwidth]{logoafig} +%\end{minipage} +%\hfill +%\begin{minipage}[c]{0.75\textwidth} +%\raggedleft +\small + \textit{Master GIG --- Géométrie et Informatique Graphique\\Rapport} +\end{minipage} +}}% + +% + \def\@oddfoot{{\tiny\raisebox{\z@}[8pt][1pt]{\parbox[t]{18pc}{\sloppy + \p@copyrightTextTitPag}}}\hfill} + \let\@evenhead=\@oddhead +% \let\@evenfoot=\@oddfoot + \let\sectionmark=\EmptySectionmark + \let\subsectionmark=\EmptySubsectionmark +}} +% ------- +\def\Tutorial{% +\noEGpagenumber% +%\copyrightTextTitPag{\p@copyrightTextEG{\p@ConfYear}} +%\copyrightTextRunPag{\p@copyrightTextEG{\p@ConfYear}} +\gdef\ps@titlepage{\let\@mkboth\@gobbletwo + \def\@oddhead{\raisebox{\z@}[8pt][1pt]{\parbox{\textwidth}{\small + GIG \p@EGyear \hfill {\itshape Tutorial}}}} + \def\@oddfoot{{\tiny\raisebox{\z@}[8pt][1pt]{\parbox[t]{18pc}{\sloppy + \p@copyrightTextTitPag}}}\hfill} + \let\@evenhead=\@oddhead + \let\@evenfoot=\@oddfoot + \let\sectionmark=\EmptySectionmark + \let\subsectionmark=\EmptySubsectionmark +}} +% ------- +\def\STAR{% +\noEGpagenumber% +\copyrightTextTitPag{\p@copyrightTextEG{\p@ConfYear}} +\copyrightTextRunPag{\p@copyrightTextEG{\p@ConfYear}} +\gdef\ps@titlepage{\let\@mkboth\@gobbletwo + \def\@oddhead{\raisebox{\z@}[8pt][1pt]{\parbox{\textwidth}{\small + GIG \p@EGyear \hfill {\itshape STAR -- State of The Art Report}}}} + \def\@oddfoot{{\tiny\raisebox{\z@}[8pt][1pt]{\parbox[t]{18pc}{\sloppy + \p@copyrightTextTitPag}}}\hfill} + \let\@evenhead=\@oddhead + \let\@evenfoot=\@oddfoot + \let\sectionmark=\EmptySectionmark + \let\subsectionmark=\EmptySubsectionmark +}} +% +%--- +\def\ShortPresentation{% +\noEGpagenumber% +\copyrightTextTitPag{\p@copyrightTextEG{\p@ConfYear}} +\copyrightTextRunPag{\p@copyrightTextEG{\p@ConfYear}} +\gdef\ps@titlepage{\let\@mkboth\@gobbletwo + \def\@oddhead{\raisebox{\z@}[8pt][1pt]{\parbox{\textwidth}{\small + GIG \p@EGyear{} / \p@ShortPresEditors{} + \hfill {\itshape Short Presentations}}}} + \def\@oddfoot{{\tiny\raisebox{\z@}[8pt][1pt]{\parbox[t]{18pc}{\sloppy + \p@copyrightTextTitPag}}}\hfill} + \let\@evenhead=\@oddhead + \let\@evenfoot=\@oddfoot + \let\sectionmark=\EmptySectionmark + \let\subsectionmark=\EmptySubsectionmark +}} +% +%--- +\def\WsSubmission{% +\EGpagenumber% +\copyrightTextTitPag{\p@wsSubmissionText{\p@ConfName{} (\p@ConfYear})} +\copyrightTextRunPag{\p@wsSubmissionText{\p@ConfName{} (\p@ConfYear})} +\def\ps@titlepage{\let\@mkboth\@gobbletwo + \def\@oddhead{\raisebox{\z@}[8pt][1pt]{\parbox{\textwidth}{\small + \parbox[t]{.7\textwidth}{\sloppy\raggedright + \p@ConfName{} (\p@ConfYear), \ pp.\ \j@pStartPage--\j@pEndPage \\ + \p@ConfEditors{} \p@ConfEditorStrg}}% + }% +} + \def\@oddfoot{{\tiny\raisebox{\z@}[8pt][1pt]{\parbox[t]{18pc}{\sloppy + \p@copyrightTextTitPag}}}\hfill} + \let\@evenhead=\@oddhead + \let\@evenfoot=\@oddfoot + \let\sectionmark=\EmptySectionmark + \let\subsectionmark=\EmptySubsectionmark +}} +% ------- +\def\WsPaper{% +\noEGpagenumber% +\copyrightTextTitPag{\p@copyrightTextEG{\p@ConfYear}} +\copyrightTextRunPag{\p@copyrightTextEG{\p@ConfYear}} +\def\ps@titlepage{\let\@mkboth\@gobbletwo + \def\@oddhead{\raisebox{\z@}[8pt][1pt]{\parbox{\textwidth}{\small + \parbox[t]{.7\textwidth}{\sloppy\raggedright +% \p@ConfName{} (\p@ConfYear), \ pp.\ \j@pStartPage--\j@pEndPage \\ + \p@ConfName{} (\p@ConfYear)\\ + \p@ConfEditors{} \p@ConfEditorStrg}}% + }% +} + \def\@oddfoot{{\tiny\raisebox{\z@}[8pt][1pt]{\parbox[t]{18pc}{\sloppy + \p@copyrightTextTitPag}}}\hfill} + \let\@evenhead=\@oddhead + \let\@evenfoot=\@oddfoot + \let\sectionmark=\EmptySectionmark + \let\subsectionmark=\EmptySubsectionmark +}} +% ------- +% Headings for Running Pages +% +\def\ps@headings{\let\@mkboth\markboth +%% DF + \def\@oddhead{\small \hfill \itshape \@shortauthor\ / \@shorttitle + \hfill \upshape \textrm{\p@EGpagenumber}} +%%- \def\@oddfoot{\mbox{}\hfill submitted to EUROGRAPHICS \EGyear} + \def\@oddfoot{\tiny \p@copyrightTextRunPag \hfill\mbox{}} +%% DF + \def\@evenhead{\small \upshape \textrm{\p@EGpagenumber} \hfill + \itshape \@shortauthor\ / \@shorttitle \hfill} +%%- \def\@evenfoot{submitted to EUROGRAPHICS '98\hfill\mbox{}} + \def\@evenfoot{\mbox{}\hfill\tiny \p@copyrightTextRunPag} + \def\sectionmark##1{} + \def\subsectionmark##1{}} +% +\def\ps@myheadings{\let\@mkboth\@gobbletwo +%% DF +%% \def\@oddhead{\small \it \rightmark \hfill \textrm{\thepage}} + \def\@oddhead{\small \itshape \rightmark \hfill \mbox{}} +%% + \def\@oddfoot{} +%% DF +%% \def\@evenhead{\small \it \leftmark \hfill \textrm{\thepage}} + \def\@evenhead{\small \itshape \leftmark \hfill \mbox{}} +%% + \def\@evenfoot{} + \def\sectionmark##1{} + \def\subsectionmark##1{}} + +% **************************************** +% * TABLE OF CONTENTS, ETC. * +% **************************************** +% +\def\@pnumwidth{1.55em} +\def\@tocrmarg {2.55em} +\def\@dotsep{4.5} +\setcounter{tocdepth}{2} +\def\@undottedtocline#1#2#3#4#5{\ifnum #1>\c@tocdepth + \else + \vskip \z@ plus .2pt + {\hangindent #2\relax + \rightskip \@tocrmarg \parfillskip -\rightskip + \parindent #2\relax \@afterindenttrue + \interlinepenalty\@M \leavevmode + \@tempdima #3\relax #4\nobreak \hfill \nobreak +%% DF +% \hbox to\@pnumwidth{\hfil\reset@font\rm \ }\par}\fi} + \hbox to\@pnumwidth{\hfil\reset@font\rmfamily \ }\par}\fi} +%% +\def\tableofcontents{\@restonecolfalse + \if@twocolumn\@restonecoltrue\onecolumn\fi + \section*{Contents} \@starttoc{toc} + \if@restonecol\twocolumn\fi \par\vspace{11pt}} +\def\l@part#1#2{\addpenalty{-\@highpenalty} + \addvspace{2.25em plus 1pt} + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth +%% DF +% {\reset@font\normalsize\rm + {\reset@font\normalsize\rmfamily +%% + \leavevmode \hspace*{3pc} + #1\hfil \hbox to\@pnumwidth{\hss \ }}\par + \nobreak \global\@nobreaktrue + \everypar{\global\@nobreakfalse\everypar{}}\endgroup} +\def\l@section#1#2{\addpenalty{\@secpenalty} + \@tempdima 1.5em + \begingroup + \parindent \z@ \rightskip \@pnumwidth +%% DF +% \parfillskip -\@pnumwidth \reset@font\rm \leavevmode + \parfillskip -\@pnumwidth \reset@font\rmfamily \leavevmode +%% + \advance\leftskip\@tempdima \hskip -\leftskip + #1\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss \ }\par + \endgroup} +\def\l@subsection{\@undottedtocline{2}{1.5em}{2.3em}} +\def\l@subsubsection{\@undottedtocline{3}{3.8em}{3.2em}} +\def\l@paragraph{\@undottedtocline{4}{7.0em}{4.1em}} +\def\l@subparagraph{\@undottedtocline{5}{10em}{5em}} +\def\listoffigures{\@restonecolfalse + \if@twocolumn\@restonecoltrue\onecolumn\fi + \section*{List of Figures\@mkboth{List of Figures}{List of Figures}} + \@starttoc{lof} \if@restonecol\twocolumn\fi} +\def\l@figure{\@undottedtocline{1}{1.5em}{2.3em}} +\def\listoftables{\@restonecolfalse + \if@twocolumn\@restonecoltrue\onecolumn\fi + \section*{List of Tables\@mkboth{List of Tables}{List of Tables}} + \@starttoc{lot} \if@restonecol\twocolumn\fi} +\let\l@table\l@figure + +% **************************************** +% * BIBLIOGRAPHY * +% **************************************** +% +% == enumeated bibliography entries == +% +% \def\thebibliography#1{\subsection*{References} +% \addcontentsline{toc}{section}{References} +% \list{\arabic{enumi}.}{\usecounter{enumi}% +% \leftmargin 18pt +% \labelwidth\leftmargin\advance\labelwidth-\labelsep +% \let\makelabel\makeRLlabel +% \itemsep 5.5pt plus 1pt minus 1pt% +% } +% \parindent\z@ +% \parskip\z@ plus .1pt\relax +% \def\newblock{\hskip .11em plus .33em minus .07em} +% \sloppy\clubpenalty4000\widowpenalty4000 +% \sfcode`\.=1000\relax +% } +% +% +% == bib entries labeled by short-cite key == +% +% \def\thebibliography#1{\subsection*{References} +% \addcontentsline{toc}{section}{References} +% \list{\relax}{% +% \settowidth \labelwidth {\@biblabel {#1}} +% \leftmargin \labelwidth \advance \leftmargin \labelsep +% \let\makelabel\makeRLlabel +% \itemsep 5.5pt plus 1pt minus 1pt% +% } +% \parindent\z@ +% \parskip\z@ plus .1pt\relax +% \def\newblock{\hskip .11em plus .33em minus .07em} +% \sloppy\clubpenalty4000\widowpenalty4000 +% \sfcode`\.=1000\relax +% } +% +% == compact layout with bib entries labeled by short-cite key == +% +\newlength{\bibhang}% set length of hanging indentation for bib entries +\setlength{\bibhang}{1em} +% +\def\thebibliography#1{\subsection*{Références} + \addcontentsline{toc}{section}{Références} + \list{\relax}{% + \setlength{\itemindent}{0pt} + \setlength{\leftmargin}{\bibhang} + \itemsep 4pt plus 1pt minus 1pt% +}% + \parindent\z@ + \parskip\z@ plus .1pt\relax + \def\newblock{\hskip .11em plus .33em minus .07em}% + \sloppy\clubpenalty4000\widowpenalty4000% + \sfcode`\.=1000\relax +} +% +\let\endthebibliography=\endlist +% \def\@biblabel#1{\hspace*{-\labelsep}#1.} +% \def\@biblabel#1{[#1]} +\def\@biblabel#1{[#1] \ } +% +% \def\@cite#1{{\reset@font\scriptsize\mbox{$^{#1}$}}} +\def\@cite#1{\mbox{[#1]}} + +% introduce command \shortcite (defined as \cite) +% +\let\shortcite=\cite + +% **************************************** +% * THE INDEX * +% **************************************** +% +\newif\if@restonecol +\def\theindex{\section*{Index} + \addcontentsline{toc}{section}{Index} + \reset@font\footnotesize \parindent\z@ \parskip\z@ plus .1pt\relax + \let\item\@idxitem} +\def\@idxitem{\par\hangindent 1em} +\def\subitem {\par\hangindent 1em \hspace*{1em}} +\def\subsubitem{\par\hangindent 1em\hspace*{1em}} +\def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi} +\def\indexspace{\par\vskip\baselineskip \relax} + +% **************************************** +% * FOOTNOTES * +% **************************************** +% +% \def\footnoterule{\kern-3\p@ \hrule width 12pc height \z@ \kern 3\p@} +% +% DF +\renewcommand\footnoterule{% + \kern-3\p@ + \hrule\@width.4\columnwidth + \kern2.6\p@} + +\renewcommand{\thefootnote}{\mbox{{$\fnsymbol{footnote}$}}} + +% \def\@fnsymbol#1{\ifcase#1\or \dagger\or \ddagger\or +% \S \or \P \or \|\or **\or \dagger\dagger \or +% \ddagger\ddagger\or \S\S\or \P\P\or \|\|\else ***\fi\relax} +% +% DF +\def\@fnsymbol#1{\ifcase#1\or \dagger\or \ddagger\or + \mathchar "278\or \mathchar "27B\or \|\or **\or \dagger\dagger \or + \ddagger\ddagger\or \mathchar "278\mathchar "278\or + \mathchar "27B\mathchar "27B\or \|\|\else ***\fi\relax} + +\long\def\@makefntext#1{\parindent 1em\noindent + $^{\@thefnmark}$\hspace{4pt}#1} + +% redefine footnotes to issue a warning... +\def\footnote{% + \@warning{Footnotes are not permitted in CGF articles -- please remove}% + \@ifnextchar[{\@xfootnote}{\stepcounter{\@mpfn}% + \xdef\@thefnmark{\thempfn}\@footnotemark\@footnotetext}% +} +% **************************************** +% * VERBATIM * +% **************************************** +% verbatim.sty +%% +%% This is file `verbatim.sty' generated +%% on <1991/11/8> with the docstrip utility (v1.1l test). +%% +%% The original source file was `verbatim.doc'. +%% +%% +%% Copyright (C) 1989,1990,1991 by Rainer Schoepf. All rights reserved. +%% +\def\addto@hook#1#2{#1\expandafter{\the#1#2}} +\newtoks\every@verbatim +\every@verbatim={} +\def\@makeother#1{\catcode`#112\relax} +\begingroup + \catcode`\ =\active% +\gdef\@vobeyspaces{\catcode`\ \active\let \@xobeysp}% +\endgroup +\def\@xobeysp{\leavevmode\penalty\@M\ } +\newtoks\verbatim@line +\def\verbatim@startline{\verbatim@line{}} +\def\verbatim@addtoline#1{% + \verbatim@line\expandafter{\the\verbatim@line#1}} +\def\verbatim@processline{\the\verbatim@line\par} +\def\verbatim@finish{\ifcat$\the\verbatim@line$\else + \verbatim@processline\fi} +\begingroup + \catcode`\`=\active + \gdef\verbatim@font{\ttfamily \catcode96\active + \def`{\leavevmode\kern\z@\char96 }} +\endgroup +\def\@verbatim{\the\every@verbatim + \trivlist \item[]% + \addvspace{5.5pt} + \leftskip\@totalleftmargin\rightskip\z@ + \parindent\z@\parfillskip\@flushglue\parskip\z@ + \@@par + \def\par{\leavevmode\null\@@par\penalty\interlinepenalty}% + \obeylines + \verbatim@font + \let\do\@makeother \dospecials} +\def\verbatim{\@verbatim \frenchspacing\@vobeyspaces\verbatim@start} +\@namedef{verbatim*}{\@verbatim\verbatim@start} +\let\endverbatim=\endtrivlist +\expandafter\let\csname endverbatim*\endcsname =\endtrivlist +\def\comment{\@bsphack + \let\do\@makeother\dospecials\catcode`\^^M\active + \let\verbatim@startline\relax + \let\verbatim@addtoline\@gobble + \let\verbatim@processline\relax + \let\verbatim@finish\relax + \verbatim@} +\let\endcomment=\@esphack +\@ifundefined{vrb@catcodes}% + {\def\vrb@catcodes{% + \catcode`\!12\catcode`\[12\catcode`\]12}}{} +\begingroup + \vrb@catcodes + \lccode`\!=`\\ \lccode`\[=`\{ \lccode`\]=`\} + \catcode`\~=\active \lccode`\~=`\^^M + \lccode`\C=`\C + \lowercase{% + \gdef\verbatim@start#1{% + \verbatim@startline + \if\noexpand#1\noexpand~% + \let\next\verbatim@ + \else \def\next{\verbatim@#1}\fi + \next}% + \gdef\verbatim@#1~{\verbatim@@#1!end\@nil}% + \gdef\verbatim@@#1!end{% + \verbatim@addtoline{#1}% + \futurelet\next\verbatim@@@}% + \gdef\verbatim@@@#1\@nil{% + \ifx\next\@nil + \verbatim@processline + \verbatim@startline + \let\next\verbatim@ + \else + \def\@tempa##1!end\@nil{\toks@{##1}}% + \@tempa#1\@nil + \@temptokena{!end}% + \edef\next{\noexpand\verbatim@test\the\toks@\noexpand~}% + \fi \next}% + \gdef\verbatim@test#1{% + \let\next\verbatim@test + \if\noexpand#1\noexpand~% + \expandafter\verbatim@addtoline + \expandafter{\the\@temptokena}% + \verbatim@processline + \verbatim@startline + \let\next\verbatim@ + \else \if\noexpand#1 + \@temptokena\expandafter{\the\@temptokena#1}% + \else \if\noexpand#1\noexpand[% + \let\@tempc\@empty + \let\next\verbatim@testend + \else + \expandafter\verbatim@addtoline + \expandafter{\the\@temptokena}% + \def\next{\verbatim@#1}% + \fi\fi\fi + \next}% + \gdef\verbatim@testend#1{% + \if\noexpand#1\noexpand~% + \expandafter\verbatim@addtoline + \expandafter{\the\@temptokena[}% + \expandafter\verbatim@addtoline + \expandafter{\@tempc}% + \verbatim@processline + \verbatim@startline + \let\next\verbatim@ + \else\if\noexpand#1\noexpand]% + \let\next\verbatim@@testend + \else\if\noexpand#1\noexpand!% + \expandafter\verbatim@addtoline + \expandafter{\the\@temptokena[}% + \expandafter\verbatim@addtoline + \expandafter{\@tempc}% + \def\next{\verbatim@!}% + \else \expandafter\def\expandafter\@tempc\expandafter + {\@tempc#1}\fi\fi\fi + \next}% + \gdef\verbatim@@testend{% + \ifx\@tempc\@currenvir + \verbatim@finish + \edef\next{\noexpand\end{\@currenvir}% + \noexpand\verbatim@rescan{\@currenvir}}% + \else + \expandafter\verbatim@addtoline + \expandafter{\the\@temptokena[}% + \expandafter\verbatim@addtoline + \expandafter{\@tempc]}% + \let\next\verbatim@ + \fi + \next}% + \gdef\verbatim@rescan#1#2~{\if\noexpand~\noexpand#2~\else + \@warning{Characters dropped after `\string\end{#1}'}\fi}} +\endgroup +\def\verbatiminput{\begingroup + \@ifstar\sverbatim@input\verbatim@input} +\def\sverbatim@input#1{\@verbatim + \@input{#1}\endtrivlist\endgroup\@doendpe} +\def\verbatim@input#1{\@verbatim + \frenchspacing \@vobeyspaces + \@input{#1}\endtrivlist\endgroup\@doendpe} +\begingroup + \lccode`\~=`\^^M + \lowercase{% + \gdef\verb{\begingroup + \verbatim@font + \catcode`\^^M\active + \def~{\endgroup\@latexerr{\string\verb\space command ended by + end of line.}\@ehc}% + \let\do\@makeother \dospecials + \@ifstar\@sverb{\@vobeyspaces \frenchspacing \@sverb}}} +\endgroup +\def\@sverb#1{% + \catcode`#1\active + \lccode`\~`#1% + \lowercase{\let~\endgroup}% + \leavevmode\null} +%\endinput +%% +%% End of file `verbatim.sty'. +% +% SFB modifications to the above +% +\begingroup + \lccode`\~=`\^^M + \lowercase{% + \gdef\verb{\begingroup +% \verbatim@font + \ttfamily + \catcode`\^^M\active + \def~{\endgroup\@latexerr{\string\verb\space command ended by + end of line.}\@ehc}% + \let\do\@makeother \dospecials + \@ifstar\@sverb{\@vobeyspaces \frenchspacing \@sverb}}} +\endgroup +% +% end of myverb.sty +% +\def\verbatim@font{\reset@font\small\ttfamily} + +% **************************************** +% * MISCELLANEOUS * +% **************************************** +% +% DATE +\def\today{\number\day\ \ifcase\month\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December + \fi \ \number\year} + +% **************************************** +% * HYPERLINK SUPPORT * +% **************************************** +% + +\RequirePackage{ifpdf} + +\newcommand{\pdf@Subject}{Vol \j@volume, No \j@issue} +\newcommand{\pdfSubject}[1]{\renewcommand{\pdf@Subject}{#1}} + +\newif\ifproduce@print +\produce@printtrue + +\newcommand{\printedVersion}{\global\produce@printtrue} + +\newcommand{\electronicVersion}{\global\produce@printfalse} + +\ifpdf + \newcommand{\electronic@Version}{% + \usepackage[pdftex, + pagebackref=true, + colorlinks,linkcolor=blue,citecolor=blue,urlcolor=blue, + bookmarks=false, + pdfpagemode=UseNone, + pdftitle={\@shorttitle}, + pdfauthor={\@shortauthor}, + pdfsubject={\pdf@Subject}, + pdfkeywords={Computer Graphics Forum, EUROGRAPHICS}]{hyperref} + } + \newcommand{\printed@Version}{% + \usepackage[pdftex, + pagebackref=false, + colorlinks,linkcolor=black,citecolor=black,urlcolor=black, + bookmarks=false, + pdfpagemode=UseNone, + pdftitle={\@shorttitle}, + pdfauthor={\@shortauthor}, + pdfsubject={\pdf@Subject}, + pdfkeywords={Computer Graphics Forum, EUROGRAPHICS}]{hyperref} + } +\else + \newcommand{\electronic@Version}{% + \usepackage[dvips, + pagebackref=true, + colorlinks,linkcolor=blue,citecolor=blue,urlcolor=blue, + bookmarks=false, + pdfpagemode=UseNone, + pdftitle={\@shorttitle}, + pdfauthor={\@shortauthor}, + pdfsubject={\pdf@Subject}, + pdfkeywords={Computer Graphics Forum, EUROGRAPHICS}]{hyperref} + } + \newcommand{\printed@Version}{% + \usepackage[dvips, + pagebackref=false, + colorlinks,linkcolor=black,citecolor=black,urlcolor=black, + bookmarks=false, + pdfpagemode=UseNone, + pdftitle={\@shorttitle}, + pdfauthor={\@shortauthor}, + pdfsubject={\pdf@Subject}, + pdfkeywords={Computer Graphics Forum, EUROGRAPHICS}]{hyperref} + } +\fi + +\newcommand{\PrintedOrElectronic}{% +\ifproduce@print \printed@Version \else \electronic@Version \fi +} + +% **************************************** +% * INITIALIZATION * +% **************************************** +% +\pagenumbering{arabic} +\if@twocolumn + \twocolumn + \sloppy +\fi +\ifSFB@galley + \ps@empty + \raggedbottom +\else + \ps@headings + \flushbottom +\fi +\frenchspacing + +\AtBeginDocument{{\setcounter{page}{\j@pStartPage}}} + +\gdef\jobname@lbl{\jobname.lbl}% +\InputIfFileExists{\jobname.lbl}{}{}% +\def\label@out{9}% +\immediate\openout\label@out=\jobname@lbl% + +\AtEndDocument{% +\immediate\write\label@out{\string\pEndPage{\thepage}\string\endinput}% +} + +%\JournalSubmission +\JournalPaper + +% --------------------- +%% DF add-on to set variable parameters for the publication run +% +% for journal papers - if known at compile time +% +% \issue{3} % the issue to appear in (year + volume are computed) +% \pStartPage{x} % set starting page + +\endinput +%%%%%%%%%%%%%%%%%%%%%% end of afig.cls %%%%%%%%%%%%%%%%%%%%%% diff --git a/rapport/rapport.bib b/rapport/rapport.bib new file mode 100644 index 0000000..3d26794 --- /dev/null +++ b/rapport/rapport.bib @@ -0,0 +1,14 @@ +@phdthesis{rouxellabbe:tel-01419457, + TITLE = {{Anisotropic mesh generation}}, + AUTHOR = {Rouxel-Labbe, Mael}, + URL = {https://tel.archives-ouvertes.fr/tel-01419457}, + NUMBER = {2016AZUR4150}, + SCHOOL = {{Universit{\'e} C{\^o}te d'Azur}}, + YEAR = {2016}, + MONTH = Dec, + KEYWORDS = {Riemannian Geometry ; Voronoi diagram ; Delaunay triangulation ; Mesh generation ; Anisotropy ; G{\'e}n{\'e}ration de maillages ; G{\'e}ometrie Riemannienne ; Diagramme de Voronoi ; Triangulation de Delaunay ; Anisotropie}, + TYPE = {Theses}, + PDF = {https://tel.archives-ouvertes.fr/tel-01419457v2/file/2016AZUR4150.pdf}, + HAL_ID = {tel-01419457}, + HAL_VERSION = {v2}, +} diff --git a/rapport/rapport.tex b/rapport/rapport.tex new file mode 100644 index 0000000..c9d5198 --- /dev/null +++ b/rapport/rapport.tex @@ -0,0 +1,48 @@ +\documentclass{gig} + +\usepackage[utf8]{inputenc} +\usepackage[french]{babel} +\usepackage[T1]{fontenc} +\usepackage{url} +\usepackage{caption} + +\title{Génération de maillages anisotropes} +\author[Jérémy André, Cyril Colin et Christine Cozzolino] + {Jérémy André$^1$, Cyril Colin$^1$ et Christine Cozzolino$^1$ + \\ + $^1$Aix-Marseille Université} + +\begin{document} + +\maketitle + +\begin{abstract} + Nous étudions dans ce rapport la génération de maillages volumiques + anisotropes à partir de maillages surfaciques. Nous commençons par + une analyse des travaux de la thèse de Mael + Rouxel-Labbé\cite{rouxellabbe:tel-01419457}. Nous redéfinissons + ensuite les objectifs du projet, et présentons notre méthode pour y + répondre. Enfin, nous analysons les résultats obtenus. +\end{abstract} + +\keywords{Génération de maillages, Maillages volumiques, Anisotropie} + +\section{Présentation du sujet} +\section{Présentation de la thèse} +\section{Justification de la non-utilisation des travaux de la thèse} +\section{Redéfinition des objectifs} +\section{Présentation de notre méthode} +\subsection{Plaquage des points sur maillage surfacique} +\subsubsection{Recherche du point le plus proche} +\subsubsection{Mouvement pondéré du voisinage} +\subsection{Régularisation} +\section{Implémentation} +\section{Métrique de qualité} +\section{Résultats} +\subsection{Analyse d'un cas déféctueux} + +\newpage +\bibliography{rapport} +\bibliographystyle{refig-alpha} + +\end{document} diff --git a/rapport/refig-alpha.bst b/rapport/refig-alpha.bst new file mode 100644 index 0000000..a7d0088 --- /dev/null +++ b/rapport/refig-alpha.bst @@ -0,0 +1,1449 @@ +% EG: bibliographies style for EUROGRAPHICS publications +% derived from BI_NUM (which originates from ACM Transactions bibliography style) +% and ALPHA (with \etalchar{*}). +% +% modifications: +% - labels for bibitem are computed according to alpha.bst +% - names are included in {\sc ... :} +% - no period after line listing the authors +% - no comma within a name +% - names are separated by comma +% - new database item STANDARD; its like MANUAL but an optional +% VERSION field is added after TITLE +% +% History +% 7.08.90 (DF) above modifications +% 20.11.90 (DF) add title handling for GARTICLE: format.german.title +% 24.05.91 (DF) port to BibTeX 0.99 (using ACM.BST as the source to start from) +% 10.04.93 (DF) fix semicolon between editors and "(Ed[s].)": scapify; +% use \uppercase{longest.label} to reserve enough space +% 11.09.03 (DF) adapt to LateX 2e conventions +% 9.01.06 (DF) Fixing double ',' after second editor in format.innames +% contributed by Dmitry Sokolov +% +% +% ACM Transactions bibliography style (24-Jan-88 version) +% A lot like abbrv.bst, but names come out "Last, initials", and in \sc. +% Some dates are parenthesized. +% +% History +% 2/ 6/86 (HWT) Original version, by Howard Trickey. +% 3/ 5/86 (HWT) Put in pp. everywhere but articles, as per ACM style. +% 1/24/88 (OP&HWT) Updated for BibTeX version 0.99a, Oren Patashnik; +% corrected the abbreviations to "Mar." and "Sept."; +% THIS `acm' VERSION DOES NOT WORK WITH BIBTEX 0.98i. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + version + volume + year + } + {} + { label extra.label sort.label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output.nonnull.noperiod} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.noperiod} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull.noperiod + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {output.check.noperiod} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull.noperiod + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +FUNCTION {emphasizeic} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +FUNCTION {scapify} +{ duplicate$ empty$ + { pop$ "" } + { "\textsc{" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}{ jj}{ f.}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { ", et~al." * } + { ", " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +% For names inside entries (e.g., editors of an "In ..."); +% this is exactly ABBRV.BST's `format.names' function. +FUNCTION {format.innames} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}{ jj}{ f.}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { +% FWD 9.1.06 +% Fixing double ',' after second editor - by Dmitry Sokolov, Jan 06: +% { numnames #2 > +% { "," * } +% 'skip$ +% if$ + t "others" = + { " et~al." * } + { ", " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names scapify ":" * } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names scapify + editor num.names$ #1 > + { " (Eds.):" * } + { " (Ed.):" * } + if$ + } + if$ +} + +FUNCTION {format.ineditors} +{ editor empty$ + { "" } + { editor format.innames + editor num.names$ #1 > + { ", (Eds.)" * } + { ", (Ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {format.german.title} +{ title field.or.null +} + +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "vol.~" volume * + series empty$ + 'skip$ + { " de " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "no.~" } + { "No.~" } + if$ + number * + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " dans " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ "~ed." * } + { edition "t" change.case$ "~ed." * } + if$ + } + if$ +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages n.dashify } + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not t empty$ not and } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pp.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify * } + { "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {format.journal.vol.num.date} +{ journal empty$ + { "empty journal in " cite$ * warning$ + "" + } + { journal + volume empty$ + 'skip$ + { ". Vol. " * volume * } + if$ + number empty$ + 'emphasizeic + { emphasize ", Num. " * number * } + if$ + year empty$ + { "empty year in " cite$ * warning$ } + { " (" * format.date * ")" * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pp.pages + { type empty$ + { "ch.~" chapter * } + { type "l" change.case$ chapter tie.or.space.connect } + if$ + pages empty$ + 'skip$ + { ", " * format.pp.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { "In " booktitle emphasize * + editor empty$ + 'skip$ + { ", " * format.ineditors * } + if$ + } + if$ +} + +% The proceedings title (it's on the stack) gets an (address, date) appended +FUNCTION {format.proc.date} +{ duplicate$ empty$ + { pop$ "" } + { year empty$ + { "empty year in " cite$ * warning$ + address empty$ + 'emphasize + { emphasizeic + " (" * address * ")" * + } + if$ + } + { emphasizeic + " (" * + address empty$ + 'skip$ + { address * ", " * } + if$ + format.date * + ")" * + } + if$ + } + if$ +} + +FUNCTION {format.in.proc.date} +{ booktitle empty$ + { "" } + { "In " booktitle format.proc.date * } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Tech. Rep." } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In \emph{" journal * "}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{vv~}{ll}{ jj}{ f.}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "dans " + } + { "Vol.~" volume * + " de " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "\emph{" * series * "}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "Dans \emph{" booktitle * "}" * } + if$ + } + { "Dans " key * } + if$ + } + { "Dans " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check.noperiod + new.block + crossref missing$ + { format.journal.vol.num.date output + format.pages output + } + { format.article.crossref output.nonnull + format.pp.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {garticle} +{ output.bibitem + format.authors "author" output.check + new.block + format.german.title "title" output.check.noperiod + new.block + crossref missing$ + { format.journal.vol.num.date output + format.pages output + } + { format.article.crossref output.nonnull + format.pp.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check.noperiod + format.edition output + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check.noperiod + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check.noperiod + format.edition output + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.date "year" output.check + format.chapter.pages "chapter and pages" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check.noperiod + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.edition output + format.bvolume output + format.number.series output + new.sentence + publisher "publisher" output.check + address output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull } + if$ + format.chapter.pages output + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check.noperiod + new.block + crossref missing$ + { format.in.proc.date "booktitle" output.check + format.ineditors output + format.bvolume output + format.number.series output + organization output + publisher output + } + { format.incoll.inproc.crossref output.nonnull } + if$ + format.pp.pages output + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization scapify " :" * output } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check.noperiod + format.edition output + author empty$ + { address new.block.checka } + { organization address new.block.checkb + organization output + } + if$ + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {standard} +{ output.bibitem + author empty$ + { organization scapify " :" * output } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check.noperiod + version output + format.edition output + author empty$ + { address new.block.checka } + { organization address new.block.checkb + organization output + } + if$ + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check.noperiod + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output.noperiod + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check.noperiod + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization scapify " :" * output } + { format.editors output.nonnull } + if$ + new.block + title format.proc.date "title" output.check + format.bvolume output + format.number.series output + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check.noperiod + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check.noperiod + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"janvier"} + +MACRO {feb} {"février"} + +MACRO {mar} {"mars"} + +MACRO {apr} {"avril"} + +MACRO {may} {"mai"} + +MACRO {jun} {"juin"} + +MACRO {jul} {"juillet"} + +MACRO {aug} {"août"} + +MACRO {sep} {"septembre"} + +MACRO {oct} {"octobre"} + +MACRO {nov} {"novembre"} + +MACRO {dec} {"décembre"} + +MACRO {acmcg} {"Computer Graphics"} + +MACRO {acmcs} {"ACM Comput. Surv."} + +MACRO {acta} {"Acta Inf."} + +MACRO {c&g} {"Computers \& Graphics"} + +MACRO {cacm} {"Commun. ACM"} + +MACRO {cgforum} {"Computer Graphics Forum"} + +MACRO {computer} {"IEEE Computer"} + +MACRO {ibmjrd} {"IBM J. Res. Dev."} + +MACRO {ibmsj} {"IBM Syst.~J."} + +MACRO {ieeecg} {"IEEE CG\&A"} + +MACRO {ieeese} {"IEEE Trans. Softw. Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Comput. Syst. Sci."} + +MACRO {scp} {"Sci. Comput. Programming"} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM TOG"} + +MACRO {tosem} {"ACM Trans. Softw. Eng. Method."} + +MACRO {toms} {"ACM Trans. Math. Softw."} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Program. Lang. Syst."} + +MACRO {tcs} {"Theoretical Comput. Sci."} + +READ + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +%% DF 24.5.91 +%% insert from ALPHA.bst %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{*}}" * + #1 'et.al.char.used := + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{*}}" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'label := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} + +%% end insert from ALPHA.bst %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ calc.label %% DF 24.5.91: inserted from ALPHA + sort.label %% DF 24.5.91: inserted from ALPHA + " " %% DF 24.5.91: inserted from ALPHA + * %% DF 24.5.91: inserted from ALPHA + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + type$ "standard" = + or + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + * %% DF 24.5.91: inserted from ALPHA + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.sort.label next.extra } + +INTEGERS { longest.label.width last.extra.num } + +FUNCTION {initialize.longest.label} %% DF 24.5.91: whole function replaced from ALPHA +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} + +%% DF 24.5.91 +%% FUNCTION {longest.label.pass} ... +%% replaced by + +FUNCTION {forward.pass} +{ last.sort.label sort.label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + sort.label 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + extra.label 'next.extra := +} + +%% end replace %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +EXECUTE {initialize.longest.label} + +%% DF 24.5.91: +%% replace ITERATE {longest.label.pass} +%% by: + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +%% end replacement %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {begin.bib} +{ et.al.char.used %% insert from ALPHA + { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } %% insert from ALPHA + 'skip$ %% insert from ALPHA + if$ %% insert from ALPHA + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{\uppercase{" longest.label * "}}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib}