8  Создание статей

В этом разделе вы узнаете, как с помощью метаданных структурировать и создавать академические документы (статьи, отчеты, препринты или аналогичные типы документов), готовые к экспорту в различные форматы.

Напомним, что при подготовке научной публикации к печати или выпуске цифрового препринта существуют рекомендуемые требования к структуре оформления, форматам и стилям публикации.

Один из самых популярных и востребованных стандартов оформления научной статьи — это IMRAD, аббревиатуру которого можно расшифровать как: Introduction (Введение), Materials and Methods (Материалы и методы), Results (Результаты) и Discussion (Обсуждение). Обзор этой структуры представлен в статье Research Paper IMRAD Structure: Features and Recommendations или Подробный разбор структуры научной статьи IMRAD с рекомендациями.

Quarto может использоваться как единая структура научного проекта: благодаря переносимости, для набора исходных файлов можно создать текст научной статьи и использовать в дальнейшем для составления отчета, веб-страницы, презентации или книги, делая результаты воспроизводимыми. Выходными форматами могут являться: *.html, *.pdf, *.docx и т.д., оформлять документы с помощью шаблонов, использовать перекрестные ссылки и автоматическое оформление библиографии.

8.1 Авторские метаданные

Любая научная публикация должна содержать информацию, необходимую для идентификации и поиска статьи: название статьи, имя (имена) автора (или авторов), аффилиацию (место работы, учебное заведение), контактную информацию автора (авторов). Quarto предлагает расширенный набор полей YAML для структурированного описания статей, например, аннотацию, ключевые слова, а информацию об авторских правах, лицензировании и финансировании.

8.1.1 Автор и аффилиация

Если автор один, то его можно указать довольно просто:

author: А.А. Автор

либо с указанием имени и фамилии:

  author:
  - name:
      given: Анатолий
      family: Иванов
      literal: А.А. Иванов

В том случае, если необходимо указать место работы или учебы, это может быть сделано с помощью поля affiliation. Здесь необходимо помнить, что по умолчанию поля affiliation будет использован перевод «принадлежность». Чтобы изменить перевод, нужно изменить в параметре language требуемое поле title-block-affiliation-single, как показано в примере ниже:

lang: ru
language:
  title-block-affiliation-single: "Университет"
author:
  name: А.А. Автор
  affiliation: Московский университет имени И.И. Иванова
Рисунок 8.2: Пример указания автора и организации на веб-странице

В более сложном случае можно указать несколько организаций:

lang: ru
language:
  title-block-affiliation-plural: "Организация"
author:
  name: А.А. Автор
  affiliation: 
    - Московский университет имени И.И. Иванова
    - Институт имени П.П. Петрова
Рисунок 8.3: Пример указания автора и нескольких организаций на веб-странице

Можно отобразить больше полей как в примере ниже. Например, постоянный цифровой идентификатор ORCID:

format: html
lang: ru
language:
  title-block-affiliation-single: "Университет"
author:
  name: А.А. Автор
  orcid: 0000-0000-0000-0001
  url: https://www.rscf.ru/
  email: investigator@rscf.ru
  corresponding: true
  affiliation: 
    - name: Московский университет имени И.И. Иванова
      url: www.msu.ru
  degrees: д-р физ.-мат. наук
keywords: 
  - transformers
  - few-shot learning
  - prompt engineering
  - semantic parsing

8.1.2 Несколько авторов

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

lang: ru
language:
  title-block-affiliation-plural: "Университет"
author:
  - name: "А.А. Автор"
    affiliation:
      - id: msu
        name: Московский университет имени И.И. Иванова
      - id: petrov
        name: Институт имени П.П. Петрова
Рисунок 8.5: Пример отображения нескольких организаций

Теперь при добавлении авторов можно ссылаться на указанные ранее организации с помощью ref: как в примере ниже.

lang: ru
language:
  title-block-affiliation-plural: "Университет"
author:
  - name: "А.А. Автор"
    affiliation:
      - id: msu
        name: Московский университет имени И.И. Иванова
      - id: petrov
        name: Институт имени П.П. Петрова
  - name: "Б.Б. Творец"
    affiliation:
      - ref: msu
Рисунок 8.6: Пример отображения нескольких авторов и организаций

Отметим, что ссылки, которые создаются с помощью id, можно использовать и в других полях параметра author с помощью ref:.

8.1.3 Дата публикации

Для отображения даты используется поле date. Например, достаточно указать дату в соответствующем формате:

date: 03/07/2025
Рисунок 8.7: Пример отображения даты документа

Параметр date позволяет указывать динамические даты через специальные значения, например:

date: last-modified
Таблица 8.1: Специальные значения параметра date для указания динамических дат
Ключ Динамическая дата
today Текущая дата в локальном часовом поясе, где время установлено на 00:00:00
now Текущая дата в локальном часовом поясе
last-modified Дата и время последнего изменения файла.
УведомлениеЗамечание

Не рекомендуется устанавливать динамическую дату, если это пост блога.

Также можно указать краткий стиль даты, например:

date: today
date-format: iso
Таблица 8.2: Специальные значения параметра date-format для указания формата дат
Ключ Пример отображения даты
full пятница, 7 марта 2025 г.
long 7 марта 2025 г.
medium 7 мар. 2025 г.
short 07.03.2025
iso 2025-03-07

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

date: 03/07/2025
date-format: "D MMMM dd, YYYY"

Полный список возможных форматов можно найти на странице документации.

8.1.4 Аннотация

Для добавления аннотации используется YAML-параметр abstract. Обычно аннотации многострочные, поэтому рекомендуется применять блочный стиль YAML: напомним, что для этого указывается символ | после abstract:, после чего текст аннотации идет с отступом в два пробела, как это показано ниже.

abstract: |
  Настоящее исследование анализирует инновационные подходы 
  к решению фундаментальных проблем.

8.1.5 Ключевые слова

Для добавления ключевых слов достаточно задать значения параметра keywords:

keywords: 
  - transformers
  - few-shot learning
  - prompt engineering
  - semantic parsing

8.1.7 Финансирование

В текст возможно включить поддержку грантов:

funding: "«Исследование выполнено за счет гранта Российского научного фонда (проект № XX-XX-XXXXX)»."

У параметра funding имеются поля source, recipient, investigator и statement, например:

funding: 
  statement: "«Исследование выполнено за счет гранта Российского научного фонда (проект № XX-XX-XXXXX)»."

8.2 Оформление библиографии

Quarto позволяет оформлять списки библиографии используя большое количество различных форматов на основе метаданных на основе интеграции с другими программными инструментами. Мы рассмотрим, как автоматически создавать библиографию в документе с помощью BibTeX — системы управления ссылками документов LaTeX, а также как задать собственную таблицу стилей для цитирования с помощью стандарта CSL (Citation Style Language).

В Quarto можно использовать интеграцию с различными научными инструментами, такими как Google Scholar, Zotero, Mendeley, Crossref, DataCite, PubMed, CiteDrive, arXiv. Существует возможность цитирования с помощью DOI.

Добавить библиографию в документ довольно просто — достаточно в поле метаданных YAML указать:

# в файле *.bib хранятся все ссылки
bibliography: references.bib

# при необходимости можно указать стиль цитирования
csl: nature.csl

Библиография формируется автоматически и будет помещена в блок, содержащий класс Div #refs, указанный ниже, либо в конец документа, если такой блок не указан. Как правило, для этого создается в корневом каталоге проекта отдельный файл следующего содержания.

references.qmd
### Список литературы {.unnumbered}

::: {#refs}

:::

Отметим, что, указав suppress-bibliography: true, можно запретить создание библиографии.

8.2.1 Файл *.bib

Здесь мы рассмотрим, как можно упростить процесс цитирования источников и создания библиографии в документе с помощью BibTeX — системы управления ссылками для документов \(\LaTeX\). Для управления источниками библиографии, необходимо создать файл с расширением *.bib, скажем, references.bib, и поместить его в корневую папку проекта. Данный файл будет содержать множество записей как в следующем примере.

references.bib
@book{knuth_art_1997,
  author    = {Knuth, Donald E.},
  title     = {The Art of Computer Programming},
  publisher = {Addison-Wesley},
  year      = {1997},
  volume    = {1},
  edition   = {3rd},
  address   = {Reading, Massachusetts},
  isbn      = {978-0-201-89683-1},
  note      = {Fundamental Algorithms}
}

@article{diffie1976new,
  author    = {Diffie, Whitfield and Hellman, Martin},
  title     = {New Directions in Cryptography},
  journal   = {IEEE Transactions on Information Theory},
  year      = {1976},
  volume    = {22},
  number    = {6},
  pages     = {644--654},
  doi       = {10.1109/TIT.1976.1055638}
}

@inproceedings{attention2017,
  author    = {Vaswani, Ashish and Shazeer, Noam},
  booktitle = {Advances in neural information processing systems},
  pages     = {5998--6008},
  title     = {Attention is all you need},
  url       = {http://arxiv.org/abs/1706.03762},
  year      = 2017
}

Кратко объясним структуру такого файла:

  • Тип записи: в нашем случае это @book, @article, @inproceedings, описывается тип публикации.
  • Ключ цитирования: в примере это knuth_art_1997, diffie1976new, иattention2017 он используется для указания цитаты в тексте, иными словами, для ссылки на источник. Для непосредственного цитирования в тексте Quarto-документа указывают [@knuth_art_1997].
  • Поля записей: author, pages, year и т. д. указывают на автора, страницы, год издания и т. д.

Полный список возможных типов записей или полей записей можно посмотреть, например, на этой странице, посвященной BibTeX.

УведомлениеЗамечание

Отметим некоторые особенности для статей:

  • названия журналов пишутся полностью (Nature, а не Nat.);
  • при указании диапазона страниц используйте двойное тире --, а не дефис;
  • между именами авторов ставится and, а не запятая;
  • по возможности всегда указывайте DOI (Digital Object Identifier — уникальный постоянный цифровой идентификатор для научных, профессиональных и творческих работ) если есть, а не URL, например, https://doi.org/10.1038/nature12345 в *.bib-файле указывается как doi = {10.1038/nature12345}.

Преимущества подхода, использующего *.bib-файл очевидны, такого рода подход уже стал стандартом для академических и технических текстов:

  1. Файл *.bib хранит исключительно метаданные. В документе и библиографии появятся исключительно те ссылки, которые упоминаются в тексте документа (при необходимости можно добавить и дополнительные источники). Таким образом, уместно иметь *.bib с большим списком библиографии для создания нескольких публикаций.
  2. Все ссылки автоматически оформляются согласно единообразному стилю, автоматически сортируются и нумеруются.

8.2.2 Файл *.csl

Файл с расширением *.csl в корневом каталоге позволяет определить стиль отображения библиографии. Quarto по умолчанию использует Pandoc для форматирования ссылок и библиографий, основной формат стилизации которого — «Автор/Дата», но можно задать собственное форматирование для библиографии с помощью таблицы стилей для цитирования CSL (Citation Style Language).

Рисунок 8.8: Пример отображения библиографии по умолчанию

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

Пусть необходимо создать библиографию для научного журнала Nature, в этом случае необходимо добавить соответствующий стилевой файл:

bibliography: references.bib
csl: nature.csl
Рисунок 8.9: Пример отображения библиографии для научного журнала Nature

Для библиографии на русском языке подходит файл gost-r-7-0-5-2008-numeric-alphabetical.csl, который отвечает ГОСТ Р 7.0.5-2008.

bibliography: references.bib
csl: gost-r-7-0-5-2008-numeric-alphabetical.csl
Рисунок 8.10: Пример отображения библиографии согласно ГОСТ Р 7.0.5-2008

8.2.3 Синтаксис цитирования

После того, как был создан список цитируемых работ в *.bib-файле, необходимо указать ссылки на эти работы в тексте. Quarto использует синтаксис Pandoc для цитирования. Если необходимо сослаться на библиографический элемент с идентификатором foo, следует использовать синтаксис @foo или [@foo]. Ссылки следует заключать в квадратные скобки, разделяя отдельные элементы точкой с запятой:

Текст [@doe; @smith2000; @smith2004].

Приведем простой пример цитирования и далее сделаем некоторые пояснения.

file.qmd
Физика плазмы изучается в работе [@kapitsa1979].

Можно цитировать так: @kapitsa1979.

Только год издания: [-@kapitsa1979].

Основы были заложены в работах Колмогорова [см. @kolmogorov1936, Глава 1; также см. @kolmogorov1941, стр. 3-8].
Рисунок 8.11: Пример отображения нескольких библиографических ссылок в тексте HTML-документа

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

file.qmd
[@kapitsa1979plasma{ii, A, D-Z} используется суффикс]

[@kapitsa1979plasma, {pp. iv, vi-xi, (xv)-(xvii)} еще один суффикс]

[@kapitsa1979plasma{}, суффикс подавляется]
Рисунок 8.12: Пример отображения библиографических ссылок с суффиксом

Отметим, что если вы находитесь, скажем, в визуальном режиме набора Quarto документов в RStudio, то перейдя в верхней части меню Insert : Citation, можно перейти в панель вставки библиографии, в которой можно указать множество источников: DOI, Crossref, DataCite, PubMed, цитирование на библиотеку R как R Package или Zotero, если этот сервис установлен.

Рисунок 8.13: Панель вставки библиографии

Помимо прочего, Quarto интегрируется с сервисом CiteDrive, который может организовать библиографию, обеспечивает удобную совместную работу и гарантирует точность цитирований.

8.3 Журнальные статьи

Для Quarto существует множество различных готовых шаблонов для научных публикаций (в основном на английском языке). Например, основной репозиторий Quarto Journal Templates содержит отобранный набор шаблонов журналов для платформы Quarto. Также существует множество других шаблонов, как персональных (например, Springer Nature Quarto Format), так и собранных в коллекции Quarto extensions по тегу Quarto Journals. Как правило необходимо установить шаблон журнала с помощью команды

Terminal
quarto use template quarto-journals/<template-name>

и затем использовать соответствующую YAML-преамбулу. Например, для написания статьи в Biophysical Journal (BJ) в директории проекта необходимо выполнить команду

Terminal
quarto use template quarto-journals/biophysical-journal

и либо в рендере указать явно

Terminal
quarto render article.qmd --to bj-pdf

либо в YAML прописать

_quarto.yml
format:
  pdf: default
  bj-pdf:
    keep-tex: true    
Рисунок 8.14: Пример наброска статьи для публикации

Для создания собственных шаблонов журнальных статей на основе Quarto можно обратиться к статье Journal Formats и репозиторию Article Format Template (AFT). Также возможно создание статей с помощью Typst используя библиотеку Marginalia Typst.

Отметим, что в HTML-документе уравнения отображаются с помощью MathJax. По умолчанию MathJax не нумерует уравнения. Чтобы пронумеровать уравнения, нам нужно изменить конфигурацию MathJax, например, как это сделано в репозитории с примером.

_quarto.yml
format:
  html:
    include-in-header:
        # Преамбула HTML: настройка MathJax
        # Этот фрагмент необходим для нумерации уравнений
        - text: |
            <script>
            MathJax = {
                tex: {
                    tags: 'ams' // опции: 'ams', 'none' или 'all'
                }
            };
            </script>

Еще одно замечание, которое можно почерпнуть из репозитория, касается макросов. Макросы необходимы при написании сложных математических формул — они упрощают исходный код и повышают скорость работы. Определить макросы в Quarto так непросто. Решение заключается в том, чтобы определить макросы в преамбуле YAML, жестко прописав их дважды в преамбуле: один раз для *.html- и другой — для *.tex-файлов. При таком подходе макросы становятся невидимыми для Quarto.

_quarto.yml
format:
  pdf:
    include-in-header:
        # Преамбула в LaTeX: 
        # импорт пакетов, определение макросов и т. д.
        - text: |
            \def\sumi{{\frac{1}{n} \sum_{i=1}^n}}
  html:
    include-before-body:
        # определите макросы MathJax
        - text: |
            $$
                \def\sumi{{\frac{1}{n} \sum_{i=1}^n}}
            $$

Для перекрестных ссылок на рисунки и разделы следует использовать синтаксис Quarto. Тем не менее, для статьи в PDF при использовании перекрестных ссылок на уравнения необходимо использовать синтаксис \(\LaTeX\) \label{label} и \eqref{label} вместо синтаксиса Quarto @label.

\begin{equation}
    1 + 1 = 2
\label{the_equation}
\end{equation}

Уравнение \eqref{the_equation} гораздо сложнее, чем кажется на первый взгляд.

Также обратите внимание, что если вы не нумеруете все уравнения, то нужно дополнительно написать команду \tag \label{the_equation} вместо \label{the_equation}. В противном случае при выводе в формате HTML MathJax не будет помечать уравнение.


Здесь будет текст про создание статей.

https://sample-site-itmo.netlify.app/

awesome-PhD

Fonts LaTeX https://nmfs-opensci.github.io/quarto_titlepages/10-fonts.html

Typst articles https://quarto.org/docs/blog/posts/2026-03-31-typst-books-and-more/#article-layout-in-typst

8.4 Сноски

https://quarto.org/docs/authoring/markdown-basics.html#footnotes

https://alexespinosaco.github.io/aerovagante/2024-08-10_quarto-referencias-cruzadas/

8.5 Оформление библиографии

https://r4ds.hadley.nz/quarto#bibliographies-and-citations

Quarto Reference Manager: Simple citation management with CiteDrive for RStudio

8.6 Пользовательские шаблоны

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

8.7 Резюме в Quarto

https://alexespinosaco.github.io/aerovagante/2024-02-18-cv/

https://cameronpatrick.com/post/2023/07/quarto-thesis-formatting/

https://www.cesarsotovalero.net/blog/building-and-leveling-up-a-computer-scientist-resume.html

https://mitchelloharawild.com/blog/vitae/ https://pkg.mitchelloharawild.com/vitae/

Заключение

Можно посмотреть пример статьи в Quarto.