タイトル付きtcolorboxでタイトルと外部のベースラインを揃える方法

タイトル付きtcolorboxでタイトルと外部のベースラインを揃える方法

- Ryuta Kudo の投稿
返信数: 3

タイトル付きtcolorboxで、タイトルのベースラインと外部のベースラインを揃えたいです。

具体例を添付いたしました(添付画像は強引に手動でスペースをそれっぽくなるように調整しただけのものです)。

タイトル(添付例では「着目」)のベースラインと、外部(添付例では「(1)」)のベースラインを揃える方法を思いつく方いらっしゃいましたら、ぜひご教示いただきたいです。

添付 sample.png
Ryuta Kudo への返信

Re: タイトル付きtcolorboxでタイトルと外部のベースラインを揃える方法

- 和田 勇 の投稿
まだまだ、改良の余地はあるのですが、叩き台です。

参考としたものはマニュアル texdoc tcolorbox で表示される
p67 のコーディングから
  1、複数の tcolorbox を横に並べること
  2、横に並んだ tcolorbox の高さを同じにすること
  3、項番の番号は tcolorbox のタイトルで描画させる
のようなことをあれこれ試してみました。
添付のものを参考に して改良してみてください。

「解答」部分は、「着目」のものを流用したので、
提示されたものより右によっていますが、width を調整することで
調整はできると思います。

また、項番の番号の採番方法は、叩き台では「マニュアル」ですが、
ステップアップカウンタなどを利用すれば、自動化も可能と思います。
Ryuta Kudo への返信

Re: タイトル付きtcolorboxでタイトルと外部のベースラインを揃える方法

- ut の投稿
遅れ馳せながら、ちょっとやってみました。
すごく素朴で、泥臭いやり方ですが…。

\documentclass[dvipdfmx]{jarticle}
\usepackage{tcolorbox}
\tcbset{nobeforeafter}

\newlength{\myht}
\settoheight{\myht}{(1)}
\addtolength{\myht}{1.5mm} % toprule (0.5mm) + boxsep (1mm)

\newcommand{\mynum}[1]{%
  \noindent
  \raisebox{-\myht}{\llap{(#1) }}%
}

\newcommand{\dummyans}{%
  \noindent\textgt{《解答》}\par
  あのイーハトーヴォのすきとおった風、夏でも底に冷たさをもつ青いそら、
  うつくしい森で飾られたモリーオ市、郊外のぎらぎらひかる草の波。\par
}

\begin{document}

\mynum{1}%
\begin{tcolorbox}[box align=top,after skip=2ex,title=着目]
\<「$x$は正である」という条件が付いていることに着目しよう!
\end{tcolorbox}

\dummyans

\mynum{12}%
\begin{tcolorbox}[box align=top,after skip=2ex,title=着目]
\<「$x$は正である」という条件が付いていることに着目しよう!
\end{tcolorbox}

\dummyans

\mynum{123}%
\begin{tcolorbox}[box align=top,after skip=2ex,title=着目]
\<「$x$は正である」という条件が付いていることに着目しよう!
\end{tcolorbox}

\dummyans

\end{document}

添付 3842.jpg
ut への返信

Re: タイトル付きtcolorboxでタイトルと外部のベースラインを揃える方法

- ut の投稿
# 蛇足ですが…。

(1)ベースラインを揃えるのであれば、取得すべき高さは:

  \settoheight{\myht}{着目}

のほうでした…。


(2)つい横着をして \llap を使ってしまいましたが、LaTeX 的には:

  \makebox[0pt][r]{<text>}

としたほうがよかったのかも知れません。


【参考】TLC 3rd, Part II, 2023, p. 662:

[warning sign] Useful, but dangerous

There are also three useful but somewhat dangerous lower-level
commands you often find in package code: \llap, \clap, and \rlap.
.....
They inherit the behavior of the \hbox command; i.e., they do not
start a paragraph if used in vertical mode (which is sometimes
what you want), but more importantly they are not color safe unless
you add an extra pair of braces in their argument.