Набор таблиц в ЛаТеХе: Tables in LaTeX



48 коммент.
Этот пост является частью большой статьи
"Как оформить диплом в LaTeX?",
которую написал virens,
ведущий блога "Записки дебианщика".


Этот пост написан давно, но всё ещё актуален:
Автор заходил править этот пост 6 октября 2013 года.

При наборе таблиц в LaTeX, как нигде, нужна правильная организация кода - таблицы это то, что в ТеХе делать сложнее всего. И если вы свалите в кучу все управляющие метки ЛаТеХа, то потом будете проклинать всё на свете. Здесь каждый выбирает свой стиль по своему вкусу, однако надо постараться отличать управляющие символы от собственно текста таблицы.
Кое-кто из комментаторов ниже распалялся по поводу того, что, дескать, ``всё уже давно написано, читайте книжки''. Я ещё раз уточню свою позицию по этому поводу: время тыкания людей в пудовые талмуды и дурно написанные мануалы прошло. Документация, как и программы, должны быть повёрнуты к пользователю лицом. Методические пособия типа этого помогут людям начать разбираться с предметом, подталкивая к изучению книг и делая кривую обучения более пологой.
Так как вёрстка таблиц в ЛаТеХ - дело не для слабонервных, лучше предварительно набросать на листке бумаги или графическом редакторе примерную схему таблицы. Делать наброски карандашом всегда проще, чем с воем и рыданиями переделывать код таблицы.

Небольшое введение в ЛаТеХнические таблицы

Таблица в LaTeX в идеологическом смысле очень похожа на рисунок: есть окружение \begin{table}... \end{table}, которое собственно и содержит все ``опознавательные знаки'' вроде подписи и ссылки, и собственно сама таблица \begin{tabular}{|rlc|} ... \end{tabular}.

Поэтому окружений для создания таблиц в LaTeX два: \begin{tabular}{|rlc|} ... \end{tabular}, которое управляет тем, как выглядит таблица, и \begin{table}... \end{table}, которое даёт вам возможность оформить заголовок таблицы с помощью команды \caption{} и поставить на таблицу ссылку с помощью привычной команды \label{}.


Набор простой таблицы в LaTeX

Например, если нам не требуется ссылка на таблицу или подпись под ней, тогда достаточно только окружения \begin{tabular}... \end{tabular}. Окружение tabular создаст простую таблицу, без подписи и ссылки. Вот пример кода простой таблицы в ЛаТеХе.

\begin{center}
\begin{tabular}{ccc}
Расширение краёв: & \textbf{1,0-1,4} & размер ФРТ \\
Аподизация: & \textbf{0,25-0,30} & размер ФРТ \\
Сглаживания краёв: & \textbf{0,25-0,50}& размер ФРТ \\
\end{tabular}
\end{center}
 
Колонки отделяются символом &, строки в таблице заканчиваются двойным слешем \ после крайней колонки. А вот как таблица выглядит в документе:


Здесь есть партизанская засада: если вы внутрь окружения tabular поставите метку командой \label{}, а потом сошлётесь на неё, то получите совсем не то, что ждёте. Ссылка в тексте укажет на номер раздела, а вовсе не таблицы.

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

\begin{table}[H]
\caption{Исправьте это на подпись к таблице}
\label{tabular:timesandtenses}
\begin{center}
\begin{tabular}{ccc}
Расширение краёв: & \textbf{1,0-1,4} & размер ФРТ \\
Аподизация: & \textbf{0,25-0,30} & размер ФРТ \\
Сглаживания краёв: & \textbf{0,25-0,50}& размер ФРТ \\
\end{tabular}
\end{center}
\end{table}
 
Вот как это выглядит в документе:


Вроде как то же самое, только номер теперь стал 1.1. Простановка ссылок осуществляется так же, как и всегда, то есть: поставить ссылку в LaTeX можно командой \label{tabl:Textssylki} а сослаться на неё командой \ref{tabl:Textssylki}. Не забываем ставить тильду между словом и ссылкой слово~\ref{tabl:Textssylki} чтобы ваша ссылка не уехала на другую строчку.


