Re: Occultare un comando con parametri

#8773
Up
0
Down
::


Grazie ad entrambi per l’interessamento al mio problema 🙂

Limitandoci alle classi standard, \chapter può comparire in tre modi diversi:
`\chapter{Titolo}
\chapter[Titolo breve]{Titolo lungo}
\chapter*{Titolo}`

Non sono stato molto preciso in merito, è vero. È probabile che in generale nel mio documento possano comparire tutte e tre i modi che mi hai proposto.

Se però usi qualche volta \chapter*, devi fare qualcosa di più complicato:
`\makeatletter
\renewcommand{\@schapter}[1]{}
\renewcommand{\@chapter}[2][]{}
\makeatletter`
(e nessuna delle ridefinizioni precedenti)

Ho provato a mettere in pratica quanto suggerito in un ambiente minimale (giustamente l’indice, non avendo voci da segnalare, non compare affatto):
`\documentclass{book}

\makeatletter
\renewcommand{\@schapter}[1]{}
\renewcommand{\@chapter}[2][]{}
\makeatletter

\begin{document}

\tableofcontents

\chapter[Titolo corto]{Titolo luuuuuuuungo}

Uno, uno, uno\dots

\chapter*{Titolo senza numero}

Due, due, due\dots

\end{document}`
Direi che il problema è risolto quasi del tutto; purtroppo ci sono ancora dei \clearpage (almeno credo che siano questi, dando una sbirciata in book.cls) di troppo. In pratica, per come la vedo io, vorrei ridefinire \chapter (in tutte e tre le forme) in modo tale che il file prodotto in output a partire dall’esempio che ho appena scritto fosse composto da una pagina sola, con i testi “Uno, uno, uno\dots” e “Due, due, due\dots” separati (come da una riga bianca (\par) ideale).

Vorrei quindi che l’output fosse identico a quello del file seguente (lasciamo stare dove va a finire il numero di pagina, e anche se l’internlinea tra le due rige è un po’ più grande, va bene lo stesso):
`\documentclass{book}

\begin{document}

Uno, uno, uno\dots

Due, due, due\dots

\end{document}`
Riusciamo a fare anche questo? 😉

Ah! Prima che tu lo domandi, non funziona allo stesso modo per \section.

Quasi! 😉 Mi sono appena reso conto però che mi potrebbe servire “azzerare” anche \part (ooops…)

Prendendo esempio da quanto suggeritomi, ho provato a fare da solo (nel mio documento inserirei sia l’azzeramento di \chapter che quello di \part; nel codice seguente, però, mi occupo solo di \part per affrontare i due casi separatamente):
`\documentclass{book}

\makeatletter
\renewcommand{\@spart}[1]{}
\renewcommand{\@part}[2][]{}
\makeatletter

\begin{document}

\tableofcontents

\part[Titolo corto]{Titolo luuuuuuuungo}

Uno, uno, uno\dots

\part*{Titolo senza numero}

Due, due, due\dots

\end{document}`
Qui i problemi sono due:

  1. anche qui ci sono dei \clearpage di troppo (ma se si può risolvere nel caso di \chapter, nell’esempio sopra, mi sa che la soluzione per \part non sarà troppo differente…);

  2. l’indice (o meglio, il titolo dell’indice) stavolta compare (anche se, giustamente, privo di voci). Se possibile, non lo vorrei neanche qui.

Questo è tutto! Grazie per la collaborazione e buona notte! 🙂

Go to top