tikz와 함께하는 타이틀섹

tikz와 함께하는 타이틀섹

나는 아직도 titlesecand 와 헷갈린다 tikz. 예를 들어, 아래 코드에서 사용자 정의 내부 여백이 있는 둥근 직사각형 안에 장 번호와 제목을 어떻게 배치합니까?

\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}

답변1

비결은 마지막 필수 인수의 마지막 부분에 \titleformat제목이 인수로 전달된다는 것입니다.

matexmatics에서 코드 빌려오기

\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}

여기에 이미지 설명을 입력하세요

번호가 없는 장에 대해서도 형식을 정의하는 것이 중요합니다. 첫 번째 인수 로 와 \ignorespaces사이의 공간이 삼켜집니다. 메모#1#2

  1. \filcenter그리고는 아니다\centering
  2. 10pt가 아닌 0pt

번호와 제목 사이에 더 많은 공간을 원하는 경우

\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}

여기에 이미지 설명을 입력하세요

답변2

해결책은 explicit패키지에 대한 옵션을 사용하는 것입니다 titlesec. 그런 다음 으로 제목을 얻을 수 있습니다 #1. 명령이 위치한 곳 \thechapter으로 이동됩니다 .\node#1

여기에 이미지 설명을 입력하세요

\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}

관련 정보