LaTeXで進捗状況を示すプログレスバーを出力する

概要
LaTeX で進捗状況を示すためのプログレスバーを出力できる progressbar パッケージについて紹介する。このパッケージでは、非常に簡単なコマンドでプログレスバーを出力することができる。

はじめに

LaTeXで progressbar パッケージを使うと、進捗状況を示すためのプログレスバーを簡単に出力することができる。例えば、\progressbar{0.6} と記述するだけで、60%完了したことを示すプログレスバーが以下のように出力できる。

プログレスバーの出力例。
プログレスバーの出力例。

以下、progressbar パッケージの導入方法、プログレスバーの出力方法、プログレスバーのカスタマイズの方法について述べる。

progressbar パッケージの出力結果の例を収めたPDFを用意してある。今回の記事の事例はすべてこのPDFに含まれている。

progressbar パッケージの設定

インストール

最近のTeX Liveには、progressbar パッケージが最初から入っている。このため、わざわざインストールしなくても progressbar パッケージを使うことができる。

progressbar パッケージがインストールされていなかったら、CTANのprogressbar パッケージのページからダウンロードしてインストールすればよい。インストールの方法は環境によって異なるので、ここでは詳細を書かない。TeXWikiの「TeX入門/各種パッケージの利用」というページを参考にすると良いだろう。

また、progressbar パッケージは、内部的にcalc, kvsetkeys, kvoptions, tikz といったパッケージも使用しているので、これらのパッケージがなければ合わせてインストールする必要がある。ただし、これらのパッケージは、最近の TeX のディストリビューションにしっかり収録されていることが多いので、わざわざインストールしなくてはならない状況はあまりないだろう。

プリアンブルへの記述

progressbar パッケージを使うためには、LaTeXのソースファイル [1] のプリアンブル [2] に以下のように記せば良い。(2015年11月22日:誤字修正)

\usepackage{calc}
\usepackage{kvsetkeys}
\usepackage{kvoptions}
\usepackage{tikz}
\usepackage{progressbar}

progressbar パッケージを使うには、 progressbar パッケージそのものだけでなく、上記のように、他の依存しているパッケージも読み込む必要がある。

また、progressbar パッケージは、tikz を使っていることから、dvipdfmx でPDFを作成する場合、プリアンブルでにおいて dvipdfmx で出力することを明示しておく必要がある。例えば以下のよう記述しておけば、dvipdfmx でもうまく出力される。

\usepackage[dvipdfmx]{graphicx}
\usepackage{calc}
\usepackage{kvsetkeys}
\usepackage{kvoptions}
\usepackage{tikz}
\usepackage{progressbar}

プログレスバーの出力

プログレスバーを出力するには、 \progressbar コマンドを使う。このコマンドは引数を1つとる。この引数には、完了した割合を示す数値を入れる。例えば、 \progressbar{0.75} とコマンドを入力すれば、以下のように75%完了した状況を示すプログレスバーが出力される。

75%完了した状況を示すプログレスバー。
75%完了した状況を示すプログレスバー。

100%完了した状況を示したかったら、 \progressbar{1} と入力する。

100%完了した状況を示すプログレスバー。
100%完了した状況を示すプログレスバー。

全く完了していない状況、つまり0%完了した状況を示したかったら、 \progressbar{0} と入力する。

全く完了していない状況を示すプログレスバー。
全く完了していない状況を示すプログレスバー。

プログレスバーのカスタマイズ

オプションを指定することでプログレスバーの色や大きさなどを変えることができる。

さまざまなカスタマイズを行えば、このようなプログレスバーを出力することも容易である。
さまざまなカスタマイズを行えば、このようなプログレスバーを出力することも容易である [3]

プログレスバーの色

以下のオプションを指定することで、プログレスバーの要素の色を変更することができる。

linecolor
プログレスバーの外側を囲む線の色を指定
tickscolor
プログレスバーの目盛りの色を指定
filledcolor
プログレスバーの完了した部分を塗りつぶす色を指定
emptycolor
プログレスバーの未完了の部分を塗りつぶす色を指定

例えば、 \progressbar[linecolor=purple, tickscolor=yellow, filledcolor=green, emptycolor=red]{0.6}と設定すると、以下のように、外側を囲む線の色が紫、目盛りの色が黄色、完了した部分の色が緑、未完了の部分の色が赤になる。

プログレスバーの色を変更した例。
プログレスバーの色を変更した例。

プログレスバーの大きさ

プログレスバーの横幅は、width オプションで指定できる。例えば、 \progressbar[width=4cm]{0.6} と指定すれば、横幅が4 cmのプログレスバーが出力される [4]

