python -m pip install -r requirements.txt
Java is required to use the pax latex library, which is responsible for extracting and reinserting PDF links. Visit the Java website for instructions on how to install.
sudo apt-get install texlive-latex-base texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended texlive-fonts-extra texlive-bibtex-extra
Install mactex
.
One way this is to install Homebrew first and then:
brew install mactex
Ensure that PYTHONPATH
includes .
, for example export PYTHONPATH=.:$PYTHONPATH
.
Run the CLI on the example directory:
./bin/generate example/ --proceedings --handbook
The generated results, along with intermediate files and links, can then be found in
the build
directory in the directory in which you ran the command.
The generation scripts accepts as input the path to a directory, containing a set of .yml
files and directories.
Examples and usage of YAML syntax can be found here
This expected input directory structure and the CLI are detailed below.
# Generates the proceedings.
./bin/generate example/ --proceedings
# Generates the handbook.
./bin/generate example/ --handbook
# Generates both.
./bin/generate example/ --proceedings --handbook
# Generates both and overwrites the existing contents of the build directory.
./bin/generate example/ --proceedings --handbook --overwrite
Users may wish to make modifications to the output .tex
files.
Though we recommend first copying the .tex
files to a new working directory,
the --overwrite
flag helps ensure that local modifications are not accidentally erased.
List key information about the conference that builds the cover, watermarks, and other items.
name: [str] Name of the Conference
abbreviation: [str] Conference abbreviation or acronym, i.e. EMNLP
start_date: [str] Conference start date YYYY-MM-dd
end_date: [str] Conference end date YYYY-MM-dd
isbn: [str] ISBN number of the proceeding.
List of sponsor tiers along with a directory containing the related logos.
- tier: [str] Name of the tier, i.e. Diamond Level or In Collaboration With
logos:
- [str] Path to a logo file relative to the sponsor_logos/ directory, i.e. facebook.png
List of prefaces along with a directory containing .tex
files that provide the text of the prefaces.
- title: [str] Title of the preface, i.e. "Preface by the General Chair"
file: [str] Name of the file relative to the prefaces/ directory containing the preface text, i.e. general_chair.tex
The contents of the .tex
files should not include usual headers and footers found within LaTeX files.
Instead, they should only contain the contents between the \begin{document}
and \end{document}
directives.
Frequently, this will simply be plaintext, with a few formulas, figures, or tables.
Lists the members of organizaing committee.
- role: Name of role, i.e. General Chair
members:
- name: Committe member name as it should appear, i.e. John Doe
institution: Committee member's institution name as it should appear, i.e. University of California Berkeley, USA
Lists the members of program committee.
- role: Name of role, i.e. General Chair
members:
- name: [str] Committe member name as it should appear, i.e. John Doe
institution: [str] Committee member's institution name as it should appear, i.e. University of California Berkeley, USA
# OR
- [str] Committee member name as it should appear, if institution should not be included.
- role: Reviewers
type: name_block # By adding the name_block type in the role, names will be output in alphabetized blocks.
entries:
- [str] Committee Member Name
List of invited talks and associated abstracts and bios.
As with the prefaces, the contents of the .tex
files should not include usual headers and footers found within LaTeX files,
and only what is usually found between the \begin{document}
and \end{document}
directives.
- speaker_name: [str] Speaker name as it should appear, i.e. Jane Doe
institution: [str] Speaker's institution name as it should appear, i.e. University of California Berkeley, USA
title: [str] The title of the talk.
abstract_file: [str] Path to abstract LaTeX file relative to the invited_talks/ directory.
bio_file: [str] Path to bio LaTeX file relative to the invited_talks/ directory.
Lists the accepted papers, along with a directory containing the associated PDFs.
The listed papers much each have a unique ID so that they may be referred to by ID within the program.yml
file later on.
- id: [str] Unique ID for the paper.
authors:
- [str] Author1 Name
- [str] Author2 Name
file: [str] File name relative to the papers/ directory, i.e. 1.pdf
title: [str] Title of the paper.
abstract: [str] Abstract of the paper, usually a LaTeX fragment.
Describes the conference program. This file is organized in blocks, each with a title, start, and end time, followed by a list of papers IDs.
- title: [str] Title of the conference session, i.e. Opening Remarks
start_time: [str] Start time of the session as an ISO datestring.
end_time: [str] End time of the session as an ISO datestring.
papers:
- id: [str] Paper ID
start_time: [str] Optional start time of the paper slot as an ISO datestring.
end_time: [str] Optional start time of the paper slot as an ISO datestring.
The above describe a reasonable default usage of this package, but the behavior can easily be extended or modified by adjusting the contents of the aclpub2/
directory.
The main files to keep in mind are aclpub2/templates/proceedings.tex
which contains the core Jinja template file, and aclpub2/generate.py
which is responsible for rendering the template.
This project makes extensive use of Jinja to produce readable Latex templates. Before contributing or forking, it is generally helpful to familiarize yourself with the Jinja library. Documentation can be found here.
Additional configuration for Jinja can be found in the aclpub2/templates.py
file.
The purpose of this file are to set up the Jinja environment with LaTeX-like block delimiters so that the proceedings.tex
file can be syntax highlighted and otherwise interacted with in a fashion that is more natural for LaTeX users.
In addition, it is also responsible for configuring some convenience functions that allow us to create some LaTeX structures in the final output .tex
file that are easier to write in native Python than either the Jinja base syntax, or LaTeX alone.