[Résolu] hyperref et \tableofcontents

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

[Résolu] hyperref et \tableofcontents

Messagepar GRSG » Dimanche 23 Août 2009, 08:07

Bonjour,
J'utilise le usepackage hyperref.

Je constate lorsque je compile en DVI, il n'y a pas de pb de compilation par contre lorsque je compile en PDF, il y a alors une erreur liée à la présence de \tableofcontents.

Voici ce qu'il m'écit sur mon document pdf à la place de la table des matières

Package hyperrefWarning : Token not allowed in a PDFDocEncoded string, (hyperref)
removing ‘math shift’ on input line 1393.
Package hyperrefWarning : Token not allowed in a PDFDocEncoded string, (hyperref)
removing ‘math shift’ on input line 1393.
Package hyperrefWarning : Token not allowed in a PDFDocEncoded string, (hyperref)
removing ‘math shift’ on input line 1393.
Package hyperrefWarning : Token not allowed in a PDFDocEncoded string, (hyperref)
removing ‘math shift’ on input line 1393.
LaTeX Warning : Label(s) may have changed. Rerun to get cross-references right.


Si je désactive hyperref alors il n'y a plus de problème de compilation mais je n'ai plus les liens entre les titres de la table des matières et les sections concernées.

J'utilise également le usepackage titlesec et titletoc. incompatibilité?

Merci de vos réponses
Dernière édition par GRSG le Lundi 24 Août 2009, 12:52, édité 1 fois.
GRSG
Méga-utilisateur
 
Messages: 293
Inscription: Mercredi 08 Octobre 2008, 08:45
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: hyperref et \tableofcontents

Messagepar guiguiche » Dimanche 23 Août 2009, 08:26

Tu mets bien hyperref en fin de préambule ?
Pas d'aide par MP : les questions sont publiques, les réponses aussi.
Tu as apprécié l'aide qui t'a été fournie ? Alors n'hésite pas à rendre la pareille à quelqu'un d'autre.
Un peu d'autopromotion.
guiguiche
Modérateur
 
Messages: 8073
Inscription: Vendredi 06 Janvier 2006, 15:32
Localisation: Le Mans
Statut actuel: Actif et salarié | Enseignant

Re: hyperref et \tableofcontents

Messagepar GRSG » Dimanche 23 Août 2009, 08:40

même placer en fin de préambule, le pb persiste...
GRSG
Méga-utilisateur
 
Messages: 293
Inscription: Mercredi 08 Octobre 2008, 08:45
Statut actuel: Actif et salarié | Enseignant

Re: hyperref et \tableofcontents

Messagepar guiguiche » Dimanche 23 Août 2009, 09:16

tu as lu ça ?
Pas d'aide par MP : les questions sont publiques, les réponses aussi.
Tu as apprécié l'aide qui t'a été fournie ? Alors n'hésite pas à rendre la pareille à quelqu'un d'autre.
Un peu d'autopromotion.
guiguiche
Modérateur
 
Messages: 8073
Inscription: Vendredi 06 Janvier 2006, 15:32
Localisation: Le Mans
Statut actuel: Actif et salarié | Enseignant

Re: hyperref et \tableofcontents

Messagepar pg » Dimanche 23 Août 2009, 10:02

Ce ne sont pas des erreurs, mais de simples warnings ; ça arrive lorsqu'on met des maths dans les titres de sections. Hyperref les convertit en bookmarks, et prévient qu'il y a un risque de perte d'information lors de cette conversion (exemple typique : perte des indices et exposants).

Pour éviter ces warnings, on peut soit ne pas mettre de maths dans les titres de section, soit utiliser la commande \texorpdfstring :

Code: Tout sélectionner
\documentclass{article}

\usepackage{hyperref}

\begin{document}

\section{Étude de \texorpdfstring{$f$}{f}}

\end{document}

C'est un peu lourd si on veut supprimer toutes les erreurs, mais pour le moment, il n'y a pas d'autre solution.
pg
Modérateur
 
Messages: 2599
Inscription: Jeudi 14 Juin 2007, 23:31

Re: hyperref et \tableofcontents

Messagepar GRSG » Dimanche 23 Août 2009, 11:13

Il y a effectivement des warning par rapport à la présence de formule mathématiques dans le titre.

Mais le pb est qu'il ne m'affiche pas la table des matières et il m'affiche le message mentionné ci-dessus.

J'arrive à contourner le pb en faisant deux compilations sous DVI et une compilation sous pdf alors il m'affiche bien la table des matières... mais bon, ce n'est pas génial
GRSG
Méga-utilisateur
 
Messages: 293
Inscription: Mercredi 08 Octobre 2008, 08:45
Statut actuel: Actif et salarié | Enseignant

Re: hyperref et \tableofcontents

Messagepar pg » Dimanche 23 Août 2009, 11:23

GRSG a écrit:Mais le pb est qu'il ne m'affiche pas la table des matières et il m'affiche le message mentionné ci-dessus.

Il affiche le message d'erreur dans le PDF ? Ça serait très étonnant. Tu peux mettre ici un exemple de code qui fait ça ?
pg
Modérateur
 
Messages: 2599
Inscription: Jeudi 14 Juin 2007, 23:31

Re: hyperref et \tableofcontents

Messagepar GRSG » Dimanche 23 Août 2009, 11:54

Comment puis-je mettre le fichier pdf dans le forum?
GRSG
Méga-utilisateur
 
Messages: 293
Inscription: Mercredi 08 Octobre 2008, 08:45
Statut actuel: Actif et salarié | Enseignant

Re: hyperref et \tableofcontents

Messagepar pg » Dimanche 23 Août 2009, 11:56

C'est plutôt le code qui produit le PDF en question qui serait utile.
pg
Modérateur
 
Messages: 2599
Inscription: Jeudi 14 Juin 2007, 23:31

Re: hyperref et \tableofcontents

Messagepar guiguiche » Dimanche 23 Août 2009, 12:42

