Книга расположена здесь https://stepanzh.github.io/computational_thermodynamics/.
Локальное тестирование сайта
% git clone https://github.com/stepanzh/computational_thermodynamics.git
% cd computational_thermodynamics
% virtualenv venv # виртуальное окружение,
% source venv/bin/activate # если необходимо не мусорить в библиотеках python3
% pip3 install -r requirements.txt # установка необходимых библиотек
% make build # билд локальной версии
% open book/_build/html/index.html # открытие стартовой страницы
- документация jupyter{book} https://jupyterbook.org/intro.html;
- мои заметки по использованию https://stepanzh.github.io/JuliaAndJupyterBook/intro.html;
- утилиты по тестированию и публикации изменений:
make
в корне репозитория.
Исполняемый код я делю на библиотечный и остальной, который пользуется библиотечным.
Библиотечный код хранится в book/src.jl
.
Там подключаются используемые модули (так не приходится в каждой {cell-code}
писать using
) и содержатся функции из книги.
В отдельный модуль этот код не обёрнут.
Чтобы им воспользоваться, добавьте ячейку кода ({code-cell}
директива) в страницу книги с содержанием
:tags: [remove-cell]
include("../src.jl")
"../src.jl"
здесь путь до src.jl
от исходного файла страницы.
Далее на странице книги в {code-cell}
ниже всё будет доступно.
Все необходимые зависимости помещены в book/Project.toml
.
Графики генерируются с помощью Plots.jl. В этой библиотеке функции возвращают объект графика, который должен быть результатом вычисления ячейки кода.
Если не получается вызвать функцию построения последней в ячейке, сохраните заранее объект
plt = plot(; xlabel="foo", ylabel="bar")
for i in (10, 100)
x = ...
y = foo.(x)
plot!(x, y; label="$i", ...)
end
plt
Таблицы генерируются с помощью PrettyTables.jl
с указанием backend=:html
.
pretty_table(data;
header=["Вещество", "M, г/моль", "σ, Å", "ε/k, K", "Tmin, K", "Tmax, K", "NIST"],
backend=:html,
alignment=:c
)
- Добавьте bibtex запись в
book/praktikum.bib
. Поддерживается Unicode (до какой-то степени). - Процитируйте в тексте книги
{cite}`CiteLabel2001`
.
Указатель это страница книги со ссылками на места в книге, объявленные пользователем. Если в печатном случае указатель обычно точен до страницы, то здесь точность до параграфа.
Используйте для этого директиву {index} entries
.
Например, {index} функция; Гаусса
, {index} функция; непрерывная
создаст следующую структуру в указателе
- функция (без ссылки)
- Гаусса, ссылка
- непрерывная, ссылка
Также можно использовать и роль {index}
, но её точность указания (строка параграфа), кажется, не нужна.
У {index}
много полезных модификаторов, упрощающих жизнь, см. [url].