Qualcuno potrebbe riparare questo codice tikz?
Aug 27 2020
\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}
Risposte
8 Noname Aug 27 2020 at 08:27
Sembra che il nodo titlerecdovrebbe essere il rettangolo creato con il \fillcomando iniziale . Possiamo sostituirlo con un nodo utilizzando la libreria tikz fit ei nodi della pagina da tikzpagenodes per risolvere il problema.
Il codice seguente ora viene compilato senza errori per fornire l'output desiderato. Naturalmente, inizialmente, il duro lavoro è stato svolto nel posthttps://tex.stackexchange.com/a/374634/134144. Detto questo, ho razionalizzato il codice, fatto un uso migliore di tikzpagenodes , reso coerenti le versioni numerate e innumerevoli e ho tolto del codice che ritenevo non necessario. Fatto ciò, il codice produce:
Ecco il codice aggiornato:
\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}