Как самому сделать электронную книгу


Оглавление

Начало

Электронная книга — очень удобный формат распространения знаний. Самые распространённые виды электронных книг PDF и EPUB. Что же нужно для её создания?

Для создания электронной книги требуется: издательская система (QuarkXPress, Adobe Illustrator), текстовый процессор (Word), графический редактор (Photoshop) и т.д. Так думает обычный человек. Сколько же это будет стоить? 😞

А нужно ли всё это? Ничего подобного. Нужен обычный текстовый редактор да несколько консольных утилит. 😀

Что для этого нужно?

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

Вот примерный список приложений:

  1. Маркдaун редактор — Typora или ReText или другой подобный. Typora — самый удобный из них, работает во всех системах — Linux, OS X, Windows;
  2. Для оформления обложек — редактор Gimp или Krita и т.п.;
  3. Для преобразования текстов в другие форматы pandoc;
  4. Редактор EPUB Sigil.

Всё, больше ничего. Да и то, в основном, нужен только 1-й пункт, в Typora есть всё необходимое. Остальное уже имеется в системе — терминал, скриптовый язык (bash-script или perl или python), просмотрщик для картинок и готовых книг и т.п.

Написание

Markdown (маркдаун) — облегчённый язык разметки, созданный с целью написания максимально читаемого и удобного для правки текста, но пригодного для преобразования в языки для продвинутых публикаций (HTML, Rich Text, EPUB, PDF и др.).

Математика в Mardown

Далее, приведу самые основы.

Блок описания

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

---
title: Название
author: Автор
subject: Информатика
description: Описание
identifier: 90DEF366-E0FB-4F60-8A3D-5016931106F9
publisher: unixone.ru
rights: © unixone.ru, 2017  
language: ru
---

После блока описания обязательно вставляем пустую строку. Идентификатор identifier можно сгенерировать в терминале uuidgen | pbcopy.

Абзацы

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

Заголовки

Заголовки отмечаются решеткой # в начале строки, от одного до шести. Например:

# Заголовок h1
## Заголовок h2
### Заголовок h3
#### Заголовок h4
##### Заголовок h5
###### Заголовок h6

Если в тексте встречаются одинаковые названия заголовков, то можно добавить имя:

## Заголовок h2 [zag2].

## Заголовок h2 [zag2-1]

Списки

Для разметки неупорядоченных списков можно использовать или *, или -, или +:

- элемент 1
- элемент 2
- элемент ...

Вложенные пункты создаются четырьмя пробелами перед маркером пункта:

* элемент 1
* элемент 2
    * вложенный элемент 2.1
    * вложенный элемент 2.2
* элемент ...

Упорядоченный список:

1. элемент 1
2. элемент 2
    1. вложенный
    2. вложенный
3. элемент 3
4. Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing.

На самом деле не важно как в коде пронумерованы пункты, главное, чтобы перед элементом списка стояла цифра (любая) с точкой. Можно сделать и так:

0. элемент 1
0. элемент 2
0. элемент 3
0. элемент 4
  1. элемент 1
  2. элемент 2
  3. элемент 3
  4. элемент 4

Список с абзацами:

* Раз абзац. Lorem ipsum dolor sit amet, consectetur adipisicing elit.

* Два абзац. Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing.

* Три абзац. Ea, quis, alias nobis porro quos laborum minus sed fuga odio dolore natus quas cum enim necessitatibus magni provident non saepe sequi?

Цитаты

Цитаты оформляются с помощью символа >.

> This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
> consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
> Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
>
> Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
> id sem consectetuer libero luctus adipiscing.

В цитаты можно помещать всё что угодно, в том числе вложенные цитаты:

> ## This is a header.
>
> 1.   This is the first list item.
> 2.   This is the second list item.
>
> > Вложенная цитата.
>
> Here's some example code:
>
>     return shell_exec("echo $input | $markdown_script");

Исходный код

Блоки кода отбиваются 4 пробелами в начале каждой строки.

Но есть и более удобный способ: ставим по три апострофа ```до и после кода. Также можно указать язык исходного кода``` markdown.

<h3 id="Исходныйкод">Исходный код</h3>

<p>Блоки кода отбиваются 4 пробелами в начале каждой строки.</p>

<p>Но есть и более удобный способ: ставим по три апострофа (на букве Ё) до и после кода. Также можно указать язык исходного кода.</p>

Строчный код

Для вставки кода внутри предложений нужно заключать этот код в апострофы. Пример: <html class="ie no-js">.

`<html class="ie no-js">`.

