0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

numbersetsパッケージで\mathbb{R}と書くのをやめる(利用者編)

Last updated at Posted at 2024-10-15

はじめに

$\mathrm{\LaTeX}$のパッケージを開発してCTANにアップロードしたので,宣伝がてら日本語の説明記事を執筆します.

今回の記事はパッケージの利用者向けのガイドです.開発者,およびパッケージ開発に興味のある人向けの話題は含まれていません.私がexpl3を完全に理解したら(開発者編)が生えるかもしれません.

2024/10/19追記

TeX Liveに収録されたようです.やったね!

(追記ここまで)

本記事執筆時点の最新バージョンはv0.2.0です.最初にv0.1.0をリリースした後に破壊的変更が入っているのでうっかりv0.1.0をインストールしてしまった人は注意してください(具体的には\DeclareNumberSetCommandコマンドの構文が変更されています).

既定の設定は,unicode-mathパッケージの使用を前提としています.
しかし,unicode-mathパッケージをnumbersetsパッケージ側では読み込まないので,パッケージ利用者がそれぞれの文書で明示的にunicode-mathパッケージを読み込む必要があります.
一見不便な仕様に見えますが,この特性はunicode-mathパッケージを使用しない/できない環境下で重要となります.詳しくはunicode-mathパッケージを使用しない場合で説明します.

numbersetsパッケージとは

numbersetsパッケージは,数学における数の集合を記述するためのパッケージです.
数学では,自然数全体の集合や複素数全体の集合といったよく使う集合は特別な書体を割り当てて識別しやすいようにしておくことが多いです.
例えば黒板太字で自然数全体の集合を「$\mathbb{N}$」と書いたり,太字で「$\mathbf{N}$」と書いたりします.

$\mathrm{\LaTeX}$でこれらの集合を記述する場合,\mathbb{N}\mathbf{N}のように書くといわれることが多いのですが,これはあまり好ましくありません.\mathbb\mathbfからは「黒板太字である」や「太字である」といった「見た目」に関する情報しか伝わらず,本来意図した「自然数全体の集合」という情報が伝わらないからです.ここでは,新しいコマンド\NaturalNumbers

\NewDocumentCommand\NaturalNumbers{}{\mathbb{N}}

のように定義して,本文中では\NaturalNumbersのように書くべきでしょう.このようにしておけば,本文中で「自然数全体の集合」という意図がはっきりします.コマンドを定義しておくことの副次的効果として,もし「\mathbbではなく\mathbfにしたくなった」といった場合でも,改修個所は定義部分の一か所のみで済みます.すなわち,メンテナンス性の向上という効果があります.

さて,numbersetsパッケージは,上記のように数の集合を定義して使用する場合の簡易なインターフェースといくつかのプリセットを提供します.具体的には,以下のような機能を提供します:

  • 記号に特定の書体を適用し,数の集合を記述するコマンド
  • 数の集合を表す新しいコマンドを定義するためのインターフェース
  • 新しい書体規則を定義するためのインターフェース
  • 上記インターフェースを用いて定義されたいくつかのプリセット

パッケージをすぐに使いたい場合,パッケージオプションプリセットのみを把握していれば十分です

パッケージの読み込み

パッケージの読み込みは,普通のパッケージとまったく同様に

\usepackage{numbersets}

とします.パッケージオプションstyleが提供されており,コマンド使用時に適用する書体を変更することができます.stylestyle=bbのようにkey=value形式で記述します.
既定で用意されている値は以下の通りです:

意味 等価なコマンド
bb 黒板太字 \symbb
bfup 太字の立体 \symbfup
bfit 太字の斜体 \symbfit

パッケージオプションを指定しない場合,既定値としてbbが選択されます.
パッケージ読み込み時以外では,\SetupNumberSetsStyleOptionsコマンドを使用して設定することができます:

% styleの既定値をbfitに変更
\SetupNumberSetsStyleOptions{style=bfit}

新しい書体規則の定義で述べるように,自分でstyleを定義して使用することができるほか,既存の設定を上書きすることもできます.この特性はunicode-mathパッケージなしでnumbersetsパッケージを使用する場合に重要となります.

基礎となるコマンド

本パッケージにおいて基礎となるコマンドは\NumberSetコマンドです.このコマンドの構文は以下に示すとおりです:

\NumberSetStyle[style=<option>]{<symbol>}

\NumberSetコマンドは1つのオプション引数と1つの必須引数をもち,その必須引数で与えた記号に対して決められた書体を適用したうえで出力します.
どのような書体が適用されるかはパッケージオプションによって決まるほか,オプション引数でstyle=bfupのように指定することでローカルに指定することもできます.指定できる値はパッケージオプションと同じです.
具体的には以下のように使用します:

