枠で囲む

本文の一部や段落のかたまりを 枠で囲む 方法を、素朴なものから強力なものへと順にたどります。一文や一語を囲むだけなら標準命令の **\fbox{...}\framebox[幅][位置]{...} で足りますが、これらは 行やページをまたいで折り返せません。段落をまるごと囲んでページ送りも許したいなら framed** パッケージ(framedshadedleftbar 環境)、数式を囲むなら amsmath の **\boxed{...}、そして色・タイトル・改ページ・角丸まで自在に操りたいなら、TikZ の上に作られた最も強力な tcolorbox が定番です。最後に、もう一つの改ページ可能な枠 mdframed** にも触れます。

標準の枠——\fbox と \framebox

何も読み込まなくても使えるのが **\fbox{...} です。引数の中身をぴったり囲む細い枠を引きます。幅や位置を細かく指定したいときは \framebox[幅][位置]{...} を使います。第 1 任意引数の で枠の横幅を、第 2 任意引数の 位置** で中身の寄せ方を決めます——c(中央・既定)、l(左寄せ)、r(右寄せ)、s(両端そろえ)です。\framebox(引数なし)は \fbox と同じ働きになります。

枠の見た目は二つの長さで決まります。**\fboxrule罫線の太さ**(既定 0.2pt)、**\fboxsep枠と中身のあいだの余白(パディング)**(既定 3pt)です。どちらも \setlength で変えられます。たとえば太く・広く囲むなら次のようにします。

latex
\setlength{\fboxrule}{1pt}
\setlength{\fboxsep}{8pt}
\fbox{ここを枠で囲みます}

\framebox[5cm][l]{左寄せで幅 5cm}

注意したいのは、**\fbox\framebox も中身を折り返さない** ことです。長い文章を渡しても 1 行のまま横へ伸び、行やページの境界をまたぎません。複数行を枠で囲みたいなら、中身を \parboxminipage にしてから囲む(\fbox{\parbox{0.8\linewidth}{…}})か、次節以降の段落用パッケージを使います。なお \fbox は文字の ベースライン に合わせて配置される行内ボックスなので、\hspace や他の行内要素と自然に並びます。minipage\parbox 自体の使い方は「ボックス」のページを参照してください。

段落を囲んでページもまたぐ——framed

\fbox の「折り返せない」弱点を埋めるのが、\usepackage{framed} で読み込む **framed パッケージです。中心となる framed 環境 は、囲んだ中身が ページをまたいで折り返せる のが最大の特徴で、長い注意書きやコラムをまるごと枠に入れられます。同梱の shaded 環境 は枠線の代わりに 背景を塗りleftbar 環境左端に縦罫を 1 本** 引きます(引用ブロックの目印によく使われます)。

latex
\usepackage{framed}

\begin{framed}
  この段落は枠で囲まれます。中身が長くてページの
  終わりに達しても、枠は自然に分割されて次のページへ
  続きます。\fbox にはできない芸当です。
\end{framed}

shaded の背景色は、**\colorlet{shadecolor}{...}** で色 shadecolor を定義して指定します(colorxcolor の読み込みが必要)。枠線の太さや余白は \fbox と同じ **\FrameRule\FrameSep** という長さで調整します。framed には派生環境もあり、**oframed(ページ分割点で上下が開く枠)、shaded*(本文幅に揃えた塗り)、snugshade**(中身に密着した塗り)などが選べます。さらに \FrameCommand を再定義したり \MakeFramed を使ったりすれば、独自の「折り返せる枠」を作れます。

framed は軽量で素直ですが、角丸や影、タイトル付きの凝った枠までは扱えません。そうした表現が欲しくなったら、後述の tcolorbox が向いています。

数式を囲む——\boxed

結論の数式を枠で囲んで目立たせたいときは、amsmath の **\boxed{...}** を使います。\fbox は文字モード(テキストモード)の命令なので数式の中ではうまく働きませんが、\boxed数式モード専用 で、引数を数式として組んだうえで枠を付けます。\usepackage{amsmath} を読み込んでおき、数式モードの中で使います。

latex
\usepackage{amsmath}

\[
  \boxed{E = mc^2}
\]

\boxed が引く枠は内部的には \fbox と同じなので、\fboxrule\fboxsep の影響を受けます。整列環境(align など)の特定の行だけを囲むこともできますが、枠を式番号や複数行にきれいに掛けたい高度な用途では、mathtools に付属の empheq パッケージのほうが柔軟です。数式モード全般は「数式モードの基本」のページを参照してください。

最も強力な枠——tcolorbox

