summaryrefslogtreecommitdiff
path: root/support/tex4ebook/README
diff options
context:
space:
mode:
Diffstat (limited to 'support/tex4ebook/README')
-rw-r--r--support/tex4ebook/README139
1 files changed, 68 insertions, 71 deletions
diff --git a/support/tex4ebook/README b/support/tex4ebook/README
index 951dad5a57..796445674a 100644
--- a/support/tex4ebook/README
+++ b/support/tex4ebook/README
@@ -2,24 +2,22 @@
# Introduction
-`TeX4ebook` is bundle of Lua scripts and `LaTeX` packages for conversion of
-LaTeX files to ebook formats, for example `epub`, `mobi` and `epub3`. `tex4ht`
-is used as conversion engine.
+`TeX4ebook` is a tool for conversion from \LaTeX\ to
+ebook formats, such as EPUB, MOBI and EPUB 3.
+It is based on `TeX4ht`^[https://tug.org/tex4ht/],
+which provides instructions for the actual \LaTeX\ to HTML conversion,
+and on `make4ht`^[https://ctan.org/pkg/make4ht?lang=en].
-Note that while `mobi` is supported by Amazon Kindle, most widespread ebook
-reader, it doesn't support `mathml` and this means that math must re represented
-as images. The same is true for `epub`. This is not a good thing, especially
-for inline math, as you may experience wrong baselines. If your ebook contains
-math, the only correct solution is to produce `epub3`, as it supports `mathml`.
-The issue with `epub3` is, that majority of `e-ink` ebook readers doesn't
-support this format, reader applications exists mainly for Android and Apple
-devices. For books which contains mainly prose, all formats should be suitable,
-but `epub3` supports most features from web standards, such as `CSS`.
-As with `tex4ht`, the emphasis is on conversion of document's logical structure
-and metadata, basic visual appearance is preserved as well, but you should use
+The conversion is focused on the logical structure of the converted document
+and metadata. Basic visual appearance is preserved as well, but you should use
custom configurations if you want to make the document more visually appealing.
-You can include custom `CSS` or fonts in configuration files.
+You can include custom `CSS` or fonts in a configuration file.
+
+`TeX4ebook` supports the same features as `make4ht`, in particular build files and extensions.
+These may be used for post-processing of the generated HTML files, or to configure the image conversion.
+See the `make4ht` documentation to see the supported features.
+
## License
@@ -38,6 +36,7 @@ You don't have to modify your source files unless you want to use commands
defined by `tex4ebook` in the document, or when your document uses a
package which causes a compilation error.
+
If you want to use `tex4ebook` commands, add this line to your document
preamble:
@@ -51,9 +50,13 @@ But it is optional. You shouldn't need to modify your \TeX\ files
# Command line options
+`-a,--loglevel`
+
+: Set message log level. Possible values: debug, info, status, warning, error, fatal. Default: status.
+
`-c,--config`
-: specify custom config file for `tex4ht`
+: specify custom config file for `TeX4ht`
**example config file**: File `sample.cfg`
@@ -78,7 +81,11 @@ But it is optional. You shouldn't need to modify your \TeX\ files
`-f,--format (default epub)`
-: Output format. Epub, Epub3 and Mobi formats are supported.
+: Output format. Possible values are `epub`, `epub3` and `mobi`.
+
+`-j,--jobname`
+
+: Specify the output file name, without file extension.
`-l,--lua`
@@ -97,7 +104,7 @@ But it is optional. You shouldn't need to modify your \TeX\ files
`-s,--shell-escape`
-: Enable shell escape in htlatex run. This may be needed if you run external
+: Enable shell escape in the `htlatex` run. This is necessary for the execution of the external
commands from your source files.
`-t,--tidy`
@@ -112,12 +119,11 @@ But it is optional. You shouldn't need to modify your \TeX\ files
`-v,--version`
: Print the version number.
-
# Configuration
-`tex4ebook` uses `tex4ht`^[http://www.tug.org/tex4ht/] for conversion from LaTeX
-to html. `tex4ht` is highly configurable using config files. Basic config file
+`TeX4ebook` uses `TeX4ht`^[http://www.tug.org/tex4ht/] for conversion from LaTeX
+to html. `TeX4ht` is highly configurable using config files. Basic config file
structure is
\Preamble{xhtml, comma separated list of options}
@@ -127,16 +133,16 @@ structure is
\EndPreamble
Basic info about command configurations can be found in a
-work-in-progres *tex4ht tutorial*^[https://github.com/michal-h21/helpers4ht/wiki/tex4ht-tutorial],
-*tex4ht documentation*^[http://www.tug.org/applications/tex4ht/mn11.html],
+work-in-progres *TeX4ht tutorial*^[https://github.com/michal-h21/helpers4ht/wiki/tex4ht-tutorial],
+*TeX4ht documentation*^[http://www.tug.org/applications/tex4ht/mn11.html],
and in series of blogposts on CV Radhakrishnan's blog:
-*Configure part 1*^[http://www.cvr.cc/?p=323],
-*Configure part 2*^[http://www.cvr.cc/?p=362],
-*Low level commands*^[http://www.cvr.cc/?p=482].
+*Configure part 1*^[https://web.archive.org/web/20180908234227/http://www.cvr.cc/?p=323],
+*Configure part 2*^[https://web.archive.org/web/20180908201057/http://www.cvr.cc/?p=362],
+*Low level commands*^[https://web.archive.org/web/20180909101325/http://cvr.cc/?p=482].
Available options for `\Preamble` command are listed in the article
-*TeX4ht: options*^[http://www.cvr.cc/?p=504]. *Comparison of tex4ebook and Pandoc output*^[https://github.com/richelbilderbeek/travis_tex_to_epub_example_1]
+*TeX4ht: options*^[https://web.archive.org/web/20180813043722/http://cvr.cc/?p=504]. *Comparison of tex4ebook and Pandoc output*^[https://github.com/richelbilderbeek/travis_tex_to_epub_example_1]
-Great source of tips for `tex4ht` configuring is *tex4ht tag on TeX.sx*^[http://tex.stackexchange.com/questions/tagged/tex4ht], there is also a *tag for tex4ebook*^[http://tex.stackexchange.com/questions/tagged/tex4ebook].
+A great source of tips for `TeX4ht` configuration is *tex4ht tag on TeX.sx*^[http://tex.stackexchange.com/questions/tagged/tex4ht]. There is also a *tag for tex4ebook*^[http://tex.stackexchange.com/questions/tagged/tex4ebook].
Examples of interesting questions are
*including images and fonts in ebooks*^[http://tex.stackexchange.com/a/213165/2891]
@@ -149,7 +155,7 @@ or *setting image size in em units instead of pt*^[http://tex.stackexchange.com/
\Configure{UniqueIdentifier}{identifier}
-Every epub file should have unique identifier, like ISBN, DOI, URI etc.
+Every EPUB file should have unique identifier, like ISBN, DOI, URI etc.
Default identifier is URI, with value `http://example.com/\jobname`.
\Configure{@author}{\let\footnote\@gobble}
@@ -161,7 +167,7 @@ which don't belongs here, such as `\footnote`.
\Configure{OpfScheme}{URI}
Type of unique identifier, default type is URI. It is
-used only in `epub`, it is deprecated for `epub3`
+used only in the EPUB format, it is deprecated for EPUB 3.
\Configure{resettoclevels}{list of section types in descending order}
@@ -170,7 +176,7 @@ value is the whole document hierarchy, from `\part` to `\paragraph`.
\Configure{DocumentLanguage}{language code}
-Each ePub file must declare the document language. It is inferred from `babel` main
+Each EPUB file must declare the document language. It is inferred from `babel` main
language by default, but you can configure it when it doesn't work correctly.
The `language code` should be in [ISO
639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) form.
@@ -203,11 +209,11 @@ Add item to `<manifest>` section in the `OPF` file.
\Configure{xmlns}{prefix}{uri}
-Add xml name space to `xhtml` files. Useful in `EPUB 3`
+Add `XML` name space to the generated `XHTML` files. Useful in `EPUB 3`.
-## Commands available in config files
+## Commands available in the config file
`\OpfRegisterFile[filename]`
@@ -244,53 +250,44 @@ See the `make4ht` documentation for an example and more information.
# Troubleshooting
+## Fixed layout EPUB
+
+The basic support for the Fixed layout EPUB 3 can be enabled using the following configurations:
+
+ \Configure{OpfMetadata}{\HCode{<meta property="rendition:layout">pre-paginated</meta>}}
+ \Configure{OpfMetadata}{\HCode{<meta property="rendition:orientation">landscape</meta>}}
+ \Configure{OpfMetadata}{\HCode{<meta property="rendition:spread">none</meta>}}
+ \Configure{@HEAD}{\HCode{<meta name="viewport" content="width=1920, height=1080"/>\Hnewline}}
+
+Modify the dimensions in the `<meta name="viewport>` element according to your needs.
+
+## Math issues
+
+Note that while `mobi` is supported by Amazon Kindle, most widespread ebook
+reader, it doesn't support `MathML`. This means that math must be represented
+as images. The same issue is true for the EPUB format as well.
+This is problematic especially for the inline math, as you may experience wrong
+vertical alignment of the math content and surrounding text. If your ebook contains
+math, a better solution is to produce the `epub3` format, as it supports `MathML`.
+The issue with EPUB 3 is that majority of `e-ink` ebook readers don't
+support it. Reader applications exists mainly for Android and Apple
+devices. For books which contains mainly prose, all formats should be suitable,
+but EPUB 3 supports most features from web standards, such as `CSS`.
+
+## Compilation errors
+
When compilation of the document breaks with error during `LaTeX` run, it may
-be caused by some problem in `tex4ht` configuration. Comment out line
+be caused by some problem in `TeX4ht` configuration. Comment out line
`\usepackage{tex4ebook}` in your source file and run command:
htlatex filename
-if same error as in `tex4ebook` run arises, the problem is in some `tex4ht`
+if same error as in `tex4ebook` run arises, the problem is in some `TeX4ht`
configuration. Try to identify the source of problem and if you cannot find the
solution, make minimal example showing the error and ask for help either on
-*tex4ht mailing list*^[http://tug.org/mailman/listinfo/tex4ht] or on
+*TeX4ht mailing list*^[http://tug.org/mailman/listinfo/tex4ht] or on
*TeX.sx*^[http://tex.stackexchange.com/].
-<!--
-## Fontspec
-
-`tex4ht` currently doesn't support `fontspec` and open type fonts. At this
-moment, workaround for this is to modify your source file and conditionally
-include fontspec and any other conflicting packages only when document is not
-processed with `tex4ht`.
-
-Sample:
-
- \documentclass{article}
- \makeatletter
- \@ifpackageloaded{tex4ht}{%
- % Packages for tex4ht unicode support
- \usepackage[utf8]{inputenc}
- \usepackage[T1]{fontenc}
- \usepackage[english,czech]{babel}
- }{%
- % Packages for xelatex
- \usepackage{fontspec}
- \usepackage{polyglossia}
- \setmainfont{Latin Modern Roman}
- }
- \makeatother
-
-The drawback is that not all characters of the Unicode range are supported with
-`inputenc`. For some solutions of this limitation, see a thread on *tex4ht
-mailing list*^[http://tug.org/pipermail/tex4ht/2013q1/000719.html]
-
-Other approach is to use `alternative4ht` package from [helpers4ht](https://github.com/michal-h21/helpers4ht)
-bundle. It works only with Lua backend, but it supports full unicode and you
-don't have to use conditional package inclusion in your document. See
-an [example](http://michal-h21.github.io/samples/helpers4ht/fontspec.html).
--->
-
## Validation
In case of successful compilation, use command line tool `epubcheck`^[you need