Управление видом таблицы в LaTeX

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

Точное размещение таблиц

Окружение table позволит вам указывать LaTeX, где вы хотите видеть таблицу:
  1. оставить определение места таблицы в тексте на усмотрение ЛаТеХа - \begin{table}[h] "хотелось бы таблицу здесь";
  2. настойчиво просить разместить таблицу после текста \begin{table}[h!] "очень хочу таблицу здесь", или
  3. ударить кулаком по столу - таблицу тут \begin{table}[H], то есть "хочу таблицу именно здесь и баста"
    • с прибавлением буквы p мы заставляем поместить ЛаТеХ таблицу отдельно на страницу так: \begin{table}[pH].
    • добавление букв t или b заставляют LaTeX поместить таблицу \begin{table}[tb!] вверху или внизу, соответственно.

Размеры колонок в таблице LaTeX

Сама по себе таблица находится в окружении \begin{tabular}{|rlc|} ... \end{tabular}. Здесь вертикальная линия обозначает отделение линией столбцов, а R L и С выравнивание соответственно по правому / левому краю и по центру.

Если столбец слишком широкий, можно задать его ширину с помощью выражения p{0.7\linewidth}, которое сделает столбец шириной в 70\% от ширины линии, например так: \begin{tabular}{|p{0.4\linewidth}p{0.4\linewidth}} сделает таблицу с двумя колонками по 40\% от ширины линии и отчеркнёт вертикальными линиями по бокам.

Строки отделяются друг от друга при помощи команды \hline а каждая строка таблицы завершается двойным слешем \\ или командой \linebreak.

Подписи и ссылки на таблицы
Вставка подписи к таблице \caption{Исправьте это на подпись к таблице} и ссылки на таблицу \label{tabular:timesandtenses} делается так же, как и для рисунков. То есть сначала \caption{Исправьте это на подпись к таблице} а после этого вставляем \label{tabular:timesandtenses} для того, чтобы потом сослаться на таблицу \ref{tabular:timesandtenses} в тексте.
Важное замечание о порядке следования \label и \caption Если поставить \label{tab:some_table} до \caption{...}, то даже при использовании окружения table в ссылке будет выдаваться не номер таблицы, а номер раздела.
Напоминаю снова и снова о необходимости ставить понятные и информативные ссылки, чтобы вы сами смогли потом понять, где то место, куда вы ссылаетесь. Ставим длинные и подробные имена ссылок, чтобы потом не искать по Тайге ris21 или tabl43. Никаких оправданий таким именам ссылок нет, и дядя Кнут будет недоволен.


Объединение нескольких колонок в одну

Иногда нужно объединить несколько колонок в одну на какой-то строке и убрать вертикальные линии для этого, например, чтобы сделать пояснения. В визуальных табличных редакторах типа OpenOffice.Calc это просто, но так как ЛаТеХе - это вообще говоря язык программирования, то здесь придётся немного сложнее. Для этого нужно воспользоваться командой \multicolumn.

Синтаксис у команды простой: \multicolumn{2}{|c|}{Результаты измерений} означает, что мы объединяем 2 (два) столбца в таблице, получившаяся ячейка будет центрирована и нарисованы вертикальные линии. В объединённой колонке на той строке, где мы поместим команду \multicolumn, будет текст Результаты измерений. Вот как это выглядит в коде:

\begin{table}[H]
\caption{\label{tab:canonsummary}Измерительные характеристики цифровой камеры Canon EOS 400D.}
\begin{center}
\begin{tabular}{|c|c|}
\hline
Параметр & Значение \\
\hline
Разрешение & $3888 \times 2592$ \\
Размер сенсора & $22.2 \times 14.8$ мм \\
АЦП & 12~bit\\
\hline
\multicolumn{2}{|c|}{Результаты измерений} \\
\hline
Темновое смещение (BLO) & 256 \\
Максимальный линейный сигнал & 3070~DN \\
Значение насыщения & 3470~DN \\
\hline
\end{tabular}
\end{center}
\end{table} 
 
А вот как эта таблица будет выглядеть в документе:


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


