Skip to main content

Section 45.13 pretext/pretext Capabilities

List 45.13.1. pretext/pretext Capabilities

Again, the command pretext -h will remind you of the various options for the script and is the most likely list to be correct and up-to-date. The following is a brief summary, in general terms, of what is possible.

Complete Conversions

With -c all and various choices of the format (-f) the script will execute a complete conversion. In some cases, this is a convenience compared with just using the xsltproc processor. In other cases the conversion is very complex and multiple (arcane) output files must be packaged up in very specific ways and no author would want to manage it all. Conversion to EPUB is one example ([provisional cross-reference: epub conversion]).


has a variety of languages for specifying images, such as xypic, pgfplots, and TikZ. By including the necessary packages or setup commands in docinfo/latex-preamble, these can all be generated at once, in the manner of the example earlier.


Images described by the Asymptote language can be processed in a manner entirely similar to that for images described with graphics languages. By default an online server will be used for the image generation, or you may elect to use an asy executable on your system and locatable via the pretext.cfg configuration file.

Sage Plot

If you have a version of Sage installed on your system, you can specify the path to the executable and obtain images described by Sage code. See Subsubsection for more information.

All Formats

If you desire images in a wide variety of formats, the option -f all will oblige.

YouTube Thumbnails

For each YouTube video (or itemized playlist) you specify, the script will go the YouTube site and grab a thumbnail image for that video (or first video from the itemized playlist). These get used in static formats, such as PDF.

Preview Images

Like a thumbnail for a YouTube video, other interactive content can benefit from a still image for use with static formats. Our strategy is to render the content with a “headless” web browser and capture an image automatically. For example, you might write some custom Javascript to allow a reader to interact with a graph, and you would like an image of the graph, along with its interactive sliders and checkboxes, to appear in the PDF version of your text. Recognize that this image will necessarily be the content at its initial start-up. Get a screenshot manually if you want something better.

Note that for all this to work, you need to properly serve your project's HTML output with the interactive content. (A local server may be a possibility, but we have not tried. See Section 5.12. Or you can try a temporary public server, see Section 5.13). Then you need to announce the location of this hosted HTML, which is accomplished via a “base URL” in a publication file. Start at Subsection 28.1.3 for details on this publisher variable. Note that the chunk level in your publication file used in this process must match the chunk level used when you build your HTML output, and mismatches for other publisher variables could have some ill effects.

pageres is the node program enabling this process. So follow Section F.1 and install the pageres-cli package (not simply pageres). In your copy of pretext/pretext.cfg you will see an entry for pageres. Provide a complete path to within your installation of the pageres-cli package (see Section 45.6). For example, my setup uses

pageres = /home/rob/node_modules/.bin/pageres

Now call pretext/pretext with -c preview. There is no need to set a format—you get what you get (PNG images).

There is a default 5-second delay for each new snapshot to let the page render and the image to settle down. To change this set an argument for the pageres executable in pretext/pretext.cfg, such as

pageres = /home/rob/node_modules/.bin/pageres -d20
Mathematics Representations

Conversions to EPUB, braille, and other formats require creating conversions of mathematics elements locally as part of the conversion. This requires having MathJax installed locally, see Appendix F. Structured files of these representations can be obtained by setting the component with -c math. Possible formats (-f) are svg, mml (MathML), braille and speech.


Various conversions of WeBWorK problems are facilitated through communication with a WeBWorK server. This server is specified as an argument to the -s option. See Chapter 7 for the details of this procedure.