tasks環境が作動しない

tasks環境が作動しない

- 向井 公志 の投稿
返信数: 4
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)
向井 公志 への返信

Re: tasks環境が作動しない

- Z. R. の投稿

tasksのラベル書式設定の仕様が途中で変わったのが原因です。

0.12版[2016/08/13]以前では次のように書く必要があります。

\settasks{counter-format=(tsk[1])}

tsk[…]という部分がカウンタ出力に置き換わる。[]の中が1なら\arabicaなら\alphrなら\roman形式になる。

一方で、1.0版[2019/10/14]以降では、enumitemパッケージの仕様に合わせていて、labelで指定します。

\settasks{label=(\arabic*)}

counter-formatでも通りますが、これは非推奨で、labelの指定に振り替えられます。

\settasks{counter-format=(\arabic*)}というのが正式な仕様である「中間のバージョン」が存在するのかどうかは把握していません。

Z. R. への返信

Re: tasks環境が作動しない

- 向井 公志 の投稿
返信ありがとうございます。
counter-format=(tsk[1])ではきちんとコンパイルできるようになりました。ありがとうございます。
ただ、counter-format=(tsk[\arabic ])、label=(tsk[1])、label=(tsk[\arabic ])ではコンパイルできませんでした。
labelの方でコンパイルできないのはなんとなくわかりますが、counter-format=(tsk[\arabic ])でコンパイルできない理由を知りたいです。
向井 公志 への返信

Re: tasks環境が作動しない

- Z. R. の投稿
counter-format=(tsk[\arabic ])でコンパイルできない理由を知りたいです。

確かに、\arabicは「LaTeX標準の命令」なんですが、この命令は\arabic{section}のように引数にカウンタ名を伴って使うのが本来の使い方で、「単体で\arabicだけで使う」とか「\arabic*と書く」のような使い方は本来はできません。

つまり、新版のtasksパッケージやenumitemパッケージで「\arabic*という書き方ができる」理由は、

「各パッケージの作者がそのように仕様を決めて、その仕様通りに動くようにパッケージを実装したから」

に他ならないわけです。

旧版のtasksパッケージでは

「カウンタ値表記に置き換える部分は“tsk[1]”、“tsk[a]”、“tsk[r]”のように書く」

という仕様に決まっているのでそのように書くしかなくて、そこでは「\arabicの特殊な使い方ができる」ようには実装されていないわけです。