Многостраничные таблицы

Время от времени таблицы становятся длинными до неприличия и не влезают в одну страницу. Чтобы сделать многостраничную таблицу в LaTeX, используем пакет расширений \usepackage{longtable}, который подключаем в преамбуле документа (там, где остальные команды типа \usepackage). В остальном всё то же самое, как и раньше, только используем окружение longtable вместо table. Вот пример:

\begin{longtable}[H]{lp{0.7\linewidth}}
$A$ & area of the (geometrical) pixel [m\textsuperscript2] \\
$c$ & Speed of light $\approx 3 \cdot 10^8$ m/s \\
$DYN_{in}$ & Input dynamic range [1] \\
$DYN_{out}$ & Output dynamic range~[1] \\
$E$ & irradiance on the sensor surface~[W/m\textsuperscript2] \\
$F$ & Non-whiteness coefficient \\
$h$ & Planck's constant h $\approx6.63 \cdot 10^{-34} Js$ \\
$K$ & overall system gain~[DN/e-] \\
$k_d$ & Doubling temperature of the dark current~[$^\circ$C] \\
$N_d$ & dark current~[e-/s] \\
$N_{d30}$ & dark current for a housing temperature of $30^\circ C$~[e-/s]\textsuperscript2 \\
$S_g^2$ & variance coefficient of the spatial gain noise~[\%] \\
\end{longtable} 
 
Вот как это выглядит в документе:



Стоит упомянуть, что если столбец слишком широкий, можно задать его ширину вот так: \begin{longtable}[h]{lp{0.7\linewidth}} с помощью выражения p{0.7\linewidth}, которое сделает столбец шириной в 70% от ширины линии.



Поворот таблицы в LaTeX

Ну и под занавес приведу пример достаточно сложной таблицы, которая повёрнута на 90 градусов (таблица в ландшафтной ориентации в ЛаТеХе). Поворот сделан при помощи команды \rotatebox{90}{я - объект} что обеспечивает поворот любого объекта на 90 градусов. Так как данные структурированы и код организован достаточно логично, редактировать таблицу относительно просто. 

\rotatebox{90}{ %это обеспечивает поворот любого объекта
\begin{minipage}{1.5\linewidth}
\begin{table}[H]
\caption{Сравнение количественных данных по влиянию искажений на результат декодирования}
\begin{center}
\begin{tabular}{|p{5cm}c|c|}
\hline
\multicolumn{3}{|c|}{\textbf{Графические изображения}}\\
\hline
\textbf{Характеристика} & \textbf{8-битные} & \textbf{16-битные}\\
\hline
\multicolumn{3}{|c|}{Влияние шумов квантования}\\
\hline
Шумы квантования
& $6.3 \div 22.6\%$
& $0.2 \div 0.5\%$ \\
\hline
\multicolumn{3}{|c|}{Влияние шумов фотоприёмника}\\
\hline
Шумы фотоприёмника
& $8.8 \div 87.5\%$
& $7.1 \div 87.6\%$ \\
\hline
\multicolumn{3}{|c|}{Влияние особенностей ФРТ}\\
\hline
декодирование ФРТ той же реализацией шума
& $6 \div 13\%$
& $0.5 \div 15\%$ \\
\hline
декодирование ФРТ с другой реализацией шума
& $6 \div 14\%$
& $0.3 \div 12\%$ \\
\hline
декодирование идеальным ФРТ
& $6 \div 6.5\%$
& $0.2 \div 6.4\%$ \\
\hline
\end{tabular}
\end{center}
\end{table}
\end{minipage}} 
 
Вот как таблица выглядит в документе:


Есть и другие команды для поворота объектов в LaTeX, например turn из пакета rotating. Преимущество команды \rotatebox в том, что она содержится в пакете \usepackage{rotating} и обычно graphicx уже подключён для отображения иллюстраций в LaTeX.

Заключение

В этом разделе я собрал все примеры таблиц, которые использовал в реальных документах. Этого должно хватить для того, чтобы оформить простые таблицы в LaTeX. Более сложные таблицы описаны в постах:
Главное - не лениться структурировать код таблицы, и тогда таблицы в ЛаТеХе не превратятся для вас в камеру пыток.

