Добавить пользовательские поля в модель данных Biber

Добавить пользовательские поля в модель данных Biber

ОТРЕДАКТИРОВАНО, чтобы сделать вопрос более понятным

У меня такое же желание, как и у оригинального автора этого поста. этот вопрос.

Я также смог добавить нужные мне поля в biberмодель данных s и вуаля: запуск biber --toolбольше не выдает предупреждения о моих дополнительных полях. Пока все хорошо.

Как описано в этом вопросе, на который я сам себе отвечаю, я скопировал файл модели данных из biber(т.е. biber --tool-config) и добавил свои поля.

<config>
<!-- skipped 383 lines -->
  <datamodel>
    <!-- skipped "constants" and "entrytypes" --> 
    <fields>
      <!-- skipped all predefined fields --> 
      <field fieldtype="field" datatype="literal">source</field>
      <field fieldtype="field" datatype="literal">copyright</field>
    </fields>
    <entryfields>
      <field>source</field>
      <field>copyright</field>
    <!-- skipped remainder of file -->
    </entryfields>
  </datamodel>
</config>

Теперь мой вопрос: есть ли возможность записать мои пользовательские поля в дополнительный файл конфигурации модели данных, чтобы он улучшил любую модель данных, которая будет использоваться в будущих версиях biber?

Глава 3.1.2 описывает, что biberиспользует "карты уровня пользователя", которые могут быть объявлены командой LaTeX или в файле конфигурации. В руководстве говорится, что эта sourcemapопция может быть использована для "Добавления новых полей в запись", что как раз и есть мое желание.

Это было бы лучшим решением. Это гарантировало бы, что модель данных по умолчанию в ее последней редакции всегда будет загружена как модель по умолчанию, и за счет дополнительной загрузки моих полей через второй, дополнительный файл конфигурации все поля будут доступны. Мне не нужно регулярно проверять, biberобновила ли команда модель данных, и, таким образом, вставлять также последние изменения в мой улучшенный файл.

Какое содержимое необходимо определить в файле, чтобы загрузить его для --sourcemap=<extension-config>расширения карты данных по умолчанию с помощью моих настраиваемых полей?

решение1

Вам не нужно помещать всю модель данных в файл конфигурации, только дополнения или изменения. Смотрите главу «Модель данных» вbiber :https://sourceforge.net/projects/biblatex-biber/files/biblatex-biber/current/documentation/biber.pdf/download

Например, начиная с версии 3.13 в приведенном выше документе, чтобы добавить directorполе в videoentrytypes, вставьте в файл конфигурации следующее biber:

<?xml version="1.0" encoding="UTF-8"?>
<config>
  <datamodel>
    <fields>
      <field fieldtype="list" datatype="name">director</field>
    </fields>
    <entryfields>
      <entrytype>video</entrytype>
      <field>director</field>
    </entryfields>
  </datamodel>
</config>

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