среда, 16 января 2013 г.

Относительные пути в LaTeX

Документ, разбитый на несколько файлов

Допустим, у вас верстается книга достаточно большого объёма и вы структурировали её двумя уровнями иерархии. Главный файл лежит в корневом каталоге и называется videogamebook2.tex. Он вызывает глобальные макросы типа \documentclass и затем подключает главы следующим образом:

...

\input{preface}

\input{moo2/chapter}

\input{planescape/chapter}

...

То есть, каждая отдельная "глава" книги лежит в отдельной папке, и её главный файл называется chapter.tex.

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

...

\input{moo2/section-01/section}

\input{moo2/section-02/section}

...

Видно, что разделы также лежат каждый в своей подпапке и файлы называются просто section.tex.

Заметьте, что пути всё ещё начинаются от корневого каталога проекта (!).

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

Иллюстрации, подключаемые во вложенных файлах

Усложним задачу: допустим, мы хотим иллюстрировать наш текст, используя стандартный пакет graphicx. Иллюстрации, соответствующие разделу, у нас лежат в подкаталоге этого раздела, рядом с файлом section.tex.

Тогда в заголовке section.tex можно написать, что:

\graphicspath{{./moo2/section-01/}}

а в тексте писать просто

\includegraphics{start-galaxy.jpg}

То есть, путь надо писать опять-таки от корня, и обязательно завершать слешем, иначе LaTeX вас не поймёт.

вторник, 15 января 2013 г.

Минимальный шаблон книги в LaTeX

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


\documentclass{book}

% Кодировка XXI века
\usepackage[utf8]{inputenc}

% Если книга на русском, то включаем эти три строчки
\usepackage[russian]{babel}
\usepackage{indentfirst}
\usepackage{misccorr}

% Включаем какой-нибудь другой шрифт, а не стандартный
\usepackage{dejavu}

% Колонтитулы с названием главы и нумерация
\usepackage{fancyhdr}
\pagestyle{fancy}

% Если хочется, чтобы в оглавлении были только главы, и ничего ниже
\setcounter{secnumdepth}{-1} 

% Если есть картинки
\usepackage{graphicx}
\DeclareGraphicsExtensions{.jpg,.png,.gif}

% Если хочется гиперссылок в книге 
% (в макете для печатного издания они бессмысленны, конечно).
\usepackage{hyperref}


\begin{document}

\title{A Book Title}

\maketitle

\tableofcontents

\include{preface}

\include{chapter-1}

\include{chapter-2}

% ...

\include{chapter-n}

\end{document}

Пример конечного результата можно посмотреть в моей сборке A Video Game Book.

На обложке будет только title, по центру, и дата сборки, тоже по центру. Если надо другую обложку, то придётся настроить дополнительную страницу.

понедельник, 7 января 2013 г.

Как скачать сайт целиком в Debian используя только командную строку

Иногда одной веб-страницы мало. Надо скачать все остальные объекты, доступные из этой веб-страницы. Для этого понадобится один только wget.

Вот заклинание, которое нужно прочитать (предполагается, что мы находимся в каталоге, куда нужно скачать сайт):

wget -m -k -np -w 1 --random-wait -U "Mozilla" -e robots=off <URL>

Значения параметров:

  • -m Скачать всё, начиная с заданного URL (собственно то, что нужно).
  • -k Исправлять ссылки в скачанных HTML документах, чтобы ссылались не на Сеть, а друг на друга.
  • -np Качать только то, что ниже заданного URL или на его уровне (в частности, не качать ничего с других доменов).
  • -w 1 --random-wait Прикидываться обычным пользователем, делая паузы случайной длины минимум в 1 секунду между каждым скачиваемым файлом.
  • -U "Mozilla" Прикидываться Фаерфоксом (не очень настойчиво: никакой фаерфокс не использует такой User-Agent).
  • -e robots=off Вообще-то, не используйте этот параметр. Он заставляет wget игнорировать правила, описанные в robots.txt.

За инфу спасибо HydTechBlog.

воскресенье, 6 января 2013 г.

Прохождения игр как научно-фантастическая литература

Составил небольшой сборник из трёх прохождений игр: Вангеров, Freespace 2 и Star Trek: Starfleet Command. Эти прохождения настолько эпичны, что уже практически являются научно-фантастическими рассказами.

Я убеждён, что все три расссказа прекрасны, и заслуживают того, чтобы их читали, невзирая на происхождение. Иначе эти произведения просто сгниют в подшивках старых журналов.
Составил я в PDF, положил себе в Дропбокс.

Про HTML-версию подумаю, меня интересовала только пэдээфка, если честно.

В продолжение темы: на Let's Play Archive есть столь же чудесные рассказы-прохождения для Master of Orion 2, Planescape: Torment и Arcanum: Of Steamworks and Magick Obscura. Однако, они на английском языке, так что A Video Game Book 2 на языке берёз и осин будет недоступна. ;)