- Подписка на печатную версию:
- Подписка на электронную версию:
- Подшивки старых номеров журнала (печатные версии)
LXF85:LaTeX
Материал из Linuxformat.
(до конца) |
м ({{Цикл/LaTeX}}) |
||
(1 промежуточная версия не показана) | |||
Строка 1: | Строка 1: | ||
+ | {{Цикл/LaTeX}} | ||
<big>ЧАСТЬ 3: Успешно пройдя две ступени посвящения, вы готовы двинуться в путь к вершинам мастерства. Вашим проводником в этом нелегком деле будет Евгений Балдин.</big> | <big>ЧАСТЬ 3: Успешно пройдя две ступени посвящения, вы готовы двинуться в путь к вершинам мастерства. Вашим проводником в этом нелегком деле будет Евгений Балдин.</big> | ||
+ | |||
== Компьютерные Teхнологии: Учимся использовать культовую систему вёрстки LaTeX == | == Компьютерные Teхнологии: Учимся использовать культовую систему вёрстки LaTeX == | ||
<blockquote>Полиграфисты относят математические работы к каторжным… | <blockquote>Полиграфисты относят математические работы к каторжным… | ||
Строка 8: | Строка 10: | ||
Иногда от незнакомых с TeXнологиями людей приходится слышать, что LaTeX годится только для набора математики. При знакомстве же с истинными TeXнологиями возникает понимание, что LaTeX настолько хорош, что с его помощью можно набирать даже математику. | Иногда от незнакомых с TeXнологиями людей приходится слышать, что LaTeX годится только для набора математики. При знакомстве же с истинными TeXнологиями возникает понимание, что LaTeX настолько хорош, что с его помощью можно набирать даже математику. | ||
- | Набор математических формул всегда считался вершиной типографского искусства. Дело в том, что формулы, для концентрации информации и дополнительной выразительности по сравнению с обычным текстом, являются многоуровневыми. Д. | + | Набор математических формул всегда считался вершиной типографского искусства. Дело в том, что формулы, для концентрации информации и дополнительной выразительности по сравнению с обычным текстом, являются многоуровневыми. Д. Э. Кнут к своей программе компьютерной типографии создал и язык для описания формул. После короткого периода обучения пользователь в состоянии читать и набирать на этом языке формулы практически любой сложности. |
- | + | LaTeX — не единственная программная среда, использующая TeXнотацию. Эта же нотация рекомендуется при наборе всех сколько-нибудь сложных формул на страницах Википедии (http://ru.wikipedia.org статья «[[wikipedia:ru:Википедия:Формулы|Википедия:Формулы]]»). | |
- | + | ||
+ | Становлению TeX как стандарта для набора формул в значительной степени поспособствовало Американское математическое сообщество (The American Mathematical Society — AMS), которое субсидировало разработку расширения TeX, известного как AMSTeX, в начале восьмидесятых годов прошлого столетия. В 1987 году наработки AMSTeX были добавлены в LaTeX в виде пакета amsmath. Вместе с amsmath в LaTeX было добавлено множество улучшений, позволяющих набирать действительно изощрённую математику. Поэтому при использовании в тексте математики в шапке документа следует в обязательном порядке загружать пакет amsmath: | ||
+ | <source lang="latex">\usepackage{amsmath}</source> | ||
В дальнейшем предполагается, что этот пакет уже загружен. Полностью описать все команды языка для набора формул в рамках короткой статьи нереально, так как математика, как и способы её представления, безгранична. Поэтому основное внимание будет уделено базовым правилам и русскому стилю в формулах. В любой сколько-нибудь большой книге по LaTeX будет полный список всех команд. Если серьёзно работать с математикой, то подобная книжка, в любом случае, понадобится. | В дальнейшем предполагается, что этот пакет уже загружен. Полностью описать все команды языка для набора формул в рамках короткой статьи нереально, так как математика, как и способы её представления, безгранична. Поэтому основное внимание будет уделено базовым правилам и русскому стилю в формулах. В любой сколько-нибудь большой книге по LaTeX будет полный список всех команд. Если серьёзно работать с математикой, то подобная книжка, в любом случае, понадобится. | ||
Строка 23: | Строка 27: | ||
{| | {| | ||
- | | | + | |<source lang="latex">\begin{equation} |
- | + | \label{eq:math:ex1} | |
- | + | \int\limits_{-\infty}^{\infty} | |
- | + | e^{-x^2/2}dx=\sqrt{2\pi} | |
- | + | \end{equation}</source> | |
- | + | ||
|<math>\int\limits_{-\infty}^{\infty}e^{-x^2/2}dx=\sqrt{2\pi}</math> | |<math>\int\limits_{-\infty}^{\infty}e^{-x^2/2}dx=\sqrt{2\pi}</math> | ||
|} | |} | ||
Строка 36: | Строка 39: | ||
достаточно часто. Команда со * обычно не нумеруется и не отображается ни в каких | достаточно часто. Команда со * обычно не нумеруется и не отображается ни в каких | ||
автоматически составляемых списках.</ref>. При создании выключенной формулы размер шрифта для улучшения читаемости немного увеличивается. LaTeX имеет несколько стилей для оформления математических формул. При желании можно выбрать необходимый стиль вручную: | автоматически составляемых списках.</ref>. При создании выключенной формулы размер шрифта для улучшения читаемости немного увеличивается. LaTeX имеет несколько стилей для оформления математических формул. При желании можно выбрать необходимый стиль вручную: | ||
- | * \ | + | * \displaystyle — стиль, используемый для выносных формул, |
- | * \ | + | * \textstyle — стиль строчных формул, |
- | * \ | + | * \scriptstyle — в этом стиле набираются индексы, |
- | * \ | + | * \scriptscriptstyle — индексы второго уровня. |
С помощью этих команд можно увеличить размер шрифта для формул внутри абзаца, или заставить индексы выглядеть как базовые символы. | С помощью этих команд можно увеличить размер шрифта для формул внутри абзаца, или заставить индексы выглядеть как базовые символы. | ||
Например, сравните: | Например, сравните: | ||
{| | {| | ||
- | | | + | |<source lang="latex">\begin{equation*} |
- | + | \frac{1}{1+ | |
- | + | \frac{1}{1+ | |
- | + | \frac{1}{1+ | |
- | + | \frac{1}{2}}}} | |
- | + | \end{equation*}</source> | |
- | + | ||
|<math>\frac{1}{1+\frac{1}{1+\frac{1}{1+\frac{1}{2}}}}</math> | |<math>\frac{1}{1+\frac{1}{1+\frac{1}{1+\frac{1}{2}}}}</math> | ||
|- | |- | ||
- | |и | + | |и <source lang="latex">\begin{equation*} |
- | + | \frac{1}{\displaystyle 1+ | |
- | + | \frac{1}{\displaystyle 1+ | |
- | + | \frac{1}{\displaystyle 1+ | |
- | + | \frac{\displaystyle 1} | |
- | + | {\displaystyle 2}}}} | |
- | + | \end{equation*}</source> | |
- | + | ||
|<math>\frac{1}{\displaystyle 1+\frac{1}{\displaystyle 1+\frac{1}{\displaystyle 1+\frac{\displaystyle 1}{\displaystyle 2}}}}</math> | |<math>\frac{1}{\displaystyle 1+\frac{1}{\displaystyle 1+\frac{1}{\displaystyle 1+\frac{\displaystyle 1}{\displaystyle 2}}}}</math> | ||
|} | |} | ||
- | Пробелы в формулах отмечают только конец команды, а сами по себе смысла не | + | Пробелы в формулах отмечают только конец команды, а сами по себе смысла не имеют — LaTeX, как правило, гораздо лучше знает, как сформировать результат. |
=== Кириллица в формулах === | === Кириллица в формулах === | ||
- | Всё дело в имеющихся | + | Всё дело в имеющихся шрифтах — они красивые, разнообразные, но в большинстве своём англоязычные. В настоящее время кириллические математические шрифты в «дикой природе» отсутствуют, поэтому приходится пользоваться их текстовыми версиями. |
- | Стиль mathtext (пакет t2), позволяет использовать кириллицу в формулах без дополнительных ухищрений. Стиль может быть подключён с опцией | + | Стиль mathtext (пакет t2), позволяет использовать кириллицу в формулах без дополнительных ухищрений. Стиль может быть подключён с опцией warn — в этом случае он сообщает обо всех случаях использования кириллических букв в формулах. mathtext следует загружать до babel и/или fontenc. |
- | + | <source lang="latex">\usepackage[warn]{mathtext}</source> | |
- | Здесь для создания выключенной формулы используется команда \[ | + | Здесь для создания выключенной формулы используется команда \["формула"\] — краткий аналог окружения equation*. В отличие от латиницы, русские буквы в формулах печатаются прямым шрифтом — это было сделано специально. Чтобы изменить это поведение, в преамбуле следует добавить команду для переопределения шрифта: |
- | + | <source lang="latex">\DeсlareSуmbolFont{T2Aletters}{T2A}{cmr}{m}{it}</source> | |
- | Стиль amstext (загружается автоматически при загрузке amsmath) | + | Стиль amstext (загружается автоматически при загрузке amsmath) определяет команду \text, которая позволяет вставлять в формулу |
- | определяет команду \text, которая позволяет вставлять в формулу | + | |
обычный текст. Он может быть и русским. Преимущество такого подхода заключается в том, что внутри команды \text пробелы воспринимаются как нормальные символы и слова не сливаются. Использование \text предпочтительно и для целей переносимости. | обычный текст. Он может быть и русским. Преимущество такого подхода заключается в том, что внутри команды \text пробелы воспринимаются как нормальные символы и слова не сливаются. Использование \text предпочтительно и для целей переносимости. | ||
=== Школьная математика === | === Школьная математика === | ||
- | Математика в | + | Математика в школе — это явление, через которое проходит каждый. Именно поэтому фактически любой вменяемый россиянин умеет обращаться с дробями, знает теорему Пифагора, с лёгкостью решает квадратные уравнения и что-то слышал про интеграл и производную. Разберёмся со всем этим поподробнее. |
==== Индексы ==== | ==== Индексы ==== | ||
- | Букв в латинском алфавите не так уж и много, а научных | + | Букв в латинском алфавите не так уж и много, а научных понятий — без числа. Один из способов отличать обозначения друг от друга — это индексы, как верхние, так и нижние: |
{| | {| | ||
- | | | + | |<source lang="latex">\[A_{\text{lower index}}\quad |
- | + | ||
B^{\text{upper index}}\quad | B^{\text{upper index}}\quad | ||
- | C_n^k\] | + | C_n^k\]</source> |
|<math>A_{\text{lower index}}\quad B^{\text{upper index}}\quad C_n^k</math> | |<math>A_{\text{lower index}}\quad B^{\text{upper index}}\quad C_n^k</math> | ||
|} | |} | ||
Строка 98: | Строка 97: | ||
Кроме символов латиницы и кириллицы, математики используют множество самых разнообразных значков, да и латиница не так уж проста. Если воспользоваться пакетом amsfonts, то она может стать такой: | Кроме символов латиницы и кириллицы, математики используют множество самых разнообразных значков, да и латиница не так уж проста. Если воспользоваться пакетом amsfonts, то она может стать такой: | ||
{| | {| | ||
- | | | + | |<source lang="latex">\begin{itemize} |
- | + | ||
\item \(ABCD\) "--- обычной, | \item \(ABCD\) "--- обычной, | ||
\item \(\mathbf{ABCD}\) "--- жирной, | \item \(\mathbf{ABCD}\) "--- жирной, | ||
\item \(\mathbb{ABCD}\) "--- ажурной, | \item \(\mathbb{ABCD}\) "--- ажурной, | ||
\item \(\mathcal{ABCD}\) "---прописной. | \item \(\mathcal{ABCD}\) "---прописной. | ||
- | \end{itemize} | + | \end{itemize}</source> |
| | | | ||
* <math>ABCD</math> | * <math>ABCD</math> | ||
Строка 141: | Строка 139: | ||
В LaTeX присутствует полный набор и, за исключением трёх букв, начертание вполне привычное. Для исправления непривычных начертаний эти буквы были переопределены с помощью пакета amssymb: | В LaTeX присутствует полный набор и, за исключением трёх букв, начертание вполне привычное. Для исправления непривычных начертаний эти буквы были переопределены с помощью пакета amssymb: | ||
- | + | <source lang="latex"> | |
- | + | %Переопределение kappa epsilon phi на русский лад | |
- | + | \renewcommand{\kappa}{\varkappa} | |
- | + | \renewcommand{\epsilon}{\varepsilon} | |
+ | \renewcommand{\phi}{\varphi} | ||
+ | </source> | ||
- | Спецсимволов в LaTeX великое множество. В стандартной поставке TeX Live идёт «Всеобъемлющий список сиволов LaTeX» ([http://www.ctan.org/get/info/symbols/comprehensive/symbols-a4.pdf The Comprehensive LaTeX Symbols | + | Спецсимволов в LaTeX великое множество. В стандартной поставке TeX Live идёт «Всеобъемлющий список сиволов LaTeX» ([http://www.ctan.org/get/info/symbols/comprehensive/symbols-a4.pdf The Comprehensive LaTeX Symbols List — файл symbols-a4.pdf]) в котором перечислено 5000 распространённых символов, применяемых пользователями LaTeX. Почти наверняка любой операнд, который вам нужен, там уже есть. Ниже будет перечислена только та часть символов, которая, с моей точки зрения, может пригодиться в наборе школьной математики. Пакет amssymb для использования обязателен. |
Строка 196: | Строка 196: | ||
Для соответствия русским традициям 2 символа были переопределены: | Для соответствия русским традициям 2 символа были переопределены: | ||
- | + | <source lang="latex"> | |
- | + | %Переопределение le ge на русский лад | |
- | + | \renewcommand{\le}{\leqslant} | |
+ | \renewcommand{\ge}{\geqslant} | ||
+ | </source> | ||
==== Дроби ==== | ==== Дроби ==== | ||
- | Дроби формируются с помощью команды \frac<ref>От слова | + | Дроби формируются с помощью команды \frac<ref>От слова fraction — «дробь».</ref>: |
{| | {| | ||
- | | | + | |<source lang="latex"> \[ |
- | + | ||
fraction=\frac{numerator}{denominator} | fraction=\frac{numerator}{denominator} | ||
- | \] | + | \]</source> |
|<math>fraction=\frac{numerator}{denominator}</math> | |<math>fraction=\frac{numerator}{denominator}</math> | ||
|} | |} | ||
Строка 214: | Строка 215: | ||
==== Корни ==== | ==== Корни ==== | ||
Для рисования знака корня используется команда | Для рисования знака корня используется команда | ||
- | + | <source lang="latex">\sqrt[степень]{«подкоренное выражение»}</source> | |
Степень можно упустить. В этом случае рисуется обычный квадратный корень. | Степень можно упустить. В этом случае рисуется обычный квадратный корень. | ||
{| | {| | ||
- | | | + | |<source lang="latex">\overline{ |
- | + | \underline{\Large | |
- | + | \sqrt[3]{a}+\sqrt[2]{b}+\sqrt[99]{g} | |
- | + | } | |
- | + | }</source> | |
- | + | ||
|<math>\overline{\underline{\sqrt[3]{a}+\sqrt[2]{b}+\sqrt[99]{g}}}</math> | |<math>\overline{\underline{\sqrt[3]{a}+\sqrt[2]{b}+\sqrt[99]{g}}}</math> | ||
|} | |} | ||
Строка 230: | Строка 230: | ||
Обратите внимание, что знак корня размещается в соответствии с размерами подкоренного выражения. Если в выражении присутствует только один корень, то это самое разумное поведение, но в случае нескольких корней, как в приведённом выше примере, не помешает выравнивание. | Обратите внимание, что знак корня размещается в соответствии с размерами подкоренного выражения. Если в выражении присутствует только один корень, то это самое разумное поведение, но в случае нескольких корней, как в приведённом выше примере, не помешает выравнивание. | ||
- | Для выравнивания по высоте используется команда \mathstrut<ref>От английского | + | Для выравнивания по высоте используется команда \mathstrut<ref>От английского strut — «подпорка» или «страта».</ref>. В |
результате её применения вставляется невидимый символ нулевой толщины и высоты, в точности равной высоте круглой скобки: | результате её применения вставляется невидимый символ нулевой толщины и высоты, в точности равной высоте круглой скобки: | ||
{| | {| | ||
- | | | + | |<source lang="latex">\[\Large |
- | + | \sqrt[3]{\mathstrut a}+ | |
- | + | \sqrt[2]{\mathstrut b}+ | |
- | + | \sqrt[99]{\mathstrut g} | |
- | + | \]</source> | |
- | + | ||
|<math>\sqrt[3]{a}+\sqrt[2]{b}+\sqrt[99]{g}</math> | |<math>\sqrt[3]{a}+\sqrt[2]{b}+\sqrt[99]{g}</math> | ||
|} | |} | ||
==== Квадратное уравнение ==== | ==== Квадратное уравнение ==== | ||
- | И, наконец, вершина школьной | + | И, наконец, вершина школьной математики — это решение квадратного |
уравнения ax²+bx+c=0: | уравнения ax²+bx+c=0: | ||
{| | {| | ||
- | | | + | |<source lang="latex">\[ |
- | + | x_{1,2}=\frac{-b\pm\sqrt{b^2-4ac}}{2a} | |
- | + | \]</source> | |
- | + | ||
|<math>x_{1,2}=\frac{-b\pm\sqrt{b^2-4ac}}{2a}</math> | |<math>x_{1,2}=\frac{-b\pm\sqrt{b^2-4ac}}{2a}</math> | ||
|} | |} | ||
Строка 262: | Строка 260: | ||
{| | {| | ||
- | | | + | |<source lang="latex">\begin{equation*} |
- | + | \begin{split} | |
- | + | &\log_2 10=\ln10/\ln2\simeq3.32 \\ | |
- | + | &\lim_{x\to0}\frac{\sin x}{x}=1\\ | |
- | + | &(a+b)^n=\sum_{k=1}^n C^k_n a^kb^{n-k} | |
- | + | \end{split} | |
- | + | \end{equation*}</source> | |
- | + | ||
|<math>\log_2 10=\ln10/\ln2\simeq3.32 \lim_{x\to0}\frac{\sin x}{x}=1 (a+b)^n=\sum_{k=1}^n C^k_n a^kb^{n-k}</math> | |<math>\log_2 10=\ln10/\ln2\simeq3.32 \lim_{x\to0}\frac{\sin x}{x}=1 (a+b)^n=\sum_{k=1}^n C^k_n a^kb^{n-k}</math> | ||
|} | |} | ||
Обратите внимание на обработку индексов для функции log (логарифм) и lim (предел). Для доопределения новых функций правильнее всего воспользоваться в преамбуле командой DeclareMathOperator: | Обратите внимание на обработку индексов для функции log (логарифм) и lim (предел). Для доопределения новых функций правильнее всего воспользоваться в преамбуле командой DeclareMathOperator: | ||
- | + | <source lang="latex"> | |
- | + | %В преамбуле — определение новых функций | |
- | + | \DeclareMathOperator{\log-like}{log-like} | |
+ | \DeclareMathOperator*{\lim-like}{lim-like} | ||
+ | </source> | ||
В зависимости от варианта команды индексы отображаются как для логарифма (команда без звёздочки) или как для предела (команда со звёздочкой). | В зависимости от варианта команды индексы отображаются как для логарифма (команда без звёздочки) или как для предела (команда со звёздочкой). | ||
Строка 282: | Строка 281: | ||
==== Производная и интеграл ==== | ==== Производная и интеграл ==== | ||
В старших классах, в конце обучения, обычно чуть-чуть касаются понятий интегрирования и дифференцирования. Возможно, для того, чтобы | В старших классах, в конце обучения, обычно чуть-чуть касаются понятий интегрирования и дифференцирования. Возможно, для того, чтобы | ||
- | правильно подсчитать сдачу в магазине, эти знания не являются необходимыми. Но для изучения физики и, как следствие, химии и биологии без интегралов | + | правильно подсчитать сдачу в магазине, эти знания не являются необходимыми. Но для изучения физики и, как следствие, химии и биологии без интегралов никак — поверьте мне на слово. |
Производная обычно отмечается штрихом. В физике, производная по времени выделяется точкой, для того чтобы отличать её от производной по координате. Можно честно написать \frac{d F(x)}{dx}. Для частной производной вместо буквы d используется спецсимвол \partial: | Производная обычно отмечается штрихом. В физике, производная по времени выделяется точкой, для того чтобы отличать её от производной по координате. Можно честно написать \frac{d F(x)}{dx}. Для частной производной вместо буквы d используется спецсимвол \partial: | ||
{| | {| | ||
- | | | + | |<source lang="latex">\[ f'\quad f''\quad |
- | + | \dot{f}\quad \ddot{f} \quad | |
- | + | \frac{d f}{d x}\quad | |
- | + | \frac{\partial f}{\partial x} \]</source> | |
- | + | ||
|<math>f'\quad f''\quad \dot{f}\quad \ddot{f} \quad \frac{d f}{d x}\quad \frac{\partial f}{\partial x}</math> | |<math>f'\quad f''\quad \dot{f}\quad \ddot{f} \quad \frac{d f}{d x}\quad \frac{\partial f}{\partial x}</math> | ||
|} | |} | ||
Строка 296: | Строка 294: | ||
Взятие производной есть обратная операция по отношению к интегрированию: | Взятие производной есть обратная операция по отношению к интегрированию: | ||
{| | {| | ||
- | | | + | |<source lang="latex">\[ |
- | + | \frac{d}{dx}\int F(x) dx=F(x) | |
- | + | \]</source> | |
- | + | ||
|<math>\frac{d}{dx}\int F(x) dx=F(x)</math> | |<math>\frac{d}{dx}\int F(x) dx=F(x)</math> | ||
|} | |} | ||
Строка 305: | Строка 302: | ||
Приглядевшись к этому примеру, можно отметить, что, вопреки русским математическим традициям, представленный здесь интеграл не прямой, а наклонный. Это можно исправить, например, загрузив пакет wasysym с опцией integrals. К сожалению, получающиеся интегралы «не смотрятся», поэтому пока лучше использовать начертания по умолчанию в надежде, что в будущем ситуация изменится к лучшему. | Приглядевшись к этому примеру, можно отметить, что, вопреки русским математическим традициям, представленный здесь интеграл не прямой, а наклонный. Это можно исправить, например, загрузив пакет wasysym с опцией integrals. К сожалению, получающиеся интегралы «не смотрятся», поэтому пока лучше использовать начертания по умолчанию в надежде, что в будущем ситуация изменится к лучшему. | ||
- | Неопределённый | + | Неопределённый интеграл — это хорошо, а определённый — лучше. Качественное оформление пределов интегрирования важно для восприятия формулы. |
{| | {| | ||
- | | | + | |<source lang="latex">\[ |
- | + | \int_0^{\infty}\quad | |
- | + | \int\limits_0^{\infty}\quad | |
- | + | \sum_{i=1}^n\quad | |
- | + | \sum\nolimits_{i=1}^n\quad | |
- | + | \]</source> | |
- | + | ||
|<math>\int_0^{\infty}\quad \int\limits_0^{\infty}\quad \sum_{i=1}^n\quad \sum\nolimits_{i=1}^n\quad</math> | |<math>\int_0^{\infty}\quad \int\limits_0^{\infty}\quad \sum_{i=1}^n\quad \sum\nolimits_{i=1}^n\quad</math> | ||
|} | |} | ||
Строка 320: | Строка 316: | ||
==== Скобки ==== | ==== Скобки ==== | ||
- | Для визуальной группировки символов внутри формулы | + | Для визуальной группировки символов внутри формулы скобки — вещь незаменимая. Особенно здорово, если скобки автоматически подгоняют свой размер под выражение, которое они окружают. Парные команды \left и \right включают режим подобной подстройки: |
{| | {| | ||
- | | | + | |<source lang="latex">\[\left( |
- | + | \left[ | |
- | + | \left\langle | |
- | + | \left\{ | |
- | + | \left\uparrow | |
- | + | \left\lceil | |
- | + | \left| | |
- | + | \left\lfloor | |
- | + | \text{text}^{10} | |
- | + | \right\rfloor^9 | |
- | + | \right|^8 | |
- | + | \right\rceil^7 | |
- | + | \right\downarrow^6 | |
- | + | \right\}^5 | |
- | + | \right\rangle^4 | |
- | + | \right]^3 | |
- | + | \right)^2\]</source> | |
- | + | ||
|<math>\left(\left[\left\langle\left\{\left\uparrow\left\lceil\left|\left\lfloor\text{text}^{10}\right\rfloor^9\right|^8\right\rceil^7\right\downarrow^6\right\}^5\right\rangle^4\right]^3\right)^2</math> | |<math>\left(\left[\left\langle\left\{\left\uparrow\left\lceil\left|\left\lfloor\text{text}^{10}\right\rfloor^9\right|^8\right\rceil^7\right\downarrow^6\right\}^5\right\rangle^4\right]^3\right)^2</math> | ||
|} | |} | ||
- | Эстеты, в зависимости от ситуации, могут добавить в конце команды модификатор позиционирования разделителя как | + | Эстеты, в зависимости от ситуации, могут добавить в конце команды модификатор позиционирования разделителя как левого — l (отбивка как для \left), правого — r (отбивка как для \right) и среднего — m. |
==== Перенос формул ==== | ==== Перенос формул ==== | ||
В русскоязычной литературе принято, что при переносе строчной формулы на другую строку знак, по которому разрывается формула, дублируется на следующей строке. Например: | В русскоязычной литературе принято, что при переносе строчной формулы на другую строку знак, по которому разрывается формула, дублируется на следующей строке. Например: | ||
- | + | <source lang="latex">a + b = | |
- | + | = c</source> | |
Однако, по умолчанию этого не происходит. Проще всего решить проблему с помощью следующего макроса<ref>Рецепт от Евгения Миньковского из fido7.ru.tex</ref>, который необходимо определить в преамбуле: | Однако, по умолчанию этого не происходит. Проще всего решить проблему с помощью следующего макроса<ref>Рецепт от Евгения Миньковского из fido7.ru.tex</ref>, который необходимо определить в преамбуле: | ||
- | + | <source lang="latex"> | |
- | + | %перенос формул в тексте | |
- | + | \newcommand*{\hm}[1]{#1\nobreak\discretionary{}% | |
+ | {\hbox{$\mathsurround=0pt #1$}}{}} | ||
+ | </source> | ||
Здесь определена команда \hm, которую следует добавлять в местах потенциального переноса формулы, примерно, так: \(a + b \hm{=} c\). | Здесь определена команда \hm, которую следует добавлять в местах потенциального переноса формулы, примерно, так: \(a + b \hm{=} c\). | ||
Строка 360: | Строка 357: | ||
=== Формулы для Вики === | === Формулы для Вики === | ||
[[Изображение:LXF85-Latex-1.png|thumb|Сделайте так, чтобы Ваш форум или Вики заговорили на языке LaTeX.]] | [[Изображение:LXF85-Latex-1.png|thumb|Сделайте так, чтобы Ваш форум или Вики заговорили на языке LaTeX.]] | ||
- | «Движок», который использует Википедия для отображения формул, называется WikiTeX. Основной сайт проекта, естественно, представляет из себя вики и расположен по адресу http://wikisophia.org/ Используя это программное обеспечение в связке с LaTeX, можно не только сносно отображать математические формулы на WWW без особых ухищрений, но и отрисовывать шахматные партии, химические формулы, фейнмановские диаграммы, нотные записи и многое другое.TeX разрабатывался как программа, которая может формировать изображения для разных устройств, даже для тех, о которых на момент создания этого текстового процессора профессору Д.Э. Кнуту ничего не было известно. Поэтому TeX обретается в самых неожиданных местах. | + | «Движок», который использует Википедия для отображения формул, называется WikiTeX. Основной сайт проекта, естественно, представляет из себя вики и расположен по адресу http://wikisophia.org/ Используя это программное обеспечение в связке с LaTeX, можно не только сносно отображать математические формулы на WWW без особых ухищрений, но и отрисовывать шахматные партии, химические формулы, фейнмановские диаграммы, нотные записи и многое другое. TeX разрабатывался как программа, которая может формировать изображения для разных устройств, даже для тех, о которых на момент создания этого текстового процессора профессору Д. Э. Кнуту ничего не было известно. Поэтому TeX обретается в самых неожиданных местах. |
=== Заключение === | === Заключение === |
Текущая версия
ЧАСТЬ 3: Успешно пройдя две ступени посвящения, вы готовы двинуться в путь к вершинам мастерства. Вашим проводником в этом нелегком деле будет Евгений Балдин.
Содержание |
Компьютерные Teхнологии: Учимся использовать культовую систему вёрстки LaTeX
Полиграфисты относят математические работы к каторжным… Д. Э. Кнут. Математическая типография.
Набор математики: снова в школу
Иногда от незнакомых с TeXнологиями людей приходится слышать, что LaTeX годится только для набора математики. При знакомстве же с истинными TeXнологиями возникает понимание, что LaTeX настолько хорош, что с его помощью можно набирать даже математику.
Набор математических формул всегда считался вершиной типографского искусства. Дело в том, что формулы, для концентрации информации и дополнительной выразительности по сравнению с обычным текстом, являются многоуровневыми. Д. Э. Кнут к своей программе компьютерной типографии создал и язык для описания формул. После короткого периода обучения пользователь в состоянии читать и набирать на этом языке формулы практически любой сложности.
LaTeX — не единственная программная среда, использующая TeXнотацию. Эта же нотация рекомендуется при наборе всех сколько-нибудь сложных формул на страницах Википедии (http://ru.wikipedia.org статья «Википедия:Формулы»).
Становлению TeX как стандарта для набора формул в значительной степени поспособствовало Американское математическое сообщество (The American Mathematical Society — AMS), которое субсидировало разработку расширения TeX, известного как AMSTeX, в начале восьмидесятых годов прошлого столетия. В 1987 году наработки AMSTeX были добавлены в LaTeX в виде пакета amsmath. Вместе с amsmath в LaTeX было добавлено множество улучшений, позволяющих набирать действительно изощрённую математику. Поэтому при использовании в тексте математики в шапке документа следует в обязательном порядке загружать пакет amsmath:
\usepackage{amsmath}
В дальнейшем предполагается, что этот пакет уже загружен. Полностью описать все команды языка для набора формул в рамках короткой статьи нереально, так как математика, как и способы её представления, безгранична. Поэтому основное внимание будет уделено базовым правилам и русскому стилю в формулах. В любой сколько-нибудь большой книге по LaTeX будет полный список всех команд. Если серьёзно работать с математикой, то подобная книжка, в любом случае, понадобится.
Набор формул
При формировании текста формулы подразделяются на строчные и выносные. Строчные формулы набираются внутри абзаца вместе текстом. По описанию формулы LaTeX создаёт бокс, который обрабатывается наравне с обычными текстовыми боксами. Как правило, строковые формулы это небольшие вставки, вроде E=mc2. Выносные или выключенные формулы выводятся за пределы абзаца.
Строчная формула в тексте ограничивается[1] с помощью символа доллара $«формула»$ или с помощью команд-скобок \(«формула»\). При наборе предпочтительнее использовать второй вариант оформления, так как он позволяет легко определить, где начинается, а где кончается формула. «Долларовое» ($) окружение лучше тем, что оно чуть-чуть короче, кроме этого, команда $ крепкая[2], в отличие от команд-скобок.
Однострочные выносные формулы формируются с помощью окружения equation. Так как в этом случае формула вынесена за пределы абзаца, то её можно пронумеровать. Например:
\begin{equation} \label{eq:math:ex1} \int\limits_{-\infty}^{\infty} e^{-x^2/2}dx=\sqrt{2\pi} \end{equation} | ![]() |
Нумерация формул удобна для того, чтобы позже в тексте на неё можно было легко сослаться с помощью команды \eqref{eq:math:1}[3]. Если же формул немного и не хочется никакой нумерации, то можно воспользоваться окружением equation*[4]. При создании выключенной формулы размер шрифта для улучшения читаемости немного увеличивается. LaTeX имеет несколько стилей для оформления математических формул. При желании можно выбрать необходимый стиль вручную:
- \displaystyle — стиль, используемый для выносных формул,
- \textstyle — стиль строчных формул,
- \scriptstyle — в этом стиле набираются индексы,
- \scriptscriptstyle — индексы второго уровня.
С помощью этих команд можно увеличить размер шрифта для формул внутри абзаца, или заставить индексы выглядеть как базовые символы. Например, сравните:
\begin{equation*} \frac{1}{1+ \frac{1}{1+ \frac{1}{1+ \frac{1}{2}}}} \end{equation*} | ![]() |
и \begin{equation*} \frac{1}{\displaystyle 1+ \frac{1}{\displaystyle 1+ \frac{1}{\displaystyle 1+ \frac{\displaystyle 1} {\displaystyle 2}}}} \end{equation*} | ![]() |
Пробелы в формулах отмечают только конец команды, а сами по себе смысла не имеют — LaTeX, как правило, гораздо лучше знает, как сформировать результат.
Кириллица в формулах
Всё дело в имеющихся шрифтах — они красивые, разнообразные, но в большинстве своём англоязычные. В настоящее время кириллические математические шрифты в «дикой природе» отсутствуют, поэтому приходится пользоваться их текстовыми версиями.
Стиль mathtext (пакет t2), позволяет использовать кириллицу в формулах без дополнительных ухищрений. Стиль может быть подключён с опцией warn — в этом случае он сообщает обо всех случаях использования кириллических букв в формулах. mathtext следует загружать до babel и/или fontenc.
\usepackage[warn]{mathtext}
Здесь для создания выключенной формулы используется команда \["формула"\] — краткий аналог окружения equation*. В отличие от латиницы, русские буквы в формулах печатаются прямым шрифтом — это было сделано специально. Чтобы изменить это поведение, в преамбуле следует добавить команду для переопределения шрифта:
\DeсlareSуmbolFont{T2Aletters}{T2A}{cmr}{m}{it}
Стиль amstext (загружается автоматически при загрузке amsmath) определяет команду \text, которая позволяет вставлять в формулу обычный текст. Он может быть и русским. Преимущество такого подхода заключается в том, что внутри команды \text пробелы воспринимаются как нормальные символы и слова не сливаются. Использование \text предпочтительно и для целей переносимости.
Школьная математика
Математика в школе — это явление, через которое проходит каждый. Именно поэтому фактически любой вменяемый россиянин умеет обращаться с дробями, знает теорему Пифагора, с лёгкостью решает квадратные уравнения и что-то слышал про интеграл и производную. Разберёмся со всем этим поподробнее.
Индексы
Букв в латинском алфавите не так уж и много, а научных понятий — без числа. Один из способов отличать обозначения друг от друга — это индексы, как верхние, так и нижние:
\[A_{\text{lower index}}\quad B^{\text{upper index}}\quad C_n^k\] | ![]() |
Обратите внимание, что если в индексе ровно один знак, то фигурные скобки вокруг него можно и нужно опустить. Теперь мы можем записать теорему Пифагора: \(a²+b²=c²\) a2 + b2 = c2
Математические символы
Кроме символов латиницы и кириллицы, математики используют множество самых разнообразных значков, да и латиница не так уж проста. Если воспользоваться пакетом amsfonts, то она может стать такой:
\begin{itemize} \item \(ABCD\) "--- обычной, \item \(\mathbf{ABCD}\) "--- жирной, \item \(\mathbb{ABCD}\) "--- ажурной, \item \(\mathcal{ABCD}\) "---прописной. \end{itemize} |
|
Это далеко не все возможные шрифтовые стили которые можно применять в математической моде, но лучше особо не перегружать формулы всякой «готикой» (например, \mathfrak). Не единой латиницей жив математик. Традиционно, везде, где только можно, используются греческие буквы.
Буква | Команда | Буква | Команда | Буква | Команда |
---|---|---|---|---|---|
![]() | \Alpha \alpha | ![]() | \Iota \iota | ![]() | \Sigma \sigma |
![]() | \Beta \beta | ![]() | \Kappa \kappa | ![]() | \varsigma |
![]() | \Gamma \gamma | ![]() | \Lambda \lambda | ![]() | \Tau \tau |
![]() | \Delta \delta | ![]() | \Mu \mu | ![]() | \Upsilon \upsilon |
![]() | \Epsilon \epsilon | ![]() | \Nu \nu | ![]() | \Phi \phi |
![]() | \varepsilon | ![]() | \Xi \xi | ![]() | \varphi |
![]() | \Zeta \zeta | ![]() | \Pi \pi | ![]() | \Chi \chi |
![]() | \Eta \eta | ![]() | \varpi | ![]() | \Psi \psi |
![]() | \Theta \theta | ![]() | \Rho \rho | ![]() | \Omega \omega |
![]() | \vartheta | ![]() | \varrho |
В LaTeX присутствует полный набор и, за исключением трёх букв, начертание вполне привычное. Для исправления непривычных начертаний эти буквы были переопределены с помощью пакета amssymb:
%Переопределение kappa epsilon phi на русский лад \renewcommand{\kappa}{\varkappa} \renewcommand{\epsilon}{\varepsilon} \renewcommand{\phi}{\varphi}
Спецсимволов в LaTeX великое множество. В стандартной поставке TeX Live идёт «Всеобъемлющий список сиволов LaTeX» (The Comprehensive LaTeX Symbols List — файл symbols-a4.pdf) в котором перечислено 5000 распространённых символов, применяемых пользователями LaTeX. Почти наверняка любой операнд, который вам нужен, там уже есть. Ниже будет перечислена только та часть символов, которая, с моей точки зрения, может пригодиться в наборе школьной математики. Пакет amssymb для использования обязателен.
![]() | \hat{a} | ![]() | \bar{a} | ![]() | \vec{a} | ![]() | \dot{a} | ![]() | \tilde{a} |
![]() | \pm | ![]() | \mp | ![]() | \times | ![]() | \cdot | ![]() | \div |
![]() | \lor | ![]() | \land | ![]() | \neg | ![]() | \forall | ![]() | \exists |
![]() | \le | ![]() | \ge | ![]() | \ll | ![]() | \gg | ![]() | \neq |
![]() | \equiv | ˜ | \sim | ![]() | \simeq | ![]() | \approx | ![]() | \propto |
![]() | \parallel | ![]() | \perp | ![]() | \angle | ![]() | \triangle | ![]() | \sphericalangle |
![]() | \infty | ![]() | \ell | ![]() | \sum | ![]() | \prod | ![]() | \varnothing |
Для соответствия русским традициям 2 символа были переопределены:
%Переопределение le ge на русский лад \renewcommand{\le}{\leqslant} \renewcommand{\ge}{\geqslant}
Дроби
Дроби формируются с помощью команды \frac[5]:
\[ fraction=\frac{numerator}{denominator} \] | ![]() |
Как и практически вся математика в LaTeX, дробь записывается так, как читается само выражение.
Корни
Для рисования знака корня используется команда
\sqrt[степень]{«подкоренное выражение»}
Степень можно упустить. В этом случае рисуется обычный квадратный корень.
\overline{ \underline{\Large \sqrt[3]{a}+\sqrt[2]{b}+\sqrt[99]{g} } } | ![]() |
Обратите внимание, что знак корня размещается в соответствии с размерами подкоренного выражения. Если в выражении присутствует только один корень, то это самое разумное поведение, но в случае нескольких корней, как в приведённом выше примере, не помешает выравнивание.
Для выравнивания по высоте используется команда \mathstrut[6]. В результате её применения вставляется невидимый символ нулевой толщины и высоты, в точности равной высоте круглой скобки:
\[\Large \sqrt[3]{\mathstrut a}+ \sqrt[2]{\mathstrut b}+ \sqrt[99]{\mathstrut g} \] | ![]() |
Квадратное уравнение
И, наконец, вершина школьной математики — это решение квадратного уравнения ax²+bx+c=0:
\[
x_{1,2}=\frac{-b\pm\sqrt{b^2-4ac}}{2a}
\] | ![]() |
Теперь можно смело садиться за написание методичек.
Функции
Все символы в математической моде печатаются курсивом, поэтому названия функций, для выделения, печатаются прямым шрифтом. Кроме смены шрифта, функции с обоих сторон должны правильно «отбиваться» пробелами, иначе будет некрасиво. При загрузке русского языка с помощью пакета babel кроме стандартных имён функций доопределяется несколько сокращений, применяемых в русскоязычной литературе. Среди часто употребляемых функций можно упомянуть: cos, arccos, sin, arcsin, tg, arctg, ctg, arcctg, sh, ch, th, cth, exp, ln, log, lim, min и max. В математической моде эти функции можно использовать в качестве команд:
\begin{equation*} \begin{split} &\log_2 10=\ln10/\ln2\simeq3.32 \\ &\lim_{x\to0}\frac{\sin x}{x}=1\\ &(a+b)^n=\sum_{k=1}^n C^k_n a^kb^{n-k} \end{split} \end{equation*} | ![]() |
Обратите внимание на обработку индексов для функции log (логарифм) и lim (предел). Для доопределения новых функций правильнее всего воспользоваться в преамбуле командой DeclareMathOperator:
%В преамбуле — определение новых функций \DeclareMathOperator{\log-like}{log-like} \DeclareMathOperator*{\lim-like}{lim-like}
В зависимости от варианта команды индексы отображаются как для логарифма (команда без звёздочки) или как для предела (команда со звёздочкой).
Производная и интеграл
В старших классах, в конце обучения, обычно чуть-чуть касаются понятий интегрирования и дифференцирования. Возможно, для того, чтобы правильно подсчитать сдачу в магазине, эти знания не являются необходимыми. Но для изучения физики и, как следствие, химии и биологии без интегралов никак — поверьте мне на слово.
Производная обычно отмечается штрихом. В физике, производная по времени выделяется точкой, для того чтобы отличать её от производной по координате. Можно честно написать \frac{d F(x)}{dx}. Для частной производной вместо буквы d используется спецсимвол \partial:
\[ f'\quad f''\quad \dot{f}\quad \ddot{f} \quad \frac{d f}{d x}\quad \frac{\partial f}{\partial x} \] | ![]() |
Взятие производной есть обратная операция по отношению к интегрированию:
\[ \frac{d}{dx}\int F(x) dx=F(x) \] | ![]() |
Приглядевшись к этому примеру, можно отметить, что, вопреки русским математическим традициям, представленный здесь интеграл не прямой, а наклонный. Это можно исправить, например, загрузив пакет wasysym с опцией integrals. К сожалению, получающиеся интегралы «не смотрятся», поэтому пока лучше использовать начертания по умолчанию в надежде, что в будущем ситуация изменится к лучшему.
Неопределённый интеграл — это хорошо, а определённый — лучше. Качественное оформление пределов интегрирования важно для восприятия формулы.
\[ \int_0^{\infty}\quad \int\limits_0^{\infty}\quad \sum_{i=1}^n\quad \sum\nolimits_{i=1}^n\quad \] | ![]() |
По умолчанию пределы размещаются справа от интеграла. Ситуацию можно поправить с помощью команды \limits. Команда \nolimits делает всё ровно наоборот.
Скобки
Для визуальной группировки символов внутри формулы скобки — вещь незаменимая. Особенно здорово, если скобки автоматически подгоняют свой размер под выражение, которое они окружают. Парные команды \left и \right включают режим подобной подстройки:
\[\left( \left[ \left\langle \left\{ \left\uparrow \left\lceil \left| \left\lfloor \text{text}^{10} \right\rfloor^9 \right|^8 \right\rceil^7 \right\downarrow^6 \right\}^5 \right\rangle^4 \right]^3 \right)^2\] | ![]() |
Эстеты, в зависимости от ситуации, могут добавить в конце команды модификатор позиционирования разделителя как левого — l (отбивка как для \left), правого — r (отбивка как для \right) и среднего — m.
Перенос формул
В русскоязычной литературе принято, что при переносе строчной формулы на другую строку знак, по которому разрывается формула, дублируется на следующей строке. Например:
a + b = = c
Однако, по умолчанию этого не происходит. Проще всего решить проблему с помощью следующего макроса[7], который необходимо определить в преамбуле:
%перенос формул в тексте \newcommand*{\hm}[1]{#1\nobreak\discretionary{}% {\hbox{$\mathsurround=0pt #1$}}{}}
Здесь определена команда \hm, которую следует добавлять в местах потенциального переноса формулы, примерно, так: \(a + b \hm{=} c\). Сделать это можно во время окончательной доводки текста. В любом случае, для полировки рукописи ручная работа необходима.
Формулы для Вики
«Движок», который использует Википедия для отображения формул, называется WikiTeX. Основной сайт проекта, естественно, представляет из себя вики и расположен по адресу http://wikisophia.org/ Используя это программное обеспечение в связке с LaTeX, можно не только сносно отображать математические формулы на WWW без особых ухищрений, но и отрисовывать шахматные партии, химические формулы, фейнмановские диаграммы, нотные записи и многое другое. TeX разрабатывался как программа, которая может формировать изображения для разных устройств, даже для тех, о которых на момент создания этого текстового процессора профессору Д. Э. Кнуту ничего не было известно. Поэтому TeX обретается в самых неожиданных местах.
Заключение
Изложенных правил и приёмов вполне хватит для набора текстов в рамках школьной математики. Для более изощрённых формул требуются более продвинутые приёмы и конструкции. Всё это будет, но чуть позже.
Примечания
- ↑ Есть более формальное оформление строчной формулы как окружения: \begin{math} «формула» \end{math}. Но, в силу понятных причин, никто подобное описание не использует.
- ↑ Начав изучать команды LaTeX, довольно быстро сталкиваешься с понятиями «хрупкости»/«крепкости». «Крепкие» команды, в отличие от «хрупких», можно использовать в качестве аргументов других команд. С другой стороны, хрупкие команды тоже можно использовать как параметры, защитив их с помощью команды \protect. Эти понятия в большинстве своём пережитки прошлого и их постепенно изживают, но пока следует иметь их в виду.
- ↑ Метка выставляется с помощью команды \label.
- ↑ К equation добавляется звёздочка. Подобный приём в создании команд применяется достаточно часто. Команда со * обычно не нумеруется и не отображается ни в каких автоматически составляемых списках.
- ↑ От слова fraction — «дробь».
- ↑ От английского strut — «подпорка» или «страта».
- ↑ Рецепт от Евгения Миньковского из fido7.ru.tex