[Tex/LaTex] How to automatically create a book of abstracts of a scientific conference


I'd like to prepare a book of abstracts of a scientific conference. I expect to receive about 650 articles. Suppose the articles are all the same document class and all have the following structure (feel free to change its structure):

\usepackage{lipsum}% just for this example
\newcommand{\university}[1]{\\ \itshape #1}
\title{Title of the first article}
\author{Author 1 \university{Foo University}}

Here goes some text ...

I want to extract the title, author, university, and the abstract of articles and put each two of them on the same page in my "Book of Abstracts" as follows:
enter image description here
Due to the large number of articles I want to automatically do this. Is there a package or template to do this?
Please keep in mind that I've searched this site very well and I didn't find an automatic way.


Please assume that "Call for Papers" will be about next month, so we can still change the source code above if it helps find a better solution.

Best Answer

This is just the solution proposed by wipet in mode batch. All you need is to put this .bat in the same directory of articles and run it (clic twice) you'll get abstract.tex and abstract.pdf test with 651 .tex files

@echo off

set path=C:/texlive/2014/bin/win32;%path%

echo \documentclass{article}
echo \usepackage{lipsum}
echo \newcommand{\university}[1]{\cr \itshape #1}
echo \def\onlyabstracts{%
echo    \long\def\documentclass##1##2\title##3##4\begin##5{\title{##3}##4}
echo    \def\title##1{\vskip5ex{\centering\LARGE##1\par}}
echo    \let\author=\authorX \let\and=\andX
echo    \def\date##1{}
echo    \let\maketitle=\relax
echo    \let\abstractX=\abstract
echo    \def\abstract{\abstractX \aftergroup\endinput}
echo }
echo \def\authorX#1{\medskip{\leftskip=0pt plus1fill \rightskip=\leftskip \lineskip=8pt
echo    \noindent\andA#1\crcr\egroup\egroup\par}}
echo \def\andA{\vtop\bgroup\baselineskip=14pt\halign\bgroup\hfil\large##\unskip\hfil\cr}
echo \def\andX{\crcr\egroup\egroup\hskip3em plus1em\andA}
echo \begin{document}
echo \onlyabstracts
) > abstract.tet
for %%a in (*.tex) do echo \input %%a  >> abstract.tet
echo \end{document} >> abstract.tet
ren abstract.tet abstract.tex
pdflatex abstract.tex

for %%a in (*.tet, *.aux, *.log, *.lof, *.lot, *.toc, *.idx, *.ilg, *.ind, *sync*, *.out, *.bbl, *.blg, *.thm) do del %%a
Related Question