
私は、HEJI2 というフォント (インラインで使用する音楽記号をいくつか提供) で使用するための非常に基本的なパッケージを作成しようとしています。コードは次のようになります。
\ProvidesPackage{heji}[2019/12/9 v1.0]
\RequirePackage{fontspec}[2018/07/30 vv2.6h]
\newfontfamily{\HEfont}{HEJI2.ttf}
\makeatletter
\newcommand*{\fsize}{\dimexpr\f@size pt\relax}
\makeatother
\newcommand{\heji}[2]{\mbox{#1\hspace{0.3mm}\raisebox{0.25\fsize}{\large\HEfont #2}}}
\DeclareOption{accfirst}{
\renewcommand{\heji}[2]{\mbox{\raisebox{0.25\fsize}{\large\HEfont #2}#1}}
}
\ProcessOptions\relax
\endinput
パッケージの使用は機能しているように見えますが、コンパイルすると次の (致命的ではない) エラーが発生します。
! Missing = insterted for \ifnum.
<to be read again>
v
1.4
?
! Missing number, treated as zero.
<to be read again>
v
1.4
?
これが正確に何を意味するのかはわかりません。メッセージを通じて戻ることができ、最終的にはパッケージ仕様に従って適切にフォーマットされた .pdf を取得できるようです。どなたか助けていただければ幸いです。(Lualatex でコンパイル)
答え1
例えば、著者向けLaTeX2ε(texdoc usrguide
)、 セクション3.2 プリアンブルコマンド:
この段落は実際には の2番目のオプション引数について説明しています\documentclass
が、日付パーサーは同じです。LaTeX2εソース(texdoc source2e
)、 セクション68.2 パッケージ名とバージョンについてほぼ同じ段落があります\ProvidesPackage
。
まず、その日付形式は(まだサポートされていますが)非推奨であり、代わりに ISO 形式をYYYY-MM-DD
使用する必要があります。
そして、その要件は完全に正しいわけではありません。具体的には、日フィールドは である必要がありますDD
が、他の 2 つは空でもかまいません (常識的に考えてそうしないほうがよいでしょう ;-)。したがって、たとえば は\ProvidesPackage{heji}[1/1/09 v1.0]
機能します。残念ながら、先頭のゼロを間違った場所から削除してしまいました ;-)