1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 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 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769
|
\chapter{\protect\program{plastex} --- The Command-Line Interface}
\label{sec:command-line}
While \plasTeX\ makes it possible to parse \LaTeX\ directly from Python
code, most people will simply use the supplied command-line interface,
\program{plastex}. \program{plastex} will invoke the parsing processes
and apply a specified renderer. By default, \program{plastex} will
convert to HTML, although this can be changed in the \program{plastex}
configuration.
Invoking \program{plastex} is very simple. To convert a \LaTeX\ document
to HTML using all of the defaults, simply type the following at shell prompt.
\begin{verbatim}
plastex mylatex.tex
\end{verbatim}
where \file{mylatex.tex} is the name of your \LaTeX\ file. The
\LaTeX\ source will be parsed, all packages will be loaded and macros
expanded, and converted to HTML. Hopefully, at this point you will have
a lovely set of HTML files that accurately reflect the \LaTeX\ source
document. Unfortunately, converting \LaTeX\ to other formats can be
tricky, and there are many pitfalls. If you are getting warnings or
errors while converting your document, you may want to check the FAQ
in the appendix to see if your problem is addressed.
Running \program{plastex} with the default options may not give you output
exactly the way you had envisioned. Luckily, there are many options
that allow you to change the rendering behavior. These options are
described in the following section.
\section{Command-Line and Configuration Options}
There are many options to \program{plastex} that allow you to control
things input and output file encodings, where files are generated and
what the filenames look like, rendering parameters, etc. While
\program{plastex} is the interface where the options are specified, for
the most part these options are simply passed to the parser and renderers
for their use. It is even possible to create your own options for use
in your own Python-based macros and renderers (see in particular
Section~\ref{subsec:renderer-from-script}).
The following options are currently available
on the \program{plastex} command. They are categorized for convenience.
Note that some commands such as \longprogramopt{link} and
\longprogramopt{lang-terms} take in a list of arguments. If this is the last
option supplied, you would have to separate the filename from the list of
arguments, e.g.
\begin{verbatim}
plastex --lang-terms foo bar -- input.tex
\end{verbatim}
The \program{plasTeX} command line and configuration supports interpolation.
That is, in options whose value is a string (or a list of strings), we replace
all instances of \code{\%(foo)s} with the value of the option \code{foo}. The
formatting is done with pythons \%-formatting and all \%-formatting features
are supported. Note that we only specify the name of the option, and not the
section it belongs to.
Interpolation is performed each time a configuration option is accessed.
\subsection{General Options}\label{sec:general-options}
\begin{configuration}{Configuration files}
\options{\longprogramopt{config=\optval{config-file}} or
\programopt{-c \optval{config-file}}}
\config{general}{config}
specifies a configuration file to load. This should be the first option
specified on the command-line. Below is a sample configuration file:
\begin{verbatim}
[general]
renderer=HTML5
copy-theme-extras=yes
[document]
lang-terms=lang.xml
[files]
split-level=1
\end{verbatim}
\end{configuration}
\begin{configuration}{Kpsewhich}
\options{\longprogramopt{kpsewhich=\optval{program}}}
\config{general}{kpsewhich}
\default{kpsewhich}
specifies the \program{kpsewhich} program to use to locate \LaTeX\
files and packages.
\end{configuration}
\begin{configuration}{Plugins}
\options{\longprogramopt{plugins=\optval{plugins}}}
\config{general}{plugins}
\default{[]}
specifies a list of plugins to be used. Each element should be package
name that python can import. See Section~\ref{sec:plugins} for more
details.
\end{configuration}
\begin{configuration}{Load \LaTeX packages}
\options{\longprogramopt{load-tex-packages} or \longprogramopt{no-load-tex-packages}}
\config{general}{load-tex-packages}
\default{True}
specifies whether to attempt loading \LaTeX implementations of packages
when no python implementation exists.
\end{configuration}
\begin{configuration}{\LaTeX packages white-list}
\options{\longprogramopt{tex-packages=\optval{packages}}}
\config{general}{tex-packages}
\default{[]}
specifies a list of packages whose \LaTeX implementation should be loaded
if there is no python implementations, even if \longprogramopt{no-load-tex-packages}
is set.
\end{configuration}
\begin{configuration}{Renderer}
\options{\longprogramopt{renderer=\optval{renderer-name}}}
\config{general}{renderer}
\default{HTML5}
specifies which renderer to use. This is either one of the built in renderers,
a renderer defined by a plugin, or a path to the directory of a renderer.
A plugin can provide a renderer \verb+my_renderer+ by having a
\module{Renderers} submodule containing a \module{my_renderer} submodule exporting
a \class{Renderer} class.
\end{configuration}
\begin{configuration}{Packages directories}
\options{\longprogramopt{packages-dir=\optval{directories}}}
\config{general}{packages-dirs}
\default{[]}
specifies a list of directories where python implementations
of packages should be searched.
\end{configuration}
\begin{configuration}{Themes}
\options{\longprogramopt{theme=\optval{theme-name}}}
\config{general}{theme}
\default{default}
specifies which theme to use.
\end{configuration}
\begin{configuration}{Extra theme files}
\options{\longprogramopt{copy-theme-extras} or
\longprogramopt{ignore-theme-extras}}
\config{general}{copy-theme-extras}
\default{yes}
indicates whether or not extra files that belong to a theme (if there are
any) should be copied to the output directory.
\end{configuration}
\begin{configuration}{Extra templates directories}
\options{\longprogramopt{extra-templates=\optval{directories}}}
\config{general}{extra-templates}
\default{[]}
specifies a list of directories where extra templates
should be searched. Paths are relative to the current directory.
\end{configuration}
\begin{configuration}{Dump XML output}
\options{\longprogramopt{xml}}
\config{general}{xml}
\default{False}
dumps a XML representation of the document (for debugging).
\end{configuration}
\begin{configuration}{Debug parsing}
\options{\longprogramopt{debug}}
\config{general}{debug}
\default{False}
parses the document and drops into a debugger.
\end{configuration}
\subsection{Document Properties\label{sec:config-document}}
\begin{configuration}{Base URL}
\options{\longprogramopt{base-url=\optval{url}}}
\config{document}{base-url}
specifies a base URL to prepend to the path of all links.
\end{configuration}
\begin{configuration}{Number of Columns in the Index}
\options{\longprogramopt{index-columns=\optval{integer}}}
\config{document}{index-columns}
specifies the number of columns to group the index into.
\end{configuration}
\begin{configuration}{Language terms}
\options{\longprogramopt{lang-terms \optval{string1 string2 \ldots}}}
\config{document}{lang-terms}
specifies a list of files that contain language terms
\end{configuration}
\begin{configuration}{Section number depth}
\options{\longprogramopt{sec-num-depth=\optval{integer}}}
\config{document}{sec-num-depth}
\default{6}
specifies the section level depth that should appear in section numbers.
This value overrides the value of the secnumdepth counter in the document.
\end{configuration}
\begin{configuration}{Title for the document}
\options{\longprogramopt{title=\optval{string}}}
\config{document}{title}
specifies a title to use for the document instead of the title given
in the \LaTeX\ source document
\end{configuration}
\begin{configuration}{Table of contents depth}
\options{\longprogramopt{toc-depth=\optval{integer}}}
\config{document}{toc-depth}
specifies the number of levels to include in each table of contents.
\end{configuration}
\begin{configuration}{Display sections in the table of contents that do not create files}
\options{\longprogramopt{toc-non-files}}
\config{document}{toc-non-files}
specifies that sections that do not create files should still appear in the
table of contents. By default, only sections that create files will show
up in the table of contents.
\end{configuration}
\begin{configuration}{Disable character substitutions}
\options{\longprogramopt{disable-charsub}}
\config{document}{disable-charsub}
specifies a list of characters not to perform character substitutions on.
Character substitutions replace certain characters or groups of characters with
typographically superior unicode versions, e.g.\ \code{`} with `. This may be
unsuitable for certain use cases. For example, it may make search harder.
\end{configuration}
\subsection{Counters}
It is possible to set the initial value of a counter from the
command-line using the \longprogramopt{counter} option or the
``counters'' section in a configuration file. The configuration
file format for setting counters is very simple. The option name
in the configuration file corresponds to the counter name, and the
value is the value to set the counter to.
\begin{verbatim}
[counters]
chapter=4
part=2
\end{verbatim}
The sample configuration above sets the chapter counter to 4, and the
part counter to 2.
The \longprogramopt{counter} can also set counters. It accepts multiple
arguments which must be surrounded by square brackets ([~]).
Each counter set in the \longprogramopt{counter}
option requires two values: the name of the counter and the value to
set the counter to. An example of \longprogramopt{counter} is shown below.
\begin{verbatim}
plastex --counter part 2 --counter chapter 4 file.tex
\end{verbatim}
Just as in the configuration example, this command-line sets the
part counter to 2, and the chapter counter to 4.
Note that our notion of ``setting'' a counter to `n` is equivalent to
the \LaTeX{} command \verb!\setcounter{counter}{n - 1}!. This is so that, for
example, in the above configuration, when we first encounter
\verb!\section{Foo}!, we get Section 2 instead of Section 3 (since
\verb!\section! first increments the counter then uses the counter value).
\begin{configuration}{Set initial counter values}
\options{\longprogramopt{counter=\optval{counter-name initial-value}}}
specifies the initial counter values.
\end{configuration}
\subsection{Document Links\label{sec:config-links}}
The links section of the configuration is a little different than the
others. The options in the links section are not preconfigured, they
are all user-specified. The links section includes information
to be included in the navigation object available on all sections in
a document. By default, the section's navigation object includes things
like the previous and next objects in the document, the child nodes,
the sibling nodes, etc. The table below lists all of the navigation
objects that are already defined. The names for these items came from
the link types defined at \url{http://fantasai.tripod.com/qref/Appendix/LinkTypes/ltdef.html}. Of course, it is up to the renderer to actually make use
of them.
\begin{tableii}{l|l}{var}{Name}{Description}
\lineii{home}{the first section in the document}
\lineii{start}{same as \var{home}}
\lineii{begin}{same as \var{home}}
\lineii{first}{same as \var{home}}
\lineii{end}{the last section in the document}
\lineii{last}{same as \var{end}}
\lineii{next}{the next section in the document}
\lineii{prev}{the previous section in the document}
\lineii{previous}{same as \var{prev}}
\lineii{up}{the parent section}
\lineii{top}{the top section in the document}
\lineii{origin}{same as \var{top}}
\lineii{parent}{the parent section}
\lineii{child}{a list of the subsections}
\lineii{siblings}{a list of the sibling sections}
\lineii{document}{the document object}
\lineii{part}{the current part object}
\lineii{chapter}{the current chapter object}
\lineii{section}{the current section object}
\lineii{subsection}{the current subsection object}
\lineii{navigator}{the top node in the document object}
\lineii{toc}{the node containing the table of contents}
\lineii{contents}{same as \var{toc}}
\lineii{breadcrumbs}{a list of the parent objects of the current node}
\end{tableii}
Since each of these items references an object that is expected to have
a URL and a title, any user-defined fields should contain these as well
(although the URL is optional in some items). To create a user-defined
field in this object, you need to use two options: one for the title
and one for the URL, if one exists. They are specified in the config
file as follows:
\begin{verbatim}
[links]
next-url=http://myhost.com/glossary
next-title=The Next Document
mylink-title=Another Title
\end{verbatim}
While you can not override a field that is populated by the document,
there are times when a field isn't populated. This occurs, for example,
in the \var{prev} field at the beginning of the document, or the
\var{next} field at the end of the document. If you specify a \var{prev}
or \var{next} field in your configuration, those fields will be used
when no \var{prev} or \var{next} is available. This allows you to link
to external documents at those points.
\begin{configuration}{Set document links}
\options{\longprogramopt{link=\optval{key optional-url title}}}
specifies links to be included in the navigation object.
\end{configuration}
\subsection{Input and Output Files\label{sec:config-files}}
If you have a renderer that only generates one file, specifying the output
filename is simple: use the \longprogramopt{filename} option to specify
the name. However, if the renderer you are using generates multiple
files, things get more complicated. The \longprogramopt{filename} option
is also capable of handling multiple names, as well as giving you a
templating way to build filenames.
Below is a list of all of the options that affect filename generation.
\begin{configuration}{Characters that shouldn't be used in a filename}
\options{\longprogramopt{bad-filename-chars=\optval{string}}}
\config{files}{bad-chars}
\default{:~\#\$\%\textasciicircum\&*!\textasciitilde`"'=?/{}[]()|<>;\textbackslash,.}
specifies all characters that should not be allowed in a filename.
These characters will be replaced by the value in
\longprogramopt{bad-filename-chars-sub}.
\end{configuration}
\begin{configuration}{String to use in place of invalid characters}
\options{\longprogramopt{bad-filename-chars-sub}=\optval{string}}
\config{files}{bad-chars-sub}
\default{-}
specifies a string to use in place of invalid filename characters (
specified by the \longprogramopt{bad-chars-sub} option)
\end{configuration}
\begin{configuration}{Output Directory}
\options{\longprogramopt{dir=\optval{directory}} or \programopt{-d \optval{directory}}}
\config{files}{directory}
\default{\$jobname}
specifies a directory name to use as the output directory.
\end{configuration}
\begin{configuration}{Escaping characters higher than 7-bit}
\options{\longprogramopt{escape-high-chars}}
\config{files}{escape-high-chars}
\default{False}
some output types allow you to represent characters that are greater than
7-bits with an alternate representation to alleviate the issue of
file encoding. This option indicates that these alternate representations
should be used.
\note{The renderer is responsible for doing the translation into the
alternate format. This might not be supported by all output types.}
\end{configuration}
\begin{configuration}{Template to use for output filenames}
\options{\longprogramopt{filename=\optval{string}}}
\config{files}{filename}
specifies the templates to use for generating filenames.
The filename template is a list of space separated names. Each name
in the list is returned once. An example is shown below.
\begin{verbatim}
index.html toc.html file1.html file2.html
\end{verbatim}
If you don't know how many files you are going to be reproducing,
using static filenames like in the example above is not practical.
For this reason, these filenames can also contain variables as described in
Python's string Templates (e.g. \var{\$title}, \var{\${id}}).
Note that, if this option is configured on command line
rather than in a configuration file, the dollar characters probably need
to be protected. For instance bash would require single quote
protection, as in \verb+plastex --filename='$id'+.
These variables come from the namespace created in the renderer and
include:
\begin{itemize}
\item
\var{\$name}, the name of the item (e.g. part, chapter or section),
\item
\var{\$id}, the ID (i.e. label) of the item,
\item
\var{\$ref}, the counter associated to the item (if it exists),
\item
\var{\$title}, the title of the item,
\item
\var{\$jobname}, the basename of the \LaTeX\ file being processed.
\end{itemize}
One special variable is \var{\$num}. This value in generated dynamically
whenever a filename with \var{\$num} is requested. Each time a filename
with \var{\$num} is successfully generated, the value of \var{\$num}
is incremented.
The values of variables can also be modified by a format specified
in parentheses after the variable. The format is simply an integer
that specifies how wide of a field to create for integers
(zero-padded), or, for strings, how many space separated words
to limit the name to. The example below shows \var{\$num} being padded
to four places and \var{\$title} being limited to five words.
\begin{verbatim}
sect$num(4) $title(5)
\end{verbatim}
The list can also contain a wildcard filename (which should be
specified last). Once a wildcard name is reached, it is
used from that point on to generate the remaining filenames.
The wildcard filename contains a list of alternatives to use as
part of the filename indicated by a comma separated list of
alternatives surrounded by a set of square brackets ([ ]).
Each of the alternatives specified is tried until a filename is
successfully created (i.e. all variables resolve). For example,
the specification below creates three alternatives.
\begin{verbatim}
$jobname_[$id, $title, sect$num(4)]
\end{verbatim}
The code above is expanded to the following possibilities.
\begin{verbatim}
$jobname_$id
$jobname_$title
$jobname_sect$num(4)
\end{verbatim}
Each of the alternatives is attempted until one of them succeeds.
In order for an alternative to succeed, all of the variables referenced
in the template must be populated. For example, the \var{\$id} variable
will not be populated unless the node had a \macro{\$label} macro
pointing to it. The \var{\$title} variable would not be populated unless
the node had a title associated with it (e.g. such as section, subsection, etc.).
Generally, the last one should contain no variables except for
\var{\$num} as a fail-safe alternative.
The default value for this option is \verb+index [$id, sect$num(4)]+
which, assuming HTML output, will first generate a file
\var{index.html}. Then, for each node triggering a file creation, it
will try to use the node label. If no label exists, it will use
\var{sectN.html} where \var{N} is the next available number (starting
from one), padded to four digits. Of course the prefix \var{sect} is
chosen because the default value for \var{split-level} is $2$, which
means generating a new file or each section.
As last example, one could use \var{index \$name-[\$ref, sect\$num(4)]}.
Assuming our document contains two chapters which each contain two
sections (and using the \LaTeX default numbering scheme and default
\plasTeX split level), we would get filenames
\var{index.html}, \var{chapter-1.html}, \var{section-1-1.html},
\var{section-1-2.html}, \var{chapter-2.html}, \var{section-2-1.html},
\var{section-2-2.html}.
\end{configuration}
\begin{configuration}{Input Encoding}
\options{\longprogramopt{input-encoding=\optval{string}}}
\config{files}{input-encoding}
\default{utf-8}
specifies which encoding the \LaTeX\ source file is in
\end{configuration}
\begin{configuration}{Output Encoding}
\options{\longprogramopt{output-encoding=\optval{string}}}
\config{files}{output-encoding}
\default{utf-8}
specifies which encoding the output files should use.
\note{This depends on the output format as well. While HTML and XML use
encodings, a binary format like MS Word, would not.}
\end{configuration}
\begin{configuration}{Splitting document into multiple files}
\options{\longprogramopt{split-level=\optval{integer}}}
\config{files}{split-level}
\default{2}
specifies the highest section level that generates a new file. Each section
in a \LaTeX\ document has a number associated with its hierarchical level.
These levels are -2 for the document, -1 for parts, 0 for chapters,
1 for sections, 2 for subsections, 3 for subsubsections, 4 for paragraphs,
and 5 for subparagraphs. A new file will be generated for every section
in the hierarchy with a value less than or equal to the value of this
option. This means that for the value of 2, files will be generated for
the document, parts, chapters, sections, and subsections.
\end{configuration}
\begin{configuration}{Log messages to file}
\options{\longprogramopt{log}}
\config{files}{log}
\default{False}
specifies whether log messages should be put into a file instead of printed.
\end{configuration}
\subsection{Image Options\label{sec:config-images}}
Images are created by renderers when the output type in incapable of
rendering the content in any other way. This method was commonly used
to display equations in XHTML output. Nowadays, MathJax arguably
provides a better method, see Section~\ref{sec:config-html5} below.
But there are still pieces of mathematics they are not handled by MathJax, such
as commutative diagrams written using the \verb+tikz-cd+ package.
The following options control how images are generated.
\begin{configuration}{Base URL}
\options{\longprogramopt{image-base-url=\optval{url}}}
\config{images}{base-url}
specifies a base URL to prepend to the path of all images.
\end{configuration}
\begin{configuration}{\LaTeX\ program to use to compile image document}
\options{\longprogramopt{image-compiler=\optval{program}}}
\config{images}{compiler}
\default{latex}
specifies which program to use to compile the images \LaTeX\ document. If
unspecified, the default is specified by the imager. Note that not all imagers
are compatible with all compilers. Specifically, some imagers need compilers
that produces pdf's and others need dvi's.
\end{configuration}
\begin{configuration}{\LaTeX\ program to use to compile vector image document}
\options{\longprogramopt{vector-image-compiler=\optval{program}}}
\config{images}{vector-compiler}
\default{latex}
specifies which program to use to compile the vector images \LaTeX\ document. If
unspecified, this uses the value of \longprogramopt{image-compiler}.
\end{configuration}
\begin{configuration}{Enable or disable image generation}
\options{\longprogramopt{enable-images} or
\longprogramopt{disable-images}}
\config{images}{enabled}
\default{yes}
indicates whether or not images should be generated.
\end{configuration}
\begin{configuration}{Enable or disable the image cache}
\options{\longprogramopt{enable-image-cache} or
\longprogramopt{disable-image-cache}}
\config{images}{cache}
\default{yes}
indicates whether or not images should use a cache between runs.
\end{configuration}
\begin{configuration}{Convert \LaTeX\ output to images}
\options{\longprogramopt{imager=\optval{program}}}
\config{images}{imager}
\default{gspdfpng pdftoppm dvipng dvi2bitmap gsdvipng OSXCoreGraphics}
specifies which converter will be used to take the output from the
\LaTeX\ compiler and convert it to images. You can specify a space
delimited list of names as well. If a list of names is specified,
each one is verified in order to see if it works on the current machine.
The first one that succeeds is used.
You can use the value of ``none'' to turn the imager off.
\end{configuration}
\begin{configuration}{Image filenames}
\options{\longprogramopt{image-filenames=\optval{filename-template}}}
\config{images}{filenames}
\default{images/img-\$num(4).png}
specifies the image naming template to use to generate filenames. This
template is the same as the templates used by the \longprogramopt{filename}
option.
\end{configuration}
\begin{configuration}{Convert \LaTeX\ output to vector images}
\options{\longprogramopt{vector-imager=\optval{program}}}
\config{images}{vector-imager}
\default{pdf2svg dvisvgm}
specifies which converter will be used to take the output from the
\LaTeX\ compiler and convert it to vector images. You can specify a space
delimited list of names as well. If a list of names is specified,
each one is verified in order to see if it works on the current machine.
The first one that succeeds is used.
You can use the value of ``none'' to turn the vector imager off.
\note{When using the vector imager, a bitmap image is also created
using the regular imager. This bitmap is used to determine the
depth information about the vector image and can also be used as
a backup if the vector image is not supported by the viewer.}
\end{configuration}
\begin{configuration}{Save temporary files for debugging}
\options{\longprogramopt{save-image-file} or \longprogramopt{delete-image-file}}
\config{images}{save-file}
\default{no}
specifies whether the temporary images.tex file should be retained after
compilation. It can be useful to retain the images for debugging purposes.
\end{configuration}
\begin{configuration}{Scale factor of image}
\options{\longprogramopt{image-scale-factor}}
\config{images}{scale-factor}
\default{1.0}
the default scale factor to apply to images after compilation. Not all imagers respect
this option.
\end{configuration}
\begin{configuration}{Scale factor for given node type}
\options{\longprogramopt{scales=\optval{node-name scale_factor}}}
specifies the image scale factor for the specified type of node.
Not all imagers respect this option.
\end{configuration}
\subsection{HTML5 Renderer Options\label{sec:config-html5}}
Each renderer can define its own configuration options. This section
describes options from the HTML5 renderer. These options have no effect
if another renderer is used. Also these options may have no effect if
the default theme is not used.
The first three options give control on navigation helpers (tables of
contents and breadcrumbs links). Together with the extra-css option,
which allows to set css rules overriding the default ones, they allow
radical changes to the output style without modifying any template or
python code. See Section~\ref{sec:html5} for more information on the
HTML5 renderer and how to customize its output.
\begin{configuration}{Display table of contents on each page}
\options{\longprogramopt{display-toc} or \longprogramopt{no-display-toc}}
\config{html5}{display-toc}
\default{true}
specifies whether to display the table of contents on each page.
\end{configuration}
\begin{configuration}{Local table of contents level}
\options{\longprogramopt{localtoc-level=\optval{level}}}
\config{html5}{localtoc-level}
\default{Node.DOCUMENT_LEVEL-1}
specifies from which level one creates local table of contents. The
default value implies local table of contents are never created.
\end{configuration}
\begin{configuration}{Create breadcrumbs from this level}
\options{\longprogramopt{breadcrumbs-level=\optval{level}}}
\config{html5}{breadcrumbs-level}
\default{10}
specifies from which level one creates breadcrumbs navigation links.
The default value means no breadcrumb at all.
\end{configuration}
\begin{configuration}{Use theme CSS}
\options{\longprogramopt{use-theme-css} or \longprogramopt{no-theme-css}}
\config{html5}{use-theme-css}
\default{True}
specifies whether to use CSS files from the theme.
\end{configuration}
\begin{configuration}{Theme CSS file}
\options{\longprogramopt{theme-css=\optval{theme}}}
\config{html5}{theme-css}
\default{white}
specifies when CSS theme to use. Possible values are currently white, blue or
green.
\end{configuration}
\begin{configuration}{Extra CSS file}
\options{\longprogramopt{extra-css \optval{filename1 filename2 ...}}}
\config{html5}{extra-css}
\default{[]}
specifies a list of css files to use in addition the
theme css. These files are copied to the output directory by the
renderer and loaded by the main layout template in the list order after
the theme css files (if any) and the packages css files (if any).
\end{configuration}
\begin{configuration}{Use theme javascript}
\options{\longprogramopt{use-theme-js} or \longprogramopt{no-theme-js}}
\config{html5}{use-theme-js}
\default{True}
specifies whether to use javascript files from the theme. The default
theme javascript is used to hide or show part of the table of contents
and proofs.
\end{configuration}
\begin{configuration}{Extra javascript}
\options{\longprogramopt{extra-js \optval{filename1 filename2 ...}}}
\config{html5}{extra-css}
\default{[]}
specifies a list of javascript files to use (in addition
to those coming from the theme is the use-theme-js option is set to true).
These files are copied to the output directory by the
renderer and loaded by the main layout template in the list order after
the theme javascript files (if any) and the packages javascript files (if any).
\end{configuration}
\begin{configuration}{Use MathJax}
\options{\longprogramopt{use-mathjax} or \longprogramopt{no-mathjax}}
\config{html5}{use-mathjax}
\default{True}
specifies whether to use MathJax for mathematics rendering. Setting this
to False only makes sense if the document contains no mathematics or if
some filter is expected to handle mathematics (see
\longprogramopt{filters} option below).
\end{configuration}
\begin{configuration}{MathJax library url}
\options{\longprogramopt{mathjax-url=\optval{url}}}
\config{html5}{mathjax-url}
\default{http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_CHTML}
specifies where to find the MathJax javascript lib (including the config
information as in the default value).
\end{configuration}
\begin{configuration}{Use single dollars as math delimiter for MathJax}
\options{\longprogramopt{dollars} or \longprogramopt{no-dollars}}
\config{html5}{mathjax-dollars}
\default{False}
specifies whether single dollars can be used as math delimiters instead of
\verb+\(+ and \verb+\)+. This information is used by MathJax.
\end{configuration}
\begin{configuration}{MathJax macros}
\options{\longprogramopt{mj-macros \optval{name value}}}
\config{mathjax-macros}{macros}
\default{\{\}}
specifies a dictionary of macros for MathJax.
This can be used for common macros that are not implemented by MathJax, for instance
\macro{qedhere}. On the command line, the option can be provided several times
to define several macros. But this option is much more convenient to specify in a config file in
a \verb!mathjax-macros! section containing one line \verb!name=value! per macro.
\end{configuration}
\begin{configuration}{Filters applied on output}
\options{\longprogramopt{filters \optval{filter1 filter2 \ldots}}}
\config{html5}{filters}
\default{[]}
specifies a list of commands to invoke on each output
page. Each command should expect one file to convert on stdin and output
the converted file on stdout.
\end{configuration}
|