GRSG a écrit:Comment puis-je mettre le fichier pdf dans le forum?

Gabriel, tu peux désormais mettre des pièces jointes à tes messages.
Pas d'aide par MP : les questions sont publiques, les réponses aussi.
Tu as apprécié l'aide qui t'a été fournie ? Alors n'hésite pas à rendre la pareille à quelqu'un d'autre.
Un peu d'autopromotion.
guiguiche
Modérateur
 
Messages: 8073
Inscription: Vendredi 06 Janvier 2006, 15:32
Localisation: Le Mans
Statut actuel: Actif et salarié | Enseignant

Re: hyperref et \tableofcontents

Messagepar GRSG » Dimanche 23 Août 2009, 17:29

Bon le code risque d'être assez long... et peut être difficilement compréhensible.

Comme je me réserve la posibilité de compiler soit le cours, soit les exercices, soit les devoirs, je me suis fait des programmes... d'où la longueur.

Je scinde
La liste des uspackage: Liste_package_format
Code: Tout sélectionner
\usepackage{amsfonts,amsmath,amssymb,graphicx}
\usepackage[francais]{babel}
\usepackage[latin1]{inputenc}
\usepackage{verbatim}
\usepackage{answers}
\usepackage[T1]{fontenc}
\usepackage{fancyhdr}
\usepackage{multido}
\usepackage{lastpage}
\usepackage{multicol}
\usepackage{graphicx}
\usepackage{graphics}
\usepackage{color}
\usepackage{epic,eepic}
\usepackage{pstricks}
\usepackage{ifthen}
\usepackage{eurosym}
\usepackage{makeidx}
\usepackage{fancybox}
\usepackage{filecontents}
\usepackage{calc}
\usepackage{boites}
\usepackage{cellspace}
\usepackage{titlesec}
\usepackage{titletoc}
\usepackage{colortbl}
\usepackage{mathtools}
\usepackage{enumitem}
\usepackage{array}
\usepackage{hyperref}


La liste des syntaxes mathématiques: mathematiques_gabriel
Code: Tout sélectionner
\ProvidesPackage{mathematiques_gabriel}


%-------------------------------------------------------------------------------Lettres greques
\renewcommand{\epsilon}{\varepsilon}
\renewcommand{\phi}{\varphi}


