%Mode d'emploi BibTeX a Johnny

\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em
    T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}

\title{B\kern-.05em{\large I}\kern-.025em{\large B}\kern-.08em\TeX er}
\author{Anne Buttighoffer\ , Alain Coulais et Eric Lef\`evre}

\date{Septembre 1995}



\documentclass[twoside,a4paper]{article}
\usepackage [frenchb] {babel}% "francisation" de LaTeX
\usepackage{multicol}

\begin{document}

\maketitle



\section{Bonne nouvelle !!}

\BibTeX\ permet d'utiliser des fichiers contenant
un ensemble de r\'ef\'erences bibliographiques entr\'ees ``une fois pour
toutes'' sous forme standardis\'ee et de pouvoir les pr\'esenter
dans un document \LaTeX\ selon les diff\'erents formats
requis par les nombreux journaux ou bases bibliographiques existants.
Autrement dit, fini la corv\'ee ininterressante et longue qui consiste
\`a ``rentrer \`a la main'' les r\'ef\'erences bibliographiques
souvent les m\^emes en faisant attention \`a les adapter aux
exigences du format de publication bref de faire le travail de l'\'editeur.
L'id\'ee de g\'enie consiste en fait \`a s\'eparer le fond (ici les
r\'ef\'erences bibliographique) \'ecrites dans un fichier {\tt bidule.bib}
de la forme (titres en italiques, volumes en gras ou soulign\'es...) cod\'ee
dans un fichier {\tt machin.bst}: il suffit alors d'utiliser
{\tt truc\_muche.bst} \`a la place de {\tt machin.bst} pour changer
la forme ``Formidable~!~''. 

\section{Fonctionnement}

Voici comment \c{c}a marche ( enfin d'apr\`es ce que j'en ai compris
h\'e oh moi pas \TeX perte~!!~):
\begin{enumerate}
\item{
Le fichier {\tt Mon\_fichier.tex} est lu par \LaTeX, il doit contenir
la s\'equence:\\
\verb|\bibliography{bidule}|\\
\verb|\bibliographystyle{machin}|\\
et des \verb|\cite{|{\it clef}\verb|}| dans le texte.
Ces appels sont not\'es dans le fichier {\tt Mon\_fichier.aux}
qui est cr\'e\'e. ``Ah bien, je le note~!~''
}
\item{
Il faut alors faire tourner \BibTeX\ sur
{\tt Mon\_fichier}, les fichiers
{\tt bidule.bib} et {\tt machin.bst} sont alors lus pour produire
une bibliographie extraite de {\tt bidule.bib} avec le format bibliographique
d\'efinit dans {\tt machin.bst}. Le r\'esultat {\tt Mon\_fichier.bbl} de
cette compilation contient la s\'equence de commandes bibliographiques
habituelles de \LaTeX\ (c'est ce que l'on aurait d\^u ``entrer
\`a la main'': les \verb|\bibitem|).
}
\item{
Au passage suivant de \LaTeX\ sur {\tt Mon\_fichier.tex} le miracle devrait
se produire...
}
\end{enumerate}

\section{Ok ok ben comment ?}

\subsection{les bases bibliographiques}

Voici quelques examples de ce que l'on peut faire. Tout d'abord, comme
avec l'environement {\tt bibliography} normal de \LaTeX , on peut faire
des citations avec \verb|\cite{|{\it clef} \verb|}|
comme celle-ci \cite{doc-joh}
(qui est r\'edig\'e en fran\c{c}ais bien s\^ur). Par d\'efaut, seules les
r\'ef\'erences appel\'ees par leur clef dans un \verb|\cite| seront
class\'ees et report\'ees dans la biblio (on extrait de la base
bibliographique uniquement ce dont on a besoin). Pour citer tout le contenu du
fichier biblio, il faut utiliser \verb|\nocite{*}| avant 
\verb|\bibliography{bidule}| ou bien \verb|\nocite{|{\it clef}
\verb|}|
pour ajouter une r\'ef\'erence non cit\'ee dans le texte .
%\newpage
Les r\'ef\'erences sont s\'epar\'ees en plusieurs cat\'egories
({\tt Article Book PhDThesis} ...) et comprennent diff\'erent
champs ({\tt author title year} ...) entr\'ees dans le
format suivant:
\begin{verbatim}
@ARTICLE{Ess1-etal,
   author  = "Tom Toto and others",
   title   = "Exemple d'article avec 1 auteur et un et~al.",
   journal = jito,
   volume = 92,
   pages   = 207,
   year    = 1999,
}

@ARTICLE{Ess2-etal,
   author  = "Tim Titi and Tom Toto and others",
   title   = "Voyez la diff\'erence~!",
   journal = jiti,
   volume = 308,
   pages   = "954--965",
   year    = 2001,
}

@ARTICLE{Ess6,
   author  = "Relax Max and Alaise Blaise and Raoul Cool and
Fo Pa\c{c}anfer and Ya Padl\'ezard and Va Sfervir\'e",
   title   = "Et \c{c}a c'est pas beau~?",
   journal = "Revue des Miracles",
   volume = 1,
   pages   = "1954--1965",
   year    = 2010,
}
\end{verbatim}
o\`u {\tt Ess1-eta}, {\tt Ess2-etal} et {\tt Ess6} sont les clefs. Les auteurs sont
s\'epar\'es par des {\tt and} ce qui permet d'utiliser les {\tt ,} sans
ambigu\"\i t\'e ({\tt Tom Toto, Jr. and Tim Titi and ...}). Les
{\tt and others} produisent des {\tt et al.} automatiquement. {\tt jito} et
{\tt jiti} ont \'et\'ees pr\'ed\'efinies pour 'Journal Interne des Totos'
et 'Journal Internationnal des Titis' en pla\c{c}ant en t\^ete du {\tt.bib}:\\
\verb|@STRING{jito = "Journal Interne des Totos"}|\\
\verb|@STRING{jiti = "Journal Internationnal des Titis"}|


\subsubsection{Remarques pratiques}
Il est possible d'utiliser des commeandes \LaTeX\ dans les champs. Par
exemple pour les signes $>$ \verb|$>$|, \verb|{M}ajuscule| pour imposer
\`a \BibTeX\ de garder une majuscule, {\tt --} pour les tirets longs etc.
comme d\'efinis dans \cite{latex}. Tous les carateres accentu\'es peuvent
\^etre \'ecrits comme dans un fichier \LaTeX\ normal sauf les \verb|"|
qui doivent \^etre \'ecrits \verb|{\"a}| (pour ne pas provoquer de confusion
avec les guillemets d\'elimitant les champs)

Si l'on ignore des informations sur certains champs (volume du journal,
mois de publication ...) rien de plus simple: on ne les \'ecrit pas.
L'ordre des diff\'erents champs n'a pas d'importance (\BibTeX\ ne s'en
occupe pas). Il est \`a noter que les fichiers de format {\tt .bst} sont
pr\'evus pour supporter certains oublis mais pas tous: ne pas mettre
d'auteur \`a un article ou un livre produit une erreur et \BibTeX\
refusera de citer cette r\'ef\'erence ce qui, en y r\'efl\'echissant
bien, semble tout \`a fait normal ``Ben oui Mais pourquoi~?~''.

Dernier point, si des erreurs se produisent lors de la compilation, elles
peuvent provenir du fait que des symboles suppos\'es pr\'ed\'efinis ne le
sont pas en r\'ealit\'e (ex. \verb|\BibTeX| pour \BibTeX\ n'est pas toujours
d\'efini). 

\subsection{En ce qui concerne les .bst alors moi je dis:}

Le format des fichiers {\tt .bst} est nettement moins clair (~pour moi~!!~),
le plus simple est de prendre un fichier d\'ej\`a existant et de le modifier.
On peut alors mettre les titres en italique, les volumes en gras, choisir
de mettre les initiales des auteurs ou le pr\'enom en entier... Mais quelques
essais sont n\'ecessaires avant que \c{c}a marche ``pile poil''.

Le langage est \`a notation polonaise inverse (ordre1, ordre2, test). Les
commentaires sont les \%
comme en \TeX. La liste des champs utils est d\'eclar\'ee en d\'ebut de
fichier pour plus de d\'etails voir \cite{btxdoc} et \cite{btxhak}.

\newpage
Voici quelques exemples pour s'attaquer aux titres ou aux noms des auteurs.
Tout d'abord voici le style standard ({\tt plain.bst}) :
\begin{verbatim}
.... plein de trcs ...

INTEGERS { nameptr namesleft numnames}

FUNCTION {format.names}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
      nameptr #1 >
	{ namesleft #1 >
	    { ", " * t * }
	    { numnames #2 >
		{ "," * }
		'skip$
	      if$
	      t "others" =
		{ " et~al." * }
		{ " and " * t * }
	      if$
	    }
	  if$
	}
	't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

FUNCTION {format.authors}
{ author empty$
    { "" }
    { author format.names }
  if$
}

... ``Et ca continue encore et encore
      C'est que le debut d'accord d'accord''....
\end{verbatim}

Il produit des noms d'auteurs comme ceux-ci: {\tt Tom Toto, Tim Titi, ...}
il met {\tt et al.} pour les {\tt and others} rencontr\'es et {\tt , et al.}
si il y au moins deux auteurs cit\'es avant.

\newpage
On peut bricoler pour avoir les noms des auteurs de la fa\c{c}on
suivante:\\ {\tt Toto T., T. Titi, ...} et mettre
automatiquement un {\tt et al.} apr\`es 5 auteurs.
Gr\^ace \`a ces quelques lignes:
\begin{verbatim}
INTEGERS { nameptr namesleft numnames limaut}

FUNCTION {format.names}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  #5 'limaut :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { nameptr #1 >
	{s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=}
        {s nameptr "{vv~}{ll~}{f.}{, jj}" format.name$ 't :=}
      if$			
      nameptr #1 >
       nameptr limaut > 
	{ "others" 't :=
	#0 'namesleft :=}
        'skip$
        if$
	{ namesleft #1 >
	    { ", " * t * }
	    {
	     numnames #2 >
		{ "," * }
		'skip$
	      if$
	      t "others" =
		{ " et~al." * }
		{ " and " * t * }
	      if$
	    }
	  if$
	}
	't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}
\end{verbatim}


Ah que cool non ? Remarquez l'effet de ces ordres sur l'auteur
Va Sfervir\'e dans \cite{Ess6} (en voila un qui porte bien
son nom). 
\center{Bon courage !! \footnote{En cas de probl\`eme, il est toujours possible de faire tourner
un des fichiers {\tt .bst} de d\'efaut ({\tt plain.bst} par exemple)
puis d'\'editer le fichier {\tt .bbl} produit pour le corriger.
}}

\newpage
\nocite{*}
\bibliography{bib_doc}
\bibliographystyle{AB_bib}
\end{document}
