bxjsclsでの目次作成について

bxjsclsでの目次作成について

- liki の投稿
返信数: 6

test.tex

\documentclass[lualatex,ja=standard,fleqn]{bxjsarticle}
\begin{document}
\tableofcontents
\section{abc}
hogehoge
\section{xyz}
hogehoge
\end{document}

上記ファイルをコンパイル(lualatex test.tex)すると下記のエラーが出ます。

! Illegal unit of measure (pt inserted).

\tableofcontents を削除すると問題ありません。

どうしてなんでしょうか。

liki への返信

Re: bxjsclsでの目次作成について

- 前田 一貴 の投稿
zw -> \jsZw の置換漏れですかね…….

\documentclass[lualatex,ja=standard,fleqn]{bxjsarticle}
\usepackage{etoolbox}
\patchcmd{\tableofcontents}{zw}{\jsZw}{}{}
\begin{document}
\tableofcontents
\section{abc}
hogehoge
\section{xyz}
hogehoge
\end{document}
前田 一貴 への返信

Re: bxjsclsでの目次作成について

- liki の投稿

bxjsarticle.clsの1346行目から

\newcommand{\tableofcontents}{%
\settowidth\js@tocl@width{\headfont\presectionname\postsectionname}%
\settowidth\@tempdima{\headfont\appendixname}%
\ifdim\js@tocl@width<\@tempdima\relax\setlength\js@tocl@width{\@tempdima}\fi
\ifdim\js@tocl@width<2zw \divide\js@tocl@width by 2 \advance\js@tocl@width 1zw\fi
\section*{\contentsname}%
\@mkboth{\contentsname}{\contentsname}%
\@starttoc{toc}%
}

@width<2zw 及び @width 1zw の zw を \zw としたら

\usepackage{etoolbox}
\patchcmd{\tableofcontents}{zw}{\jsZw}{}{}

を追加しなくてもエラーになりませんでした。

これでいいのかどうか

とりあえず、オリジナルのコピーを取って書き換えました。

liki への返信

Re: bxjsclsでの目次作成について

- aminophen の投稿
\usepackage{etoolbox}
\patchcmd{\tableofcontents}{zw}{\jsZw}{}{}

と同じ意味になる書き換えは

@width<2zw 及び @width 1zw の zw を \jsZw と書き換える

ですね。