[Tex/LaTex] Define list of contributors and chapter authors for edited volume

chaptersdocumentclass-writingsectioningtable of contentstitles

I'm laying out an edited volume (first of many apparently, so I'm building a class based on memoir), for which each chapter has a different author.

I would like list editor and contributors separately on the titlepage, and place a list of contributors along with their bio/affiliations and contact info ordered by chapter somewhere in the front matter. In addition, each chapter title (and its toc entry) needs to have the author(s) and footnoted affiliations (chapter only).

What I'm thinking is creating a new list (similar to a list of figures) with each contributing author block and point latex's standard author to "editor"?

Unfortunately, that exceeds my skills of latex. Any suggestions on how to proceed would be helpful.

EDIT: I can't use image or cloud access from work, so I'll just have to rough out what I'm talking about:

For the title pages:

TITLE

Edited by:
A.N. Editor

with contributions by:
One Author
Second Author
Third Author

And in the frontmatter:

**List of Contributors**

One Author, Professor Emeritus
Miscatonic University, 123 Main Street, Salem NY 12345
email: email@school.edu

Second Author, Chief Engineer
Big Enviro Firm, Inc., 123 Main Street, Anywhere CA 67890
email: email@place.com

Third Author, Random Expert of Miscellany
DeepThought Consultants, LLC., 21b Baker Street, Washington D.C.

Best Answer

Based on the above comments, here's one way to do it. I relied on the little-used yax package because it seems like your key-value needs are pretty simple and it provides a lightweight markup syntax.

The main macros are

\printcontributor{<parameter>}

which will print the full information of each contributor. An example of how you can do some simple conditional formatting is shown.

The other macro is

\maketitlepage{<title>}{<editor>}{<list of contributors, separated by commas>}

This is one way to create a title page by reusing the information from \setparameter. The only little trick is to use etoolbox's list-looping function so you can access the information of each contributor simply by using the parameter name.

In both cases, you'll probably want to change the formatting to suit your needs.

\documentclass[12pt]{memoir}
\usepackage{etoolbox}
\usepackage{yax}
\usepackage{hyperref}

\setparameter Smith:
 firstname   = John
 lastname    = Smith
 job         = {Professor Emeritus}
 univ        = {Miscatonic University}
 address     = {123 Main Street}
 city        = Salem
 region      = NY
 postcode    = 12345
 email       = {\href{mailto:email@school.edu}{email@school.edu}}

\setparameter Doe:
 firstname   = Jane
 lastname    = Doe
 job         = {Chief Engineer}
 firm        = {Big Enviro Firm, Inc.}
 address     = {123 Main Street}
 city        = Anywhere
 region      = CA
 postcode    = 67890
 email       = email@place.com

\setparameter Author:
 firstname   = Third
 lastname    = Author
 job         = {Random Expert of Miscellany}
 firm        = {Deep Thought Consultants, LLC.}
 address     = {123 Main Street}
 city        = Elsewhere
 region      = ZZ
 postcode    = 55555

\newcommand{\printcontributor}[1]{%
  \begingroup
  \parindent 0pt
  \usevalue #1: firstname
  \space
  \usevalue #1: lastname
  \ifattribute #1: job {,\space}{\relax}
  \usevalue #1: job
  \newline
  \usevalue #1: univ
  \usevalue #1: firm
  ,\space
  \usevalue #1: address
  ,\space
  \usevalue #1: city
  \space
  \usevalue #1: region
  \space
  \usevalue #1: postcode
  \ifattribute #1: email {\newline} {\relax}
  \usevalue #1: email
  \endgroup
}

% #1 = title of book
% #2 = editor
% #3 = comma-separated list of contributors from above \setparameter
\newcommand{\maketitlepage}[3]{%
  \begingroup
  \centering
  \begingroup
  \Large \bfseries
  #1
  \endgroup

  \vspace*{2\baselineskip}

  Edited by:\par
  #2

  \vspace*{2\baselineskip}

  with contributions by:

  \renewcommand\do[1]{%
    {\itshape
    \usevalue ##1:firstname \space \usevalue ##1:lastname \par}%
    }
  % \docsvlist{Smith, Doe, Author}
  \docsvlist{#3}

  \endgroup
}

\begin{document}

% print custom title page
\maketitlepage
  {Title of the Book}%
  {A. N. Author}%
  {Smith, Doe, Author}

\bigskip

% Contributors
\begingroup
\parindent 0pt
\parskip  12pt

\textbf{Contributors}

\printcontributor{Smith}

\printcontributor{Doe}

\printcontributor{Author}

\endgroup

\end{document}

The \tableofcontents is left untouched. Although you mentioned the memoir class, it is unclear how the individual entries should appear in the table of contents. (And memoir's manual explains how to fiddle with your TOC settings.)