Skip to content

Instantly share code, notes, and snippets.

@yarakos95
Last active April 16, 2024 11:32
Show Gist options
  • Save yarakos95/cf19ee163ff426196d7494b81339c3cf to your computer and use it in GitHub Desktop.
Save yarakos95/cf19ee163ff426196d7494b81339c3cf to your computer and use it in GitHub Desktop.
黒板文字を使いたい

Blackboard Bold Symbol

黒板太字(Blackboard Bold) や重ね打ち体(doublestroke) と呼ばれる二重線で書かれるようなアルファベットを数式で利用したい.

もっとも標準的に黒板太字を利用する方法は,amsfonts(あるいはamssymb) を読み込むことである.1

Exsample

\documentclass{article}
\usepackage{amsfonts}
\begin{document}
  $ \mathbb{A} $
\end{document}

アラビア数字,小文字アルファベット,大文字アルファベットに対して\mathbb すると以下のようになる.

Image from Gyazo

これらから明らかなように,大文字アルファベットのみにしか適用されない. しかし,場合によっては小文字やアラビア数字にも適用させたい.本記事では,これらに適用することを目標にする.

bbm

bbm | CTAN

bbm を利用することでいくつかの黒板太字を追加することが出来る.\usepackage して\mathbbm とすれば良い.

Exsample

\documentclass{article}
\usepackage{bbm}
\begin{document}
  $ \mathbb{1} $
  $ \mathbb{a} $
  $ \mathbbm{A} $
\end{document}

同時にamsfonts を読み込んでいても競合しないので問題ない.

アラビア数字,小文字アルファベット,大文字に対しては以下のような結果を得る.

bbm

これから分かるように,数字は1と2のみしか対応していない.また,よく見ると字がガタガタしていてあまり綺麗ではない.(画質の問題上,上の画像を拡大しても違いが分からないかもしれない.) よく見かける方法ではあるが,少々嫌だなと感じるところがあるように思われる.

mathbbol

mathbbol | CTAN

以下のように読み込む.bbgreekl オプションを有効にしておくことで,ギリシャ文字の黒板太字を利用することが出来る.

\usepackage[bbgreekl]{mathbbol}

amsfonts が読み込まれている場合,このパッケージでは\mathbb がオーバーロードされる形になる.したがって,amsfonts から提供されているフォントが利用できないことに注意したい.

利用例は以下のようになる.

Exsample