% オプション引数を指定しない場合
\NumberSet{A}

% オプション引数を指定する場合
\NumberSet[style=bfup]{A}

このコマンドは「数の集合を表す」という意味では説明的でよい名前のコマンドですが,汎用的であるためその集合がどういう意味を表すことを期待するのかよくわかりません.
プリセットで足りない場合は新しいコマンドを定義するべきです.

数の集合を表す新しいコマンドの定義

プリセットに使用したいコマンドがない場合,\NewDocumentCommandコマンドを使って単純なエイリアスを作成してもよいのですが,\DeclareNumberSetCommandコマンドによって定義することもできます.
使用方法は,定義したいコマンド(制御綴)と使用する記号を以下のように指定します:

\DeclareNumberSetCommand{<control sequence>}{<symbol>}

例えば,四元数全体の集合$\mathbb{H}$を記述するコマンドを定義したい場合,

\DeclareNumberSetCommand{\Quaternions}{H}

と記述します.すると,\Quaternions\NumberSet{H}を表すようコマンドが定義されます.
なお,\DeclareNumberSetCommandコマンドで定義したコマンドはオプション引数で書体指定もできて

% 既定の書体を使用する
\Quaternions

% 書体をローカルに指定する
\Quaternions[style=bb]

とできます.

新しい書体規則の定義

既存の書体オプションでは不足している場合,\DeclareNumberSetStyleコマンドで新しい書体規則が定義できます.その構文は以下のようになります:

\DeclareNumberSetStyle{<style name>}{<command>}

最初の引数<style name>には定義したい書体規則の名前を,次の引数<command>にはその書体規則を適用した場合に実行されるコマンドを記述します.

例えば,「ボールドのサンセリフを使用したい」という場合は

\DeclareNumberSetStyle{boldsans}{\symbfsfup}

とします.
定義した後は,style=boldsansのように既定のbb, bfup, bfitとまったく形で使用可能です.

\DeclareNumberSetStyleコマンドの引数commandには単一の制御綴しか使用できません.
すなわち,\DeclareNumberSetStyle{bbline}{\overline\symbb}のような指定はサポートされていません.
このような使い方をしたい場合は,まず単一の制御綴としてのエイリアスを作成し,そのエイリアスを\DeclareNumberSetStyleコマンドで使用します.

\NewDocumentCommand\bbline{m}{\overline{\symbb{#1}}}
\DeclareNumberSetStyle{bbline}{\bbline}

\DeclareNumberSetStyleコマンドはbbbfupのような既定で用意された書体規則も上書き可能です.
unicode-mathパッケージを使用しない場合は,この特性が役に立ちます.

unicode-mathパッケージを使用しない場合

unocode-mathパッケージを使用しない場合,既定のbbbfup等の書体指定はそのままでは正常に動作しません.
そのため,既定値を\DeclareNumberSetStyleコマンドで上書きする必要があります.
amssymbパッケージとbmパッケージを使用する場合の例を示します:

\usepackage{amssymb}
\usepackage{bm}
\usepackage{numbersets}
\DeclareNumberSetStyle{bb}{\mathbb}
\DeclareNumberSetStyle{bfit}{\bm}
...
% 本文中
% \mathbb{N}と等価
\NumberSet{N}

% \bm{N}と等価
\NumberSet[style=bfit]{N}

上の例のように,実際に使用する書体指定規則のみ書き換えれば十分です.
上で使用しないbfupについては書き換えていませんが,問題は生じません.

数の集合を表すいくつかのプリセット

数の集合を表す新しいコマンドの定義で述べた\DeclareNumberSetCommandを使用して,よく使う数の集合を表すコマンドをあらかじめ定義してあります.

集合 コマンド 既定値での出力
自然数全体の集合 \NaturalNumbers $\mathbb{N}$
整数全体の集合 \Integers $\mathbb{Z}$
有理数全体の集合 \RationalNumbers $\mathbb{Q}$
実数全体の集合 \RealNumbers $\mathbb{R}$
複素数全体の集合 \ComplexNumbers $\mathbb{C}$

\DeclareNumberSetCommandのところで述べたように,オプション引数によって書体指定できる点も同じです.
これらすべてのコマンドが\NaturalNumbers[style=bfit]のようにオプション引数を使った書体のローカル指定をサポートしています.

なお,上で述べたプリセットでは足りない場合は数の集合を表す新しいコマンドの定義で述べた\DeclareNumberSetCommandコマンドを使って定義してください.

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?