Читать далее

С наступающим!



12 коммент.
Поздравляю всех читателей и читательниц блога "Записки дебианщика" с наступающим 2009 годом! Всем всего самого наилучшего, и да пребудет с вами Сила!


Столлмен с нами,
С нами сила
И уверенность в победе!
Читать далее

Midnight Commander: установка, обновление и использование MC



20 коммент.
Будучи поклонником двухпанельных файловых менеджеров, я просто не мог пройти мимо такого знаменательного события! Midnight Commander, он же MC после многих лет простоя обновился до версии 4.6.3. В ней подавлено много жуков и тараканов на радость простым пользователям. Этому и посвящена сия заметка.

Надо сказать, что Midnight Commander является наследником традиций norton commander, так что если кто скучает по легендарному двухпанельному файловому менеджеру, тот найдёт в Linux его достойную замену в лице Midnight Commander.


Что изменилось в новом Midnight Commander?
Из наиболее разительных изменений: поменялась подсветка типов файлов по умолчанию, починен старый и весьма раздражающий баг "Интерпретатор занят выполнением команды", отображение объёма свободного места в текущей точке монтирования и просто огромное количество других изменений. Разработчики так же обещают в ближайшем времени продолжить охоту за багами и объединить все накопившиеся патчи, чтобы любимый многими Midnight Commander стал ещё краше.

В целом всё это стоит того, чтобы обновить старый-добрый Midnight Commander. Для некоторых дистрибутивов есть сборки, так что скачать mc можно на странице проекта сразу в собранном для вашего дистрибутива виде. Для тех же из нас, кто как и автор этих строк использует Rock-Solid Debian Stable, сборка Midnight Commander из исходников сразу в пакет проблемы не составит. Достаточно скачать приглянувшийся срез отсюда и дать несколько простых команд:
dh_make --createorig
и пишем, что пакет собрали мы сами, после чего:
debuild
и наблюдаем, как за несколько мгновений собирается Midnight Commander. Сборка должна пройти без проблем, и полученный deb-пакет легко и просто ставится:
dpkg -i mc_4.6.3-1_i386.deb
На этом установка mc завершена, существующий Midnight Commander будет обновлён до версии 4.6.3. После этого набираем привычное mc и наслаждаемся. Вот как выглядит Midnight Commander у меня в Yakuake:


Если не считать немного изменившейся подсветки файлов и отображение места на текущей точке монтирования, всё осталось, как и прежде.

Клавиатурные сокращения MC
Чтобы выжать из
Midnight Commander всё, стоит запомнить хотя бы несколько клавиатурных сокращений, которые могут сильно облегчить выполнение задач. Клавиатурные комбинации в Midnight Commander имеют особенность: комбинация Ctrl + x c означает, что нужно нажать CTRL и X, отпустить и потом нажать клавишу C.

Итак, некоторые комбинации клавиш Midnight Commander:
  • Ctrl + R обновляет активную панель;
  • Ctrl + X C посмотреть/поменять права (chmod) для отмеченных файлов;
  • Ctrl + X O посмотреть/поменять владельца (chown) для отмеченных файлов;
  • Ctrl + S или Alt + S открывает диалог быстрого поиска (вводимые символы отображаются не в командной строке, а в строке поиска);
  • Ctrl + X A открывает диалог виртуальных файловых систем;
  • Ctrl+ \ вызывается меню часто используемых каталогов.
  • Ctrl + X J показываются все фоновые задачи.
  • Ctrl + X T послать выделенные объекты в командную строку
  • Ctrl + X S создать символическую ссылку (symlink)
  • Ctrl + X Q быстрый просмотр содержимого файла на второй панели.
  • Ctrl + X I быстрый просмотр информации о текущем объекте на второй панели.
  • ESC + T или ALT + T cмена вида панели (стандартный, укороченный, расширенный);
  • ESC + H или ALT + H вызов списка последних выполненных команд;
  • Alt + G отмечает первый файл или каталог в отображаемом списке на панели
  • Alt + R отмечает средний файл или каталог в отображаемом списке на панели
  • Alt + J отмечает последний файл или каталог в отображаемом списке на панели
  • Alt + O неактивная панель переходит в каталог на который указывает активная панель.
  • Alt + . не показывать или показать скрытые файлы или каталоги.
  • Alt + , переключить режим отображения панелей (вертикально/горизонтально).
  • + (Plus) вызывает окно для выделения группы файлов (можно использовать регулярные выражения)
  • \ (Backslash) снимает отметку с группы файлов (действие, обратное тому, которое
    вызывается по клавише "+").