Если внутри кода есть апостроф, то код надо обрамить двойными апострофами: There is a literal backtick (`) here.

Горизонтальная черта

Горизонтальная черта создается тремя звездочками *** или тремя дефисами ---.


Ссылки

Это встроенная ссылка с заголовком.

Это встроенная [ссылка с заголовком](http://example.com/link "Я ссылка").

А вот пример нескольких ссылок с разметкой как у сносок. Будет работать и короткая запись без указания id.

А вот [пример][1] [нескольких][2] [ссылок][id] с разметкой как у сносок. Будет работать и [короткая запись][] без указания id.

[1]: http://example.com/ "Optional Title Here"
[2]: http://example.com/some
[id]: http://example.com/links (Optional Title Here)
[короткая запись]: http://example.com/short

Вынос длинных адресов из предложения способствует сохранению читабельности исходника. Сноски можно располагать в любом месте документа.

Выделение

Выделять слова можно при помощи * и _. Одним символ для наклонного текста, два символа для жирного текста, три — для наклонного и жирного одновременно.

Например, это наклонный и это тоже наклонный. А вот так уже жирный, и так тоже strong. А так жирный и наклонный одновременно.

Например, это _наклонный_ и это тоже *наклонный*. А вот так уже __sжирный__, и так тоже **strong**. А так ***жирный и наклонный*** одновременно.

Картинки

Картинка без подписи

![](http://placehold.it/150x100)

Картинка с подписью:

Подпись

![Подпись](http://placehold.it/150x100)

Запомнить просто: синтаксис как у ссылок, только перед открывающей квадратной скобкой ставится восклицательный знак.

Картинки «сноски»:

![Картинка][image1]
![Картинка][image2]
![Картинка][image3]

[image1]: http://placehold.it/250x100
[image2]: http://placehold.it/200x100
[image3]: http://placehold.it/150x100

Картинки-ссылки:

[![Alt text](http://placehold.it/150x100)](http://example.com/)

Таблицы

Синтаксиса таблиц, очень прост.

First Header Second Header
Content Cell Content Cell
Content Cell Content Cell
First Header  | Second Header
------------- | -------------
Content Cell  | Content Cell
Content Cell  | Content Cell

Для красоты можно и по бокам линии нарисовать:

First Header Second Header
Content Cell Content Cell
Content Cell Content Cell
| First Header  | Second Header |
| ------------- | ------------- |
| Content Cell  | Content Cell  |
| Content Cell  | Content Cell  |

Можно управлять выравниванием столбцов при помощи двоеточия.

Left-Aligned Center Aligned Right Aligned
col 3 is some wordy text $1600
col 2 is centered $12
zebra stripes are neat $1
| Left-Aligned  | Center Aligned  | Right Aligned |
|:------------- |:---------------:| -------------:|
| col 3 is      | some wordy text |     **$1600** |
| col 2 is      | centered        |         $12   |
| zebra stripes | are neat        |        ~~$1~~ |

Внутри таблиц можно использовать ссылки, наклонный, жирный или зачеркнутый текст.

Сноски

Сноски делаются так[1] или так [2].

Сноски делаются так[^ Сноска 1] или так [^1].

[^1]: Сноска 2.

О правильной нумерации позаботится сам Markdown.

Полный синтаксис Markdown смотрите здесь или найти в сети.

Экспорт

Typora

Если вы работаете в Typora, то экспортировать книгу можно прямо из программы:

pandoc

Если вы подготавливали текст в другом редакторе, преобразовывать нужно в терминале с помощью pandoc

pandoc Как\ самому\ сделать\ электронную\ книгу.md -o Как\ самому\ сделать\ электронную\ книгу.epub

Установить pandoc можно так:

  • в Линуксе: sudo apt install pandoc
  • в OS X: brew install pandoc

У pandoc очень много параметров позволяющих экспортировать исходный текст из любого в любой формат, поэтому, как это лучше всего сделать, ищите в сети.

Оформление

У каждой книжки должна быть обложка. Рисуем её в любом графическом редакторе, например, в GIMP:

GIMP

Размер обложки должен соответствовать разрешению электронной читалки, напр. — 600х800, 768х1024. Для читалок с высоким разрешением экрана, как iPAD — в два раза больше 2400х3600.

Редактор EPUB Sigil

Чтобы навести окончательный глянец на нашу книжку, подредактируем её в Sigil, полноценном редакторе EPUB.

Sigil

В нём можно делать всё, исправлять метаданные, добавлять обложку, шрифты, редактировать CSS и т. д.

Как видно на картинке, блок описания из md-файла при конвертировании с помощью pandoc, прописался в нашу книжку, так что править метаданные уже не нужно.

Только добавим обложку:

и назначим её:

Затем создадим оглавление:

Здесь нужно галочками отметить те заголовки, которые будут включены в олавление книжки:

При необходимости, подправим CSS,

добавим свои шрифты, выполним проверку и вот, книжка готова.

Готовая книжка


  1. Сноска 1  ↩
  2. Сноска 2.  ↩

При перепечатке ссылка на unixone.ru обязательна.

Скачать все файлы из этой статьи для тренировки.

Добавить комментарий