Je compose une anthologie poétique.

Chaque poème est un fichier .tex indépendant, qui est inclus dans l'anthologie via la commande \include.

Pour ajouter une bibliographie à un tel document, il faudrait que je rédige à part un long document .bib. Ce n'est pas pratique, et vu que l'anthologie comporte plusieurs centaines de poèmes, ça finirait par être difficile de s'y retrouver.

Y a-t-il un moyen d'inclure (via un script externe ou autre) les références du poème dans son fichier .tex, comme ci-dessous ? Ce serait bien plus pratique !

Ouvrir dans l'éditeur Overleaf
\begin{cverse}{vers le plus long}
    \poemtitle{Titre}
        texte\\
        texte texte.

        vers le plus long\\
        texte texte.

    \index{premier mot}
    \index{deuxième mot}
    \index{troisième mot}

    @book{AuteurAnnée,
        author = AuteurNom, AuteurPrénom,
        title = {TitreRecueil},
        publisher = {éditeur},
        location = {lieu},
        year = {année}
    }

\end{cverse}

PS : l'environnement cverse, ci-dessus, a été créé au sein du présent forum par @Bernard qui répondait à l'une de mes questions. Je le remercie à nouveau.

Posée 03 Déc '20, 18:20

Pathe's gravatar image

Pathe ♦♦
7.5k29197245
Taux d'acceptation : 55%

Modifiée 03 Déc '20, 18:51

1

Coquille dans le titre:biographie au lieu de bibliographie

(03 Déc '20, 18:38) joseph-tux joseph-tux's gravatar image

Dans un cours de Thierry Masson (Exposé sur LaTeX - 2010-2011), il expose l'environnement thebibliography, que je reproduis ici.(je n'ai pas encore tout compris, je teste)

