マクロツイーター

はてダから移行した記事の表示が崩れてますが、そのうちに直せればいいのに(えっ)

例の級数でのサイズ指定のアレ

例の「和文規準でフォントサイズを設定する」の件について。

昔にこんなパッケージを作った記憶があるのだが、物を探しても見つからないので、また作ってみた。

使い方はこんな感じ。

  • \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:全角空白文字をテスト対象にしているので、これが全角幅であることを前提とする。