🐥

itembox環境をTColorBoxで再現

2023/01/01に公開

itembox環境とは

ascmacパッケージにある,itembox環境のことです。

itembox環境を使ってみよう

まず,プリアンブル(\begin{document}より前)に次の内容を記述します。

\usepackage{ascmac}

これでascmac.styを読み込むことができます。

次に,本文中に次のようにitembox環境を記述してみましょう。

\begin{itembox}[l]{タイトル}
	項目ボックスです。
\end{itembox}

タイプセットすると,次のようになると思います。
itembox環境

これでも十分な品質ですが,出力されたPDFファイルを見ていると倍率によっては均一な太さにならないときがあります。

これを解消すべく,tcolorboxパッケージを用いてitembox環境を再現してみることにしましょう。

TColorBoxでitembox環境を再現しよう

tcolorboxパッケージとは

詳しい話はおいておくとして,tcolorboxパッケージを用いるとハイクオリティな囲み枠を作成することができます。

参考にした囲み枠

ascolorboxパッケージにおけるsimplesquarebox環境を参考にしました。

itembox環境を再現しよう

tcolorboxで囲み枠を再現するわけですから,枠の線の太さを変えられるなどカスタマイズ性が向上するとよいなとは思ったのですが,ここではascmacパッケージと互換性を持たせることを目指しました。

プリアンブルに次の内容を記述してください。

% tcolobox パッケージの読み込み
\usepackage{tcolorbox}
\tcbuselibrary{most}

% itembox の定義
\DeclareTColorBox{itembox}{ O{c} m O{} }{
	% itemboxの書式設定
	empty, breakable,
	left=2mm, right=2mm, top=.5mm,
	colframe=black, coltitle=black, coltext=black,
	% タイトルの書式設定
	title={\ #2\ },
	\if #1lattach boxed title to top text left\else\if #1rattach boxed title to top text right\else attach boxed title to top center\fi\fi,
	boxed title style={empty, left=-.5zw, right=-.5zw},
	% 囲み枠
	underlay unbroken={\draw[black, line width=.75pt, rounded corners=10pt](title.east) -- (title.east-|frame.east) -- (frame.south east) -- (frame.south west) -- (title.west-|frame.west) -- (title.west);},
	underlay first={\draw[black, line width=.75pt, rounded corners=10pt](title.east) -- (title.east-|frame.east) -- (frame.south east);
		\draw[black, line width=.75pt, rounded corners=10pt] (frame.south west) -- (title.west-|frame.west) -- (title.west);},
	underlay middle={\draw[black, line width=.75pt, rounded corners=10pt](frame.north east) -- (frame.south east);
		\draw[black, line width=.75pt, rounded corners=10pt](frame.south west) -- (frame.north west);},
	underlay last={\draw[black, line width=.75pt, rounded corners=10pt](frame.north east) -- (frame.south east) -- (frame.south west) -- (frame.north west);},
	#3
}

あまりきれいなコードではないかもしれませんが,これでascmacパッケージのitembox環境を再現することができました。

simplesquarebox環境からの変更点

  • 枠の太さを固定にして,0.75ptにしました。
  • \drawrounded cornersオプションを追加しました。
  • titleの位置を場合分けするようにしました。
  • 左寄せのときのタイトルをattach boxed title to top text leftにしました。
  • タイトルの【カッコ】とサブタイトルを削除しました。

タイトルが長すぎると肩が脱臼します

次のようなitembox環境を作ってみます。

\begin{itembox}[c]{あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐをゑんぁぃぅぇぉがぎぐげご}
項目ボックスです。
\end{itembox}

すると,次のようになります。

両肩が脱臼してしまっています。

Solution: \parboxを使いましょう

たとえば\parbox{10zw}{あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐをゑんぁぃぅぇぉがぎぐげご}としてみると,

となり,肩がもとに戻りましたね。

tcolorboxの機能でどうにかなるか試してみたのですが,ダメそうです。もし,よい案が思いついた方がいたら,アドバイスをお願いします。

あけましておめでとうございます

新年明けましておめでとうございます。本年もよろしくお願いいたします。

Zennでは,このように\TeXについてや趣味でやっているプログラミングについて綴ることができればいいなと思っています。

興味を持っていただけたら,フォロー・いいねお願いします。

Discussion