Il y a aussi une courte présentation dans le document: «Une courte introduction à LaTeX2e» (version du 25 avril 2011: page 93 (la page 111 du fichier)

(03 Déc '20, 19:01) joseph-tux joseph-tux's gravatar image

On risque de finir avec des entrées répétées, non?

(12 Déc '20, 11:13) touhami touhami's gravatar image

@touhami : oui, c'est une possibilité. Faut être vigilant, voilà tout. J'ai le sentiment que la solution idéale n'existe pas.

(12 Déc '20, 11:55) Pathe ♦♦ Pathe's gravatar image

Je ne suis pas sûr de comprendre exactement ce que vous voulez faire, mais voici un premier jet :

1) dans chaque fichier poeme.tex, on ajoute les lignes suivantes :

Ouvrir dans l'éditeur Overleaf
\writebib{clef_bib}
{@Book{clef_bib,
  champ = {valeur},
  champ = {valeur},}
}

Cette fonction (définie ci-dessous) écrira l'entrée bibliographique dans un fichier .bib, et fera un \nocite pour que la référence biblio soit incluse dans la bibliographie.

2) Dans le fichier principal, on définit cette fonction, et on ajoute la biblio. Grosso modo, ça donne :

Ouvrir dans l'éditeur Overleaf
 \documentclass{article}

\makeatletter
\newwrite\@bib
\immediate\openout\@bib=list.bib
\def\writebib#1#2{%
  \expandafter\ifx\csname @poemebib@#1\endcsname\relax
    \expandafter\def\csname @poemebib@#1\endcsname{}%
    \immediate\write\@bib{#2}%
  \fi
  \nocite{#1}}
\AtEndDocument{\immediate\closeout\@bib}
\makeatother

\begin{document}

\title{Mon titre}
\maketitle

\include{poeme1}
\include{poeme2}

\bibliographystyle{plain}
\bibliography{list}

\end{document}
Lien permanent

Publiée 04 Déc '20, 00:51

nmarkey's gravatar image

nmarkey
1.4k19
Taux d'acceptation : 44%

Modifiée 13 Déc '20, 23:44

@nmarkey : formidable ! It tames the beast ;)

(04 Déc '20, 01:14) Pathe ♦♦ Pathe's gravatar image

Oui, Pathe, ça donne envie de se lancer dans l'étude de TeX

(07 Déc '20, 20:00) joseph-tux joseph-tux's gravatar image

Extrait de Exposés sur LaTeX 2010-2011 de Thierry Masson, version du 25 février 2012, page 45.

Il s'agit d'une commande de base de LaTeX, sauf erreur de ma part.

La bibliographie

L’environnement thebibliography démarre un nouveau chapitre ou une nouvelle section (selon la classe) et installe une liste pour présenter des références bibliographiques :

Ouvrir dans l'éditeur Overleaf
\begin{thebibliography}{00}
  \bibitem{ChamConn07} Ali~H. Chamseddine and Alain Connes.
   \newblock {Why the Standard Model}.
   \newblock {\em Journal of Geometry and Physics}, 58:38-47, 2008.
  \bibitem[Wei67]{Wein67a} Stephen Weinberg.
   \newblock A model of leptons.
   \newblock {\em Phys. Rev. Lett.}, 19(21):1264-1266, Nov 1967.
\end{thebibliography}

Les entrées sont libellées en interne par l’argument obligatoire de bibitem[-]{-}.

Par défaut, les entrées ont un libellé apparent sous forme d’un numéro (dans l’ordre).

L’argument optionnel produit un libellé apparent personnalisé.

L’argument obligatoire de l’environnement thebibliography sert à fixer la largeur maximale des libellés apparents (seul le nombre de lettres compte !).

On peut citer une référence bibliographique avec :

Ouvrir dans l'éditeur Overleaf
\cite[-]{-} :
\cite{ChamConn07} → [1], \cite{Wein67a,ChamConn07} → [Wei67a,1],
\cite[Thm~4]{ChamConn07} →[1,Thm 4]

Si je reprends ton exemple, il donnerait ceci :

Ouvrir dans l'éditeur Overleaf
\documentclass[french,a4paper,12pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\begin{document}
\begin{verse}{Vers le plus long}
  \paragraph{Titre}
        texte\\
        texte texte.

        vers le plus long\\
        texte texte.

    \index{premier mot}
    \index{deuxième mot}
    \index{troisième mot}

    \cite{AuteurAnnee}
      \end{verse}

  \begin{thebibliography}{00}
      \bibitem[Label]{AuteurAnnee}  AuteurNom, AuteurPrénom.
      \newblock{TitreRecueil}.
      \newblock{éditeur},
      \newblock{lieu},
      \newblock{année}
  \end{thebibliography}

\end{document}
Lien permanent

Publiée 03 Déc '20, 19:01

joseph-tux's gravatar image

joseph-tux
42722552
Taux d'acceptation : 4%

Modifiée 03 Déc '20, 20:23

@joseph-tux : j'ai inclus le code de votre deuxième réponse dans celle-ci.

thebibliography est en effet un environnement de base de LaTeX. J'ai malheureusement l'impression que l'utiliser revient à se priver des bénéfices apportés par une base de données bibliographiques, telle que représentée par un fichier .bib. Je vais faire un essai, mais j'ai l'impression que c'est plutôt adapté à un petit nombre de références.

(03 Déc '20, 19:55) Pathe ♦♦ Pathe's gravatar image

Oui, on se prive de la base bibliographique, mais si j'ai bien compris, la question est justement de n'avoir pas à utiliser une base de données fichier.bib.

Le 2eme argument {00} sert à aligner les références (ici sur 2 caractères)

Un argument optionnel de \bibitem permet d'utiliser un label plutôt qu'un numéro, (je l'ai ajouté à l'exemple) mais ici je suppose que la commande cite est inutile.

(03 Déc '20, 20:21) joseph-tux joseph-tux's gravatar image

Continuant mon exploration:

Pour modifier le titre «Références» il faut modifier \refname

(03 Déc '20, 20:46) joseph-tux joseph-tux's gravatar image

Le truc, c'est que j'ai des centaines de documents. Je ne sais pas si thebibliography serait une bonne solution.

(03 Déc '20, 20:56) Pathe ♦♦ Pathe's gravatar image

Pourquoi ne pas créer un fichier .bib avec un outil fait pour cela, tel que JabRef ? Il suffit de remplir des champs.

(03 Déc '20, 21:50) Bernard Bernard's gravatar image

Je ne suis pas sûr d'avoir compris la question, par exemple si la réponse de Bernard est la bonne.

Le problème est-il:

  • de ne vouloir qu'un seul fichier et se passer de fichier bib (pourquoi?)

  • de réduire le travail qu'exige un fichier bib pour une grosse bibliographie?

  • d'écrire la bibliographie au fur et à mesure de l'écriture pour qu'elle soit reliée de façon plus évidente au poême concerné en étant rédigée dans le même fichier tex? (ce que j'ai cru comprendre)

  • un objectif différent de ces propositions?

(13 Déc '20, 19:59) joseph-tux joseph-tux's gravatar image

La troisième hypothèse est la bonne ; il est difficile de se retrouver dans un très long fichier .bib. Malheureusement, comme l'a fait remarquer @touhami plus haut, ça rend possible des doublons.

Quant à l'utilisation de JabRef, ben... c'est un logiciel avec une interface graphique. Si je pouvais ne l'utiliser qu'au clavier, pourquoi pas ; mais jusqu'ici j'ai toujours eu besoin du clickodrome pour m'en servir. Savez-vous s'il est possible de remplir une base JabRef à l'aide d'une douchette, pour scanner les code-barres des livres ?

(13 Déc '20, 22:00) Pathe ♦♦ Pathe's gravatar image
1

@Pathe: j'ai modifié ma réponse pour éviter les doublons.

(13 Déc '20, 22:40) nmarkey nmarkey's gravatar image

Peut-être plus réaliste que la douchette et les code-barres : recourir, non pas à JabRef, mais à Zotero qui, une fois installé avec son module pour Firefox, permet d'y remplir les champs bibliographiques d'un ouvrage par simple et unique clic quand on se trouve sur une page Web qui contient les métadonnées correspondantes (comme c'est par exemple le cas sur le site de la BNF). En revanche, contrairement à JabRef, Zotero ne travaille pas directement avec des fichiers .bib et il faut donc recourir au convertisseur Better BibLaTeX. Plus de détails p. ex. ici.

(13 Déc '20, 22:44) denis ♦♦ denis's gravatar image

@nmarkey À mon avis, il faut garder la première version. En effet ce que vous avez ajouté est inutile. Car le problème ne se pose que lorsque on introduit la même référence avec des étiquettes différentes. Une solution (partielle) est de retoucher le style de la bibliographie.

(14 Déc '20, 15:40) touhami touhami's gravatar image

@touhami Oui. Enfin, ça dépend de quel problème on parle : BibTeX va arrêter la compilation s'il y a 2 entrées avec la même clé ; biber va juste mettre un warning, il me semble. Le problème des entrées identiques avec des clés différentes passe en effet (par exemple) par une détection au niveau du style biblio. Mais ça risque de ne pas être complètement fiable (il faut que les champs testés soient vraiment identiques...) À vrai dire, dans pareille situation, je ferai un seul fichier .bib, découpé en plusieurs morceaux...

(14 Déc '20, 18:21) nmarkey nmarkey's gravatar image
Affichage de 5 parmi 11 Afficher 6 commentaire(s) en plus
Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.