LaTeX でサーカムフレックス (^) の後の空白をしっかり出力する

概要
LaTeX でサーカムフレックス (^) の後の空白がうまく出力できない場合は、\textasciicircum の後に波括弧を入れるか、\verb や okumacro パッケージの \mytt という命令を使えば良い。

サーカムフレックスの後に空白が出力されない問題

LaTeX では、\textasciicircum という命令を使うことで、記号のサーカムフレックス (^) を出力することができる。

ただし、LaTeX のソースコードで \textasciicircum の後に空白(スペース)を入れても、その空白はうまく出力されない。つまり、3 \textasciicircum 5 のように「3、空白、サーカムフレックス、空白、5」と入力したとしても、“3 ^5”のようにサーカムフレックスと5の間に空白がない状態になってしまう。

波括弧の追加による問題解決

ここでの空白をしっかり出力するためには、\textasciicircum の後に {} (波括弧)を付ける。つまり、\textasciicircum{} とするのだ。例えば、3 \textasciicircum{} 5 とすれば、“3 ^ 5”のようにサーカムフレックスと5の間の空白がしっかりと表示される。

\textasciicircum の後に波括弧がない場合とある場合の LaTeX での出力。波括弧なしの状況(上段)では、サーカムフレックスの後に空白が出ないが、波括弧ありの状況(下段)では空白が出る。
\textasciicircum の後に波括弧がない場合とある場合の LaTeX での出力。波括弧なしの状況(上段)では、サーカムフレックスの後に空白が出ないが、波括弧ありの状況(下段)では空白が出る。

他の命令の使用

そもそも \textasciicircum を使わないという手もある。その場合、\verb や \mytt という命令を使う。これらの命令でも、しっかりとサーカムフレックスの後の空白を出すことができる。ただし、基本的にタイプライター体で出力されるので注意が必要である。とは言え、サーカムフレックスをわざわざ出力しなくてはならない状況は、コードを示すときぐらいだろうし、そういった場合はタイプライター体で表示することにだろうから、問題になることはあまりないだろう。

さて、\verb という命令は、入力した文字通りに出力するための命令である。これを使えば、\verb|3 ^ 5| と入力するだけで、3 ^ 5と出力される。

また、okumacro パッケージには、タイプライター体で出力するための \mytt という命令が含まれている。これはタイプライター体を出すために通常用いられる \texttt にいくつかの改善を加えたものである [1] 。なお、この命令を使うには、プリアンブルで \usepackage{okumacro} を宣言して、okumacro パッケージを読み込んでおく必要がある。

パッケージを読み込みさえすれば、{\mytt 3 ^ 5} と入力するだけで、3 ^ 5 と出力される。なお、\mytt{3 ^ 5} でなく、{\mytt 3 ^ 5} となることに気をつけよう。\texttt とは違い、括弧の中に \mytt を入れるのだ。

比較のために、出力例を挙げておく。

\texttt, \verb, \mytt の LaTeX での出力結果の比較。
\texttt, \verb, \mytt の LaTeX での出力結果の比較。

個人的には、\mytt が空白が間延びせず、一番すっきり出力できると思う。

本記事の内容を LaTeX で出力した「LaTeX でサーカムフレックス (^) の後の空白をしっかり出力する」というPDFファイルを用意したので、必要がある方は参考にしていただければ幸いである。

脚注
  1. 例えば、ピリオドの後の空白が余計に広がることがなくなる。 []