sasozivanovic / memoize

A cross-format package for externalization of graphics and memoization of compilation results in general
LaTeX Project Public License v1.3c
18 stars 3 forks source link

Updated Memoize + Biblatex causes compilation failure if \cite is used in document, whether or not subject to memoization #9

Closed cfr42 closed 10 months ago

cfr42 commented 10 months ago

If the current versions of Memoize and Biblatex are loaded with current LaTeX, use of \cite{} in the document results in compilation failure following generation of bibliography by Biber. This is true whether \cite{} occurs within or without memoized code and regardless of whether anything in the document is actually memoized. Simply loading memoize with the default configuration is sufficient to generate the error.

'Current' is detailed in the terminal output below. I'm using TeX Live updated yesterday (2024-01-20).

\documentclass{article}

\usepackage{memoize}
\usepackage{biblatex}
\bibliography{biblatex-examples}

\begin{document}
\cite{angenendt}
\end{document}

Compiled with

TEXMFHOME=/d pdflatex <filename>
TEXMFHOME=/d biber <filename>

Attempting to recompile with

TEXMFHOME=/d pdflatex <filename>

results in an error

! Undefined control sequence.
\prepare@family@series@update ...get@series@value 
                                                  \@empty \def \target@meta@...
l.51     \endentry

?

Crude testing suggests the error occurs either at the end of the preamble or before/at/after \begin{document}.

Complete terminal output from recompilation attempt:

This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
(./prawf.tex
LaTeX2e <2023-11-01> patch level 1
L3 programming layer <2024-01-04>
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/article.cls
Document Class: article 2023/05/17 v1.4n Standard LaTeX document class
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/size10.clo))
(/usr/local/texlive/2023/texmf-dist/tex/latex/memoize/memoize.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/etoolbox/etoolbox.sty)
(/usr/local/texlive/2023/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
(/usr/local/texlive/2023/texmf-dist/tex/generic/infwarerr/infwarerr.sty)
(/usr/local/texlive/2023/texmf-dist/tex/generic/iftex/iftex.sty)
(/usr/local/texlive/2023/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty))
(/usr/local/texlive/2023/texmf-dist/tex/latex/advice/advice.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/collargs/collargs.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty
(/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex
(/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/utilities/pgfkeyslibraryfil
tered.code.tex))))
(/usr/local/texlive/2023/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/l3kernel/expl3.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def)))
)
memoize-extract.pl: Logging to 'prawf.mmz.log'.
memoize-extract.pl: Extracting new externs listed in 'prawf.mmz' from 'prawf.pdf' using Perl module PDF::API2.
memoize-extract.pl: Done (there was nothing to extract).
 (./prawf.mmz.log))
(/usr/local/texlive/2023/texmf-dist/tex/latex/biblatex/biblatex.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/graphics/keyval.sty)
(/usr/local/texlive/2023/texmf-dist/tex/latex/kvoptions/kvoptions.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty))
(/usr/local/texlive/2023/texmf-dist/tex/latex/logreq/logreq.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/logreq/logreq.def))
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/ifthen.sty)
(/usr/local/texlive/2023/texmf-dist/tex/latex/url/url.sty)
(/usr/local/texlive/2023/texmf-dist/tex/latex/biblatex/blx-dm.def)
(/usr/local/texlive/2023/texmf-dist/tex/latex/biblatex/blx-compat.def)
(/usr/local/texlive/2023/texmf-dist/tex/latex/biblatex/biblatex.def)
(/usr/local/texlive/2023/texmf-dist/tex/latex/biblatex/bbx/numeric.bbx
(/usr/local/texlive/2023/texmf-dist/tex/latex/biblatex/bbx/standard.bbx))
(/usr/local/texlive/2023/texmf-dist/tex/latex/biblatex/cbx/numeric.cbx)
(/usr/local/texlive/2023/texmf-dist/tex/latex/biblatex/biblatex.cfg)
(/usr/local/texlive/2023/texmf-dist/tex/latex/biblatex/blx-case-expl3.sty))
(./prawf.aux)
(/usr/local/texlive/2023/texmf-dist/tex/latex/biblatex/lbx/english.lbx)
(./prawf.bbl
! Undefined control sequence.
\prepare@family@series@update ...get@series@value 
                                                  \@empty \def \target@meta@...
l.51     \endentry

? 

Removing memoize enables successful compilation.

sasozivanovic commented 10 months ago

Many thanks for the report! Can you confirm whether the fix works for you as well?

cfr42 commented 10 months ago

Many thanks for the report! Can you confirm whether the fix works for you as well?

The fix works for me, yes! Thanks very much. I'm afraid I wasn't online earlier. Will this be going to CTAN soonish? I guess this breaks quite a lot ....

sasozivanovic commented 10 months ago

The fix works for me, yes!

Fantastic! Many thanks again!

Will this be going to CTAN soonish?

Already there! ;-)

I guess this breaks quite a lot ....

It broke whenever one of the cited items used a font change command (which Memoize erroneously tried to expand to compute the context md5sum).