odomanov / biblatex-gost

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

Некоторые вопросы форматирования (DOI, urldate и другие) #11

Closed ParkhomenkoV closed 6 years ago

ParkhomenkoV commented 7 years ago

Олег, доброго времени суток!

Спасибо Вам большое за прекрасный пакет, который Вы разработали и развиваете.

Прошу ответить на пару вопросов, которые, видимо, появлились из-за неопределенности в ГОСТе:

1) Какой из подходов изменения формата вывода urldate на Ваш взгляд наиболее корректен

(для амены слешей на точки в английском варианте (visited on) и для добавления слов "дата размещения" полностью как в ГОСТ для русского варианта):

\DeclareFieldFormat https://tex.stackexchange.com/a/194594/44348 \DeclareSourcemap https://tex.stackexchange.com/a/348059/44348

2) чем будет различаться код форматирования в п.1 на русском и английском?

3) как убрать разделитель : после слова DOI?

4) В ГОСТ 7.1-2003 нашел формат series/year в п. 5.7.13. можно ли его задать?

В текущем варианте форматировании серии для изданий производиться немного непонятно для читателя.

См. например, в данном шаблоне форматирование Babington (mm/year) - (series)

Кроме того в п. 5.7.13 ГОСТа просят указывать разделитель ;, а не тире перед номером выпуска серии.

P.S. Буду благодарен коллегам за комментарии по данным просьбам.

odomanov commented 7 years ago

