Thursday, March 3, 2011

Author per chapter (a.k.a. Proceedings)

I never understood why there is no proper Latex class for typesetting proceedings or journals when Latex or Xetex is getting increasingly popular among scientists. The biggest trouble you will have whey you will try to typeset something like this is to get the authors' names into the Table of Contents and into the headers while having each author's contribution to the volume as a chapter which shall not appear numbered anywhere.

The best (and only) template I could find was eConf Full-Text Proceeding Instructions and Templates but even these were nowhere near to what I needed because this requires you to typeset your Table of Contents manually. Yuck!

After much googling I found that there really is no good solution for typesetting a compiled volume where every \chapter would have its own author. The most useful posts in discussions recommended using the memoir.cls and modifying it as needed.

It looks like nobody has ever published his take on modyfiying the memoir.cls for typesetting proceedings or journal volumes where each chapter would have its author and the names of these authors would appear in the ToC and the headers. Therefore I publish here something which you can use right away for typesetting proceedings with authored chapters. To achieve this, my modified memoir.cls (called proceedings.cls) does following things:

  1. Disables chapter numbering and also removes the "0." before section number
  2. Writes the author and his home institute under the chapter title
  3. Does not typeset the page number on the initial page of the chapter
  4. Shows the short version of the chapter title in even head
  5. Shows the author's name in the odd head
  6. Shows the author's name above the chapter's title in the table of contents

You can have a look at an example pdf which shows such a minimal dummy proceedings containing two papers. The pdf was generated by xelatexing this source document. To compile it yourself, you will need my modified version of the document class memoir.cls which I called proceedings.cls. Put them all in one directory and compile with xelatex (at least that's what I did).

I had to refrain from using the normal \chapter command. My proceedings.cls provides you the \Chapter command (defined in lines 2844–2857) which must be used as

\Chapter{<Author's name>}{<Author's home institute>}{<Full title of the paper>}{<Short title to appear in the header>}

You will probably need to modify it when setting the vertical space between the Author's name and the Chapter title in the Table of Contents and on the title page of the paper.

I got rid of the chapter numbering the hard way by deleting it of the documentclass's commands \thechapter and \thesection (lines 2580 and 2581 of proceedings.cls)

If you would like to change anything about the headers or footers, you change that in the pagestyle proceedings which I defined in lines 2024–2039 of the proceedings.cls

I know that my solution is far from elegant because internally it uses the \chapter* command which makes chapters which don't appear in the table of contents and right after that it "manually" adds the chapter's title with the author's name to ToC. I also know that rather than replacing the chapter number with {} it would be more elegant not to let typeset it at all. I also wish I could have a command like e.g. \chapterauthor which would be used as a place holder in the definition of the header and get updated with every \Chapter (or even \chapter) rather than redefining the whole header with every new \Chapter.

Alas, I have spent so many days with this that right now I am not going to spend any more time with this. If you are an experienced document class designer please do it better, publish it somewhere, and let me know. Thank you.

Unexperienced Xetex users may use and modify the proceedings.cls as they need. If you have questions where and how to modify certain things in it please ask me directly or in the comments.

17 comments:

Amy Brown said...

Wow. I'm using LaTeX to typeset a book which is a compilation of articles by different authors, so I need exactly the same thing as you. I'm astonished that this isn't a previously solved problem. Unfortunately we're not using the memoir class, so I can't use your solution, but I'll poke around in your files and see if I get any ideas.

Thanks.
Amy

Kieran said...

This is terrific—thanks. I was just faced with this problem (pulling together papers for a class I'm teaching) and, googling around like you and the other commenter, was amazed that this wasn't a solved problem (even in a rudimentary way), given how many journals are published with latex.

D said...

This is exactly what I've been searching for! Thanks so much.

Like you, I just couldn't believe there weren't any easy, established solutions to the "collection of papers by different people" problem.

I got lucky that someone linked me to this post though. You should work on this a bit more and then publicise it, there's definitely a demand!

Anonymous said...

Have you tried confproc?

I like what you've done here; do you know how to make it compatible with LaTeX and not just XeTeX?

ഞാന്‍ said...

When I tried to use \chapterstyle{veelo} with this class, it failed to compile. What can I do to use \chapterstyle with this class?

Man and Van in London said...

Your blog is really helpful. Thanks for sharing these great tips!

Anonymous said...

Use $H_2O$ in the *.tex file to include a subscript

Use $a^b$ for superscript

Custom-Writing.org said...

Since the Many people deal with MSVisualStudio (Java, C + +), it would be just fine on your server to see information about it. Thank you for your attention.

cheap paper writing service said...

I like ur work, thanks a lot for this!

Paul said...

I know this is a year old, but ... I set a book last year that was a compilation of essays by various authors. This is what I did, using the titlesec and titletoc packages (stripping out the formatting) to get the author names in the toc:


\let\chauthshort=\@empty\let\chauthlong=\@empty
\renewcommand\author[2][]{%
\def\chauthshort{#1}
\ifx\chauthshort\@empty\def\chauthshort{#2}\fi
\def\chauthlong{#2}}

\titlecontents{xchapter}[27.5pt]
{\small\filright (by }
{}
{}
{)}

\def\ttll@xchapter{0}
\def\toclevel@xchapter{6}

\titleformat{\chapter}[display]{...}%
{...}%
{...}%
{...}%
[\ifx\chauthlong\@empty\else\vspace{1ex}\Large\chauthlong\fi
\ifx\chauthshort\@empty\else\addcontentsline{toc}{xchapter}{\chauthshort}\fi]

Just type \author{name} immediately before each \chapter.

Anonymous said...

Thank you so much!!! I just found this website but its sure, that you spared me a lot of headache.

Thanks,
Galla

juliangreenfield said...

I was thinking about the same.  And I am still searching for the best solution. 

atv winch

Chris Friend said...

Thank you for publishing this. I don't care how "inelegant" your solution is, it works.

I'd like to add to the hackery. I noticed that section numbering is consecutive from one chapter to the next, which is generally undesirable. (Your sample PDF has section #4 by the end, but it should be another section #2.)

By inserting a new line in proceedings.cls below line 2858, I forced section numbers to restart with each chapter. This wreaks havoc with hyperref cross-referencing, but I needed a quick visual, not a complete logical, fix.

Put this in a new line 2859:

\setcounter{section}{0}

Again, many thanks for the .cls file.

Николай Безлюдный said...

Hopefully it won`t bother you to come and visit star writers ***, which is an excellent customer service. I have looking for something like that for quite some time and happy to share if there is anyone looking like I was.

Grace Waters said...


I always learn a lot from your blogs!
Visit us »

Николай Безлюдный said...

Thank you for the great post

Nick said...

Great post. nick720072