Как экранировать «and» как разделитель списка в bibtex/biblatex?

Как экранировать «and» как разделитель списка в bibtex/biblatex?

В моем руководстве по BibLaTeX сказано:

Списки литералов разбираются и разделяются на отдельные элементы по andразделителю, но не разбираются далее. Списки литералов могут быть усечены в файле bib с ключевым словом 'and others'. Существует два подтипа:

Буквальные списки в строгом смысле обрабатываются так, как описано выше. Отдельные элементы просто печатаются как есть. Типичными примерами таких буквенных списков являются издатель и местоположение.

Итак, предположим, я хочу записать ассоциированные учреждения в поле списка — я должен был бы использовать «и» в качестве разделителя. Но как вы справитесь с учреждением, имеющим «и» в названии (например, «Фонд науки Сан-Томе и Принсипи»)? Тогда мне пришлось бы написать, например

publisher = { Foundation of Science of São Tomé and Príncipe and Johnson and Johnson Fund for Scientific Research },

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

Итак, как подойти к этому вопросу? Будут ли двойные кавычки намекать парсеру не использовать "and" внутри кавычек в качестве разделителя списка:

publisher = { "Foundation of Science of São Tomé and Príncipe" and "Johnson and Johnson Fund for Scientific Research" },

... или, как я видел \andв Biblatex, команду - может быть, это можно использовать для подсказки парсеру, чтобы он игнорировал другие, некомандные "и" в качестве разделителей списков (или наоборот - не рассматривал команды \andв качестве разделителей)?:

publisher = { Foundation of Science of São Tomé and Príncipe \and Johnson and Johnson Fund for Scientific Research },

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

решение1

И Biber, и BibTeX увидят ключевое слово только andв том случае, если оно не заключено в фигурные скобки, поэтому вы можете ввести поле publisher(или любое другое поле, которое используется andв качестве разделителя) следующим образом:

publisher = {{Foundation of Science of São Tomé and Príncipe}
             and
             {Johnson and Johnson Fund for Scientific Research}}

или даже просто скрыть литерал andвнутри фигурных скобок:

publisher = {Foundation of Science of São Tomé {and} Príncipe
             and
             Johnson {and} Johnson Fund for Scientific Research}

Biber позволяет использовать другую строку, отличную от строки по умолчанию, andдля разделения списков и имен (см.§3.7 Разделители списков и имен). Для этого можно использовать параметры командной строки --listsepи --namesep, например:

biber --listsep='und' <document>

то ваш список можно записать так:

publisher = {Foundation of Science of São Tomé and Príncipe
             und
             Johnson and Johnson Fund for Scientific Research}

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


Просто для справки, moewe указал на раздел в руководстве BibLaTeX (§2.3.4 Буквальные спискистр. 34–35 (т. 3.14)), который объясняет это:

Поля <code>institution</code>, <code>organization</code>, <code>publisher</code> и location являются буквальными списками в терминах §[2.2](https://mirrors.ctan.org/macros/latex/contrib/biblatex/doc/biblatex.pdf#subsection.2.2). Это также относится к <code>origlocation</code>, <code>origpublisher</code> и к псевдонимам полей <code>address</code> и <code>school</code>. Все эти поля могут содержать список элементов, разделенных ключевым словом «and». Если они содержат литерал '<code>and</code>', он должен быть заключен в фигурные скобки.<pre><code>publisher = {William Reid {and} Company},<br>institution = {Office of Information Management {and} Communications},<br>organization = {American Society for Photogrammetry {and} Remote Sensing<br> and<br> American Congress on Surveying {and} Mapping},</code></pre>Обратите внимание на разницу между литералом '<code>{and}</code>' и разделителем списка '<code>and</code>' в приведенных выше примерах. Вы также можете заключить все имя в фигурные скобки.

иРуководство BibTeX( texdoc bibtex) также намекает на эту функцию:

Этот последний пункт раздела описывает имена BibTeX (которые появляются в поле <code>author</code> или <code>editor</code>) немного подробнее, чем то, что представлено в Приложении B книги LaTeX. В дальнейшем «имя» соответствует человеку. (Помните, что вы разделяете несколько имен в одном поле словом «<code>and</code>», окруженным пробелами и не заключенным в фигурные скобки. Этот пункт касается структуры одного имени.)

(выделено «слово ' and', окруженное пробелами и не заключенное в фигурные скобки»).

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