|
|
================================ |
|
|
Generating LaTeX with Docutils |
|
|
================================ |
|
|
|
|
|
:Author: Engelbert Gruber, Guenter Milde |
|
|
:Contact: docutils-develop@lists.sourceforge.net |
|
|
:Revision: $Revision: 8064 $ |
|
|
:Date: $Date: 2017-04-28 19:06:36 +0200 (Fr, 28 Apr 2017) $ |
|
|
:Copyright: This document has been placed in the public domain. |
|
|
:Abstract: This document covers topics specific to Docutils' LaTeX_ export. |
|
|
|
|
|
.. contents:: |
|
|
.. sectnum:: |
|
|
|
|
|
|
|
|
LaTeX |
|
|
===== |
|
|
|
|
|
LaTeX__, is a document preparation system for high-quality typesetting. It |
|
|
is most often used for medium-to-large technical or scientific documents but |
|
|
it can be used for almost any form of publishing. There exists a wide |
|
|
selecton of `LaTeX Documentation on the net`_ and `books on LaTeX and |
|
|
related topics`_. For an introduction to LaTeX see, e.g., `LaTeX2e for |
|
|
authors`_. |
|
|
|
|
|
__ http://www.latex-project.org/ |
|
|
.. _LaTeX2e for authors: |
|
|
http://www.latex-project.org/guides/usrguide.pdf |
|
|
.. _LaTeX Documentation on the net: |
|
|
http://www.latex-project.org/guides/ |
|
|
.. _books on LaTeX and related topics: |
|
|
http://www.latex-project.org/guides/books.html |
|
|
|
|
|
|
|
|
.. _LaTeX packages: |
|
|
|
|
|
LaTeX classes and packages |
|
|
-------------------------- |
|
|
|
|
|
Unlike HTML with CSS, LaTeX uses one common language for markup and style |
|
|
definitions. Separation of content and style is realized by collecting style |
|
|
definitions in LaTeX classes and packages, or the |
|
|
`document preamble <LaTeX preamble_>`_. |
|
|
|
|
|
LaTeX document classes and packages (similar to Python modules or C |
|
|
libraries) provide means to extend or modify the LaTeX language by |
|
|
redefining macros or providing new ones. |
|
|
|
|
|
Using the `document class`_ and `style sheet`_ configuration options, you |
|
|
can select from a *huge* selection of classes and packages (standard as well |
|
|
as user contributed) coming with your TeX distribution or available at |
|
|
CTAN_ as well as custom style sheets. |
|
|
|
|
|
.. _CTAN: http://www.ctan.org |
|
|
|
|
|
|
|
|
Docutils specific LaTeX macros |
|
|
------------------------------ |
|
|
|
|
|
Some Docutils objects have no LaTeX counterpart, they will be typeset |
|
|
using a Docutils specific LaTeX *macro* (command, environment, or |
|
|
length) to allow customization. By convention, special macros use the |
|
|
prefix ``\DU``\ [#]_. |
|
|
|
|
|
The generated LaTeX documents should be kept processable by a standard LaTeX |
|
|
installation. Therefore fallback definitions are included after the `custom |
|
|
style sheets`_, if a macro is required in the document. |
|
|
|
|
|
* Custom `style sheets`_ can define alternative implementations with |
|
|
``\newcommand``, ``\newenvironment``, and ``\newlength`` followed by |
|
|
``\setlength``. |
|
|
|
|
|
* Definitions with `raw LaTeX`_ are part of the document body. Use |
|
|
``\def``, ``\renewcommand`` or ``\renewenvironment``, and ``\setlength``. |
|
|
|
|
|
See the test output standalone_rst_latex.tex_ for an example of the fallback |
|
|
definitions and their use in the document. |
|
|
|
|
|
.. [#] DU for Documentation Utilities = Docutils |
|
|
|
|
|
|
|
|
Length units |
|
|
------------ |
|
|
|
|
|
LaTeX supports all `length units`_ defined for Docutils plus the |
|
|
following less common units: |
|
|
|
|
|
:pt: typewriter's (or LaTeX) point (1 pt = 1/72.27 in) |
|
|
:dd: didôt (1 dd = 1238/1157 pt) |
|
|
:cc: cîcero (1 cc = 12 dd) |
|
|
:sp: scaled point (1sp = 1/65536pt) |
|
|
|
|
|
.. attention:: Different definitions of the unit "pt"! |
|
|
|
|
|
* In Docutils (as well as CSS) the unit symbol "pt" denotes the |
|
|
`Postscript point` or `DTP point`. |
|
|
|
|
|
* LaTeX uses "pt" for the `LaTeX point`, which is unknown to Docutils and |
|
|
0.3 % smaller. |
|
|
|
|
|
* The `DTP point` is available in LaTeX as "bp" (big point): |
|
|
|
|
|
1 pt = 1/72.25 in < 1 bp = 1/72 in |
|
|
|
|
|
Lengths specified in the document with unit "pt" will be given the |
|
|
unit "bp" in the LaTeX source. |
|
|
|
|
|
In `raw LaTeX`_ and `custom style sheets`_, the `DTP point` must be |
|
|
specified as "bp", while "pt" is interpreted as `LaTeX point`. |
|
|
|
|
|
The default length unit (added by Docutils to length specifications |
|
|
without unit) is the "DTP point". |
|
|
|
|
|
.. _length units: ../ref/rst/restructuredtext.html#length-units |
|
|
|
|
|
|
|
|
PDF generation |
|
|
============== |
|
|
|
|
|
In most cases, LaTeX code is not the desired end-format of the document. |
|
|
LaTeX offers many ways to generate PDF documents from the LaTeX |
|
|
source, including: |
|
|
|
|
|
_`pdflatex` |
|
|
Generates a PDF document directly from the LaTeX file. |
|
|
|
|
|
_`xelatex` or _`lualatex` |
|
|
The `XeTeX`_ and LuaTeX_ engines work with input files in UTF-8 encoding |
|
|
and system fonts. Export your document with the `xetex` writer |
|
|
(``rst2xetex``), if you want to go this route. |
|
|
|
|
|
You may need to call latex two or three times to get internal references |
|
|
correct. |
|
|
|
|
|
.. _documentoptions: config.html#documentoptions |
|
|
.. _xetex: http://tug.org/xetex/ |
|
|
.. _luatex: http://luatex.org/ |
|
|
|
|
|
|
|
|
_`rubber` |
|
|
The Rubber__ wrapper for LaTeX and friends can be used to automatically |
|
|
run all programs the required number of times and delete "spurious" files. |
|
|
This includes processing bibliographic references or indices, as well as |
|
|
compilation or conversion of figures. |
|
|
|
|
|
__ https://launchpad.net/rubber/ |
|
|
|
|
|
|
|
|
Configuration |
|
|
============= |
|
|
|
|
|
.. contents:: :local: |
|
|
|
|
|
.. _option: |
|
|
|
|
|
Options/Settings |
|
|
---------------- |
|
|
|
|
|
Options can be specified as |
|
|
|
|
|
* command-line options, or |
|
|
|
|
|
* configuration settings. |
|
|
|
|
|
Run ``rst2latex.py --help`` to get a list of available options; |
|
|
see `Docutils Configuration`_ for details. |
|
|
|
|
|
.. _Docutils Configuration: |
|
|
config.html |
|
|
|
|
|
Classes |
|
|
------- |
|
|
|
|
|
The `"classes" attribute`_ is one of the common attributes, shared by all |
|
|
Docutils elements. |
|
|
In HTML, the common use is to provide selection criteria for style rules in |
|
|
CSS stylesheets. As there is no comparable framework for LaTeX, Docutils |
|
|
mimics some of this behaviour via `Docutils specific LaTeX macros`_. |
|
|
|
|
|
*Inline elements* |
|
|
are handled via the ``\DUrole{}`` macro, that calls the optional styling |
|
|
command ``\DUrole«classargument»`` with one argument (the role content). |
|
|
See `custom interpreted text roles`_. |
|
|
|
|
|
*Block level elements* |
|
|
are wrapped in "class environments": |
|
|
``\begin{DUclass}`` calls the optional styling command |
|
|
``\DUCLASSe«classargument»{}``, ``\end{DUclass}`` tries |
|
|
``\endDUCLASS«classargument»``. |
|
|
|
|
|
Customization is done by defining matching macros or environments. |
|
|
|
|
|
Example 1: |
|
|
Use small caps font inside elements with class value "custom". |
|
|
|
|
|
*Inline elements* |
|
|
The LaTeX function ``\textsc`` sets the argument in small caps:: |
|
|
|
|
|
\newcommand{\DUrolesmallcaps}[1]{\textsc{#1}} |
|
|
|
|
|
*Block-level elements* |
|
|
The LaTeX directive (macro without argument) ``\scshape`` switches to |
|
|
the small caps font. Its effect is confined to the wrapper ``DUclass`` |
|
|
environment:: |
|
|
|
|
|
\newcommand*{\DUCLASScustom}{\scshape} |
|
|
|
|
|
Example 2: |
|
|
It is even possible to locally redefine other LaTeX macros, e.g. to |
|
|
turn bullet lists with class value "enumerateitems" into enumerated |
|
|
lists:: |
|
|
|
|
|
\newcommand*{\DUCLASSenumerateitems}{% |
|
|
\renewenvironment{itemize}{\begin{enumerate}}% |
|
|
{\end{enumerate}}% |
|
|
} |
|
|
|
|
|
Notes |
|
|
````` |
|
|
|
|
|
* Class arguments may contain numbers and hyphens, which need special |
|
|
treatment in LaTeX command names (see `class directive`_). The commands |
|
|
``\csname`` and ``\endcsname`` or the special command ``\@namedef`` can |
|
|
help with the definition of corresponding macros or environments, e.g.:: |
|
|
|
|
|
\expandafter\newcommand\csname gg1\endcsname{Definition of gg1.} |
|
|
|
|
|
or :: |
|
|
|
|
|
\makeatletter |
|
|
\@namedef{DUadmonitionadmonition-test}{…} |
|
|
\makeatother |
|
|
|
|
|
* Elements can have multiple class arguments. In contrast to HTML/CSS, the |
|
|
order of the class arguments cannot be ignored in LaTeX |
|
|
|
|
|
* For "historical reasons", class handling differs for some elements and |
|
|
class values: |
|
|
|
|
|
* The special macros ``\DUadmonition``, ``\DUtitle``, and ``\DUtopic`` are |
|
|
written with a comma separated list of class values as optional |
|
|
argument. See http://www.ctan.org/topic/keyval for LaTeX packages that |
|
|
help parsing value lists. |
|
|
|
|
|
See the sections on admonitions_, titles_, and the `topic element`_ for |
|
|
customization examples. |
|
|
|
|
|
* Class argument values starting with ``align-`` are transformed to |
|
|
"align" argument values. Class argument values starting with |
|
|
``language-`` set the elements language property. |
|
|
|
|
|
* The table element recognizes some special class values. See section |
|
|
table_. |
|
|
|
|
|
.. _"classes" attribute: ../ref/doctree.html#classes |
|
|
|
|
|
|
|
|
LaTeX code |
|
|
---------- |
|
|
|
|
|
Custom LaTeX code can be placed in `style sheets`_, the |
|
|
`LaTeX preamble`_, the document body (`raw LaTeX`_), or custom templates_. |
|
|
|
|
|
The functional tests that come with Docutils, can serve as example. |
|
|
|
|
|
input: |
|
|
standalone_rst_latex.txt_ (includes files from `tests/functional/input/data`_) |
|
|
expected output: |
|
|
standalone_rst_latex.tex_ |
|
|
|
|
|
.. _standalone_rst_latex.txt: |
|
|
https://sf.net/p/docutils/code/HEAD/tree/trunk/docutils/test/functional/input/standalone_rst_latex.txt |
|
|
.. _tests/functional/input/data: |
|
|
https://sf.net/p/docutils/code/HEAD/tree/trunk/docutils/test/functional/input/data |
|
|
.. _standalone_rst_latex.tex: |
|
|
https://sf.net/p/docutils/code/HEAD/tree/trunk/docutils/test/functional/expected/standalone_rst_latex.tex?format=raw |
|
|
|
|
|
|
|
|
.. _style sheet: |
|
|
.. _custom style sheets: |
|
|
|
|
|
Style sheets |
|
|
```````````` |
|
|
|
|
|
A common way of LaTeX customization is the preparation of custom style |
|
|
sheets, either as simple files with LaTeX code snippets or as home-made |
|
|
`LaTeX packages`_ (see the clsguide_ for an introduction on LaTeX |
|
|
package writing). |
|
|
|
|
|
Options: |
|
|
stylesheet_ |
|
|
|
|
|
It is possible to specify multiple style sheets and mix `LaTeX |
|
|
packages`_ with custom style sheets. |
|
|
|
|
|
You cannot specify package options with the stylesheet_ setting. If |
|
|
you need to pass options to the package, use the ``\usepackage`` |
|
|
command in the `LaTeX preamble`_ or a custom style sheet. |
|
|
|
|
|
Example 1: |
|
|
Select Latin Modern fonts with the `lmodern` package:: |
|
|
|
|
|
--stylesheet=lmodern |
|
|
|
|
|
Example 2: |
|
|
Use the `preamble.tex` home-made custom style sheet together with |
|
|
the package `kerkis` (Bookman fonts):: |
|
|
|
|
|
--stylesheet=kerkis,preamble.tex |
|
|
|
|
|
Example 3: |
|
|
Select Palatino fonts with old-style numbers and true small-caps |
|
|
with the LaTeX command :: |
|
|
|
|
|
\usepackage[osf,sc]{mathpazo} |
|
|
|
|
|
in the `LaTeX preamble`_ or `custom style sheets`_. |
|
|
|
|
|
Stylesheet Repository |
|
|
There is a `repository of user-contributed style sheets`_ in the |
|
|
Docutils Sandbox_. |
|
|
|
|
|
.. _clsguide: |
|
|
http://mirror.ctan.org/macros/latex/doc/clsguide.pdf |
|
|
.. _stylesheet: |
|
|
config.html#stylesheet-latex2e-writer |
|
|
.. _embed-stylesheet: |
|
|
config.html#embed-stylesheet-latex2e-writer |
|
|
.. _repository of user-contributed style sheets: |
|
|
../../../sandbox/stylesheets/ |
|
|
.. _sandbox: ../../../sandbox/ |
|
|
|
|
|
|
|
|
LaTeX preamble |
|
|
`````````````` |
|
|
|
|
|
Configuration by LaTeX code in the document preamble is also possible |
|
|
without a separate stylesheet. This way, packages can be loaded with |
|
|
options or commands re-defined without the need to create a separate |
|
|
file (new in Docutils 0.7). |
|
|
|
|
|
Option: |
|
|
latex-preamble_ |
|
|
|
|
|
Default: |
|
|
used for `font setup`_ |
|
|
|
|
|
Example: |
|
|
To use the better looking ``txtt`` font for monospaced text define the |
|
|
latex-preamble_ setting in a configuration file:: |
|
|
|
|
|
latex-preamble: \renewcommand{\ttdefault}{txtt} |
|
|
\usepackage{mathptmx} % Times |
|
|
\usepackage[scaled=.92]{helvet} % Helvetica |
|
|
|
|
|
.. _latex-preamble: |
|
|
config.html#latex-preamble |
|
|
.. _PDF standard fonts: |
|
|
http://en.wikipedia.org/wiki/PDF#Standard_Type_1_Fonts |
|
|
.. _Linux Libertine: |
|
|
http://www.linuxlibertine.org/index.php?id=1&L=1 |
|
|
|
|
|
|
|
|
Templates |
|
|
````````` |
|
|
|
|
|
Some customizations require commands at places other than the insertion |
|
|
point of stylesheets or depend on the deletion/replacement of parts of the |
|
|
document. This can be done via a custom template. See the `publisher |
|
|
documentation`_ for a description of the document parts available in a |
|
|
template file. |
|
|
|
|
|
Option: |
|
|
template_ |
|
|
|
|
|
In addition to the 'default.tex' template, the latex writer directory |
|
|
contains the alternative 'titlepage.tex'. |
|
|
|
|
|
Example: |
|
|
Print a title page including docinfo, dedication, and abstract:: |
|
|
|
|
|
--template=titlepage.tex |
|
|
|
|
|
.. _publisher documentation: ../api/publisher.html |
|
|
.. _template: config.html#template-latex2e-writer |
|
|
|
|
|
|
|
|
Raw LaTeX |
|
|
````````` |
|
|
|
|
|
By means of the `raw directive`_ or a derived `custom role`_, one can |
|
|
give commands directly to LaTeX. These can be both, styling as well as |
|
|
printing commands. |
|
|
|
|
|
Example: |
|
|
Math formula:: |
|
|
|
|
|
.. raw:: latex |
|
|
|
|
|
\[x^3 + 3x^2a + 3xa^2 + a^3,\] |
|
|
|
|
|
(Drawback: the formula will be invisible in other output formats. Better |
|
|
use the `math directive`_) |
|
|
|
|
|
Most LaTeX code examples also work as raw LaTeX inside the document. |
|
|
An exception are commands that need to be given in the document |
|
|
preamble (e.g. package loading with ``\usepackage``, which can be |
|
|
achieved with the ``--style-sheet`` or ``--latex-preamble`` command |
|
|
line options instead). Remember to use *re-defining* commands for |
|
|
customizing `Docutils specific LaTeX macros`_ with raw LaTeX. |
|
|
|
|
|
Example: |
|
|
Define the transition command as page break:: |
|
|
|
|
|
.. raw:: latex |
|
|
|
|
|
\renewcommand*{\DUtransition}{\pagebreak[4]} |
|
|
|
|
|
See also: |
|
|
* Defining a macro for a `custom role`_. |
|
|
* Forcing `page breaks`_. |
|
|
|
|
|
.. _raw directive: |
|
|
../ref/rst/directives.html#raw |
|
|
.. _math directive: |
|
|
../ref/rst/directives.html#math |
|
|
|
|
|
|
|
|
|
|
|
How to configure the ... |
|
|
======================== |
|
|
|
|
|
admonitions |
|
|
----------- |
|
|
|
|
|
Admonitions__ are specially marked "topics" that can appear anywhere an |
|
|
ordinary body element can. |
|
|
|
|
|
__ ../ref/rst/directives.html#admonitions |
|
|
|
|
|
Command: |
|
|
``\DUadmonition`` |
|
|
|
|
|
Default: |
|
|
Typeset in a frame (90 % of text width). |
|
|
|
|
|
The admonition title is typeset with the ``\DUtitle`` command which also |
|
|
takes a class argument. See `titles`_ |
|
|
|
|
|
Example 1: |
|
|
A lighter layout without the frame:: |
|
|
|
|
|
\newcommand{\DUadmonition}[2][class-arg]{% |
|
|
% try \DUadmonition#1{#2}: |
|
|
\ifcsname DUadmonition#1\endcsname% |
|
|
\csname DUadmonition#1\endcsname{#2}% |
|
|
\else |
|
|
\begin{quote} |
|
|
#2 |
|
|
\end{quote} |
|
|
\fi |
|
|
} |
|
|
|
|
|
The first part of this definition acts as a "dispatcher". This way it is |
|
|
possible to define a special handling of `specific admonitions`_ based on |
|
|
the "class" argument. |
|
|
|
|
|
.. _specific admonitions: |
|
|
../ref/rst/directives.html#specific-admonitions |
|
|
|
|
|
Example 2: |
|
|
Use ``.. note::`` for a margin note:: |
|
|
|
|
|
\newcommand{\DUadmonitionnote}[1]{\marginpar{#1}} |
|
|
|
|
|
Make sure there is enough space to fit the note. |
|
|
See also the marginnote_ and pdfcomment_ packages. |
|
|
|
|
|
.. _marginnote: |
|
|
http://mirror.ctan.org/help/Catalogue/entries/marginnote.html |
|
|
.. _pdfcomment: |
|
|
http://mirror.ctan.org/help/Catalogue/entries/pdfcomment.html |
|
|
|
|
|
|
|
|
.. _custom role: |
|
|
|
|
|
custom interpreted text roles |
|
|
----------------------------- |
|
|
|
|
|
The rst `role directive`_ allows defining custom `text roles`_ that mark |
|
|
parts of inline text (spans) with class arguments (see section classes_). |
|
|
|
|
|
Commands: |
|
|
``\DUrole``: dispatcher command |
|
|
|
|
|
``\DUrole«classargument»``: optional styling command with 1 argument (the |
|
|
role content). |
|
|
|
|
|
Default: |
|
|
The default definition of ``\DUrole{«classargument»}{}`` calls the macro |
|
|
named ``\DUrole«classargument»{}`` if it is defined and silently ignores |
|
|
this class argument if not. |
|
|
|
|
|
Example 1: |
|
|
Typeset text in small caps:: |
|
|
|
|
|
.. role:: smallcaps |
|
|
|
|
|
:smallcaps:`Fourier` transformation |
|
|
|
|
|
This is transformed to the LaTeX code:: |
|
|
|
|
|
\DUrole{smallcaps}{Fourier} transformation |
|
|
|
|
|
The definition :: |
|
|
|
|
|
\newcommand{\DUrolesmallcaps}{\textsc} |
|
|
|
|
|
as `raw LaTeX`_ or in the custom `style sheet`_ will give the expected |
|
|
result (if the text font_ supports small caps). |
|
|
|
|
|
Example 2: |
|
|
Subscript text in normal size and *italic* shape:: |
|
|
|
|
|
.. role:: sub(subscript) |
|
|
|
|
|
As "sub" inherits from the standard "subscript" role, the LaTeX macro |
|
|
only needs to set the size and shape:: |
|
|
|
|
|
\newcommand{\DUrolesub}{\normalsize\itshape} |
|
|
|
|
|
Example 3: |
|
|
A role with several classes and a converted class name:: |
|
|
|
|
|
.. role:: custom4 |
|
|
:class: argI argII arg_3 |
|
|
|
|
|
is translated to the nested commands:: |
|
|
|
|
|
\DUrole{argi}{\DUrole{argii}{\DUrole{arg-3}{<content>}}} |
|
|
|
|
|
With the definitions:: |
|
|
|
|
|
\newcommand{\DUroleargi}[1]{\textsc} |
|
|
\newcommand{\DUroleargii}[1]{{\large #1}} |
|
|
\makeatletter |
|
|
\@namedef{DUrolearg-3}{\textbf} |
|
|
\makeatother |
|
|
|
|
|
in a `style sheet`_\ [#]_ or as `raw LaTeX`_ in the document source, |
|
|
text styled with ``:custom4:`large bold small-caps``` will be typeset |
|
|
accordingly. |
|
|
|
|
|
.. [#] Leave out the ``\makeatletter`` - ``\makeatother`` pair if the style |
|
|
sheet is a LaTeX package (``*.sty``). |
|
|
|
|
|
.. _role directive: |
|
|
../ref/rst/directives.html#role |
|
|
|
|
|
.. _text roles: |
|
|
../ref/rst/roles.html |
|
|
|
|
|
.. _class directive: |
|
|
../ref/rst/directives.html#class |
|
|
|
|
|
definition lists |
|
|
---------------- |
|
|
|
|
|
ReStructuredText `definition lists`__ correspond to HTML ``<dl>`` list |
|
|
objects. |
|
|
|
|
|
Environment: |
|
|
``description``: LaTeX standard environment |
|
|
|
|
|
Command: |
|
|
``\descriptionlabel``: styling macro for the description term |
|
|
|
|
|
Default: |
|
|
bold label text, hanging indent |
|
|
|
|
|
Example: |
|
|
A non-bold label can be achieved with:: |
|
|
|
|
|
\renewcommand\descriptionlabel[1]{\hspace\labelsep \normalfont #1} |
|
|
|
|
|
__ ../ref/rst/restructuredtext.html#definition-lists |
|
|
|
|
|
|
|
|
document class |
|
|
-------------- |
|
|
|
|
|
There are hundreds of LaTeX document classes installed by modern |
|
|
LaTeX distributions, provided by publishers, or available at CTAN_. |
|
|
|
|
|
Popular document classes: |
|
|
* article, report, book: standard document classes |
|
|
* scrartcl, scrrprt, scrbook: KOMA-script_ classes |
|
|
* memoir_: highly configurable class for larger documents |
|
|
|
|
|
Option: |
|
|
documentclass_ |
|
|
|
|
|
.. _KOMA-script: |
|
|
http://mirror.ctan.org/help/Catalogue/entries/koma-script.html |
|
|
.. _memoir: |
|
|
http://mirror.ctan.org/help/Catalogue/entries/memoir.html |
|
|
.. _documentclass: |
|
|
config.html#documentclass |
|
|
|
|
|
|
|
|
document info |
|
|
------------- |
|
|
|
|
|
Content of the `bibliographic fields`__ at the top of a document. |
|
|
By default, docinfo items are typeset as a table. |
|
|
|
|
|
Options: |
|
|
use-latex-docinfo_, use-latex-abstract_ |
|
|
|
|
|
Length: |
|
|
``\DUdocinfowidth``: the width for the `docinfo` table. |
|
|
|
|
|
Default: |
|
|
90 % of text width: ``0.9\textwidth`` |
|
|
|
|
|
Example: |
|
|
set to 70 % of text width:: |
|
|
|
|
|
\newlength{\DUdocinfowidth} |
|
|
\setlength{\DUdocinfowidth}{0.7\textwidth} |
|
|
|
|
|
__ ../ref/rst/restructuredtext.html#bibliographic-fields |
|
|
|
|
|
.. _use-latex-docinfo: |
|
|
config.html#use-latex-docinfo |
|
|
.. _use-latex-abstract: |
|
|
config.html#use-latex-abstract |
|
|
|
|
|
|
|
|
document title |
|
|
-------------- |
|
|
|
|
|
A lone top-level section title is (usually) transformed to the document title |
|
|
(see `section structure`_). |
|
|
|
|
|
The format of the document title is defined by the `document class`_. The |
|
|
"article" document class uses an in-page title and the "report" and "book" |
|
|
classes write a separate title page. See the `TeX FAQ`_ on how to customize |
|
|
the `style of document titles`_. |
|
|
|
|
|
The default title page shows only title and subtitle, date and author |
|
|
are shown in the `document info`_ table. |
|
|
|
|
|
Options: |
|
|
use-latex-docinfo_ |
|
|
|
|
|
``--template=titlepage.tex`` Put docinfo and abstract into the title page. |
|
|
A separate title page is used also with the "abstract" document class. |
|
|
|
|
|
.. _section structure: rst/quickref.html#section-structure |
|
|
.. _TeX FAQ: http://www.tex.ac.uk/faq |
|
|
.. _style of document titles: |
|
|
http://www.tex.ac.uk/cgi-bin/texfaq2html?label=titlsty |
|
|
|
|
|
|
|
|
field lists |
|
|
----------- |
|
|
|
|
|
`Field lists`__ may be used as generic two-column table constructs in |
|
|
documents. |
|
|
|
|
|
Environment: |
|
|
``DUfieldlist`` |
|
|
|
|
|
Default: |
|
|
Indented description list. |
|
|
|
|
|
Example: |
|
|
Use a description list customized with enumitem_:: |
|
|
|
|
|
\usepackage{enumitem} |
|
|
\newenvironment{DUfieldlist}% |
|
|
{\description[font=,style=sameline,leftmargin=8em]} |
|
|
{\enddescription} |
|
|
} |
|
|
|
|
|
The `KOMA-script`_ classes provide a similar environment under the name |
|
|
`labeling`. |
|
|
|
|
|
.. _enumitem: |
|
|
http://mirror.ctan.org/help/Catalogue/entries/enumitem.html |
|
|
|
|
|
__ ../ref/rst/restructuredtext.html#field-lists |
|
|
|
|
|
|
|
|
figure and table captions |
|
|
------------------------- |
|
|
|
|
|
The caption_ package provides many ways to customise the captions in |
|
|
floating environments like figure and table. |
|
|
|
|
|
The chngcntr_ package helps to configure the numbering of figure and table |
|
|
caption numberings. |
|
|
|
|
|
Some document classes (e.g. KOMA-script_) provide additional configuration. |
|
|
Also see the related `LaTeX FAQ entry`__ |
|
|
|
|
|
Example |
|
|
:: |
|
|
|
|
|
\usepackage{caption} |
|
|
\captionsetup{justification=raggedleft,singlelinecheck=false} |
|
|
|
|
|
.. _caption: |
|
|
http://mirror.ctan.org/help/Catalogue/entries/caption.html |
|
|
.. _chngcntr: |
|
|
http://mirror.ctan.org/help/Catalogue/entries/chngcntr.html |
|
|
__ http://www.tex.ac.uk/cgi-bin/texfaq2html?label=running-nos |
|
|
|
|
|
|
|
|
figure placement |
|
|
---------------- |
|
|
|
|
|
Figures_ might be typeset at the place of definition (default) or "float" |
|
|
to a suitable place at the top or bottom of a page. This is implemented |
|
|
using the float_ package. |
|
|
|
|
|
Command: |
|
|
``\floatplacement`` |
|
|
|
|
|
The placement setting is valid from the point of definition until the next |
|
|
``\floatplacement`` command or the end of the document. See float.pdf_ for |
|
|
details. |
|
|
|
|
|
Default: |
|
|
``\floatplacement{figure}{H}`` (here definitely). This corresponds most |
|
|
closely to the source and HTML placement (principle of least surprise). |
|
|
|
|
|
Example 1: |
|
|
In a custom `style sheet`_, set the default to let LaTeX find a suitable |
|
|
place for figure floats:: |
|
|
|
|
|
\usepackage{float} |
|
|
\floatplacement{figure}{htbp} % here, top, bottom, extra-page |
|
|
|
|
|
Example 2: |
|
|
To move all following figures to the top or bottom of the page write in |
|
|
the document source:: |
|
|
|
|
|
.. raw:: latex |
|
|
|
|
|
\floatplacement{figure}{tb} |
|
|
|
|
|
.. _figures: ../ref/rst/directives.html#figure |
|
|
.. _float: |
|
|
http://mirror.ctan.org/help/Catalogue/entries/float.html |
|
|
.. _float.pdf: |
|
|
http://mirror.ctan.org/macros/latex/contrib/float/float.pdf |
|
|
|
|
|
.. _font setup: |
|
|
|
|
|
font |
|
|
---- |
|
|
|
|
|
The selected text font influences the *look*, the *feel*, |
|
|
and the *readability* of the document (cf. |
|
|
http://www.csarven.ca/web-typography). |
|
|
Selecting a suitable font also solves the problem with `bad looking |
|
|
PDF output`_. |
|
|
|
|
|
Font selection is one of the main differences between LaTeX and XeTeX/LuaTeX: |
|
|
|
|
|
LaTeX |
|
|
cannot use the fonts of the operating system directly but needs |
|
|
specially installed fonts with additional supporting files. |
|
|
|
|
|
XeTeX/LuaTeX |
|
|
can use system fonts and provides access to the full feature set of |
|
|
modern OpenType_ fonts. |
|
|
|
|
|
.. _OpenType: http://en.wikipedia.org/wiki/OpenType |
|
|
|
|
|
The default font setup is done in the latex-preamble_: |
|
|
|
|
|
LaTeX |
|
|
`PDF standard fonts`_ (Times, Helvetica, Courier) |
|
|
|
|
|
XeTeX/LuaTeX |
|
|
`Linux Libertine`_, a free, high quality alternative to Times with a |
|
|
wide coverage of glyphs, styles, and OpenType features. |
|
|
|
|
|
Despite its name, Linux Libertine can be used on any operating |
|
|
system that can handle OpenType fonts. |
|
|
|
|
|
Alternative fonts can be selected by |
|
|
|
|
|
LaTeX |
|
|
a) specifying the corresponding LaTeX package(s) as argument to the |
|
|
stylesheet_ option_ or with the ``\usepackage`` LaTeX command. |
|
|
|
|
|
* packages can be combined, |
|
|
* passing options to a package is only possible in a `style sheet`_ |
|
|
or the `LaTeX preamble`_. |
|
|
|
|
|
b) changing the font-default macros ``\rmdefault``, ``\sfdefault`` |
|
|
and/or ``\ttdefault`` in a custom `style sheet`_, the `LaTeX |
|
|
preamble`_ or `raw LaTeX`_. |
|
|
|
|
|
Example 1: |
|
|
Use `Latin Modern`_. `LaTeX code`_:: |
|
|
|
|
|
\usepackage{lmodern} |
|
|
|
|
|
Command line argument:: |
|
|
|
|
|
--stylesheet=lmodern |
|
|
|
|
|
Example 2: |
|
|
The _`Times/Helvetica/Courier` `PDF standard fonts`_ are |
|
|
selected by the LaTeX code [#]_:: |
|
|
|
|
|
\usepackage{mathptmx} % Times for serif and math |
|
|
\usepackage[scaled=.90]{helvet} % downscaled Helvetica for sans serif |
|
|
\usepackage{courier} % Courier for teletype (mono-space) |
|
|
|
|
|
Since Docutils 0.7, this is the default value of the |
|
|
`latex-preamble`_ option. |
|
|
|
|
|
.. [#] When generating PDF-files from LaTeX, the `PDF standard |
|
|
fonts`_ do not need to be embedded in the document. While this |
|
|
results in smaller files, the actually used fonts on screen and in |
|
|
print might differ! (For details see, e.g., the testflow_ package |
|
|
documentation.) |
|
|
|
|
|
|
|
|
Example 3: |
|
|
Use the teletype font from the txfonts_ package. As there is no |
|
|
package for this, we re-define the font macro with the `LaTeX code`_:: |
|
|
|
|
|
\renewcommand{\ttdefault}{txtt} |
|
|
|
|
|
|
|
|
XeTeX/LuaTeX |
|
|
using the macros of the fontspec_ package. Use some font-viewer or |
|
|
-manager (e.g. fontmatrix_) to find out the correct names of the |
|
|
fonts on your system. |
|
|
|
|
|
Example: |
|
|
DejaVu_, very wide coverage, screen optimized. As this font |
|
|
runs wide, add ``DIV=10`` to the `documentoptions`_:: |
|
|
|
|
|
\setmainfont{DejaVu Serif} |
|
|
\setsansfont{DejaVu Sans} |
|
|
\setmonofont[HyphenChar=None]{DejaVu Sans Mono} |
|
|
|
|
|
.. _fontspec: http://mirror.ctan.org/help/Catalogue/entries/fontspec.html |
|
|
.. _fontmatrix: http://fontmatrix.net/ |
|
|
.. _DejaVu: http://dejavu-fonts.org/ |
|
|
.. _documentoptions: config.html#documentoptions |
|
|
|
|
|
choice of suitable fonts |
|
|
```````````````````````` |
|
|
|
|
|
High quality free fonts suitable for use with XeTeX/LuaTeX are, e.g., listed |
|
|
at `Good Libre Fonts`_, `25 Best Free Quality Fonts`_ and the update |
|
|
`19 More Free Quality Fonts`_. |
|
|
|
|
|
The `LaTeX Font Catalogue`_ provides information and examples for a wide |
|
|
range of fonts available for use with LaTeX. Here is just a selection: |
|
|
|
|
|
a) The `Latin Modern`_ (LM) fonts are extended outline versions of the |
|
|
standard TeX font Computer Modern (CM). |
|
|
|
|
|
+1 simple invocation: ``--stylesheet=lmodern`` |
|
|
|
|
|
+1 keeps the traditional TeX "look and feel": |
|
|
|
|
|
+1 generally accepted as high quality CM replacement, |
|
|
+1 comprehensive math support, |
|
|
+1 including optical sizes, |
|
|
+1 compatible with extensions made to match CM, |
|
|
-1 modern types are hard to read at low (screen) resolutions. |
|
|
|
|
|
-1 not part of a minimal standard TeX installation |
|
|
|
|
|
b) CM-Super_ is another outline CM replacement. |
|
|
|
|
|
+1 simple invocation: modern LaTeX distributions use CM-Super |
|
|
automatically instead of CM if it is installed. |
|
|
|
|
|
-1 said to be of inferior quality compared to LM. |
|
|
|
|
|
-1 not part of a minimal standard TeX installation, |
|
|
bigger download size than Latin Modern (64 MB). |
|
|
|
|
|
c) `Bera`_ (Bitstream Vera) |
|
|
|
|
|
+1 simple invocation: ``--stylesheet=bera`` |
|
|
|
|
|
+1 optimized for on-screen viewing with goot hinting |
|
|
|
|
|
-1 not part of a minimal standard TeX installation |
|
|
|
|
|
d) PSNFSS_ Postscript fonts |
|
|
|
|
|
+1 part of every standard TeX installation |
|
|
|
|
|
+1 smaller PDF/Postscript document size if standard fonts are not |
|
|
embedded |
|
|
|
|
|
-1 restricted set of glyphs in the free versions [#]_ |
|
|
|
|
|
-1 different fonts for roman, sans-serif and typewriter fonts. |
|
|
|
|
|
-1 invocation somewhat more complex, as several packages are |
|
|
required for a complete font set, sometimes including package |
|
|
options. |
|
|
|
|
|
Roman (serif) PSNFSS fonts: |
|
|
|
|
|
Bookman |
|
|
good legibility but very wide. |
|
|
|
|
|
Charter |
|
|
bread-and-butter type optimized for printing on low-resolution |
|
|
printers |
|
|
|
|
|
New Century Schoolbook |
|
|
good legibility but very wide. |
|
|
|
|
|
Palatino |
|
|
+1 recommended by font experts |
|
|
+1 good LaTeX support including matching math fonts, small caps, |
|
|
old-style figures |
|
|
-1 bad rendering in xpdf viewer (auto-hinting leads to different |
|
|
x-hight for different characters at some magnifications) |
|
|
(this is fixed in recent versions). |
|
|
|
|
|
Times |
|
|
+1 the serif `PDF Standard Font`_, |
|
|
-1 overused and quite narrow (devised for multi-column layouts). |
|
|
|
|
|
Utopia |
|
|
recommended by font experts |
|
|
|
|
|
|
|
|
.. table:: Font packages for standard Postscript fonts |
|
|
(cf. `Using common Postscript fonts with LaTeX`_) |
|
|
|
|
|
========= ============ ============= ============= ========= |
|
|
Package Roman Sans Serif Typewriter Math |
|
|
========= ============ ============= ============= ========= |
|
|
(none) CM Roman CM Sans Serif CM Typewriter CM Math |
|
|
|
|
|
mathpazo Palatino Palatino |
|
|
|
|
|
mathptmx Times Times |
|
|
|
|
|
helvet Helvetica |
|
|
|
|
|
avant Avant Garde |
|
|
|
|
|
courier Courier |
|
|
|
|
|
chancery Zapf |
|
|
Chancery |
|
|
|
|
|
bookman Bookman Avant Garde Courier |
|
|
|
|
|
newcent New Century Avant Garde Courier |
|
|
Schoolbook |
|
|
|
|
|
charter Charter |
|
|
|
|
|
utopia Utopia |
|
|
|
|
|
fourier Utopia Fourier |
|
|
========= ============ ============= ============= ========= |
|
|
|
|
|
.. [#] Extended versions of the standard Postscript fonts including |
|
|
accented chars, as well as real small-caps |
|
|
and old-style numbers are available with the `TeX Gyre`_ bundle |
|
|
which is part of, e.g., `TeX Live`_. |
|
|
|
|
|
|
|
|
.. _LaTeX Font Catalogue: |
|
|
http://www.tug.dk/FontCatalogue/ |
|
|
.. _Latin Modern: |
|
|
http://mirror.ctan.org/help/Catalogue/entries/lm.html |
|
|
.. _CM-Super: |
|
|
http://mirror.ctan.org/help/Catalogue/entries/cm-super.html |
|
|
.. _bera: |
|
|
http://mirror.ctan.org/help/Catalogue/entries/bera.html |
|
|
.. _TeX Gyre: http://www.gust.org.pl/projects/e-foundry/tex-gyre |
|
|
.. _PSNFSS: |
|
|
http://mirror.ctan.org/help/Catalogue/entries/psnfss.html |
|
|
.. _Using common PostScript fonts with LaTeX: |
|
|
http://mirror.ctan.org/macros/latex/required/psnfss/psnfss2e.pdf |
|
|
.. _TeX Live: http://tug.org/texlive/ |
|
|
.. _txfonts: |
|
|
http://mirror.ctan.org/help/Catalogue/entries/txfonts.html |
|
|
.. _PDF Standard Font: |
|
|
http://en.wikipedia.org/wiki/PDF#Standard_Type_1_Fonts |
|
|
.. _testflow: |
|
|
http://www.tex.ac.uk/tex-archive/help/Catalogue/entries/testflow.html |
|
|
.. _Good Libre Fonts: |
|
|
http://typophile.com/node/18207 |
|
|
.. _25 Best Free Quality Fonts: |
|
|
http://www.alvit.de/blog/article/20-best-license-free-official-fonts |
|
|
.. _19 More Free Quality Fonts: |
|
|
http://www.smashingmagazine.com/2006/10/11/17-more-free-quality-fonts/ |
|
|
|
|
|
|
|
|
font encoding |
|
|
------------- |
|
|
|
|
|
LaTeX font encodings are described in detail in the encguide_ which is |
|
|
part of the LaTeX base documentation. |
|
|
|
|
|
Option: |
|
|
font-encoding_ |
|
|
|
|
|
Default: |
|
|
"T1" |
|
|
|
|
|
Example 1: |
|
|
Use the (obsolete) LaTeX default encoding "OT1":: |
|
|
|
|
|
--font-encoding=OT1 |
|
|
|
|
|
or (without loading the fontenc_ package):: |
|
|
|
|
|
--font-encoding="" |
|
|
|
|
|
This will improve the look on screen with the default Computer Modern |
|
|
fonts at the expense of problems with `search and text extraction`_ |
|
|
The recommended way is to select a T1-encoded "Type 1" (vector) |
|
|
font, for example `Latin Modern`_ |
|
|
|
|
|
Example 2: |
|
|
Support for characters in the Unicode blocks Latin, Latin-1 Supplement, |
|
|
and Greek together with a T1-encoded "Type 1" (vector) font, for example |
|
|
`Latin Modern`_:: |
|
|
|
|
|
--font-encoding=LGR,T1 --stylesheet=lmodern |
|
|
|
|
|
.. _encguide: |
|
|
http://mirror.ctan.org/macros/latex/doc/encguide.pdf |
|
|
.. _font-encoding: |
|
|
config.html#font-encoding |
|
|
.. _fontenc: |
|
|
http://mirror.ctan.org/help/Catalogue/entries/fontenc.html |
|
|
|
|
|
|
|
|
font size |
|
|
--------- |
|
|
|
|
|
Add font size in points to the document options, e.g. |
|
|
``--documentoptions=12``, use e.g. the document classes provided by |
|
|
extsizes_ for values other than [10,11,12]. |
|
|
|
|
|
.. _extsizes: |
|
|
http://mirror.ctan.org/help/Catalogue/entries/extsizes.html |
|
|
|
|
|
|
|
|
footnotes |
|
|
--------- |
|
|
|
|
|
By default, footnotes are set with Docutils-specific wrappers around |
|
|
the standard ``\footnotemark`` and ``\footnotetext`` commands. You |
|
|
can configure the footnote layout similar to standard LaTeX footnotes |
|
|
in a custom `style sheet`_ or the `LaTeX preamble`_. |
|
|
|
|
|
Further configuration is possible by alternative definitions of |
|
|
``\DUfootnotemark`` and ``\DUfootnotetext`` |
|
|
|
|
|
Example 1: |
|
|
Set footnote text with a hanging indent. |
|
|
|
|
|
* This is the default with KOMA-script_ classes, e.g:: |
|
|
|
|
|
--documentclass=scrartcl |
|
|
|
|
|
(for further configuration, see the `KOMA-script Guide`_), |
|
|
|
|
|
* with package footmisc_:: |
|
|
|
|
|
\usepackage[hang]{footmisc} |
|
|
\setlength{\footnotemargin}{0em} |
|
|
|
|
|
(play with the ``\footnotemargin`` setting), |
|
|
|
|
|
* redefine ``\DUfootnotetext`` inserting `\hangindent`:: |
|
|
|
|
|
\newcommand{\DUfootnotetext}[4]{% |
|
|
\begingroup% |
|
|
\renewcommand{\thefootnote}{% |
|
|
\protect\raisebox{1em}{\protect\hypertarget{#1}{}}% |
|
|
\protect\hyperlink{#2}{#3}}% |
|
|
\footnotetext{\hangindent=2em #4}% |
|
|
\endgroup% |
|
|
} |
|
|
|
|
|
(adapt the ``\hangindent`` value). |
|
|
|
|
|
Example 2: |
|
|
Footnote marks in normal font size, not superscript:: |
|
|
|
|
|
\usepackage{scrextend} % not required with KOMA-script document classes |
|
|
\deffootnote{1em}{1em}{\thefootnotemark\ } |
|
|
|
|
|
(See the `KOMA-script Guide`_ for details and other options.) |
|
|
|
|
|
Example 3: |
|
|
Place the footnote text where it appears in the source document (instead |
|
|
of at the page bottom). This can be used to get the effect of endnotes |
|
|
(needs the hanging_ package):: |
|
|
|
|
|
\usepackage{hanging} |
|
|
\newcommand{\DUfootnotetext}[4]{% |
|
|
\par\noindent\raisebox{1em}{\hypertarget{#1}{}}% |
|
|
\hyperlink{#2}{#3}% |
|
|
\hangpara{\parindent}{1}#4% |
|
|
} |
|
|
|
|
|
.. _footmisc: |
|
|
http://mirror.ctan.org/help/Catalogue/entries/footmisc.html |
|
|
.. _hanging: |
|
|
http://mirror.ctan.org/help/Catalogue/entries/hanging.html |
|
|
|
|
|
|
|
|
hyphenation |
|
|
----------- |
|
|
|
|
|
The amount of hyphenation is influenced by ``\hyphenpenalty``, setting it to |
|
|
10000 almost prevents hyphenation. As this produces lines with more space |
|
|
between words one should increase Latex's ``\tolerance`` for this. |
|
|
|
|
|
Example: |
|
|
:: |
|
|
|
|
|
\hyphenpenalty=5000 |
|
|
\tolerance=1000 |
|
|
|
|
|
|
|
|
hyperlinks |
|
|
---------- |
|
|
|
|
|
Options: |
|
|
hyperlink-color_, hyperref-options_ |
|
|
|
|
|
Hyperlinks are realized using the hyperref_ package. As it re-defines many |
|
|
standard LaTeX macros, this package is loaded last, *after* the style |
|
|
sheets. |
|
|
|
|
|
However, you can load hyperref before a package that requires its |
|
|
presence in a `style sheet`_ or the `LaTeX preamble`_ (see example |
|
|
below). This will ignore options set with hyperlink-color_ and |
|
|
hyperref-options_. |
|
|
|
|
|
URLs are typeset with the "url" package (loaded implicitely by "hyperref"). |
|
|
The font of URLs can be defined with the ``\urlstyle`` command. Valid |
|
|
arguments are |
|
|
|
|
|
:same: normal text font, Docutils default, |
|
|
:tt: teletype (monospaced), LaTeX default, |
|
|
:rm: roman, |
|
|
:sf: sans serif |
|
|
|
|
|
Example: |
|
|
Custom loading of the hyperref package also switches to |
|
|
the LaTeX default (monospaced fonts for URLs). Reset to use the text |
|
|
font:: |
|
|
|
|
|
\usepackage[unicode,colorlinks=true,linkcolor=green]{hyperref} |
|
|
\urlstyle{same} |
|
|
|
|
|
See also `non-breaking hyperlinks`_. |
|
|
|
|
|
.. _hyperlink-color: |
|
|
config.html#hyperlink-color |
|
|
.. _hyperref-options: |
|
|
config.html#hyperref-options |
|
|
|
|
|
|
|
|
disable hyperlinks |
|
|
`````````````````` |
|
|
|
|
|
To suppress the hyper-linking completely (e.g. for printing or to |
|
|
avoid clashes with other packages), set hyperref-options_ to "draft" |
|
|
or load the "nohyperref" package that comes with the "hyperref" |
|
|
bundle. |
|
|
|
|
|
Option: |
|
|
``--hyperref-options=draft`` |
|
|
|
|
|
`LaTeX code`_:: |
|
|
|
|
|
\usepackage{nohyperref,url} |
|
|
\urlstyle{same} |
|
|
|
|
|
.. _hyperref: |
|
|
http://mirror.ctan.org/help/Catalogue/entries/hyperref.html |
|
|
|
|
|
line blocks |
|
|
----------- |
|
|
|
|
|
In `line blocks`__, newlines and leading whitespace are respected. |
|
|
|
|
|
Environment: |
|
|
``DUlineblock``: special list environment for line blocks |
|
|
|
|
|
Length: |
|
|
``\DUlineblockindent``: indentation of indented lineblock parts. |
|
|
|
|
|
Default: |
|
|
2.5 times the font hight: ``2.5em`` |
|
|
|
|
|
Example: |
|
|
set to the paragraph indentation:: |
|
|
|
|
|
\newlength{\DUlineblockindent} |
|
|
\setlength{\DUlineblockindent}{\parindent} |
|
|
|
|
|
__ ../ref/rst/restructuredtext.html#line-blocks |
|
|
|
|
|
|
|
|
line spacing |
|
|
------------ |
|
|
|
|
|
Commands: |
|
|
``\linespread``: for small adjustments |
|
|
|
|
|
``\singlespacing``, ``\onehalfspacing``, and ``\doublespacing``: from |
|
|
package `setspace` |
|
|
|
|
|
Example 1: |
|
|
Get document wide double spacing:: |
|
|
|
|
|
\usepackage{setspace} |
|
|
\doublespacing |
|
|
|
|
|
Example 2: |
|
|
Increase line spacing by five percent for better readability:: |
|
|
|
|
|
\linespread{1.05} |
|
|
|
|
|
|
|
|
literal blocks |
|
|
-------------- |
|
|
|
|
|
No markup processing is done within a `literal block`__. It is left as-is, |
|
|
and is typically rendered in a monospaced typeface |
|
|
|
|
|
Option: |
|
|
literal-block-env_ |
|
|
|
|
|
Example: |
|
|
|
|
|
``--literal-block-env=lstlisting`` |
|
|
|
|
|
The ``lstlisting`` environment is highly configurable (as documented in |
|
|
listings.pdf_), for instance :: |
|
|
|
|
|
\renewcommand{\ttdefault}{txtt} |
|
|
\lstset{language=Python, morekeywords=[1]{yield}} |
|
|
\lstloadlanguages{Python} |
|
|
\lstset{ |
|
|
basicstyle=\ttfamily, |
|
|
keywordstyle=\bfseries, |
|
|
commentstyle=\rmfamily\itshape, |
|
|
stringstyle=\slshape, |
|
|
} |
|
|
\lstset{showstringspaces=false} |
|
|
\lstset{columns=fullflexible, |
|
|
basewidth={0.5em,0.4em}} |
|
|
|
|
|
|
|
|
The indentation of literal blocks can be reset with :: |
|
|
|
|
|
\lstset{resetmargins=true} |
|
|
|
|
|
and/or configured with e. g.:: |
|
|
|
|
|
\lstset{xleftmargin=-2em} |
|
|
|
|
|
__ ../ref/rst/restructuredtext.html#literal-blocks |
|
|
.. _literal-block-env: |
|
|
config.html#literal-block-env |
|
|
.. _listings.pdf: |
|
|
http://mirror.ctan.org/macros/latex/contrib/listings/listings.pdf |
|
|
|
|
|
|
|
|
lists |
|
|
----- |
|
|
|
|
|
Remove extra vertical whitespace between items of bullet lists and |
|
|
enumerated lists. |
|
|
|
|
|
Example: |
|
|
Pass the class argument "compact" to the list:: |
|
|
|
|
|
.. class:: compact |
|
|
|
|
|
* first item |
|
|
* second item |
|
|
|
|
|
The following lines for the `LaTeX preamble`_ use the enumitem_ package to |
|
|
remove spacing from all lists with class argument "compact":: |
|
|
|
|
|
\usepackage{enumitem} |
|
|
\newcommand*{\DUCLASScompact}{\setlist{noitemsep}} |
|
|
|
|
|
|
|
|
list of figures/tables |
|
|
---------------------- |
|
|
|
|
|
Docutils does not support lists of figures or tables. |
|
|
|
|
|
However, with LaTeX, they can be generated using `raw LaTeX`_ in the |
|
|
document source. |
|
|
|
|
|
Commands: |
|
|
``\listoffigures``: a list of figures |
|
|
|
|
|
``\listoftables``: a list of tables |
|
|
|
|
|
Example: |
|
|
:: |
|
|
|
|
|
.. raw:: latex |
|
|
|
|
|
\listoffigures |
|
|
|
|
|
|
|
|
option list |
|
|
----------- |
|
|
|
|
|
`Option lists`__ are two-column lists of command-line options and |
|
|
descriptions, documenting a program's options. |
|
|
|
|
|
Environment: |
|
|
``DUoptionlist``: environment for option lists, |
|
|
|
|
|
Command: |
|
|
``\DUoptionlistlabel``: set appearance of the options |
|
|
|
|
|
Example: |
|
|
set command options with a bold monospace font:: |
|
|
|
|
|
\newcommand{\DUoptionlistlabel}{\texttt{\textbf{#1}} \hfill} |
|
|
|
|
|
__ ../ref/rst/restructuredtext.html#option-lists |
|
|
|
|
|
|
|
|
page breaks |
|
|
----------- |
|
|
|
|
|
* Page breaks before top-level sections are the default with a |
|
|
documentclass that provides "chapters", e.g. "book", "memoir" or |
|
|
"scrbook". |
|
|
|
|
|
* Redefining the \section or \section* command in a |
|
|
style sheet is possible too. |
|
|
|
|
|
* `Raw LaTeX`_ or a `custom role`_ can be used. |
|
|
|
|
|
* The transition element can be re-defined to produce a page break, |
|
|
|
|
|
Commands |
|
|
``\newpage``: hard pagebreak at exactly this position |
|
|
|
|
|
``\pagebreak[2]``: recommended page break after line end (precedence 1...4) |
|
|
|
|
|
Example: |
|
|
Define the transition command as page break with the `LaTeX code`_:: |
|
|
|
|
|
\newcommand*{\DUtransition}{\pagebreak[4]} |
|
|
|
|
|
(use ``\renewcommand`` with `raw LaTeX`_). |
|
|
|
|
|
page layout |
|
|
----------- |
|
|
|
|
|
By default, paper size and margin settings are determined by the document |
|
|
class. |
|
|
|
|
|
The following packages help to configure the page layout: |
|
|
|
|
|
a) The `typearea`_ package (part of the `KOMA-script`_ bundle) calculates a |
|
|
*good* page layout (based on rules and recommendations of typography |
|
|
experts). |
|
|
|
|
|
See the `KOMA-Script Guide`_ for details on what is a *good* layout and |
|
|
how this is achieved. |
|
|
|
|
|
b) The `geometry`_ package is recommended if you have to follow guidelines |
|
|
with fixed values for the margins. |
|
|
For details see the `geometry manual`_. |
|
|
|
|
|
Example 1: |
|
|
Let `typearea` determine the type area with ``DIV=calc`` in the |
|
|
documentoptions:: |
|
|
|
|
|
--documentoptions='a4paper,DIV=calc' |
|
|
|
|
|
The ``DIV`` option can also be specified, like ``DIV=10``. It defines how |
|
|
"crowded" a page will be: larger values mean larger text area (at the |
|
|
expense of readability). |
|
|
|
|
|
Example 2: |
|
|
`LaTeX code`_ to set margins with the geometry_ package:: |
|
|
|
|
|
\usepackage{geometry} |
|
|
\geometry{hmargin={3cm,0.8in},height=8in} |
|
|
\geometry{height=10in}. |
|
|
|
|
|
.. _typearea: |
|
|
http://mirror.ctan.org/help/Catalogue/entries/typearea.html |
|
|
.. _KOMA-Script Guide: |
|
|
http://mirror.ctan.org/macros/latex/contrib/koma-script/scrguien.pdf |
|
|
.. _geometry: |
|
|
http://mirror.ctan.org/help/Catalogue/entries/geometry.html |
|
|
.. _geometry manual: |
|
|
http://mirror.ctan.org/macros/latex/contrib/geometry/geometry.pdf |
|
|
|
|
|
|
|
|
page headers and footers |
|
|
------------------------ |
|
|
|
|
|
With the fancyhdr_ package or the `KOMA-script`_ classes, you can define |
|
|
custom page head- and foot-lines. |
|
|
|
|
|
The `"header" and "footer" directives`_ save their content in the macros |
|
|
``\DUheader`` rsp. ``\DUfooter``. The macros can be used in LaTeX code and |
|
|
will be replaced by LaTeX with the content of the directives. |
|
|
|
|
|
Example: |
|
|
`LaTeX code`_ to place left-aligned "header" and "footer" on every |
|
|
page with fancyhdr_:: |
|
|
|
|
|
\usepackage{fancyhdr} |
|
|
\fancyhead[L]{\DUheader} |
|
|
\fancyfoot{} % reset |
|
|
\fancyfoot[L]{\DUfooter} |
|
|
\pagestyle{fancy} |
|
|
|
|
|
|
|
|
.. _fancyhdr: http://www.ctan.org/pkg/fancyhdr |
|
|
.. _"header" and "footer" directives: ../ref/rst/directives.html#header |
|
|
|
|
|
|
|
|
page numbering |
|
|
-------------- |
|
|
|
|
|
Example: |
|
|
Number pages by chapter (using the chappg_ package):: |
|
|
|
|
|
\usepackage{chappg} |
|
|
|
|
|
See the `chappg documentation`_ for details. |
|
|
|
|
|
.. _chappg: |
|
|
http://mirror.ctan.org/help/Catalogue/entries/chappg.html |
|
|
.. _chappg documentation: |
|
|
http://mirror.ctan.org/macros/latex/contrib/chappg/chappg.pdf |
|
|
|
|
|
|
|
|
paper size |
|
|
---------- |
|
|
|
|
|
Paper geometry can be changed using ``--documentoptions`` or with the |
|
|
`geometry`_ package. |
|
|
|
|
|
`LaTeX code`_:: |
|
|
|
|
|
\usepackage{geometry} |
|
|
\geometry{OPTIONLIST} |
|
|
|
|
|
Default: |
|
|
a4paper |
|
|
|
|
|
Some possibilities: |
|
|
|
|
|
* a4paper, b3paper, letterpaper, executivepaper, legalpaper |
|
|
* landscape, portrait, twoside. |
|
|
|
|
|
Example: |
|
|
Choose A5 pager in landscape orientation with command line argument:: |
|
|
|
|
|
--documentoptions=a5paper,landscape |
|
|
|
|
|
The same with LaTeX commands in the `style sheet`_:: |
|
|
|
|
|
\usepackage{geometry} |
|
|
\geometry{a5paper,landscape} |
|
|
|
|
|
For details see the `geometry manual`_. |
|
|
|
|
|
paragraph indent |
|
|
---------------- |
|
|
|
|
|
Default (in most document classes): |
|
|
Indent the first line in a paragraph unless it is the first line of a |
|
|
chapter, section, subsection, or subsubsection. |
|
|
|
|
|
Example 1: |
|
|
To set paragraph indentation to zero but add a vertical space between |
|
|
load the `parskip` package with the command line argument:: |
|
|
|
|
|
--stylesheet=parskip |
|
|
|
|
|
or in a custom `style sheet`_ with:: |
|
|
|
|
|
\usepackage{parskip} |
|
|
|
|
|
Example 2: |
|
|
To suppress the indentation of a specific paragraph, you may give it the |
|
|
class "noindent" with, e.g. :: |
|
|
|
|
|
.. class:: noindent |
|
|
|
|
|
This paragraph should not be indented. |
|
|
|
|
|
and define the `custom role`_ command:: |
|
|
|
|
|
\newcommand{\DUrolenoindent}[1]{\noindent #1} |
|
|
|
|
|
rubric |
|
|
------ |
|
|
|
|
|
A rubric__ is like an informal heading that doesn't correspond to the |
|
|
document's structure. |
|
|
|
|
|
Command: |
|
|
``\DUrubric`` |
|
|
|
|
|
Default: |
|
|
subsubsection style, italic, centred |
|
|
|
|
|
Example: |
|
|
set flushleft and red:: |
|
|
|
|
|
\newcommand*{\DUrubric}[1]{% |
|
|
\subsubsection*{{\color{red}#1}\hfill}} |
|
|
|
|
|
__ ../ref/rst/directives.html#rubric |
|
|
|
|
|
|
|
|
section numbering |
|
|
----------------- |
|
|
|
|
|
Sections are numbered if there is a `sectnum directive`_ in the document. |
|
|
|
|
|
Option: sectnum_xform_ |
|
|
``--section-numbering``, ``--no-section-numbering`` |
|
|
|
|
|
If sectnum_xform_ is False, section numbers are generated by LaTeX. In this |
|
|
case the "prefix" and "suffix" arguments of the `sectnum directive`_ are |
|
|
ignored. The section number style is determined by the `document class`_ |
|
|
and can be configured in a LaTeX `style sheet`_, e.g.:: |
|
|
|
|
|
\setcounter{secnumdepth}{5} |
|
|
|
|
|
.. note:: The LaTeX name is 'secnumdepth' (whithout 't'). |
|
|
|
|
|
.. _sectnum directive: ../ref/rst/directives.html#sectnum |
|
|
.. _sectnum_xform: config.html#sectnum-xform |
|
|
|
|
|
|
|
|
sidebar |
|
|
------- |
|
|
|
|
|
Sidebars__ are like miniature, parallel documents that occur inside other |
|
|
documents, providing related or reference material. They can be likened to |
|
|
super-footnotes; their content is outside of the flow of the document's main |
|
|
text. |
|
|
|
|
|
Command: |
|
|
``DUsidebar`` |
|
|
|
|
|
Default: |
|
|
Box with grey background. |
|
|
|
|
|
Example: |
|
|
Use margin notes:: |
|
|
|
|
|
\newcommand{\DUsidebar}[1]{\marginpar{\flushleft #1}} |
|
|
|
|
|
* Make sure the margin is wide enough to hold the note. |
|
|
* This fails with some constructs inside the `side bar` and where |
|
|
\marginpar cannot be used, e.g., inside floats, footnotes, or in frames |
|
|
made with the framed package (see marginnote_). |
|
|
|
|
|
__ http://docutils.sf.net/docutils/docs/ref/rst/directives.html#sidebar |
|
|
|
|
|
size of a pixel |
|
|
--------------- |
|
|
|
|
|
The length unit ``px`` is a "relative length" whose value depends on the |
|
|
*resolution* of the output device (usually specified in *dots per inch* |
|
|
(DPI). However, when producing a PDF, the resolution of the output device |
|
|
(printer, screen (for PDF-viewer)) is generally not known. |
|
|
|
|
|
With pdftex, the "resolution" is a configuration setting. |
|
|
|
|
|
Default: |
|
|
72 DPI, i.e. 1 px = 1/72 in. |
|
|
|
|
|
Example: |
|
|
Set a resolution of 96 DPI with the `LaTeX code`_:: |
|
|
|
|
|
\pdfpxdimen=1in % 1 DPI |
|
|
\divide\pdfpxdimen by 96 % 96 DPI |
|
|
|
|
|
table |
|
|
----- |
|
|
|
|
|
A pre-configured table style can be globally selected via the table-style_ |
|
|
setting or set for individual tables via a `class directive`_ or the class |
|
|
option of the `table directive`_. |
|
|
|
|
|
.. _table-style: config.html#table-style-latex2e-writer |
|
|
.. _table directive: ../ref/rst/directives.html#table |
|
|
|
|
|
topic element |
|
|
------------- |
|
|
|
|
|
A topic_ is like a block quote with a title, or a self-contained section |
|
|
with no subsections. Topics and rubrics can be used at places where a |
|
|
`section title`_ is not allowed (e.g. inside a directive). |
|
|
|
|
|
Example: |
|
|
Use a standard paragraph for a topic:: |
|
|
|
|
|
\newcommand{\DUCLASStopic}{% |
|
|
\renewenvironment{quote}{}{}% |
|
|
} |
|
|
|
|
|
.. _topic: ../ref/rst/directives.html#topic |
|
|
.. _section title: ../ref/rst/restructuredtext.html#sections |
|
|
|
|
|
|
|
|
titles |
|
|
------ |
|
|
|
|
|
The titles of admonitions_, sidebar_, and `topic element`_ are defined with |
|
|
the ``\DUtitle`` command that also takes a "class" argument. |
|
|
|
|
|
Example 1: |
|
|
a centered and somewhat larger title for topcis:: |
|
|
|
|
|
\newcommand*{\DUtitletopic}[1]{\subsection*{\centering #1} |
|
|
|
|
|
Example 2: |
|
|
a right-pointing hand as title for the "attention" directive:: |
|
|
|
|
|
\usepackage{pifont} |
|
|
\newcommand{\DUtitleattention}[1]{\ding{43}} |
|
|
|
|
|
The title argument is "swallowed" by the command. |
|
|
To have both, hand and title use:: |
|
|
|
|
|
\usepackage{pifont} |
|
|
\newcommand{\DUtitleattention}[1]{\ding{43} #1} |
|
|
|
|
|
|
|
|
table of contents |
|
|
----------------- |
|
|
|
|
|
A `contents directive`_ is replaced by a table of contents (ToC). |
|
|
|
|
|
Option: use-latex-toc_ |
|
|
``--use-latex-toc``, ``--use-docutils-toc`` |
|
|
|
|
|
With use-latex-toc (default since release 0.6): |
|
|
|
|
|
* The ToC is generated by LaTeX (via the ``\tableofcontents`` command). |
|
|
|
|
|
The layout depends on the choosen document class and can be configured in |
|
|
a custom `style sheet`_ (see e.g. the `KOMA-Script Guide`_ for the |
|
|
`KOMA-script`_ classes). |
|
|
|
|
|
* The depth of the ToC and PDF-bookmarks can be configured |
|
|
|
|
|
+ with the "depth" argument of the `contents directive`_, or |
|
|
|
|
|
+ in a style sheet with e.g. ``\setcounter{tocdepth}{5}``. |
|
|
|
|
|
* Local ToCs are done with the minitoc_ package. See the `minitoc |
|
|
documentation`_ for the numerous configuration options. |
|
|
|
|
|
.. note:: |
|
|
Minitoc supports local ToCs only at "part" and top section level |
|
|
("chapter" or "section"). Local `contents` directives at lower levels |
|
|
are ignored (a warning is issued). |
|
|
|
|
|
This is an intended feature of the minitoc_ package. If you really |
|
|
require local ToCs at lower level, turn off the use-latex-toc_ option. |
|
|
|
|
|
.. _use-latex-toc: config.html#use-latex-toc |
|
|
.. _contents directive: ../ref/rst/directives.html#contents |
|
|
.. _minitoc: |
|
|
http://mirror.ctan.org/help/Catalogue/entries/minitoc.html |
|
|
.. _minitoc documentation: |
|
|
http://mirror.ctan.org/macros/latex/contrib/minitoc/minitoc.pdf |
|
|
|
|
|
|
|
|
title reference role |
|
|
-------------------- |
|
|
|
|
|
`Title reference`_ is the default `default role`_ for `interpreted text`_. |
|
|
|
|
|
Command: |
|
|
``\DUroletitlereference`` |
|
|
|
|
|
Default: |
|
|
use slanted font (``\textsl``) |
|
|
|
|
|
Example: |
|
|
set title references with a bold monospace font:: |
|
|
|
|
|
\newcommand{\DUroletitlereference}[1]{\texttt{\textbf{#1}}} |
|
|
|
|
|
.. _title reference: |
|
|
../ref/rst/roles.html#title-reference |
|
|
.. _default role: |
|
|
../ref/rst/directives.html#setting-the-default-interpreted-text-role |
|
|
.. _interpreted text: |
|
|
../ref/rst/restructuredtext.html#interpreted-text |
|
|
|
|
|
|
|
|
text encoding |
|
|
------------- |
|
|
|
|
|
The encoding of the LaTeX source file is Docutils' *output* encoding |
|
|
but LaTeX' *input* encoding. |
|
|
|
|
|
Option: output-encoding_ |
|
|
``--output-encoding=OUTPUT-ENCODING`` |
|
|
|
|
|
Default: |
|
|
"utf8" |
|
|
|
|
|
Example: |
|
|
Encode the LaTeX source file with the ISO `latin-1` (west european) |
|
|
8-bit encoding (the default in Docutils versions up to 0.6.):: |
|
|
|
|
|
--output-encoding=latin-1 |
|
|
|
|
|
Note: |
|
|
LaTeX comes with two options for UTF-8 support, |
|
|
|
|
|
:utf8: by the standard `inputenc`_ package with only limited coverage |
|
|
(mainly accented characters). |
|
|
|
|
|
:utf8x: supported by the `ucs`_ package covers a wider range of Unicode |
|
|
characters than does "utf8". It is, however, a non-standard |
|
|
extension and no longer developed. |
|
|
|
|
|
Currently (in version 0.6), "utf8" is used if the output-encoding is |
|
|
any of "utf_8", "U8", "UTF", or "utf8". |
|
|
|
|
|
.. with utf8x: |
|
|
If LaTeX issues a Warning about unloaded/unknown characters adding :: |
|
|
|
|
|
\PreloadUnicodePage{n} |
|
|
|
|
|
(where *n* is the Unicode page-number) to the style sheet might help. |
|
|
|
|
|
.. _LaTeX Unicode: http://www.unruh.de/DniQ/latex/unicode/ |
|
|
.. _output-encoding: config.html#output-encoding |
|
|
.. _inputenc: |
|
|
http://mirror.ctan.org/help/Catalogue/entries/inputenc.html |
|
|
.. _ucs: |
|
|
http://mirror.ctan.org/help/Catalogue/entries/unicode.html |
|
|
|
|
|
|
|
|
transition element |
|
|
------------------ |
|
|
|
|
|
Transitions__ are commonly seen in novels and short fiction, as a gap |
|
|
spanning one or more lines, marking text divisions or signaling changes in |
|
|
subject, time, point of view, or emphasis. |
|
|
|
|
|
Command: |
|
|
``\DUtransition`` |
|
|
|
|
|
Default: |
|
|
A horizontal line, 1/3 of text width |
|
|
|
|
|
Example 1: |
|
|
Use three stars:: |
|
|
|
|
|
\newcommand*{\DUtransition}{\centering{}*\quad*\quad*} |
|
|
|
|
|
Alternatively use the more elaborated version in `transition-stars.sty`_. |
|
|
|
|
|
Example 2: |
|
|
If paragraphs are separated by indentation, you can simply use a vertical |
|
|
space:: |
|
|
|
|
|
\newcommand*{\DUtransition}{\vspace{2ex}} |
|
|
|
|
|
__ http://docutils.sf.net/docutils/docs/ref/rst/restructuredtext.html#transitions |
|
|
|
|
|
.. _transition-stars.sty: ../../../sandbox/stylesheets/transition-stars.sty |
|
|
|
|
|
|
|
|
Changes |
|
|
======= |
|
|
|
|
|
* The Docutils HISTORY_ lists all changes during the history of docutils. |
|
|
Important changes are summarized in the RELEASE-NOTES_. |
|
|
|
|
|
* docutils-05-compat.sty_ is a `style sheet`_ that provides best possible |
|
|
backwards compatibility with release 0.5. |
|
|
|
|
|
.. _HISTORY: ../../HISTORY.html |
|
|
.. _RELEASE-NOTES: ../../RELEASE-NOTES.html |
|
|
.. _docutils-05-compat: docutils-05-compat.sty.html |
|
|
.. _docutils-05-compat.sty: |
|
|
../../docutils/writers/latex2e/docutils-05-compat.sty |
|
|
|
|
|
|
|
|
Problems |
|
|
======== |
|
|
|
|
|
Troubleshooting |
|
|
--------------- |
|
|
|
|
|
Bad looking PDF output |
|
|
`````````````````````` |
|
|
|
|
|
What I am looking for when I try Docutils is if the PDF files I can get |
|
|
are of high quality. Unfortunaltely that never is the case. |
|
|
|
|
|
So am I just stupid or is there a way to get really high quality pdf from |
|
|
Docutils? |
|
|
|
|
|
Make sure the default font is not a bitmap font. |
|
|
|
|
|
There is `Latin Modern`_ if you like the look of the standard font on paper, |
|
|
but want nice pdf. Or select something else like Times, Palatino, ... via |
|
|
configuration `options/settings`_. See font_ and font-encoding_. |
|
|
|
|
|
|
|
|
footnote mark and text at different pages |
|
|
````````````````````````````````````````` |
|
|
|
|
|
Docutils stores the footnote text in a separate node, at the position where |
|
|
it is specified in the input document. With the default settings, the |
|
|
footnote is put at the bottom of the page where the footnote text is located, |
|
|
maybe far away from the footnote mark (see e.g. `<rst/demo.txt>`_). |
|
|
|
|
|
To get footnote mark and text at the same page, keep footnote mark and |
|
|
footnote text close together! |
|
|
|
|
|
|
|
|
non-breaking hyperlinks |
|
|
``````````````````````` |
|
|
|
|
|
If you convert with ``latex`` (as opposed to ``pdflatex``), hyperlinks will |
|
|
not wrap and sometimes stick into the margin. |
|
|
|
|
|
Wrong: |
|
|
:: |
|
|
|
|
|
\usepackage[breaklinks=true]{hyperref} |
|
|
|
|
|
"breaklinks" is an internal option that indicates whether the chosen |
|
|
driver can handle split links. (It might work to *disable* link breaking.) |
|
|
|
|
|
Right: |
|
|
Use one of the following: |
|
|
|
|
|
a) compile with pdflatex_, |
|
|
|
|
|
b) use the package breakurl_, |
|
|
|
|
|
c) (for printout) `disable hyperlinks`_ using the package "nohyperref". |
|
|
|
|
|
See also the `Link text doesn’t break at end line`_ LaTeX FAQ entry. |
|
|
|
|
|
.. _breakurl: |
|
|
http://mirror.ctan.org/help/Catalogue/entries/breakurl.html |
|
|
|
|
|
.. _Link text doesn’t break at end line: |
|
|
http://www.tex.ac.uk/cgi-bin/texfaq2html?label=breaklinks |
|
|
|
|
|
|
|
|
Glyph not defined in PD1 encoding |
|
|
````````````````````````````````` |
|
|
|
|
|
If a section title or other link contains non-Latin (e.g. Cyrillic) |
|
|
characters, the LaTeX log contains lots of warnings like:: |
|
|
|
|
|
Package hyperref Warning: Glyph not defined in PD1 encoding, |
|
|
(hyperref) removing `\CYRZ' on input line 6. |
|
|
... |
|
|
|
|
|
This can be solved with the "unicode" hyperref_option_ setting:: |
|
|
|
|
|
--hyperref-option=unicode |
|
|
|
|
|
(works also with non-unicode input/output encoding (e.g. "koi8r" or |
|
|
"latin1"). Newer versions of hyperref default to "unicode=true" if the |
|
|
document language is "russian". |
|
|
|
|
|
.. _hyperref_option: config.html#stylesheet-latex2e-writer |
|
|
|
|
|
|
|
|
image inclusion |
|
|
``````````````` |
|
|
|
|
|
Images__ are included in LaTeX with the help of the `graphicx` package. The |
|
|
supported file formats depend on the used driver: |
|
|
|
|
|
* pdflatex_ and xelatex_ work with PNG, JPG, or PDF, but **not EPS**. |
|
|
* Standard latex_ can include **only EPS** graphics, no other format. |
|
|
* latex + dvipdfmx works with EPS and JPG (add 'dvipdfmx' to the |
|
|
documentoptions_ and 'bmpsize' to the stylesheet_ setting). |
|
|
|
|
|
If PDF-image inclusion in PDF files fails, specifying |
|
|
``--graphicx-option=pdftex`` or ``--graphicx-option=auto`` might help. |
|
|
|
|
|
For details see grfguide.pdf_. |
|
|
|
|
|
The Rubber_ wrapper can be used for automatic image conversion. |
|
|
|
|
|
Docutils expects an URI as pointer to the image file. The latex writer |
|
|
transforms this URI to a local path. By default, LaTeX does not accept |
|
|
spaces and more than one dot in the filename. If using "traditional" |
|
|
filenames is not an option, adding grffile_ to the `style sheets`_ |
|
|
can help. |
|
|
|
|
|
__ ../ref/rst/directives.html#images |
|
|
.. _grfguide.pdf: |
|
|
http://mirror.ctan.org/macros/latex/required/graphics/grfguide.pdf |
|
|
.. _grffile: |
|
|
http://mirror.ctan.org/help/Catalogue/entries/grffile.html |
|
|
|
|
|
|
|
|
|
|
|
Why are my images too big? |
|
|
`````````````````````````` |
|
|
|
|
|
HTML-browsers use the actual screen resolution (usually around |
|
|
100 DPI). |
|
|
|
|
|
The CSS specification suggests: |
|
|
|
|
|
It is recommended that the reference pixel be the visual angle of one |
|
|
pixel on a device with a pixel density of 96 DPI and a distance from the |
|
|
reader of an arm's length. |
|
|
|
|
|
-- http://www.w3.org/TR/CSS2/syndata.html#length-units |
|
|
|
|
|
This is why pixmap images without size specification or objects with a size |
|
|
specified in ``px`` tend to come too large in the PDF. |
|
|
|
|
|
Solution: |
|
|
Specify the image size in fixed units (``pt``, ``cm``, ``in``) or |
|
|
configure the `size of a pixel`_ (length unit px). |
|
|
|
|
|
Error ``illegal unit px`` |
|
|
````````````````````````` |
|
|
|
|
|
If you convert the LaTeX source with a legacy program, you might get this |
|
|
error. |
|
|
|
|
|
The unit "px" was introduced by the `pdfTeX` converter on 2005-02-04. |
|
|
`pdfTeX` is used also for conversion into DVI format in all modern LaTeX |
|
|
distributions (since ca. 2006). |
|
|
|
|
|
If updating LaTeX is not an option, just remove the "px" from the length |
|
|
specification. HTML/CSS will default to "px" while the `latexe2` writer |
|
|
will add the fallback unit "bp". |
|
|
|
|
|
Error ``Symbol \textcurrency not provided`` ... |
|
|
``````````````````````````````````````````````` |
|
|
|
|
|
The currency sign (\\u00a4) is not supported by all fonts (some have |
|
|
an Euro sign at its place). You might see an error like:: |
|
|
|
|
|
! Package textcomp Error: Symbol \textcurrency not provided by |
|
|
(textcomp) font family ptm in TS1 encoding. |
|
|
(textcomp) Default family used instead. |
|
|
|
|
|
(which in case of font family "ptm" is a false positive). Add either |
|
|
|
|
|
:warn: turn the error in a warning, use the default symbol (bitmap), or |
|
|
:force,almostfull: use the symbol provided by the font at the users |
|
|
risk, |
|
|
|
|
|
to the document options or use a different font package. |
|
|
|
|
|
Search and text extraction |
|
|
`````````````````````````` |
|
|
|
|
|
Search for text that contains characters outside the ASCII range (e.g. |
|
|
umlauts) might fail. See font_ and `font encoding`_ (as well as |
|
|
`Searching PDF files`_ for background information). |
|
|
|
|
|
.. _Searching PDF files: |
|
|
http://www.tex.ac.uk/cgi-bin/texfaq2html?label=srchpdf |
|
|
|
|
|
Unicode box drawing and block characters |
|
|
```````````````````````````````````````` |
|
|
|
|
|
The easiest solution is to use xelatex_ for `PDF generation`_. |
|
|
|
|
|
With "traditional" TeX engines (e.g. pdflatex_): |
|
|
|
|
|
- Generate LaTeX code with `output-encoding`_ "utf-8". |
|
|
|
|
|
- Add the pmboxdraw_ package to the `style sheets`_. |
|
|
(For shaded boxes also add the `color` package.) |
|
|
|
|
|
Unfortunately, this defines only a subset of the characters |
|
|
(see pmboxdraw.pdf_ for a list). |
|
|
|
|
|
.. _pmboxdraw: |
|
|
http://mirror.ctan.org/help/Catalogue/entries/pmboxdraw.html |
|
|
|
|
|
.. _pmboxdraw.pdf: |
|
|
http://mirror.ctan.org/macros/latex/contrib/oberdiek/pmboxdraw.pdf |
|
|
|
|
|
Bugs and open issues |
|
|
-------------------- |
|
|
|
|
|
Open to be fixed or open to discussion. |
|
|
|
|
|
See also the entries in the `Docutils TODO list`_, |
|
|
the BUGS_ documentation and the `SourceForge Bug Tracker`_. |
|
|
|
|
|
.. _Docutils TODO list: ../dev/todo.html#latex-writer |
|
|
.. _bugs: ../../BUGS.html |
|
|
.. _SourceForge Bug Tracker: |
|
|
http://sf.net/tracker/?group_id=38414&atid=422030 |
|
|
|
|
|
|
|
|
Footnotes and citations |
|
|
``````````````````````` |
|
|
|
|
|
Initially both were implemented using figure floats, because hyperlinking |
|
|
back and forth seemed to be impossible. Later the `figure` directive was |
|
|
added that puts images into figure floats. |
|
|
|
|
|
This results in footnotes, citations, and figures possibly being mixed at |
|
|
page foot. |
|
|
|
|
|
Workaround: |
|
|
Select footnote and citation handling with the docutils-footnotes_ and |
|
|
use-latex-citations_ options. |
|
|
|
|
|
If ``use-latex-citations`` is used, a bibliography is inserted right at |
|
|
the end of the document. *This should be customizable*. |
|
|
|
|
|
If ``use-latex-citations`` is used adjacent citation references (separated |
|
|
only by a single space or a newline) are combined to a single citation |
|
|
group, i.e. ``[cite1]_ [cite2]_`` results in ``\cite{cite1,cite2}``. |
|
|
The appearance in the output can be configured in a `style sheet`_. |
|
|
|
|
|
.. _docutils-footnotes: config.html#docutils-footnotes |
|
|
.. _use-latex-citations: config.html#use-latex-citations |
|
|
|
|
|
|
|
|
Tables |
|
|
`````` |
|
|
|
|
|
* reST-documents line length is assumed to be 80 characters. The |
|
|
*tablewidth* is set relative to this value. If someone produces documents |
|
|
with line length of 132 this will lead to suboptimal results. |
|
|
|
|
|
You may use the `:width:` option to manually set the table column widths. |
|
|
|
|
|
* Table: multicol cells are always left aligned. |
|
|
|
|
|
* Table cells with both multirow and multicolumn are currently not possible. |
|
|
|
|
|
* literal-blocks in table cells: |
|
|
|
|
|
- If verbatim or flushleft is used one gets vertical space above and below. |
|
|
- This is bad for the topmost paragraph in a cell, therefore the writer |
|
|
uses raggedright. |
|
|
- Ragged right fails on followup paragraphs as the vertical space would be |
|
|
missing. |
|
|
|
|
|
* ``--table-style=booktabs``, ``..class:: booktab``: `booktabs` version |
|
|
1.00 does not work with `longtable`. This is solved in newer versions |
|
|
(current is 2005/04/14 v1.61803). |
|
|
|
|
|
|
|
|
Figures |
|
|
``````` |
|
|
|
|
|
* Figures are always as wide as the containing text. The "figwidth" argument |
|
|
is currently not supported. As a consequence, the "align" argument has no |
|
|
effect. |
|
|
|
|
|
* Wrapping text around figures is currently not supported. (Requires the |
|
|
`wrapfig`_ package.) |
|
|
|
|
|
.. _wrapfig: |
|
|
http://mirror.ctan.org/help/Catalogue/entries/wrapfig.html |
|
|
|
|
|
|
|
|
Miscellaneous |
|
|
````````````` |
|
|
|
|
|
* Pdfbookmark level 4 (and greater) does not work (might be settable but |
|
|
complicated). |
|
|
|
|
|
* Hyperlinks are not hyphenated; this leads to bad spacing. See |
|
|
docs/user/rst/demo.txt 2.14 directives. |
|
|
|
|
|
* Pagestyle headings does not work, when sections are starred. Use LaTeX for |
|
|
the section numbering with the `options/settings`_ |
|
|
``--no-section-numbers`` (command line) or ``sectnum_xform: False`` |
|
|
(config file).
|
|
|
|