ACL pubcheck is a Python tool that automatically detects font errors, author formatting errors, margin violations, outdated citations as well as many other common formatting errors in papers that are using the LaTeX sty file associated with ACL venues. The script can be used to check your papers before you submit to a conference. (We highly recommend running ACL pubcheck on your papers pre-submission—a well formatted paper helps keep the reviewers focused on the scientific content.) However, its main purpose is to ensure your accepted paper is properly formatted, i.e., it follows the venue's style guidelines. The script is used by the publication chairs at most ACL events to check for formatting issues. Indeed, running this script yourself and fixing errors before uploading the camera-ready version of your paper will often save you a personalized email from the publication chairs.
The simplest way to use aclpubcheck
is to install using pip
directly from the GitHub repository (DIFFERENT from pypi
):
pip3 install git+https://github.com/acl-org/aclpubcheck
Alternatively, you can install directly from source and build locally:
# clone using ssh
git clone git@github.com:acl-org/aclpubcheck.git
# or http
git clone https://github.com/acl-org/aclpubcheck.git
cd aclpubcheck/
# install locally
pip install -e .
Once installed, you can use apply it on a PDF:
# Script execution
aclpubcheck --paper_type PAPER_TYPE path/to/paper.pdf
# Module execution (in case script execution does not work)
python3 -m aclpubcheck --paper_type PAPER_TYPE path/to/paper.pdf
Replace PAPER_TYPE
with one of (1) long
, (2) short
, (3) demo
, depending on the type of paper you have accepted. Then, change path/to/paper.pdf
to be the path to your paper. For example:
# -p is a shorthand for --paper_type
python3 -m aclpubcheck --p long example/2023.acl-tutorials.1.pdf
If you find that ACL pubcheck gives you a margin error due to a figure that runs into the margin, you can often fix the problem by applying the adjustbox package. Additionally, if the margin error is caused by an equation, then it may help to break the equation over two lines.
ACL pubcheck is meant to be run on the camera ready version of the paper, not on the review version (e.g. anonymous, line-numbered submission version). Running ACL pubcheck on a line-numbered version will result in a stream of spurious errors related to the numbers in the margins.
Note: Additional info can be found in the PDF document aclpubcheck_additional_info.pdf
included in this package.
Typically, the space at the bottom of a paper should be left empty, as page numbers will be added during the watermarking process of the proceedings. By default, ACL pubcheck ensures that a margin of approximately 2 cm at the bottom of each page is left blank. If any text is detected in this area, such as page numbers mistakenly added, a warning is generated. However, if this area must contain information, or if you need to bypass this check for any reason, you can disable it by using the parameter --disable_bottom_check
.
If you are having trouble with installing and using the Python toolkit directly, you can use:
- a Colab version you can use to directly upload and run aclpubcheck without local installation (thank Danilo Croce).
- a Hugging Face Space at https://huggingface.co/spaces/teelinsan/aclpubcheck (thank Andrea Santilli). More info about this version can be found at https://github.com/teelinsan/aclpubcheck-gui
Our toolkit now automatically checks your citations and will leave a warning if you have used incorrect names or author list. Please have a look here on why it is important to use updated citations.
Demo version of PDF name checking is available here.
The bibilography from your PDF file is extracted using Scholarcy API. Each bib entry in this bib file is updated by pulling information from ACL anthology, DBLP and arXiv; by using fuzzy match of the titles. After updating the bibs, the author names are compared and mismatches in author names are warned.
The functions are present in aclpubcheck/name_check.py
. The class PDFNameCheck
is used in formatchecker.py
.
Some of the warnings generated for citations may be spurious and inaccurate, due to parsing and indexing errors. We encourage you to double check the citations and update them depending on the latest source. If you believe that your citation is updated and correct, then please ignore those warnings. You can fix your bib files using the toolkit like rebiber.
This is how the warnings appear for the outdated names. You would be directed to a URL where you can correct the citations. We are not showing the name changes as it might out the deadnames in the warnings.
The original version of ACL pubcheck was written by Yichao Zhou, Iz Beltagy, Steven Bethard, Ryan Cotterell and Tanmoy Chakraborty in their role as publications chairs of NAACL 2021. The tool was improved by Ryan Cotterell and Danilo Croce in their role as publication chairs of ACL 2022 and NAACL 2022. Pranav A added the name checking functions to this toolkit.
The tool is primarily maintained by Ryan Cotterell and Danilo Croce. More volunteers are welcome!