Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

\addtocontents et bbl

11 views
Skip to first unread message

Jean-Yves Baudais

unread,
May 14, 2013, 10:41:42 AM5/14/13
to
Bonjour,

Pourquoi que
\addtocontents{bbl}{\protect\addcontentsline{toc}{chapter}{\bibname}}
n'ajoute pas "\addcontentsline{toc}{chapter}{\bibname}" dans le fichier
.bbl ? Pourtant il y a bien un
\@writefile{bbl}{\addcontentsline {toc}{chapter}{Bibliographie}}
dans le fichier .aux ! (Y'a sens doute un truc que j'ai pas compris.)


Jean-Yves

--
Moi j'ai opté pour une Roland TD8 (batterie elec). Le touché et le son sont
vraiment bluffant par rapport à ma batterie acoustique, et surtout, dans un
appart, même si on joue bien, une batterie = le gign qui débarque dans la
demi-heure ;-)
Après, avec une sortie MIDI, doit y avoir moyen d'intégrer ça à Latex. Si
Joss ne l'a pas déjà fait ;-)
-+- drax in fr.comp.text.tex -+-

Pétiard François

unread,
May 14, 2013, 3:00:50 PM5/14/13
to
Le 14/05/2013 16:41, Jean-Yves Baudais a �crit :
> Bonjour,
>
> Pourquoi que
> \addtocontents{bbl}{\protect\addcontentsline{toc}{chapter}{\bibname}}
> n'ajoute pas "\addcontentsline{toc}{chapter}{\bibname}" dans le fichier
> .bbl ? Pourtant il y a bien un
> \@writefile{bbl}{\addcontentsline {toc}{chapter}{Bibliographie}}
> dans le fichier .aux ! (Y'a sens doute un truc que j'ai pas compris.)
>

Bonjour

La commande \@writefile est d�finie ainsi :

\@ifundefined{tf@#1}\relax{\@temptokena{#2}\immediate\write\csname
tf@#1\endcsname{\the \@temptokena}}

et donc elle teste si un certain \tf@#1 (ici, ce sera \tf@bbl) existe.
Ce \tf@... est cr�� lors d'un \newwrite, or le fichier .bbl n'est pas
cr�� ainsi.
Donc \@writefile ne fera rien.
J'ai d'ailleurs du mal � comprendre l'int�r�t de cette manip : si elle
fonctionnait, � chaque compilation vous ajouteriez une ligne
du genre

\contentsline{chapter}{Bibliographie}{...}

dans le fichier toc.


Une id�e (si vous n'utilisez pas biblatex) :

\makeatletter
\renewcommand{\thebibliography}[1]{\chapter*{\bibname}%
\@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}%
\addcontentsline{toc}{chapter}{\bibname}%
\list{\@biblabel{\@arabic\c@enumiv}}%
{\settowidth\labelwidth{\@biblabel{#1}}%
\leftmargin\labelwidth\advance\leftmargin\labelsep%
\@openbib@code\usecounter{enumiv}\let\p@enumiv\@empty%
\renewcommand\theenumiv{\@arabic\c@enumiv}}\sloppy\clubpenalty4000%
\@clubpenalty\clubpenalty\widowpenalty4000\sfcode`\.\@m}
\makeatother

Si vous utilisez biblatex, je ne sais pas...

Fran�ois

--
T'es devenu un fan de pdfLaTeX. Il faut nous dire la date de la
r�volution pour que ce soit notre nouvelle f�te nationale.
-+- Joss in fr.comp.text.tex -+-

Jean-Yves Baudais

unread,
May 15, 2013, 9:13:06 AM5/15/13
to
Bonjour,

Le 14/05/2013 21:00, P�tiard Fran�ois a �crit :
> La commande \@writefile est d�finie ainsi :
>
> \@ifundefined{tf@#1}\relax{\@temptokena{#2}\immediate\write\csname
> tf@#1\endcsname{\the \@temptokena}}
>
> et donc elle teste si un certain \tf@#1 (ici, ce sera \tf@bbl) existe.
> Ce \tf@... est cr�� lors d'un \newwrite, or le fichier .bbl n'est pas
> cr�� ainsi.
> Donc \@writefile ne fera rien.

Merci pour les explications. Y'avait bien un truc que j'avais pas
compris.

> J'ai d'ailleurs du mal � comprendre l'int�r�t de cette manip : si elle
> fonctionnait, � chaque compilation vous ajouteriez une ligne
> du genre
>
> \contentsline{chapter}{Bibliographie}{...}
>
> dans le fichier toc.

Oui, et ce n'est pas tr�s heureux.

> Une id�e (si vous n'utilisez pas biblatex) :

C'est mon cas.

> \makeatletter
> \renewcommand{\thebibliography}[1]{\chapter*{\bibname}%
> \@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}%
> \addcontentsline{toc}{chapter}{\bibname}%
> \list{\@biblabel{\@arabic\c@enumiv}}%
> {\settowidth\labelwidth{\@biblabel{#1}}%
> \leftmargin\labelwidth\advance\leftmargin\labelsep%
> \@openbib@code\usecounter{enumiv}\let\p@enumiv\@empty%
> \renewcommand\theenumiv{\@arabic\c@enumiv}}\sloppy\clubpenalty4000%
> \@clubpenalty\clubpenalty\widowpenalty4000\sfcode`\.\@m}
> \makeatother

Justement, je voulais m'affranchir de la red�finition de
l'environnement. (Ce que je faisais d�j�.) Mon id�e de vouloir �crire
dans le fichier .bbl est d'autant plus stupide que le fichier .bbl est
cr�� par BIBTeX et pas par LaTeX ! Si je veux ajouter un truc dans le
fichier .bbl il faut le faire via BIBTeX en ajoutant
"\addcontentsline{toc}{chapter}{\bibname}" write$ newline$
� la fin de la d�finition de la fonction begin.bib du fichier .bst qui
va bien. (Et �a marche, mais est-il possible dans un fichier .bst perso
de dire � BIBTeX "ajoute moi ce machin l� � la fin de la d�finition de
la fonction begin.bib que tu utililes", une esp�ce de ADDTOFUNCTION ?)
� d�faut d'un ADDTOFUNCTION, y'a peut-�tre aussi une possibilit� avec
LaTeX en �crivant dans le fichier .aux une commande qui va bien pour que
BIBTeX la r�cup�re. Mais 1) ce n'est pas via \citation ou \bibstyle que
�a peut se faire, 2) je ne connais pas les commandes que BIBTeX
interpr�te, 3) pas s�r que cette commande existe ?

Jean-Yves

--
Comme ceux qui utilisent array utilisent aussi assez souvent eqnarray,
je pr�f�re pr�venir plut�t que gu�rir et l�, je serais encore plus
cat�gorique : je ne comprends m�me pas comment une telle horreur peut
exister. Il est m�me possible que Word fasse mieux en la mati�re,
c'est dire.
-+- Jean-C�me in fr.comp.text.tex -+-

0 new messages