Во-первых, общая структура конспектов такая: в общей папке хранится pdf файл вёрстки
Во-вторых, давайте постараемся соблюдать общий стиль, хотя бы в обозначениях. Так всем будет гораздо проще. Если понадобится, можно будет где-нибудь здесь сделать что-то типа сводки основных обозначений.
Markdown — простейший редактор текста. Полное его освоение не займёт больше получаса (это ни разу не преувеличение, если что). Собственно, главная идея и преимущество маркдауна — доступность.
На гитхабе используется Github Flavored Markdown (gfm). Он немного отличается от ванильного md (в основном в сторону расширения возможностей). Например, (ха), на нём можно делать такое:
CLICK ME
rm -rf /*
или даже такое :
solid mySolid
facet normal -6.859293e-1 -3.417439e-3 7.276602e-1
outer loop
vertex 5.080000e+1 -5.080000e+1 -2.385810e-1
vertex 5.080000e+1 0.000000e+0 0.000000e+0
vertex 2.540000e+1 -2.540000e+1 -2.406261e+1
endloop
endfacet
facet normal 3.417439e-3 6.859293e-1 7.276602e-1
outer loop
vertex 0.000000e+0 -5.080000e+1 0.000000e+0
vertex 5.080000e+1 -5.080000e+1 -2.385810e-1
vertex 2.540000e+1 -2.540000e+1 -2.406261e+1
endloop
endfacet
facet normal 6.859293e-1 3.417439e-3 7.276602e-1
outer loop
vertex -5.080000e+1 5.080000e+1 -2.385810e-1
vertex -5.080000e+1 0.000000e+0 0.000000e+0
vertex -2.540000e+1 2.540000e+1 -2.406261e+1
endloop
endfacet
facet normal -3.417439e-3 -6.859293e-1 7.276602e-1
outer loop
vertex 0.000000e+0 5.080000e+1 0.000000e+0
vertex -5.080000e+1 5.080000e+1 -2.385810e-1
vertex -2.540000e+1 2.540000e+1 -2.406261e+1
endloop
endfacet
facet normal 6.877364e-1 0.000000e+0 7.259605e-1
outer loop
vertex 0.000000e+0 0.000000e+0 0.000000e+0
vertex 0.000000e+0 -5.080000e+1 0.000000e+0
vertex 2.540000e+1 -2.540000e+1 -2.406261e+1
endloop
endfacet
facet normal 0.000000e+0 -6.877364e-1 7.259605e-1
outer loop
vertex 5.080000e+1 0.000000e+0 0.000000e+0
vertex 0.000000e+0 0.000000e+0 0.000000e+0
vertex 2.540000e+1 -2.540000e+1 -2.406261e+1
endloop
endfacet
facet normal -6.877364e-1 0.000000e+0 7.259605e-1
outer loop
vertex 0.000000e+0 0.000000e+0 0.000000e+0
vertex 0.000000e+0 5.080000e+1 0.000000e+0
vertex -2.540000e+1 2.540000e+1 -2.406261e+1
endloop
endfacet
facet normal 0.000000e+0 6.877364e-1 7.259605e-1
outer loop
vertex -5.080000e+1 0.000000e+0 0.000000e+0
vertex 0.000000e+0 0.000000e+0 0.000000e+0
vertex -2.540000e+1 2.540000e+1 -2.406261e+1
endloop
endfacet
facet normal -6.877364e-1 0.000000e+0 7.259605e-1
outer loop
vertex 0.000000e+0 5.080000e+1 0.000000e+0
vertex 0.000000e+0 0.000000e+0 0.000000e+0
vertex 2.540000e+1 2.540000e+1 2.406261e+1
endloop
endfacet
facet normal 0.000000e+0 -6.877364e-1 7.259605e-1
outer loop
vertex 0.000000e+0 0.000000e+0 0.000000e+0
vertex 5.080000e+1 0.000000e+0 0.000000e+0
vertex 2.540000e+1 2.540000e+1 2.406261e+1
endloop
endfacet
facet normal 0.000000e+0 6.877364e-1 7.259605e-1
outer loop
vertex 0.000000e+0 0.000000e+0 0.000000e+0
vertex -5.080000e+1 0.000000e+0 0.000000e+0
vertex -2.540000e+1 -2.540000e+1 2.406261e+1
endloop
endfacet
facet normal 6.877364e-1 0.000000e+0 7.259605e-1
outer loop
vertex 0.000000e+0 -5.080000e+1 0.000000e+0
vertex 0.000000e+0 0.000000e+0 0.000000e+0
vertex -2.540000e+1 -2.540000e+1 2.406261e+1
endloop
endfacet
facet normal -3.417439e-3 6.859293e-1 7.276602e-1
outer loop
vertex 5.080000e+1 5.080000e+1 2.385810e-1
vertex 0.000000e+0 5.080000e+1 0.000000e+0
vertex 2.540000e+1 2.540000e+1 2.406261e+1
endloop
endfacet
facet normal 6.859293e-1 -3.417439e-3 7.276602e-1
outer loop
vertex 5.080000e+1 0.000000e+0 0.000000e+0
vertex 5.080000e+1 5.080000e+1 2.385810e-1
vertex 2.540000e+1 2.540000e+1 2.406261e+1
endloop
endfacet
facet normal -6.859293e-1 3.417439e-3 7.276602e-1
outer loop
vertex -5.080000e+1 0.000000e+0 0.000000e+0
vertex -5.080000e+1 -5.080000e+1 2.385810e-1
vertex -2.540000e+1 -2.540000e+1 2.406261e+1
endloop
endfacet
facet normal 3.417439e-3 -6.859293e-1 7.276602e-1
outer loop
vertex -5.080000e+1 -5.080000e+1 2.385810e-1
vertex 0.000000e+0 -5.080000e+1 0.000000e+0
vertex -2.540000e+1 -2.540000e+1 2.406261e+1
endloop
endfacet
endsolid mySolid
Основную информацию про markdown можно найти, например, здесь [:ru:]. Читать всё ненужно, достаточно прочесть основы, а остальное уже по мере необходимости. Документация по gfm находится тут [:uk:] (по ссылке, опять же, основы, но больше, наверное, и не потребуется).
Добавлю к этой статье описание некоторых дополнительных функций. С помощью якоря можно сослаться не только на разделы, но и на конкретные слова . Синтаксис такой:
<a name="tag_name"> Целевой текст </a>
...
[Текст ссылки](#tag_name)
С помощью "аббревиатур" можно оставить небольшое примечание. Видимо не работает? Странно.
Синтаксис используется следующий:
<abbr title="Расшифровка">Текст, требующий уточнения.</abbr>
Как можно было заметить из моих дополнений, gfm свободно поддерживает raw HTML1.
Mathjax позволяет использовать в маркдауне формулы с помощью системы вёрстки
Формулы в
-
Внутритекстовые формулы выделяются с обеих сторон знаком
$небольшая_формула$
. Они имеют промежуточный смысл. Любой математический знак в тексте, как, например,$x$ или точка$A$ , должен быть выделен в формулу. -
Выключные формулы выделяются двойными долларовыми скобками:
$$большая_формула$$
. Такие формулы выносятся в отдельную строку (и ровно в одну; для переноса строки используются дополнительные средства). Итак, выключная формула выглядит следующим образом:$$\frac{\pi^2}{6}=\lim_{n \to \infty}\sum_{k=1}^n \frac{1}{k^2}$$
К сожалению, при работе с матджаксом иногда возникают сложности, которые не должны возникать . К примеру, перед и после $$
вроде как (!) нужно пропускать пустую строку2. Или при написании формулы вроде как (!) после доллара нельзя делать пробел, то есть $ формула$
не сработает, при этом $$ формула $$
вроде как спокойно работает. Из-за подобных мелочей у вас вместо формулы будет отображаться её код. Ровно ту же проблему мы получим, использовав в формуле некорректную команду или допустив любую другую ошибку, так что "отладка" в матджаксе сумеет доставить неприятности.
В формулах можно не думать о пробелах, \ключевое_слово[необязательный_аргумент]{обязательный_аргумент}{ещё_аргумент}...
. Не у всех команд вообще есть аргументы, а у некоторых их больше одного. Например, букву $\Xi$
, но выражение $$x \geqslant 0 \Longrightarrow \sqrt[3]{x} = x^{\frac{1}{3}}
3.
Существует некоторое количество команд, которые не начинаются с бекслеша. К ним, среди прочего, относятся часто используемые операция возведения в степень (^
) и операция индексирования (_
). В действительности эти команды немного шире и скорее владеют расстановкой "чего-то сверху" и "чего-то снизу". Примером могут послужить данное мною выражение, которое я оформил следующим образом (обратите внимание на \pi
, k
, \lim
и особое внимание на \sum
):
\frac{\pi^2}{6}=\lim_{n \to \infty}\sum_{k=1}^n \frac{1}{k^2}
Рассмотрим ещё один пример — пределы интеграла Римана. Ситуация с ними интереснее тем, что по умолчанию пределы интегрирования записываются в западной традиции:
Исправить это можно, если добавить перед перечислением пределов команду \limits
:
$$
\int\limits_a^bf(x)\\,dx = F(b)-F(a).
$$
В таком случае пределы будут выглядеть нормально.
Помимо неверного отображения пределов интегрирования, у первой формулы есть ещё одна существенная проблема. Обратите внимание на команду \\,
во второй формуле, которая заменяет в Матджаксе команду \,
. Она делает небольшой пробел, необходимый перед указанием интегрируемой переменной. Можете сравнить первую и вторую формулу и увидеть разницу.
Пожалуйста, оформляйте любую последовательность символов в команду, если это возможно. Например, вместо $cos x$
$\cos x$
И сразу ещё одно замечание, векторы хорошо бы оформлять так: \mathbf a
\mathbf{\vec{a}}
Ещё один частный случай возникает с угловыми скобками и двоеточием. Что же особенного в угловых скобках и двоеточии? Разгадка проста: символы <:>
внутри формулы понимаются как математические знаки сравнения и отношения, и форматируются они с отступами с обеих сторон. Если же мы хотим пользоваться ими как скобками и двоеточием5, то обязательно заменяем их на команды \langle \colon \rangle
.
Некоторые команды в формулах представляют собой окружения. Рассмотрим наиболее часто встречающийся случай. Обычная скобка в формуле является стандартным символом с заранее установленным (не очень большим) размером. В случае, например, дробных формул возникает естественное желание — пожалуйста, не игнорируйте его — этот размер изменить, в идеале автоматически. Для этого используется окружение \left( ... \right)
. В этом случае размер скобки автоматически выровняется по самому высокой части окружения. Вместо обычной скобки подойдёт и любая другая (фигурная, угловая, знак модуля и т.д.), а также любая их комбинация. Кстати говоря, если вы хотите использовать какой-либо из специальных символов в тексте или формуле, то просто поставьте перед ним знак начала команды \{ \% ...
.
Если будет сложно даваться, то емнип, в интернете есть порядочное количество редакторов формул для Show Math As
► TeX Commands
и отобразится небольшое меню с данной формулой, набранной в
Как уже говорилось, выключные формулы, оформленные в $$...$$
располагаются строго на одной строке. Возникает соответствующая проблема с большими и подряд идущими формулами. Пожалуйста, не надо решать эту проблему так, это будет ужасно выглядеть:
$$
формула_1
$$
$$
формула_2
$$
...
Для многострочных выключных формул используются следующие окружения:
$$
\begin{multline}
1+2+3+4+5+6+7+8+9+10+\ldots\\
+46+47+48+\ldots\\
+99+100=5050
\end{multline}
$$
multline
позволяет переносить строку (с помощью комбинации \\
) естественным образом, формулы не будут расположены ровно друг под другом. Стандартный подход (между прочим, унаследован ещё от
$$\begin{gather}
i+j=k;\\
j+k=i;\\
k+i=j.\\
\\
\therefore i+j+i+k=i.
\end{gather}$$
Стандартное расположение формул друг под другом с помощью окружения gather
.
$$
\begin{aligned}
a+b+c+d+e+f&=g \Rightarrow \\
\Rightarrow g-f &= a+b+c+d+e. \\
\therefore a+b+c &= g-d-e-f.
\end{aligned}
$$
Расположение формул с выравниваем по знаку &
.
$$
\begin{cases}
3x + 5y + z &= 0 \\
7x – 2y + 4z &= 0 \\
-6x + 3y + 2z &= 0
\end{cases}
$$
Окружение cases
позволяет производить выравнивание и одновременно создаёт большую фигурную скобку слева. Отлично подходит для систем уравнений, а также для вариаций значения переменной при разных условиях.
Всё достаточно просто. Матрица, очевидно, является окружением. Чтобы создать саму таблицу чисел, используется \begin{matrix} ... \end{matrix}
. Для скобок используется уже известный нам приём с ещё одним окружением \left( ... \right)
(скобки могут быть любыми). Последнее окружение, естественно, должно окружать первое. Разделение по столбцам, то есть выравнивание, как и выше, идёт по символу &
, а перенос строки, как и выше, по символам \\
.
Суммируем знания примером с нестандартными скобками:
$$
\left\[ \begin{matrix}
\vec{\mathbf{e}}_1 &\vec{\mathbf{e}}_2 &\vec{\mathbf{e}}_3\\
a^1 &a^2 &a^3\\
b^1 &b^2 &b^3\\
\end{matrix} \right\|.
$$
Результатом будет следущее:
Здесь следует обратить внимание на расположение индексов у базисных векторов. Сравните, например, \vec{\mathbf{e_1}}
, \vec{\mathbf{e}_1}
и \vec{\mathbf{e}}_1
:
Ещё один вариант, который экономит наши силы. Название окружения варьируется в зависимости от скобок матрицы. Для стандартных (круглых) скобок используется pmatrix
, для [квадратных] bmatrix
, для |прямых| и ||двойных прямых|| — vmatrix
и Vmatrix
соответственно.
Например, ввод такого кода
$$
[\mathbf a,\mathbf b]=\begin{vmatrix}
\vec{\mathbf{e}}_1 &\vec{\mathbf{e}}_2 &\vec{\mathbf{e}}_3\\
a^1 &a^2 &a^3\\
b^1 &b^2 &b^3\\
\end{vmatrix}.
$$
даст следующий результат:
Footnotes
-
Если я правильно понял, он и пользовательские css-стили поддерживает. ↩
-
Наверняка подойдёт и пробел, но в случае с выключными формулами для кодстайла лучше пропускать строчку. ↩
-
На самом деле команда
\frac13
, как и операция возведения в степень, в нашем случае сработала бы и без фигурных скобок. Скобки используются для однозначного объединения аргументов. ↩ -
Я бы по умолчанию использовал первый вариант, но об обозначениях договоримся позже. ↩
-
Двоеточие используется реже. В формуле на языке логики оно означает "такой, что". ↩