Здравствуйте, Владимир.

  1. Мне больше нравится первый, просто потому что проще. Но вообще-то непонятно, что значит "корректен". Гласное, чтобы работало.

  2. Вроде бы, ничем, кроме перевода терминов.

  3. Например, так:

    \DeclareFieldFormat{doi}{%
    \mkbibacro{DOI}\space
    \ifhyperref
    {\href{https://doi.org/#1}{\nolinkurl{#1}}}
    {\nolinkurl{#1}}} 
  4. Номер серии сейчас выводится прямо как написано в базе. Поэтому можно задавать всё, что угодно. Или вы хотите что-то специальное?

С Бабингтоном (и др. дальше) какая-то путаница. Номер серии обычно встречается вместе с названием серии, и они выводятся как (Название ; Номер). Нужно смотреть реальные примеры. Что в данном случае означает series?

ParkhomenkoV commented 7 years ago

Олег, здравстрвуйте!

Спасибо за письмо.

  1. В медицине. например, ещё есть критерий "не навреди", который наверно и имел в виду под словом "корректность".

  2. В исходном биб-коде Бабингтон - вымышленная запись.

Если правильно понимаю, то лучше использовать следующий код: series = {Series title : 10}. Если снабдить вывод префиксом Ser.:, то наверно при прочтении записи никаких вопросов не появится.

ParkhomenkoV commented 6 years ago

Олег, добрый день!

Подскажите, пожалуйста, как правильно задать urldate, чтобы вывести дату в формате: (visited on dd.mm.yyyy)?

Например в шаблоне https://github.com/AndreyAkinshin/Russian-Phd-LaTeX-Dissertation-Template, сначала использую команду:

\map[overwrite]{ % переделка формата записи даты \step[fieldsource=urldate, match=\regexp{([0-9]{2})\.([0-9]{2})\.([0-9]{4})}, replace={$3-$2-$1$4}, % где % $4 для подсветки синтаксиса в IDE final] }

Этим достигается формат (visited on dd/mm/yyyy), например для библиографической записи Karakos [et al.].

Затем пробую заменить разделитель / на . с помощью команды, которую мы обсуждали ранее:

\DeclareFieldFormat{urldate}{(visited on\addspace\thefield{urlday}\adddot \thefield{urlmonth}\adddot\thefield{urlyear})}

В результате для записи Karakos [et al.] пропадает ноль перед числом 1, т.е. выставляется дата 19.1.2015 вместо необходимой 19.01.2015.

Как можно подправить вывод urldate для Karakos [et al.]?

N.B. Для \regexp нашел более интересный вариант для форматирования дат https://tex.stackexchange.com/a/229505/44348

Скажите, пожалуйста, можно ли разделить через тире поля chapter & pages на русском и на английском?

odomanov commented 6 years ago
  1. Трудно сказать без примера, нужно пробовать. В любом случае можно проверять, не меньше ли urlmonth 10-ти и подставлять нуль, если меньше. В etoolbox есть макросы, можно их попробовать.

Ещё есть пакеты типа datetime, возможно, проще их использовать.

  1. Насчёт chapter и pages я не понял. Сейчас они выводятся так:
    \newbibmacro*{chapter+pages}{%
    \printfield{chapter}%
    \setunit*{\bibpagespunct}%
    \printfield{pages}%
    \newunit}

    Наверное, вам этот макрос нужно поменять.

ParkhomenkoV commented 6 years ago

Олег, благодарю за ответ!

п. 1 попробую протестировать, что происходит и применить etoolbox.

п. 2 Удалось изменить следующим образом код:

\newbibmacro{chapter+pages}{% \iffieldundef{chapter} {}% {\printfield{chapter}\space---\space}% % \setunit{\bibpagespunct}% \printfield{pages}% \newunit}

Остался один недостаток - при отображении общего количества страниц (например, в книгах) получается заглавная буква P. вместо строчной.

Пропробовал исправить, предложенным в пакете А. Акиншина кодом. Результат - для некоторых источников диапазоны страниц становятся строчными, для некоторых - остаются заглавными, а для отображения общего количества страниц по-прежнему заглавные буквы.

Буду благодарен за идеи как это можно исправить.

odomanov commented 6 years ago

Лучше, наверное, так:

\newbibmacro*{chapter+pages}{%
  \iffieldundef{chapter}
    {}%
    {\printfield{chapter}%
     \setunit*{\addspace---\space}}%
     \printfield{pages}%
  \newunit}

Тогда капитализация pages должна быть правильной. Хотя я с этими \setunit всё время путаюсь.

предложенным в пакете А. Акиншина кодом.

Это сейчас сделано в самом biblatex-gost, должно работать из коробки. Регулируется опцией otherlangs.

ParkhomenkoV commented 6 years ago

Олег,

Ваш код с разделением полей хорошо работает, спасибо!

Очень помог файл с примерами к пакету.

Для того, чтобы отображались нули в полях urldate, нужно было использовать операции \mk....zeros{...}

\DeclareFieldFormat{urldate}{(visited on\addspace\mkdayzeros{\thefield{urlday}}\adddot \mkmonthzeros{\thefield{urlmonth}}\adddot\mkyearzeros{\thefield{urlyear}})}

odomanov commented 6 years ago

Пожалуйста!

Про макросы я не знал, теперь буду, спасибо. Не успеваю следить за библатехом)))

ParkhomenkoV commented 6 years ago

Следующий код может пригодится для настройки вывода вспомогательных слов (PhD thesis -> diss. ...) в записях типа (phd)thesis: \DefineBibliographyStrings{english}{phdthesis = {diss\adddot\space\ldots}}.

ParkhomenkoV commented 6 years ago

Олег, по возможности, проверьте, пожалуйста смену языка для поля media ={text}.

Какой язык не выставляю в полях langid, language, hyphenation в моём файле все равно появляется запись на русском [Tекст]. Хотелось бы получать эффект в зависимости от языка или хотя бы всё выводить на английском [Text]. В рабочем файле могу использовать только babel=other. Настройка autolang=other приводит к нежелательным эффектам.

Протестировал в Вашем примере biblatex-gost-examples. Добавлял к записям на английском поля media={text}. Нужного эффекта с переключением на слово [Text] достичь не удалось. После использования команды \renewcommand*{\gostmedialanguage}{english} слово [Tекст] исчезает даже в русскоязычных записях.

odomanov commented 6 years ago

Поле media это придумка из ГОСТа, я не уверен, что оно где-то нужно кроме России. Поэтому я просто не стал другие языки делать. Это, действительно, нужно? Кстати, в ГОСТе я не видел, на каком языке это нужно печатать.

LSinev commented 6 years ago

ГОСТ 7.1:

4.9 Язык библиографического описания, как правило, соответствует языку выходных сведений документа. Отдельные элементы в описании могут быть приведены на языке библиографирующего учреждения.

5.2.3.2 Термины для общего обозначения материала приведены в указанном ниже списке (с соответствующим эквивалентом на английском языке):

  • видеозапись (videorecording)
  • звукозапись (sound recording)
  • изоматериал (graphic)
  • карты (cartographic material)
  • комплект (kit)
  • кинофильм (motion picture)
  • микроформа (microform)
  • мультимедиа (multimedia)
  • ноты (music)
  • предмет (object)
  • рукопись (manuscript)
  • текст (text)
  • шрифт Брайля (braille)
  • электронный ресурс (electronic resource)

5.2.3.3 Из вышеперечисленных терминов выбирают один. Предпочтение отдают обозначению физической формы, в которой представлен материал. Например, если документ представлен в виде микроформы или электронного ресурса, в качестве общего обозначения материала указывают его форму. 5.2.3.4 Общее обозначение материала приводят сразу после основного заглавия с прописной буквы в квадратных скобках на языке и (или) в графике библиографирующего учреждения. Слова в общем обозначении материала не сокращают.

7.1.9 Аналитическое библиографическое описание приводят на языке выходных или аналогичных им сведений идентифицирующего документа или официальном языке страны, в которой опубликован документ. Сведения о составной части текстового документа могут быть приведены на языке текста составной части, в этом случае языки библиографического описания составной части и идентифицирующего документа могут не совпадать.

7.2.2 Общее обозначение материала составной части приводят по 5.2.3.

Dinne, alcun la non vedesti? [Sound recording] Canadian-owned paper industries [Cartographic material]

7.3.13 При наличии у идентифицирующего документа международного стандартного номера его, как правило, указывают в описании. Ключевое заглавие и условия доступности опускают.

A stylometric study of Aristotele’s Metaphysics [Text] / Anthony Kenny // Bull. / Assoc. for Lit. and Ling. Computing. - 1979. - Vol.7, N 1. - P.12-20. - ISSN 0305-9855.

7.7.2 Если рецензия или реферат не имеют заглавия, то в качестве него в квадратных скобках приводят слова "Рецензия", "Реферат" или их эквиваленты на других языках.

[Review] [Text] / Andrew Wilson // Solanus. - 2001. - Vol.15. - P.157-158. - Rev. op.: Independent Ukraine: a bibliographical guide to English-language publications, 1989-1999 / Bohdan S. Winar. - Englewood: Ukr. Acad. Press, 2000. - XIV, 552 p.

odomanov commented 6 years ago

О, да, спасибо. Но всё-таки непонятно.

5.2.3.4 Общее обозначение материала приводят ... на языке и (или) в графике библиографирующего учреждения

Что у нас язык учреждения? Основной язык текста?

В принципе, \gostmedialanguage позволяет два варианта: 1) общ.обознач. выводится на одном языке, который можно регулировать, 2) оно выводится на языке записи. Мне кажется, этого достаточно. Или нет?

После использования команды \renewcommand*{\gostmedialanguage}{english} слово [Tекст] исчезает даже в русскоязычных записях.

Это потому что самих переводов нет. Я их определю в пакете для английского, может быть ещё для каких-нибудь языков. Но пока можно добавить через \DefineBibliographyStrings{english}{mediatext = {text}}.

odomanov commented 6 years ago

В версии 1.17 добавлен перевод media на английский, французский, немецкий.