例の「和文規準でフォントサイズを設定する」の件について。
昔にこんなパッケージを作った記憶があるのだが、物を探しても見つからないので、また作ってみた。
- bxjafsize パッケージ(GitHub/zr-tex8r;BXjatool バンドル)
使い方はこんな感じ。
\jafontsize{<サイズ>}{<行送り>}
: 「和文規準」でフォントサイズを指定する。実際の動作としては和文スケール値の逆数を乗じた値が(\fontsize
で)指定される。引数の書式は\fontsize
と同じ;寸法値または単位無し十進小数で指定し、後者の場合は pt 単位と見做される。\jafssetlength\長さ命令{<寸法値>}
: 指定された値に和文スケール値の逆数を乗じた値を長さ命令に代入する。フォントサイズを要求する LaTeX 命令での使用を想定している。\jafsscale
: 和文スケール値(十進小数)に展開される。\jafsinvscale
: 和文スケール値の逆数(十進小数)に展開される。- 和文スケール値は実際に和文文字の幅を測って*1求めているので、どの文書クラスでも使用できる。エンジンは pTeX 系/XeTeX/LuaTeX に対応する。
- ただし、パッケージ読込時に
\Cjascale
というユーザ定義命令が定義されている場合は、その命令の展開結果(十進小数の必要がある)がスケール値として使われる。
使用例。
% pLaTeX 文書 \documentclass[a4paper]{jsarticle} \usepackage{bxjafsize} \usepackage{type1cm} \newlength{\LenA} \begin{document} \jafontsize{12Q}{18H}\selectfont % 「和文を」12Qにする 五十歩を以て百歩を笑わば、すなわち何如。 \par\bigskip % 実際に和文文字の幅が合っているか調べる {\jafontsize{50}{0}\selectfont 鬱 \settowidth\LenA{鬱}{\normalsize\the\LenA}}\par % \jafsselength の使用例 \jafssetlength\LenA{100pt} {\fontsize{\LenA}{0}\selectfont 鬱 \settowidth\LenA{鬱}{\normalsize\the\LenA}}\par \end{document}
*1:全角空白文字をテスト対象にしているので、これが全角幅であることを前提とする。