width=4cm と指定して、横幅を4 cmにしたプログレスバー。
width=4cm と指定して、横幅を4 cmにしたプログレスバー。

プログレスバーの高さを指定するオプションは2つある。テキストの高さに対する相対的な高さを指定する heightr と、絶対的な高さを指定する heighta である。

例えば、heightr を使って \progressbar[heightr=0.5]{0.6} と指定すればプログレスバーの高さはテキストの高さの50%になる。また、heightaw を使って \progressbar[heighta=1.5cm]{0.6} と指定すれば、プログレスバーの高さは1.5 cmになる。

プログレスバーの角丸

プログレスバーはデフォルトでは、角が丸まった状態になっている。角丸を調整するオプションは roundnessr と roundnessa の2つがある。

roundnessr は角丸の半径をプログレスバーの高さに対して相対的に指定する。値を0とすれば角の丸めがなくなる。値を0.5とすれば角が完全に丸くなる [5] 。例えば、\progressbar[roundnessr=0.25]{0.6}, \progressbar[roundnessr=0.5]{0.6}, \progressbar[roundnessr=0]{0.6} の出力はそれぞれ以下のようになる。

roundnessr=0.25 と指定したときのプログレスバー。
roundnessr=0.25 と指定したときのプログレスバー。
roundnessr=0.5 と指定したときのプログレスバー。角は完全な丸になっている。
roundnessr=0.5 と指定したときのプログレスバー。角は完全な丸になっている。
roundnessr=0 と指定したときのプログレスバー。角は完全にとんがっている。
roundnessr=0 と指定したときのプログレスバー。角は完全にとんがっている。

なお、roundnessa は角丸の半径を絶対的な長さで指定するオプションである。あまり使う機会はないだろう。

目盛りの調整

デフォルトでは、プログレスバーの中には9カ所の目盛りが打たれ、結果として10等分される。何等分するかを変更したければ、 subdivisions オプションを使おう。例えば、subdivisions=5 と指定すれば、5等分される。このとき、目盛りは5カ所に打たれるのではなく、4カ所にしか打たれないことに注意しよう。

subdivisions=5 と指定してプログレスバーを五等分した例。
subdivisions=5 と指定してプログレスバーを五等分した例。

tickswidth オプションで、目盛りの横幅を変えることができる。このオプションは絶対的な長さを指定する。例えば、\progressbar[tickswidth=1mm]{0.6} と入力すれば以下のような出力が得られる。

tickswidth=1mm と指定して目盛りの横幅を広くした例。
tickswidth=1mm と指定して目盛りの横幅を広くした例。

また、 ticksheight オプションで、目盛りの高さを変えることができる。このオプションはプログレスバー全体の高さに対して相対的な長さを指定する。例えば、\progressbar[ticksheight=0.5]{0.6}, \progressbar[ticksheight=1]{0.6}, \progressbar[ticksheight=0]{0.6} はそれぞれ以下のような出力となる。

ticksheight=0.5 と指定して目盛りの高さをプログレスバーの高さの50%にした例。
ticksheight=0.5 と指定して目盛りの高さをプログレスバーの高さの50%にした例。
ticksheight=1 と指定して目盛りの高さをプログレスバーの高さと同じにした例。
ticksheight=1 と指定して目盛りの高さをプログレスバーの高さと同じにした例。
ticksheight=0 と指定すると、目盛りが表示されなくなる。
ticksheight=0 と指定すると、目盛りが表示されなくなる。

個人的には、ticksheight=1 と指定すると、目盛りが見やすくなって良いと思う。

プログレスバーの外側を囲む線の太さ

プログレスバーの外側を囲む線の太さを変えるには、 borderwidth オプションを使う。例えば、 \progressbar[borderwidth=2pt]{0.6} と入力すれば、以下のように外側を囲む線の太さが2ポイントになる。

borderwidth=2pt と指定してプログレスバーの外側を囲む線の太さを2ポイントにした例。
borderwidth=2pt と指定してプログレスバーの外側を囲む線の太さを2ポイントにした例。
脚注
  1. 一般的には、.tex という拡張子のファイルになる。 []
  2. LaTeXのソースファイルの冒頭部分にあるパッケージの使用などを記述する場所のこと。\documentclass と \begin{document} の間と言うと分かりやすいだろう。 []
  3. このプログレスバーは、オプションを linecolor=black, tickscolor=black!80, filledcolor=green, emptycolor=red, width=4cm, heighta=1.5cm, ticksheight=1, roundnessr=0 と指定している。 []
  4. \progressbar[width=\hsize]{0.6} と指定すれば、横幅いっぱいのプログレスバーが出力される。 []
  5. 0.5を超える値は取りえない。 []