¿Cómo puedo utilizar varios archivos .bib que no son de entrada separados, sin fusionar?

¿Cómo puedo utilizar varios archivos .bib que no son de entrada separados, sin fusionar?

Supongamos que tengo un cats.biby hats.bibque quiero usar en un artículo sobre gatos con sombrero. Ya hay undocumento existente sobre eso(bueno, más o menos), que tengo en ambos archivos.

Ahora lo hagonodesea fusionar estos archivos (a diferencia de enesta preguntayÉste). IsoyEstoy dispuesto a permitir que cualquier herramienta que utilice ignore la posibilidad de diferencias entre las entradas y simplemente elija la que quiera (ni siquiera de manera consistente; quiero decir, estoy dispuesto a garantizar que realmente sean copias de la misma entrada). En estas condiciones, ¿qué puedo hacer para poder utilizar ambas bibliografías en mi documento LaTeX sin recibir ningún error?

Si sugiere hacer algo fusionándolos temporalmente solo con el propósito de compilar el documento, sugiera algo que se integre, digamos latexmk, para que no tenga que hacerlo manualmente repetidamente y, con suerte, también que cualquier herramienta que haga esto obtenga los nombres de las bibliografías del .texpropio archivo en lugar de a priori.

Respuesta1

Puedes utilizar tantos .bibarchivos como quieras. Las entradas duplicadas darán como resultado un error BibTeX que no tiene consecuencias y solo conserva la primera entrada encontrada.

\begin{filecontents*}{\jobname-cats.bib}
@article{unique-cats,
  author={A. Uthor},
  title={Title},
  journal={Journal},
  year=2016,
}
@article{duplicate,
  author={W. Riter},
  title={Title},
  journal={Journal},
  year=2016,
}
\end{filecontents*}
\begin{filecontents*}{\jobname-hats.bib}
@article{unique-hats,
  author={P. Laywright},
  title={Title},
  journal={Journal},
  year=2016,
}
@article{duplicate,
  author={W. Riter},
  title={Title},
  journal={Journal},
  year=2016,
}
\end{filecontents*}

\documentclass{article}

\begin{document}

\title{Cats in hats}
\author{Einpoklum}
\maketitle

We want to cite \cite{unique-cats}, but also \cite{unique-hats}.

There is a duplicate \cite{duplicate}.

\bibliographystyle{plain}
\bibliography{\jobname-cats,\jobname-hats}

\end{document}

Aquí está la advertencia de BibTeX:

This is BibTeX, Version 0.99d (TeX Live 2016)
The top-level auxiliary file: einmulti.aux
The style file: plain.bst
Database file #1: einmulti-cats.bib
Database file #2: einmulti-hats.bib
Repeated entry---line 7 of file einmulti-hats.bib
 : @article{duplicate
 :                   ,
I'm skipping whatever remains of this entry
(There was 1 error message)

ingrese la descripción de la imagen aquí

Respuesta2

Los archivos Bib son simplemente texto sin formato y no hay equivalente, por \end{document}lo que puede simplemente concatenarlos (ya que acepta la responsabilidad por las entradas duplicadas).

En Linux --shell-escapepodrías hacer algo como

\documentclass{article}
\immediate\write18 {cat nice_papers*.bib > \jobname.bib}
\addbibresource{\jobname.bib}
\begin{document}

En Windows sería similar: en lugar de cat...you usarías copy /y nice_papers*.bib \jobname.bib. Esto supone biblatex, pero el cambio para bibtex es trivial ( \bibliography{\jobname}).

Esto debería ser compatible latexmkya que no utiliza herramientas externas.

Una cosa a tener en cuenta es que sus archivos bib de origen deben terminar con una o más líneas nuevas para que no termine con una línea basura en el punto de fusión (esto es especialmente cierto si tienecomentarios en tu bibfile)

información relacionada