Personnaliser la page d'une nouvelle partie en mode book

Tout ce qui concerne le langage TeX/LaTeX et ses variantes. Ce langage est utilisable sur le forum via les balises tex.
[participation réservée aux membres inscrits]
Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
Einstein

Personnaliser la page d'une nouvelle partie en mode book

Message non lu par Einstein »

Bonjour,

J'utilise LaTex en mode book, et ai créé plusieurs parties.
Lorsque l'on fait une nouvelle partie (\part{Titre}), une page exprès se crée. J'aimerais les personnaliser avec une citation et une image pour chacune, serait-ce possible ?

Merci de vos conseils.
pg
Modérateur spécialisé
Modérateur spécialisé
Messages : 2606
Inscription : vendredi 15 juin 2007, 00:31

Re: personnaliser la page d'une nouvelle partie en mode book

Message non lu par pg »

C'est possible en modifiant la commande \part. Par exemple :

Code : Tout sélectionner

\documentclass{book}

\usepackage[latin1]{inputenc}
\usepackage[francais]{babel}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

\usepackage[a4paper]{geometry}

\usepackage{graphicx}

\makeatletter
\newcommand{\partimage}[1]{\gdef\@partimage{#1}}
\newcommand{\partcitation}[1]{\gdef\@partcitation{#1}}
\renewcommand\part{%
  \if@openright
    \cleardoublepage
  \else
    \clearpage
  \fi
  \thispagestyle{plain}%
  \if@twocolumn
    \onecolumn
    \@tempswatrue
  \else
    \@tempswafalse
  \fi
  \null\vfill
  \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
     \interlinepenalty \@M
     \includegraphics{\@partimage}%
     \vskip 20\p@
     \normalfont
     \ifnum \c@secnumdepth >-2\relax
       \huge\bfseries \partname\nobreakspace\thepart
       \par
       \vskip 20\p@
     \fi
     \Huge \bfseries #2\par}%
    \@endpart}
\def\@spart#1{%
    {\centering
     \interlinepenalty \@M
     \includegraphics{\@partimage}%
     \vskip 20\p@
     \normalfont
     \Huge \bfseries #1\par}%
    \@endpart}
\def\@endpart{\vfill
              \begin{center}
              \small\@partcitation
              \end{center}
              \newpage
              \if@twoside
               \if@openright
                \null
                \thispagestyle{empty}%
                \newpage
               \fi
              \fi
              \if@tempswa
                \twocolumn
              \fi}
\makeatother

\begin{document}

\partimage{portrait_peano}
\partcitation{\og Questions that pertain to the foundations of mathematics, although treated by many in recent times, still lack a satisfactory solution. Ambiguity of language is philosophy's main source of problems. That is why it is of the utmost importance to examine attentively the very words we use.\fg{}}
\part*{Introduction}

\partimage{portrait_fermat}
\partcitation{\og J'ai trouvé une merveilleuse démonstration de cette proposition, mais la marge est trop étroite pour la contenir.\fg{}}
\part{Théorème de Fermat}

\end{document}
Résultat :
part_with_image.pdf
(245.6 Kio) Téléchargé 822 fois
Einstein

Re: Personnaliser la page d'une nouvelle partie en mode book

Message non lu par Einstein »

merci bien.

Est-ce que c'est possible de laisser le numérotation des pages absentes lors de nouvelles parties ?
pg
Modérateur spécialisé
Modérateur spécialisé
Messages : 2606
Inscription : vendredi 15 juin 2007, 00:31

Re: Personnaliser la page d'une nouvelle partie en mode book

Message non lu par pg »

Je ne suis pas sûr d'avoir compris ce que tu veux, mais pour effacer les numéros de pages sur la page d'une partie, il faut remplacer le \thispagestyle{plain} en \thispagestyle{empty} et pour faire apparaître le numéro de page sur la page blanche après la partie, il faut changer \thispagestyle{empty} en \thispagestyle{plain}
evariste_G
Utilisateur chevronné
Utilisateur chevronné
Messages : 1472
Inscription : vendredi 19 décembre 2008, 19:13
Statut actuel : Enseignant
Localisation : Bordeaux

Re: Personnaliser la page d'une nouvelle partie en mode book

Message non lu par evariste_G »

Bonjour. Je reprends cette discussion car je voulais moi aussi changer le style des titres des parties ... Mais je n'arrive pas à adapter le code fourni ci-dessus à ce que je veux ... tout simplement parce que je ne comprends rien aux commandes utilisées ... :?

Moi, je voulais juste inclure un code PGF à la place de l'image ... où il y aurait le titre de la partie sans le numéro. Le code que je veux mettre est :

Code : Tout sélectionner

\begin{flushright}
\begin{tikzpicture}
\node[scale=3,scope fading=south,MidnightBlue,left] at (0,0) {Le titre};
\end{tikzpicture}
\end{flushright}

\begin{center}
\begin{tikzpicture}[rotate=90]
\foreach \t in {20,25,...,350}
{
\pgfmathparse{(-50*cos(\t))/\t} \let \Mx \pgfmathresult
\pgfmathparse{(550*sin(\t))/\t} \let \My \pgfmathresult
\pgfmathparse{round(10*rnd)} \let \A \pgfmathresult
\pgfmathparse{100-10*\t/36} \let \C \pgfmathresult
\pgfmathparse{\C/100} \let \S \pgfmathresult
\pgfmathsetlength{0}{\A}
\node[scale=\S, color=MidnightBlue!\C] at (\Mx,\My) {\A};
%\node at (\Mx,\My) {\A};
}
\end{tikzpicture}
Est-ce que vous pourriez m'aider svp ? :D
Mathématiques, LaTeX et Python : https://www.mathweb.fr
Cours particuliers de maths par webcam: https://courspasquet.fr
pg
Modérateur spécialisé
Modérateur spécialisé
Messages : 2606
Inscription : vendredi 15 juin 2007, 00:31

Re: Personnaliser la page d'une nouvelle partie en mode book

Message non lu par pg »

Comme ça ?

Code : Tout sélectionner

\documentclass{book}

\usepackage[latin1]{inputenc}
\usepackage[francais]{babel}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

\usepackage[a4paper]{geometry}

\usepackage{tikz}
\usetikzlibrary{fadings}

\makeatletter
\newcommand{\parttikzimage}[1]{\gdef\@parttikzimage{#1}}
\newcommand{\parttikztitle}[1]{\gdef\@parttikztitle##1{#1}}
\renewcommand\part{%
  \if@openright
    \cleardoublepage
  \else
    \clearpage
  \fi
  \thispagestyle{empty}%
  \if@twocolumn
    \onecolumn
    \@tempswatrue
  \else
    \@tempswafalse
  \fi
  \null\vfill
  \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{}{}%
    \@parttikztitle{#1}
    \@parttikzimage
    \@endpart}
\def\@spart#1{%
    \@parttikztitle{#1}
    \@parttikzimage
    \@endpart}
\def\@endpart{\vfill
              \newpage
              \if@twoside
               \if@openright
                \null
                \thispagestyle{empty}%
                \newpage
               \fi
              \fi
              \if@tempswa
                \twocolumn
              \fi}
\makeatother

\parttikztitle{\begin{flushright}
     \begin{tikzpicture}
     \node[scale=3,scope fading=south,blue,left] at (0,0) {#1};
     \end{tikzpicture}
     \end{flushright}}
\parttikzimage{\begin{center}\begin{tikzpicture}[rotate=90]
\foreach \t in {20,25,...,350}
{
\pgfmathparse{(-50*cos(\t))/\t} \let \Mx \pgfmathresult
\pgfmathparse{(550*sin(\t))/\t} \let \My \pgfmathresult
\pgfmathparse{round(10*rnd)} \let \A \pgfmathresult
\pgfmathparse{100-10*\t/36} \let \C \pgfmathresult
\pgfmathparse{\C/100} \let \S \pgfmathresult
\pgfmathsetlength{0}{\A}
\node[scale=\S, color=blue!\C] at (\Mx,\My) {\A};
%\node at (\Mx,\My) {\A};
}\end{tikzpicture}\end{center}}

\begin{document}

\part*{Introduction}


\part{Théorème de Fermat}

\end{document}
evariste_G
Utilisateur chevronné
Utilisateur chevronné
Messages : 1472
Inscription : vendredi 19 décembre 2008, 19:13
Statut actuel : Enseignant
Localisation : Bordeaux

Re: Personnaliser la page d'une nouvelle partie en mode book

Message non lu par evariste_G »

Oui, c'est presque cela :D Comment faire pour le mettre verticalement au milieu ?

Quelle est la différence entre \part* et \part ?
Mathématiques, LaTeX et Python : https://www.mathweb.fr
Cours particuliers de maths par webcam: https://courspasquet.fr
pg
Modérateur spécialisé
Modérateur spécialisé
Messages : 2606
Inscription : vendredi 15 juin 2007, 00:31

Re: Personnaliser la page d'une nouvelle partie en mode book

Message non lu par pg »

J'ai édité mon message pour rajouter un \vfill où il faut.

\part* est une partie non numérotée qui n'apparaît pas dans la table des matières, tandis que \part est numérotée et apparaît dans la table des matières. Comme tu as demandé qu'il n'y ait pas de numéro, à l'affichage ce sera la même chose, mais pas dans la table des matières (dans l'état actuel, le numéro apparaîtra quand même dans la table des matières ; si ce n'est pas ce que tu veux, remplace le \addcontentsline{toc}{part}{\thepart\hspace{1em}#1} en \addcontentsline{toc}{part}{#1})
evariste_G
Utilisateur chevronné
Utilisateur chevronné
Messages : 1472
Inscription : vendredi 19 décembre 2008, 19:13
Statut actuel : Enseignant
Localisation : Bordeaux

Re: Personnaliser la page d'une nouvelle partie en mode book

Message non lu par evariste_G »

Ok merci. Donc la commande \vfill permet de centrer a priori ? Je retiens. Merci.
Mathématiques, LaTeX et Python : https://www.mathweb.fr
Cours particuliers de maths par webcam: https://courspasquet.fr
marco56
Utilisateur chevronné
Utilisateur chevronné
Messages : 1058
Inscription : jeudi 25 novembre 2010, 22:10

Re: Personnaliser la page d'une nouvelle partie en mode book

Message non lu par marco56 »

Bonjour,
Je débute un peu en latex (seulement 1 an et demi de pratique) et je souhaiterais personnaliser mes parties.
Les commandes ci-dessus m'ont été bien utiles mais hélas incompréhensibles.
Le code que je voudrais insérer dans ma partie (afin d'avoir des caractère très spéciaux) est, avec ces commandes :

Code : Tout sélectionner

\newcounter{pr}
\setcounter{pr}{1}

\newcommand{\titphysa}[1]{
\centering{
\scalebox{2}{

  \fontfamily{ptm}\selectfont
  \pscharpath[fillstyle=solid,linecolor=red,fillcolor=lightgray,linewidth=1pt]
             {\fontsize{1in}{1in}\selectfont \begin{Huge} \textbf{#1}\end{Huge}}

}
}
}
\newcommand{\titphysb}[1]{
\centering{ 
\scalebox{2}{

  \fontfamily{ptm}\selectfont
  \pscharpath[fillstyle=solid,linecolor=blue,fillcolor=lightgray,linewidth=1pt]
             {\fontsize{1in}{1in}\selectfont \begin{Huge} \textbf{#1}\end{Huge}}

}

}

}
Je souhaiterais faire ensuite quelque chose du style :

Code : Tout sélectionner

\newcommand{\part}[1]{\vspace{3cm} \newpage \titphysa{
Partie \thepr \refstepcounter{pr}\label{#1}}
\newline
\vspace{5cm}

\titphysb{{#1}} 
%\newpage
}
J'ai l'impression d'être complètement à côté de la plaque : est-ce que cela vaut le coup que je persévère ? Je précise que ces lignes de commande marchent mais pas en renewcommand{part}.
A bientôt pour ceux qui veulent se pencher sur mon problème. Je peux fournir, s'il faut un ecm...
Je précise que mes parties n'ont pas besoin spécialement d'être numérotées et que mon compteur pr peut shunter si besoin.
@+
Dernière modification par guiguiche le jeudi 25 novembre 2010, 22:32, modifié 1 fois.
Raison : balises [code]
marco56
Utilisateur chevronné
Utilisateur chevronné
Messages : 1058
Inscription : jeudi 25 novembre 2010, 22:10

Re: Personnaliser la page d'une nouvelle partie en mode book

Message non lu par marco56 »

Oups !
A part quelques soucis de mise en page, je me suis répondu tout seul, j'étais très prés du but mais un peu fatigué sans doute.
Le problème est résolu !!!
Si besoin, je peux fournir mon code mais il est plus que largement inspiré de celui ci-dessus.
marco56
Utilisateur chevronné
Utilisateur chevronné
Messages : 1058
Inscription : jeudi 25 novembre 2010, 22:10

Re: Personnaliser la page d'une nouvelle partie en mode book

Message non lu par marco56 »

Bonjour encore !
Désolé, mais là je plante !
Mes parties dans la table des matières s'arrêtent à la partie 4 alors que j'en ai d'autres après. J'ai beau compiler et recompiler, je ne vois pas. Là, j'ai vraiment besoin d'aide, si quelqu'un sait faire...
Voici mon code :

\makeatletter

% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
%\newcommand{\partimage}[1]{\gdef\@partimage{#1}}
%\newcommand{\partcitation}[1]{\gdef\@partcitation{#1}}
\newcounter{pr}
\setcounter{pr}{1}

\renewcommand\part{
\if@openright
\cleardoublepage
\else
\clearpage
\fi
\thispagestyle{plain}%
\if@twocolumn
\onecolumn
\@tempswatrue
\else
\@tempswafalse
\fi
\null\vfill
\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
\interlinepenalty \@M
\vskip 20\p@
\normalfont
\ifnum \c@secnumdepth >-2\relax
\huge\bfseries \partname\nobreakspace\thepart
\par
\vskip 20\p@
\fi
\Huge \bfseries #2\par}%
\@endpart}
\def\@spart#1{%
{\centering
\interlinepenalty \@M
\vskip 20\p@
\normalfont
\Huge \bfseries %\vspace{2cm}
\titphysa{
Partie \thepr \refstepcounter{pr}\label{#1}} \\ \vspace{5cm}
\titphysb{#1} \par}%
\@endpart}
\def\@endpart{\vfill
\if@twoside
\if@openright
\null
\thispagestyle{empty}%
\fi
\fi
\if@tempswa
\twocolumn
\fi}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% définition de l'entête des chapitres
\def\@makechapterhead#1{%
\vspace*{-20\p@}%
{\raggedright \normalfont\sffamily%
\ifnum \c@secnumdepth >\m@ne%
\if@mainmatter%
\raggedleft\normalfont\fontsize{50}{20}\bfseries\selectfont%
\psframebox[linearc=0.2,linewidth=2pt,linecolor=violet,cornersize=absolute,framesep=15pt]{\textcolor{blue}{\thechapter}}%
\par\nobreak%
\vspace*{20pt}%
\fi%
\fi%
\begin{flushright}\begin{minipage}[t]{14cm}\raggedleft\Huge\bfseries\sffamily #1\end{minipage}\end{flushright}%
\vspace*{50\p@}%
}%
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% définition de l'apparence des sections et sous-sections
\renewcommand{\@seccntformat}[1]{\llap{\textcolor{violet}{\csname the#1\endcsname}\hspace{0.5em}}}
\renewcommand{\section}{\@startsection{section}{1}{\z@}
{-4ex \@plus -1ex \@minus -.4ex}%
{2ex \@plus.2ex }%
{\normalfont\Large\sffamily\bfseries}}
\renewcommand{\subsection}{\@startsection{subsection}{2}{\z@}
{-3ex \@plus -0.1ex \@minus -.4ex}%
{1ex \@plus.2ex }%
{\normalfont\fontsize{12}{16}\sffamily\bfseries}}
\renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}
{-2ex \@plus -0.1ex \@minus -.2ex}%
{0.5ex \@plus.2ex }%
{\normalfont\fontsize{11}{16}\sffamily\bfseries}}
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
{-2ex \@plus-.2ex \@minus .2ex}%
{0ex}%
{\normalfont\normalsize\sffamily\bfseries}}
\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\z@}%
{-2ex \@plus-.1ex \@minus .2ex}%
{0.1ex}%
{\normalfont\normalsize\sffamily\bfseries}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% définition de l'entête de la table des matières
\renewcommand{\tableofcontents}{
\chapter*{\vspace*{-60\p@}\raggedleft\bfseries\Huge\sffamily\contentsname\vspace*{50\p@}
\thispagestyle{empty}}
\@starttoc{toc}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% définition de l'index
\renewenvironment{theindex}
{\if@twocolumn
\@restonecolfalse
\else
\@restonecoltrue
\fi
\columnseprule \z@
\columnsep 35\p@
\twocolumn[\@makeschapterhead{\indexname}]%
\@mkboth{\sc\indexname}{}%
\thispagestyle{plain}\parindent\z@
\parskip\z@ \@plus .3\p@\relax
\let\item\@idxitem}

\renewcommand*{\@printindex}{}
\def\@printindex[#1]{%
\@ifnextchar [%
{\@@printindex[{#1}]}%
{\@@printindex[{#1}][\hfill\sffamily \csname index@#1@name\endcsname]}%
}
\makeatother


J'utilise ensuite :

\addcontentsline{toc}{part}{P1}
\part*{P1}
\addcontentsline{toc}{part}{P2}
\part*{P2}
\addcontentsline{toc}{part}{P3}
\part*{P3}
\addcontentsline{toc}{part}{P4}
\part*{P4}
\addcontentsline{toc}{part}{P5}
\part*{P5}
\addcontentsline{toc}{part}{P6}
\part*{P6}
\addcontentsline{toc}{part}{P7}
\part*{P7}

Merci d'avance à celui ou celle qui saura solutionner mon problème !
marco56
Utilisateur chevronné
Utilisateur chevronné
Messages : 1058
Inscription : jeudi 25 novembre 2010, 22:10

Re: Personnaliser la page d'une nouvelle partie en mode book

Message non lu par marco56 »

Je me réponds encore à moi-même : j'ai fait un ecm qui marche parfaitement. Le souci apparaît, je ne sais pourquoi avec des fichiers inclus dans les parties : celles-ci sont présentes dans la table des matières mais certaines dans le volet "signets" à gauche dans adobe disparaîssent...
Mystère non résolu à ce jour.