
Я использую skak для создания прекрасной шахматной книги в формате PDF. К сожалению, Amazon Kindle не очень хорошо импортирует PDF. Поэтому мне приходится делать книгу в формате Kindle, дружественном к Kindle, например epub.
Можно ли использовать тот же исходный документ latex для генерации epub? Если нет, есть ли другой пакет latex, который может помочь сгенерировать документ epub для шахматной книги?
Вот минимальный образец документа:
\documentclass[a4paper,11pt,oneside]{book}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}
\hypersetup{
colorlinks=true,
linkcolor=[RGB]{41,41,41},
filecolor=magenta,
urlcolor=cyan,
pdftitle={Chess},
bookmarks=true,
}
\usepackage[ps]{skak}
\showmoverOn
\begin{document}
\frontmatter
\title{My title}
\maketitle
\tableofcontents
\mainmatter
\author{Sudheer}
\chapter{Introduction}
\newgame
\mainline{1.e4 c5 2.Nf3 g6 3.Bc4 Bg7 4.Ng5 e6}
\showboard
\end{document}
Я компилирую, используя следующие шаги:
latex minimum.tex
dvips minimum.dvi
ps2pdf minimum.ps
решение1
Вы можете использовать tex4ebook
для создания ePub
или mobi
электронных книг. Он использует tex4ht
для конвертации. tex4ht
не поддерживает skak
пакет из коробки, но его легко настроить, поэтому мы можем добавить поддержку самостоятельно.
Есть две вещи, которые необходимо решить: шахматные фигуры в тексте и шахматные доски. Шахматные фигуры можно преобразовать в символы Unicode, шахматные доски должны быть преобразованы в изображения.
В рисунках используется специальный шрифт, который необходимо настроить в tex4ht
. Сохраните следующий текст как SkakNew.htf
и поместите его в каталог с вашим документом:
SkakNew 32 121
'' '' 32
'!' '' 33
'”' '' 34
'#' '' 35
'$' '' 36
'%' '' 37
'&' '' 38
'’' '' 39
'(' '' 40
')' '' 41
'*' '' 42
'+' '' 43
',' '' 44
'-' '' 45
'.' '' 46
'/' '' 47
'0' '' 48
'1' '' 49
'2' '' 50
'3' '' 51
'4' '' 52
'5' '' 53
'6' '' 54
'7' '' 55
'8' '' 56
'9' '' 57
':' '' 58
';' '' 59
'¡' '' 60
'=' '' 61
'¿' '' 62
'?' '' 63
'@' '' 64
'→' '' 65
'♗' '' 66
'↑' '' 67
'⊙' '' 68
'△' '' 69
'□' '' 70
'⇗' '' 71
'⇔' '' 72
'⊞' '' 73
'╳' '' 74
'♔' '' 75
'⟂' '' 76
'≪' '' 77
'♘' '' 78
'≫' '' 79
'Ⅱ' '' 80
'♕' '' 81
'♖' '' 82
'>' '' 83
'⊕' '' 84
'○' '' 85
'⇆' '' 86
'W' '' 87
'×' '' 88
'Y' '' 89
'Z' '' 90
'[' '' 91
'“' '' 92
']' '' 93
'ˆ' '' 94
'˙' '' 95
'‘' '' 96
'⧉' '' 97
'⌓' '' 98
'±' '' 99
'⦂' '' 100
'∓' '' 101
'⩲' '' 102
'⩱' '' 103
'h' '' I cannot find it, it is plus followed by minus
'i' '' minus followed by plus
'=' '' 106
'k' '' 107
'l' '' 108
'#' '' 109
'n' '' 110
'o' '' 111
'p' '' 112
'q' '' 113
'r' '' 114
's' '' 115
't' '' 116
'u' '' 117
'v' '' 118
'w' '' 119
'x' '' 120
'y' '' 121
SkakNew 32 121
Изображения для шахматных досок можно запросить со следующей конфигурацией. Сохраните его как skak.4ht
и сохраните его также в каталоге вашего документа:
\NewConfigure{SkakBoard}{2}
\pend:def\showboard{\a:SkakBoard}
\append:def\showboard{\b:SkakBoard}
\Configure{SkakBoard}{\Picture+{}}{\EndPicture}
\endinput
Он просто исправляет команду \showboard
, включая специальные tex4ht
команды, которые преобразуют вложенный контент в изображения.
Вы можете скомпилировать свой документ с mobi
помощью следующей команды. Обратите внимание, что вам необходимо kindlegen
установить:
tex4ebook -f mobi minimum.tex
Результат следующий, показан в Calibre:
Чтобы улучшить качество изображения, вы можете попробовать добавить в skak.4ht
файл следующую строку (перед \endinput
):
\Configure{Picture}{.svg}
Он запросит графику в svg
формате:
Последнее замечание: я получил недопустимый ePub
файл, потому что вы использовали \author
after maketitle
, а его нужно было поставить перед ним.
Редактировать:
Если вы хотите использовать больше команд, которые печатают на одном холсте, вам необходимо заключить их в пользовательскую среду, содержимое которой будет преобразовано в изображение:
\documentclass[a4paper,11pt,oneside]{book}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}
\hypersetup{
colorlinks=true,
linkcolor=[RGB]{41,41,41},
filecolor=magenta,
urlcolor=cyan,
pdftitle={Chess},
bookmarks=true,
}
\usepackage[ps]{skak}
\showmoverOn
\newenvironment{mymoves}{}{}
\begin{document}
\frontmatter
\title{My title}
\author{Sudheer}
\maketitle
\tableofcontents
\mainmatter
\chapter{Introduction}
\newgame
\mainline{1.e4 c5 2.Nf3 g6 3.Bc4 Bg7 4.Ng5 e6}
\begin{mymoves}
\showboard
\printarrow{a1}{a8}
\end{mymoves}
\end{document}
Самое важное здесь:
\begin{mymoves}
\showboard
\printarrow{a1}{a8}
\end{mymoves}
Вы можете настроить mymoves
среду в конфигурационном файле:
\Preamble{xhtml}
\Configure{Picture}{.svg}
\ConfigureEnv{mymoves}{\Picture*{}}{\EndPicture}{}{}
\begin{document}
\EndPreamble
Обратите внимание, что, по-видимому, в этом примере необходимо использовать вывод SVG, который, по-видимому, dvipng
не поддерживает некоторые PostScript.
Результат: