jlreq.clsでエラーが発生する

jlreq.clsでエラーが発生する

- るゆり の投稿
返信数: 11

初めて投稿をさせて頂きます.

LuaLaTeX+jlreqで,コンパイルをしようと思ったのですが以下のエラーメッセージが出たので対処法を教えて頂きたいです.


jlreq.cls
Undefined control sequence.
 ...tyle_mark_format_prop \prop_put_from_keyval:Nn 

実行環境

  • Windows11
  • LuaLaTeX+jlreq
  • VSCode
  • texlive2020

経緯

  1. 今作業しているファイルでエラー(本投稿とは関係ないエラー)が出たので試しにjlreqを最新の状態にするためGitHubに行き,ZIPをダウンロードしてjlreqを手動インストール.
  2. VSCodeのターミナルGit Bashでmake install,mktexlsrを実行.
  3. コンパイルすると
    
    Undefined control sequence.
     ...tyle_mark_format_prop \prop_put_from_keyval:Nn 
    
     と新たなエラー(本投稿のエラー)が発生.
  4. 今までコンパイルできていた別のファイルもコンパイルできない状態に.

エラーメッセージの該当箇所に飛ぶと,「C:\Users\User\texmf\tex\latex\jlreq\jlreq.cls」の6355行目に問題があるとのことでした.

あまりTeXに詳しくないためどなたか解決法を提案して頂きたいです.

jlreq.clsファイルを添付しておりますので,ご確認ください.

なお,


\documentclass{jlreq}

\begin{document}
これはテスト用文章です.
\end{document}

でさえも同じコンパイルエラーが起きるので,作業しているtexファイルには関係はないと判断し載せていません.よろしくお願いします.

追記:投稿したところ,HTMLフォーマットなのに気付かず,体裁が崩れたので整えました.

るゆり への返信

Re: jlreq.clsでエラーが発生する

- m c の投稿
TeX Live 2023ではお示しいただいた簡単なソースで何のエラーもなくタイプセットできます(WindowsではなくLinuxですが).
GitHubから導入されたjlreqがTeX Live 2020で動作しないということではないでしょうか.
TeX Live 2023にするのが解決策のように思いますが.
m c への返信

Re: jlreq.clsでエラーが発生する

