jlreqでtcolorboxを使い見出しの体裁を変更する

jlreqでtcolorboxを使い見出しの体裁を変更する

- akkiy - の投稿
返信数: 16

LuaLaTeX+jlreqです。

tcolorboxを使い,セクションの体裁を下のように変更したいです。

titlesecが使えず,ネットに情報がなかったのでここで質問させていただきます。

よろしくお願いいたします。

image%20%281%29.png

akkiy - への返信

Re: jlreqでtcolorboxを使い見出しの体裁を変更する

- 和田 勇 の投稿

できれば、現在お試しになっているソースを添付していただけていたら、 別の回答になるかもしれませんが、とりあえず、質問内容から 試行錯誤してみました。一応 lualatex でテストしています。

[LaTeX] titlesec+TikZでSectionを霊夢っぽく を参考にしつつ、 tiki の線分の終端の形状を⚫️に、またタイトルの背景色を「白」 にすることで、描画した水平線の一部を見えなくするようにしてみました。

調査している段階で、customization of section with tikz and titlesec を見つけましたが、とりあえず上記の titelsec + TikZ でなんとか実現してそうな ものができました。

サイズや座標位置はもう少し調整したほうが良いと思いますが、 参考にしていただければ幸いです。

和田 勇 への返信

Re: jlreqでtcolorboxを使い見出しの体裁を変更する

- 和田 勇 の投稿
試行錯誤中の残骸の除去したついでに、セクション番号の幅を広くしたものを再アップロードしておきます。
和田 勇 への返信

Re: jlreqでtcolorboxを使い見出しの体裁を変更する

- akkiy - の投稿
和田勇様

ありがとうございます。頂いたコードを改良して望んでいた出力を得ることができました。

jlreqとtitlesecは同時に使えないと思っていましたが、このように記述すると使えることも新たな発見でした。

改めてありがとうございます。
akkiy - への返信

Re: jlreqでtcolorboxを使い見出しの体裁を変更する

- KK TeX の投稿
化学発展講座テキストのサブセクションのオマージュなら

