
\newcommand{\Chapter}[1]{{\let\cleardoublepage\relax\chapter{#1}}}
funciona bem. Como posso fazer o mesmo para a versão estrelada (*) dentro de um arquivo .cls?
(Poderia ser interessante para outros: há alguma diferença em defini-lo no documento principal?)
Responder1
Você indicou que deseja redefinir \chapter
e \chapter*
. Para isso sugiro dar uma olhada em um nível mais profundo em sua aula e não é uma tarefa para iniciantes.
De qualquer forma, você poderia criar uma macro que incorporasse uma versão com estrela e usasse o comando \chapter
escrito em sua classe.
Uma maneira muito básica é a seguinte:
\documentclass{scrbook}
\newcommand{\MyChapter}{%
\let\cleardoublepage\empty
\clearpage
\chapter
}
\begin{document}
\tableofcontents
\MyChapter{Introduction}
some text
\MyChapter[My Introduction]{Introduction}
some text
\MyChapter*{Introduction}
some text
\end{document}
O comando \MyChapter
apaga \cleardoublepage
, executa \clearpage
e \chapter
. Ele terá todos os \chapter
recursos do seu antigo, porque \chapter
é executado por último e leva como argumento tudo o que você colocar depois do \MyChapter
.
Contudo este últimoNÃO é uma boa prática, uma vez que o comando \cleardoublepage
se torna inútil e apagar comandos de látex muitas vezes pode causar mau funcionamento.
IMHO, uma prática "decente" poderia ser salvá-la \cleardoublepage
e restaurá-la mais tarde:
\documentclass{scrbook}
\newcommand{\ResCdp}{%
\let\cleardoublepage\cdp
}
\newcommand{\MyChapter}{%
\let\cdp\cleardoublepage
\let\cleardoublepage\empty
\clearpage
\chapter
}
\begin{document}
\tableofcontents
\MyChapter{Introduction}\ResCdp
some text
\MyChapter[My Introduction]{Introduction}\ResCdp
some text
\cleardoublepage
\MyChapter*{Introduction}\ResCdp
some text
\end{document}
que é um pouco difícil de ler/escrever, mas funciona com segurança.
Evitar usar isso \ResCdp
sem apagar \cleardoublepage
e manter todos \chapter
os recursos exigiria muito mais esforço.
Responder2
Você indicou que usa a scrbook
classe document. Se você quiser redefinir \chapter
(and \chapter*
) para executar \clearpage
em vez de \cleardoublepage
, sugiro que você carregue o etoolbox
pacote e use sua \patchcmd
macro para modificar a chapter
macro:
\usepackage{etoolbox}
\patchcmd{\chapter}{\cleardoublepage}{\clearpage}{}{}
Responder3
No caso de scrbook
usar a opção openany
e inserir \cleardoublepage
s manualmente.
Ainda não é exatamente a resposta para a pergunta, decidi usar esse método.