abenori / jlreq

Other
125 stars 18 forks source link

Using Debian, cannot compile with releases after 2020-12-29 #83

Closed otyu closed 2 years ago

otyu commented 3 years ago

I have been having trouble compiling even minimal files with current releases.

In summary

Any help from anyone would be highly appreciated!

Detailed description of problems.

Using the current version (2021-05-28) and a very minimal example mwe.tex:

\documentclass{jlreq}
\begin{document}
Hello.
\end{document}

Trying uplatex mwe.tex gives the following error:

This is e-upTeX, Version 3.14159265-p3.8.1-u1.23-180901-2.6 (utf8.uptex) (TeX Live 2019/dev/Debian) (preloaded format=uplatex)
 restricted \write18 enabled.
entering extended mode
(./mwe.tex
pLaTeX2e <2018-12-01u02> (based on LaTeX2e <2018-12-01>)
(./jlreq.cls
Document Class: jlreq 2021/05/28 jlreq
(/usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty
(/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex
(/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex
(/usr/share/texlive/texmf-dist/tex/generic/xkeyval/keyval.tex))))
(/usr/share/texlive/texmf-dist/tex/latex/everyhook/everyhook.sty
(/usr/share/texlive/texmf-dist/tex/latex/svn-prov/svn-prov.sty)
(/usr/share/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty))
(/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty) (./jlreq-helpers.sty)

! Undefined control sequence.
l.13 \ExplSyntaxOn

Running lualatex mwe.tex gives about the same error as above.

On researching \ExplSyntaxOn, it seems that this is related to the package expl3.

With \RequirePackage{expl3} added to jlreq.cls, running uplatex gives a new error:

! Undefined control sequence.
l.1072 \AddToHook
                 {rmfamily}{\prepare@family@series@update@kanji{mc}\mcdefault}

With \RequirePackage{expl3} added to jlreq.cls, running lualatex gives also another error:

! Package expl3 Error: Required primitives not found.

See the expl3 package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.234 \next

I'm clueless on how to continue researching the problem...

kmuto commented 3 years ago

me too, with jlreq/abenori_dev 2ee4d8423bf41b05322a69ac60533a6e79d8e5e5 with Debian 10.

I found another compile error raised on recent TeXLive versions also.

With TeXLive 2021 and TeXLive 2020,

$ uplatex a.tex 
This is e-upTeX, Version 3.141592653-p3.9.0-u1.27-210218-2.6 (utf8.uptex) (TeX Live 2021) (preloaded format=uplatex)
 restricted \write18 enabled.
entering extended mode
(./a.tex
pLaTeX2e <2020-10-01u04>+2 (based on LaTeX2e <2020-10-01> patch level 4)
L3 programming layer <2021-05-11> (./jlreq.cls
Document Class: jlreq 2021/05/28 jlreq
(/usr/local/texlive/2021/texmf-dist/tex/latex/xkeyval/xkeyval.sty
(/usr/local/texlive/2021/texmf-dist/tex/generic/xkeyval/xkeyval.tex
(/usr/local/texlive/2021/texmf-dist/tex/generic/xkeyval/xkvutils.tex
(/usr/local/texlive/2021/texmf-dist/tex/generic/xkeyval/keyval.tex))))
(/usr/local/texlive/2021/texmf-dist/tex/latex/everyhook/everyhook.sty
(/usr/local/texlive/2021/texmf-dist/tex/latex/svn-prov/svn-prov.sty)
(/usr/local/texlive/2021/texmf-dist/tex/latex/etoolbox/etoolbox.sty))
(/usr/local/texlive/2021/texmf-dist/tex/latex/base/ifthen.sty)
(./jlreq-helpers.sty) jlreq guessed engine: uplatex
(/usr/local/texlive/2021/texmf-dist/tex/latex/lm/lmodern.sty)
! Undefined control sequence.
\DeclareBlockHeading #1#2#3->\ProvideHook 
                                          {jlreq/heading/before/#1} \def \jl...
l.6006   }

$ lualatex a.tex
uplatex a.tex 
This is e-upTeX, Version 3.141592653-p3.9.0-u1.27-210218-2.6 (utf8.uptex) (TeX Live 2021) (preloaded format=uplatex)
 restricted \write18 enabled.
entering extended mode
(./a.tex
pLaTeX2e <2020-10-01u04>+2 (based on LaTeX2e <2020-10-01> patch level 4)
L3 programming layer <2021-05-11> (./jlreq.cls
Document Class: jlreq 2021/05/28 jlreq
(/usr/local/texlive/2021/texmf-dist/tex/latex/xkeyval/xkeyval.sty
(/usr/local/texlive/2021/texmf-dist/tex/generic/xkeyval/xkeyval.tex
(/usr/local/texlive/2021/texmf-dist/tex/generic/xkeyval/xkvutils.tex
(/usr/local/texlive/2021/texmf-dist/tex/generic/xkeyval/keyval.tex))))
(/usr/local/texlive/2021/texmf-dist/tex/latex/everyhook/everyhook.sty
(/usr/local/texlive/2021/texmf-dist/tex/latex/svn-prov/svn-prov.sty)
(/usr/local/texlive/2021/texmf-dist/tex/latex/etoolbox/etoolbox.sty))
(/usr/local/texlive/2021/texmf-dist/tex/latex/base/ifthen.sty)
(./jlreq-helpers.sty) jlreq guessed engine: uplatex
(/usr/local/texlive/2021/texmf-dist/tex/latex/lm/lmodern.sty)
! Undefined control sequence.
\DeclareBlockHeading #1#2#3->\ProvideHook 
                                          {jlreq/heading/before/#1} \def \jl...
l.6006   }
abenori commented 3 years ago

In both cases, the reason is that simply your LaTeX is old.

@otyu The latest version 2021-05-28 works with LaTeX 2020-10-01. @kmuto The current ones in abenori_dev works with LaTeX 2021-06-01.

The solution is to use a new LaTeX or old jlreq.

abenori commented 2 years ago

I deleted some codes on LaTeX hooks from abenori_dev recently, so perhaps it works with older (before 2021-06-01) LaTeX. I still need expl3, so after 2020-10-01 is needed.

minamotorin commented 2 years ago

I think using optional argument of \NeedsTeXFormat like \NeedsTeXFormat{LaTeX2e}[2020-10-01] will help the user understand what is wrong.

otyu commented 2 years ago

Thank you very much for the clarification. After battling with custom packages in debian, trying out VMs and what not, it worked out just with vanilla debian (texlive version 2020.20210202-3) and the latest jlreq! merci!

As @minamotorin mentions, maybe explicitly adding a release data in \NeedsTeXFormat{LaTeX2e} of jlreq.cls could help lost users. But I am not aware of how much trouble that would be in terms of maintenance of the package, and lost users (like myself) could eventually get around with some trial and error.

I'm closing the issue. Thank you again.