Що це взагалі таке? §
LaTeX [латèх] — це дуже зручна система верстки. Уся серйозна писанина зверстана мовою LaTeX, бо це забезпечує гнучкість роботи з файлами та отримання гарних, структурованих паперів. А ще Латехом називають мене в університеті (дійсно, чому?).
Якщо коротко, то за допомогою LaTeX можна перетворити це
\newcommand{\entry}[3]{\markboth{##1}{#1}\textbf{#1}\ {$\bullet$}\ {#2};\ {\it#3}}
\entry{to pester}{набридати}{}
\entry{platter}{жорсткий магнетний диск, грамплатівка}{}
\entry{inexplicably}{незрозуміло, нез'ясовно}{}
\entry{anodyne}{болезаспокійлливий}{anodyne yodeling}
\entry{retort}{різка, дотепна відповідь; відповідати тим же}{}
\entry{terrific}{колосальний, чудовий, разючий, страшний}{He had a terrific ear for the hit song.}
\entry{clairvoyance}{ясновидіння, прозорливість, проникливість}{his pop music instincts approached clairvoyance.}
\entry{slum(s)}{нетрі, закутки; брудний закуток}{}
на це:
Можете переглянути приклади гарних документів тут і тут, або просто уважно роздивіться якусь серйозну книжку.
Це універсальна штука, яку використовують математики, мовознавці, хіміки, художні письменники, мітологи та всі, хто хоче легко створити гарний документ.
Нашо мені його вчити? §
- LaTeX робить усе за вас (МАГІЯ!!!)
- Компілятор автоматично нумерує рисунки, формули, елементи списків і т д; налаштовує перехресні посилання, генерує зміст, бібліографію та (майже) ідеально розставляє всі елементи твору. Просто подумайте, скільки це заощаджує часу та зусиль!
- Тільки текст
- Текстові файли займають мало місця, зручні для пошуку, переміщення та інших маніпуляцій.
- Програмування в документах
- ви можете використовувати оператори умовного переходу, створювати власні команди та взагалі робити, що заманеться.
- Автоматизація роботи
- Стандартні утиліти GNU безумовно перевершують графічні інструменти редакторів WYSIWG, але краще один раз відчути, побачити, понюхати, ніж недочитати, тому ось посилання на мій скрипт для генерації різнотипних документів у НУ “ЛП”.
- Вічні документи
- Ви можете знайти код для будь-якої дивної науково-мистецької штуки в інтернеті та використати у своїй роботі.
- Необов’язково LaTeX
- ви можете писати невеликі документи різними мовами розмітки, зокрема Markdown, і використовувати програми на кшталт Pandoc для перетворення їх на сирці LaTeX або готові PDF 1.
- LaTeX легко вивчити
- мова розмітки ЛаТеХ об’єктивно простіша за HTML, бо більшість синтаксису — просто англійські слова.
З чого почати? §
Отже, тепер ви хочете готувати документи за допомогою LaTeX, тож розгляньмо встановлення цього пакету та коротко основи мови.
Установлення §
- Arch-подібні дистри GNU/Linux (Artix, Manjaro, Parabola)
pacman -S texlive-most texlive-lang
- Debian-подібні (Ubuntu/Linux Mint)
apt-get install texlive-full
Деякі дистриб’юції (як Void) використовують tlmgr для керування пакетами TeX.
- Для Windows
- Getting MiKTeX
- існує розширення для VSCodium
- Для MacOS X?
- MacTeX - TeX Users Group
Також існує пакунок texlive-most-doc, у якому міститься величезна кількість документації до пакетів latex. Скоріш за все, поки він скачається, ви заснете, але це часом стає в нагоді.
Загалом те, що треба, достатньо шукати в інтернеті. Ось кілька сайтів, які я для цього можу порадити:
- texdoc — те саме, тільки веб
- CTAN
- texblog
- https://texample.net/
- https://fedorsarafanov.github.io/
- https://www.learnlatex.org/en/
Загальний вигляд команд §
\командабезаргументів
\команда[додаткові]{обов'язкові}{аргументи}
\begin{середовище}
вміст
\команда
в більшість середовищ можна вкладати інші середовища
\end{середовище}
Нормальна преамбула §
Преамбула — це набір налаштувань перед умістом документу
Тут я наведу необхідну базу, а якщо вам знадобиться більше, можете поглянути на мою преамбулу для університетських паперів. Я б не сказав, що вона крута, але так ви можете дізнатися про кілька класних пакетів.
Також ось файл, набір якого я коментуватиму далі, також файл для бібера й картинка.
\documentclass[oneside,final,12pt]{extarticle} % клас документа й додаткові параметри
% команда \usepackage використовується для під'єднання пакунків
\usepackage[utf8]{inputenc} % кодування вводу % [koi8-r]
\usepackage[T2A]{fontenc} % кодування шрифта
\usepackage[ukrainian]{babel} % пакет для локалізації
\usepackage{indentfirst} % звичні для нас абзаци на початках розділів/секцій
\sloppy % бореться з залізанням на поля
\begin{document}
% ... Вміст документа тут ...
\end{document}
Для трохи більших документів
замість extarticle
можна використовувати
клас extreport
— у ньому вже з’являються розділи,
до цього ми зараз дійдемо, адже
тепер ми маємо преамбулу й можемо починати
бавитись.
Дрібка синтаксису §
Я спробую стисло розглянути найпоширеніші команди. Але спочатку ось команда для компіляції документа:
pdflatex <назва файлу>
Рубрикація §
Усе транскрибую як є, щоб не виникало плутанини, хоча це точно не переклад.
%\chapter{розділ, extarticle не має}
\section{секція}
це все зверстається
як
одна стрічка. % а ще латех виправить пропуски
Щоб почати новий абзац,
достатньо пропустити рядок.
\subsection{підсекція}
\subsubsection{підпідсекція}
\paragraph{параграф}
\subparagraph{підпараграф}
до кінців назв команд рубрикації й узагалі
будь-яких із лічильниками можна
додавати *
(напр. section*{...}
),
щоб прибрати номер
Трохи про сам текст §
\textbf{жирний}
\textit{курсив}
\emph{виділений текст, за замовчуванням курсивний}
\underline{підкреслення}
\subsection{Трохи про лапки}
"кожен символ значить те що значить"
``отак треба подвійні лапки''
`а так це наголос і апостроф'
Списки §
Списки створюються за допомогою
середовищ enumerate
(нумеровані)
та itemize
(ненумеровані)
\begin{enumerate} % номери підкреслюють важливість або послідовність
\item щось
\begin{itemize} % можна вкладати деякі середовища в інші
\item ще щось % не нумерує
\item ще щось
\end{itemize}
\item щось
\begin{enumerate} % автоматично переходить на інший спосіб нумерації
\item ще щось
\end{enumerate}
\end{enumerate}
Картинки й рисунки §
\begin{figure}[h] % рисунок ТУТ (Here), можна t (top), b (bottom), p(page), ! (ігнорувати деякі параметри LaTeX для розміщення)
\centering % все після цього в середовищі відцентроване
\includegraphics[width=.7\textwidth]{latex}
\caption{латех база}
\label{chadtex} % так само можна позначати рисунки
\end{figure}
Не додаємо суфікс
.png
, бо якщо є файл із суфіксом.eps
, то використає його, а це краще, але тут ми такого не будем робити.
Більше про параметри розміщення для плавких об’єктів тут
Математика §
Для математики одразу краще використовувати
пакет amsmath
, додаємо до преамбули
\usepackage{amsmath}
Ось способи відкриття математичного середовища без номера:
Математична формула $\phi=x-21e$ всередині стрічки
$$
a+a_1=0 % багатосимвольний нижній індекс: _{qriu}
\implies % очевидно імплікація (випливає).
a=-a_1 % потрібні символи просто шукайте в літературі й інтернеті
$$
\[ % так краще, бо розумієте, де початок і кінець
\sin^2 19x + \cos^2 19x = 1 % верхній^{індекс}
\]
До речі, верхній^{індекс}
не зверстається,
якщо не запхати його в \text{верхній}^{\text{індекс}}
,
бо ми в математичному середовищі.
До речі, тут автоматично визначаються всі пропуски,
тому як потрібно десь поставити, наприклад, пробіл,
замість ' '
набираємо '~'
— символ нерозривного пробілу. Насправді є більше нюансів, але я не просто так
залишаю нижче посилання на кілька гарних джерел.
Деякі математичні середовища з лічильниками, паралельно дроби:
\begin{equation}
\frac{\sin(3n)}{3^n}
% дроби пишуть за
% допомогою команди \frac,
% 1-й аргумент --- чисельник
% 2-й --- знаменник
\end{equation}
\begin{align} % це середовище нумерує все, розділене переведенням рядка, якщо не додати до `align` `*`
xdy=(3y-2x)dx \\
\frac{dy}{dx}=\frac{3y-2x}{x}
\label{bruh} % можна так позначати...
\end{align}
\ref{bruh} % ... і потім звертатися, і буде відображатися номер рівняння/рисунку/секції/(...)
Я залишаю між середовищами порожні рядки не просто так. Інакше можуть відбуватися дивні речі, хоча все потрібно вміти використати на свою користь — деколи прибирання пропусків може зекономити відносно багато паперу
Бібліографія §
Можна писати її безпосередньо в латех:
\begin{thebibliography}{00} % 00 вказує максимальну ширину номера посилання й використовуєтьтся для горизонтального вирівнювання елементів списку.
\bibitem{latex2days} Дональд Е.~Кнут. \emph{Все про} Tex. Видання, Київ, 2929. % у [] можна вказати номер
\end{thebibliography}
Але значно зручніше використовувати Biber та BibTeX.
(Не забудьте встановити Biber, в арчі це pacman -S biber
).
Додаємо це до преамбули
\usepackage[backend=biber]{biblatex}
\addbibresource{bib.bib}
вміст bib.bib
:
@book{test,
author = "Автор Я",
title = {Назва книжки},
year = 2023,
publisher = {видавець},
address = {місто}
}
@book{other,
author = "Хтось",
title = {Назва книжки},
year = 2023,
publisher = {видавець},
address = {місто}
}
Тепер звертаємося до нашої книжки, наприклад,
за допомогою варіацій команд типу \cite
:
\cite{test} % можна додати якісь нотатки
\textcite[ст.~21]{test} % наприклад, номер сторінки
% ...
\printbibliography % вивід бібліографії
Будуть надруковані тільки ті твори, на які ви посилалися. Якщо потрібно додати щось без відображення:
\nocite{other}
Трохи про компіляцію: §
- Звично збираємо документ.
- потім даємо Biber назву файлу, але без суфікса
.tex
) - знову компілюємо й тішимося
Що далі? §
Ця стаття покликана лише дати вам загальне розуміння LaTeX та максимально продати вам його за безплатно. Тому тут я залишаю кілька посилань, за якими ви знайдете гарні джерела інформації.
- Якщо ви знаєте англійську мову, то тут знайдете одразу багато корисного. Зрештою, навіть не знаючи англійської, ви можете просто повторювати команди.
- файна книжка (копія тут), якщо ви володієте московською говіркою. Це не жарт, найбільш використовувані штуки можна вивчити навіть швидше.
-
Узагалі за допомогою pandoc можна перетворювати значно більше типів. Дуже рекомендую цю програму. ↩︎