Ich bin immer noch verwirrt wegen titlesec
und tikz
. Wie platziere ich beispielsweise im folgenden Code die Kapitelnummer und den Titel in einem abgerundeten Rechteck mit einem benutzerdefinierten Innenrand?
\documentclass[12pt, oneside]{book}
\usepackage[paperwidth=30pc, paperheight=36pc, margin=5pc]{geometry}
\usepackage{titlesec}
\titleformat{\chapter}%
[hang]% shape
{\centering\bfseries\large}% format applied to label+text
{\thechapter}% label
{10pt}% horizontal separation between label and title body
{}% before the title body
[]% after the title body
\usepackage{tikz}
\begin{document}
\chapter{Test Chapter Title}
\end{document}
Antwort1
Der Trick besteht darin, dass dem letzten Teil im letzten obligatorischen Argument \titleformat
der Titel als Argument übergeben wird.
Den Code von matexmatics ausleihen
\documentclass[12pt, oneside]{book}
\usepackage[paperwidth=30pc, paperheight=36pc, margin=5pc]{geometry}
\usepackage{tikz}
\usepackage{titlesec}
\titleformat{\chapter}
[block]% shape
{\filcenter\bfseries\large}% format applied to label+text
{}% label
{0pt}% horizontal separation between label and title body
{\maketitleframe{\thechapter}}% before the title body
\titleformat{name=\chapter,numberless}
[block]% shape
{\filcenter\bfseries\large}% format applied to label+text
{}% label
{0pt}% horizontal separation between label and title body
{\maketitleframe{\ignorespaces}}% before the title body
\newcommand{\maketitleframe}[2]{%
\begin{tikzpicture}
\node[draw,rounded corners] {#1 #2};
\end{tikzpicture}% before the title body
}
\begin{document}
\tableofcontents
\chapter{Test Chapter Title}
\end{document}
Es ist wichtig, auch für nummerlose Kapitel ein Format zu definieren. Mit \ignorespaces
als erstem Argument wird der Abstand zwischen #1
und #2
verschluckt. Hinweis
\filcenter
und nicht\centering
- 0pt und nicht 10pt
Wenn Sie mehr Platz zwischen der Nummer und dem Titel wünschen
\documentclass[12pt, oneside]{book}
\usepackage[paperwidth=30pc, paperheight=36pc, margin=5pc,showframe]{geometry}
\usepackage{tikz}
\usepackage{titlesec}
\titleformat{\chapter}
[block]% shape
{\filcenter\bfseries\large}% format applied to label+text
{}% label
{0pt}% horizontal separation between label and title body
{\maketitleframe{\thechapter\hspace{10pt}}}% before the title body
\titleformat{name=\chapter,numberless}
[block]% shape
{\filcenter\bfseries\large}% format applied to label+text
{}% label
{0pt}% horizontal separation between label and title body
{\maketitleframe{}}% before the title body
\newcommand{\maketitleframe}[2]{%
\begin{tikzpicture}
\node[draw,rounded corners] {#1#2};
\end{tikzpicture}% before the title body
}
\begin{document}
\tableofcontents
\chapter{Test Chapter Title}
\end{document}
Antwort2
explicit
Eine Lösung besteht darin, die Option für das Paket zu verwenden titlesec
. Dann kann der Titel mit abgerufen werden #1
. Der Befehl \thechapter
wird an die \node
Stelle verschoben, an der #1
er platziert wird.
\documentclass[12pt, oneside]{book}
\usepackage[paperwidth=30pc, paperheight=36pc, margin=5pc]{geometry}
\usepackage[explicit]{titlesec}
\titleformat{\chapter}%
[hang]% shape
{\centering\bfseries\large}% format applied to label+text
{}% label
{10pt}% horizontal separation between label and title body
{\begin{tikzpicture}\node[draw,rounded corners] {\thechapter{} #1};\end{tikzpicture}}% before the title body
[]% after the title body
\usepackage{tikz}
\begin{document}
\chapter{Test Chapter Title}
\end{document}