Следует отметить, что по крайней мере в версии 4.6.3 клавиатурные комбинации могут не работать, если выключена русская раскладка.

Ассоциация приложений в Midnight commander
Например, если подсветить PDF-файл и нажать Enter, должен запуститься KPDF/Evince и открыться PDF-файл. Если этого не произошло, идём копировать файл настроек из /etc/mc и ложить его в в .mc/bindings
Дело в том, что MC не читает глобальный конфиг, о чём люди на форумах часто не пишут. Так что редактировать нужно локальную копию.

Так же редактировать это можно прямо внутри MC: F9 - Command - Edit extension file
и правим там ассоциации с расширениями файлов.

Ссылки
Теперь основное развитие Midnight Commander идёт здесь, где лежат исходники, немного собранных пакетов и вполне приличная документация на русском языке. Список горячих клавиш Midnight Commander так же есть и на английском. Интересная инструкция по работе с Midnight Commander лежит здесь. Шпаргалка по основным сокращениям MC находится здесь.
Читать далее

Иллюстрации и рисунки в LaTeX



47 коммент.
Этот пост является частью большой статьи
"Как оформить диплом в LaTeX?",
которую написал virens,
ведущий блога "Записки дебианщика".

Здесь приводятся базовые идеи и примеры, которые вам нужно освоить для вставки изображений и рисунков в LaTeX. Мы рассмотрим вставку нескольких рисунков в ряд и оформление групп рисунков, для чего будем пользоваться окружением minipage. Для набора дипломов по техническим специальностям приведённых сведений должно хватить.


Читать далее

Как оформить текст в LaTeX: структура текста



18 коммент.
Этот пост является частью большой статьи
"Как оформить диплом в LaTeX?",
которую написал virens,
ведущий блога "Записки дебианщика".

В этом посте показывается, как сделать текст структурированным в LaTeX. Рассматривается создание разделов, глав и списков.

Структура текста
Большое количество вордолюбов просто не подозревает о наличии такой простой вещи, как стили. Отчасти потому, что Word так потворствует бардаку в документе и отсутствии у него логической структуры. Документ превращается в единый поток текста, разбавленный вечно прыгающими картинками, уродливыми формулами и библиографическими ссылками и намертво вбитыми номерами.

LaTeX, наоборот, вынуждает автора текста в какой бы то ни было форме структурировать документ, иначе на выходе будет сгенерирован именно тот бесформенный поток текста, который набьёт нерадивый автор. Команды \section{}, \subsection{} и \chapter{} есть то, чему учат книжки по ЛаТеХу буквально с первых же страниц, и незадачливый латехник просто вынужден их использовать.
Этот материал написал Михаил Конник aka virens и опубликовал на своём блоге Записки дебианщика.


Главы и разделы
Начинаем с логической структуры - так проще писать текст, ибо структура его ясна. Перед написанием диплома (и не только) нужно обязательно проработать логическую структуру - ни в коем случае не пишите текст ``от фонаря''.
Самая крупная структура в дипломе это Глава, и сделать её можно с помощью команды \chapter{Это глава}. Начинается глава с новой страницы. Глава присутствует в классе документов report, который и используется в нашем примере для написания диплома. Есть и другие классы документов, но для диплома вам они не нужны.

Глава - это очень крупная часть текста, их у вас будет от 3 до 5. Дальше текст логически делится на разделы, которые в ЛаТеХе обозначаются естественным английским словом:
\section{Я - большой раздел}.