% サブサブセクション
\newcommand{\ruleFill}[2]{%
\leaders\hbox{\textcolor{mygray}{\raisebox{0.8mm}{\rule{#1}{#2}}}}\hfill
}
\renewcommand{\subsubsection}[1]{\refstepcounter{subsubsection}
\addcontentsline{toc}{subsubsection}{\textgt{▷}\hspace{.3em} #1}%
\noindent\vskip2pt \hskip-8pt \hskip3mm
\tcbox[on line, enhanced,
arc=2pt,colback=mygray,coltext=white,
boxsep=0pt,left=2.5pt,right=2.5pt,top=2pt,bottom=2pt,colframe=mygray,
]
{\small \bfseries\sffamily \thesubsubsection}\hspace*{-1mm}
\textcolor{mygray}{\raisebox{0.8mm}{\rule{0.5cm}{1.5pt}}}\hspace*{0.3mm}{\small\fft{#1}}\hspace*{0.3mm}\textcolor{mygray}{\ruleFill{0.01mm}{1.5pt}}\tikz[baseline,overlay,xshift=-0.02mm,yshift=1.1mm]{\draw[fill=mygraysection] (0,0) circle (0.5mm);}
\leavevmode\vskip0.5pt
}
%--------------------

これをフォントのところだけ適切に変更して使ってみてください。

このコマンドではサブサブセクションになっていること、newcommandを使っておりtitlesecを使っていないこと、それに伴い目次への追加のところを手動調整していることに注意しましょう。
他にも鉄TeX関連のコマンドの再現ならいくらか持っていますから、欲しいのがあればとりあえずforumに投げてください。
KK TeX への返信

Re: jlreqでtcolorboxを使い見出しの体裁を変更する

- ut の投稿
うわっ、某塾のテキストの見出しは、ものすごく細かく値が設定され
ているのですね…。

和田さんのご回答を参考に、私だったらこうするかな、という手抜き
コードも一応並べておきます。
(tikz にはこれまで数回しか触ったことがなくて、それも 15 年くら
い前の話なので、こんな書き方で合っているのか相当怪しいですが…)

\documentclass[dvipdfmx]{article}
\usepackage{tcolorbox}
\tcbuselibrary{skins}
\usetikzlibrary{arrows.meta}

% ----- https://okumuralab.org/tex/mod/forum/discuss.php?d=3961#p24626 -----
\newcommand{\ruleFill}[2]{%
  \leaders\hbox{\textcolor{gray}{\raisebox{0.8mm}{\rule{#1}{#2}}}}\hfill
}

\renewcommand{\subsubsection}[1]{%
  \refstepcounter{subsubsection}%
  \addcontentsline{toc}{subsubsection}{\textgt{▷}\hspace{.3em} #1}%
  \noindent\vskip2pt \hskip-8pt \hskip3mm
  \tcbox[on line, enhanced,
    arc=2pt,colback=gray,coltext=white,
    boxsep=0pt,left=2.5pt,right=2.5pt,top=2pt,bottom=2pt,colframe=gray]
    {\small \bfseries\sffamily \thesubsubsection}\hspace*{-1mm}%
    \textcolor{gray}{\raisebox{0.8mm}{\rule{0.5cm}{1.5pt}}}\hspace*{0.3mm}%
    {\small\fft{#1}}\hspace*{0.3mm}%
    \textcolor{gray}{\ruleFill{0.01mm}{1.5pt}}%
    \tikz[baseline,overlay,xshift=-0.02mm,yshift=1.1mm]{\draw[fill=gray] (0,0) circle (0.5mm);}%
  \leavevmode\vskip0.5pt
}
% ----- https://okumuralab.org/tex/mod/forum/discuss.php?d=3961#p24626 -----

\let\fft\relax
\setlength{\parindent}{0pt}

\begin{document}

\sffamily

\subsubsection{Title}

\bigskip

\begin{tikzpicture}
\coordinate (rightedge)
  at (\textwidth,0);
\node[color=gray,draw,fill,text=white,rounded corners,inner sep=.35em,anchor=west] (secnumbox)
  at (0,0) {\small\bfseries 0.0.1};
\draw[color=gray,line width=1.5pt,-{Circle[length=4pt]}]
  (secnumbox) -- (rightedge);
\node[fill=white,text=black,anchor=west] (titlebox)
  at (4em,0) {\small Title};
\end{tikzpicture}

\medskip

\leftarrowfill\texttt{textwidth}\rightarrowfill

\end{document}

添付 3961.jpg
ut への返信

Re: jlreqでtcolorboxを使い見出しの体裁を変更する

- KK TeX の投稿

自分は鉄緑の講師でも元講師でもなく、ただ去年までdoraTeX先生に化学を習っていたというだけの人間ですから、自分の書いたコードほど本家が細かい数値を取っているかは定かではありません。とはいえ、tikzで相当手の込んだ調整をしているということは拝察されますね。

このマクロだと、rulefillを作って文字列の後に水平線を描画する方法を取っているので、カラムの幅やタイトルの長さによらず文字のオーバーフローが発生しない(改行してくれるため)仕様にしてあるわけですが、そのせいで色々面倒な調整が発生してしまっているというのは確かだと思います。

ut への返信

Re: jlreqでtcolorboxを使い見出しの体裁を変更する

- 和田 勇 の投稿
tcbbox を使ったマクロの以下の部分を 0.3mm ではなくもう少し広くとったほうが
タイトルが目立つと個人的には思っています。

    \textcolor{gray}{\raisebox{0.8mm}{\rule{0.5cm}{1.5pt}}}\hspace*{0.3mm}%
    {\small\fft{#1}}\hspace*{0.3mm}%

できれば質問者さんの要求に応えるべく、titlesec + tcolorbox にしたかったのですが
今、ちょっピリ忙しいので手が回らないので looooong TODO にしておきます。:-)
和田 勇 への返信

Re: jlreqでtcolorboxを使い見出しの体裁を変更する

- KK TeX の投稿

実はこれを作るときに初めはtitlesecで作り始めたのですが、subsubsectionにした途端どうもエラーが出るようになってしまって...
そういうわけでrenewcommandを使ったところ、これで十分だと判明して今はtitlesecなしで運用しています。

おっしゃる通り、.5mmくらいの方が視認性はいいかもしれませんね

KK TeX への返信

Re: jlreqでtcolorboxを使い見出しの体裁を変更する

- 和田 勇 の投稿
もう余談ぽいですが、私の方法も含め、おそらくページ長幅近く戦友するタイトルには無力ですので、
その点お含みを頂ければと思います。

その場合でも、一旦タイトルのそのままの長さを調べれば、 \parbox にお任せも考えられますが、
それでも章番号との釣り合いで \raise しなければならなくなると思います。

まぁ、タイトルは簡潔にと言うことで一目で視認できるものにするのが著作者の技量なんですけどね。
KK TeX への返信

Re: jlreqでtcolorboxを使い見出しの体裁を変更する

- akkiy - の投稿

KK TeX様

ちょうど化学発展講座テキストのオマージュを作成していたので非常に助かります。ありがとうございます。

TeXを知れば知るほど,鉄TeXが気になるものです。

どんな機能があるのか,マニュアルだけでも見てみたい(笑)

image.png

image%20%281%29.png

akkiy - への返信

Re: jlreqでtcolorboxを使い見出しの体裁を変更する

- KK TeX の投稿
鉄TeXは使ってみたいですね...
ただ、正直ボックスだのセクションだのであればある程度tikzとtcolor使えれば自作はできますし、それで問題はないと思います。時間はかかりますが。
個人的にはそれ以上に、鉄TeXの真の凄さとは、毎週大量に降ってくるpdfを切り貼りして採点用の体裁に整え、グッドノーツに流し込んで採点できるようにするという一連の流れだと思っています。あれ無しではあの塾は回らないでしょうし、だからこそascolorboxなどはオープンソースになっているのに採点システムの根幹はオープンソースになっていないのでしょう。(再現難易度が桁違いですから当然ではあります。)
「テキスト作成」におけるTeXの使用はまだTeXをTeXとして使っているように思いますが、電子採点システムはTeXの枠を超えたアイデアの下動いていると思われるので、感嘆する限りです。
KK TeX への返信

Re: jlreqでtcolorboxを使い見出しの体裁を変更する

- 匿 名 の投稿

横道を深掘りして申し訳ございません.

https://speakerdeck.com/doratex/pdfjia-gong-turutositefalsetexfalseshi-li-todezitarucai-dian-hefalsehuo-yong
こちらのシステムのことですよね?
私も当時凄いなあと思っておりました(とても真似しようとは思いませんでした).

最近,LaTeXでマークシートを使いたくなり,ざっと調べた結果 Auto Multiple Choice を使うことにしました.選択問題に限らず記述式問題にも(限界はあるものの)対応はしており,前掲のスライドを改めて見直すと共通点が多いなあと思いました.
https://www.auto-multiple-choice.net/

ご参考になれば幸いです(もし類似システムを開発の際にはフォーラムで情報をシェアしていただけると嬉しいです).

匿 名 への返信

Re: jlreqでtcolorboxを使い見出しの体裁を変更する

- KK TeX の投稿
わかりました。
もしやる日が来たらシェアさせていただきます。(YouTubeなど別媒体になるかもしれませんが...)
KK TeX への返信

Re: jlreqでtcolorboxを使い見出しの体裁を変更する

- takamasa 23 の投稿
もしよろしければ興味があるので他のオマージュ作品もコードと共に見てみたいです
takamasa 23 への返信

Re: jlreqでtcolorboxを使い見出しの体裁を変更する

- KK TeX の投稿
要約の解答欄に使われている下限・上限を入れられるマス目のコマンドや、おなじみのKeyboxなど様々ありはしますが、さすがに多すぎるのでここではpdf3ページ分だけお見せします。
KK TeX への返信

Re: jlreqでtcolorboxを使い見出しの体裁を変更する

- takamasa 23 の投稿
丁寧にありがとうございます。私もTeX力会のtcolorboxの凄さに憧れてTeXを使っています。勉強になりました。