¿Es posible utilizar el paquete skak para generar documentos en formato epub o mobi?

¿Es posible utilizar el paquete skak para generar documentos en formato epub o mobi?

Utilizo skak para generar un hermoso libro de ajedrez en formato PDF. Desafortunadamente, Amazon Kindle no importa bien el PDF. Entonces, tengo que hacer un libro con formato compatible con Kindle, como epub.

¿Es posible utilizar el mismo documento fuente de látex para generar epub? Si no es así, ¿existe algún otro paquete de látex que pueda ayudar a generar un documento epub para un libro de ajedrez?

Aquí está el documento de muestra mínimo:

\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}

Estoy compilando siguiendo estos pasos:

 latex minimum.tex 
 dvips minimum.dvi 
 ps2pdf minimum.ps

Respuesta1

Puede utilizar tex4ebookpara crear libros electrónicos ePubo mobi. Se utiliza tex4htpara la conversión. tex4htno admite skakel paquete listo para usar, pero es fácilmente configurable, por lo que podemos agregar el soporte nosotros mismos.

Hay dos cosas que es necesario abordar: las figuras de ajedrez en el texto y los tableros de ajedrez. Las figuras de ajedrez se pueden convertir como caracteres Unicode, los tableros de ajedrez se deben convertir como imágenes.

Las figuras utilizan una fuente especial, que debe configurarse en formato tex4ht. Guarde el siguiente texto como SkakNew.htfy colóquelo en el directorio con su documento:

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

Las imágenes para tableros de ajedrez se pueden solicitar con la siguiente configuración. Guárdelo como skak.4hty guárdelo también en el directorio de su documento:

\NewConfigure{SkakBoard}{2}

\pend:def\showboard{\a:SkakBoard}
\append:def\showboard{\b:SkakBoard}

\Configure{SkakBoard}{\Picture+{}}{\EndPicture}

\endinput

Simplemente parchea el comando \showboardpara incluir tex4htcomandos especiales que convierten el contenido adjunto en imágenes.

Puede compilar su documento mobiutilizando el siguiente comando. Tenga en cuenta que necesita tener kindlegeninstalado:

 tex4ebook -f mobi  minimum.tex

El resultado es el siguiente, mostrado en Calibre:

ingrese la descripción de la imagen aquí

Para obtener una mejor calidad de imagen, puede intentar agregar la siguiente línea al skak.4htarchivo (antes \endinput):

\Configure{Picture}{.svg}

Solicitará los gráficos en el svgformato:

ingrese la descripción de la imagen aquí

Una última nota: obtuve ePubun archivo no válido porque usaste \authorafter maketitle, deberías ponerlo antes.

Editar:

Si desea utilizar más comandos que se imprimen en un lienzo, debe incluirlos en un entorno personalizado, cuyo contenido se convertirá como una imagen:

\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}

La parte importante aquí es:

\begin{mymoves}
\showboard
\printarrow{a1}{a8}
\end{mymoves}

Puede configurar el mymovesentorno en el archivo de configuración:

\Preamble{xhtml}
\Configure{Picture}{.svg}
\ConfigureEnv{mymoves}{\Picture*{}}{\EndPicture}{}{}
\begin{document}

\EndPreamble

Tenga en cuenta que parece que este ejemplo necesita usar la salida SVG, parece que dvipngno es compatible con algunos PostScript.

El resultado:

ingrese la descripción de la imagen aquí

información relacionada