Разделы могут содержать подразделы:
\subsection{Я - подраздел поменьше},

и ещё меньшие единицы - подподразделы:
\subsubsection{А я - самый маленький раздельчик}

а так же абзацы:
\paragraph{Ну совсем крошечный кусочек}.

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

Ссылки на разделы и главы
Естественно, что на разделы вы будете время от времени ссылаться. Поэтому хорошей морской практикой считается постановка ссылок на все разделы. Для этого на раздел нужно поставить метку командой (кто бы мог подумать, правда?) \label{Textssylki}.
Этот материал написал Михаил Конник aka virens и опубликовал на своём блоге Записки дебианщика.


Советую сразу же ставить понятные и информативные ссылки, чтобы вы сами смогли потом понять, где то место, куда вы ссылаетесь. Не бойтесь ставить длииииииииииинные имена ссылок - лишь бы вам было удобно. Вот например, в этом тексте я поставил ссылку \label{sec:textformatting} на подраздел ``Начертание шрифта'' (см. подраздел 1.1.1), и я всегда могу на неё сослаться: ссылки на метки ставятся командой \ref{Textssylki}. Чтобы ссылка не уехала на другую строку в одиночестве, ставим к ней неразрывный пробел, как я уже говорил в разделе 1.1, вот так: раздел~\ref{Textssylki}.

Многим говорят так: ``мне лень думать и я лучше поставлю ссылку \label{UR1}, а потом найду поиском''. Заканчивается это бардаком в документе. Ссылки на литературу, равно как и на уравнения, должны быть осмысленными. Не надо уподобляться вордописцам с их склонностью "быстрей да попроще" и переделыванием по сто раз. В общем, плохая ссылка на уравнение выглядит так: \ref{ur2}, а хорошая ссылка \ref{eq:equation_of_convolution}.

То же самое, как я уже говорил, с ссылками на главы и разделы. Правила хорошего тона такие: метка на раздел \label{sec:opisanierazdela}, метка на уравнение \label{eq:opisanie}, метка на таблицу \label{tab:tabliza}.
А теперь, товарищи, самый смак: все ссылки в наших ЛаТеХовских документах относительные, так что текст можно перетаскивать кусками по всему диплому, и при перекомпиляции документа всё автоматически за нас сделает LaTeX.
Этот материал написал Михаил Конник aka virens и опубликовал на своём блоге Записки дебианщика.



Перечни
В конце диплома у вас обязательно будут выводы - вот тут-то и пригодятся перечни. Делать их просто:
\begin{enumerate}
\item это первое,
\item а это второе,
\item и последнее.
\end{enumerate}

В результате увидите следующее:
1. это первое,
2. а это второе,
3. и последнее.


Списки и перечни можно друг в друга вкладывать, то есть можно делать так:
\begin{enumerate}
\begin{enumerate}
\item это первое,
\item а это второе,
\item и последнее.
\end{enumerate}
\item это первое,
\item а это второе,
\item и последнее.
\end{enumerate}

В результате получим:
1. это первое,
1. это первое,
2. а это второе,
3. и последнее.
2. а это второе,
3. и последнее.

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

Этот материал написал Михаил Конник aka virens и опубликовал на своём блоге Записки дебианщика.


Ненумерованные списки в научно-технической литературе не в почёте, но всё-таки приведу их:

\begin{itemize}
\item это первое,
\item а это второе,
\item и последнее.
\end{itemize}

И получим вот что:
  • это первое,
  • а это второе,
  • и последнее.
Ненумерованные списки можно использовать в презентациях, а в тексте обычно нежелательно.


Выводы
Прочитав это ураганное введение, вы сможете без проблем написать весьма навороченный в оформительском плане диплом. Правда, без таблиц, формул и рисунков - ими мы займёмся далее. Но в плане набора текстов те команды, которые указаны выше, достаточны в 95% случаев.
Читать далее

Ограничение числа постов в RSS-ленте



11 коммент.
Некоторое время несколько читателей написали мне, что мой RSS-фид почему-то не обновляется. А смахнув пыль с моего аккаунта в ЖЖ я увидел, что синдицированный RSS-фид попросту не отправляется из-за слишком большого размера. Поэтому появилась проблема: как ограничить число постов в лентах FeedBurner?

Решение я нашёл пока такое ограничить оригинальную ленту блога при помощи следующего трюка:
http://mydebianblog.blogspot.com/feeds/posts/default?orderby=published&max-results=5

То есть будут отданы в прожиг FeedBurner только 5 последних постов. Как показывает статистика, более ранние посты особо никто и не читает.

Надеюсь, это устранит проблемы, связанные с невозможностью загрузить такой длинный фид. Если что, я могу прожечь ещё одну ленту, в которой будет столько же постов, сколько и раньше - 20.

Посему есть вопрос к уважаемым читателям - я таким ограничением (фид в 5 последних постов) никого не стесню? Если что - пишите в комментарии.
Читать далее

Как оформить текст в LaTeX: вёрстка текста



51 коммент.
Этот пост является частью большой статьи
"Как оформить диплом в LaTeX?",
которую написал virens,
ведущий блога "Записки дебианщика".

Для того, чтобы писать текст в ЛаТеХе, особых знаний не требуется - просто пишете текст как в обычном редакторе или в Microsoft Word / OpenOffice.org. Но есть ряд моментов, которые следует учесть.

Вёрстка текста
В разных книжках по ТеХу приведена просто прорва всякого хлама: вёрстка стихов, каких-то невообразимых цитат и прочей экзотики. Попробуйте отыскать на этом кладбище такую простую вещь, как межстрочный интервал или текст в верхнем регистре!

Этот материал написал Михаил Конник aka virens и опубликовал на своём блоге Записки дебианщика.
Поэтому в этом разделе я конспективно рассмотрю использование самых нужных и житейских вещей, типа использование начертаний, списков, ссылок. Это потребует от вас запоминания нескольких команд, что не должно стать проблемой, коль скоро вы заканчиваете высшее учебное заведение. За остальным - в книги, которые сеют разумное, доброе и вечное.

Прежде всего помните: LaTeX понимает ваши команды совершенно буквально, он в этом плане прост как рельса - вы можете и правду в квадрат возвести, и ударение поставить над ложью. То есть команды можно комбинировать и использовать там, где они вроде как и не предназначены. Главное, чтобы конструкция была синтаксически верна.

Теперь обещанные житейские приёмы работы в LaTeX. Поставить неразрывный пробел в ЛаТеХе можно тильдой ~. Например, полезно ставить неразрывный пробел при цитировании или ссылках, чтобы ссылки не уезжали на другие строки. Например: это ссылка~\cite{pupkin}.

Пробелы внутри формул. Если выбранные TEX'ом интервалы внутри формул вас не удовлетворяют, можно их изменить с помощью специальных команд. Важнейшими являются \, для очень маленьких пробелов, \; для средних, \quad и \qquad для больших пробелов, а также \! для уменьшения интервала.


Начертания шрифта
Просто писать текст - скучно, и хотя в технической литературе это не приветствуется, можно использовать разные начертания шрифта. Сделать текст полужирным можно командой \textbf{полужирным}, курсивным с помощью команды \textit{курсивным} или подчёркнутым - командой \underline{подчёркнутым}.
В оглавлении мы уже использовали капитель (заглавные буквы), делается это командой ТЕКСТ КАПИТЕЛЬЮ \textsc{текст капителью}. Но увлекаться начертаниями не нужно, так как обычно это излишне в технической литературе.


Специальные символы и особенности LaTeX
Сразу несколько предостережений. В LaTeX кое-что делается иначе, чем в простом редакторе. Так, нельзя ставить кавычки через Shift+2, а ставить их следует либо ``текст в кавычках'', либо так <<текст в кавычках>>. Согласно отечественным полиграфическим традициям в качестве основных кавычек используются кавычки-ёлочки (<< >>), а кавычки-лапки второстепенны (`` '')
. (Ссылки по теме: § 104. Кавычки, § 143. Знаки препинания в нестандартных ситуациях, спасибо комментатору Cristobal J. Junta).
Нельзя пользоваться обратным слешем \ потому как с него начинаются команды для самого ЛаТеХа. Вместо этого следует использовать прямой слеш /.

Этот материал написал Михаил Конник aka virens и опубликовал на своём блоге Записки дебианщика.

То же самое относится к набору специальных символов типа процента или номера. Перед ними следует ставить обратный слеш \ , иначе ЛаТеХ посчитает, что вы закомментировали кусок текста за процентом. То есть, процент ставится так: 20\%, получается 20%. Соответственно, номер ставится так: \No1, получается №1.

Редко, однако приходится в некоторых словах ставить ударения, к примеру, во фразе ``...характеризуется большими шумами...''. Ударение в LaTeX можно поставить так: перед нужной буквой ставим обратный слеш и апостроф \' (это символ, который находится рядом с клавишей Enter). И даже так любимую Евгением Балдиным букву Ё можно сделать из обычной е так: \"e.

В физической литературе есть специальные символы, которые употребляются в тексте. Такими символами являются символ диаметра, градуса. Для этого нужно перевести ЛаТеХ в математический режим - тут я немного забегаю вперёд, но тем не менее. Можно вставлять такие символы по-разному, я приведу свои примеры, и пусть они не так изящны, но они работают, а вам не придётся рыскать по куче книг в поиске ответа на свой вопрос.

Обычные символы, вроде букв греческого алфавита, должны быть в вашем визуальном редакторе. Например, вставить символ градуса в LaTeX можно так: $90^{\circ}$, результат: угол поворота составляет 90o. Значок диаметра в ЛаТеХе можно вставить так: \O{4-5} большой диаметр, \o{4-5} - маленький. Чтобы метр квадратный стал действительно квадратным, используем команду верхнего индекса \textsuperscript{2}. В результате метр стал в самом деле квадратным: м2.

Есть ещё несколько символов, которые вроде как математические, а вставляются в тексте. Пример: изображениями размером до 512х512 отсчётов. Букву х писать - дурной тон, поэтому вставляем часть в математическом режиме $512\times 512$, и в результате: 512Х512.


Работа со строками в LaTeX
Чтобы отбить абзац, то есть чтобы следующая строка начиналась с красной строки, достаточно просто оставить пустую строку. Можно сделать обрыв строки принудительно, вставив директиву \\ или \linebreak.

Как в ЛаТеХе сделать полуторный интервал между строк (интерлиньяж)? Просто в преамбуле указать \renewcommand{\baselinestretch}{1.65}. Для двойного интервала 1,65 для полуторного интервала в латехе указать 1.25. Так же можно использовать команду , где задать нужный множитель: для полуторастрочных интервалов \linespread{1.3}.

Более того, иногда требуется сократить межстрочный интервал в LaTeX в библиографии. Делается это так [источник]: включаем пакет setspace и наслаждаемся результатом сокращения лошадиных расстояний в оглавлении:
\begin{spacing}{0.9}
\tableofcontents

\end
{spacing}

и в списке литературы:
\begin{spacing}{0.9}
\bibliographystyle{plain}
\bibliography{refs}
\end{spacing}

Но и это не всё: для сокращения расстояния между элементами библиографии, используем трюк отцов из Кэмбриджа:
\let\oldthebibliography=\thebibliography
\let\endoldthebibliography=\endthebibliography
\renewenvironment{thebibliography}[1]{%
\begin
{oldthebibliography}{#1}% \setlength{\parskip}{0ex}%
\setlength
{\itemsep}{0ex}%
}%
{%
\end
{oldthebibliography}%
}

Также можно задавать расстояния между строчками во всём тексте:
\singlespacing
\onehalfspacing
\doublespacing
\setstretch{1.1}
Или вот так:
\begin{doublespace}
This paragraph has \\ double \\ line spacing.
\end{doublespace}

\begin{spacing}{2.5}
This paragraph has \\ huge gaps \\ between lines.
\end{spacing}
Этого должно хватить для начала набора текста диплома в LaTeX.
Читать далее