\documentclass{article}
\usepackage{amsfonts}
\usepackage[bbgreekl]{mathbbol}
  \DeclareMathSymbol{\bbepsilon}{\mathord}{bbold}{"0F}
\begin{document}
  $ \mathbb{1} $
  $ \mathbb{a} $
  $ \mathbb{A} $
  $ \bbalpha $
  $ \mathbb{\Gamma} $
\end{document}

一覧にすると以下のようになる.このパッケージではギリシャ文字の黒板太字も提供している.小文字は\bbalpha など頭に"bb" を付け,大文字はアルファベットと同様にする.

mathbbol

mathbbol を読み込むことでアラビア数字,小文字アルファベット,大文字アルファベットを網羅することが出来た.

しかし,実はイプシロンは\bbespilon ("p" と"s" の順序が逆) として定義されている.これは定義がタイプミスをしていることに起因するらしい. これでは使い勝手が悪いので,新たに定義し直したりすれば良いだろう.そのため4行目で\bbepsilon を与えている.

\DeclareMathSymbol{\bbepsilon}{\mathord}{bbold}{"0F}
% \newcommand{\bbepsilon}{\bbespilon}% this is fine.

mathbbol ではサンセリフ体が基調になっているように見える. もしも,amsfonts から提供されるローマンを基調にしたような黒板太字を利用したい場合には以下のようにしてみたい.

amsfonts and mathbbol

以下のように\DeclareSymbolFontAlphabet を追加する.

Exsample

\documentclass{article}
\usepackage{amsfonts}
\usepackage[bbgreekl]{mathbbol}
  \DeclareSymbolFontAlphabet{\mathbb}{AMSb}
  \DeclareSymbolFontAlphabet{\mathbbl}{bbold}
  \DeclareMathSymbol{\bbepsilon}{\mathord}{bbold}{"0F}
\begin{document}
  $ \mathbbl{1} $
  $ \mathbbl{a} $
  $ \mathbb{A} $
  $ \bbalpha $
  $ \mathbbl{\Gamma} $
\end{document}

このようにしておけば,以下のように大文字アルファベット以外ではmathbbol を,大文字アルファベットはamsfonts を利用することが出来る.満足.

amsfonts and bbol

重複するので避けたが,もちろんギリシャ文字も\mathbbl で利用することが出来る.

Other package

Image from Gyazo

他にもいくつかのパッケージで黒板太字を利用することが出来るようになる.以下を参照すると良いだろう.

CTAN: BBD Font

また,newtxmath でもいくつかの黒板太字を利用することが出来る.

Easy to Use

一つ一つ\mathbb などとするよりも,これらを利用する際には簡略的に定義しておいた方が良いだろう.

Blackboard Bold easy commands (折りたたみ)

Arabicnumerals

\newcommand{\mathNumbb}[1]{\mathbb{#1}}
  \newcommand{\bbzero}{\mathNumbb{0}}
  \newcommand{\bbone}{\mathNumbb{1}}
  \newcommand{\bbtwo}{\mathNumbb{2}}
  \newcommand{\bbthree}{\mathNumbb{3}}
  \newcommand{\bbfour}{\mathNumbb{4}}
  \newcommand{\bbfive}{\mathNumbb{5}}
  \newcommand{\bbsix}{\mathNumbb{6}}
  \newcommand{\bbseven}{\mathNumbb{7}}
  \newcommand{\bbeight}{\mathNumbb{8}}
  \newcommand{\bbnine}{\mathNumbb{9}}

Uppercase latin letters

\newcommand{\mathAlphbb}[1]{\mathbb{#1}}
  \newcommand{\bbA}{\mathAlphbb{A}}
  \newcommand{\bbB}{\mathAlphbb{B}}
  \newcommand{\bbC}{\mathAlphbb{C}}
  \newcommand{\bbD}{\mathAlphbb{D}}
  \newcommand{\bbE}{\mathAlphbb{E}}
  \newcommand{\bbF}{\mathAlphbb{F}}
  \newcommand{\bbG}{\mathAlphbb{G}}
  \newcommand{\bbH}{\mathAlphbb{H}}
  \newcommand{\bbI}{\mathAlphbb{I}}
  \newcommand{\bbJ}{\mathAlphbb{J}}
  \newcommand{\bbK}{\mathAlphbb{K}}
  \newcommand{\bbL}{\mathAlphbb{L}}
  \newcommand{\bbM}{\mathAlphbb{M}}
  \newcommand{\bbN}{\mathAlphbb{N}}
  \newcommand{\bbO}{\mathAlphbb{O}}
  \newcommand{\bbP}{\mathAlphbb{P}}
  \newcommand{\bbQ}{\mathAlphbb{Q}}
  \newcommand{\bbR}{\mathAlphbb{R}}
  \newcommand{\bbS}{\mathAlphbb{S}}
  \newcommand{\bbT}{\mathAlphbb{T}}
  \newcommand{\bbU}{\mathAlphbb{U}}
  \newcommand{\bbV}{\mathAlphbb{V}}
  \newcommand{\bbW}{\mathAlphbb{W}}
  \newcommand{\bbX}{\mathAlphbb{X}}
  \newcommand{\bbY}{\mathAlphbb{Y}}
  \newcommand{\bbZ}{\mathAlphbb{Z}}

Uppercase greek letters

\newcommand{\mathGreekbb}[1]{\mathbb{#1}}
  \newcommand{\bbGamma}{\mathGreekbb{\Gamma}}
  \newcommand{\bbDelta}{\mathGreekbb{\Delta}}
  \newcommand{\bbTheta}{\mathGreekbb{\Theta}}
  \newcommand{\bbLambda}{\mathGreekbb{\Lambda}}
  \newcommand{\bbXi}{\mathGreekbb{\Xi}}
  \newcommand{\bbPi}{\mathGreekbb{\Pi}}
  \newcommand{\bbSigma}{\mathGreekbb{\Sigma}}
  \newcommand{\bbUpsilon}{\mathGreekbb{\Upsilon}}
  \newcommand{\bbPhi}{\mathGreekbb{\Phi}}
  \newcommand{\bbPsi}{\mathGreekbb{\Psi}}
  \newcommand{\bbOmega}{\mathGreekbb{\Omega}}

About vector notation

LaTeX で文章を作成する際に,ベクトルの記法として黒板太字を利用することはあまり推奨されない. これは黒板太字がもともと「黒板に太字を書く際に太くない文字との違いをはっきりさせるための方法として用いられていた」ためである.

黒板太字 - Wikipedia

そもそも出版物に黒板太字を利用しても良いのか? という議論もあるようだが,少なくともLaTeX においてベクトルに対して積極的に黒板太字を利用する意義やメリットはないと言えるだろう. また,LaTeX 標準(Computer Modern) に黒板太字を含まないのは,TeX の作者であるKnuth が黒板太字よりも太字を好んだためだとされている.

ただし,集合に関しては"自然数$ n \in \mathbb{N} $" のような表記がよくなされているようだ.(ただし,ボールドで\mathbf{N} とする表記もある)

線引きは曖昧だが,出版物や学問の慣習に従っていく方が良いだろう.(個人的にはベクトルに黒板太字を利用している出版物を見たことはないので利用すべきでないと考えている.)

References

Footnotes

  1. amssymb を読み込むとamsfonts が読み込まれる.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment