odomanov / biblatex-gost

Biblatex styles for Russian GOST 7.0.5-2008 bibliography standard
68 stars 8 forks source link

Использует название статьи вместо авторов, если авторов больше трёх #40

Closed AnezeR closed 11 months ago

AnezeR commented 11 months ago

Касается версии 1.24. Версия biblatex 3.19. Платформы как минимум overleaf и mactex.

При автоцитировании статьи из библиографии со стилем

\usepackage[style=gost-authoryear-min]{biblatex}

@article{uchoaNewBenchmarkInstances2017a,
  title = {New Benchmark Instances for the {{Capacitated Vehicle Routing Problem}}},
  author = {Uchoa, Eduardo and Pecin, Diego and Pessoa, Artur and Poggi, Marcus and Vidal, Thibaut and Subramanian, Anand},
  date = {2017-03-16},
  journaltitle = {European Journal of Operational Research},
  shortjournal = {European Journal of Operational Research},
  volume = {257},
  number = {3},
  pages = {845--858},
  issn = {0377-2217},
  doi = {10.1016/j.ejor.2016.08.012},
  url = {https://www.sciencedirect.com/science/article/pii/S0377221716306270},
  urldate = {2023-10-26},
  abstract = {The recent research on the CVRP is being slowed down by the lack of a good set of benchmark instances. The existing sets suffer from at least one of the following drawbacks: (i) became too easy for current algorithms; (ii) are too artificial; (iii) are too homogeneous, not covering the wide range of characteristics found in real applications. We propose a new set of 100 instances ranging from 100 to 1000 customers, designed in order to provide a more comprehensive and balanced experimental setting. Moreover, the same generating scheme was also used to provide an extended benchmark of 600 instances. In addition to having a greater discriminating ability to identify “which algorithm is better”, these new benchmarks should also allow for a deeper statistical analysis of the performance of an algorithm. In particular, they will enable one to investigate how the characteristics of an instance affect its performance. We report such an analysis on state-of-the-art exact and heuristic methods.},
  keywords = {Benchmark instances,Experimental analysis of algorithms,Routing},
  file = {/Users/%username%/Zotero/storage/GZ69GTMM/S0377221716306270.html}
}

С использованием \autocite{uchoaNewBenchmarkInstances2017a} библиотека путает заголовок с авторами.

image

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

Без использования biblatex-gost такая проблема не возникает:

\usepackage[style=authoryear]{biblatex}

image

image

Минимальный вариант воспроизведения:

\documentclass{article}

\usepackage[style=gost-authoryear-min]{biblatex}
% \usepackage[style=authoryear]{biblatex}

\addbibresource{citations.bib}

\begin{document}

\autocite{uchoaNewBenchmarkInstances2017a}
\autocite{christiaensSlackInductionString2020}

\printbibliography

\end{document}

И в citations.bib вставить

@article{christiaensSlackInductionString2020,
  title = {Slack {{Induction}} by {{String Removals}} for {{Vehicle Routing Problems}}},
  author = {Christiaens, Jan and Vanden Berghe, Greet},
  date = {2020-03},
  journaltitle = {Transportation Science},
  volume = {54},
  number = {2},
  pages = {417--433},
  publisher = {{INFORMS}},
  issn = {0041-1655},
  doi = {10.1287/trsc.2019.0914},
  url = {https://pubsonline.informs.org/doi/abs/10.1287/trsc.2019.0914},
  urldate = {2023-10-23},
  abstract = {Dedicated algorithm and modeling improvements continue to advance the state of the art with respect to vehicle routing problems (VRPs). Despite these academic achievements, solving large VRP instances sufficiently fast for real-life applicability remains challenging. By exploiting VRP solution characteristics in an effective manner, this paper arrives at a powerful and fast optimization heuristic. Its primary contributions are threefold: a ruin method, a recreate method, and a fleet minimization procedure. The ruin method functions via adjacent string removal, introducing with it a novel property regarding vehicle routing problems that we term spatial slack, whereas the recreate method is categorized as greedy insertion with blinks. Combining these results in slack induction by string removals (SISRs), a powerful ruin and recreate approach. The fleet minimization procedure, meanwhile, introduces an absences-based acceptance criterion that serves as a complementary optimization component for when minimizing the number of vehicles constitutes the primary VRP objective. Together these three elements provide a suite of simple, powerful, and easily reproducible algorithmic methods that are successfully applied not only to the capacitated VRP but also to a wide range of related problems such as pickup and delivery problems and others that include time windows. SISRs serves to strip back the layers of complexity and specialization synonymous with the trend of algorithmic development throughout recent decades. Moreover, such simplicity and reproducibility are shown to not necessarily come at the expense of solution quality, with SISRs consistently outperforming alternative general approaches as well as dedicated single-purpose methods. Finally, aside from performance-related criteria, SISRs also serves to showcase a fresh perspective with respect to VRPs more generally, introducing a range of new terminology and procedures that, it is hoped, will invigorate further research and innovation.},
  keywords = {capacity slack,fleet minimization,large-scale instances,ruin and recreate,spatial slack,string removal,vehicle routing},
  file = {/Users/%username%/Zotero/storage/GQTK75UL/Christiaens and Vanden Berghe - 2020 - Slack Induction by String Removals for Vehicle Rou.pdf}
}

@article{uchoaNewBenchmarkInstances2017a,
  title = {New Benchmark Instances for the {{Capacitated Vehicle Routing Problem}}},
  author = {Uchoa, Eduardo and Pecin, Diego and Pessoa, Artur and Poggi, Marcus and Vidal, Thibaut and Subramanian, Anand},
  date = {2017-03-16},
  journaltitle = {European Journal of Operational Research},
  shortjournal = {European Journal of Operational Research},
  volume = {257},
  number = {3},
  pages = {845--858},
  issn = {0377-2217},
  doi = {10.1016/j.ejor.2016.08.012},
  url = {https://www.sciencedirect.com/science/article/pii/S0377221716306270},
  urldate = {2023-10-26},
  abstract = {The recent research on the CVRP is being slowed down by the lack of a good set of benchmark instances. The existing sets suffer from at least one of the following drawbacks: (i) became too easy for current algorithms; (ii) are too artificial; (iii) are too homogeneous, not covering the wide range of characteristics found in real applications. We propose a new set of 100 instances ranging from 100 to 1000 customers, designed in order to provide a more comprehensive and balanced experimental setting. Moreover, the same generating scheme was also used to provide an extended benchmark of 600 instances. In addition to having a greater discriminating ability to identify “which algorithm is better”, these new benchmarks should also allow for a deeper statistical analysis of the performance of an algorithm. In particular, they will enable one to investigate how the characteristics of an instance affect its performance. We report such an analysis on state-of-the-art exact and heuristic methods.},
  keywords = {Benchmark instances,Experimental analysis of algorithms,Routing},
  file = {/Users/%username%/Zotero/storage/GZ69GTMM/S0377221716306270.html}
}
AnezeR commented 11 months ago

Возможно, связано с количеством авторов. Если оставить 3 авторов, получается правильно: image

image

Как будто ошибка в логике обработки большого количества авторов. Может быть как-то связано с "и др."

odomanov commented 11 months ago

Да, только это не ошибка, а требование ГОСТ. Если авторов больше 3-х, то они переносятся в сведения об ответственности. При этом biblatex-gost понимает "and others" как "больше трёх". Это регулируется опциями maxnames, minnames и др., но нужно проверять, что они что-то другое не сломают (например, сортировку). В biblatex-gost есть ещё опция movenames, прочитайте про неё.

AnezeR commented 11 months ago

Да, только это не ошибка, а требование ГОСТ. Если авторов больше 3-х, то они переносятся в сведения об ответственности.

Спасибо за объяснение! Но я не могу найти в тексте стандарта, должна ли ссылка в тексте использовать название статьи вместо автора в таком случае. Можно ли это поменять с использованием этой библиотеки, и будет ли это соответсовать ГОСТу?

odomanov commented 11 months ago

Это п.4.10, а он ссылается на ГОСТ 7.80. Но вы посмотрите описание опции movenames. Я подозреваю, что всё, что вам нужно, это movenames=false.

И это соответствует ГОСТ.

odomanov commented 11 months ago

Просто для пояснения. ГОСТ 7.80 регулирует заголовки библ.записей. Заголовок может быть: именем лица, названием организации, заглавием и пр. (п.4.10). "Имя лица" здесь означает имена авторов, редакторов и пр. При этом п.5.2 говорит: "Если авторов четыре и более, то заголовок не применяют". ГОСТ 7.0.5-2008 говорит, что заголовок оформляется по ГОСТ 7.80, с учётом особенностей (см.п.4.10):

То, что ГОСТ 7.0.5 допускает в заголовке больше трёх имен, я прямо сейчас не могу найти. Но откуда-то я это взял, видимо.

AnezeR commented 11 months ago

И правда, movenames=false сделало так, как нужно. Огромное спасибо! Скажите, есть ли причина, по которой это не установлено по умолчанию?

odomanov commented 11 months ago

Причина это ГОСТ 7.80, п.5.2.

Опция movenames появилась в 2012 г., и я не помню каким образом, если честно. Возможно, возникла как раз ваша проблема.