Попытка сделать аннотированный стиль цитирования, получение ошибки при создании цитат и библиографии

У меня есть вопрос по некоторому коду csl.

Я пытаюсь преобразовать стиль природы, доступный через Zotero, в аннотированный стиль, который получает аннотацию, цитируя дополнительное поле (аналогично аннотированному 7-му изданию APA).

Я не знаком с кодированием в csl, поэтому благодаря Google узнал, что все, что мне нужно было сделать, это добавить строку <text variable="note" display="block"/> перед </layout> (эту информацию нашел здесь: https://forums.zotero.org/discussion/19552/annotated-bibliography-in-mla-or-chicago-style)

Я так и сделал, и теперь я получаю следующую ошибку при создании стиля в редакторе стилей Zotero:

Ошибка создания цитат и библиографии: ошибка citeproc-js: ошибка несоответствия уровня: хотел bib_first, но нашел bib_other

Я уже проверил свой код с помощью редактора стилей и локалей CSL (https://validator.citationstyles.org/). ) и он не дает мне ошибок. Поиск в Google этого сообщения об ошибке не дает хороших результатов. Я пытаюсь использовать этот стиль в Microsoft Word, как только он заработает.

Вот последние пару строк кода (если убрать строку <text variable="note" display="block"/>, то ошибка исчезнет):

        <text macro="editor"/>
        <text macro="volume"/>
        <text variable="page"/>
        <text macro="issuance"/>
        <text macro="access"/>
      </group>
      <text variable="note" display="block"/> 
    </layout>
  </bibliography>
</style>

Я был бы очень признателен, если бы кто-нибудь мог помочь с этим. Спасибо!


person Fio Da    schedule 26.12.2020    source источник


Ответы (3)


Я не думаю, что это указано в спецификациях, но вы не можете смешивать second-field-align в настройках библиографии с display, установленным для отдельных элементов (потому что они делают однотипные вещи, поэтому процессор CSL не знает, что вы на самом деле хочу сделать).

Я вижу, вы нашли решение, но оно не будет печатать аннотации на новой строке. Если вы все еще хотите этого, вернитесь к

<text variable="note" display="block"/>

Но тогда уберите second-field-align из библиографии, т.е. для Nature превратите его в

<bibliography et-al-min="6" et-al-use-first="1"  entry-spacing="0" line-spacing="2">
person adam.smith    schedule 27.12.2020
comment
Большое спасибо! Это действительно решило проблему. Однако точка в конце цитаты теперь находится на новой строке (это означает, что теперь у меня три строки вместо двух). Есть ли способ предотвратить это или сохранить период между цитатой и аннотацией? - person Fio Da; 15.01.2021
comment
Я думаю, что если вы удалите suffix="." из <layout>, этого может быть достаточно. Затем вы можете добавить его в группу, которая идет от начала до конца прямо перед переменной note, и/или вы можете добавить его в строку с <text variable="note" в зависимости от того, как вам нужна пунктуация. - person adam.smith; 15.01.2021
comment
Это сделало трюк! Я добавил suffix=". " в определенные места внутри ‹layout› ‹/layout›, где, по моему мнению, было бы неплохо иметь их (‹текстовый макрос=суффикс выдачи=. /› ‹текстовый макрос=суффикс доступа=. /›). Спасибо за все что ты сделал для меня! - person Fio Da; 25.01.2021

Хорошо, теперь я смог исправить это, заменив строку, которую я добавил, на

<text variable="note" prefix=""/>

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

person Fio Da    schedule 26.12.2020

Я не проверял это, но думаю, проблема в том, что вы использовали display="block" только для одного элемента под <layout/>. Согласно https://docs.citationstyles.org/en/1.0.1/specification.html#display, Атрибут display ... может использоваться для структурирования отдельных библиографических записей в один или несколько текстовых блоков. Если используется, все элементы рендеринга должны находиться под контролем атрибута отображения.

Если вы хотите, чтобы аннотации появлялись на новой строке, я бы попробовал ввести новый <group display="block">...</group>, который охватывает исходное содержание <layout/> в разделе библиографии, за которым следует <text variable="note" display="block"/>.

person Rintze Zelle    schedule 26.12.2020
comment
На самом деле это не проблема - например. аннотированный стиль APA в репозитории CSL имеет отображение только для одного элемента и работает нормально. Особенно с display="block" это также часто единственный способ получить желаемое поведение. Это на практике; конечно, вы правы насчет спецификаций, и нам, вероятно, следует вернуться к этому моменту. - person adam.smith; 27.12.2020