Хронологические встроенные цитаты - модификация файла CSL

Я знаю, что порядок ссылок внутри встроенной группы ссылок определяется стилем ссылок .csl. Мне интересно, может ли кто-нибудь дать рекомендации о том, как редактировать существующий стиль, который не упорядочивает встроенные цитаты в хронологическом порядке, чтобы он это делал. В частности, меня интересует изменение Природный стиль (рекомендации), поэтому элементы из групп, цитируемых как, например, «1-5» в тексте, сортируются в библиографии в хронологическом порядке.

Изменить: мне нужно, чтобы это не нарушало правила издателя по формату цитирования.


person Evan    schedule 11.04.2017    source источник
comment
Можете ли вы добавить ссылку на правила издателя?   -  person Rintze Zelle    schedule 11.04.2017
comment
@RintzeZelle готово!   -  person Evan    schedule 11.04.2017
comment
Ах, так это для самой Природы? Я не могу найти никаких упоминаний о том, что они хотят, чтобы цитаты в тексте сортировались в хронологическом порядке внутри группы цитат. Не могли бы вы указать мне соответствующий раздел?   -  person Rintze Zelle    schedule 11.04.2017
comment
@RintzeZelle Действительно, нет спецификации для порядка цитирования внутри группы. Это оставляет авторам свободу придумывать свой собственный порядок (хронологический, по важности и т. д.). Я предпочитаю не упорядочивать по важности (что субъективно), поэтому я предпочитаю упорядочивать в хронологическом порядке, а не произвольно. Меня беспокоит то, что произвольный порядок может быть ошибочно принят за мое собственное восприятие важности исследований.   -  person Evan    schedule 11.04.2017


Ответы (2)


Я один из разработчиков CSL, и вы не можете указать это поведение в текущей версии CSL 1.0.1. Я думаю, у вас есть три варианта:

  1. Вы можете автоматически сортировать ссылки в тексте в группах ссылок в хронологическом порядке и оставлять библиографию в порядке ссылок. Однако, поскольку нумерация элементов всегда основана на порядке библиографии, это может привести к странному виду цитат, таких как «4,3,5» (например, если вы сначала цитируете элемент 3, а затем цитируете элементы 3, 4 и 5, с пунктом 3, имеющим дату выпуска между пунктами 4 и 5).
  2. Если это приемлемо для вас, вы, вероятно, получите лучшие результаты, отсортировав всю библиографию в хронологическом порядке. https://gist.github.com/rmzelle/bc869c900549226483123c11b0a90cb9/revisions#diff-505d66a4e3748adc6417742a07ce4f51 показывает необходимую модификацию в стиле Nature для достижения этого (сортировка по годам).
  3. Вы, вероятно, могли бы также достичь этого с текущим стилем, если вы убедитесь, что всякий раз, когда вы цитируете несколько новых элементов в одной цитате, вы цитируете их в хронологическом порядке.
person Rintze Zelle    schedule 11.04.2017
comment
(1): Правило должно быть иерархическим. Например, если я цитирую 3 отдельно, а затем цитирую 3 с двумя хронологически более ранними ссылками, в цитировании все равно будет указано 3-5, но 3 будет стоять перед 4 и 5 в библиографии. На самом деле, это то, что происходит, если я использую решение (3) через мой программный плагин диспетчера ссылок. (2) нарушит правила цитирования, и (3) это то, чем я сейчас занимаюсь. Я просто хотел бы, чтобы это было сделано автоматически. - person Evan; 11.04.2017
comment
Тогда я не думаю, что это можно сделать автоматически прямо сейчас. Насколько мне известно, порядок, в котором вы цитируете элементы в настоящее время, всегда определяет несортированный порядок этих элементов в библиографии, который, в свою очередь, определяет нумерацию элементов. Чтобы это работало, отсортированный порядок новых цитируемых элементов в группе цитирования должен определять их порядок в несортированных библиографиях, переопределяя порядок, в котором цитируются элементы. Я свяжусь с некоторыми из моих коллег-разработчиков CSL. - person Rintze Zelle; 11.04.2017
comment
Это правильно. В настоящее время это невозможно сделать, и я думаю, что было бы довольно сложно изменить CSL, чтобы это было разрешено. Логика того, как/когда нужно будет присвоить значение citation-number, выглядит для меня довольно сложной, что-то вроде использования существующего значения, если элемент ранее цитировался, но в противном случае не присваивайте значение до вторичного условия сортировки включился. - person adam.smith; 11.04.2017
comment
@RintzeZelle Интересно. Если вы не возражаете обновить ответ, упомянув, что мое предпочтительное решение невозможно, я сделаю ответ правильным. - person Evan; 11.04.2017

Я поддерживаю citeproc-js, который, вероятно, является наиболее широко используемым процессором CSL. Хотя в настоящее время этот случай не рассматривается ни в спецификации CSL, ни в citeproc-js, вариант использования и условия для запуска поведения ясны. Размышляя о том, как подойти к этому, я думаю, что нужно рассмотреть два уровня: способ выразить это в таблице стилей CSL; и как это сделать внутри процессора.

Прежде всего, принимая во внимание таблицы стилей, может показаться простым просто неявно отразить порядок сортировки ссылок в несортированной (или citation-number-сортированной) библиографии. Это можно сделать без каких-либо изменений в языке CSL (за исключением, возможно, указания поведения). Это заманчиво, но порядок сортировки в библиографиях CSL может быть явным, так что будут пограничные случаи, и это может запутать всех заинтересованных лиц.

Под капотом, внутри процессора, вы бы использовали для этого ключ сортировки для чего-то вроде first-reference-citation-number. [1] Вы можете использовать его в качестве первичного ключа для сортировки ссылок в библиографии, а issued (или что-то подобное) использовать в качестве вторичного ключа. С элементами, выстроенными в таком порядке, все станет на свои места: citation-number будет присваиваться элементам в порядке возрастания обычным способом, присвоенные номера будут отображаться в элементах цитирования в тексте, и если цитирование налагает сортировку на issued (или любом другом) числовое свертывание будет работать, как и ожидалось.

Для ясности вы хотели бы разрешить явную сортировку по (все еще гипотетическому) first-reference-citation-number; и это потребует (небольших) изменений в спецификации CSL.

Это мои два бита по этому вопросу. У @RinzeZelle и @adam.smith могут быть дополнительные мысли по этому поводу.

[1] Мы не можем использовать для этого существующий first-reference-note-number, так как все цитаты в тексте имеют номер примечания 0.

person Frank Bennett    schedule 11.04.2017
comment
О да. Таким образом, предложенной переменной будет присвоен индекс на основе группы цитирования, в которой элемент впервые цитируется? Это действительно было бы очень ясно. Мне это нравится. Я создам билет. - person Rintze Zelle; 12.04.2017