"Patch failed" in EMNLP Style Template
In your local copy of the package, just delete the line
\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{\errmessage{\noexpand patch failed}}
and you will get the intended result, since 2018 latex releases the original source already has \unvbox
so \patchcmd
can not find the \box
to replace.
The LaTeX sources document the change as:
% \changes{v1.4d}{2018/11/28}{Unbox \cs{@outputbox} to preserve boxing
In comments you mention that you are not allowed to change the package, but that rule was written to ensure you do not change the document design by editing the .sty
file.
The conference rules were not expecting latex to change and break their file. The code simply will not work with current latex so change your copy: it will work the same way on anew latex as the unchanged file with the patch will work on an old one.
So you can still submit your article they don't need to "know" that you changed the local copy of the package, although you could report it to them referencing this answer.
Because I do not have an Overleaf account please do the following test:
Add the line \listfiles
as the first line to the file emnlp2019.tex
:
%
% File emnlp2019.tex
%
%% Based on the style files for ACL 2019, which were
%% Based on the style files for EMNLP 2018, which were
%% Based on the style files for ACL 2018, which were
%% Based on the style files for ACL-2015, with some improvements
%% taken from the NAACL-2016 style
%% Based on the style files for ACL-2014, which were, in turn,
%% based on ACL-2013, ACL-2012, ACL-2011, ACL-2010, ACL-IJCNLP-2009,
%% EACL-2009, IJCNLP-2008...
%% Based on the style files for EACL 2006 by
%%[email protected] or [email protected]
%% and that of ACL 08 by Joakim Nivre and Noah Smith
\listfiles % <====================================================
\documentclass[11pt,a4paper]{article}
\usepackage[hyperref]{emnlp-ijcnlp-2019}
\usepackage{times}
\usepackage{latexsym}
...
Now compile three times on Overleaf and check the resulting log file emnlp2019.log
at the end for a list of used packages and versions. I'm very sure you will find an older version of hyperref
listed ...
Please add this list to your question.
Then compile the same file emnlp2019.tex
with the added \listfile
on your computer. Once again check the resulting log file and search for the used version of hyperref
. I'm sure it is newer ...
Please add the resulting list of used packages and versions to your question too!
The reason for my guess is the following code in the used sty
file:
% DK/IV: Workaround for annoying hyperref pagewrap bug
\RequirePackage{etoolbox}
\patchcmd\@combinedblfloats{\box\@outputbox}{\unvbox\@outputbox}{}{\errmessage{\noexpand patch failed}}
As you can see in the comment above the used \patchcmd
there was a bug in an older version of hyperref
(which one is not named, that would be really helpful!). The used patch wants to correct is, but on your current computer system the patch failed, because
- command
\@combinedblfloats
can not be found or - command
\box\@outputbox
can not be found to be changed to\unvbox\@outputbox
For a quick test do the following:
- create a new directory.
- copy all files from the zip file in your given link into that directory.
- Add
\listfiles
to the template Tex fileemnlp2019.tex
- comment on the shown lines above in the file
emnlp-ijcnlp-2019.sty
and - recompile the file
emnlp2019.tex
Error gone? Okay, the patch seems to be no longer needed.
Error still there? Contact the maintainer of the zip file and report the bug you found.