Ticket #39300

siunitx の tabular 列指定子 S, s が空の場合エラーが発生する

Date d'ouverture: 2019-06-05 19:53 Dernière mise à jour: 2019-07-08 15:28

Rapporteur:
Propriétaire:
(Aucun)
Type:
État:
Atteints
Composant:
(Aucun)
Jalon:
(Aucun)
Priorité:
5 - moyen
Sévérité:
5 - moyen
Résolution:
Fixed
Fichier:
Aucun

Détails

MWE:

  1. \documentclass{article}
  2. \usepackage{siunitx}
  3. \usepackage{luatexja}
  4. \begin{document}
  5. \begin{tabular}{Ss}
  6. \\ % hang: `ABD: EverySelectfont initializing macros`
  7. x & \\ % error: `! Use of \@@array doesn't match its definition.`
  8. \end{tabular}
  9. \end{document}

luatexja を読み込むと,

  • S が空の場合 (8行目)
    (/opt/texlive/2019/texmf-dist/tex/latex/siunitx/siunitx-abbreviations.cfg)
    ABD: EverySelectfont initializing macros
    
    を出力して固まります.Ctrl-C を押すと,
    ! Interruption.
    \exp_not:o ...__kernel_exp_not:w \exp_after:wN {#1
                                                      }
    l.8   \\
                % hang: `ABD: EverySelectfont initializing macros`
    ? 
    
    などが表示されます (タイミングによって変わります)
  • s が空の場合 (9行目) 下記のエラーが出ます
    (/opt/texlive/2019/texmf-dist/tex/latex/siunitx/siunitx-abbreviations.cfg)
    ABD: EverySelectfont initializing macros
    ! Use of \@@array doesn't match its definition.
    \new@ifnextchar ...served@d = #1\def \reserved@a {
                                                      #2}\def \reserved@b {#3}\f...
    
    l.10 \end
           {tabular}
    ? 
    

環境: TeX Live 2019 (2018 でも再現しました)

  • LuaLaTeX: Version 1.10.0 (TeX Live 2019)
  • siunitx: 2018/05/17 v2.7s A
  • luatexja: 2019/04/08

Ticket History (3/6 Histories)

2019-06-05 19:53 Updated by: e-kwsm
  • New Ticket "siunitx の tabular 列指定子 S, s が空の場合エラーが発生する" created
2019-06-05 20:16 Updated by: aminophen
Commentaire

こちらでも確認しました(plautopatch のモジュールである plsiunitx.sty でも確認)。lltjp-siunitx.sty のパッチの問題でのようですね。当てずっぽうで自分が何をやっているのかよくわかりませんが,

      \token_if_eq_meaning:NNF #1 \relax {

の所を

      \token_if_eq_meaning:NNF #1 \tex_relax:D {

にすればどちらの問題も起きなくなりました。

そもそもこのコードを作った理由は #38720 だと思いますが,そもそも上記の conditional が無くても正常に通っているようにも見えます。

2019-06-06 00:01 Updated by: h7k
Commentaire

確認しました.もう遅いので明日以降に考えます.

そもそもこのコードを作った理由は #38720 だと思いますが,そもそも上記の conditional が無くても正常に通っているようにも見えます。

そうすると,今度は #38720 が通らなくなります.私も完全に当時のことを覚えているわけではありませんが, dtx にある \__siunix_table_collect_not_braced:N の説明には

A few macros are simply passed through to be executed; this is mainly
so that the table actually works. ...
とあったため,LuaTeX-ja が表の各セルの最初に挿入する命令たち \relax, \ltjfakeboxbdd, \pltx@next@inhibitglue\__siunix_table_collect_not_braced:N の判定部分に加えた記憶があります.

2019-06-06 11:31 Updated by: h7k
  • Résolution Update from Aucun to Fixed
Commentaire

commit c846a8f で直しました(commit 82b302e でテストソース test91-siunitx.tex を追加しました).

2019-06-06 18:45 Updated by: e-kwsm
Commentaire

パッチを当てたら通ることを確認しました.ありがとうございます.

2019-07-08 15:28 Updated by: h7k
  • État Update from Ouvert to Atteints
Commentaire

LuaTeX-ja 20190708.0 を出したので,完了とします.

Attachment File List

No attachments

Modifier

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Connexion