Переопределение полей в файле BibTeX

Переопределение полей в файле BibTeX

Я храню все свои ссылки в одном огромном файле BibTeX, который, как оказалось, включает полное название журнала для каждого из них. В настоящее время я готовлю рукопись, в которой необходимо сократить названия журналов.

Из проведенного мной исследования (включая чтение соответствующих вопросов на этом сайте) следует, что (i) стандартного автоматического способа сделать это не существует, но (ii) существуют различные инструменты, такие как biberи jabref, которые позволят мне предварительно обработать мой .bibфайл с помощью своего рода глобального поиска и замены названий журналов.

Однако, поскольку в моей рукописи всего несколько ссылок, было бы проще вручную вводить новое название журнала для каждой записи. Есть ли способ сделать это? Я ищу быстрое и грязное решение только для LaTeX, которое не потребует от меня установки чего-либо, что еще не является частью TeX Live, поскольку у меня плотный график. Я знаю, что могу просто редактировать записи в моем файле .bib, но я не хочу этого делать, потому что мне нравится хранить все мои ссылки в одном месте.

Если это важно, я веду свой .bibфайл с помощью BibDesk на Mac, я используюnatbibпакет, а стиль библиографии — apalike.

решение1

Я думаю, что ваши ограничения, связанные с отказом от установки чего-либо, затрудняют простое решение, поэтому я предложу следующее решение, основанное на этом ответе.

Как сократить название журнала в цитировании

  1. Загрузите jabbrvпакет здесь:http://www.compholio.com/latex/jabbrv/

  2. Скачать можно jabbrv_apalike.bstздесь:https://github.com/amunn/random-code/blob/main/jabbrv_apalike.bst(Я создал этот файл на основе других .bstфайлов, включенных в пакет.)

  3. Если вы действительно торопитесь, добавьте файл jabbrv_apalike.bstв jabbrvпапку и поместите туда же свой документ TeX. (Это самый быстрый способ ничего не устанавливать).

Если вы хотите установить все правильно, вам следует установить пакет в локальную texmfпапку в следующих местах (вам нужно будет создать jabbrvпапки самостоятельно). На Mac, <path-to-your-local-texmf>= ~/Library/texmf.

  • Путин*.bst<path-to-your-local-texmf>/bibtex/bst/jabbrv
  • Путин jabbrv.sty<path-to-your-local-texmf>/tex/latex/jabbrv
  • Путин*.ldf<path-to-your-local-texmf>/tex/latex/jabbrv

В преамбуле документа TeX добавьте следующую строку:

\usepackage[warnundef]{jabbrv}

И измените команду стиля вашей библиографии:

 \bibliographystyle{jabbrv_apalike}

Проверьте предупреждения на предмет наличия несокращенных слов и для этих слов добавьте в преамбулу строки, подобные следующим:

\DefineJournalAbbreviation{long name}{abbreviation} % No period at the end

Написание этого ответа заняло у меня больше времени, чем на то, чтобы заставить существующий документ работать с этим пакетом.

решение2

один из подходов к нормализации названий журналов (и издателей) — это использование @Stringфункции в вашем .bibфайле. например,

@String{j-CACM = "Communications of the ACM"}

даст вам полное имя, в то время как

@String{j-CACM = "Comm. ACM"}

будут заменены при необходимости сокращений.

тогда конкретная запись будет включать

@Article{...,
  ...
  journal = j-CACM,
  ...,
}

(без кавычек). Затем при необходимости можно заменить параллельные наборы полных названий или сокращений. Это также позволяет избежать возможных проблем, связанных с непоследовательным вводом имен в отдельных записях.

Этот подход, наряду с большой другой информацией относительно обслуживания баз данных bibtex, был представлен Нельсоном Бибом на практической конференции tex 2004 года и привел кобширная статья на тему. (Нельсон знает больше и имеет больше опыта работы с библиографиями Bibtex, чем кто-либо другой, кого я знаю. Его рекомендации надежны и заслуживают изучения.)

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