누군가 이 tikz 코드를 고칠 수 있을까요?

누군가 이 tikz 코드를 고칠 수 있을까요?
\documentclass[11pt, twosides]{book}
\usepackage[a4paper, top=.5cm]{geometry}
\usepackage[myheadings]{fullpage}
\usepackage{fancyhdr}
\usepackage{lastpage}
\usepackage{graphicx, wrapfig, subcaption, setspace}
\usepackage{mathpazo}
\usepackage[T1]{fontenc}
\usepackage[font=small, labelfont=bf]{caption}
\usepackage[protrusion=true, expansion=true]{microtype}
\usepackage{sectsty}
\usepackage{url, lipsum}
\usepackage{etoolbox}
\usepackage[explicit]{titlesec}
\usepackage{epigraph}
\usepackage{tikz}
\usepackage{tikzpagenodes}
\titleformat{\chapter}[display]
  {\normalfont\huge}
  {}
  {20pt}
  {%
  \begin{tikzpicture}[remember picture,overlay]
\fill[top color=green, bottom color=blue] 
(16,-23) rectangle (18.5,7);
\node[
    anchor= east,
    xshift=1cm,
    text width=\textwidth] 
    at ([yshift=5pt]titlerect.east) {\fontsize{30}{36}\sffamily\selectfont#1};
\node[
    anchor= east,
    inner xsep=3cm,
    outer sep=0pt,
    font=\color{blue}]%,
    at ([yshift=.5cm]current page.east|-titlerect.east)
     {\fontsize{80}{86}\bfseries\thechapter};
\node[
    anchor= east,
    xshift=11.5cm,
        yshift=-11cm,
    text width=\textwidth] 
    at ([yshift=5pt]titlerect.east) {\fontsize{30}{36}\scshape\selectfont\rotatebox{90}{\color{white}#1}};
  \end{tikzpicture}%
}
\titleformat{name=\chapter,numberless}[display]
  {\normalfont\huge}
  {}
  {20pt}
  {%
  \begin{tikzpicture}[remember picture,overlay]
    \fill[top color=green, bottom color=blue] 
    (16,-25) rectangle (18.5,7);
  \node[
   anchor=west,
    rectangle,
    minimum height=4cm,
    text width=\paperwidth,
    xshift=-\the\dimexpr\oddsidemargin+1in\relax,
    outer sep=0pt] (titlerect) {};
  \node[
    anchor=south west,
    xshift=6cm,
        yshift=2cm,
    text width=\textwidth] 
   at (titlerect.south west) {\sffamily\Huge#1};
    \node[
    anchor= east,
    xshift=11.5cm,
        yshift=-11cm,
    text width=\textwidth] 
    at ([yshift=5pt]titlerect.east) {\fontsize{30}{36}\scshape\selectfont\rotatebox{90}{\color{white}#1}};
  \end{tikzpicture}%
  }[]
\titlespacing*{\chapter}
  {0pt}{-20pt}{60pt}
\titlespacing*{\chapter}
  {0pt}{-20pt}{60pt}
\titleformat{\section}[display] 
{\bfseries\normalsize}
{}
{5pt}
{\color{blue}\thesection~~ #1}
\titleformat{name=\section, numberless}[display]
{\bfseries\normalsize}
{}
{5pt}
{#1}

\titleformat{\subsection}[display]
{\itshape\normalsize}
{}
{5pt}
{\color{blue}\thesection~~ #1}

\fancypagestyle{plain}
{
   \fancyhf{}
   \fancyfoot{}
   \renewcommand{\headrulewidth}{0 mm}
}

\title{Title}
\author{Author}
\date{}
\textwidth=13cm
\begin{document}

\maketitle

\chapter{Random}

\section{Lipsum}

\lipsum[2]

\subsection{Subsection}

\lipsum[1]
\end{document}

답변1

titlerec노드 는 초기 명령으로 생성된 직사각형인 것으로 보입니다 \fill. 다음을 사용하여 이를 노드로 대체할 수 있습니다.틱즈 fit라이브러리 및 페이지 노드tikzpagenodes문제를 해결하려면.

이제 아래 코드는 오류 없이 컴파일되어 원하는 출력을 제공합니다. 물론 처음에는 포스트에서 열심히 노력했지만https://tex.stackexchange.com/a/374634/134144. 즉, 코드를 합리화하고 더 잘 활용했습니다.tikzpagenodes, 번호가 있는 버전과 번호가 없는 버전을 일관되게 만들고 불필요하다고 생각되는 일부 코드를 제거했습니다. 이 작업이 완료되면 코드는 다음을 생성합니다.

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

업데이트된 코드는 다음과 같습니다.

\documentclass[11pt, twosides]{book}
\usepackage[a4paper, top=.5cm]{geometry}
\usepackage[myheadings]{fullpage}
\usepackage{fancyhdr}
\usepackage{lastpage}
\usepackage{graphicx, wrapfig, subcaption, setspace}
\usepackage{mathpazo}
\usepackage[T1]{fontenc}
\usepackage[font=small, labelfont=bf]{caption}
\usepackage[protrusion=true, expansion=true]{microtype}
\usepackage{sectsty}
\usepackage{url, lipsum}
\usepackage{etoolbox}
\usepackage[explicit]{titlesec}
\usepackage{epigraph}
\usepackage{tikz}
\usetikzlibrary{fit}
\usepackage{tikzpagenodes}
\titleformat{name=\chapter}[display]
  {\normalfont\huge}
  {}
  {20pt}
  {%
  \begin{tikzpicture}[remember picture,overlay]
    \coordinate (SE) at ([xshift=-50]current page.south east);
    \node[top color=green, bottom color=blue, 
        fit=(current page.north east)(SE)](titlerect){};
    \node[font=\fontsize{30}{36}\sffamily\selectfont] 
        at (current page text area.north){#1};
    \node[xshift=-25, font=\fontsize{80}{86}\bfseries\color{blue}]
        at (current page text area.north east-|titlerect.west)
        {\thechapter};
    \node[xshift=25, 
          font=\fontsize{30}{36}\scshape\selectfont\color{white}]
       at (current page.center-|titlerect.west) {\rotatebox{90}{#1}};
 \end{tikzpicture}%
}
\titleformat{name=\chapter,numberless}[display]
  {\normalfont\huge}
  {}
  {20pt}
  {%
  \begin{tikzpicture}[remember picture,overlay]
    \node[top color=green, bottom color=blue, 
        fit=(current page.north east)(SE)](titlerect){};
    \node[font=\fontsize{30}{36}\sffamily\selectfont] 
       at (current page text area.north){#1};
    \node[xshift=25, 
       font=\fontsize{30}{36}\scshape\selectfont\color{white}]
       at (current page.center-|titlerect.west) {\rotatebox{90}{#1}};
  \end{tikzpicture}%
}
\titlespacing*{\chapter}{0pt}{-20pt}{60pt}
\titleformat{\section}[display]
{\bfseries\normalsize}
{}
{5pt}
{\color{blue}\thesection~~ #1}
\titleformat{name=\section, numberless}[display]
{\bfseries\normalsize}
{}
{5pt}
{#1}

\titleformat{\subsection}[display]
{\itshape\normalsize}
{}
{5pt}
{\color{blue}\thesection~~ #1}

\fancypagestyle{plain}
{
   \fancyhf{}
   \fancyfoot{}
   \renewcommand{\headrulewidth}{0 mm}
}

\title{Title}
\author{Author}
\date{}
\begin{document}

\chapter{Random}

\section{Lipsum}

\lipsum[2]

\subsection{Subsection}

\lipsum[1]

\chapter*{Random}

\section{Lipsum}

\lipsum[2]

\subsection{Subsection}

\lipsum[1]

\end{document}

관련 정보