色付き・タイトル付き・改ページ可能……と、枠まわりの要求をほぼすべて満たすのが **tcolorbox(Thomas Sturm 作)です。豊富な追加ライブラリを一括で有効にする \usepackage[most]{tcolorbox}** という読み込み方が定番です(mostminted など外部ツール依存のものを除く大半のライブラリを読み込みます)。tcolorboxpgf/TikZ の上に作られているため、内部で TikZ が描画を担い、その表現力をそのまま枠に活かせます。

使い方は三段階で覚えると見通しがよくなります。行内に小さな枠を一つ置くだけなら **\tcbox{...}**——中身の幅にぴったり合わせた枠を作る命令で、\fbox のように振る舞いますが(折り返しはしません)色やタイトルなどの豊富なオプションが使えます。段落のかたまりを囲むなら **tcolorbox 環境。そして同じ体裁を何度も使うなら、\newtcolorbox{mybox}{...}再利用できる枠を定義** します。

色とタイトルは鍵となるオプションで指定します。**colback=背景色colframe=枠線の色title= を与えると 見出し付きの枠(タイトル帯)になります。breakable を付けると枠が ページをまたげる** ようになり、sharp corners(角を直角に)/ rounded corners(角丸・既定)、boxrule=(枠線の太さ。既定 0.5mm)、arc=(角丸の半径。既定 1.0mm)で形を整えます。タイトル帯の色は colbacktitle=、見出しの書体は fonttitle= で変えられます。

latex
\usepackage[most]{tcolorbox}

\begin{tcolorbox}[colback=blue!5, colframe=blue!60!black,
                  title=覚え書き, fonttitle=\bfseries, breakable]
  色付きでタイトルの付いた枠です。\texttt{breakable} を
  指定したので、長くなればページをまたいで分割されます。
\end{tcolorbox}

同じ体裁を繰り返すなら、プリアンブルで枠を定義しておきます。**\newtcolorbox[初期化オプション]{名前}[引数の個数][既定値]{オプション}** という形で、\newenvironment のように 引数を取る枠 も作れます。たとえば見出しを引数で受け取る注意書き用の枠は次のように定義できます。

document.tex
\usepackage[most]{tcolorbox}
\newtcolorbox{note}[1]{%
  colback=yellow!10, colframe=orange!70!black,
  fonttitle=\bfseries, title=#1, breakable}

\begin{document}
\begin{note}{注意}
  これで \texttt{note} 環境を定義しました。引数で
  見出しを渡せます。
\end{note}
\end{document}

さらに skins ライブラリmost に含まれます)を使うと、enhanced スキンで影・二重枠・透過・装飾的なタイトルなど、TikZ 仕込みの凝った見た目に切り替えられます。定理環境を仕立てる theorems ライブラリ、上下二段に分けてソースと出力を並べる使い方(\tcblower で区切る)など、機能は非常に広範です。詳細は texdoc tcolorbox で読める大部のマニュアル(2025 年時点でバージョン 6.9 系)に当たってください。

もう一つの選択肢——mdframed

tcolorbox ほど多機能でなくてよいが、framed よりは見栄えのする 改ページ可能な枠 が欲しい——そんなときの中間的な選択肢が **mdframed** です。\usepackage{mdframed} で読み込み、**mdframed 環境** で中身を囲みます。framed を土台に拡張したパッケージで、ページをまたぐ枠 に色・角丸・影などを付けられます。

描画方式(バックエンド)を選べるのが特徴で、標準の LaTeX 命令のほか、framemethod=TikZframemethod=pstricks を指定するとより凝った装飾が使えます。\newmdenv{...} で独自の枠環境を、\newmdtheoremedenv{...}(正しくは \newmdtheoremenv)で枠付きの定理環境を定義できます。下は角丸・色付きの最小例です。

latex
\usepackage{mdframed}

\begin{mdframed}[backgroundcolor=gray!10, roundcorner=5pt,
                 linecolor=gray!60, linewidth=1pt]
  mdframed の枠です。ページをまたいで折り返せます。
\end{mdframed}

どれを使うか

迷ったら、目的の規模で選ぶのが早道です。一語・一文を手早く囲むなら **\fbox / \framebox。数式を囲むなら \boxed。段落をまたいで囲むだけでよいなら軽量な framed。色・タイトル・角丸・改ページまで凝るなら tcolorbox**(その手前の選択肢として mdframed)。色名や混色の指定は「色(xcolor)」、長さの単位や \fboxsep のような寸法の考え方は「長さと空白」、ボックス一般(\parboxminipage\rule)は「ボックス」のページにまとまっています。

使うもの囲める対象改ページ主な用途
\fbox / \framebox1 行の中身不可語・短い文を手早く
\boxed数式(数式モード)不可結論の式を強調
framed段落のかたまり軽量に段落を囲む
mdframed段落のかたまり色・角丸付きで手頃に
tcolorbox段落・行内・定理色・タイトル・装飾の決定版