我已经更改了\chapter
部分定义,但在本书的某些章节中我不想应用它。例如,在下面的代码中我不想应用它\EjerPro
。我该怎么做?
\documentclass[openany]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[spanish,es-lcroman]{babel}
\usepackage[hmargin=2cm,tmargin=4cm,bmargin=2.5cm,centering]{geometry}
\usepackage[demo]{graphicx}
\usepackage{kpfonts}
\usepackage[pagestyles,explicit]{titlesec}
\usepackage{xcolor}
\usepackage{polynom}
\usepackage{enumitem}
\usepackage[absolute]{textpos}
\usepackage{lipsum}
\definecolor{seccolor}{RGB}{255,204,102}% para las secciones
\definecolor{ssseccolor}{RGB}{255,233,190}% para las subsubsecciones
\definecolor{probcolor}{RGB}{159,209,139}% para los problemas
\definecolor{rptacolor}{RGB}{214,234,204}% para las respuestas
\newcommand\EjerPro{%
\chapter*{\colorbox{probcolor}{\parbox{\dimexpr\linewidth-6pt}{\hfil \LARGE\strut EJERCICIOS Y PROBLEMAS\hfil}}}
}
\usepackage{tikz}
\usepackage{kpfonts}
\usepackage[explicit]{titlesec}
\newcommand*\chapterlabel{}
\titleformat{\chapter}
{\gdef\chapterlabel{}
\normalfont\sffamily\Huge\bfseries\scshape}
{\gdef\chapterlabel{\thechapter\ }}{0pt}
{\begin{tikzpicture}[remember picture,overlay]
\node[yshift=-3cm] at (current page.north west)
{\begin{tikzpicture}[remember picture, overlay]
\draw[fill=seccolor] (0,0) %rectangle
(\paperwidth,3cm);
\node[anchor=east,xshift=.9\paperwidth,rectangle,
inner sep=11pt,
fill=seccolor]
{\color{black}\chapterlabel#1};
\end{tikzpicture}
};
\end{tikzpicture}
}
\titlespacing*{\chapter}{0pt}{50pt}{-60pt}
\begin{document}
\chapter{Expresiones algebraicas}
\lipsum[1-5]
\EjerPro
\lipsum[1-5]
\end{document}
答案1
一种可能性是本地应用标准设置(可在章节9.2. 标准类将 titlesec 文档的当前目录添加到所需章节;这可以直接完成,也可以使用命令完成,如下例所示:
\documentclass{book}
\usepackage[spanish,es-lcroman]{babel}
\usepackage[explicit]{titlesec}
\usepackage{tikz}
\usepackage{lipsum}
\definecolor{seccolor}{RGB}{255,204,102}% para las secciones
\definecolor{probcolor}{RGB}{159,209,139}% para los problemas
% Para capítulos con formato normal
\newcommand\regularchapter{%
\titleformat{\chapter}[display]
{\normalfont\huge\bfseries}{\chaptertitlename\ \thechapter}
{20pt}{\Huge##1}
\titlespacing*{\chapter}
{0pt}{50pt}{40pt}
}
% Para capítulos con formato modificado
\newcommand*\chapterlabel{}
\titleformat{\chapter}
{\gdef\chapterlabel{}
\normalfont\sffamily\Huge\bfseries\scshape}
{\gdef\chapterlabel{\thechapter\ }}{0pt}
{\begin{tikzpicture}[remember picture,overlay]
\node[yshift=-3cm] at (current page.north west)
{\begin{tikzpicture}[remember picture, overlay]
\draw[fill=seccolor] (0,0) %rectangle
(\paperwidth,3cm);
\node[anchor=east,xshift=.9\paperwidth,rectangle,
inner sep=11pt,
fill=seccolor]
{\color{black}\chapterlabel#1};
\end{tikzpicture}
};
\end{tikzpicture}
}
\titlespacing*{\chapter}{0pt}{50pt}{-60pt}
\newcommand\EjerPro{%
\begingroup
\regularchapter
\chapter*{\colorbox{probcolor}{\parbox{\dimexpr\linewidth-6pt}{\hfil \LARGE\strut EJERCICIOS Y PROBLEMAS\hfil}}}
\endgroup
}
\begin{document}
\chapter{A Modified Numbered Chapter}
\EjerPro
\lipsum[3]
\chapter{Another Modified Numbered Chapter}
\end{document}
答案2
在您描述的情况下,如果有两个不同版本的章节,我可能会定义一个新命令\mychapter
或\Chapter
执行您的\titleformat
调用所做的事情,而保留原始命令\chapter
。
当我遇到类似问题时,我这样做:
\newcommand{\mychapter}[1]{
\chapterimage{#1}
\chapter*{#1}
\stepcounter{chapter}
\addcontentsline{toc}{chapter}{#1}
\chaptermark{#1}
\label{#1}}