---
myst:
html_meta:
keywords: LaTeX, composition, annexes, bibliographie, syntaxe,
erreur de BibTeX, chaîne trop longue
---
# Comment gérer une chaîne trop longue dans BibTeX ?
Parfois BibTeX donne l'avertissement suivant :
```text
Warning--you've exceeded 1000, the global-string-size, for entry
XXX
while executing--line 42 of file ma_biblio.bst
*Please notify the bibstyle designer*
```
Il est généralement du à deux causes simultanées :
- un résumé ou une annotation avec un volume de texte important dans la base
de données ;
- l'utilisation du style bibliographique `abstract.bst` ou des styles
qui en sont dérivés (dans la mesure où il n'y a généralement pas
d'annotations dans les autres styles).
## Avec une modification du fichier de style bibliographique
La solution est de faire une copie du fichier de style (par exemple
`abstract-long.bst`). Maintenant, éditez-le :
- trouvez la fonction `output.nonnull`. Sa première ligne (ligne 60
dans la version sur le CTAN) doit être :
```{noedit}
{ 's :=
```
- changez cette ligne en
```{noedit}
{ swap$
```
- enfin, supprimez la dernière ligne de la fonction, qui dit simplement `s`
(ligne 84 dans la version sur CTAN).
Enfin, modifiez votre commande `\bibliographystyle{⟨style⟩}` pour qu'elle fasse
référence au nom du nouveau fichier de `⟨style⟩`.
Cette technique s'applique également à n'importe quel style bibliographique :
la même modification peut être apportée à n'importe quelle fonction
`output.nonnull` similaire.
## Avec une modification de l'entrée bibliographique
Si vous êtes réticent à faire ce genre de changement, la seule solution consiste
à retirer l'entrée de la base de données, afin de ne pas rencontrer la limite
de BibTeX, mais vous pouvez avoir besoin de conserver l'entrée
parce qu'elle sera incluse dans le document dactylographié. Dans ce cas,
placez le corps de l'entrée dans un fichier séparé :
```bibtex
@article{longggggggg,
author = "Fred Bavard",
... = "...",
abstract = "{\input{abstracts/long.tex}}
}
```
De cette façon, BibTeX ne s'occupe que du nom du fichier, mais il demande bien
à TeX (le cas échéant) d'inclure votre texte long présent
dans le fichier `long.tex`.
:::{todo} Ajouter un exemple.
:::
:::{sources}
- [String too long in BibTeX](faquk:FAQ-bibstrtl)
:::