%système et équations alignées
\newcommand{\systeme}[1]{\begin{cases}\eq{#1}\end{cases}}
\newcommand{\eq}[1]{\begin{array}[t]{@{}l*{20}{@{\hspace{0.5ex}}l}}#1\end{array}}
\newcommand{\systemed}[1]{\left.\begin{array}[c]{@{}l*{20}{@{\hspace{0.5ex}}l}}#1\end{array}\right\}}

%-------------------------------------------------------------------Fonctions
\newcommand\fonc[2]{\mathop{{\rm #1}\hspace{#2}}}

\newcommand\fn[1]{\fonc{#1}{0.1ex}}

\renewcommand\arccos{\fn{arccos}\nolimits}
\renewcommand\arcsin{\fn{arcsin}\nolimits}
\renewcommand\arctan{\fn{arctan}\nolimits}
\renewcommand\lim{\fn{lim}}
\renewcommand\liminf{\fn{lim\hspace{0.2ex}inf}}
\renewcommand\limsup{\fn{lim\hspace{0.2ex}sup}}
\renewcommand\arg{\fn{arg}\nolimits}
\renewcommand\cos{\fn{cos}\nolimits}
\renewcommand\cosh{\fn{cosh}\nolimits}
\renewcommand\cot{\fn{cot}\nolimits}
\renewcommand\coth{\fn{coth}\nolimits}
\renewcommand\csc{\fn{csc}}
\renewcommand\det{\fn{det}\nolimits}
\renewcommand\dim{\fn{dim}\nolimits}
\renewcommand\exp{\fn{exp}\nolimits}
\renewcommand\gcd{\fn{gcd}}
\renewcommand\hom{\fn{hom}}
\renewcommand\inf{\fn{inf}}
\renewcommand\ker{\fn{Ker}\nolimits}
\renewcommand\lg{\fn{lg}\nolimits}
\renewcommand\ln{\fn{ln}\nolimits}
\renewcommand\log{\fn{log}\nolimits}
\renewcommand\max{\fn{max}}
\renewcommand\min{\fn{min}}
\renewcommand\sec{\fn{sec}}
\renewcommand\sin{\fn{sin}\nolimits}
\renewcommand\sinh{\fn{sinh}\nolimits}
\renewcommand\sup{\fn{sup}}
\renewcommand\tan{\fn{tan}\nolimits}
\newcommand\cotan{\fn{cotan}\nolimits}
\renewcommand\tanh{\fn{tanh}\nolimits}
\newcommand\sh{\fn{sh}\nolimits}
\newcommand\ch{\fn{ch}\nolimits}
\newcommand\cov{\fn{cov}}
\newcommand\Ent{\fn{Ent}}

\newcommand\im{\fn{Im}\nolimits}
\newcommand\Ker{\fn{Ker}\nolimits}
\renewcommand\Im{\fn{Im}\nolimits}
\newcommand\rg{\fn{rg}\nolimits}
\newcommand\Vect{\fn{Vect}\nolimits}
\newcommand\tr{\fn{tr}\nolimits}

\renewcommand\Re{\fn{Re}\nolimits}

\newcommand\card{\fn{card}\nolimits}

%\renewcommand\deg{\fn{deg}\nolimits}

%--------------------------------------------------------------Délimitateurs
\newcommand\s[1]{\left(#1\right)}
\newcommand\cn[1]{\begin{array}{@{}l@{}c@{}r}
\begin{array}{|@{}l@{\;}}\hline \,\vline\\\hline \end{array}&
#1&
\begin{array}{@{\;}r@{\,}|}\hline \vline\\\hline \end{array}\\
\end{array}}
%\begin{array}{@{}l@{\hspace{-0.15ex}}c@{\hspace{-0.15ex}}r@{}}\begin{array}{@{}l@{}}
%\begin{array}{@{}l@{}c@{}r}
%\begin{array}{|@{}l@{\;}}\hline \,\vline\\\hline \end{array}&
%#1&
%\begin{array}{@{\;}r@{\,}|}\hline \vline\\\hline \end{array}\\
%\end{array}}
%\begin{array}{@{}l@{\hspace{-0.15ex}}c@{\hspace{-0.15ex}}r@{}}\begin{array}{@{}l@{}} \hline\vline\hspace{0.35ex}\vline\:\\\hline\end{array}&#1&\begin{array}{@{}l@{}}\hline\:\vline\hspace{0.35ex}\vline\\\hline\end{array}\end{array}\;
%}

%--------------------------------------------------------------------Géométrie
\newcommand\anglevect[2]{(\mathop{#1}\limits^{\longrightarrow}, \mathop{#2}\limits^{\longrightarrow})}
\renewcommand\vec[1]{\protect\overrightarrow{#1}}


%---------------------------------------------------------------Limites
\newcommand\equi[1]{\mathop{\sim}\limits_{#1}}
\newcommand\tend[1]{\mathop{\longrightarrow}\limits_{#1}}
\newcommand\petito[2]{\mathop{=}\limits_{#1}{\rm o}\left({#2}\right)}

%---------------------------------------------------------------------Opérateurs
\renewcommand\leq{\leqslant}
\renewcommand\geq{\geqslant}

%----------------------------------Droit
\newcommand\droit[1]{{\rm #1}}
\newcommand\A{\droit{A}}
\newcommand\B{\droit{B}}
\newcommand\C{\droit{C}}
\newcommand\D{\droit{D}}
\newcommand\E{\droit{E}}
\newcommand\F{\droit{F}}
\newcommand\G{\droit{G}}
\renewcommand\H{\droit{H}}
\newcommand\I{\droit{I}}
\newcommand\J{\droit{J}}
\newcommand\K{\droit{K}}
\renewcommand\L{\droit{L}}
\newcommand\M{\droit{M}}
\newcommand\N{\droit{N}}
\renewcommand\O{\droit{O}}
\renewcommand\P{\droit{P}}
\newcommand\Q{\droit{Q}}
\newcommand\R{\droit{R}}
\renewcommand\S{\droit{S}}
\newcommand\T{\droit{T}}
\newcommand\U{\droit{U}}
\newcommand\V{\droit{V}}
\newcommand\W{\droit{W}}
\newcommand\X{\droit{X}}
\newcommand\Y{\droit{Y}}
\newcommand\Z{\droit{Z}}


\newcommand\Id{\droit{Id}}

\renewcommand\d{\,\droit{d}}
\renewcommand\o{\,\droit{o}}

%----------------------------------------------------------Matrices et familles

\newcommand\matrice[5]{%
\big(#1_{#2#4}\big)_{1\leq #2 \leq #3\atop 1\leq #4 \leq #5}
}

\newcommand\matij[3]{\matrice{#1}{i}{#2}{j}{#3}}

\newcommand\In{\left(\begin{smallmatrix}1&0&\cdots&0\\
0&\ddots&\ddots&\vdots\\
\vdots&\ddots&\ddots&0\\
0&\cdots&0&1
\end{smallmatrix}\right)}

\newcommand\On{\left(\begin{smallmatrix}0&\cdots&0\\
\vdots&\ddots&\vdots\\0&\cdots&0\\\end{smallmatrix}\right)}

\renewcommand\fam[3]{#1_{#2},\ldots,#1_{#3}}
\newcommand\ens[3]{\left\{\fam{#1}{#2}{#3}\right\}}
\newcommand\upl[3]{\left(\fam{#1}{#2}{#3}\right)}
%\newcommand\coordonnees[2]{\begin{array}[c]{@{}l}_{\begin{smallmatrix}\\[1ex]#1\end{smallmatrix}}\!\!\!\left(\begin{smallmatrix}#2
%\end{smallmatrix}\right)\end{array}\!}
\newcommand\coordonnees[2]{\mathop{\,}\limits_{#1}\!\left(#2\right)}


%---------------------------------------------------Ecritures de fonctions
\newcommand\fonction[5]{#1
\left| {\begin{array}{ccl} #2 &  \longrightarrow & #3
\\
#4
  &  \longmapsto &
#5
 \\ \end{array}} \right.}
%----------------------------------------------------------Intégrales
\newcommand\dint{\displaystyle\int}
%------------------------------------------------------------Centrée

%-----------------------------------------------------------------Intervalles et ensembles
\newcommand\Rr{\mathbb{R}}
\newcommand\Nn{\mathbb{N}}
\newcommand\Cc{\mathbb{C}}
\newcommand\Qq{\mathbb{Q}}
\newcommand\Zz{\mathbb{Z}}
\newcommand\Kk{\mathbb{K}}
\newcommand\RX{\mathbb{R}[\X]}
\newcommand\CX{\mathbb{C}[\X]}
\newcommand\KX{\mathbb{K}[\X]}
\newcommand\RnX{\mathbb{R}_n[\X]}
\newcommand\CnX{\mathbb{C}_n[\X]}
\newcommand\KnX{\mathbb{K}_n[\X]}
\newcommand\complementaire[2]{\complement_{_{#2}}#1}

%-------------------------------------------------------------------Commandes annexes
\newcommand\dis{\displaystyle}
\newcommand{\et}{\text{ et }}
\newcommand{\ou}{\text{ ou }}
\newcommand{\tq}{\text{ tel que }}
\newcommand{\si}{\text{ si }}
\newcommand{\car}{\text{ car }}
\newcommand{\sur}{\text{ sur }}
\newcommand{\avec}{\text{ avec }}
\newcommand{\vraie}{\text{ vraie }}
\newcommand{\vraies}{\text{ vraies }}


%---------------------------------------------------------------------Espace
\newcommand{\qqquad}{\qquad\quad}


%----------------------------------------------------------------------------Gestion de l'interligne des syntaxes mathématiques
\AtBeginDocument{
\abovedisplayskip=0.5em plus 0.5em minus 0.25em
\abovedisplayshortskip=0ex plus 2ex
\belowdisplayskip=0.5em plus 0.5em minus 0.25em
\belowdisplayshortskip=0ex plus 2ex
}


La gestion des créations de fichiers : gestion_fichiers_exterieurs
Code: Tout sélectionner
\makeatletter
\newboolean{bcours}
\newcommand{\affichecours}[1]{%
\setboolean{bcours}{#1}%
\ifthenelse{\boolean{bcours}}%
{\renewenvironment{cours}{\color{black}}{\par}
}%
{
}
}
\makeatother

\makeatletter
\newboolean{bcolle}
\newcommand{\affichecolle}[1]{%
\setboolean{bcolle}{#1}%
\ifthenelse{\boolean{bcolle}}%
{\renewenvironment{colle}{\color{black}}{\par}
}%
{
}
}
\makeatother


\makeatletter
\newboolean{bsolution}
\newcommand{\affichesolution}[1]{%
\setboolean{bsolution}{#1}%
\ifthenelse{\boolean{bsolution}}%
{\renewenvironment{solution}{\color{black}}{\par}
}%
{
}
}
\makeatother


\makeatletter
\newboolean{benonce}
\newcommand{\afficheenonce}[1]{%
\setboolean{benonce}{#1}%
\ifthenelse{\boolean{benonce}}%
{\renewenvironment{enonce}{\color{black}}{\par}
}%
{
}
}
\makeatother


\makeatletter
\newboolean{bdevoir}
\newcommand{\affichedevoir}[1]{%
\setboolean{bdevoir}{#1}%
\ifthenelse{\boolean{bdevoir}}%
{\renewenvironment{devoir}{\color{black}}{\par}
}%
{
}
}
\makeatother


\makeatletter
\newboolean{bexocomplementaire}
\newcommand{\afficheexocomp}[1]{%
\setboolean{bexocomplementaire}{#1}%
\ifthenelse{\boolean{bexocomplementaire}}%
{\renewenvironment{exocomp}{\color{black}}{\par}
}%
{
}
}
\makeatother


\makeatletter
\newboolean{bquestioncours}
\newcommand{\affichequestioncours}[1]{%
\setboolean{bquestioncours}{#1}%
\ifthenelse{\boolean{bquestioncours}}%
{\renewenvironment{qcours}{\par \color{green}}{\color{black}\par}
}%
{
}
}
\makeatother

\makeatletter
\newboolean{bextraction}
\newcommand{\afficheextraction}[1]{%
\setboolean{bextraction}{#1}%
\ifthenelse{\boolean{bextraction}}%
{\renewenvironment{extraction}{\par \color{blue}}{\color{black}\par}
}%
{
}
}
\makeatother


\makeatletter
\newboolean{bdiaporama}
\newcommand{\affichediaporama}[1]{%
\setboolean{bdiaporama}{#1}%
\ifthenelse{\boolean{bdiaporama}}%
{\renewenvironment{diaporama}{\par \color{black}\Huge}{\color{black}\normalfont\par}
}%
{
}
}
\makeatother


\makeatletter
\newboolean{btableofcontents}
\newcommand{\affichetable}[1]{%
\setboolean{btableofcontents}{#1}%
\ifthenelse{\boolean{btableofcontents}}
{\tableofcontents\pagebreak}{}%
}
\makeatother


\makeatletter
\newboolean{bexercicecours}
\newcommand{\afficheexercicecours}[1]{%
\setboolean{bexercicecours}{#1}%
\ifthenelse{\boolean{bexercicecours}}%
{\renewenvironment{exercice}{\par \color{violet}}{\color{black}\normalfont\par}
}%
{
}
}
\makeatother

\newcommand{\initialisation}{%
\initiatedevoir{devoir.tex}%
\initiateexocomp{exocomplementaire.tex}%
\initiatecolle{colle.tex}%
\initiateqcours{questioncours.tex}%
\initiatesolution{solution.tex}%
\initiatecours{cours.tex}%
\initiateextraction{extraction.tex}
\initiateexercice{exercicecours.tex}
}



\newcommand{\fermeture}{%
\terminatedevoir
\terminateexocomp
\terminatecolle
\terminateqcours
\terminateexercice
\terminatesolution
\terminatecours
\ifthenelse{\boolean{bcours}}%
{\pagebreak\begin{modifpage}{-3.9cm}
\bigskip
\begin{center}
\fboxrule=0.8pt\doublebox{\Large Questions de cours}
\end{center}
\rhead{\textbf{Question de cours}}
\chead{}
\setlength{\columnseprule}{0.3pt}
\setlength{\columnsep}{2eM}
\begin{multicols}{2}
\small \input{questioncours.tex}
\end{multicols}

\bigskip
\begin{center}
\fboxrule=0.8pt\doublebox{\Large Exercices Complémentaires}
\end{center}
\begin{multicols}{2}
\rhead{\textbf{Exercices complémentaires}}
\chead{}
\normalsize \input{exocomplementaire.tex}
%\terminateindication
\end{multicols}
\end{modifpage}
}
{
}
\terminateextraction
}







\makeatletter
\newwrite{\verbatim@out@one}
\def\initiatedevoir#1{\immediate\openout \verbatim@out@one #1}
\def\devoir{\bgroup\@bsphack
\let\do\@makeother\dospecials
\catcode`\^^M\active
\def\verbatim@processline{%
\immediate\write\verbatim@out@one{\the\verbatim@line}}%
\verbatim@start}
\def\enddevoir{\immediate\write\verbatim@out@one{ }\@esphack\egroup}
\def\terminatedevoir{\immediate\closeout\verbatim@out@one}
\makeatother

\makeatletter
\newwrite{\verbatim@out@two}
\def\initiateexocomp#1{\immediate\openout \verbatim@out@two #1}
\def\exocomp{\bgroup\@bsphack
\let\do\@makeother\dospecials
\catcode`\^^M\active
\def\verbatim@processline{%
\immediate\write\verbatim@out@two{\the\verbatim@line}}%
\verbatim@start}
\def\endexocomp{\immediate\write\verbatim@out@two{ }\@esphack\egroup}
\def\terminateexocomp{\immediate\closeout\verbatim@out@two}
\makeatother


\makeatletter
\newwrite{\verbatim@out@three}
\def\initiatediaporama#1{\immediate\openout \verbatim@out@three #1}
\def\diaporama{\bgroup\@bsphack
\let\do\@makeother\dospecials
\catcode`\^^M\active
\def\verbatim@processline{%
\immediate\write\verbatim@out@three{\the\verbatim@line}}%
\verbatim@start}
\def\enddiaporama{\immediate\write\verbatim@out@three{ }\@esphack\egroup}
\def\terminatediaporama{\immediate\closeout\verbatim@out@three}
\makeatother


\makeatletter
\newwrite{\verbatim@out@four}
\def\initiatecolle#1{\immediate\openout \verbatim@out@four #1}
\def\colle{\bgroup\@bsphack
\let\do\@makeother\dospecials
\catcode`\^^M\active
\def\verbatim@processline{%
\immediate\write\verbatim@out@four{\the\verbatim@line}}%
\verbatim@start}
\def\endcolle{\immediate\write\verbatim@out@four{ }\@esphack\egroup}
\def\terminatecolle{\immediate\closeout\verbatim@out@four}
\makeatother



\makeatletter
\newwrite{\verbatim@out@five}
\def\initiateqcours#1{\immediate\openout \verbatim@out@five #1}
\def\qcours{\bgroup\@bsphack
\let\do\@makeother\dospecials
\catcode`\^^M\active
\def\verbatim@processline{%
\immediate\write\verbatim@out@five{\the\verbatim@line}}%
\verbatim@start}
\def\endqcours{\immediate\write\verbatim@out@five{ }\@esphack\egroup}
\def\terminateqcours{\immediate\closeout\verbatim@out@five}
\makeatother


\makeatletter
\newwrite{\verbatim@out@six}
\def\initiatesolution#1{\immediate\openout \verbatim@out@six #1}
\def\solution{\bgroup\@bsphack
\let\do\@makeother\dospecials
\catcode`\^^M\active
\def\verbatim@processline{%
\immediate\write\verbatim@out@six{\the\verbatim@line}}%
\verbatim@start}
\def\endsolution{\immediate\write\verbatim@out@six{ }\@esphack\egroup}
\def\terminatesolution{\immediate\closeout\verbatim@out@six}
\makeatother



\makeatletter
\newwrite{\verbatim@out@seven}
\def\initiatecours#1{\immediate\openout \verbatim@out@seven #1}
\def\cours{\bgroup\@bsphack
\let\do\@makeother\dospecials
\catcode`\^^M\active
\def\verbatim@processline{%
\immediate\write\verbatim@out@seven{\the\verbatim@line}}%
\verbatim@start}
\def\endcours{\immediate\write\verbatim@out@seven{ }\@esphack\egroup}
\def\terminatecours{\immediate\closeout\verbatim@out@seven}
\makeatother


\makeatletter
\newwrite{\verbatim@out@height}
\def\initiateextraction#1{\immediate\openout \verbatim@out@height #1}
\def\extraction{\bgroup\@bsphack
\let\do\@makeother\dospecials
\catcode`\^^M\active
\def\verbatim@processline{%
\immediate\write\verbatim@out@height{\the\verbatim@line}}%
\verbatim@start}
\def\endextraction{\immediate\write\verbatim@out@height{ }\@esphack\egroup}
\def\terminateextraction{\immediate\closeout\verbatim@out@height}
\makeatother

\makeatletter
\newwrite{\verbatim@out@nine}
\def\initiateenonce#1{\immediate\openout \verbatim@out@nine #1}
\def\enonce{\bgroup\@bsphack
\let\do\@makeother\dospecials
\catcode`\^^M\active
\def\verbatim@processline{%
\immediate\write\verbatim@out@nine{\the\verbatim@line}}%
\verbatim@start}
\def\endenonce{\immediate\write\verbatim@out@nine{ }\@esphack\egroup}
\def\terminateenonce{\immediate\closeout\verbatim@out@nine}
\makeatother


\makeatletter
\newwrite{\verbatim@out@ten}
\def\initiateexercice#1{\immediate\openout \verbatim@out@ten #1}
\def\exercice{\bgroup\@bsphack
\let\do\@makeother\dospecials
\catcode`\^^M\active
\def\verbatim@processline{%
\immediate\write\verbatim@out@ten{\the\verbatim@line}}%
\verbatim@start}
\def\endexercice{\immediate\write\verbatim@out@ten{ }\@esphack\egroup}
\def\terminateexercice{\immediate\closeout\verbatim@out@ten}
\makeatother


Les commandes communes pour plusieurs format (cours, diaporama, devoirs,...) : commandes_communes
Code: Tout sélectionner
%==================================================================Commandes communes diverses
\input{C:/Gabriel/latex/liste_package_format.tex}
\input{C:/Gabriel/Latex/mathematiques_gabriel.tex}
\input{C:/Gabriel/Latex/gestion_fichiers_exterieurs.tex}


%====================================================================Gestion des couleurs, des polices et encadrement
\definecolor{grisclair}{rgb}{0.8,0.8,0.8}
\definecolor{vert}{rgb}{0.1,0.8,0.1}
\definecolor{gris}{rgb}{0.5,0.5,0.5}
\definecolor{violet}{rgb}{0.5,0.0,0.5}

\renewcommand{\thefootnote}{(\texttt{\tiny\arabic{footnote}})}

\renewcommand{\emph}[1]{{\bf \textsl{{#1}}}}

\renewcommand*{\hrulefill}[1][0.3mm]{\leavevmode \leaders \hrule height #1 \hfill \kern 0pt}


%===================================================================== Liens
\newcommand{\cible}[1]{\hypertarget{#1}{}}
\newcommand{\renvoi}[2]{\hyperlink{#1}{{\color{#2}{#1}}}}


%===================================================================Textes prédéfinis
\newcommand{\notation}{\subparagraph{Notation :}}
\newcommand{\remarque}{\subparagraph{Remarque :}}
\newcommand{\remarques}{\subparagraph{Remarques :}}

%==================================================================Encadrement
\newenvironment{encadrementgeneral}[4]%
{\par\medskip%
\arrayrulewidth=1pt%
\begin{minipage}{\linewidth}
\rule{2em}{#2}{\hspace{1ex}\raisebox{0.25ex}{\textbf{\textcolor{#3}{#1}}}\hspace{1ex}}\hrulefill[#2]\\[-2pt]%
\begin{tabular}[b]{|>{\cellcolor{#4}}l|}%
\begin{minipage}{\linewidth-2\arrayrulewidth-12pt}\vspace{5pt}%
}%
{\par\vspace{5pt}\end{minipage}\\
\hline
\end{tabular}\end{minipage}\par\medskip
}%

\newenvironment{encadre}[1]%
{\begin{encadrementgeneral}{#1}{2pt}{black}{white}}{\end{encadrementgeneral}}%

%===============commandes communes
\let\originaltextwidth\textwidth
\makeatletter
\newenvironment{modifpage}[1]{\begin{list}{}{\linewidth=\originaltextwidth\@totalleftmargin=0cm\leftmargin=#1}\item\relax}{\end{list}}
\makeatother

\renewcommand{\bottomtitlespace}{0.15\textheight}

\AtEndDocument{\label{LastPage}}


%================================================================Table des matières
\newcommand{\com}[1]{\normalsize\addcontentsline{toc}{subsection}{\tiny \normalfont #1}}


%===============================================================Numérotation

\newcounter{numexo}
\newcommand{\exo}{%
\refstepcounter{numexo}%
\par\smallskip{\sffamily\bfseries Ex\,\arabic{numexo}.\;}\normalfont\relax%
}%

\newcounter{qcours}
\newcommand{\qc}{%
\par\smallskip%
\refstepcounter{qcours}%
{\bf\small%
QC\,%
\arabic{qcours}.}\;}%


Le format cours : cours_format
Code: Tout sélectionner
\input{C:/Gabriel/latex/commandes_communes.tex}


%===================================Gestion de la page
\renewcommand{\headwidth}{18.1cm}%
\oddsidemargin=2.9cm%
\topmargin=-2.7cm%
\headheight=1.5cm%
\headsep=0.5cm%
\textheight=25.7cm%
\textwidth=14.2cm%
\marginparsep=0.75cm%
\marginparwidth=3.5cm%
\footskip=30pt%
\hoffset=0pt%
\paperwidth=21cm%
\marginparpush=0cm%
\voffset=0pt%
\paperheight=29.7cm%
\pagestyle{fancy}%
\renewcommand{\headrulewidth}{0.8pt}%
\renewcommand{\footrulewidth}{0.8pt}%
\rfoot{\small{Page \thepage\, sur \pageref{LastPage}}}%
\setlength{\parindent}{0cm}%
\setlength{\columnseprule}{0.5pt}%
\setlength{\columnsep}{1eM}%
\reversemarginpar%


%=======================================================================Gestion de l'entete
\fancyhf{}
\renewcommand{\subsectionmark}[1]{\markright{\thesubsection\ #1}}
\renewcommand{\sectionmark}[1]{\markboth{\thesection\ #1}{\rightmark}}
\renewcommand{\headwidth}{18.1cm}
\renewcommand{\headrulewidth}{0.8pt}
\chead{\sffamily\small\rightmark}
\rhead{\sffamily\small\leftmark}
\renewcommand{\footrulewidth}{0.8pt}
\lfoot{\today}\cfoot{\textsc{Mathématiques}. Classe ECS1}\rfoot{\small{Page \thepage\, sur \pageref{LastPage}}}%


\newcommand{\titrechapitre}[1]{
\addcontentsline{toc}{section}{\hspace{-2em}\Large \textsc{#1}}
\lhead{\small\textsc{#1}}
\begin{center}
\fboxrule=0.8pt\doublebox{\Large\sffamily\bfseries #1}
\end{center}
}

%========================================================================Gestion des sections
% changement de la numerotation
\renewcommand{\thesection}{\Roman{section}.}
\renewcommand{\thesubsection}{\arabic{subsection}.}
\renewcommand{\thesubsubsection}{\normalfont\alph{subsubsection})}
\renewcommand{\theparagraph}{}
\renewcommand{\thesubparagraph}{}

% changement de la presentation

\titleformat{\section}[hang]
  {\titlerule\filleft\normalfont\Large\sffamily\bfseries}
  {\thesection}
  {1em}
  {}%[\vspace{0ex}\titlerule]
 
\titleformat{\subsection}[hang]
  {\normalfont\large\sffamily\bfseries}
  {\thesubsection}
  {1.3em}
  {}
 
\titleformat{\subsubsection}[hang]
  {\normalfont\filright\normalsize\sffamily\sl}
  {\thesubsubsection }
  {0.4em}
  {\underline}[]
 
\titleformat{\paragraph}[hang]
  {\normalfont\small\sffamily\bfseries}
  {\theparagraph}
  {-1.2em}
  {}
 
\titleformat{\subparagraph}[runin]
  {\normalfont\normalsize\sffamily}
  {\thesubparagraph}
  {0pt}
  {\underline}
%


\titlespacing*{\section}{0pt}{3.5ex plus 1ex minus .4ex}{2.3ex plus.5ex}
\titlespacing*{\subsection}{-2.5em}{2.5ex plus 0.8ex minus .4ex}{1ex plus.3ex}
\titlespacing*{\subsubsection}{-1.2em}{2.5ex plus 0.5ex minus .2ex}{1ex plus.2ex}
\titlespacing*{\paragraph}{0pt}{2ex plus 0.5ex minus .2ex}{0.3ex plus.2ex}
\titlespacing*{\subparagraph}{-1.2em}{1.5ex plus 0.3ex minus .2ex}{1em}

\titlecontents{section}
  [-9em]
  {\addvspace{0.25pc}\bfseries\Large}
  {\thecontentslabel\hspace{0.8em}}
  {}
  {\hfill\contentspage}
  []
 
  \titlecontents{subsection}
  [-6em]
  {\addvspace{0.25pc}}
  {\thecontentslabel\hspace{1.5em}}
  {}
  {}
  []

  \titlecontents{subsubsection}
  [-3em]
  {\addvspace{0.25pc}\itshape\small}
  {\thecontentslabel\hspace{1.5em}\itshape}
  {}
  {}
  []

\setcounter{tocdepth}{3}     % Dans la table des matieres
\setcounter{secnumdepth}{4}  % Avec un numero.

%====================================================================== Gestion de l'énumération
\setenumerate[1]{labelsep=1ex, leftmargin=2em,label=\textbf{\arabic*}., ref=\textbf{\arabic*},labelindent=1em}%
\setenumerate[2]{label=\sffamily{\alph*}),ref=\theenumi.\textit{\alph*}),labelsep=*, leftmargin=2em,labelindent=0em}%
\setenumerate[3]{label=(\roman*), ref=\theenumii.(\roman*)}%
\setdescription{font=\sffamily\bfseries\small}



%===================================================================Gestion de la marge de gauche
\newcommand{\marge}[1]{
\marginpar{%\begin{minipage}[c]{3.3cm}
\scriptsize #1
%\end{minipage}
}
}

\newcommand{\preuve}{%
\refstepcounter{numexo}%
\marge{\vspace{-0.5em}\sffamily Preuve {\bf\arabic{numexo}}\normalfont}}%

\newcommand{\graphique}{%
\refstepcounter{numexo}%
\marge{\vspace{-0.5em}\sffamily Graphique {\bf\arabic{numexo}}\normalfont}}%

\newcommand{\note}{%
\refstepcounter{numexo}%
\marge{\vspace{-0.5em}\sffamily Note {\bf\arabic{numexo}}\normalfont}}%

\newcommand{\admis}{\marge{\vspace{-0.5em} \sffamily Admis \normalfont}}

\renewenvironment{exercice}%{%
%{\vspace{1ex}\par\hspace{-4.25cm}\begin{minipage}{18.5cm}\rule{6cm}{0.3pt}\par\small}
%{\par\vspace{-1ex}\rule{5cm}{0.3pt}\end{minipage}\normalfont}
{\begin{modifpage}{-3.85cm}\begin{minipage}{18cm}\rule{6cm}{0.3pt}\par\small}
{\par\rule{6cm}{0.3pt}\end{minipage}\end{modifpage}\normalfont}


%===============================Encadrement
\newenvironment{definition}[1]{\begin{encadre}{#1}}{\end{encadre}}



Et enfin le fichier essai.tex à partir duquel je teste les programmes
Code: Tout sélectionner
\documentclass[11pt, a4paper]{report}
\input{C:/Gabriel/latex/cours_format.tex}



\begin{document}


\affichecours{true}
\afficheenonce{true}
\affichesolution{false}
\afficheexocomp{false}
\affichecolle{false}
\affichedevoir{false}
\affichequestioncours{false}
\afficheextraction{false}
\affichetable{false}
\affichediaporama{false}
\afficheexercicecours{false}

\initialisation

\tableofcontents


\titrechapitre{Chapitre 1: Raisonner et Rédiger}

\section{Logique mathématique}

\subsection{Assertion ou proposition}

\subsubsection{Définition}

1294. du latin assertio <<affirmer>>

Une \emph{assertion} ou \emph{proposition} est un énoncé qui est \emph{soit vrai, soit faux}.

\begin{encadre}{Remarque}
Pour démontrer qu'une assertion est fausse, on peut chercher un \emph{contre-exemple}.
\end{encadre}


\begin{qcours}
\qc
Quelle est la définition d'une assertion?
\qc
Comment peut-on démontrer qu'une assertion est fausse?

\end{qcours}


\remarque Une propriété vraie dans le cas général est vraie dans les cas particuliers. La réciproque est fausse.

\begin{exercice}
\exo Soit $f$ une fonction définie sur l'intervalle $[0;1]$ telle que $f(0)=2$ et $f(1)=-1$. L'assertion suivante est-elle vraie? <<$\forall x\in[0;1],\ f(x)\in[-1;2]$>>
\end{exercice}
\subsubsection{Intérêt}

Un raisonnement est constitué d'une suite d'assertions. Il est juste si toutes le assertions sont vraies et justifiées. Un raisonnement avec une assertion fausse est faux. Un raisonnement avec une justification incomplète est faux.

On peut alors démontrer sans ambiguïté qu'un raisonnement est juste ou non. C'est donc la meilleure façon d'apprendre à raisonner, le contrôle du raisonnement étant objectif.

Une affirmation sans preuve est sans valeur.

\begin{exercice}
Déterminer si les assertions suivantes sont vraies ou fausses.

\begin{minipage}{0.48\textwidth}
\exo
Le polynôme $\P(x)=ax^{2}+bx+c $ avec $a, b$ et $c $ réels a au moins une racine réelle.

\begin{solution}
Fausse ($\Delta <0$)
\end{solution}

\exo
Tous les nombres premiers sont impairs.

\begin{solution}
Fausse (contre exemple 2)
\end{solution}

\exo
La fonction exponentielle est croissante sur $\Rr$.

\begin{solution}
Vraie
\end{solution}

\end{minipage}
\hfill
\begin{minipage}{0.48\textwidth}
\exo
La fonction carrée est croissante sur $\Rr$.

\begin{solution}
Fausse car elle est décroissante sur $\Rr^-$.
\end{solution}

\exo
La fonction racine carrée est croissante.

\begin{solution}
Fausse car incomplète.
\end{solution}

\exo
La fonction inverse est décroissante sur $\Rr_*$.

\begin{solution}
Fausse (trouver un contre-exemple)
\end{solution}

\end{minipage}


\end{exercice}

\subsubsection{Le <<Et>> et <<Ou>> mathématiques}

\begin{itemize}
\item[$\bullet$]
<<($\P$ \emph{et} $\Q$) vraie>> signifie que $\P$ est vraie et $\Q$ est vraie \emph{simultanément}.

\item[$\bullet$]
<<($\P$ \emph{ou} $\Q$) vraie>> signifie qu'\emph{au moins une} des deux propositions est vraie. \footnote{Noter la différence avec le <<ou>> <<habituel>>.}

On dit que le <<ou>> mathématiques est \emph{inclusif}.
\end{itemize}




\begin{exercice}
Traduire avec des <<Et>> et des <<Ou>>

\begin{minipage}{0.48\textwidth}
\exo
$| 2x-1| <3 $

\begin{solution}
$-1<x$ et $x<2$
\end{solution}

\end{minipage}\hfill
\begin{minipage}{0.48\textwidth}
\exo
$| 2x-1| \geq3 $

\begin{solution}
$x<-1$ ou $x>2$
\end{solution}

\end{minipage}
\end{exercice}

\subsubsection{Négation d'une assertion}

\paragraph{Définition}
La \emph{négation d'une assertion} ou d'une proposition correspond à sa négation au sens grammatical.

\notation
La négation de la proposition P se note $\overline{\P}$.

\subparagraph{Propriété:}
Une proposition est vraie (resp. fausse) si et seulement si sa négation est fausse (resp. vraie).

\begin{qcours}
\qc
Que signifie <<l'assertion (P et Q) est vraie>>? Que signifie <<l'assertion (P ou Q) est vraie>>?
\qc
Quelle est la négation de l'assertion <<(P et Q) est vraie>>? Quelle est la négation de l'assertion <<(P ou Q) est vraie>>?

\end{qcours}

\fermeture

\end{document}


Tout n'est pas à lire certainement

Gabriel
GRSG
Méga-utilisateur
 
Messages: 293
Inscription: Mercredi 08 Octobre 2008, 08:45
Statut actuel: Actif et salarié | Enseignant

Re: hyperref et \tableofcontents

Messagepar pg » Lundi 24 Août 2009, 08:34

Je viens de compiler ton exemple, et il aurait été utile de mentionner dès ton premier message que lorsque tu compile ton fichier tex, LaTeX affiche le message d'erreur suivant :

Code: Tout sélectionner
! No room for a new \write .

Cela signifie qu'il y a trop de \newwrite dans ton document et que du coup LaTeX ne peut plus utiliser ceux dont il a besoin. Et comme tu es juste à la limite (16), ça marche en dvi car hyperref en utilise un pour les bookmarks, mais uniquement lorsqu'on compile en pdf (en dvi, il le fait uniquement si on le lui demande).

Pour résoudre ce problème, il faut éliminer des \newwrite. Soit en enlevant des packages soit en revoyant l'utilité des différents \newwrite utilisés dont voici une liste (d'après le fichier .log) :

Code: Tout sélectionner
\@unused=\write0              <----- utilisé par LaTeX (toujours présent)
\@mainaux=\write1             <----- utilisé par LaTeX (toujours présent)
\@partaux=\write2             <----- utilisé par LaTeX (toujours présent)
\Verbatim@Outfile=\write3     <----- fancybox
\@outlinefile=\write4         <----- hyperref (pour les bookmarks)
\verbatim@out@one=\write5     <----- les dix verbatim@out personnels
\verbatim@out@two=\write6
\verbatim@out@three=\write7
\verbatim@out@four=\write8
\verbatim@out@five=\write9
\verbatim@out@six=\write10
\verbatim@out@seven=\write11
\verbatim@out@height=\write12
\verbatim@out@nine=\write13
\verbatim@out@ten=\write14
\scratchwrite=\write15        <-------- graphicx
\tf@toc=\write16              <-------- tableofcontents

Pour savoir comment faire le ménage parmi les \verbatim@out@... (avoir dix \newwrite dans un document n'est pas raisonnable), il faudrait savoir comment tu comptais utiliser tous ces fichiers questioncours.tex, solution.tex, etc. Selon le cas, on pourra réduire à un seul fichier (voire deux, si tu en veux un par chapitre et un pour le document, par exemple pour placer des choses à la fin de chaque chapitre mais aussi des choses à la fin du document).
pg
Modérateur
 
Messages: 2599
Inscription: Jeudi 14 Juin 2007, 23:31

Re: hyperref et \tableofcontents

Messagepar GRSG » Lundi 24 Août 2009, 12:52

Comme j'avais compilé un autre fichier qui ne faisait pas appel aux verbatim@out, et que la compilation fonctionnait, je m'étais bien dit que l'erreur venait de la présence des verbatim@out... d'où mon message sur <<ne pas afficher le contenu d'un environnement>>
J'avais conservé les fichiers créés en cas de besoin, mais à l'usage, je constate que sur les 10 fichiers créés, je n'en utilise que 3.
Je vais donc faire le ménage (br...) et utiliser la commande \excludecomment.
Merci pour ta disponibilité et l'efficacité.

Gabriel
GRSG
Méga-utilisateur
 
Messages: 293
Inscription: Mercredi 08 Octobre 2008, 08:45
Statut actuel: Actif et salarié | Enseignant


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Google [Bot], Proximic [Spider] et 48 invités