https://sutasapo.com/2020/10/11/tex-writer%E3%81%A7%E6%A8%AA%E5%90%91%E3%81%8D%E3%81%AE%E7%AE%87%E6%9D%A1%E6%9B%B8%E3%81%8D%E3%82%92%E4%BD%9C%E3%82%8B%E6%96%B9%E6%B3%95%E3%80%90ipad%E3%80%91/
上のページにあるソースコードをコピペしてもコンパイルできません。
\documentclass[dvipdfmx]{jsarticle} %ドキュメントクラスの指定
\usepackage{tasks} %tasksパッケージの読み込み
\settasks{counter-format=(\arabic*)} %「=」の後ろで箇条書きの記号を変更
%\settasks{label-width=18pt} %幅の調整(ローマ数字の時は%を外す)
\begin{document} %\begin{document}と\end{document}は絶対に忘れない
\begin{tasks}(4) %()の中で何カラムかを指定
\task 横
\task 向きに
\task 箇条書き
\task 作ろう
\end{tasks}
\end{document}
エラー内容:
Missing number, treated as zero.
\c@* \BAD.
l.11 \end{tasks}
また、ソースコード内のcounter-formatをlabelに変えてもおなじエラー内容が出ます。
なお、コンパイラーはpLaTeX(ptex2pdf)で、texlive2016を使用しています。(windows10)
tasksのラベル書式設定の仕様が途中で変わったのが原因です。
0.12版[2016/08/13]以前では次のように書く必要があります。
\settasks{counter-format=(tsk[1])}
※tsk[…]
という部分がカウンタ出力に置き換わる。[]
の中が1
なら\arabic
、a
なら\alph
、r
なら\roman
形式になる。
一方で、1.0版[2019/10/14]以降では、enumitemパッケージの仕様に合わせていて、label
で指定します。
\settasks{label=(\arabic*)}
※counter-format
でも通りますが、これは非推奨で、label
の指定に振り替えられます。
\settasks{counter-format=(\arabic*)}
というのが正式な仕様である「中間のバージョン」が存在するのかどうかは把握していません。
counter-format=(tsk[\arabic ])でコンパイルできない理由を知りたいです。
確かに、\arabic
は「LaTeX標準の命令」なんですが、この命令は\arabic{section}
のように引数にカウンタ名を伴って使うのが本来の使い方で、「単体で\arabic
だけで使う」とか「\arabic*
と書く」のような使い方は本来はできません。
つまり、新版のtasksパッケージやenumitemパッケージで「\arabic*
という書き方ができる」理由は、
「各パッケージの作者がそのように仕様を決めて、その仕様通りに動くようにパッケージを実装したから」
に他ならないわけです。
旧版のtasksパッケージでは
「カウンタ値表記に置き換える部分は“tsk[1]
”、“tsk[a]
”、“tsk[r]
”のように書く」
という仕様に決まっているのでそのように書くしかなくて、そこでは「\arabic
の特殊な使い方ができる」ようには実装されていないわけです。