Eliminare numero di pagina delle Parti nell’indice

  • Creatore
    Topic
  • #53348
    Up
    0
    Down
    ::


    Salve

    Sto scrivendo la mia tesi di dottorato, che è composta da tre parti. Avevo intenzione di avere la pagina che introduce ogni parte senza il numero di pagina.

    Per questo motivo ho modificato il comando \part (che normalmente mette il numero) nel preambolo come segue:

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    \makeatletter
    \renewcommand\part{%
    \if@openright
    \cleardoublepage
    \else
    \clearpage
    \fi
    \thispagestyle{empty}%
    \if@twocolumn
    \onecolumn
    \@tempswatrue
    \else
    \@tempswafalse
    \fi
    \null\vskip 50\p@
    \secdef\@part\@spart}
    \def\@part[#1]#2{%
    \ifnum \c@secnumdepth >-2\relax
    \refstepcounter{part}%
    \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
    \else
    \addcontentsline{toc}{part}{#1}%
    \fi
    \markboth{}{}%
    {\centering
    \rule{\textwidth}{0.1 mm}
    \interlinepenalty \@M
    \normalfont
    \ifnum \c@secnumdepth >-2\relax
    \Huge\bfseries \partname\nobreakspace\thepart
    \par
    \vskip 20\p@
    \fi
    \huge \bfseries #2\par
    \rule{\textwidth}{0.1 mm}}%
    \@endpart}
    \def\@endpart{\vskip 40\p@}
    \makeatother
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    A questo punto vorrei che anche nell’indice le parti appaiano con il loro numero e titolo , ma senza il numero di pagina.

    Capisco che occorre modificare la parte:

    \refstepcounter{part}%
    \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
    \else
    \addcontentsline{toc}{part}{#1}%

    ma non riesco ad ottenere il risultato sperato.

    Aggiungo codice minimo compilabile:

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    \documentclass[b5paper,11pt,fleqn]{book}

    % Load Packages
    \usepackage{emptypage}
    \usepackage{indentfirst}
    \usepackage{fancyhdr}
    \usepackage[Sonny]{fncychap}
    \makeindex
    \usepackage{hyperref}

    % Scambiare i margini delle pagine
    \let\tmpmarg=\oddsidemargin
    \let\oddsidemargin=\evensidemargin
    \let\evensidemargin=\tmpmarg

    % Page layout
    \pagestyle{fancy}
    \newcommand{\helv}{%
    \fontfamily{phv}\fontseries{b}\fontsize{9}{11}\selectfont}
    \renewcommand{\chaptermark}[1]{\markboth{#1}{}}
    \renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
    \fancyhf{}
    \cfoot{\thepage}
    \fancyhead[RE]{\helv\bfseries\footnotesize\nouppercase{\leftmark}}
    \fancyhead[LO]{\helv\bfseries\footnotesize\nouppercase{\rightmark}}

    % Modifica la sezione Part per eliminare numero di pagina
    \makeatletter
    \renewcommand\part{%
    \if@openright
    \cleardoublepage
    \else
    \clearpage
    \fi
    \thispagestyle{empty}%
    \if@twocolumn
    \onecolumn
    \@tempswatrue
    \else
    \@tempswafalse
    \fi
    \null\vskip 50\p@
    \secdef\@part\@spart}
    \def\@part[#1]#2{%
    \ifnum \c@secnumdepth >-2\relax
    \refstepcounter{part}%
    \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
    \else
    \addcontentsline{toc}{part}{#1}%
    \fi
    \markboth{}{}%
    {\centering
    \rule{\textwidth}{0.1 mm}
    \interlinepenalty \@M
    \normalfont
    \ifnum \c@secnumdepth >-2\relax
    \Huge\bfseries \partname\nobreakspace\thepart
    \par
    \vskip 20\p@
    \fi
    \huge \bfseries #2\par
    \rule{\textwidth}{0.1 mm}}%
    \@endpart}
    \def\@endpart{\vskip 40\p@}
    \makeatother

    \begin{document}
    \frontmatter

    % Inseriamo l’indice
    \tableofcontents
    \pagestyle{fancy}
    \markboth{\MakeUppercase{Contents}}%
    {\MakeUppercase{}}

    \mainmatter
    % Corpo centrale della Tesi (Introduzione e Capitoli)
    \part{titolo parte}

    \chapter{Introduction and background}
    \label{cap1}

    \section{Overview and problem statement}
    \label{cap1:Sott1}

    \subsection{The challenge of water scarcity}
    \label{cap1:Sott1:sub1}

    The water is

    \end{document}
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    Grazie in anticipo

Visualizzazione 3 filoni di risposte
  • Autore
    Risposte
    • #53349
      Up
      0
      Down
      ::

      Salve

      Sto scrivendo la mia tesi di dottorato, che è composta da tre parti. Avevo intenzione di avere la pagina che introduce ogni parte senza il numero di pagina.

      Per questo motivo ho modificato il comando \part (che normalmente mette il numero) nel preambolo come segue:

      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      \makeatletter
      \renewcommand\part{%
      \if@openright
      \cleardoublepage
      \else
      \clearpage
      \fi
      \thispagestyle{empty}%
      \if@twocolumn
      \onecolumn
      \@tempswatrue
      \else
      \@tempswafalse
      \fi
      \null\vskip 50\p@
      \secdef\@part\@spart}
      \def\@part[#1]#2{%
      \ifnum \c@secnumdepth >-2\relax
      \refstepcounter{part}%
      \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
      \else
      \addcontentsline{toc}{part}{#1}%
      \fi
      \markboth{}{}%
      {\centering
      \rule{\textwidth}{0.1 mm}
      \interlinepenalty \@M
      \normalfont
      \ifnum \c@secnumdepth >-2\relax
      \Huge\bfseries \partname\nobreakspace\thepart
      \par
      \vskip 20\p@
      \fi
      \huge \bfseries #2\par
      \rule{\textwidth}{0.1 mm}}%
      \@endpart}
      \def\@endpart{\vskip 40\p@}
      \makeatother
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

      A questo punto vorrei che anche nell’indice le parti appaiano con il loro numero e titolo , ma senza il numero di pagina.

      Capisco che occorre modificare la parte:

      \refstepcounter{part}%
      \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
      \else
      \addcontentsline{toc}{part}{#1}%

      ma non riesco ad ottenere il risultato sperato.

      Aggiungo codice minimo compilabile:

      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      \documentclass[b5paper,11pt,fleqn]{book}

      % Load Packages
      \usepackage{emptypage}
      \usepackage{indentfirst}
      \usepackage{fancyhdr}
      \usepackage[Sonny]{fncychap}
      \makeindex
      \usepackage{hyperref}

      % Scambiare i margini delle pagine
      \let\tmpmarg=\oddsidemargin
      \let\oddsidemargin=\evensidemargin
      \let\evensidemargin=\tmpmarg

      % Page layout
      \pagestyle{fancy}
      \newcommand{\helv}{%
      \fontfamily{phv}\fontseries{b}\fontsize{9}{11}\selectfont}
      \renewcommand{\chaptermark}[1]{\markboth{#1}{}}
      \renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
      \fancyhf{}
      \cfoot{\thepage}
      \fancyhead[RE]{\helv\bfseries\footnotesize\nouppercase{\leftmark}}
      \fancyhead[LO]{\helv\bfseries\footnotesize\nouppercase{\rightmark}}

      % Modifica la sezione Part per eliminare numero di pagina
      \makeatletter
      \renewcommand\part{%
      \if@openright
      \cleardoublepage
      \else
      \clearpage
      \fi
      \thispagestyle{empty}%
      \if@twocolumn
      \onecolumn
      \@tempswatrue
      \else
      \@tempswafalse
      \fi
      \null\vskip 50\p@
      \secdef\@part\@spart}
      \def\@part[#1]#2{%
      \ifnum \c@secnumdepth >-2\relax
      \refstepcounter{part}%
      \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
      \else
      \addcontentsline{toc}{part}{#1}%
      \fi
      \markboth{}{}%
      {\centering
      \rule{\textwidth}{0.1 mm}
      \interlinepenalty \@M
      \normalfont
      \ifnum \c@secnumdepth >-2\relax
      \Huge\bfseries \partname\nobreakspace\thepart
      \par
      \vskip 20\p@
      \fi
      \huge \bfseries #2\par
      \rule{\textwidth}{0.1 mm}}%
      \@endpart}
      \def\@endpart{\vskip 40\p@}
      \makeatother

      \begin{document}
      \frontmatter

      % Inseriamo l’indice
      \tableofcontents
      \pagestyle{fancy}
      \markboth{\MakeUppercase{Contents}}%
      {\MakeUppercase{}}

      \mainmatter
      % Corpo centrale della Tesi (Introduzione e Capitoli)
      \part{titolo parte}

      \chapter{Introduction and background}
      \label{cap1}

      \section{Overview and problem statement}
      \label{cap1:Sott1}

      \subsection{The challenge of water scarcity}
      \label{cap1:Sott1:sub1}

      The water is

      \end{document}
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

      Grazie in anticipo

      Le modifiche che chiedi si ottengono un pochino più facilmente 8)
      `\usepackage{etoolbox}
      \patchcmd{\part}{plain}{empty}{}{}
      \makeatletter
      \let\origl@part\l@part
      \renewcommand{\l@part}[2]{\origl@part{#1}{}}
      \makeatother`
      Sconsiglio vivamente di
      (1) usare quello stile di capitoli che non c’entra nulla con il resto dell’impostazione grafica;
      (2) usare Helvetica, che non c’entra nulla con il resto dell’impostazione grafica, per le testatine;
      (3) scambiare in quel modo perverso i margini; il margine più ampio deve essere quello esterno, checché tu ne pensi. 🙂

      Ciao
      Enrico

    • #53350
      Up
      0
      Down
      ::


      Ciao.
      Il codice di Enrico funziona anche con memoir?

      A me funziona anche

      `\aliaspagestyle{part}{empty}`

      per non avere il numero di pagina nelle pagine delle \part nel corpo del documento.

      Ciao
      Tommaso

    • #53351
      Up
      0
      Down
      ::

      Ciao.
      Il codice di Enrico funziona anche con memoir?

      A me funziona anche
      `\aliaspagestyle{part}{empty}`
      per non avere il numero di pagina nelle pagine delle \part nel corpo del documento.

      Il codice è per la classe book. In memoir ci sono funzioni molto più potenti, come hai appunto osservato.

      Ciao
      Enrico

    • #53352
      Up
      0
      Down
      ::


      Grazie per la pronta risposta, ora il risultato è proprio come lo volevo.

      Il codice che avevo scritto, effettivamente un pò articolato, l’avevo adattato da una risposta in un’altra parte del forum, forse per questo non appariva molto elegante.

      Per quanto riguarda i bordi, la scelta di un bordo interno ampia è semplicemente legata ad un tipo di rilegatura (impostami) che ingombrerà parecchio. Resta il fatto che non avevo mai notato questa cosa, ed avevo calcolato di ottenere due bordi uguali alla fine.

      Grazie ancora, Carmelo

Visualizzazione 3 filoni di risposte
  • Devi essere connesso per rispondere a questo topic.

Go to top