Можно ли включить один файл .bib в другой?

Можно ли включить один файл .bib в другой?

Когда я начал писать документы, я решил использовать один .bibфайл в главном каталоге документов. Каждый документ будет создан в подкаталоге и будет заканчиваться на

\bibliography{../biblio} 
\end{document}

Теперь я понимаю, что это, возможно, был не самый разумный выбор, поскольку мое .bibдосье значительно разрослось.

Чтобы избежать необходимости исправлять все мои .texфайлы, я хотел бы узнать, можно ли включить другие .bibфайлы (например, один для статей, один для книг, один для URL-адресов и т. д.) из «основного» файла.

Или у вас есть другие предложения, которые помогут мне избежать столь утомительной (но, вероятно, заслуженной) задачи.

решение1

Короткий ответ на ваш вопрос — нет. Как @daleif упомянул в комментариях, .bibформат файла не имеет функции или поля, похожего на ввод. .bibФормат файла — это просто ряд идентификаторов полей, таких как @BOOKи @ARTICLE, а также полей @PREAMBLEи @STRING.документацияпоскольку фактический bibtexязык постфикса также не упоминает функцию ввода (насколько я могу найти). Кажется, что это bibtexжестко закодировано только для извлечения данных bib из .auxфайла, поэтому единственный способ для документа получить доступ к ссылкам по нескольким .bibфайлам — указать их в виде списка, разделенного запятыми, в аргументе \bibliography.

Единственное решение, которое я могу предложить для вашей проблемы, — написать короткий скрипт, который будет выполнять поиск и замену с помощью \bibliography{../biblio}. \bibliography{file1,file2,etc}Как это сделать, зависит от инструментов, доступных на вашем компьютере. Например, в Unix-подобной системе вы, вероятно, могли бы объединить findс sed. Для более платформенно-независимого подхода можно использовать скриптовый язык, например Perl.

Однако если вам просто неудобно редактировать большой .bibфайл в текстовом редакторе, вы можете предпочесть использовать менеджер ссылок, такой как JabRef.

Связанный контент