Я храню все свои ссылки в одном огромном файле BibTeX, который, как оказалось, включает полное название журнала для каждого из них. В настоящее время я готовлю рукопись, в которой необходимо сократить названия журналов.
Из проведенного мной исследования (включая чтение соответствующих вопросов на этом сайте) следует, что (i) стандартного автоматического способа сделать это не существует, но (ii) существуют различные инструменты, такие как biber
и jabref
, которые позволят мне предварительно обработать мой .bib
файл с помощью своего рода глобального поиска и замены названий журналов.
Однако, поскольку в моей рукописи всего несколько ссылок, было бы проще вручную вводить новое название журнала для каждой записи. Есть ли способ сделать это? Я ищу быстрое и грязное решение только для LaTeX, которое не потребует от меня установки чего-либо, что еще не является частью TeX Live, поскольку у меня плотный график. Я знаю, что могу просто редактировать записи в моем файле .bib, но я не хочу этого делать, потому что мне нравится хранить все мои ссылки в одном месте.
Если это важно, я веду свой .bib
файл с помощью BibDesk на Mac, я используюnatbib
пакет, а стиль библиографии — apalike
.
решение1
Я думаю, что ваши ограничения, связанные с отказом от установки чего-либо, затрудняют простое решение, поэтому я предложу следующее решение, основанное на этом ответе.
Как сократить название журнала в цитировании
Загрузите
jabbrv
пакет здесь:http://www.compholio.com/latex/jabbrv/Скачать можно
jabbrv_apalike.bst
здесь:https://github.com/amunn/random-code/blob/main/jabbrv_apalike.bst(Я создал этот файл на основе других.bst
файлов, включенных в пакет.)Если вы действительно торопитесь, добавьте файл
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, чем кто-либо другой, кого я знаю. Его рекомендации надежны и заслуживают изучения.)