%^^A ================================================================= %^^A Some basic integrity-test stuff %^^A ================================================================= % \CheckSum{1704} % % \iffalse %<*ID> % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z % Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z % Digits \0\1\2\3\4\5\6\7\8\9 % Exclamation \! Double quote \" Hash (number) \# % Dollar \$ Percent \% Ampersand \& % Acute accent \' Left paren \( Right paren \) % Asterisk \* Plus \+ Comma \, % Minus \- Point \. Solidus \/ % Colon \: Semicolon \; Less than \< % Equals \= Greater than \> Question mark \? % Commercial at \@ Left bracket \[ Backslash \\ % Right bracket \] Circumflex \^ Underscore \_ % Grave accent \` Left brace \{ Vertical bar \| % Right brace \} Tilde \~} %^^A ================================================================= %^^A Here is a `conference proceedings' class. %^^A For a short installation guide, see below %^^A ================================================================= %%% @LaTeX-package-file{ %%% author = "Vincent Verfaille", %%% version = "v0.7", %%% date = "$Date: 2010/08/05 00:00:01 $", %%%^^A ^^A\changes{0.1d}{2007/07/31}{Renaming 'procconf' into 'confproc'} %%% filename = "confproc.dtx, %%% address = "Vincent Verfaille, Montreal, QC, Canada", %%% URL = "http://vincent.verfaille.free.fr/confproc/", %%% email = "verf[...].confproc@gmail.com", %%% codetable = "ISO/ASCII", %%% keywords = "conference, proceedings, documentclass, build, tools", %%% dependencies = "\LaTeXe", %%% supported = "yes", %%% abstract = " Confproc is a LaTeX2e package providing a new document-class together %%% with various tools (Perl and Unix/bash scripts) for building conference %%% proceedings, or concatenating any set of PDFs with a table of contents, %%% index, bookmarks and general bibliography. The LaTeX2e class is mainly %%% based on the 'pdfpages' package for PDF papers inclusion, and the %%% 'hyperref' package for creating proper links, bookmarks and general %%% bibliography back references. It also uses many other packages for fine %%% tuning the table of contents, bibliography and index of authors. %%% Current version 0.7 is a major update with key-value option management. %%% The added value of this class is in the time saved to quickly design %%% conference proceedings or any collection of PDFs." %%% docstring = "LaTeX2e package providing a new document-class together %%% with various tools (Perl and Unix/bash scripts) for building conference %%% proceedings, or concatenating any set of PDFs with a table of contents, %%% index, bookmarks and general bibliography.", %%% copyright = "confproc.dtx, the documented macro-file for the confproc package %%% Copyright (c) 2010 by Vincent Verfaille %%% %%% %%% This program may be distributed and/or modified under the conditions %%% of the LaTeX Project Public License, either version 1.2 of this license %%% or (at your option) any later version. %%% %%% The latest version of this license is in %%% http://www.latex-project.org/lppl.txt %%% and version 1.2 or later is part of all distributions of LaTeX version %%% 1999/12/01 or later. %%% %%% This program consists of the confproc.dtx file." %%% } % % %<*install> %^^A ================================================================= %^^A Purpose of this package %^^A ================================================================= % % Confproc is a LaTeX2e package providing a new document-class together % with various tools (Perl and Unix/bash scripts) for building conference % proceedings, or concatenating any set of PDFs with a table of contents, % index, bookmarks and general bibliography. The LaTeX2e class is mainly % based on the \package{pdfpages} package for PDF papers inclusion, and the % \package{hyperref} package for creating proper links, bookmarks and general % bibliography back references. It also uses many other packages for fine % tuning the table of contents, bibliography and index of authors. % Current version 0.7 is a major update with key-value option management. % The added value of this class is in the time saved to quickly design % conference proceedings or any collection of PDFs. % %^^A ================================================================= %^^A Installation of this package %^^A ================================================================= % Installation: % LaTeX this file: creates docstrip installation file % confproc.ins, readme.txt AND the (LaTeX2e) % documentation % (La)TeX confproc.ins: creates class file confproc.cls, example % file exampleN.tex and documentation % driver confproc.drv % % Docstrip options available: % package - to produce a (LaTeX2e) class file (.cls) % driver - to produce a driver file to print the documentation % example - to produce example files, which demonstrate the % possibilities of this package % % % \fi % \iffalse %\changes{0.1}{2007/08/01}{Readme updated} %<*readme> %^^A ================================================================= %^^A Here is the readme.txt file %^^A It is written on first LaTeX run if it does not already exist %^^A ================================================================= \begin{filecontents*}{readme.txt} The confproc package ($Date: 2010/08/05 00:00:01 $) Copyright (c) 2010 by Vincent Verfaille Purpose: Confproc is a LaTeX2e package providing a new document-class together with various tools (Perl and Unix/bash scripts) for building conference proceedings, or concatenating any set of PDFs with a table of contents, index, bookmarks and general bibliography. The LaTeX2e class is mainly based on the 'pdfpages' package for PDF papers inclusion, and the 'hyperref' package for creating proper links, bookmarks and general bibliography back references. It also uses many other packages for fine tuning the table of contents, bibliography and index of authors. Current version 0.7 is a major update with key-value option management. The added value of this class is in the time saved to quickly design conference proceedings or any collection of PDFs. Files: - main file: confproc.dtx Docstrip archive To generate the doc, run this through LaTeX. - class files: confproc.ins Batch file (do: pdflatex confproc.dtx) confproc.drv Driver for documentation (do: pdflatex confproc.ins) Edit to generate customized doc + pdflatex confproc.drv confproc.cls LaTeX package (do: pdflatex confproc.ins) confproc.cfg Configuration file (do: pdflatex confproc.ins) confproc.dvi Package documentation (do: pdflatex confproc.drv) - example files (do: pdflatex confproc.ins): confproc1.ist Index style confproc2.ist Index style example1empty.tex Simplest example file example2custom.tex Customized example file example3optim.tex Idem with automatic program generation example4optim.tex Idem with option management expapersswitch.tex Paper switch for paper insertion exsessions.tex Program sessions exclasspre.tex Class options for 1st pdflatex runs on 'example4optim.tex' exclasslastpb.tex Class options for last pdflatex run (paperback version) exclasslastel.tex Class options for last pdflatex run (electronic version) exbiblio.bib Bibliography for example*optim.tex exprogram.csv Comma-separated conference program newapave.bst Bibliography style from 'newapa.bst' newapave.sty Bibliography style from 'newapa.sty' - example scripts (do: pdflatex confproc.ins): prepareexample.sh Unix/bash script to prepare example files and folders (used it after running LaTeX on .dtx and .ins) buildproc.sh Unix/bash script: build the 'example3optim.tex' example buildprocelpb.sh Unix/bash script: build the 'example4optim.tex' example with paperback and electronic PDF versions & individual papers extracted buildpapers.sh Unix/bash script: re-build all the papers buildcppdfpapers.sh Unix/bash script: copy papers to the right spot countnbpages.sh Unix/bash script: count PDFs nb of pages Requires 'pdftk' to be installed. Get it from: http://www.pdftk.com or http://www.accesspdf.com/pdftk/ exportIndividualPDFs.sh Unix/bash scrit using pdftk to extract each individual paper from the proceedings, for proper page numbering and headers. Requires 'pdftk' and 'Ghostscript' to be installed. generateswitch.pl Perl script generating 'expapersswitch.tex' from 'exprogram.csv'. Requires Perl to be installed. papersinfo.sh Unix/bash script to generate individual PDFs with proper metadata. Requires 'pdftk' to be installed. paperssplitpreamble.sh preamble of a Unix/bash script (papersplit.sh) generated by exportIndividualPDFs.sh removeLaTeXcmds.sh Unix/bash script to remove LaTeX accents and commands for titles in PDF metadata. Requires Perl to be installed. Read me: readme.txt This file (do: pdflatex confproc.dtx) Installation: pdflatex confproc.dtx Creates docstrip installation file confproc.ins and this file pdflatex confproc.ins Creates 'confproc.cls' class file, example files, scripts and documentation drive 'confproc.drv' Docstrip options available: package - to produce a (LaTeX2e) class file (.cls) driver - to produce a driver file to print the documentation example - to produce an example file, which demonstrates the possibilities of the package Move confproc.cls into a directory searched by LaTeX. pdflatex confproc.dtx Creates the (LaTeX2e) documentation. optionally: Edit confproc.drv and customize the documentation to your wishes. LaTeX confproc.drv Generates customized documentation. Depending on your customization you will have to run makeindex confproc.idx -s gind.ist -o confproc.ind and/or makeindex confproc.glo -s gglo.ist -o confproc.gls pdfLaTeX example*.tex Demonstrate the possibilities of this package. Contact: E-Mail: verf[...].confproc@gmail.com Address: Vincent Verfaille, Montreal, QC, Canada Legal stuff: readme.txt, the ReadMe file for the confproc package Copyright (c) 2010 by Vincent Verfaille This file is part of the confproc package. ------------------------------------------- There is no warranty for the confproc package. I provide the program `as is', without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The entire risk as to the quality and performance of the program is with you. Should the program prove defective, you assume the cost of all necessary servicing, repair, or correction. This program may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.2 of this license or (at your option) any later version. The latest version of this license is in http://www.latex-project.org/lppl.txt and version 1.2 or later is part of all distributions of LaTeX version 1999/12/01 or later. This is a generated file. It may not be distributed without the original source file confproc.dtx. This program consists of the confproc.dtx file. Files generated by means of unpacking this program using the docstrip program may be distributed at the distributor's discretion. However if they are distributed then a copy of this program must be distributed together with them. \end{filecontents*} % % %\changes{0.1}{2007/08/01}{Class package finished. Switching to docstrip} %\changes{0.1}{2007/08/01}{Adding creation of all Unix scripts and example files (using \cmd{\nopreamble} and \cmd{\nopostamble}} %<*installer> %^^A ================================================================= %^^A Here is the docstrip installation file %^^A It is written on first LaTeX run if it does not already exist %^^A ================================================================= \begin{filecontents}{confproc.ins} %% confproc.ins, the batch file for the confproc package %% Copyright (c) 2010 by Vincent Verfaille %% %% %% This file is part of the confproc package. %% ------------------------------------------- %% %% It may be distributed and/or modified under the conditions of the %% LaTeX Project Public License, either version 1.2 of this license or %% (at your option) any later version. %% %% The latest version of this license is in %% http://www.latex-project.org/lppl.txt %% and version 1.2 or later is part of all distributions of LaTeX %% version 1999/12/01 or later. %% %% In particular, NO PERMISSION is granted to modify the contents of %% this file since it contains the legal notices that are placed in %% the files it generates. %% %% This file may not be distributed without the original source file %% confproc.dtx. %% %% The list of all files belonging to the confproc package is given %% in the `readme.txt' file. %% %% This file will generate fast loadable files and documentation %% driver files from the .dtx files in this package when run through %% LaTeX or TeX. %% %% ------------------- start of docstrip commands ------------------- \def\batchfile{confproc.ins} \input docstrip.tex % \ifToplevel{\ifx\askonceonly\undefined% \Msg{******************}% \Msg{*}% \Msg{* This installation requires docstrip}% \Msg{* version 2.4e or later.}% \Msg{*}% \Msg{* An older version of docstrip has been input}% \Msg{*}% \Msg{******************}% \errhelp{Move or rename old docstrip.tex.}% \errmessage{Old docstrip in input path}% \batchmode% \csname @@end\endcsname% \fi% }% % %% Define standard text: % \def\nline{^^J\MetaPrefix\space}% \def\stdtext{% Copyright (c) 2010 by Vincent Verfaille \nline\nline% This file is part of the confproc package.\nline% -------------------------------------------\nline\nline% It may be distributed and/or modified under the conditions of the\nline% LaTeX Project Public License, either version 1.2 of this license or\nline% (at your option) any later version.\nline\nline% The latest version of this license is in\nline% \space\space http://www.latex-project.org/lppl.txt\nline% and version 1.2 or later is part of all distributions of LaTeX version\nline% 1999/12/01 or later.\nline\nline% This file may not be distributed without the original source file\nline% `\inFileName'.\nline\nline% The list of all files belonging to the confproc package is given in\nline% the `readme.txt' file.} % %% Declare preambles (and use \stdtext): % \declarepreamble\driver This is `\outFileName', the documentation driver for the confproc package. \stdtext This is the driver file to produce the LaTeX documentation from the original source file `\inFileName'. Make changes to it as needed. (Never edit the file `\inFileName'!) \endpreamble% % \declarepreamble\package This is `\outFileName', a LaTeX2e package to build conference proceedings. \stdtext For more details, LaTeX the source `\inFileName'. \endpreamble% % \declarepreamble\scripts \endpreamble% % \declarepreamble\example This is `\outFileName', an example file for the confproc package. \stdtext For more details, LaTeX the source `\inFileName'. \endpreamble% % \declarepreamble\config This is `\outFileName', a configuration file for the confproc package. \stdtext For more details, LaTeX the source `\inFileName'. \endpreamble% % \keepsilent% % %% Greeting: % \askforoverwritefalse %%\askforoverwritetrue% uncomment if you wish to avoid over-writing a file %%\askonceonly% better of commented as it asks SEVERAL times % \ifToplevel{% \Msg{}% \Msg{**********************}% \Msg{* Hello to the installation of the `confproc' package. *}% \Msg{**********************}% \Msg{}% \Msg{*********}% \Msg{* Generating files... *}% \Msg{*********}% }% % %% File generation: % \generate{% \nopreamble\nopostamble\file{prepareexample.sh}{\from{confproc.dtx}{prepareexample}}% \usepreamble\example\file{example1empty.tex}{\from{confproc.dtx}{example1empty}}% \file{example2custom.tex}{\from{confproc.dtx}{example2custom}}% \file{example3optim.tex}{\from{confproc.dtx}{example3optim}}% \file{expapersswitch.tex}{\from{confproc.dtx}{expapersswitch}}% \file{expages.tex}{\from{confproc.dtx}{expages}}% \nopreamble\nopostamble\file{exclasspre.tex}{\from{confproc.dtx}{exclasspre}}% \file{exclasslastel.tex}{\from{confproc.dtx}{exclasslastel}}% \file{exclasslastpb.tex}{\from{confproc.dtx}{exclasslastpb}}% \file{exbiblio.bib}{\from{confproc.dtx}{exbiblio}}% \file{generateswitch.pl}{\from{confproc.dtx}{generateswitch}}% \file{exprogram.csv}{\from{confproc.dtx}{exprogram}}% \file{buildpapers.sh}{\from{confproc.dtx}{buildpapers}}% \file{buildproc.sh}{\from{confproc.dtx}{buildproc}}% \file{buildprocelpb.sh}{\from{confproc.dtx}{buildprocelpb}}% \file{buildcppdfpapers.sh}{\from{confproc.dtx}{buildcppdfpapers}}% \file{countnbpages.sh}{\from{confproc.dtx}{countnbpages}}% \file{removeLaTeXcmds.sh}{\from{confproc.dtx}{removeLaTeXcmds}}% \file{exportIndividualPDFs.sh}{\from{confproc.dtx}{exportIndividualPDFs}}% \file{papersinfo.sh}{\from{confproc.dtx}{papersinfo}}% \file{paperssplitpreamble.sh}{\from{confproc.dtx}{paperssplitpreamble}}% % \nopreamble\nopostamble\file{newapave.bst}{\from{confproc.dtx}{newapavebst}}% % \nopreamble\nopostamble\file{newapave2.sty}{\from{confproc.dtx}{newapavesty}}% DO NOT UNCOMMENT OTHERWISE IT STRIPS A SECONDTIME THE COMMENTS... % \usepreamble\example\file{example4optim.tex}{\from{confproc.ins}{example4optim}}% % \usedir{tex/latex/misc}% \usepreamble\driver\file{confproc.drv}{\from{confproc.dtx}{driver}}% \usepreamble\config\file{confproc.cfg}{\from{confproc.dtx}{config}}% \usepreamble\package\file{confproc.cls}{\from{confproc.dtx}{package}% \nopreamble\nopostamble\file{buildcls.sh}{\from{confproc.dtx}{buildcls}}% \nopreamble\nopostamble\file{cleancls.sh}{\from{confproc.dtx}{cleancls}}% }% }% % %% Report: % \ifToplevel{% \Msg{}% \Msg{********************}% \Msg{*}% \makeatletter\@ifundefined{basedir}{% \Msg{* To finish the installation you have to move the following}% \Msg{* file into a directory searched by LaTeX:}% }{% \Msg{* The following file has been automatically created in a}% \Msg{* directory searched by LaTeX:}% }\makeatother% \Msg{*}% \Msg{* \space\space confproc.cls}% \Msg{*}% \makeatletter\@ifundefined{basedir}{% \Msg{* Using a TDS compatible TeX distribution, this would be e.g.}% \Msg{* tex/latex/misc of your main or your local or your private}% \Msg{* texmf path. If you don't know these paths, have a look}% \Msg{* at your `texmf.cnf' or try:}% \Msg{* \space\space kpsexpand \string\$TEXMFMAIN}% \Msg{* \space\space kpsexpand \string\$TEXMFLOCAL}% \Msg{* \space\space kpsexpand \string\$HOMETEXMF}% \Msg{* You may also use another folder at your TEXINPUTS path.}% }{}\makeatother% \Msg{* To produce the documentation and a example, run the}% \Msg{* following files through LaTeX:}% \Msg{*}% \Msg{* \space\space confproc.drv (three times)}% \Msg{* \space\space exampleN.tex}% \Msg{*}% \Msg{* For the legal stuff please have a look at:}% \Msg{*}% \Msg{* \space\space readme.txt}% \Msg{*}% \Msg{*}% \Msg{* Happy TeXing!}% \Msg{*}% \Msg{********************}% \Msg{}% }% \endbatchfile \end{filecontents} % % %^^A\changes{0.1c}{2007/07/30}{Head: new} %^^A ================================================================= %^^A Here is the header that is written to driver-, example- and %^^A class-file %^^A ================================================================= % % The docdate info. It specifies the date of the documentation, which % may differ from the filedate. (Its ok if docdate is younger. If it % is older, then I forgot documenting. In that case: kick me... ;-) %<*dtx|driver> \def\docdate{2010/08/05} % % % The required LaTeX version: %<*dtx|driver|package|example> \NeedsTeXFormat{LaTeX2e}[1994/12/01]% % % % Identification of the docstrip file: %<*dtx> \ProvidesFile %===================================================================== {confproc.dtx} %===================================================================== % % % Identification of the driver file: %\ProvidesFile{confproc.drv} % % Identification of the example files: % % \ProvidesFile{example1empty.tex} % \ProvidesFile{example2custom.tex} % \ProvidesFile{example3optim.tex} % \ProvidesFile{expapersswitch.tex} % \ProvidesFile{expages.tex} % \ProvidesFile{exclasspre.tex} % \ProvidesFile{exclasslastel.tex} % \ProvidesFile{exclasslastpb.tex} % \ProvidesFile{exbiblio.bib} % \ProvidesFile{generateswitch.pl} % \ProvidesFile{exprogram.csv} % \ProvidesFile{buildpapers.sh} % \ProvidesFile{buildproc.sh} % \ProvidesFile{buildprocelpb.sh} % \ProvidesFile{buildcppdfpapers.sh} % \ProvidesFile{countnbpages.sh} % \ProvidesFile{removeLaTeXcmds.sh} % \ProvidesFile{exportIndividualPDFs.sh} % \ProvidesFile{papersinfo.sh} % \ProvidesFile{paperssplitpreamble.sh} % % Identification of the configuration file: %\ProvidesFile{confproc.cfg} % % Identification of the package file: %\ProvidesClass{confproc} % % Provide command to identify example files: %\def\DescribesFile#1 [#2 #3 #4 (#5)] % {\def\filedate{#2}\def\fileversion{#3}} % % Identification of the example files: %\DescribesFile{confproc.cls} % % The next three lines: % 1.: Identification of the included .dtx-file. % 2.: The date and version for docstrip, driver, example, config, package and dtx file. % 3.: A short description and author for the included .dtx-file. % \fi % \ProvidesFile{confproc} % [2010/08/05 v0.7: Documentation for confproc (VV)] % \iffalse % % A short description and author for driver, example, config % and package file: % [2010/08/05 v0.7: Conference Proceedings class (VV)] % [2010/08/05 v0.7: Example for confproc (VV)] % [2010/08/05 v0.7: Configuration for confproc (VV)] % [2010/08/05 v0.7: Driver for confproc (VV)] % % A short description and author for the docstrip file: %<*dtx> [2010/08/05 v0.7: Documented source for confproc (VV)] % % % % % % %<*indexstyle> %\changes{0.1}{2007/08/01}{added the creation of \file{confproc.ist} file} %\changes{0.6}{2009/08/18}{Modified \file{confproc.ist} with lines} %^^A ================================================================= %^^A Here is the creation of the first index style file confproc1.ist %^^A It is written on first LaTeX run if it does not already exist %^^A ================================================================= \begin{filecontents*}{confproc1.ist} %% %% This is file `confproc1.ist', generated with the docstrip utility. %% The original source files were: %% confproc.dtx (with options: `doc') %% %% This is `confproc1.ist', an index formatting example, for the confproc package. %% Copyright (c) 2010 by Vincent Verfaille %% %% %% This file is part of the confproc package. %% ------------------------------------------- %% %% It may be distributed and/or modified under the conditions of the %% LaTeX Project Public License, either version 1.2 of this license or %% (at your option) any later version. %% %% The latest version of this license is in %% http://www.latex-project.org/lppl.txt %% and version 1.2 or later is part of all distributions of LaTeX version %% 1999/12/01 or later. %% %% This file may not be distributed without the original source file %% `confproc.dtx'. %% %% The list of all files belonging to the confproc package is given in %% the file `readme.txt'. %% %% For more details, LaTeX the source `confproc.dtx'. %% %%--add a letter between 2 lists heading_prefix "{\\bfseries\\hfil " heading_suffix "\\hfil}\\nopagebreak\n" headings_flag 1 %%-- Add lines with points between name and page numbers delim_0 "\\dotfill" delim_1 "\\dotfill" delim_2 "\\dotfill" \end{filecontents*} % %^^A ================================================================= %^^A Here is the creation of the second index style file confproc2.ist %^^A It is written on first LaTeX run if it does not already exist %^^A ================================================================= \begin{filecontents*}{confproc2.ist} %% %% This is file `confproc2.ist', generated with the docstrip utility. %% The original source files were: %% confproc.dtx (with options: `doc') %% %% This is `confproc2.ist', an index formatting example, for the confproc package. %% Copyright (c) 2010 by Vincent Verfaille %% %% %% This file is part of the confproc package. %% ------------------------------------------- %% %% It may be distributed and/or modified under the conditions of the %% LaTeX Project Public License, either version 1.2 of this license or %% (at your option) any later version. %% %% The latest version of this license is in %% http://www.latex-project.org/lppl.txt %% and version 1.2 or later is part of all distributions of LaTeX version %% 1999/12/01 or later. %% %% This file may not be distributed without the original source file %% `confproc.dtx'. %% %% The list of all files belonging to the confproc package is given in %% the file `readme.txt'. %% %% For more details, LaTeX the source `confproc.dtx'. %% %%--add a letter between 2 lists, and horizontal lines + slashes around letters heading_prefix "{\\bfseries\\hfil------/\\hfil " heading_suffix "\\hfil/------\\hfil}\\nopagebreak\n" headings_flag 1 %%-- Add lines with points between name and page numbers delim_0 "\\dotfill" delim_1 "\\dotfill" delim_2 "\\dotfill" \end{filecontents*} % % % %\changes{0.1d}{2007/08/01}{added the \package{threecolindex.sty} creation} %\changes{0.2a}{2007/08/12}{removed \package{threecolindex.sty} file: corresponding cmds moved into the class} % % %\changes{0.1}{2007/08/01}{Installer: adding \file{newapave2.sty}} %^^A ================================================================= %^^A Here is the creation of the bibliography style file newapave.bst %^^A It is written on first LaTeX run if it does not already exist %^^A ================================================================= % % %\changes{0.1}{2007/08/01}{Installer: added \file{newapave.bst}} %<*newapavebst> \begin{filecontents*}{newapave.bst} %$$$ newapave.bst $$$ % BibTeX `newapave' style file for BibTeX version 0.99c, LaTeX version 2e % Place it in a file called newapave.bst in the BibTeX search path. %(Placing it in the same directory as the LaTeX document should also work.) % Support for named citations is provided by named.sty % % This version was modified by V. Verfaille, from the already modified master file made by % Oren Patashnik, and the 'named' BibTeX style of Peter F. Patel-Schneider. % % Copyright (c) 2006, all rights reserved. % Copying of this file is authorized only if either % (1) you make absolutely no changes to your copy, including name, or % (2) if you do make changes, you name it something other than 'newapave.bst'. % There are undoubtably bugs in this style. If you make bug fixes, % improvements, etc. please let me know. My e-mail address is: % verf[...].confproc@gmail.com % % This style was made from 'plain.bst', 'named.bst', and 'apalike.bst', % with lots of tweaking to make it look like APA style, along with tips % from Young Ryu and Brian Reiser's modifications of 'apalike.bst'. % Then, it was modified a bit for the DAFx-06 proceedings, for use % with the general bibliography. % % Citation format: (author-last-name, year) % (author-last-name and author-last-name, year) % (author-last-name {\em et al.}, year) % (author-last-name) % (author-last-name and author-last-name) % (author-last-name {\em et al.}) % (year) % % Reference list ordering: alphabetical by author or whatever passes % for author in the absence of one. % % This BibTeX style has support for abbreviated author lists and for % year-only citations. This is done by having the citations % actually look like % % \citeauthoryear{full-author-info}{abbrev-author-info}{year} % % The LaTeX style has to have the following (or similar) % % \let\@internalcite\cite % \def\fullcite{\def\citeauthoryear##1##2##3{##1, ##3}\@internalcite} % \def\fullciteA{\def\citeauthoryear##1##2##3{##1}\@internalcite} % \def\shortcite{\def\citeauthoryear##1##2##3{##2, ##3}\@internalcite} % \def\shortciteA{\def\citeauthoryear##1##2##3{##2}\@internalcite} % \def\citeyear{\def\citeauthoryear##1##2##3{##3}\@internalcite} % ENTRY { address author booktitle chapter edition editor howpublished institution journal key % month note number organization pages publisher school series title type 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 u } 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 {special.output.nonnull} { '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.nonnull.colon} { '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.space} { '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 {special.output} { duplicate$ empty$ 'pop$ 'special.output.nonnull if$ } FUNCTION {output} { duplicate$ empty$ 'pop$ 'output.nonnull if$ } FUNCTION {output.check} { 't := duplicate$ empty$ { pop$ "empty " t * " in " * cite$ * warning$ } 'output.nonnull if$ } FUNCTION {output.check.colon} { 't := duplicate$ empty$ { pop$ "empty " t * " in " * cite$ * warning$ } 'output.nonnull.colon if$ } FUNCTION {output.check.space} { 't := duplicate$ empty$ { pop$ "empty " t * " in " * cite$ * warning$ } 'output.nonnull.space if$ } FUNCTION {output.year.check} { year empty$ { "empty year in " cite$ * warning$ } { write$ ", " year * "." * "~\hfill " * % shorter and simpler without label (2002a, 2002b useless) % ", " year * extra.label * "." * " \Pointinghand{} " * % shorter mid.sentence 'output.state := % mid.sentence 'output.state := * "}" } 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 {underline} { duplicate$ empty$ { pop$ "" } { "\underline{" swap$ * "}" * } if$ } FUNCTION {emphasize} { duplicate$ empty$ { pop$ "" } { "{\em " swap$ * "}" * } if$ } FUNCTION {emphasize.space} { duplicate$ empty$ { pop$ "" } { "{\em " swap$ * "\/}" * } if$ } INTEGERS { nameptr namesleft numnames } FUNCTION {format.names} { 's := #1 'nameptr := % nameptr = 1; s num.names$ 'numnames := % numnames = num.name$(s); numnames 'namesleft := { namesleft #0 > } { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := nameptr #1 > { namesleft #1 > { ", " * t * } { numnames #2 > { "," * } 'skip$ if$ t "others" = { " et~al." * } % { ", \& " * t * } % { " \& " * t * } { " and " * t * } if$ } if$ } 't if$ nameptr #1 + 'nameptr := % nameptr += 1; namesleft #1 - 'namesleft := % namesleft =- 1; } while$ } FUNCTION {format.names.fml} { 's := #1 'nameptr := % nameptr = 1; s num.names$ 'numnames := % numnames = num.name$(s); numnames 'namesleft := { namesleft #0 > } { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := nameptr #1 > { namesleft #1 > { ", " * t * } { numnames #2 > { "," * } 'skip$ if$ t "others" = { " et~al." * } % { " and " * t * } { " \& " * t * } if$ } if$ } 't if$ nameptr #1 + 'nameptr := % nameptr += 1; namesleft #1 - 'namesleft := % namesleft =- 1; } while$ } FUNCTION {format.authors} { author empty$ { "" } { author format.names } if$ } FUNCTION {format.key} { empty$ { key field.or.null } { "" } if$ } FUNCTION {format.editors.fml} { editor empty$ { "" } { editor format.names.fml editor num.names$ #1 > { " (Eds.)" * } { " (Ed.)" * } if$ } if$ } FUNCTION {format.editors} { editor empty$ { "" } { editor format.names editor num.names$ #1 > { " (Eds.)" * } { " (Ed.)" * } if$ } if$ } FUNCTION {format.editors.dot} { editor empty$ { "" } { editor format.names editor num.names$ #1 > { " (Eds.)." * } { " (Ed.)." * } if$ } if$ } FUNCTION {format.title} { title empty$ { "" } { title "t" change.case$ } if$ } % Note that the APA style requires case changes % in article titles. The following does not % change cases. If you perfer it, uncomment the % following and comment out the above. %FUNCTION {format.title} %{ title empty$ % { "" } % { title } % if$ %} 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.btitle} { edition empty$ { title emphasize } { title empty$ { title emphasize } { "{\em " title * "\/} (" * edition * " ed.)" * "." * } if$ } if$ } FUNCTION {format.emphasize.booktitle} { edition empty$ { booktitle emphasize } { booktitle empty$ { booktitle emphasize } { "{\em " booktitle * "\/} (" * edition * " ed.)" * "." * } if$ } if$ } 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$ { "" } { "volume" volume tie.or.space.connect series empty$ 'skip$ { " of " * 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 = { "number" } { "Number" } if$ number tie.or.space.connect series empty$ { "there's a number but no series in " cite$ * warning$ } { " in " * series * } if$ } if$ } { "" } if$ } FUNCTION {format.edition} { edition empty$ { "" } { output.state mid.sentence = { edition "l" change.case$ " edition" * } { edition "t" change.case$ " edition" * } if$ } 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.pages} { pages empty$ { "" } { pages multi.page.check { "pp.\" pages n.dashify tie.or.space.connect } % removed parenthesis { "pp.\" pages tie.or.space.connect } % removed parenthesis if$ "" * } if$ } % By Young (and Spencer) FUNCTION {format.vol.num.pages} { number empty$ { volume empty$ 'skip$ { "" volume * "" *} % removed \em if$ } { volume % removed \em number empty$ {"there's a number but no volume in " cite$ * warning$ } { "(" number * ")" * * } if$ } if$ pages empty$ 'skip$ { duplicate$ empty$ { pop$ format.pages } { ", pp. " * pages n.dashify * } if$ } if$ } FUNCTION {format.chapter.pages} { chapter empty$ 'format.pages { type empty$ { "chapter" } { type "l" change.case$ } if$ chapter tie.or.space.connect pages empty$ 'skip$ { ", " * format.pages * } % { ", pp. " * format.pages * } if$ } if$ } FUNCTION {format.chapter.pages.incoll} { chapter empty$ 'format.pages { type empty$ { "chapter" } { type "l" change.case$ } if$ chapter tie.or.space.connect pages empty$ 'skip$ { " pp. " * format.pages * } if$ } if$ } FUNCTION {format.in.ed.booktitle} { booktitle empty$ { "" } { editor empty$ { "In " format.emphasize.booktitle * } { "In " format.editors * ", " * format.emphasize.booktitle * } if$ } if$ } FUNCTION {format.in.ed.booktitle.incoll} { booktitle empty$ { "" } { editor empty$ { "In " format.emphasize.booktitle * } { "In " format.editors.fml * ", " * format.emphasize.booktitle * } if$ } if$ } FUNCTION {format.thesis.type} { type empty$ 'skip$ { pop$ type "t" change.case$ } if$ } FUNCTION {format.tr.number} { type empty$ { "Technical Report" } 'type if$ number empty$ { "t" change.case$ } { number tie.or.space.connect } if$ } FUNCTION {format.article.crossref} { "In" "\cite{" * crossref * "}" * } FUNCTION {format.crossref.editor} { editor #1 "{vv~}{ll}" format.name$ editor num.names$ duplicate$ #2 > { pop$ " et~al." * } { #2 < 'skip$ { editor #2 "{ff }{vv }{ll}{ jj}" 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$ "In " } { "Volume" volume tie.or.space.connect " of " * } 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$ "" * } { "{\em " * series * "\/}" * } if$ } { key * } if$ } { format.crossref.editor * } if$ " \cite{" * crossref * "}" * } FUNCTION {format.incoll.inproc.crossref} { "In" " \cite{" * crossref * "}" * } FUNCTION {article} { output.bibitem format.authors "author" output.check author format.key output new.block format.title "title" output.check new.block crossref missing$ { journal emphasize "journal" output.check format.vol.num.pages output } { format.article.crossref output.nonnull format.pages output } if$ new.block note output output.year.check% moved fin.entry } FUNCTION {book} { output.bibitem author empty$ { format.editors.dot "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 crossref missing$ { format.bvolume output new.block format.number.series output new.sentence address output publisher "publisher" output.check.colon } { new.block format.book.crossref output.nonnull } if$ % format.edition output new.block note output output.year.check % moved fin.entry } FUNCTION {booklet} { output.bibitem format.authors output author format.key output new.block format.title "title" output.check new.block howpublished output address output new.block note output output.year.check % moved fin.entry } FUNCTION {inbook} { output.bibitem author empty$ { format.editors.dot "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 crossref missing$ { format.bvolume output format.chapter.pages "chapter and pages" output.check new.block format.number.series output new.sentence address output publisher "publisher" output.check.colon } { format.chapter.pages "chapter and pages" output.check new.block format.book.crossref output.nonnull } if$ % format.edition output new.block note output output.year.check % moved fin.entry } FUNCTION {incollection} { output.bibitem format.authors "author" output.check author format.key output new.block format.title "title" output.check new.block crossref missing$ { format.in.ed.booktitle.incoll "booktitle" output.check.colon format.bvolume output format.number.series output format.chapter.pages special.output new.sentence address output publisher "publisher" output.check.colon } { format.incoll.inproc.crossref output.nonnull format.chapter.pages output } if$ new.block note output output.year.check % moved fin.entry } FUNCTION {inproceedings} { output.bibitem format.authors "author" output.check author format.key output new.block format.title "title" output.check new.block crossref missing$ { format.in.ed.booktitle "booktitle" output.check format.bvolume output format.number.series output address output % new.sentence %removed, to avoid having a ".", but having a "," instead organization output publisher output format.pages output } { format.incoll.inproc.crossref output.nonnull format.pages output } if$ new.block note output output.year.check % moved fin.entry } FUNCTION {conference} { inproceedings } FUNCTION {manual} { output.bibitem format.authors output author format.key output new.block format.btitle "title" output.check organization address new.block.checkb % Reversed the order of "address" and "organization", added the ":". address output organization "organization" output.check.colon % address output % ":" output % organization output % format.edition output new.block note output output.year.check % moved fin.entry } FUNCTION {mastersthesis} { output.bibitem format.authors "author" output.check author format.key output new.block format.title "title" output.check new.block "Master's thesis" format.thesis.type output.nonnull school "school" output.check address output new.block note output output.year.check % moved fin.entry } FUNCTION {misc} { output.bibitem format.authors output author format.key output title howpublished new.block.checkb format.title output new.block howpublished output new.block note output output.year.check % moved fin.entry } FUNCTION {phdthesis} { output.bibitem format.authors "author" output.check author format.key output new.block format.btitle "title" output.check new.block "PhD thesis" format.thesis.type output.nonnull school "school" output.check address output new.block note output output.year.check % moved fin.entry } FUNCTION {proceedings} { output.bibitem editor empty$ { organization output } { format.editors.dot output.nonnull } if$ author format.key output new.block format.btitle "title" output.check format.bvolume output format.number.series output address output new.sentence organization output publisher output new.block note output output.year.check % moved fin.entry } FUNCTION {techreport} { output.bibitem format.authors "author" output.check author format.key output new.block format.title "title" output.check new.block format.tr.number output.nonnull institution "institution" output.check address output new.block note output output.year.check % moved fin.entry } FUNCTION {unpublished} { output.bibitem format.authors "author" output.check author format.key output new.block format.title "title" output.check new.block note "note" output.check output.year.check % moved fin.entry } FUNCTION {default.type} { misc } MACRO {jan} {"January"} MACRO {feb} {"February"} MACRO {mar} {"March"} MACRO {apr} {"April"} MACRO {may} {"May"} MACRO {jun} {"June"} MACRO {jul} {"July"} MACRO {aug} {"August"} MACRO {sep} {"September"} MACRO {oct} {"October"} MACRO {nov} {"November"} MACRO {dec} {"December"} MACRO {acmcs} {"ACM Computing Surveys"} MACRO {acta} {"Acta Informatica"} MACRO {ai} {"Artificial Intelligence"} MACRO {cacm} {"Communications of the ACM"} MACRO {ibmjrd} {"IBM Journal of Research and Development"} MACRO {ibmsj} {"IBM Systems Journal"} MACRO {ieeese} {"IEEE Transactions on Software Engineering"} MACRO {ieeetc} {"IEEE Transactions on Computers"} MACRO {ieeetcad} {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} MACRO {ipl} {"Information Processing Letters"} MACRO {jacm} {"Journal of the ACM"} MACRO {jcss} {"Journal of Computer and System Sciences"} MACRO {scp} {"Science of Computer Programming"} MACRO {sicomp} {"SIAM Journal on Computing"} MACRO {tocs} {"ACM Transactions on Computer Systems"} MACRO {tods} {"ACM Transactions on Database Systems"} MACRO {tog} {"ACM Transactions on Graphics"} MACRO {toms} {"ACM Transactions on Mathematical Software"} MACRO {toois} {"ACM Transactions on Office Information Systems"} MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} MACRO {tcs} {"Theoretical Computer Science"} 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$ } INTEGERS { fullptr numfull fullsleft } STRINGS { u1 u2 } FUNCTION {my.full.label} { % Initialize 'u1','u2','s'. "" 'u1 := "" 'u2 := 's := % Initialize 'fullptr','numfull','fullsleft'. #1 'fullptr := s num.names$ 'numfull := numfull 'fullsleft := % enter the while loop which generates the first-citation information. % while we have names left, % format the next name % if this is the next-to-last name, tack the ampersand on the end % else if this isn't the last name, tack the comma on the end. % concatenate the next name onto the first-citation string. % update the counters. { fullsleft #0 > } { s fullptr "{vv~}{ll}" format.name$ 'u1 := fullsleft #2 = { u1 " \& " * 'u1 := } { fullsleft #2 > { u1 ", " * 'u1 := } 'skip$ if$ } if$ u2 u1 * 'u2 := fullptr #1 + 'fullptr := fullsleft #1 - 'fullsleft := } while$ % push 'u2' onto the stack -- our first-citation information. u2 } FUNCTION {format.lab.names} { 's := s #1 "{vv~}{ll}" format.name$ s num.names$ duplicate$ #2 > { pop$ " et~al." * } { #2 < 'skip$ { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = { "et~al. " * } % { " and " * s #2 "{vv~}{ll}" format.name$ * } { " \& " * s #2 "{vv~}{ll}" format.name$ * } if$ } if$ } if$ } FUNCTION {author.key.label} { author empty$ { key empty$ { cite$ #1 #3 substring$ } 'key if$ } { author format.lab.names } if$ } FUNCTION {editor.key.label} { editor empty$ { key empty$ { cite$ #1 #3 substring$ } 'key if$ } { editor format.lab.names } if$ } FUNCTION {author.editor.key.label} { author empty$ { editor empty$ { key empty$ { cite$ #1 #3 substring$ } 'key if$ } { editor format.lab.names } if$ } { author format.lab.names } if$ } FUNCTION {calc.label} { type$ "book" = type$ "inbook" = or 'author.editor.key.label { type$ "proceedings" = 'editor.key.label 'author.key.label if$ } if$ duplicate$ author my.full.label % generate the first-citation information. "\protect\citeauthoryear{" swap$ * "}{" * swap$ * "}{" * year field.or.null purify$ #-1 #4 substring$ * 'label := year field.or.null purify$ #-1 #4 substring$ * sortify 'sort.label := } 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 {editor.sort} { editor empty$ { key empty$ { "to sort, need editor or key in " cite$ * warning$ "" } { key sortify } if$ } { editor 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 {presort} { calc.label label sortify " " * type$ "book" = type$ "inbook" = or 'author.editor.sort { type$ "proceedings" = 'editor.sort 'author.sort if$ } if$ #1 entry.max$ substring$ % added for newapa 'sort.label := % added for newapa sort.label % added for newapa * " " * title field.or.null sort.format.title * #1 entry.max$ substring$ 'sort.key$ := } ITERATE {presort} SORT % by label, sort.label, title --- for final label calculation STRINGS { last.label next.extra } INTEGERS { last.extra.num } FUNCTION {initialize.extra.label.stuff} { #0 int.to.chr$ 'last.label := "" 'next.extra := #0 'last.extra.num := } FUNCTION {forward.pass} { last.label 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 := label 'last.label := } if$ } FUNCTION {reverse.pass} { next.extra "b" = { "a" 'extra.label := } 'skip$ if$ label extra.label * "}" * 'label := extra.label 'next.extra := } EXECUTE {initialize.extra.label.stuff} ITERATE {forward.pass} REVERSE {reverse.pass} FUNCTION {bib.sort.order} { sort.label " " * year field.or.null sortify * " " * title field.or.null sort.format.title * #1 entry.max$ substring$ 'sort.key$ := } ITERATE {bib.sort.order} SORT % by sort.label, year, title --- giving final bib. order. FUNCTION {begin.bib} { preamble$ empty$ 'skip$ { preamble$ write$ newline$ } if$ "\begin{thebibliography}{}" write$ newline$ } EXECUTE {begin.bib} EXECUTE {init.state.consts} ITERATE {call.type$} FUNCTION {end.bib} { newline$ "\end{thebibliography}" write$ newline$ } EXECUTE {end.bib} \end{filecontents*} % % % %\changes{0.1}{2007/08/01}{Installer: added \file{newapave2.sty}} %^^A ================================================================= %^^A Here is the creation of the bibliography style file newapave2.sty %^^A It is written on first LaTeX run if it does not already exist %^^A ================================================================= %<*newapavesty> \begin{filecontents*}{newapave2.sty} %$$$ newapave2.sty $$$ --- July 15, 2010 (Version 2.21) % - Version 2.1. % % This file implements citations for the ``newapave'' bibliography style. % % Stephen N. Spencer % modified the ``apalike'' LaTeX style % Young U. Ryu % further modified % Vincent Verfaille % modified as 'newapave' for DAFx-06: right-flushed back-references! % % SEE THE FOLLOWING COMMENTS. THEY CONSISTS OF 4 SECTIONS % 1 - newapave.bst and \bibitem entry % 2 - citation formats % 3 - changing citation functions (if you want) % 4 - enforcing APA style section heading (if you want) % %%%%% % [1] newapave.bst and \bibitem entry % % The ``newapave.bst'' BibTeX bibliography style creates citations with labels: % \citeauthoryear{author-info}{abbrev. author-info}{year} % %%%%% % [2] Citation Formats % % The citations are enclosed within parentheses. ``(,)'' % as default. But one may change them. % Short author lists use the ``et al.'' construct. % These labels are processed by the following LaTeX commands: % % \cite[optional notes]{Key(s)} % -> (Authors1, Year1; Authors2, Year2; ..., optional notes) % \citeA[optional notes]{key} % -> Authors (Year, optional notes) % Note: ONE AND ONLY ONE KEY. % \citeA[pp.~3--5]{Apt88,Lloyd87} does not make sense at all. % In this case, the outcome will look aweful. % \citeB{keys} % -> Authors1 (Year1), Authors2 (Year2), ... % Note: \citeB[Notes]{keys} are given, notes will be ingored, % because it does not make sense at all. % \citeauthor[optional notes]{key} % -> Authors1, Authors2, ..., optional notes % % The difference between `\shortciteXXX' and `\citeXXX': % is that `\shortciteXXX' gives `First author et al.' % if no. authors >= 3. % % \shortcite[optional notes]{Key(s)} % -> (Short Authors1, Year1; Short Authors2, Year2; ..., optional notes) % \shortciteA[optional notes]{key} % -> Short Authors (Year, optional notes) % Note: ONE AND ONLY ONE KEY. % \shortciteA[pp.~3--5]{Apt88,Lloyd87} does not make sense at all. % In this case, the outcome will look aweful. % \shortciteB{keys} % -> Authors1 (Year1), Authors2 (Year2), ... % Note: \citeB[Notes]{keys} are given, notes will be ingored, % because it does not make sense at all. % \shortciteauthor[optional notes]{key} % -> Short Authors1, Short Authors2, ..., optional notes % % \citeyear[optional notes]{key} % -> (Year, optional notes) % %%%%% % [3] Changing Citation Punctuations % % However, you may change citation punctuations. % \citepunct{open paren}% % {between authors}% % {between author year}% % {between citations}% % {before notes}% % {closing paren} % % For example, % \citepunct{[}{and}{ }{, }{: }{]} % - use square brackets % `and' between authors % space between author and year % comma between citations % comma before notes % e.g. [Apt and van Emden 1986, Lloyd 1985: Notes] % % The default is: % \citepunct{(}{\&}{, }{; }{, }{)} % % Notice spaces around punctuations in \citepunct!!! % %%%%% % [4] Enforcing APA Style Section Heading % % \newapasectioning redefines section headings as described % by the APA Publication Manual % \section - level 1 (toc entry, paageheading) % \subsection - level 2 (toc entry) % \subsection - level 3 (toc entry) % \paragraph - level 4 % \subparagraph - level 3 % % if place * after \section, \subsection, \subsubsection % section headings are not listed in the table of contents % \def\citestarts{(} \def\betweenauthors{\&} \def\betweenauthoryear{, } \def\betweencites{; } \def\beforenote{, } \def\citeends{)} % \def\citepunct#1#2#3#4#5#6{% \def\citestarts{#1} \def\betweenauthors{#2} \def\betweenauthoryear{#3} \def\betweencites{#4} \def\beforenote{#5} \def\citeends{#6} } % \let\@internalcite\cite % % \def\cite{\def\@citeseppen{-1000}% \def\@cite##1##2{% \citestarts##1\if@tempswa \beforenote##2\fi\citeends}% \def\citeauthoryear##1##2##3{##1\betweenauthoryear##3}\@internalcite} \def\citeA{\def\@citeseppen{-1000}% \def\@cite##1##2{% ##1\if@tempswa \beforenote##2\fi\citeends}% \def\citeauthoryear##1##2##3{##1 \citestarts##3}\@citedata} \def\citeB{\def\@citeseppen{-1000}% \def\@cite##1##2{##1}% \def\citeauthoryear##1##2##3{##1 \citestarts##3\citeends}\@citedata} \def\citeauthor{\def\@citeseppen{-1000}% \def\@cite##1##2{% ##1\if@tempswa \beforenote##2\fi}% \def\citeauthoryear##1##2##3{##1}\@citedata} % % \def\shortcite{\def\@citeseppen{-1000}% \def\@cite##1##2{% \citestarts##1\if@tempswa \beforenote##2\fi\citeends}% \def\citeauthoryear##1##2##3{##2\betweenauthoryear##3}\@internalcite} \def\shortciteA{\def\@citeseppen{-1000}% \def\@cite##1##2{% ##1\if@tempswa \beforenote##2\fi\citeends}% \def\citeauthoryear##1##2##3{##2 \citestarts##3}\@citedata} \def\shortciteB{\def\@citeseppen{-1000}% \def\@cite##1##2{##1}% \def\citeauthoryear##1##2##3{##2 \citestarts##3\citeends}\@citedata} \def\shortciteauthor{\def\@citeseppen{-1000}% \def\@cite##1##2{% ##1\if@tempswa \beforenote##2\fi}% \def\citeauthoryear##1##2##3{##2}\@citedata} % \def\citeyear{\def\@citeseppen{-1000}% \def\@cite##1##2{% \citestarts##1\if@tempswa \beforenote##2\fi\citeends}% \def\citeauthoryear##1##2##3{##3}\@citedata} % \def\@citedata{\@ifnextchar[{\@tempswatrue\@citedatax}{\@tempswafalse\@citedatax[]}} % \def\@citedatax[#1]#2{% \if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi \def\@citea{}\@cite{\@for\@citeb:=#2\do {\@citea\def\@citea{\betweencites}\@ifundefined {b@\@citeb}{{\bf ?}\@warning {Citation `\@citeb' on page \thepage \space undefined}} {\csname b@\@citeb\endcsname}}}{#1}} % \def\@citex[#1]#2{% \if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi \def\@citea{}\@cite{\@for\@citeb:=#2\do {\@citea\def\@citea{\betweencites}\@ifundefined {b@\@citeb}{{\bf ?}\@warning {Citation `\@citeb' on page \thepage \space undefined}}% {\csname b@\@citeb\endcsname}}}{#1}} % % (from apalike.sty) % No labels in the bibliography. % Set length of hanging indentation for bibliography entries. \def\@biblabel#1{} \newlength{\bibhang} %\setlength{\bibhang}{1em} % ORIGINAL \setlength{\bibhang}{0.5em} % DAFx-06 % \def\thebibliography#1{% \section*{\bibname} \addcontentsline{toc}{part}{\large \bfseries \bibname} \list {\relax}{\setlength{\labelsep}{0em} \setlength{\itemindent}{-\bibhang} \setlength{\leftmargin}{\bibhang}} % \def\newblock{\hskip .11em plus .33em minus .07em} % ORIGINAL \def\newblock{\hskip 0em plus 0.0em minus .07em} % DAFx-06 \sloppy\clubpenalty4000\widowpenalty4000 \sfcode`\.=1000\relax} % % % %%% Sectioning \def\newapasectioning{ \newlength{\sectionheadwidth} \setlength{\sectionheadwidth}{\textwidth} \addtolength{\sectionheadwidth}{-8em} \let\@internalsection\section \let\@internalsubsection\subsection \let\@internalsubsubsection\subsubsection \let\@internalparagraph\paragraph \let\@internalsubparagraph\subparagraph % Level 1 \def\section{\@ifnextchar *{\a@sections}{\a@section}} \def\a@sections##1##2{% \@internalsection*{% \centering\parbox{% \sectionheadwidth}{% \centering\normalsize\bf\uppercase{##2}}\@mkboth{##2}{##2}}} \def\a@section##1{% \addcontentsline{toc}{section}{##1} \@internalsection*{% \centering\parbox{% \sectionheadwidth}{% \centering\normalsize\bf\uppercase{##1}}\@mkboth{##1}{##1}}} % Level 2 \def\subsection{\@ifnextchar *{\a@subsections}{\a@subsection}} \def\a@subsections##1##2{% \@internalsubsection*{% \centering\parbox{\sectionheadwidth}{\centering\normalsize\bf##2}}} \def\a@subsection##1{% \addcontentsline{toc}{subsection}{##1} \@internalsubsection*{% \centering\parbox{\sectionheadwidth}{\centering\normalsize\bf##1}}} % Level 3 \def\subsubsection{\@ifnextchar *{\a@subsubsections}{\a@subsubsection}} \def\a@subsubsections##1##2{% \@internalsubsubsection*{% \centering\parbox{% \sectionheadwidth}{\centering\normalsize\underbar{##2}}}} \def\a@subsubsection##1{% \addcontentsline{toc}{subsubsection}{##1} \@internalsubsubsection*{% \centering\parbox{% \sectionheadwidth}{\centering\normalsize\underbar{##1}}}} % Level 4 \def\a@paragraph##1{% \@internalsubsubsection*{\normalsize\underbar{##1}}} % Level 5 \def\a@subparagraph##1{% \@internalsubparagraph*{\normalsize\underbar{##1}.}} % table of contents \def\tableofcontents{% \section*{Contents}\@starttoc{toc}} % list of figures \def\listoffigures{% \section*{List of Figures}\@starttoc{lof}} % list of tables \def\listoftables{% \section*{List of Tables}\@starttoc{lot}} % Change : to . in Figure/Table Caption \long\def\@makecaption##1##2{ \vskip 10pt \setbox\@tempboxa\hbox{##1. ##2} \ifdim \wd\@tempboxa >\hsize ##1. ##2\par \else \hbox to\hsize{\hfil\box\@tempboxa\hfil} \fi} } \end{filecontents*} % % % % %^^A ================================================================= % \changes{0.7}{2010/08/05}{Example: added \file{example4optim.tex}} %<*example4optim> \begin{filecontents*}{example4optim.tex} \usepackage{setspace} \usepackage{xkeyval} \usepackage{newapave} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{mathptmx} \usepackage[super]{nth} \setlength{\LaTeXxShift}{0pt} \setlength{\LaTeXyShift}{-3mm} %letter \setlength{\WordxShift}{10pt} \setlength{\WordyShift}{-40pt} \definecolor{colorforlink}{rgb}{0,0,0.8} \definecolor{colorforcite}{rgb}{0,0.8,0} \definecolor{colorforurl}{rgb}{0,0,1} \newcommand{\DAFxname}{Proc.~of the \nth{9} % Int.~Conference on Digital Audio Effects (DAFx-06)} \newcommand{\DAFxdate}{September 18-20, 2006} \newcommand{\DAFxaddress}{Montreal, Canada} \renewcommand{\procpdfauthor}{Vincent Verfaille, McGill University} \renewcommand{\procpdftitle}{DAFx-06 Proceedings - \DAFxaddress} \renewcommand{\procpdfsubject}{Conference proceedings} \renewcommand{\procchead}{} % \renewcommand{\proclhead}{{\em \small \DAFxname, \DAFxaddress, \DAFxdate}} \renewcommand{\proccfoot}{{\small DAFX-\thepage}} \setlength{\procfootvskip}{1.2mm} \setlength{\procoptfootvskip}{4mm} \author{\procpdfauthor} \title{\DAFxname\\ \DAFxaddress} \date{\DAFxdate} \renewcommand{\contentsname}{Day-by-Day Conference Program} \renewcommand{\bibname}{General Bibliography} \renewcommand{\indexname}{List of Authors} \renewcommand{\PAPERPATH}{papers/} \newcommand{\PICTPATH}{pictures/} \newcommand{\TEXTPATH}{} \newcommand{\BIBPATH}{} \newcommand{\procbibfile}{\BIBPATH exbiblio} \newcommand{\myaddhruletotoc}{\vspace*{0.1cm}% \noindent\protect\hrulefill\par\vspace*{-0.15cm}} \newcommand{\myaddthickhruletotoc}{\vspace*{0.5cm}% \noindent\protect\hrule height 0.6ex \hfill\par\vspace*{0.1cm}} \renewcommand{\procday}[1]{% \phantomsection% \addcontentsline{toc}{part}{#1}} % \centerline{#1} \renewcommand{\session}[1]{% \phantomsection% \addcontentsline{toc}{chapter}{#1}} \renewcommand{\mainmattertocstyle}{ \titlecontents{section}[2.5em]% {\vspace*{0.25em}}% {\hspace*{-2.5em}\contentspage\hspace*{2.5em}}% {\hspace*{-2.5em}\contentspage\hspace*{2.5em}}% {}% \titlecontents{chapter}[0pt]% {\addvspace{0.5pc}\bfseries\itshape}% {\myaddhruletotoc\contentsmargin{0pt}\bfseries % \makebox[0pt][r]{\huge\contentspage\enspace}\large}% {\myaddhruletotoc\contentsmargin{0pt}\large}% {}[\addvspace{.3pc}]% \titlecontents{part}[0pt]% {\addvspace{0.5pc}\bfseries}% {\myaddthickhruletotoc\contentsmargin{0pt}\bfseries % \makebox[0pt][r]{\huge\contentspage\enspace}\large}% {\myaddthickhruletotoc\contentsmargin{0pt}\large}% {}[\addvspace{.3pc}]% } \renewcommand{\backmattertocstyle}{% \titlecontents{section}[]{}{}{}{}[]% \titlecontents{part}% [0pt]% {\addvspace{2pc}}% {\contentspage\hspace*{2.5em}\vspace*{-8mm}\contentsmargin{0pt}% \bfseries\makebox[0pt][r]{\huge\contentspage\enspace}\large\bfseries}% {\contentspage\hspace*{2.5em}\vspace*{-8mm}\contentsmargin{0pt}\large\bfseries}% {}% [\addvspace{.5pc}]% }% %%\renewcommand{\papertitlestyle}{} \renewcommand{\papertitlestyle}{\texorpdfstring{}{\scshape}} %%\renewcommand{\paperauthorstyle}{\texorpdfstring{\newline\itshape}{\break}} \renewcommand{\paperauthorstyle}{\texorpdfstring{, \hfill}{\break}} \renewcommand{\proctoctitleauthor}[2]{% \texorpdfstring{{\paperauthorstyle #2}{\papertitlestyle #1}}{{\papertitlestyle #1}}} \renewcommand{\paperauthorstyle}{\texorpdfstring{\itshape}{}} \renewcommand{\papertitlestyle}{\texorpdfstring{\newline}{\break}} \renewcommand{\confstylechecktitle}{\vspace*{0.3cm} % \bf \sc \Large \noindent \centerline} \renewcommand{\confstylecheckauthor}{\large \it \noindent \centerline} \makeindex %%%=========== PROCEEDINGS =========== \begin{document} \frontmatter \frontmattertocstyle %%\layout %%\begin{figure} %% \setlayoutscale{0.8} \tocdiagram %% \caption{Table of Contents entry parameters} \label{fig:tocp} %%\end{figure} %%\begin{figure} %% \setlayoutscale{0.8} \currenttoc \tocdesign %% \caption{Typical Table of Contents entry for this document} %% \label{fig:thistoc} %%\end{figure} %%\clearsingleordoublepage \setcounter{page}{1} \pdfbookmark[0]{Preamble}{preamble} \pdfbookmark[1]{Cover}{cover} \maketitle %%\includepdf[noautoscale,pages=1,link]{\PICTPATH ex_1stpage.pdf} \addtocontents{toc}{\vskip 1cm} \addtocontents{toc}{\centerline{\huge\textsc{Conference Program}}} \renewcommand{\contentsname}{\texorpdfstring{}{Conference Program}} \newpage \vspace*{1.7cm} \pdfbookmark[1]{Publishing informations}{publishing} \thispagestyle{empty} \noindent {\bf Published by:}\\ Laboratory Name\\ Department name\\ School Name\\ University Name\\ \url{http://www.conferencesite.com}\\ \vspace*{0.15cm}\newline \noindent {\bf ISBN: X-XXXX-XXXXXX}\\ \vspace*{0.35cm}\newline \noindent {\bf Credits:}\\ Cover design: Firstname Lastname\\ Logo photo: Firstname Lastname\\ \LaTeX{} editor: Firstname Lastname\\ using \LaTeX's `confproc' package, version 0.7 (optional: by V. Verfaille)\\ \vspace*{0.35cm}\newline \noindent Printed in City by Print-Company --- Month Year \otherpagestyle %%%-- Welcome letters \clearsingleordoublepage \vspace*{0.6cm} \thisotherpagestyle \pdfbookmark[1]{Welcome from Firstname Lastname}{welcome} \section*{Welcome from Firstname Lastname, Conference Chair} \vspace*{1.1cm} \onehalfspace \begin{center} \begin{minipage}[h]{14cm} Text of the welcome letter, with 1.5 lines spacing, blah blah... Text of the welcome letter, with 1.5 lines spacing, blah blah... Text of the welcome letter, with 1.5 lines spacing, blah blah... Text of the welcome letter, with 1.5 lines spacing, blah blah... \end{minipage} \end{center} \doublespace \begin{center} \begin{minipage}[h]{14cm} Text of the welcome letter, with 2 lines spacing, blah blah... Text of the welcome letter, with 2 lines spacing, blah blah... Text of the welcome letter, with 2 lines spacing, blah blah... Text of the welcome letter, with 2 lines spacing, blah blah... \end{minipage} \end{center} \singlespace \tableofcontents %%%==== BEGINNING OF PAPERS ==== \setcounter{npagespreamble}{\arabic{page}-1} % only useful for the 'pdftk' option \mainmatter \mainmattertocstyle \input{\TEXTPATH expapersswitch} \procday{Day 1} \session{Oral Session 1} \paperid{45}{p_001} \paperid{21}{p_003} \session{Poster Session 1} \paperid{33}{p_005} \procday{Day 2} \session{Oral Session 2} \paperid{75}{p_007} \paperid{27}{p_009} %%%==== END OF PAPERS ==== \backmatter \backmattertocstyle \bibliographystyle{newapave} %%\bibliographystyle{newapa} {\footnotesize\bibliography{\procbibfile}} \insertindex \end{document} \end{filecontents*} % % % % % %^^A ================================================================= %^^A Here is the driver for customized documentation %^^A ================================================================= %<*driver> % % We do not specify any options by default and its recommended not to % change this. If you want to use a4paper the proper way is to add % a line % \PassOptionsToClass{a4paper}{article} % to your `ltxdoc.cfg'. \documentclass{ltxdoc} % %\changes{0.1}{2007/08/01}{Doc style: added \package{hyperref} package} % Only use fontenc if it is present \IfFileExists{fontenc.sty}{% \usepackage[T1]{fontenc}}{} % \changes{0.4b}{2007/10/12}{Pkg: \package{mathptmx} replaces \package{times}} \usepackage{mathptmx} % \changes{0.4b}{2007/10/12}{Pkg: \package{nth} for superscript ordinals} \usepackage[super]{nth} \usepackage{graphicx} \usepackage{url} \usepackage{amssymb,amsmath} % \changes{0.5}{\datevzfive}{Pkg: \package{manfnt} for `danger' sign} \usepackage{manfnt} \usepackage{xcolor} \usepackage[braces]{colordoc} \usepackage{layout} \RequirePackage[pdftex,colorlinks=true,linkcolor=blue!80!black,citecolor=blue!80!black,% urlcolor=blue!80!black,bookmarksopen=true,bookmarksopenlevel=1,raiselinks,% hyperindex,backref,pagebackref,plainpages=false,pdfpagelabels,% breaklinks,linktocpage=false,pdfstartview=XYZ]{hyperref} %\usepackage[color=orange!40]{todonotes} % [colorinlistoftodos] must be placed AFTER hyperref % \usepackage{supertabular} %\usepackage{tweaklist} %\renewcommand{\enumhook}{\setlength{\topsep}{0pt}% % \setlength{\itemsep}{0pt}} % By default this file will build the `user' documentation. It % covers the basic information you need as an user and provides % (if you want to) a compact index with the most important % commands. To get the `programmer' documentation (with code % listing, extended command index and change history), comment out % the next line %\OnlyDescription % To produce the compact command index: % run makeindex -s confproc.ist confproc % If you commented out \OnlyDescription, you are able to control the % index and change history with the following commands: % To produce the extended command index: add the following line % one run, then run makeindex -s gind.ist confproc % and re-process, with or without this line (much faster without) % % This will only have an effect if you commented out % \OnlyDescription above! \EnableCrossrefs % Next you can control the index numbering by the two commands % \PageIndex and \CodelineIndex (I prefer the latter one..). If % you don't want any index, comment out both commands. % % Description index entries refer to page numbers, code listing % index entries refer to code lines \CodelineIndex % Make all index entries (description and code listing) refer to % page numbers (if you add the following line you should comment % out the \CodelineIndex) % \PageIndex % Produce a 2 column index (if any) \setcounter{IndexColumns}{2} \setlength{\textwidth}{14cm} \setlength{\headheight}{-1.5cm} \setlength{\textheight}{22cm} %\setlength{\voffset}{-28truept} %% Increase the marginpar width slightly, for long command names. And increase the left margin by a similar amount \let\oldmarginpar\marginpar \renewcommand\marginpar[1]{\-\oldmarginpar[\raggedleft\footnotesize #1]% {\raggedright\footnotesize #1}} % \addtolength\marginparwidth{30pt} % \addtolength\oddsidemargin{20pt} % \addtolength\evensidemargin{20pt} \setcounter{StandardModuleDepth}{1} % To produce a change history: add the following line for one run, % then run makeindex -s gglo.ist -o confproc.gls confproc.glo % and re-process, with or without this line (faster without) \RecordChanges \begin{document} \DocInput{confproc.dtx} \end{document} % % \fi % % % % %^^A ================================================================= %^^A We continue with the `normal' .dtx-file %^^A ================================================================= % % %^^A ======= LIST OF GENERAL CHANGES ====== %^^A\changes{0.1c}{2007/07/30}{Doc: new} %^^A\changes{0.1c}{2007/07/30}{Introduction: new} %^^A\changes{0.2d}{2007/08/18}{Index: removing from index all commands not related to the 'confproc' package} %^^A\changes{0.2e}{2007/09/01}{Introduction: reorganized} %^^A\changes{0.2e}{2007/09/01}{Introduction: history shortened} %^^A \changes{0.3}{2007/09/28}{Doc: typo and spell checks} % \changes{0.3}{2007/09/24}{initial version} % \changes{0.4a}{2007/10/03}{move formatting issues in re-defined commands} % \changes{0.4b}{2007/10/12}{changes from Will Robertson's advices} % \changes{0.4d}{2007/10/12}{re-organize changes history (use `macro' environment)} % \changes{0.4e}{2007/10/12}{clean up the uses of \cmd{\DescribeMacro} and \cmd{\begin\{macro\}\{\}} commands} % %^^A ================================================================= %^^A Even with enabled crossrefs do not index all macros. %^^A ================================================================= % \DoNotIndex{\@empty} % \DoNotIndex{\@ifundefined} % \DoNotIndex{\@maketitle} % \DoNotIndex{\@ne} % \DoNotIndex{\@plus} % \DoNotIndex{\@tempboxa, \@tempcnta, \@tempdima} % \DoNotIndex{\\, \", \{, \}, \&, \ , \', \`, \^, \:, \~, \&, \(, \), \-, \,, \^} % \DoNotIndex{\{} % \DoNotIndex{\}} % \DoNotIndex{\$} % \DoNotIndex{\.} % \DoNotIndex{\~} % \DoNotIndex{\ } % \DoNotIndex{\1} % \DoNotIndex{\@arabic} % \DoNotIndex{\@authorlistbyfirstname} % \DoNotIndex{\@authorlistbysurname} % \DoNotIndex{\@authors} % \DoNotIndex{\@clubpenalty, \@biblabel, \@latex@warning, \@mainmatterfalse, \@mainmattertrue, \@mkboth, \@openbib@code, \@starttoc, \@twoside} % \DoNotIndex{\@idxitem} % \DoNotIndex{\@ifnextchar} % \DoNotIndex{\@m} % \DoNotIndex{\@mparswitchfalse} % \DoNotIndex{\@mparswitchtrue} % \DoNotIndex{\@noitemerr} % \DoNotIndex{\@ptsize} % \DoNotIndex{\@restonecolfalse} % \DoNotIndex{\@restonecoltrue} % \DoNotIndex{\@twosidefalse} % \DoNotIndex{\@twosidetrue} % \DoNotIndex{\addvspace, \arabic, \AtBeginDocument, \addcontentsline, \addtocontents, \addtocounter, \addtolength, \AtEndDocument, \advance} % \DoNotIndex{\afterassignment} % \DoNotIndex{\begin, \begingroup, \bf, \bfseries, \box} % \DoNotIndex{\baselineskip} % \DoNotIndex{\bigskip, \bibhang, \break} % \DoNotIndex{\caption, \centerline, \ClassError, \ClassWarning, \ClassWarningNoLine} % \DoNotIndex{\c@enumiv} % \DoNotIndex{\ClassInfo, \CurrentOption, \cdot, \count, \centering, \cleardoublepage, \clearpage, \CodelineIndex} % \DoNotIndex{\changes} % \DoNotIndex{\closeout, \clubpenalty} % \DoNotIndex{\columnsep} % \DoNotIndex{\columnseprule} % \DoNotIndex{\confproc, \conf@FinalVersion, \conf@BibMerge, \conf@BibBackRef} % \DoNotIndex{\conf@procWithColors, \conf@procWithoutColors} % \DoNotIndex{\conf@PrintNoLayout, \conf@PrintAllLayouts} % \DoNotIndex{\conf@NoFancyHeaders, \conf@FancyHeadersOnPapers, \conf@FancyHeadersExceptPapers} % \DoNotIndex{\conf@TwoColumnIndex, \conf@ThreeColumnIndex} % \DoNotIndex{\conf@TwoColumnBib, \conf@OneColumnBib} % \DoNotIndex{\conf@TwoColumnTOC, \conf@OneColumnTOC} % \DoNotIndex{\conf@TocNumberingLeft, \conf@TocNumberingRight} % \DoNotIndex{\conf@TestPageNumbering, \conf@WithCleardoublepage, \conf@WithClearsinglepage} % \DoNotIndex{\conf@procWithDebug} % \DoNotIndex{\conf@IncludePDFs, \conf@DoNotIncludePDFs} % \DoNotIndex{\DeclareRobustCommand, \def, \DeclareOption, \dimen, \divide, \documentclass} % \DoNotIndex{\em, \else, \end, \ExecuteOptions, \endgroup, \expandafter, \endlist, \enspace, \equal} % \DoNotIndex{\fontfamily, \fontseries, \fontsize, \footnoterule, \footnotesize, \frontmatter} % \DoNotIndex{\fboxrule, \fboxsep \framebox, \fi, \filedate, \fileversion} % \DoNotIndex{\gdef, \global, \GenericWarning} % \DoNotIndex{\hline, \hrule, \hrulefill, \Huge \huge, \href, \hfill, \hfil, \hskip, \hspace, \hbox, \hss, \hb@xt@, \headheight, \headsep, \hoffset, \hspace} % \DoNotIndex{\i, \it, \iffalse, \item, \IfFileExists, \InputIfFileExists, \ifx, \if, \itshape, \itemindent, \ifdefined, \ifnum, \ifthenelse, \immediate, \index, \index@prologue, \input, \itemindent} % \DoNotIndex{\jobname} % \DoNotIndex{\kern} % \DoNotIndex{\label, \LARGE, \Large, \large, \let, \lineskip, \LoadClass, \LaTeX, \layout, \leftmaergin, \list, \labelsep, \labelwidth} % \DoNotIndex{\line, \linethickness, \leftmargin} % \DoNotIndex{\mainmatter, \mbox, \MessageBreak, \makebox, \makeindex, \MakeUppercase} % \DoNotIndex{\multiput, \m@ne} % \DoNotIndex{\n, \newcommand, \newlength, \null, \noexpand, \newbox, \newif, \next@tpage, \noindent, \newcounter, \newline, \newpage, \newwrite, \nocite, \normalsize, \nth} % \DoNotIndex{\o, \oddsidemargin, \openout, \or, \opnecolumn, \onehalfspace, \otherpagestyle} % \DoNotIndex{\par, \PackageError, \PackageWarningNoLine, \put, \PageIndex, \p@enumiv, \parindent, \parskip, \PassOptionsToPackage, \phantomsection, \printindex} % \DoNotIndex{\PassOptionsToClass, \ProcessOptions, \providecommand, \protect, \parbox, \p@} % \DoNotIndex{\r, \relax, \renewcommand, \rule, \RequirePackage, \RecordChanges, \renewenvironment} % \DoNotIndex{\s, \sc, \scshape, \section, \setkeys, \setlayoutscale, \setpagenumber, \settowidth, \SetupKeyvalOptions, \sfcode, \singlespace, \sloppy, \selectfont, \setcounter, \setlength, \small, \setbox, \space, \stop, \scriptsize} % \DoNotIndex{\today, \texttt, \typeout, \thinlines, \the, \textwidth, \thispagestyle, \topmargin, \topskip, \textbf, \textheight, \textsc, \theenumiv, \thepage, \tocdesign, \tocdiagram} % \DoNotIndex{\u, \usepackage, \undefined, \underline, \unitlength, \unkern, \url, \usecounter} % \DoNotIndex{\vfil, \vskip, \vbox, \vss, \vspace, \vfill} % \DoNotIndex{\voffset, \value} % \DoNotIndex{\wd, \whiledo, \widowpenalty, \write} % \DoNotIndex{\x, \xbf} % \DoNotIndex{\z@} % %^^A ================================================================= %^^A Some definitions to enhance the logical mark-up of this %^^A documentation %^^A ================================================================= % ^^A for environments (`\cmd' for commands is already defined in % ^^A \package{ltxdoc.cls}) % \DeclareRobustCommand*{\env}[1]{\texttt{#1}} % ^^A for packages, styles, classes % \DeclareRobustCommand*{\package}[1]{\texttt{#1}} % ^^A for eMails, urls % \DeclareRobustCommand*{\url}[1]{|#1|} % ^^A for files, paths and command-lines % \DeclareRobustCommand*{\file}[1]{\texttt{#1}} % ^^A for persons % \DeclareRobustCommand*{\person}[1]{\textsf{#1}} % ^^A for counters % \DeclareRobustCommand*{\Lcount}[1]{\textsl{\small#1}} % ^^A for length registers % \DeclareRobustCommand*{\Llength}[1]{\cmd{#1}} % ^^A for package options % \DeclareRobustCommand*{\Lopt}[1]{\textsf{\color{red!100!black}#1}} % \DeclareRobustCommand*{\LoptDescribe}[1]{\DescribeMacro{#1}\textsf{\color{red!100!black}#1}} % \DeclareRobustCommand*{\cmdDescribe}[1]{\DescribeMacro{#1}\cmd{#1}} % \DeclareRobustCommand*{\smiley}{|:-)|} % \DeclareRobustCommand*{\winkey}{|;-)|} % \DeclareRobustCommand*{\koma}{\textsf{K\kern.05em O\kern.05em% % M\kern.05em A\kern.1em-\kern.1em Script}} % \DeclareRobustCommand*{\tds}{TDS} % \DeclareRobustCommand*{\TeXLive}{\TeX{}Live} % \DeclareRobustCommand*{\ctan}{\textsc{ctan}} % \DeclareRobustCommand*{\mail}[2]{\person{#1} % \url{\textless #2\textgreater}} % \DeclareRobustCommand*{\ie}{{\em i.e.}} % \DeclareRobustCommand*{\eg}{{\em e.g.}} % \DeclareRobustCommand*{\marginBIB}{\marginpar{{\raggedleft\footnotesize \color{blue}\textsc{[bib]}}}} % \DeclareRobustCommand*{\datevzfive}{2009/08/19} % \DeclareRobustCommand*{\newvzdseven}{\marginpar{{\raggedleft\color{red!80!black} New [v0.7]}}} % \DeclareRobustCommand*{\margindanger}{\marginpar{\raggedleft\footnotesize \color{red}\textdbend}} % \DeclareRobustCommand*{\danger}{{\footnotesize\textdbend~}} % % %^^A ================================================================= %^^A If there is a multicol.sty present, we'll print the table of %^^A contents with 2 columns %^^A ================================================================= % \newif\ifmulticols % \IfFileExists{multicol.sty}{\multicolstrue}{\multicolsfalse} % %^^A ================================================================= %^^A After this the commands \filedate and \fileversion are defined %^^A ================================================================= % \GetFileInfo{confproc} % %^^A Version depending scripts % \newcommand{\versionPerl}{} % \newcommand{\versionpdftk}{1.12} %^^A to update in the text too % \newcommand{\versionghostscript}{8.71} %^^A to update in the text too % \newcommand{\currentpkgversion}{0.7} %^^A to update in the text too % % %^^A\changes{0.1g}{2007/08/07}{Typo in my email} %^^A ================================================================= %^^A Title definition %^^A ================================================================= % \title{The \package{\filename}~package\thanks{This file version number is \fileversion~ last revision on \filedate; doc is dated \docdate.}} % \author{Vincent % Verfaille\thanks{\url{verf[...].confproc@gmail.com}}} % \date{Printed on \today} % \maketitle % %^^A\changes{0.1c}{2007/07/30}{Document created} %^^A ================================================================= %^^A A small abstract %^^A ================================================================= % \begin{abstract} % The \package{\filename} package provided a \LaTeXe\ document-class % together with various tools (Perl and Unix/bash scripts) for % building conference proceedings, or concatenating any set of % PDFs with a table of contents, index and bookmarks. The LaTeX2e % class derives from \LaTeXe\ scripts written for the DAFx-06 % conference proceedings. It is mainly % based on the 'pdfpages' package for PDF papers including, and % the 'hyperref' package for creating proper links, bookmarks and % general bibliography back references. It also uses many other % packages for fine tuning of table of contents, bibliography and % index of authors. % Current version 0.7 is a major update with key-value option management. % The added value of this class is in the time it % saves for you to quickly design conference proceedings. % See \file{readme.txt} for a short overview and additional (legal) % information, and \file{exampleN.tex} and corresponding files and % scripts for an example of use. % \end{abstract} % % {\parskip 0pt ^^A We have to reset \parskip (bug in \LaTeX, % ^^A see doc.dtx) % \setcounter{tocdepth}{2} % \tableofcontents % } % % % \newpage % %^^A \listoftodos %^^A TO COMMENT OUT FOR FINAL DOC VERSION % %^^A ================================================================= % \subsection*{I do not want to read all this!!!\newvzdseven{}} % % Yes, that's a fairly long table of contents... Let me give you some shortcuts: % \begin{itemize} % \item \margindanger{}\textbf{very busy people can directly jump to % section~\ref{sec:twomin:guide} for a first documented % example, provided they have a full \TeX{}Live installation (at least 2008)}; % \item smart people can jump to the other and condensed documentation: % \newvzdseven{}\file{confproc-short.tex},\changes{0.7}{2010/08/05}{Doc: added % a summary documentation (\file{confproc-short.tex/.pdf}} % should they come back to this one for more details; % \item curious people % should rather read the not so short introduction in section~\ref{sec:usage}---it provides % some more details, such as the options and commands description---and the full example % in section~\ref{sec:example3}---which illustrates other functionalities % such as the general bibliography). % \item compulsive readers are welcome to read everything, starting from % the introduction :-). Their comments about the contents, typos, etc.~are much appreciated. % \item \TeX{} Programmers are not encouraged to read the implementation in % section~\ref{sec:implement}, as my \LaTeX{} programming skills are, let's say, still improving! % Their comments are much appreciated too. % \end{itemize} % % \vspace*{2cm} % %^^A ================================================================= % \subsection*{Color code and pictograms\newvzdseven{}} % %^^A\changes{0.7}{2010/08/05}{Doc: added color code} % This documentation uses the following color code: % \begin{itemize} % \item {\color{red}red: package options; new in this version (margin notes);} % \item {\color{blue}blue: reference, URLs, internal links to sections, chapters, etc;} % \item {\color{black!50}grey: portions of example code that do not differ from similar portions of the last example previously described in the documentation;} % \item important things to pay attention at are noticed with this `danger' margin sign\margindanger{}; % \changes{0.7}{2010/08/05}{Doc: added `what's new in version 0.7' margin notes} % \item new elements in current version are acknowledged with this margin note\newvzdseven{}. % \changes{0.7}{2010/08/05}{Doc: added `danger' margin pictogram for important things} % \end{itemize} % N.B.: this code documentation also uses the \package{colordoc} package, by \person{Federico Garcia} (\ctan: \href{http://www.ctan.org/tex-archive//macros/latex/contrib/colordoc}{macros/latex/contrib/colordoc}). % \changes{0.7}{2010/08/05}{Doc code: clarified with \package{colordoc}} % \changes{0.7}{2010/08/05}{Doc code: clarified with grey/black colors (incremental learning)} % % \cleardoublepage % %^^A ================================================================= %^^A Short description of what is done by the package %^^A Miscellaneous comments %^^A ================================================================= % \section{Introduction} % \label{sec:intro} % % The provided \package{\filename} class is based on several great packages, among % which \package{pdfpages} \cite{Matthias:2004:pdfpages} by \person{Andreas Matthias} % (IMHO, the most useful package to build proceedings) together with \package{hyperref} % \cite{Oberdiek:2006:hyperref} by \person{Sebastian Rahtz} and \person{Heiko Oberdiek} % (to manage all PDF and hyperlinks issues). So, you may consider \package{\filename} % as a time saving package to faster design conference proceedings or a compilation of % PDFs (such as an article collection). % % % %^^A ================================================================= % \subsection{Short history} % % \changes{0.4b}{2007/10/12}{Pkg: \package{nth} for superscript ordinals} % % When editing the DAFx-06 proceedings, I developed a set of \LaTeXe\ commands to % produce the best quality proceedings we could achieve thanks to \LaTeXe\. This was % documented on the DAFx-06 website \cite{Verfaille:2006:howto:web} and in a technical % report \cite{Verfaille:2006:howto:confproc}. % Later on, I created a shorter example version, that has been used as a basis by other % proceedings editors for their own needs (LAC 2007, ICAD 2007, DAFx-07, JMUI). % For better sharing of this example with other \LaTeXe\ users, I converted the set of % \LaTeXe{} commands into a document class---thanks to the information provided % by the \LaTeX{}3 team \cite{LaTeX:class:writers}---and then into a package producing % all necessary files (\ie{}~the class, the documentation, the example, the scripts, etc---using % {\sf Docstrip} \cite{mittelbach:1999:docstrip} together with the documentation by % \person{Scott Pakin}~\cite{Pakin:2004:howto:package}. Then, after using this class with % new scripts for the ICMC'09 conference proceedings, I wrapped it up into a package % (\file{.dtx} file) that generates all needed files. % % % %^^A\changes{0.2e}{2007/09/01}{Finish to re-test and document the pros/cons of other packages} %^^A ================================================================= %^^A ================================================================= % \subsection{Other packages or softwares} % \label{subsec:other} % % I tried several alternative solutions in the fall of 2005. Indeed, there are so many talented people out there developing great \LaTeX\ packages that I would have preferred to use anybody else's solution! Unfortunately, I have not been able to make any of them work in the way I needed. ^^A I would not say that they are no other `alive' other packages doing the same, since there are! % So I before finally decided to create my own package. % % N.B.: since the following information dates back to the fall of 2005, some of the following packages may have evolved in the meantime. Please take a look at them in order to get the latest information (which I obviously did not do)! % %^^A------------------------------------------------------------------------ % \subsubsection{Adobe Acrobat} % % Eventhough it is nothing related to a \LaTeX{} package, nor a free application, the Acrobat Professional software \cite{Adobe:2007:Acrobat} is a solution to create proceedings with proper internal links for a set of PDF papers with internal links. Some useful explanations will help to understand al that has to be done \cite{Brazil:2002}. Indeed, you have to do all the links for the table of contents, the index of authors and the general bibliography by hand. This sounds like hours of work! Would you really plan to do that, and potentially having to re-do it all when discovering any small error, as it happens during both the editing and the printing processes? Any \LaTeX{} solution would provide automatization of proceedings building. % % %^^A------------------------------------------------------------------------ % \subsubsection{The \package{combine} package} % % The one I would have loved to be able to use in 2006 is the \package{combine} package by \person{Peter Wilson} \cite{Wilson:2004:combine}, as it was especially designed for the purpose of combining articles into proceedings. It would have been perfect if it did not have incompatibilities with our \package{dafx06.sty} proceedings template (or conference style), since many commands are added in the header file. I encountered problems with the \package{hyperref} package as well as some minor problems with \package{fancyhdr.sty}: eventually, no paper was inserted in the proceedings, and the \LaTeX\ run would always fail (stopped without any notice during the first paper inclusion). Very frustrating, as it was too late for changing our conference proceedings style to make them compatible with \package{combine}. I contacted \person{Peter Wilson}, to which I am indebt for all the precious advices he gave me, among which was the use of a concurrent solution, \ie{} the \package{pdfpages} package! ^^A Many of his comments were motivations for finding my own way in the world of proceedings. % %^^A------------------------------------------------------------------------ % \subsubsection{The \package{pdfpages} package} % % As no magic solution do exist (yet?), the \package{pdfpages} package by \person{Andreas Matthias} \cite{Matthias:2004:pdfpages} is a very easy way to combine several PDF documents into a single document. Unfortunately, where \package{combine} seemed to be able to preserve internal references of each paper, \package{pdfpages} does not provide such feature, as papers are included as a set of single PDF pages. As I am not a specialist of the PDF format and so on, I can imagine that it is extremely complex to achieve such a feature. Anyway, it means that if your original PDF documents had internal links, hyper-references, links to URL, etc, they will simply be all broken. % % With this in mind, we used this package as a basis (so it then is not a concurrent), especially for the following feature: clicking on a page in the proceedings will open the corresponding paper (with its proper internal links). Simple! % %^^A------------------------------------------------------------------------ % \subsubsection{The \package{mini} style} % % The \package{mini.sty} package \cite{mini:eConf} does a very good job for concatenating abstracts in a single proceedings document. However, it is not suited (to my knowledge) for conference proceedings, where each paper has to be compiled with the conference style and has its very own title, authors, etc. (that cannot be inserted as (sub)sections). % %^^A------------------------------------------------------------------------ % \subsubsection{The AMS \package{editor} package} % % The \package{editor} package from the AMS \cite{AMS:editor} provides information and documents to produce both the front end and the back end of proceedings, which is of great help to understand all that has to be done (particularly the table of contents and the re-numbering of all papers). However, as they explicitely say it, there is no mechanism to assemble the files together. % % %^^A\changes{0.2a}{2007/08/12}{Doc: added the description from the report} % \changes{0.4f}{2007/10/7}{bug: \Lopt{draft} removes papers from bookmarks} % \changes{0.5}{\datevfive}{\Lopt{draft} does not remove papers from the bookmarks anymore} %^^A ================================================================= %^^A Description %^^A ================================================================= % \subsection{A solution: the \package{\filename} package} % %^^A------------------------------------------------------------------------ % \subsubsection{Short description} % % Using all the knowledge I could find around (and in the previously cited documentations about how to do a good PDF document for the proceedings), together with many tricks I found, this \LaTeX{} class provides the following features: % \begin{enumerate} % \item automatically generates the whole proceedings, after changing any of its paper information (thanks to \LaTeX!); % \item concatenates papers by inserting several individual documents into one document (with the \package{pdfpages} package); % \item provides `clickable' links (hyper-references) from the table of contents, the index of authors and the full bibliography to access to the corresponding page(s) (with the \package{hyperref} \cite{Oberdiek:2006:hyperref} package); % \item provides access to individual papers: a click on any paper's page opens the corresponding PDF paper (that still has its internal links); this feature comes with the \package{pdfpages} package. % \item left-aligned page numbers in the table of contents (using the \package{titlesec}) package; % \item displays the index of authors with two or three columns (hack derived from \package{twocolindex}, and using the \package{multicolumn} package); % \item organizes the bookmarks by proceedings' sections: the preamble, the table of contents, the days/sessions, the full bibliography, and the index of authors. Also, authors' names appear under their relative paper title. % \item organizes the table of contents: only the index of authors appearing in the table of contents (using the \package{tocbibind} package); % \item provides full bibliography, or at least help and informations for you to build one, with right-flushed back-reference page numbers. % \item enables fast \LaTeX\ run, using the \Lopt{draft} option of \package{pdfpages}. Useful when repetitively correcting errors, changing the layout (index, bookmarks, table of contents), merging bibliographies, etc. However, note that with this option, \package{pdfpages} does not generate the bookmark data. So, do not use it for final \LaTeX{} runs! % \item orders the packages. As \package{hyperref} \cite{Oberdiek:2006:hyperref} redefines most of LaTeX internal commands, a lot of care has to be taken when ordering the insertion of packages, otherwise some of the features can disappear. % \item gives information about the merging process involved to generate a general bibliography, as well as about production issues. % \item offers various \package{bash/Unix} scripts to help automatize the making of conference proceedings. % \end{enumerate} % % %^^A\changes{0.2e}{2007/09/01}{Pros and cons reorganized} %^^A ================================================================= %^^A Pros and cons %^^A------------------------------------------------------------------------ % \subsubsection{Pros} % \label{subsec:prosandcons} % % There are numerous advantages with the \package{\filename} class: % \begin{itemize} % \item help: it simplifies operations such as generating a conference program as the table of contents, generating the index of authors, generating the bookmarks, having the same layout for the proceedings as for the paper templates; % \item convenient: it provides an all-in-one package (with various useful scripts); % \item time saving: directly and elegantly re-use all the tricks previously collected or developed; % \item customization: it provides several commands and options to customize your document; % \item package ordering: it correctly inserts the \package{hyperref} package as the last one (all internal macros are redefined), except for packages requiring to be inserted after (like \package{hypcap}); % \item reliability: the \package{\filename} package is getting older and mature, and has been used for 8 issues. Its documentaton and option set make it now easy to use (however, editing conference proceedings is always a big job). %^^A: its functionalities were only used 4 times, but not under the form of this class, but in its previous form of \LaTeX{} commands. I however successfully used it to re-generate the DAFx-06 proceedings. % \end{itemize} % % \subsubsection{Cons} % \label{subsec:cons} % % There are also disadvantages, among which: % \begin{itemize} % \item package ordering: the order of package insertion is fixed, and may not be changed: \package{hyperref} has to be inserted last because it redefines many internal. After you add packages in your document, this will not be the case anymore!!! This is the main limitation I can think of, and would appreciate any feedback, comments, tricks, that would help to resolve this issue. % \item PDFs: \package{pdfpages} inserts PDFs as vectorial images (my understanding), so internal links are broken and the text cannot anymore be copied/paste. Hopefully, clicking on a paper page from the proceedings opens the original file! %^^A \item not everything is transparent to the user (or look into the class code); % \item customization is a bit limited to the class designer's defined commands (which are hopefully expanding in each version); % \item does not deal with parallel session programs. % \end{itemize} % % % %^^A ================================================================= %^^A------------------------------------------------------------------------ % \subsubsection{Hall of fame} % % Under one of its various forms, this package has been used for (at least) the following conferences: % \begin{itemize} % \item version 0.4e (class/package): % \begin{itemize} % \item July 2010: Proceedings of the International Society for Photogrammetry and Remote Sensing (ISPRS) Technical Commission VII Symposium: ``100 Years ISPRS --- Advancing Remote Sensing Science'', Volume XXXVIII, Part 7A and 7B --- Vienna, Austria; % used by \person{Alexandra von Beringe}, \person{Peter Dorninger}, \person{Sebastian Fl\"ory}, \person{Josef Jansa}, \person{Clemens Nothegger}, \person{Norbert Pfeifer}, \person{Andreas Roncat}; % \begin{itemize} % \item Part 7A: \href{http://www.isprs.org/proceedings/XXXVIII/part7/a/proceedings_partAweb.pdf}{\sf www.isprs.org/proceedings/XXXVIII/part7/a/proceedings\_partAweb.pdf} % \item Part 7B: \href{http://www.isprs.org/proceedings/XXXVIII/part7/b/proceedings_partBweb.pdf}{\sf www.isprs.org/proceedings/XXXVIII/part7/b/proceedings\_partBweb.pdf} % \end{itemize} % \item March 2010: Proceedings of the Workshop on Inverse Problems for Waves --- Palaiseau, France; % used by \person{Armin Lechleiter};\\ % \href{http://www.cmap.polytechnique.fr/~defi/mmsn2010/MMSN-2010.pdf}{\sf www.cmap.polytechnique.fr/$\sim$defi/mmsn2010/MMSN-2010.pdf} % \item September 2009: Pre-Proceedings of the UC09 Hypercomputation Workshop --- Ponta Delgada, The Azores, Portugal; % used by \person{Mike Stannett};\\ % \href{http://hypercomputation.net/uc09/preproc.pdf}{\sf hypercomputation.net/uc09/preproc.pdf} % \item August 2009: Book of abstracts of the 16th European Young Statisticians Meeting (EYSM 2009) --- Bucharest, Romania; % used by \person{Luiza B\u{a}din} and \person{Roxana Ciumara};\\ % \href{http://www.eysm2009.ase.ro/}{\sf www.eysm2009.ase.ro/} % \item August 2009: Proceedings of the International Computer Music Conference (ICMC 2009) --- Montreal, Qc, Canada; % used by \person{Gary Scavone} and myself; % \href{http://www.icmc2009.org/}{\sf www.icmc2009.org/} % \item June 2009: Nanophotonics Down Under 2009: Devices and Applications (SMONP: Sir Mark Oliphant Conference on NanoPhotonics) --- Melbourne, Australia; % used by \person{Michael James Ventura}; % \href{http://www.smonp2009.com/}{\sf www.smonp2009.com/} % \end{itemize} % \item version 0.2e (scripts): % \begin{itemize} % \item 2008 and 2009: numediart's Quartely Progress Scientific Report (QPSR); % used by \person{Christian Frisson}; % \begin{itemize} % \item Vol. 2(4), Dec. 2009: \href{http://www.numediart.org/docs/numediart_2009_s08_qpsr.pdf}{\sf www.numediart.org/docs/numediart\_2009\_s08\_qpsr.pdf} % \item Vol. 2(3), Sept. 2009: \href{http://www.numediart.org/docs/numediart_2009_s07_qpsr.pdf}{\sf www.numediart.org/docs/numediart\_2009\_s07\_qpsr.pdf} % \item Vol. 2(2), June 2009: \href{http://www.numediart.org/files/numediart_2009_s06_qpsr.pdf}{\sf www.numediart.org/files/numediart\_2009\_s06\_qpsr.pdf} % \item Vol. 2(1), March 2009: \href{http:www.numediart.org/files/numediart_2009_s05_qpsr.pdf}{\sf www.numediart.org/files/numediart\_2009\_s05\_qpsr.pdf} % \item Vol. 1(4), Dec. 2008: \href{http://www.numediart.org/files/numediart_2008_s04_qpsr.pdf}{\sf www.numediart.org/files/numediart\_2008\_s04\_qpsr.pdf} % \item Vol. 1(3), Sept. 2008: \href{http://www.numediart.org/files/numediart_2008_s03_qpsr.pdf}{\sf www.numediart.org/files/numediart\_2008\_s03\_qpsr.pdf} % \item Vol. 1(2), June 2008: \href{http://www.numediart.org/files/numediart_2008_s2_qpsr.pdf}{\sf www.numediart.org/files/numediart\_2008\_s2\_qpsr.pdf} % \item Vol. 1(1), March 2008: \href{http://www.numediart.org/files/numediart_2008_s1_qpsr.pdf}{\sf www.numediart.org/files/numediart\_2008\_s1\_qpsr.pdf} % \end{itemize} % \item September 2007: \nth{10} International Conference on Digital Audio Effects (DAFx-07) in Bordeaux, France; % used by \person{Sylvain Marchand}; % \href{http://dafx.labri.fr/}{\sf dafx.labri.fr/} % \item December 2007: Proceedings of the eNTERFACE'07 Workshop on Multimodal Interfaces -- Istanbul, Turkey; % used by \person{Christian Frisson} and \person{R\'emy Lehembre};\\ % \href{http://www.cmpe.boun.edu.tr/enterface07/outputs/final/eNTERFACE07.pdf}{\sf www.cmpe.boun.edu.tr/enterface07/outputs/final/eNTERFACE07.pdf} % \item 2007: Journal on Multimodal User Interfaces (JMUI) Vol. 1(1) and 1(2); % used by \person{Christian Frisson}; % \href{http://www.jmui.org/index.php/JMUI/issue/view/1/showToc}{\sf www.jmui.org/index.php/JMUI/issue/view/1/showToc} % \item June 2007: \nth{13} International Conference on Auditory Display (ICAD-07) --- Montreal, Qc, Canada; % used by \person{Gary Scavone}; % \href{http://www.music.mcgill.ca/icad2007/proceedings.php}{\sf www.music.mcgill.ca/icad2007/proceedings.php} % \end{itemize} % \item version 0.1 (scripts): % \begin{itemize} % \item March 2007: \nth{5} International Linux Audio Conference (LAC2007) --- Berlin, Germany; % used by \person{Marije Baalman}; % \href{http://www.kgw.tu-berlin.de/~lac2007/proceedings.shtml}{\sf www.kgw.tu-berlin.de/$\sim$lac2007/proceedings.shtml} % \item September 2006: \nth{9} International Conference on Digital Audio Effects (DAFx-06) --- Montreal, Qc, Canada; used by myself; % \href{http://www.dafx.ca/dafx06_proceedings.html}{\sf www.dafx.ca/dafx06\_proceedings.html} % \end{itemize} % \end{itemize} % % %^^A ================================================================= %^^A Version history %^^A ================================================================= % \subsection{Version history}\label{subsec:version:history}\label{subsec:new} % % Here is a list of versions (red versions are public releases): % \begin{description} % \item[{\color{red} v0.7}] this last version\newvzdseven{} is a major revision. It took me a while to add functionalities and modify the option interface (as kindly suggested by \person{Andreas Matthias} more than a year ago): % \begin{itemize} % \item class design: % \begin{itemize} % \item class options: interface re-designed, now uses key-values style (with \package{kvoptions} package); % \item tested with \TeX{}Live 2008, 2009 and 2010 (as of July 18th. 2010); % \item code clarified, using key-values (with the \package{keyval} package) but also \cmd{\ifthenelse} (from the \package{xifthen} package); % \end{itemize} % \item PDF insertion: % \begin{itemize} % \item command \cmdDescribe{\procpaper} with 1 argument (file name) and 8 optional arguments replaces \cmdDescribe{\insertprocpaper} with its 9 arguments. This re-design also makes use of key-values style options (using \package{keyval}); % \item removed the limitation to a minimum of 2 pages and a maximum of 8 pages (now 1 to anything); % \end{itemize} % \item class options: % \begin{itemize} % \item \package{hyperref}/\package{geometry}: can now directly pass options to the \package{hyperref} and \package{geometry} packages with the new \DescribeMacro{hyperref}\Lopt{hyperref=\{option list\}} and \DescribeMacro{geometry}\Lopt{geometry=\{option list\}} options; % \item added \LoptDescribe{papers=empty} option and mode. This offers a much faster fake paper insertion, compared to \LoptDescribe{papers=draft} (\Lopt{draft} mode of \package{pdfpages}, but not checking if pages actually exist); % \item added new options for layout fine tuning and debug: % \begin{itemize} % \item \DescribeMacro{binding}\Lopt{binding=Xmm} to indicate the binding of the paperback version; % \item \LoptDescribe{checktitle} and \LoptDescribe{checkauthor} to overlay the title and author list onto the 1st page of each paper, for checking the consistency of the table of contents with individual PDF papers; % \item \LoptDescribe{showmarginlines} to draw the margin lines (so that one can match each page fits the template); % \item \LoptDescribe{showpapernumber} to show the paper number below the page number; % \item \DescribeMacro{colorheaders}\Lopt{colorheaders=red} to color the header/footer; % \item \LoptDescribe{pdftk} to output commands for later setting PDF metadata of individual PDFs; % \item \LoptDescribe{verbose} and \Lopt{debug} are now different options, and their output texts have been clarified and now makes use of \cmd{\PackageInfo} and \cmd{\PackageWarning}. % \end{itemize} % \item options' default values: reset to simplify the most possible the first tests; % \end{itemize} % \item documentation: % \begin{itemize} % \item added a 2-minutes documentation (\file{confproc-short.tex}) that summarizes commands and options; % \item added a second (and simpler) example; % \item improved \& re-organized for incremental learning, and clarified with margin notes and color code (using gray/black color code to show differences between successive versions of the code, and using the 'colordoc' package for color code); % \end{itemize} % \item scripts: added some \file{bach/Unix} scripts for more functionalities, such as: % \begin{itemize} % \item \file{buildprocelpb.sh}: for optimized example (generates both paperback and electronic versions of proceedings). % \item \file{prepareexample.sh}: prepare example files and scripts. % \item \file{exportIndividualPDFs.sh}: extracts individual paper with new page numbers and proper metadata; % \item \file{countnbpages.sh}: counts number of pages in each individual PDF paper. % \end{itemize} % \end{itemize} % \item[v0.6] undistributed: integrated and enhanced changes made for ICMC 2009; % \item[v0.5] undistributed: hacked version with \package{kvoptions} plus many fixes for ICMC 2009; % \item[{\color{red} v0.4e}] % \begin{itemize} % \item enhance package by redefining book commands; % \item fixed several issues; % \item define page layout with the \package{geometry} package (thanks to \person{Will Robertson}); % \end{itemize} % \item[v0.4d] changes history: re-organized using \file{macro} environment (shorter and clearer); % \item[v0.4c] bug correction: author is back in the bookmark (disappeared in v0.4a); % \item[v0.4b] % \begin{itemize} % \item debug: \cmd{\hypersetup} evaluated only at the document beginning (then taking into account the user changes in the PDF metadata); % \item remove formatting from footer and name-like commands: author, title, etc. (suggested by \person{Will Robertson}); % \item use \package{mathptmx} package instead of \package{times} package (thanks to \person{Will Robertson}); % \item use \package{nth} package instead of \cmd{\textsuperscript} command (thanks to \person{Will Robertson}); % \item redefine \cmd{\thebibliography} to avoid inserting a phantom item to set the introductory paragraph (thanks to \person{Will Robertson}); % \end{itemize} % \item[{\color{red} v0.4a}] % \begin{itemize} % \item allows to insert 1-page long papers (did not work in v0.3 and previous); % \item instead of replacing each paper's last page by the list of its bibliography items, print them on top of the header of the last page; % \item incorporate font style changes to the class: redefining the \cmd{\mainmatter}, \cmd{\backmatter}, \cmd{\thebibliography}, \cmd{\thecontents} commands (thanks to \person{Will Robertson}); % \end{itemize} % \item[{\color{red} v0.3}] first released version of the package. % \item[v0.2e] first distributed version of the scripts. % \item[v0.1] first version of the scripts (DAFx-06). % \end{description} % % %^^A\changes{0.1c}{2007/07/30}{Todo: created} %^^A ================================================================= %^^A What have to be done? %^^A ================================================================= % \subsection{To do / bugs} % \label{subsec:todo} % % At this time this package offers many more features than the original % scripts did. It looks `complete' to me, and fully functional as is. % I however would like to debug/add the following functionalities: % \begin{itemize} % \item backward incompatibility: citation items lost if using old % command \verb+\procinsertpaper+ (up to version 0.5) % \item bibliography: fix the right-flush issue that sometimes happen % for a small number of back-references in the bibliography, % where 1 or 2 or a longer list of back-referrences are placed onto % a next line whereas there is enough space on the previous line. % \item index/bibliography: correct the pdf link. Clicking on that % link should go to the top of the page of the index/bibliography, % and not to a position just below the \cmd{\indexname} in the text. % \item bookmarks/TOC: find a mechanism to customize the table of % contents bookmark entry by setting the argument of % \verb+\pdfbookmark[0]{Program}{contents}+ (does not work yet % because \cmd{\pdfbookmark} does not accept commands as arguments). %^^A \item[$\surd$] (since v0.5) use the \package{keyval} package to properly manage options like \verb+ % \end{macrocode} % %^^A ================================================================= %^^A Here the \StopEventually stuff will be appended (if we build %^^A the `programmer' docu) %^^A ================================================================= % \Finale % \endinput % % \fi