Skip to content

WikiToLearn/mw-ocg-latexer

Repository files navigation

#MediaWiki ocg-latexer ocg-latexer forked from https://gerrit.wikimedia.org/r/p/mediawiki/extensions/Collection/OfflineContentGenerator/latex_renderer

mw-ocg-latexer

NPM

Build Status dependency status dev dependency status

Converts mediawiki collection bundles (as generated by mw-ocg-bundler) to beautiful PDFs (via XeLaTeX).

Installation

Node version 0.8 and 0.10 are tested to work.

Install the node package dependencies.

npm install

You will need to have a C compiler installed in order to build the sqlite3 and icu-bidi packages (ie, apt-get install g++).

Install other system dependencies.

apt-get install texlive-xetex texlive-latex-recommended \
                texlive-latex-extra texlive-generic-extra \
                texlive-fonts-recommended texlive-fonts-extra \
                fonts-hosny-amiri fonts-farsiweb fonts-nafees \
                fonts-arphic-uming fonts-arphic-ukai fonts-droid fonts-baekmuk \
                texlive-lang-all latex-xcolor \
                poppler-utils imagemagick librsvg2-bin libjpeg-progs \
                djvulibre-bin unzip

Note that up-to-date LaTeX hyperref and fontspec packages are required. If your LaTeX installation is old, you can find recent versions of some of the necessary packages in texdeps/, but it's best to use an up-to-date TeXlive distribution.

If you prefer, the inkscape package can be installed to do SVG->PDF conversion in place of rsvg-convert (from the librsvg2-bin package).

In older versions of Ubuntu, the Nazli font was provided by the ttf-farsiweb package instead of fonts-farsiweb.

In Ubuntu 12.04, the lmodern package must also be installed manually.

Hyperlinks in generated PDFs will not resolve correctly unless the target wiki has $wgUsePathInfo enabled.

Generating bundles

You may wish to install the mw-ocg-bundler npm package to create bundles from wikipedia articles. The below text assumes that you have done so; ignore the mw-ocg-bundler references if you have bundles from some other source.

Running

To generate a PDF named out.pdf from the en.wikipedia.org article "United States":

$SOMEPATH/bin/mw-ocg-bundler -v -o us.zip -h en.wikipedia.org "United States"
bin/mw-ocg-latexer -o out.pdf us.zip

In the above command $SOMEPATH is the place you installed mw-ocg-bundler; if you've used the directory structure recommended by mw-ocg-service this will be ../mw-ocg-bundler.

For debugging, preserving the XeTeX output is often useful:

bin/mw-ocg-latexer -l -D -o out.tex us.zip
TEXINPUTS=tex/: xelatex out.tex

For other options, see:

bin/mw-ocg-latexer --help

Related Projects

License

GPLv2

(c) 2013 by C. Scott Ananian

c87d63a404fbd60423f3d5a6058085c3c3f70668