- 和田 勇 の投稿
  • サンプルソース

    \documentclass{jlreq}
    
    \begin{document}
    これはテスト用文章です.
    \end{document}
    
  • jlreq.cls(質問時に添付されていたもの)

  • texlive2023 では問題発生しません

  • texlive2020 で検証

    • macOS で実施しているので /usr/local/texlive/2020 は C:\texlive\2020 と読み替えてください
    • texlive の update 状況と異なると思いますので違うかもしれません

      

        lualatex test.tex
        This is LuaHBTeX, Version 1.12.0 (TeX Live 2020)
         restricted system commands enabled.
        (./test.tex
        LaTeX2e <2020-10-01> patch level 4
         L3 programming layer <2021-02-18> (./jlreq.cls ← ダウンロードした jlreq.cls を読み込んでいる
        Document Class: jlreq 2023/06/19 jlreq
        ... 省略 ... ↓↓ ダウンロードした jlreq.cls から関連して読み込まれる jlreq-helpers.sty
        (/usr/local/texlive/2020/texmf-dist/tex/latex/jlreq/jlreq-helpers.sty
        ... 省略
        
        LaTeX Warning: You have requested, on input line 11, version
                       `2023/06/19' of package jlreq-helpers,
                       but only version
                       `2018/08/15 jlreq-helpers'
                       is available.
        
        ! Undefined control sequence.
         \LaTeX3 error:
                        Erroneous variable \jlreq@helper@papersizelist@a0paper used!
        l.181 \__jlreq_addpapersize:nnn{a0paper}{}{a0paper}
        
        ? x
        
-   エラーの原因
    -   利用された jlreq.cls と jlreq-helpers.sty の関連性不一致

            ./jlreq.cls
            11:\RequirePackage{jlreq-helpers}[2023/06/19]

            /usr/local/texlive/2020/texmf-dist/tex/latex/jlreq/jlreq-helpers.sty
            4:\ProvidesPackage{jlreq-helpers}[2018/08/15 jlreq-helpers]


    -   参考 /usr/local/texlive/2020/texmf-dist/tex/latex/jlreq/jlreq.cls を使うようにすると
        上記の組み合わせが合致するので問題は発生しません
  • 対策

    • make install する前の C:\texlive\2020\texmf-dist\tex\latex\jlreq\jlreq.cls があれば 元に戻してください

    • もどせない時 & 上記の jlreq.cls と jlreq-helpers.sty の組み合わせエラーであれば & 暫定処置

      • ダウンロードした jlreq.cls の 11 行目の日付を jlreq-helpers.sty の四行目と合わせる

        これで暫定的にはサンプルソースでは問題は発生しなくなります

      • 戻すことが困難であれば mc さんの提案の 2023 にする方法しか思いつきません。

  • お願い

    • 動作していたものがうまく動かなかったら、拡張子 .log のログファイル 添付してください
    • このログファイルには、読み込んだクラスファイルやスタイルファイルのファイルパスやバージョン情報が記録されています
    • 検証作業・改善策の提案を行う上で上記の情報が必要になりますので、ご検討願います
和田 勇 への返信

Re: jlreq.clsでエラーが発生する

- るゆり の投稿

m c 様,和田 勇 様,返信ありがとうございます.

まず,はじめにエラー発生時のログファイル(test.log)を添付します.

次に対処法ですが,2つ教えて頂きたいことがございます.

  • 和田 様の

    参考/usr/local/texlive/2020/texmf-dist/tex/latex/jlreq/jlreq.clsを使うようにすると

    上記の組み合わせが合致するので問題は発生しません

    を試してみたいのですが,どうしたらc:/Users/User/texmf/tex/latex/jlreq/jlreq.clsから変更できるでしょうか?

  • 恥ずかしながら奥村先生の美文書(8版)にあるDVD-ROMからインストールした為,texliveの他のインストール方法を試したことがなく不安ですので2023のインストール方法をお手数をおかけしますが教えてくださるとうれしいです.

なるべくファイルをいじらないようにしたい為,エラーが発生する限り以下の順で実行してみたいと思います:

  1. /usr/local/texlive/2020/texmf-dist/tex/latex/jlreq/jlreq.clsを使うよう設定できれば設定したい.
  2. m c 様の2023に変更
  3. 和田様の暫定処置(前のjlreq.clsは残っていませんでした)

よろしくお願いします.

るゆり への返信

Re: jlreq.clsでエラーが発生する

- 阿部 紀行 の投稿
すでに皆さんから指摘のあった通り,古い環境でも動くようにとは殆ど考えていませんので,基本的に最新の環境で使ってください.本来はきちんと要求するLaTeXのバージョンを入れておけばよいのですがこれは自分のサボりです.
make installで入れたのならばC:\Users\<ユーザ名>\texmf内に入っているかと思います.とりあえずC:\Users\<ユーザ名>\texmf以下にtex\latex\jlreqをはじめいくつかjlreqという名前のフォルダがあるかと思いますので,それらを消せば戻るかと思います.
阿部 紀行 への返信

Re: jlreq.clsでエラーが発生する

- 和田 勇 の投稿
阿部さんの回答と同様のことを書こうとしていました。
これでご質問の「3」の対処は不要かと思います。

念の為ターミナルで「 kpsewhich -a jlreq.cls 」を
実行すると現状設置されている jlreq.cls のファイルパスが表示されます。

この結果の一番最初のものがタイプセット時に利用されますので
C:/texlive/2020/texmf-dist 以外のものが先頭であれば、それは削除してください。
これで、ご質問の「1」に対応できます。

この状態で当初の問題が発生するソースを公開できる程度に記述内容を整えたソースを
用意して処理してください。
そして解決できなければ、そのソースとログファイルを添付してください。

ヒント:ログファイルから 「C:\Users\\texmf」のパスがあるか否かチェックしてください。
    それがあれば、そのファイルを削除か別名にリネームするなどして利用できないようにして
    リトライしてください。

また、ご質問「2」の2023 にするには、TeXwiki TeXLive/WIndows (*1) を参考にしてください。

(*1) https://texwiki.texjp.org/?TeX%20Live%2FWindows

和田 勇 への返信

Re: jlreq.clsでエラーが発生する

- るゆり の投稿

阿部紀行 様,和田勇 様

ありがとうございます(講義で返信が遅れました).c:/Users/User/texmf/tex/latex/jlreqのフォルダを削除したところ,問題のエラーは無くなりました!


\documentclass[
	report, paper=a5, head_space=18mm, foot_space=4mm,
	% fontsize=8pt, jafontsize=8pt,
	gutter=10mm, line_length=128mm,
	fleqn, twoside
]{jlreq}

% 見出しをカスタマイズ
% 章
\ModifyHeading{chapter}{
	before_space=5pt, after_space=15pt,
	font={\large\sffamily\bfseries},
	format={%
		{\color[gray]{0.5}\rule[-0.5\zw]{2\zw}{1.8\zw}}%
		\if@mainmatter
			\hspace{-2\zw}\raisebox{0.1\zw}{%
				\makebox[2\zw]{\color[gray]{1}\thechapter}}%
		\fi
		\hspace{0.5\zw}#1#2
	}
}

\ModifyHeading{section}{% 
	line=1, before_line=1.2, after_line=1,
	font={\sffamily\bfseries},
	format={%
		\hrule\par\vspace*{0.25ex}\parbox[b]{\linewidth - 1\zw}{\hspace*{-1\zw}\colorbox{black}{\hspace*{1\zw}\textcolor{white}{#1}}\quad#2}\vspace*{0.25ex}\par\hrule}
}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\begin{document}
\chapter{1つ目の章です}
\section{1つ目の節です}

これはテスト用文章です.

\end{document}

なお,これだと1番上の投稿にあった本投稿とは関係ないエラー:


Package xkeyval: `line' undefined in families `BlockHeading:section'.

が発生しますがこれは解決済みです(lineではなくlinesであるというアホなミスでした…).

texliveの最新版については,今のプロジェクトが完成したら奥村先生の意見を参考に2023の最終版に移行し,時期を見て2024にしようと思います.TeXWikiのサイトはアップデートの節の通りに行えばよいでしょうか.

るゆり への返信

Re: jlreq.clsでエラーが発生する

- m c の投稿
いえ,アップデートの節は既にインストール済みの2023に対するものですので,インストールの方を参照してください.
るゆり への返信

Re: jlreq.clsでエラーが発生する

- 阿部 紀行 の投稿
> c:/Users/User/texmf/tex/latex/jlreqのフォルダを削除したところ,

他にも関連するファイルがあるので念のためそちらも消しておいた方がよいです.というかMakefileにはuninstallも書いておいたのでmake uninstallすればよいだけな気がしてきました.
るゆり への返信

Re: jlreq.clsでエラーが発生する

- m c の投稿
2023のインストール方法ですが
https://texwiki.texjp.org/?Microsoft%20Windows
https://texwiki.texjp.org/?TeX%20Live%2FWindows
を参考にしてみてください(後者のページの下の方にいくつかの事例へのリンクがあります).

なお3月14日に2024がリリースされる予定ですので(日本では3月15日以降でしょうか),阿部先生・和田さんご教示の方法で回避
できたのでしたら,2024リリースまで待つのも選択肢かと思います.
m c への返信

Re: jlreq.clsでエラーが発生する

- 奥村 晴彦 の投稿

なお3月14日に2024がリリースされる予定ですので(日本では3月15日以降でしょうか),

そうでしたね。あるいは別の考え方として、2024にあわてて飛び付かず、2023最終版を安定版としてしばらく使う、というのもあるかもしれませんね。