|
|
|
|
\documentclass[a4paper]{article}
|
|
|
|
|
% generated by Docutils <http://docutils.sourceforge.net/>
|
|
|
|
|
% rubber: set program xelatex
|
|
|
|
|
\usepackage{fontspec}
|
|
|
|
|
% \defaultfontfeatures{Scale=MatchLowercase}
|
|
|
|
|
% straight double quotes (defined T1 but missing in TU):
|
|
|
|
|
\ifdefined \UnicodeEncodingName
|
|
|
|
|
\DeclareTextCommand{\textquotedbl}{\UnicodeEncodingName}{%
|
|
|
|
|
{\addfontfeatures{RawFeature=-tlig,Mapping=}\char34}}%
|
|
|
|
|
\fi
|
|
|
|
|
\usepackage{ifthen}
|
|
|
|
|
\usepackage{amsmath}
|
|
|
|
|
\usepackage{polyglossia}
|
|
|
|
|
\setdefaultlanguage{english}
|
|
|
|
|
\setotherlanguages{english,french,german}
|
|
|
|
|
\usepackage{color}
|
|
|
|
|
\usepackage{float} % float configuration
|
|
|
|
|
\floatplacement{figure}{H} % place figures here definitely
|
|
|
|
|
\usepackage{graphicx}
|
|
|
|
|
\usepackage{alltt}
|
|
|
|
|
\usepackage{multirow}
|
|
|
|
|
\setcounter{secnumdepth}{0}
|
|
|
|
|
\usepackage{longtable,ltcaption,array}
|
|
|
|
|
\setlength{\extrarowheight}{2pt}
|
|
|
|
|
\newlength{\DUtablewidth} % internal use in tables
|
|
|
|
|
\usepackage{tabularx}
|
|
|
|
|
|
|
|
|
|
%%% Custom LaTeX preamble
|
|
|
|
|
% Linux Libertine (free, wide coverage, not only for Linux)
|
|
|
|
|
\setmainfont{Linux Libertine O}
|
|
|
|
|
\setsansfont{Linux Biolinum O}
|
|
|
|
|
\setmonofont[HyphenChar=None,Scale=MatchLowercase]{DejaVu Sans Mono}
|
|
|
|
|
|
|
|
|
|
%%% User specified packages and stylesheets
|
|
|
|
|
|
|
|
|
|
%%% Fallback definitions for Docutils-specific commands
|
|
|
|
|
|
|
|
|
|
% class handling for environments (block-level elements)
|
|
|
|
|
% \begin{DUclass}{spam} tries \DUCLASSspam and
|
|
|
|
|
% \end{DUclass}{spam} tries \endDUCLASSspam
|
|
|
|
|
\ifx\DUclass\undefined % poor man's "provideenvironment"
|
|
|
|
|
\newenvironment{DUclass}[1]%
|
|
|
|
|
{\def\DocutilsClassFunctionName{DUCLASS#1}% arg cannot be used in end-part of environment.
|
|
|
|
|
\csname \DocutilsClassFunctionName \endcsname}%
|
|
|
|
|
{\csname end\DocutilsClassFunctionName \endcsname}%
|
|
|
|
|
\fi
|
|
|
|
|
|
|
|
|
|
% providelength (provide a length variable and set default, if it is new)
|
|
|
|
|
\providecommand*{\DUprovidelength}[2]{
|
|
|
|
|
\ifthenelse{\isundefined{#1}}{\newlength{#1}\setlength{#1}{#2}}{}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
% abstract title
|
|
|
|
|
\providecommand*{\DUtitleabstract}[1]{\centerline{\textbf{#1}}}
|
|
|
|
|
|
|
|
|
|
% admonition (specially marked topic)
|
|
|
|
|
\providecommand{\DUadmonition}[2][class-arg]{%
|
|
|
|
|
% try \DUadmonition#1{#2}:
|
|
|
|
|
\ifcsname DUadmonition#1\endcsname%
|
|
|
|
|
\csname DUadmonition#1\endcsname{#2}%
|
|
|
|
|
\else
|
|
|
|
|
\begin{center}
|
|
|
|
|
\fbox{\parbox{0.9\linewidth}{#2}}
|
|
|
|
|
\end{center}
|
|
|
|
|
\fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
% dedication topic
|
|
|
|
|
\providecommand*{\DUCLASSdedication}{%
|
|
|
|
|
\renewenvironment{quote}{\begin{center}}{\end{center}}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
% docinfo (width of docinfo table)
|
|
|
|
|
\DUprovidelength{\DUdocinfowidth}{0.9\linewidth}
|
|
|
|
|
|
|
|
|
|
% subtitle (in document title)
|
|
|
|
|
\providecommand*{\DUdocumentsubtitle}[1]{{\large #1}}
|
|
|
|
|
\newcounter{enumv}
|
|
|
|
|
|
|
|
|
|
% error admonition title
|
|
|
|
|
\providecommand*{\DUtitleerror}[1]{\DUtitle{\color{red}#1}}
|
|
|
|
|
|
|
|
|
|
% fieldlist environment
|
|
|
|
|
\ifthenelse{\isundefined{\DUfieldlist}}{
|
|
|
|
|
\newenvironment{DUfieldlist}%
|
|
|
|
|
{\quote\description}
|
|
|
|
|
{\enddescription\endquote}
|
|
|
|
|
}{}
|
|
|
|
|
% numeric or symbol footnotes with hyperlinks
|
|
|
|
|
\providecommand*{\DUfootnotemark}[3]{%
|
|
|
|
|
\raisebox{1em}{\hypertarget{#1}{}}%
|
|
|
|
|
\hyperlink{#2}{\textsuperscript{#3}}%
|
|
|
|
|
}
|
|
|
|
|
\providecommand{\DUfootnotetext}[4]{%
|
|
|
|
|
\begingroup%
|
|
|
|
|
\renewcommand{\thefootnote}{%
|
|
|
|
|
\protect\raisebox{1em}{\protect\hypertarget{#1}{}}%
|
|
|
|
|
\protect\hyperlink{#2}{#3}}%
|
|
|
|
|
\footnotetext{#4}%
|
|
|
|
|
\endgroup%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
% inline markup (custom roles)
|
|
|
|
|
% \DUrole{#1}{#2} tries \DUrole#1{#2}
|
|
|
|
|
\providecommand*{\DUrole}[2]{%
|
|
|
|
|
% backwards compatibility: try \docutilsrole#1{#2}
|
|
|
|
|
\ifcsname docutilsrole#1\endcsname%
|
|
|
|
|
\csname docutilsrole#1\endcsname{#2}%
|
|
|
|
|
\else
|
|
|
|
|
\csname DUrole#1\endcsname{#2}%
|
|
|
|
|
\fi%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
% legend environment
|
|
|
|
|
\ifthenelse{\isundefined{\DUlegend}}{
|
|
|
|
|
\newenvironment{DUlegend}{\small}{}
|
|
|
|
|
}{}
|
|
|
|
|
|
|
|
|
|
% lineblock environment
|
|
|
|
|
\DUprovidelength{\DUlineblockindent}{2.5em}
|
|
|
|
|
\ifthenelse{\isundefined{\DUlineblock}}{
|
|
|
|
|
\newenvironment{DUlineblock}[1]{%
|
|
|
|
|
\list{}{\setlength{\partopsep}{\parskip}
|
|
|
|
|
\addtolength{\partopsep}{\baselineskip}
|
|
|
|
|
\setlength{\topsep}{0pt}
|
|
|
|
|
\setlength{\itemsep}{0.15\baselineskip}
|
|
|
|
|
\setlength{\parsep}{0pt}
|
|
|
|
|
\setlength{\leftmargin}{#1}}
|
|
|
|
|
\raggedright
|
|
|
|
|
}
|
|
|
|
|
{\endlist}
|
|
|
|
|
}{}
|
|
|
|
|
|
|
|
|
|
% optionlist environment
|
|
|
|
|
\providecommand*{\DUoptionlistlabel}[1]{\bf #1 \hfill}
|
|
|
|
|
\DUprovidelength{\DUoptionlistindent}{3cm}
|
|
|
|
|
\ifthenelse{\isundefined{\DUoptionlist}}{
|
|
|
|
|
\newenvironment{DUoptionlist}{%
|
|
|
|
|
\list{}{\setlength{\labelwidth}{\DUoptionlistindent}
|
|
|
|
|
\setlength{\rightmargin}{1cm}
|
|
|
|
|
\setlength{\leftmargin}{\rightmargin}
|
|
|
|
|
\addtolength{\leftmargin}{\labelwidth}
|
|
|
|
|
\addtolength{\leftmargin}{\labelsep}
|
|
|
|
|
\renewcommand{\makelabel}{\DUoptionlistlabel}}
|
|
|
|
|
}
|
|
|
|
|
{\endlist}
|
|
|
|
|
}{}
|
|
|
|
|
|
|
|
|
|
\DUprovidelength{\pdfpxdimen}{1bp}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
% rubric (informal heading)
|
|
|
|
|
\providecommand*{\DUrubric}[1]{%
|
|
|
|
|
\subsubsection*{\centering\textit{\textmd{#1}}}}
|
|
|
|
|
|
|
|
|
|
% sidebar (text outside the main text flow)
|
|
|
|
|
\providecommand{\DUsidebar}[1]{%
|
|
|
|
|
\begin{center}
|
|
|
|
|
\colorbox[gray]{0.80}{\parbox{0.9\linewidth}{#1}}
|
|
|
|
|
\end{center}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
% subtitle (for topic/sidebar)
|
|
|
|
|
\providecommand*{\DUsubtitle}[1]{\par\emph{#1}\smallskip}
|
|
|
|
|
|
|
|
|
|
% text mode subscript
|
|
|
|
|
\ifx\textsubscript\undefined
|
|
|
|
|
\usepackage{fixltx2e} % since 2015 loaded by default
|
|
|
|
|
\fi
|
|
|
|
|
|
|
|
|
|
% title for topics, admonitions, unsupported section levels, and sidebar
|
|
|
|
|
\providecommand*{\DUtitle}[2][class-arg]{%
|
|
|
|
|
% call \DUtitle#1{#2} if it exists:
|
|
|
|
|
\ifcsname DUtitle#1\endcsname%
|
|
|
|
|
\csname DUtitle#1\endcsname{#2}%
|
|
|
|
|
\else
|
|
|
|
|
\smallskip\noindent\textbf{#2}\smallskip%
|
|
|
|
|
\fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
% titlereference role
|
|
|
|
|
\providecommand*{\DUroletitlereference}[1]{\textsl{#1}}
|
|
|
|
|
|
|
|
|
|
% transition (break, fancybreak, anonymous section)
|
|
|
|
|
\providecommand*{\DUtransition}{%
|
|
|
|
|
\hspace*{\fill}\hrulefill\hspace*{\fill}
|
|
|
|
|
\vskip 0.5\baselineskip
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
% hyperlinks:
|
|
|
|
|
\ifthenelse{\isundefined{\hypersetup}}{
|
|
|
|
|
\usepackage[colorlinks=true,linkcolor=blue,urlcolor=blue]{hyperref}
|
|
|
|
|
\usepackage{bookmark}
|
|
|
|
|
\urlstyle{same} % normal text font (alternatives: tt, rm, sf)
|
|
|
|
|
}{}
|
|
|
|
|
\hypersetup{
|
|
|
|
|
pdftitle={reStructuredText Test Document},
|
|
|
|
|
pdfauthor={David Goodger;Me;Myself;I}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
%%% Title Data
|
|
|
|
|
\title{\phantomsection%
|
|
|
|
|
reStructuredText Test Document%
|
|
|
|
|
\label{restructuredtext-test-document}%
|
|
|
|
|
\label{doctitle}%
|
|
|
|
|
\\ % subtitle%
|
|
|
|
|
\DUdocumentsubtitle{Examples of Syntax Constructs}%
|
|
|
|
|
\label{examples-of-syntax-constructs}%
|
|
|
|
|
\label{subtitle}}
|
|
|
|
|
\author{}
|
|
|
|
|
\date{}
|
|
|
|
|
|
|
|
|
|
%%% Body
|
|
|
|
|
\begin{document}
|
|
|
|
|
\maketitle
|
|
|
|
|
|
|
|
|
|
% Docinfo
|
|
|
|
|
\begin{center}
|
|
|
|
|
\begin{tabularx}{\DUdocinfowidth}{lX}
|
|
|
|
|
\textbf{Author}: &
|
|
|
|
|
David Goodger \\
|
|
|
|
|
\textbf{Address}: &
|
|
|
|
|
{\raggedright
|
|
|
|
|
123 Example Street\\
|
|
|
|
|
Example, EX Canada\\
|
|
|
|
|
A1B 2C3 } \\
|
|
|
|
|
\textbf{Contact}: &
|
|
|
|
|
\href{mailto:goodger@python.org}{goodger@python.org} \\
|
|
|
|
|
\textbf{Author}: &
|
|
|
|
|
Me \\
|
|
|
|
|
\textbf{Author}: &
|
|
|
|
|
Myself \\
|
|
|
|
|
\textbf{Author}: &
|
|
|
|
|
I \\
|
|
|
|
|
\textbf{Organization}: &
|
|
|
|
|
humankind \\
|
|
|
|
|
\textbf{Date}: &
|
|
|
|
|
Now, or yesterday. Or maybe even \emph{before} yesterday. \\
|
|
|
|
|
\textbf{Status}: &
|
|
|
|
|
This is a “work in progress” \\
|
|
|
|
|
\textbf{Revision}: &
|
|
|
|
|
is managed by a version control system. \\
|
|
|
|
|
\textbf{Version}: &
|
|
|
|
|
1 \\
|
|
|
|
|
\textbf{Copyright}: &
|
|
|
|
|
This document has been placed in the public domain. You
|
|
|
|
|
may do with it as you wish. You may copy, modify,
|
|
|
|
|
redistribute, reattribute, sell, buy, rent, lease,
|
|
|
|
|
destroy, or improve it, quote it at length, excerpt,
|
|
|
|
|
incorporate, collate, fold, staple, or mutilate it, or do
|
|
|
|
|
anything else to it that your or anyone else’s heart
|
|
|
|
|
desires. \\
|
|
|
|
|
\textbf{field name}: &
|
|
|
|
|
This is a “generic bibliographic field”.
|
|
|
|
|
\\
|
|
|
|
|
\textbf{field name “2”}: &
|
|
|
|
|
Generic bibliographic fields may contain multiple body elements.
|
|
|
|
|
|
|
|
|
|
Like this.
|
|
|
|
|
\\
|
|
|
|
|
\end{tabularx}
|
|
|
|
|
\end{center}
|
|
|
|
|
|
|
|
|
|
\begin{DUclass}{dedication}
|
|
|
|
|
\begin{quote}
|
|
|
|
|
\DUtitle[dedication]{Dedication}
|
|
|
|
|
|
|
|
|
|
For Docutils users \& co-developers.
|
|
|
|
|
\end{quote}
|
|
|
|
|
\end{DUclass}
|
|
|
|
|
|
|
|
|
|
\begin{DUclass}{abstract}
|
|
|
|
|
\begin{quote}
|
|
|
|
|
\DUtitle[abstract]{Abstract}
|
|
|
|
|
|
|
|
|
|
This is a test document, containing at least one example of each
|
|
|
|
|
reStructuredText construct.
|
|
|
|
|
\end{quote}
|
|
|
|
|
\end{DUclass}
|
|
|
|
|
|
|
|
|
|
% This is a comment. Note how any initial comments are moved by
|
|
|
|
|
% transforms to after the document title, subtitle, and docinfo.
|
|
|
|
|
|
|
|
|
|
% Above is the document title, and below is the subtitle.
|
|
|
|
|
% They are transformed from section titles after parsing.
|
|
|
|
|
|
|
|
|
|
% bibliographic fields (which also require a transform):
|
|
|
|
|
|
|
|
|
|
\pagebreak[4] % start ToC on new page
|
|
|
|
|
|
|
|
|
|
\phantomsection\label{table-of-contents}
|
|
|
|
|
\pdfbookmark[1]{Table of Contents}{table-of-contents}
|
|
|
|
|
\renewcommand{\contentsname}{Table of Contents}
|
|
|
|
|
\tableofcontents
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\section{1 Structural Elements%
|
|
|
|
|
\label{structural-elements}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{1.1 Section Title%
|
|
|
|
|
\label{section-title}%
|
|
|
|
|
}
|
|
|
|
|
\subsubsection*{Section Subtitle}
|
|
|
|
|
|
|
|
|
|
Lone subsections are converted to a section subtitle by a transform
|
|
|
|
|
activated with the \texttt{--section-subtitles} command line option or the
|
|
|
|
|
\texttt{sectsubtitle-xform} configuration value.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{1.2 Empty Section%
|
|
|
|
|
\label{empty-section}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{1.3 Transitions%
|
|
|
|
|
\label{transitions}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Here’s a transition:
|
|
|
|
|
|
|
|
|
|
%___________________________________________________________________________
|
|
|
|
|
\DUtransition
|
|
|
|
|
|
|
|
|
|
It divides the section. Transitions may also occur between sections:
|
|
|
|
|
|
|
|
|
|
%___________________________________________________________________________
|
|
|
|
|
\DUtransition
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\section{2 Body Elements%
|
|
|
|
|
\label{body-elements}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{2.1 Paragraphs%
|
|
|
|
|
\label{paragraphs}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
A paragraph.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsubsection{2.1.1 Inline Markup%
|
|
|
|
|
\label{inline-markup}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Paragraphs contain text and may contain inline markup: \emph{emphasis},
|
|
|
|
|
\textbf{strong emphasis}, \texttt{inline literals}, standalone hyperlinks
|
|
|
|
|
(\url{http://www.python.org}), external hyperlinks (\href{http://www.python.org/}{Python}\DUfootnotemark{id30}{id29}{5}), internal
|
|
|
|
|
cross-references (\hyperref[example]{example}), external hyperlinks with embedded URIs
|
|
|
|
|
(\href{http://www.python.org}{Python web site}), \href{http://www.python.org/}{anonymous hyperlink
|
|
|
|
|
references}\DUfootnotemark{id40}{id29}{5} (\href{http://docutils.sourceforge.net/}{a second reference}\DUfootnotemark{id42}{id41}{9}), footnote references (manually
|
|
|
|
|
numbered\DUfootnotemark{id1}{id8}{1}, anonymous auto-numbered\DUfootnotemark{id2}{id12}{3}, labeled auto-numbered\DUfootnotemark{id3}{label}{2}, or symbolic\DUfootnotemark{id4}{id13}{*}), citation references (\hyperlink{cit2002}{[CIT2002]}),
|
|
|
|
|
substitution references (\includegraphics{../../../docs/user/rst/images/biohazard.png}), and %
|
|
|
|
|
\phantomsection\label{inline-hyperlink-targets}inline hyperlink targets
|
|
|
|
|
(see \hyperref[targets]{Targets} below for a reference back to here). Character-level
|
|
|
|
|
inline markup is also possible (although exceedingly ugly!) in \emph{re}\texttt{Structured}\emph{Text}. Problems are indicated by %
|
|
|
|
|
\raisebox{1em}{\hypertarget{id28}{}}\hyperlink{id27}{\textbf{\color{red}|problematic|}} text
|
|
|
|
|
(generated by processing errors; this one is intentional). Here is a
|
|
|
|
|
reference to the \hyperref[doctitle]{doctitle} and the \hyperref[subtitle]{subtitle}.
|
|
|
|
|
|
|
|
|
|
The default role for interpreted text is \DUroletitlereference{Title Reference}. Here are
|
|
|
|
|
some explicit interpreted text roles: a PEP reference (\href{http://www.python.org/dev/peps/pep-0287}{PEP 287}); an
|
|
|
|
|
RFC reference (\href{http://tools.ietf.org/html/rfc2822.html}{RFC 2822}); an abbreviation (\DUrole{abbreviation}{abb.}), an acronym
|
|
|
|
|
(\DUrole{acronym}{reST}), code (\texttt{\DUrole{code}{print \textquotedbl{}hello world\textquotedbl{}}}); a \textsubscript{subscript};
|
|
|
|
|
a \textsuperscript{superscript} and explicit roles for \DUroletitlereference{Docutils}’
|
|
|
|
|
\emph{standard} \textbf{inline} \texttt{markup}.
|
|
|
|
|
|
|
|
|
|
% DO NOT RE-WRAP THE FOLLOWING PARAGRAPH!
|
|
|
|
|
|
|
|
|
|
Let’s test wrapping and whitespace significance in inline literals:
|
|
|
|
|
\texttt{This is an example of --inline-literal --text, --including some--
|
|
|
|
|
strangely--hyphenated-words. ~Adjust-the-width-of-your-browser-window
|
|
|
|
|
to see how the text is wrapped. ~-- ---- -------- ~Now note ~ ~the
|
|
|
|
|
spacing ~ ~between the ~ ~words of ~ ~this sentence ~ ~(words
|
|
|
|
|
should ~ ~be grouped ~ ~in pairs).}
|
|
|
|
|
|
|
|
|
|
If the \texttt{--pep-references} option was supplied, there should be a
|
|
|
|
|
live link to PEP 258 here.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{2.2 Bullet Lists%
|
|
|
|
|
\label{bullet-lists}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
\item A bullet list
|
|
|
|
|
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
\item Nested bullet list.
|
|
|
|
|
|
|
|
|
|
\item Nested item 2.
|
|
|
|
|
\end{itemize}
|
|
|
|
|
|
|
|
|
|
\item Item 2.
|
|
|
|
|
|
|
|
|
|
Paragraph 2 of item 2.
|
|
|
|
|
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
\item Nested bullet list.
|
|
|
|
|
|
|
|
|
|
\item Nested item 2.
|
|
|
|
|
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
\item Third level.
|
|
|
|
|
|
|
|
|
|
\item Item 2.
|
|
|
|
|
\end{itemize}
|
|
|
|
|
|
|
|
|
|
\item Nested item 3.
|
|
|
|
|
|
|
|
|
|
\item This nested list should be compacted by the HTML writer.
|
|
|
|
|
%
|
|
|
|
|
\phantomsection\label{target}
|
|
|
|
|
% Even if this item contains a target and a comment.
|
|
|
|
|
\end{itemize}
|
|
|
|
|
\end{itemize}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{2.3 Enumerated Lists%
|
|
|
|
|
\label{enumerated-lists}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
\begin{enumerate}
|
|
|
|
|
\item Arabic numerals.
|
|
|
|
|
|
|
|
|
|
\begin{enumerate}
|
|
|
|
|
\renewcommand{\labelenumii}{\alph{enumii})}
|
|
|
|
|
\item lower alpha)
|
|
|
|
|
|
|
|
|
|
\begin{enumerate}
|
|
|
|
|
\renewcommand{\labelenumiii}{(\roman{enumiii})}
|
|
|
|
|
\item (lower roman)
|
|
|
|
|
|
|
|
|
|
\begin{enumerate}
|
|
|
|
|
\item upper alpha.
|
|
|
|
|
|
|
|
|
|
\begin{list}{\Roman{enumv})}{\usecounter{enumv}}
|
|
|
|
|
\item upper roman)
|
|
|
|
|
\end{list}
|
|
|
|
|
\end{enumerate}
|
|
|
|
|
\end{enumerate}
|
|
|
|
|
\end{enumerate}
|
|
|
|
|
|
|
|
|
|
\item Lists that don’t start at 1:
|
|
|
|
|
|
|
|
|
|
\begin{enumerate}
|
|
|
|
|
\renewcommand{\labelenumii}{\arabic{enumii}.}
|
|
|
|
|
\setcounter{enumii}{2}
|
|
|
|
|
\item Three
|
|
|
|
|
|
|
|
|
|
\item Four
|
|
|
|
|
\end{enumerate}
|
|
|
|
|
|
|
|
|
|
\begin{enumerate}
|
|
|
|
|
\renewcommand{\labelenumii}{\Alph{enumii}.}
|
|
|
|
|
\setcounter{enumii}{2}
|
|
|
|
|
\item C
|
|
|
|
|
|
|
|
|
|
\item D
|
|
|
|
|
\end{enumerate}
|
|
|
|
|
|
|
|
|
|
\begin{enumerate}
|
|
|
|
|
\renewcommand{\labelenumii}{\roman{enumii}.}
|
|
|
|
|
\setcounter{enumii}{2}
|
|
|
|
|
\item iii
|
|
|
|
|
|
|
|
|
|
\item iv
|
|
|
|
|
\end{enumerate}
|
|
|
|
|
\end{enumerate}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{2.4 Definition Lists%
|
|
|
|
|
\label{definition-lists}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
\begin{description}
|
|
|
|
|
\item[{Term}] \leavevmode
|
|
|
|
|
Definition
|
|
|
|
|
|
|
|
|
|
\item[{Term}] \leavevmode (\textbf{classifier})
|
|
|
|
|
Definition paragraph 1.
|
|
|
|
|
|
|
|
|
|
Definition paragraph 2.
|
|
|
|
|
|
|
|
|
|
\item[{Term}] \leavevmode
|
|
|
|
|
Definition
|
|
|
|
|
|
|
|
|
|
\item[{Term}] \leavevmode (\textbf{classifier one})(\textbf{classifier two})
|
|
|
|
|
Definition
|
|
|
|
|
|
|
|
|
|
\end{description}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{2.5 Field Lists%
|
|
|
|
|
\label{field-lists}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
\begin{DUfieldlist}
|
|
|
|
|
\item[{what:}]
|
|
|
|
|
Field lists map field names to field bodies, like database
|
|
|
|
|
records. They are often part of an extension syntax. They are
|
|
|
|
|
an unambiguous variant of RFC 2822 fields.
|
|
|
|
|
|
|
|
|
|
\item[{how arg1 arg2:}]
|
|
|
|
|
The field marker is a colon, the field name, and a colon.
|
|
|
|
|
|
|
|
|
|
The field body may contain one or more body elements, indented
|
|
|
|
|
relative to the field marker.
|
|
|
|
|
|
|
|
|
|
\item[{credits:}]
|
|
|
|
|
\DUrole{credits}{This paragraph has the \DUroletitlereference{credits} class set. (This is actually not
|
|
|
|
|
about credits but just for ensuring that the class attribute
|
|
|
|
|
doesn’t get stripped away.)}
|
|
|
|
|
\end{DUfieldlist}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{2.6 Option Lists%
|
|
|
|
|
\label{option-lists}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
For listing command-line options:
|
|
|
|
|
|
|
|
|
|
\begin{DUoptionlist}
|
|
|
|
|
\item[-a] command-line option “a”
|
|
|
|
|
|
|
|
|
|
\item[-b file] options can have arguments
|
|
|
|
|
and long descriptions
|
|
|
|
|
|
|
|
|
|
\item[--long] options can be long also
|
|
|
|
|
|
|
|
|
|
\item[--input=file] long options can also have
|
|
|
|
|
arguments
|
|
|
|
|
|
|
|
|
|
\item[--very-long-option] The description can also start on the next line.
|
|
|
|
|
|
|
|
|
|
The description may contain multiple body elements,
|
|
|
|
|
regardless of where it starts.
|
|
|
|
|
|
|
|
|
|
\item[-x, -y, -z] Multiple options are an “option group”.
|
|
|
|
|
|
|
|
|
|
\item[-v, --verbose] Commonly-seen: short \& long options.
|
|
|
|
|
|
|
|
|
|
\item[-1 file, --one=file, --two file] Multiple options with arguments.
|
|
|
|
|
|
|
|
|
|
\item[/V] DOS/VMS-style options too
|
|
|
|
|
\end{DUoptionlist}
|
|
|
|
|
|
|
|
|
|
There must be at least two spaces between the option and the
|
|
|
|
|
description.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{2.7 Literal Blocks%
|
|
|
|
|
\label{literal-blocks}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Literal blocks are indicated with a double-colon (“::”) at the end of
|
|
|
|
|
the preceding paragraph (over there \texttt{-->}). They can be indented:
|
|
|
|
|
|
|
|
|
|
\begin{quote}
|
|
|
|
|
\begin{alltt}
|
|
|
|
|
if literal_block:
|
|
|
|
|
text = 'is left as-is'
|
|
|
|
|
spaces_and_linebreaks = 'are preserved'
|
|
|
|
|
markup_processing = None
|
|
|
|
|
\end{alltt}
|
|
|
|
|
\end{quote}
|
|
|
|
|
|
|
|
|
|
Or they can be quoted without indentation:
|
|
|
|
|
|
|
|
|
|
\begin{quote}
|
|
|
|
|
\begin{alltt}
|
|
|
|
|
>> Great idea!
|
|
|
|
|
>
|
|
|
|
|
> Why didn't I think of that?
|
|
|
|
|
\end{alltt}
|
|
|
|
|
\end{quote}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{2.8 Line Blocks%
|
|
|
|
|
\label{line-blocks}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
This section tests line blocks. Line blocks are body elements which
|
|
|
|
|
consist of lines and other line blocks. Nested line blocks cause
|
|
|
|
|
indentation.
|
|
|
|
|
|
|
|
|
|
\begin{DUlineblock}{0em}
|
|
|
|
|
\item[] This is a line block. It ends with a blank line.
|
|
|
|
|
\item[]
|
|
|
|
|
\begin{DUlineblock}{\DUlineblockindent}
|
|
|
|
|
\item[] New lines begin with a vertical bar (“|”).
|
|
|
|
|
\item[] Line breaks and initial indent are significant, and preserved.
|
|
|
|
|
\item[]
|
|
|
|
|
\begin{DUlineblock}{\DUlineblockindent}
|
|
|
|
|
\item[] Continuation lines are also possible. A long line that is intended
|
|
|
|
|
to wrap should begin with a space in place of the vertical bar.
|
|
|
|
|
\end{DUlineblock}
|
|
|
|
|
\item[] The left edge of a continuation line need not be aligned with
|
|
|
|
|
the left edge of the text above it.
|
|
|
|
|
\end{DUlineblock}
|
|
|
|
|
\end{DUlineblock}
|
|
|
|
|
|
|
|
|
|
\begin{DUlineblock}{0em}
|
|
|
|
|
\item[] This is a second line block.
|
|
|
|
|
\item[]
|
|
|
|
|
\item[] Blank lines are permitted internally, but they must begin with a “|”.
|
|
|
|
|
\end{DUlineblock}
|
|
|
|
|
|
|
|
|
|
Another line block, surrounded by paragraphs:
|
|
|
|
|
|
|
|
|
|
\begin{DUlineblock}{0em}
|
|
|
|
|
\item[] And it’s no good waiting by the window
|
|
|
|
|
\item[] It’s no good waiting for the sun
|
|
|
|
|
\item[] Please believe me, the things you dream of
|
|
|
|
|
\item[] They don’t fall in the lap of no-one
|
|
|
|
|
\end{DUlineblock}
|
|
|
|
|
|
|
|
|
|
Take it away, Eric the Orchestra Leader!
|
|
|
|
|
|
|
|
|
|
\begin{quote}
|
|
|
|
|
\begin{DUlineblock}{0em}
|
|
|
|
|
\item[] A one, two, a one two three four
|
|
|
|
|
\item[]
|
|
|
|
|
\item[] Half a bee, philosophically,
|
|
|
|
|
\item[]
|
|
|
|
|
\begin{DUlineblock}{\DUlineblockindent}
|
|
|
|
|
\item[] must, \emph{ipso facto}, half not be.
|
|
|
|
|
\end{DUlineblock}
|
|
|
|
|
\item[] But half the bee has got to be,
|
|
|
|
|
\item[]
|
|
|
|
|
\begin{DUlineblock}{\DUlineblockindent}
|
|
|
|
|
\item[] \emph{vis a vis} its entity. D’you see?
|
|
|
|
|
\item[]
|
|
|
|
|
\end{DUlineblock}
|
|
|
|
|
\item[] But can a bee be said to be
|
|
|
|
|
\item[]
|
|
|
|
|
\begin{DUlineblock}{\DUlineblockindent}
|
|
|
|
|
\item[] or not to be an entire bee,
|
|
|
|
|
\item[]
|
|
|
|
|
\begin{DUlineblock}{\DUlineblockindent}
|
|
|
|
|
\item[] when half the bee is not a bee,
|
|
|
|
|
\item[]
|
|
|
|
|
\begin{DUlineblock}{\DUlineblockindent}
|
|
|
|
|
\item[] due to some ancient injury?
|
|
|
|
|
\item[]
|
|
|
|
|
\end{DUlineblock}
|
|
|
|
|
\end{DUlineblock}
|
|
|
|
|
\end{DUlineblock}
|
|
|
|
|
\item[] Singing…
|
|
|
|
|
\end{DUlineblock}
|
|
|
|
|
\end{quote}
|
|
|
|
|
|
|
|
|
|
A line block, like the following poem by Christian Morgenstern, can
|
|
|
|
|
also be centre-aligned:
|
|
|
|
|
|
|
|
|
|
\begin{selectlanguage}{german}
|
|
|
|
|
\begin{DUlineblock}{0em}
|
|
|
|
|
\centering
|
|
|
|
|
\item[] \textbf{Die Trichter}
|
|
|
|
|
\item[]
|
|
|
|
|
\item[] Zwei Trichter wandeln durch die Nacht.
|
|
|
|
|
\item[] Durch ihres Rumpfs verengten Schacht
|
|
|
|
|
\item[] fließt weißes Mondlicht
|
|
|
|
|
\item[] still und heiter
|
|
|
|
|
\item[] auf ihren
|
|
|
|
|
\item[] Waldweg
|
|
|
|
|
\item[] u. s.
|
|
|
|
|
\item[] w.
|
|
|
|
|
\item[]
|
|
|
|
|
\end{DUlineblock}
|
|
|
|
|
\end{selectlanguage}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{2.9 Block Quotes%
|
|
|
|
|
\label{block-quotes}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Block quotes consist of indented body elements:
|
|
|
|
|
|
|
|
|
|
\begin{quote}
|
|
|
|
|
My theory by A. Elk. Brackets Miss, brackets. This theory goes
|
|
|
|
|
as follows and begins now. All brontosauruses are thin at one
|
|
|
|
|
end, much much thicker in the middle and then thin again at the
|
|
|
|
|
far end. That is my theory, it is mine, and belongs to me and I
|
|
|
|
|
own it, and what it is too.
|
|
|
|
|
\nopagebreak
|
|
|
|
|
|
|
|
|
|
\raggedleft —Anne Elk (Miss)
|
|
|
|
|
\end{quote}
|
|
|
|
|
|
|
|
|
|
The language of a quote (like any other object) can be specified by
|
|
|
|
|
a class attribute:
|
|
|
|
|
|
|
|
|
|
%
|
|
|
|
|
|
|
|
|
|
\begin{selectlanguage}{french}
|
|
|
|
|
\begin{quote}
|
|
|
|
|
ReStructuredText est un langage de balisage léger utilisé
|
|
|
|
|
notamment dans la documentation du langage Python.
|
|
|
|
|
\end{quote}
|
|
|
|
|
\end{selectlanguage}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{2.10 Doctest Blocks%
|
|
|
|
|
\label{doctest-blocks}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
\begin{quote}
|
|
|
|
|
\begin{alltt}
|
|
|
|
|
>>> print 'Python-specific usage examples; begun with ">>>"'
|
|
|
|
|
Python-specific usage examples; begun with ">>>"
|
|
|
|
|
>>> print '(cut and pasted from interactive Python sessions)'
|
|
|
|
|
(cut and pasted from interactive Python sessions)
|
|
|
|
|
\end{alltt}
|
|
|
|
|
\end{quote}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{2.11 Footnotes%
|
|
|
|
|
\label{footnotes}%
|
|
|
|
|
}
|
|
|
|
|
%
|
|
|
|
|
\DUfootnotetext{id8}{id1}{1}{%
|
|
|
|
|
A footnote contains body elements, consistently indented by at
|
|
|
|
|
least 3 spaces.
|
|
|
|
|
|
|
|
|
|
This is the footnote’s second paragraph.
|
|
|
|
|
}
|
|
|
|
|
%
|
|
|
|
|
\DUfootnotetext{label}{id3}{2}{\phantomsection\label{label}%
|
|
|
|
|
Footnotes may be numbered, either manually (as in\DUfootnotemark{id9}{id8}{1}) or
|
|
|
|
|
automatically using a “\#”-prefixed label. This footnote has a
|
|
|
|
|
label so it can be referred to from multiple places, both as a
|
|
|
|
|
footnote reference (\DUfootnotemark{id10}{label}{2}) and as a \hyperref[label]{hyperlink reference}.
|
|
|
|
|
}
|
|
|
|
|
%
|
|
|
|
|
\DUfootnotetext{id12}{id2}{3}{%
|
|
|
|
|
This footnote is numbered automatically and anonymously using a
|
|
|
|
|
label of “\#” only.
|
|
|
|
|
|
|
|
|
|
This is the second paragraph.
|
|
|
|
|
|
|
|
|
|
And this is the third paragraph.
|
|
|
|
|
}
|
|
|
|
|
%
|
|
|
|
|
\DUfootnotetext{id13}{id4}{*}{%
|
|
|
|
|
Footnotes may also use symbols, specified with a “*” label.
|
|
|
|
|
Here’s a reference to the next footnote:\DUfootnotemark{id14}{id15}{†}.
|
|
|
|
|
}
|
|
|
|
|
%
|
|
|
|
|
\DUfootnotetext{id15}{id14}{†}{%
|
|
|
|
|
This footnote shows the next symbol in the sequence.
|
|
|
|
|
}
|
|
|
|
|
%
|
|
|
|
|
\DUfootnotetext{id16}{id16}{4}{%
|
|
|
|
|
Here’s an unreferenced footnote, with a reference to a
|
|
|
|
|
nonexistent footnote:%
|
|
|
|
|
\raisebox{1em}{\hypertarget{id17}{}}\hyperlink{id47}{\textbf{\color{red}{[}5{]}\_}}.
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{2.12 Citations%
|
|
|
|
|
\label{citations}%
|
|
|
|
|
}
|
|
|
|
|
\begin{figure}[b]\raisebox{1em}{\hypertarget{cit2002}{}}[CIT2002]
|
|
|
|
|
Citations are text-labeled footnotes. They may be
|
|
|
|
|
rendered separately and differently from footnotes.
|
|
|
|
|
\end{figure}
|
|
|
|
|
|
|
|
|
|
Here’s a reference to the above, \hyperlink{cit2002}{[CIT2002]}, and a %
|
|
|
|
|
\raisebox{1em}{\hypertarget{id19}{}}\hyperlink{id48}{\textbf{\color{red}{[}nonexistent{]}\_}}
|
|
|
|
|
citation.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{2.13 Targets%
|
|
|
|
|
\label{targets}%
|
|
|
|
|
\label{another-target}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
\phantomsection\label{example}
|
|
|
|
|
This paragraph is pointed to by the explicit “example” target. A
|
|
|
|
|
reference can be found under \hyperref[inline-markup]{Inline Markup}, above. \hyperref[inline-hyperlink-targets]{Inline
|
|
|
|
|
hyperlink targets} are also possible.
|
|
|
|
|
|
|
|
|
|
Section headers are implicit targets, referred to by name. See
|
|
|
|
|
\hyperref[targets]{Targets}, which is a subsection of \hyperref[body-elements]{Body Elements}.
|
|
|
|
|
|
|
|
|
|
Explicit external targets are interpolated into references such as
|
|
|
|
|
“\href{http://www.python.org/}{Python}\DUfootnotemark{id31}{id29}{5}”.
|
|
|
|
|
|
|
|
|
|
Targets may be indirect and anonymous. Thus \hyperref[targets]{this phrase} may also
|
|
|
|
|
refer to the \hyperref[targets]{Targets} section.
|
|
|
|
|
|
|
|
|
|
Here’s a %
|
|
|
|
|
\raisebox{1em}{\hypertarget{id50}{}}\hyperlink{id49}{\textbf{\color{red}`hyperlink reference without a target`\_}}, which generates an
|
|
|
|
|
error.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsubsection{2.13.1 Duplicate Target Names%
|
|
|
|
|
\label{duplicate-target-names}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Duplicate names in section headers or other implicit targets will
|
|
|
|
|
generate “info” (level-1) system messages. Duplicate names in
|
|
|
|
|
explicit targets will generate “warning” (level-2) system messages.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsubsection{2.13.2 Duplicate Target Names%
|
|
|
|
|
\label{id21}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Since there are two “Duplicate Target Names” section headers, we
|
|
|
|
|
cannot uniquely refer to either of them by name. If we try to (like
|
|
|
|
|
this: %
|
|
|
|
|
\raisebox{1em}{\hypertarget{id52}{}}\hyperlink{id51}{\textbf{\color{red}`Duplicate Target Names`\_}}), an error is generated.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{2.14 Directives%
|
|
|
|
|
\label{directives}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
\phantomsection\label{contents}
|
|
|
|
|
These are just a sample of the many reStructuredText Directives. For
|
|
|
|
|
others, please see
|
|
|
|
|
\url{http://docutils.sourceforge.net/docs/ref/rst/directives.html}.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsubsection{2.14.1 Document Parts%
|
|
|
|
|
\label{document-parts}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
An example of the “contents” directive can be seen above this section
|
|
|
|
|
(a local, untitled table of \hyperref[contents]{contents}) and at the beginning of the
|
|
|
|
|
document (a document-wide \hyperref[table-of-contents]{table of contents}).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsubsection{2.14.2 Images and Figures%
|
|
|
|
|
\label{images-and-figures}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
An image directive (also clickable – a hyperlink reference):
|
|
|
|
|
|
|
|
|
|
\hyperref[directives]{\includegraphics{../../../docs/user/rst/images/title.png}}
|
|
|
|
|
|
|
|
|
|
Image with multiple IDs:
|
|
|
|
|
|
|
|
|
|
\includegraphics{../../../docs/user/rst/images/title.png}
|
|
|
|
|
\phantomsection\label{image-target-3}\label{image-target-2}\label{image-target-1}
|
|
|
|
|
|
|
|
|
|
A centered image:
|
|
|
|
|
|
|
|
|
|
\noindent\makebox[\linewidth][c]{\includegraphics{../../../docs/user/rst/images/biohazard.png}}
|
|
|
|
|
|
|
|
|
|
A left-aligned image:
|
|
|
|
|
|
|
|
|
|
\noindent{\includegraphics{../../../docs/user/rst/images/biohazard.png}\hfill}
|
|
|
|
|
|
|
|
|
|
This paragraph might flow around the image.
|
|
|
|
|
The specific behavior depends upon the style sheet and
|
|
|
|
|
the browser or rendering software used.
|
|
|
|
|
|
|
|
|
|
A right-aligned image:
|
|
|
|
|
|
|
|
|
|
\noindent{\hfill\includegraphics{../../../docs/user/rst/images/biohazard.png}}
|
|
|
|
|
|
|
|
|
|
This paragraph might flow around the image.
|
|
|
|
|
The specific behavior depends upon the style sheet and
|
|
|
|
|
the browser or rendering software used.
|
|
|
|
|
|
|
|
|
|
For inline images see \hyperref[substitution-definitions]{Substitution Definitions}.
|
|
|
|
|
|
|
|
|
|
Image size:
|
|
|
|
|
|
|
|
|
|
An image 2 em wide:
|
|
|
|
|
|
|
|
|
|
\includegraphics[width=2em]{../../../docs/user/rst/images/biohazard.png}
|
|
|
|
|
|
|
|
|
|
An image 2 em wide and 15 pixel high:
|
|
|
|
|
|
|
|
|
|
\includegraphics[height=15\pdfpxdimen,width=2em]{../../../docs/user/rst/images/biohazard.png}
|
|
|
|
|
|
|
|
|
|
An image occupying 50\% of the line width:
|
|
|
|
|
|
|
|
|
|
\includegraphics[width=0.500\linewidth]{../../../docs/user/rst/images/title.png}
|
|
|
|
|
|
|
|
|
|
An image 2 cm high:
|
|
|
|
|
|
|
|
|
|
\includegraphics[height=2cm]{../../../docs/user/rst/images/biohazard.png}
|
|
|
|
|
|
|
|
|
|
A \emph{figure} is an image with a caption and/or a legend. With page-based output
|
|
|
|
|
media, figures might float to a different position if this helps the page
|
|
|
|
|
layout.
|
|
|
|
|
|
|
|
|
|
\begin{DUclass}{figclass1}
|
|
|
|
|
\begin{DUclass}{figclass2}
|
|
|
|
|
\begin{figure}
|
|
|
|
|
\noindent\makebox[\linewidth][c]{\includegraphics[width=258bp]{../../../docs/user/rst/images/title.png}}
|
|
|
|
|
\caption{Plaintext markup syntax and parser system.}
|
|
|
|
|
\begin{DUlegend}
|
|
|
|
|
\setlength{\DUtablewidth}{\linewidth}
|
|
|
|
|
\begin{longtable*}[c]{|p{0.156\DUtablewidth}|p{0.563\DUtablewidth}|}
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
re
|
|
|
|
|
&
|
|
|
|
|
Revised, revisited, based on ‘re’ module.
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
Structured
|
|
|
|
|
&
|
|
|
|
|
Structure-enhanced text, structuredtext.
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
Text
|
|
|
|
|
&
|
|
|
|
|
Well it is, isn’t it?
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
\end{longtable*}
|
|
|
|
|
|
|
|
|
|
This paragraph is also part of the legend.
|
|
|
|
|
\end{DUlegend}
|
|
|
|
|
\end{figure}
|
|
|
|
|
\end{DUclass}
|
|
|
|
|
\end{DUclass}
|
|
|
|
|
|
|
|
|
|
A left-aligned figure:
|
|
|
|
|
|
|
|
|
|
\begin{DUclass}{figclass1}
|
|
|
|
|
\begin{DUclass}{figclass2}
|
|
|
|
|
\begin{figure} % align = "left"
|
|
|
|
|
\noindent\makebox[\linewidth][c]{\includegraphics[width=40\pdfpxdimen]{../../../docs/user/rst/images/biohazard.png}}
|
|
|
|
|
\caption{This is the caption.}
|
|
|
|
|
\begin{DUlegend}
|
|
|
|
|
This is the legend.
|
|
|
|
|
|
|
|
|
|
The legend may consist of several paragraphs.
|
|
|
|
|
\end{DUlegend}
|
|
|
|
|
\end{figure}
|
|
|
|
|
\end{DUclass}
|
|
|
|
|
\end{DUclass}
|
|
|
|
|
|
|
|
|
|
This paragraph might flow around the figure.
|
|
|
|
|
|
|
|
|
|
The specific behavior depends upon the style sheet and the browser or
|
|
|
|
|
rendering software used.
|
|
|
|
|
|
|
|
|
|
A centered figure:
|
|
|
|
|
|
|
|
|
|
\begin{figure}
|
|
|
|
|
\noindent\makebox[\linewidth][c]{\includegraphics[width=40\pdfpxdimen]{../../../docs/user/rst/images/biohazard.png}}
|
|
|
|
|
\caption{This is the caption.}
|
|
|
|
|
\begin{DUlegend}
|
|
|
|
|
This is the legend.
|
|
|
|
|
|
|
|
|
|
The legend may consist of several paragraphs.
|
|
|
|
|
\end{DUlegend}
|
|
|
|
|
\end{figure}
|
|
|
|
|
|
|
|
|
|
This paragraph might flow around the figure.
|
|
|
|
|
|
|
|
|
|
The specific behavior depends upon the style sheet and the browser or
|
|
|
|
|
rendering software used.
|
|
|
|
|
|
|
|
|
|
A right-aligned figure:
|
|
|
|
|
|
|
|
|
|
\begin{figure} % align = "right"
|
|
|
|
|
\noindent\makebox[\linewidth][c]{\includegraphics[width=40\pdfpxdimen]{../../../docs/user/rst/images/biohazard.png}}
|
|
|
|
|
\caption{This is the caption.}
|
|
|
|
|
\begin{DUlegend}
|
|
|
|
|
This is the legend.
|
|
|
|
|
|
|
|
|
|
The legend may consist of several paragraphs.
|
|
|
|
|
\end{DUlegend}
|
|
|
|
|
\end{figure}
|
|
|
|
|
|
|
|
|
|
This paragraph might flow around the figure. The specific behavior depends
|
|
|
|
|
upon the style sheet and the browser or rendering software used.
|
|
|
|
|
|
|
|
|
|
Tables may be given titles and additional arguments with the \emph{table}
|
|
|
|
|
directive:
|
|
|
|
|
|
|
|
|
|
\setlength{\DUtablewidth}{\linewidth}
|
|
|
|
|
\begin{longtable}[l]{|p{0.075\DUtablewidth}|p{0.075\DUtablewidth}|}
|
|
|
|
|
\caption{left-aligned table}\\
|
|
|
|
|
\hline
|
|
|
|
|
\textbf{%
|
|
|
|
|
A
|
|
|
|
|
} & \textbf{%
|
|
|
|
|
not A
|
|
|
|
|
} \\
|
|
|
|
|
\hline
|
|
|
|
|
\endfirsthead
|
|
|
|
|
\caption[]{left-aligned table (... continued)}\\
|
|
|
|
|
\hline
|
|
|
|
|
\textbf{%
|
|
|
|
|
A
|
|
|
|
|
} & \textbf{%
|
|
|
|
|
not A
|
|
|
|
|
} \\
|
|
|
|
|
\hline
|
|
|
|
|
\endhead
|
|
|
|
|
\multicolumn{2}{c}{\hfill ... continued on next page} \\
|
|
|
|
|
\endfoot
|
|
|
|
|
\endlastfoot
|
|
|
|
|
|
|
|
|
|
False
|
|
|
|
|
&
|
|
|
|
|
True
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
True
|
|
|
|
|
&
|
|
|
|
|
False
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
\end{longtable}
|
|
|
|
|
|
|
|
|
|
\setlength{\DUtablewidth}{\linewidth}
|
|
|
|
|
\begin{longtable}[c]{|p{0.075\DUtablewidth}|p{0.075\DUtablewidth}|}
|
|
|
|
|
\caption{center-aligned table}\\
|
|
|
|
|
\hline
|
|
|
|
|
\textbf{%
|
|
|
|
|
A
|
|
|
|
|
} & \textbf{%
|
|
|
|
|
not A
|
|
|
|
|
} \\
|
|
|
|
|
\hline
|
|
|
|
|
\endfirsthead
|
|
|
|
|
\caption[]{center-aligned table (... continued)}\\
|
|
|
|
|
\hline
|
|
|
|
|
\textbf{%
|
|
|
|
|
A
|
|
|
|
|
} & \textbf{%
|
|
|
|
|
not A
|
|
|
|
|
} \\
|
|
|
|
|
\hline
|
|
|
|
|
\endhead
|
|
|
|
|
\multicolumn{2}{c}{\hfill ... continued on next page} \\
|
|
|
|
|
\endfoot
|
|
|
|
|
\endlastfoot
|
|
|
|
|
|
|
|
|
|
False
|
|
|
|
|
&
|
|
|
|
|
True
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
True
|
|
|
|
|
&
|
|
|
|
|
False
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
\end{longtable}
|
|
|
|
|
|
|
|
|
|
\setlength{\DUtablewidth}{\linewidth}
|
|
|
|
|
\begin{longtable}[r]{|p{0.075\DUtablewidth}|p{0.075\DUtablewidth}|}
|
|
|
|
|
\caption{right-aligned table}\\
|
|
|
|
|
\hline
|
|
|
|
|
\textbf{%
|
|
|
|
|
A
|
|
|
|
|
} & \textbf{%
|
|
|
|
|
not A
|
|
|
|
|
} \\
|
|
|
|
|
\hline
|
|
|
|
|
\endfirsthead
|
|
|
|
|
\caption[]{right-aligned table (... continued)}\\
|
|
|
|
|
\hline
|
|
|
|
|
\textbf{%
|
|
|
|
|
A
|
|
|
|
|
} & \textbf{%
|
|
|
|
|
not A
|
|
|
|
|
} \\
|
|
|
|
|
\hline
|
|
|
|
|
\endhead
|
|
|
|
|
\multicolumn{2}{c}{\hfill ... continued on next page} \\
|
|
|
|
|
\endfoot
|
|
|
|
|
\endlastfoot
|
|
|
|
|
|
|
|
|
|
False
|
|
|
|
|
&
|
|
|
|
|
True
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
True
|
|
|
|
|
&
|
|
|
|
|
False
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
\end{longtable}
|
|
|
|
|
|
|
|
|
|
With the “widths” argument “auto” (or “class” value “colwidths-auto”),
|
|
|
|
|
column widths are determined by the backend (if supported by the
|
|
|
|
|
writer/backend).
|
|
|
|
|
|
|
|
|
|
\begin{longtable*}[c]{|l|l|l|}
|
|
|
|
|
\hline
|
|
|
|
|
\textbf{A} & \textbf{B} & \textbf{A or B} \\
|
|
|
|
|
\hline
|
|
|
|
|
\endfirsthead
|
|
|
|
|
\hline
|
|
|
|
|
\textbf{A} & \textbf{B} & \textbf{A or B} \\
|
|
|
|
|
\hline
|
|
|
|
|
\endhead
|
|
|
|
|
\multicolumn{3}{c}{\hfill ... continued on next page} \\
|
|
|
|
|
\endfoot
|
|
|
|
|
\endlastfoot
|
|
|
|
|
False & False & False \\
|
|
|
|
|
\hline
|
|
|
|
|
True & False & True \\
|
|
|
|
|
\hline
|
|
|
|
|
False & True & True \\
|
|
|
|
|
\hline
|
|
|
|
|
True & True & True \\
|
|
|
|
|
\hline
|
|
|
|
|
\end{longtable*}
|
|
|
|
|
\label{target2}\label{target1}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsubsection{2.14.3 Admonitions%
|
|
|
|
|
\label{admonitions}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
\DUadmonition[attention]{
|
|
|
|
|
\DUtitle[attention]{Attention!}
|
|
|
|
|
|
|
|
|
|
Directives at large.
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
\DUadmonition[caution]{
|
|
|
|
|
\DUtitle[caution]{Caution!}
|
|
|
|
|
|
|
|
|
|
Don’t take any wooden nickels.
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
\DUadmonition[danger]{
|
|
|
|
|
\DUtitle[danger]{!DANGER!}
|
|
|
|
|
|
|
|
|
|
Mad scientist at work!
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
\DUadmonition[error]{
|
|
|
|
|
\DUtitle[error]{Error}
|
|
|
|
|
|
|
|
|
|
Does not compute.
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
\DUadmonition[hint]{
|
|
|
|
|
\DUtitle[hint]{Hint}
|
|
|
|
|
|
|
|
|
|
It’s bigger than a bread box.
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
\DUadmonition[important]{
|
|
|
|
|
\DUtitle[important]{Important}
|
|
|
|
|
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
\item Wash behind your ears.
|
|
|
|
|
|
|
|
|
|
\item Clean up your room.
|
|
|
|
|
|
|
|
|
|
\item Call your mother.
|
|
|
|
|
|
|
|
|
|
\item Back up your data.
|
|
|
|
|
\end{itemize}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
\DUadmonition[note]{
|
|
|
|
|
\DUtitle[note]{Note}
|
|
|
|
|
|
|
|
|
|
This is a note.
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
\DUadmonition[tip]{
|
|
|
|
|
\DUtitle[tip]{Tip}
|
|
|
|
|
|
|
|
|
|
15\% if the service is good.
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
\DUadmonition[warning]{
|
|
|
|
|
\DUtitle[warning]{Warning}
|
|
|
|
|
|
|
|
|
|
Strong prose may provoke extreme mental exertion.
|
|
|
|
|
Reader discretion is strongly advised.
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
\DUadmonition[admonition-and-by-the-way]{
|
|
|
|
|
\DUtitle[admonition-and-by-the-way]{And, by the way…}
|
|
|
|
|
|
|
|
|
|
You can make up your own admonition too.
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsubsection{2.14.4 Topics, Sidebars, and Rubrics%
|
|
|
|
|
\label{topics-sidebars-and-rubrics}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
\emph{Sidebars} are like miniature, parallel documents.
|
|
|
|
|
|
|
|
|
|
\DUsidebar{
|
|
|
|
|
\DUtitle[title]{Sidebar Title}
|
|
|
|
|
|
|
|
|
|
\DUsubtitle[sidebar]{Optional Subtitle}
|
|
|
|
|
|
|
|
|
|
This is a sidebar. It is for text outside the flow of the main
|
|
|
|
|
text.
|
|
|
|
|
|
|
|
|
|
\DUrubric{This is a rubric inside a sidebar}
|
|
|
|
|
|
|
|
|
|
Sidebars often appear beside the main text with a border and a different
|
|
|
|
|
background or font color.
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
A \emph{topic} is like a block quote with a title, or a self-contained section
|
|
|
|
|
with no subsections.
|
|
|
|
|
|
|
|
|
|
\begin{DUclass}{topic}
|
|
|
|
|
\begin{quote}
|
|
|
|
|
\DUtitle[topic]{Topic Title}
|
|
|
|
|
|
|
|
|
|
This is a topic.
|
|
|
|
|
\end{quote}
|
|
|
|
|
\end{DUclass}
|
|
|
|
|
|
|
|
|
|
A \emph{rubric} is like an informal heading that doesn’t correspond to the
|
|
|
|
|
document’s structure. It is typically highlighted in red (hence the name).
|
|
|
|
|
|
|
|
|
|
\DUrubric{This is a rubric}
|
|
|
|
|
|
|
|
|
|
Topics and rubrics can be used at places where a \hyperref[section-title]{section title} is not
|
|
|
|
|
allowed (e.g. inside a directive).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsubsection{2.14.5 Target Footnotes%
|
|
|
|
|
\label{target-footnotes}%
|
|
|
|
|
}
|
|
|
|
|
%
|
|
|
|
|
\DUfootnotetext{id29}{id30}{5}{%
|
|
|
|
|
\url{http://www.python.org/}
|
|
|
|
|
}
|
|
|
|
|
%
|
|
|
|
|
\DUfootnotetext{id33}{id34}{6}{%
|
|
|
|
|
\url{http://pygments.org/}
|
|
|
|
|
}
|
|
|
|
|
%
|
|
|
|
|
\DUfootnotetext{id35}{id36}{7}{%
|
|
|
|
|
\url{ftp://ftp.ams.org/ams/doc/amsmath/short-math-guide.pdf}
|
|
|
|
|
}
|
|
|
|
|
%
|
|
|
|
|
\DUfootnotetext{id38}{id39}{8}{%
|
|
|
|
|
\url{http://ctan.org/pkg/polyglossia}
|
|
|
|
|
}
|
|
|
|
|
%
|
|
|
|
|
\DUfootnotetext{id41}{id42}{9}{%
|
|
|
|
|
\url{http://docutils.sourceforge.net/}
|
|
|
|
|
}
|
|
|
|
|
%
|
|
|
|
|
\DUfootnotetext{id43}{id44}{10}{%
|
|
|
|
|
\url{A:DOS\\path\\}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsubsection{2.14.6 Replacement Text%
|
|
|
|
|
\label{replacement-text}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
I recommend you try \href{http://www.python.org/}{Python, \emph{the} best language around}\DUfootnotemark{id32}{id29}{5}.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsubsection{2.14.7 Compound Paragraph%
|
|
|
|
|
\label{compound-paragraph}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
The \emph{compound} directive is used to create a “compound paragraph”, which
|
|
|
|
|
is a single logical paragraph containing multiple physical body
|
|
|
|
|
elements. For example:
|
|
|
|
|
|
|
|
|
|
\begin{DUclass}{compound}
|
|
|
|
|
The ‘rm’ command is very dangerous. If you are logged
|
|
|
|
|
in as root and enter
|
|
|
|
|
\begin{quote}
|
|
|
|
|
\begin{alltt}
|
|
|
|
|
cd /
|
|
|
|
|
rm -rf *
|
|
|
|
|
\end{alltt}
|
|
|
|
|
\end{quote}
|
|
|
|
|
you will erase the entire contents of your file system.
|
|
|
|
|
\end{DUclass}
|
|
|
|
|
|
|
|
|
|
Test the handling and display of compound paragraphs:
|
|
|
|
|
|
|
|
|
|
\begin{DUclass}{compound}
|
|
|
|
|
\begin{DUclass}{some-class}
|
|
|
|
|
Compound 2, paragraph 1,
|
|
|
|
|
|
|
|
|
|
compound 2, paragraph 2,
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
\item list item 1,
|
|
|
|
|
|
|
|
|
|
\item list item 2,
|
|
|
|
|
\end{itemize}
|
|
|
|
|
compound 2, paragraph 3.
|
|
|
|
|
\end{DUclass}
|
|
|
|
|
\end{DUclass}
|
|
|
|
|
|
|
|
|
|
\begin{DUclass}{compound}
|
|
|
|
|
Compound 3, only consisting of one paragraph.
|
|
|
|
|
\end{DUclass}
|
|
|
|
|
|
|
|
|
|
\begin{DUclass}{compound}
|
|
|
|
|
\begin{quote}
|
|
|
|
|
\begin{alltt}
|
|
|
|
|
Compound 4.
|
|
|
|
|
This one starts with a literal block.
|
|
|
|
|
\end{alltt}
|
|
|
|
|
\end{quote}
|
|
|
|
|
Compound 4, paragraph following the literal block.
|
|
|
|
|
\end{DUclass}
|
|
|
|
|
|
|
|
|
|
Now something \emph{really} perverted – a nested compound block. This is
|
|
|
|
|
just to test that it works at all; the results don’t have to be
|
|
|
|
|
meaningful.
|
|
|
|
|
|
|
|
|
|
\begin{DUclass}{compound}
|
|
|
|
|
Compound 5, block 1 (a paragraph).
|
|
|
|
|
|
|
|
|
|
\begin{DUclass}{compound}
|
|
|
|
|
Compound 6 is block 2 in compound 5.
|
|
|
|
|
|
|
|
|
|
Compound 6, another paragraph.
|
|
|
|
|
\end{DUclass}
|
|
|
|
|
|
|
|
|
|
Compound 5, block 3 (a paragraph).
|
|
|
|
|
\end{DUclass}
|
|
|
|
|
|
|
|
|
|
\begin{DUclass}{compound}
|
|
|
|
|
Compound 7, tests the inclusion of various block-level
|
|
|
|
|
elements in one logical paragraph. First a table,
|
|
|
|
|
|
|
|
|
|
\setlength{\DUtablewidth}{\linewidth}
|
|
|
|
|
\begin{longtable*}[c]{|p{0.249\DUtablewidth}|p{0.249\DUtablewidth}|p{0.249\DUtablewidth}|}
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
Left cell, first
|
|
|
|
|
paragraph.
|
|
|
|
|
|
|
|
|
|
Left cell, second
|
|
|
|
|
paragraph.
|
|
|
|
|
&
|
|
|
|
|
Middle cell,
|
|
|
|
|
consisting of
|
|
|
|
|
exactly one
|
|
|
|
|
paragraph.
|
|
|
|
|
&
|
|
|
|
|
Right cell.
|
|
|
|
|
|
|
|
|
|
Paragraph 2.
|
|
|
|
|
|
|
|
|
|
Paragraph 3.
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
\end{longtable*}
|
|
|
|
|
followed by a paragraph. This physical paragraph is
|
|
|
|
|
actually a continuation of the paragraph before the table. It is followed
|
|
|
|
|
by
|
|
|
|
|
\begin{quote}
|
|
|
|
|
a quote and
|
|
|
|
|
\end{quote}
|
|
|
|
|
\begin{enumerate}
|
|
|
|
|
\item an enumerated list,
|
|
|
|
|
\end{enumerate}
|
|
|
|
|
a paragraph,
|
|
|
|
|
\begin{DUoptionlist}
|
|
|
|
|
\item[--an] option list,
|
|
|
|
|
\end{DUoptionlist}
|
|
|
|
|
a paragraph,
|
|
|
|
|
\begin{DUfieldlist}
|
|
|
|
|
\item[{a field:}]
|
|
|
|
|
list,
|
|
|
|
|
\end{DUfieldlist}
|
|
|
|
|
a paragraph,
|
|
|
|
|
\begin{description}
|
|
|
|
|
\item[{a definition}] \leavevmode
|
|
|
|
|
list,
|
|
|
|
|
|
|
|
|
|
\end{description}
|
|
|
|
|
a paragraph, an image:
|
|
|
|
|
\includegraphics{../../../docs/user/rst/images/biohazard.png}
|
|
|
|
|
a paragraph,
|
|
|
|
|
\begin{DUlineblock}{0em}
|
|
|
|
|
\item[] a line
|
|
|
|
|
\item[] block,
|
|
|
|
|
\end{DUlineblock}
|
|
|
|
|
a paragraph followed by a comment,
|
|
|
|
|
% this is a comment
|
|
|
|
|
a paragraph, a
|
|
|
|
|
|
|
|
|
|
\DUadmonition[note]{
|
|
|
|
|
\DUtitle[note]{Note}
|
|
|
|
|
|
|
|
|
|
with content
|
|
|
|
|
}
|
|
|
|
|
and the final paragraph of the compound 7.
|
|
|
|
|
\end{DUclass}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsubsection{2.14.8 Parsed Literal Blocks%
|
|
|
|
|
\label{parsed-literal-blocks}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
\begin{quote}
|
|
|
|
|
{\ttfamily \raggedright \noindent
|
|
|
|
|
This~is~a~parsed~literal~block.\\
|
|
|
|
|
~~~~This~line~is~indented.~~The~next~line~is~blank.\\
|
|
|
|
|
~\\
|
|
|
|
|
Inline~markup~is~supported,~e.g.~\emph{emphasis},~\textbf{strong},~\texttt{literal\\
|
|
|
|
|
text},~\textsubscript{sub-}~and~\textsuperscript{super}scripts,\\
|
|
|
|
|
inline~formulas:~$A = 2 \pi r^2$,\\
|
|
|
|
|
footnotes\DUfootnotemark{id22}{id8}{1},~%
|
|
|
|
|
\phantomsection\label{hyperlink-targets}hyperlink~targets,~and~\href{http://www.python.org/}{references}.
|
|
|
|
|
}
|
|
|
|
|
\end{quote}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsubsection{2.14.9 Code%
|
|
|
|
|
\label{code}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Blocks of source code can be set with the \DUroletitlereference{code} directive. If the code
|
|
|
|
|
language is specified, the content is parsed and tagged by the \href{http://pygments.org/}{Pygments}\DUfootnotemark{id34}{id33}{6}
|
|
|
|
|
syntax highlighter and can be formatted with a style sheet. (Code parsing
|
|
|
|
|
is turned off using the \texttt{syntax-highlight} config setting in the test
|
|
|
|
|
conversions in order to get identical results with/without installed
|
|
|
|
|
Pygments highlighter.)
|
|
|
|
|
|
|
|
|
|
\begin{DUclass}{code}
|
|
|
|
|
\begin{DUclass}{python}
|
|
|
|
|
\begin{quote}
|
|
|
|
|
\begin{alltt}
|
|
|
|
|
print 'This is Python code.'
|
|
|
|
|
\end{alltt}
|
|
|
|
|
\end{quote}
|
|
|
|
|
\end{DUclass}
|
|
|
|
|
\end{DUclass}
|
|
|
|
|
|
|
|
|
|
The \texttt{:number-lines:} option (with optional start value) generates line
|
|
|
|
|
numbers:
|
|
|
|
|
|
|
|
|
|
\begin{DUclass}{code}
|
|
|
|
|
\begin{DUclass}{python}
|
|
|
|
|
\begin{quote}
|
|
|
|
|
{\ttfamily \raggedright \noindent
|
|
|
|
|
\DUrole{ln}{~8~}\#~print~integers~from~0~to~9:\\
|
|
|
|
|
\DUrole{ln}{~9~}for~i~in~range(10):\\
|
|
|
|
|
\DUrole{ln}{10~}~~~~print~i
|
|
|
|
|
}
|
|
|
|
|
\end{quote}
|
|
|
|
|
\end{DUclass}
|
|
|
|
|
\end{DUclass}
|
|
|
|
|
|
|
|
|
|
For inline code snippets, there is the \DUroletitlereference{code} role, which can be used
|
|
|
|
|
directly (the code will not be parsed/tagged, as the language is not known)
|
|
|
|
|
or as base for special code roles, e.g. the LaTeX code in the next
|
|
|
|
|
paragraph.
|
|
|
|
|
|
|
|
|
|
Docutils uses LaTeX syntax for math directives and roles:
|
|
|
|
|
\texttt{\DUrole{code}{\DUrole{tex}{\textbackslash{}alpha = f(x)}}} prints $\alpha = f(x)$.
|
|
|
|
|
|
|
|
|
|
The \texttt{:code:} option of the \DUroletitlereference{include} directive sets the included content
|
|
|
|
|
as a code block, here the rst file \texttt{header\_footer.txt} with line numbers:
|
|
|
|
|
|
|
|
|
|
\begin{DUclass}{code}
|
|
|
|
|
\begin{DUclass}{rst}
|
|
|
|
|
\begin{quote}
|
|
|
|
|
{\ttfamily \raggedright \noindent
|
|
|
|
|
\DUrole{ln}{1~}..~header::~Document~header\\
|
|
|
|
|
\DUrole{ln}{2~}..~footer::~Document~footer
|
|
|
|
|
}
|
|
|
|
|
\end{quote}
|
|
|
|
|
\end{DUclass}
|
|
|
|
|
\end{DUclass}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{2.15 Substitution Definitions%
|
|
|
|
|
\label{substitution-definitions}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
An inline image (\includegraphics{../../../docs/user/rst/images/biohazard.png}) example:
|
|
|
|
|
|
|
|
|
|
(Substitution definitions are not visible in the HTML source.)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{2.16 Comments%
|
|
|
|
|
\label{comments}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Here’s one:
|
|
|
|
|
|
|
|
|
|
% Comments begin with two dots and a space. Anything may
|
|
|
|
|
% follow, except for the syntax of footnotes, hyperlink
|
|
|
|
|
% targets, directives, or substitution definitions.
|
|
|
|
|
%
|
|
|
|
|
% Double-dashes -- "--" -- must be escaped somehow in HTML output.
|
|
|
|
|
%
|
|
|
|
|
% Comments may contain non-ASCII characters: ä ö ü æ ø å
|
|
|
|
|
|
|
|
|
|
(View the HTML source to see the comment.)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{2.17 Raw text%
|
|
|
|
|
\label{raw-text}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
This does not necessarily look nice, because there may be missing white space.
|
|
|
|
|
|
|
|
|
|
It’s just there to freeze the behavior.
|
|
|
|
|
|
|
|
|
|
A test.
|
|
|
|
|
|
|
|
|
|
Second test.
|
|
|
|
|
|
|
|
|
|
\DUrole{myclass}{Another test with myclass set.}
|
|
|
|
|
|
|
|
|
|
This is the \DUrole{myrawroleclass}{fourth test} with myrawroleclass set.
|
|
|
|
|
|
|
|
|
|
Fifth test in LaTeX.\\Line two.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{2.18 Container%
|
|
|
|
|
\label{container}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
\begin{DUclass}{custom}
|
|
|
|
|
|
|
|
|
|
paragraph 1
|
|
|
|
|
|
|
|
|
|
paragraph 2
|
|
|
|
|
\end{DUclass}
|
|
|
|
|
|
|
|
|
|
% currently not implemented in LaTeX:
|
|
|
|
|
% .. include:: data/header_footer.txt
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{2.19 Colspanning tables%
|
|
|
|
|
\label{colspanning-tables}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
This table has a cell spanning two columns:
|
|
|
|
|
|
|
|
|
|
\setlength{\DUtablewidth}{\linewidth}
|
|
|
|
|
\begin{longtable*}[c]{|p{0.075\DUtablewidth}|p{0.075\DUtablewidth}|p{0.086\DUtablewidth}|}
|
|
|
|
|
\hline
|
|
|
|
|
\multicolumn{2}{|p{0.15\DUtablewidth}|}{\textbf{%
|
|
|
|
|
Inputs
|
|
|
|
|
}} & \textbf{%
|
|
|
|
|
Output
|
|
|
|
|
} \\
|
|
|
|
|
\hline
|
|
|
|
|
\textbf{%
|
|
|
|
|
A
|
|
|
|
|
} & \textbf{%
|
|
|
|
|
B
|
|
|
|
|
} & \textbf{%
|
|
|
|
|
A or B
|
|
|
|
|
} \\
|
|
|
|
|
\hline
|
|
|
|
|
\endfirsthead
|
|
|
|
|
\hline
|
|
|
|
|
\multicolumn{2}{|p{0.15\DUtablewidth}|}{\textbf{%
|
|
|
|
|
Inputs
|
|
|
|
|
}} & \textbf{%
|
|
|
|
|
Output
|
|
|
|
|
} \\
|
|
|
|
|
\hline
|
|
|
|
|
\textbf{%
|
|
|
|
|
A
|
|
|
|
|
} & \textbf{%
|
|
|
|
|
B
|
|
|
|
|
} & \textbf{%
|
|
|
|
|
A or B
|
|
|
|
|
} \\
|
|
|
|
|
\hline
|
|
|
|
|
\endhead
|
|
|
|
|
\multicolumn{3}{c}{\hfill ... continued on next page} \\
|
|
|
|
|
\endfoot
|
|
|
|
|
\endlastfoot
|
|
|
|
|
|
|
|
|
|
False
|
|
|
|
|
&
|
|
|
|
|
False
|
|
|
|
|
&
|
|
|
|
|
False
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
True
|
|
|
|
|
&
|
|
|
|
|
False
|
|
|
|
|
&
|
|
|
|
|
True
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
False
|
|
|
|
|
&
|
|
|
|
|
True
|
|
|
|
|
&
|
|
|
|
|
True
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
True
|
|
|
|
|
&
|
|
|
|
|
True
|
|
|
|
|
&
|
|
|
|
|
True
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
\end{longtable*}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{2.20 Rowspanning tables%
|
|
|
|
|
\label{rowspanning-tables}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Here’s a table with cells spanning several rows:
|
|
|
|
|
|
|
|
|
|
\setlength{\DUtablewidth}{\linewidth}
|
|
|
|
|
\begin{longtable*}[c]{|p{0.296\DUtablewidth}|p{0.156\DUtablewidth}|p{0.226\DUtablewidth}|}
|
|
|
|
|
\hline
|
|
|
|
|
\textbf{%
|
|
|
|
|
Header row, column 1
|
|
|
|
|
(header rows optional)
|
|
|
|
|
} & \textbf{%
|
|
|
|
|
Header 2
|
|
|
|
|
} & \textbf{%
|
|
|
|
|
Header 3
|
|
|
|
|
} \\
|
|
|
|
|
\hline
|
|
|
|
|
\endfirsthead
|
|
|
|
|
\hline
|
|
|
|
|
\textbf{%
|
|
|
|
|
Header row, column 1
|
|
|
|
|
(header rows optional)
|
|
|
|
|
} & \textbf{%
|
|
|
|
|
Header 2
|
|
|
|
|
} & \textbf{%
|
|
|
|
|
Header 3
|
|
|
|
|
} \\
|
|
|
|
|
\hline
|
|
|
|
|
\endhead
|
|
|
|
|
\multicolumn{3}{c}{\hfill ... continued on next page} \\
|
|
|
|
|
\endfoot
|
|
|
|
|
\endlastfoot
|
|
|
|
|
|
|
|
|
|
body row 1, column 1
|
|
|
|
|
&
|
|
|
|
|
column 2
|
|
|
|
|
&
|
|
|
|
|
column 3
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
body row 2
|
|
|
|
|
& \multirow{2}{0.16\DUtablewidth}{%
|
|
|
|
|
Cells may
|
|
|
|
|
span rows.
|
|
|
|
|
} & \multirow{2}{0.23\DUtablewidth}{%
|
|
|
|
|
Another
|
|
|
|
|
rowspanning
|
|
|
|
|
cell.
|
|
|
|
|
} \\
|
|
|
|
|
\cline{1-1}
|
|
|
|
|
|
|
|
|
|
body row 3
|
|
|
|
|
& & \\
|
|
|
|
|
\hline
|
|
|
|
|
\end{longtable*}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{2.21 Custom Roles%
|
|
|
|
|
\label{custom-roles}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
\item A role based on an existing role.
|
|
|
|
|
|
|
|
|
|
\texttt{\DUrole{custom}{one}} \texttt{\DUrole{custom}{two}} \texttt{\DUrole{custom}{three}}
|
|
|
|
|
|
|
|
|
|
\item A new role.
|
|
|
|
|
|
|
|
|
|
\DUrole{customnew}{one two three}
|
|
|
|
|
|
|
|
|
|
\item A role with class attribute.
|
|
|
|
|
|
|
|
|
|
\DUrole{special}{interpreted text}
|
|
|
|
|
|
|
|
|
|
\item A language-switching role:
|
|
|
|
|
|
|
|
|
|
Let’s count in German \foreignlanguage{german}{eins zwei drei}.
|
|
|
|
|
|
|
|
|
|
\item A role with multiple class attributes, styled with raw directives:
|
|
|
|
|
|
|
|
|
|
\newcommand{\DUrolegreen}[1]{\textcolor{green}{#1}}
|
|
|
|
|
\newcommand{\DUrolesc}[1]{\textsc{#1}}
|
|
|
|
|
|
|
|
|
|
The following works in most browsers but does not validate
|
|
|
|
|
(\texttt{<style>} is only allowed in the document head):
|
|
|
|
|
|
|
|
|
|
\begin{quote}
|
|
|
|
|
\begin{alltt}
|
|
|
|
|
.. raw:: html
|
|
|
|
|
|
|
|
|
|
<style type="text/css"><!--
|
|
|
|
|
.green \{color: green;\}
|
|
|
|
|
.sc \{font-variant: small-caps;\}
|
|
|
|
|
--></style>
|
|
|
|
|
\end{alltt}
|
|
|
|
|
\end{quote}
|
|
|
|
|
|
|
|
|
|
\DUrole{green}{\DUrole{sc}{\foreignlanguage{english}{British colourful text in small-caps}}}.
|
|
|
|
|
\end{itemize}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{2.22 Mathematics%
|
|
|
|
|
\label{mathematics}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Docutils supports inline math with the prefix or postfix \texttt{:math:}
|
|
|
|
|
role specificator, $n! + \sin(x_n^2)$ and $A_\text{c} =
|
|
|
|
|
\frac{\pi}{4} d^2$, as well as displayed math via the
|
|
|
|
|
\DUroletitlereference{math} directive:
|
|
|
|
|
%
|
|
|
|
|
\begin{equation*}
|
|
|
|
|
f(\epsilon) = \frac{1}{1 + \exp\left(\frac{\varepsilon}{k_\text{B}T}\right)}
|
|
|
|
|
\end{equation*}
|
|
|
|
|
Content may start on the first line of the directive, e.g.
|
|
|
|
|
%
|
|
|
|
|
\begin{equation*}
|
|
|
|
|
N = \frac{\text{number of apples}}{7}
|
|
|
|
|
\end{equation*}
|
|
|
|
|
Equations can be labeled with a reference name using the \texttt{:name:} option.
|
|
|
|
|
See \hyperref[eq-m]{eq:M} and \hyperref[eq-schrodinger]{eq:schrödinger} below.
|
|
|
|
|
|
|
|
|
|
The determinant of the matrix
|
|
|
|
|
%
|
|
|
|
|
\begin{equation*}
|
|
|
|
|
\mathbf{M} = \left(\begin{matrix}a&b\\c&d\end{matrix}\right)
|
|
|
|
|
\phantomsection
|
|
|
|
|
\label{eq-m}
|
|
|
|
|
\end{equation*}
|
|
|
|
|
is $|\mathbf{M}| = ad - bc$.
|
|
|
|
|
|
|
|
|
|
More than one display math block can be put in one math directive.
|
|
|
|
|
For example, the following sum and integral with limits:
|
|
|
|
|
%
|
|
|
|
|
\begin{equation*}
|
|
|
|
|
\int_0^1 x^n dx = \frac{1}{n + 1}
|
|
|
|
|
\end{equation*}%
|
|
|
|
|
\begin{equation*}
|
|
|
|
|
\sum_{n=1}^m n = \frac{m(m+1)}{2}
|
|
|
|
|
\end{equation*}
|
|
|
|
|
LaTeX-supported Unicode math symbols can be used in math roles and
|
|
|
|
|
directives:
|
|
|
|
|
|
|
|
|
|
The Schrödinger equation
|
|
|
|
|
%
|
|
|
|
|
\begin{equation*}
|
|
|
|
|
i\hbar \frac{\partial }{\partial t}\Psi = \hat{H}\Psi ,
|
|
|
|
|
\phantomsection
|
|
|
|
|
\label{eq-schrodinger}
|
|
|
|
|
\end{equation*}
|
|
|
|
|
with the \emph{wave function} $\Psi $, describes how the quantum state of a
|
|
|
|
|
physical system changes in time.
|
|
|
|
|
|
|
|
|
|
\begin{description}
|
|
|
|
|
\item[{Math-Accents:}] \leavevmode
|
|
|
|
|
\setlength{\DUtablewidth}{\linewidth}
|
|
|
|
|
\begin{longtable*}[c]{p{0.315\DUtablewidth}p{0.315\DUtablewidth}p{0.315\DUtablewidth}}
|
|
|
|
|
|
|
|
|
|
$\acute{a}$ \texttt{\textbackslash{}acute\{a\}}
|
|
|
|
|
&
|
|
|
|
|
$\dot{t}$ \texttt{\textbackslash{}dot\{t\}}
|
|
|
|
|
&
|
|
|
|
|
$\hat{\gamma}$ \texttt{\textbackslash{}hat\{\textbackslash{}gamma\}}
|
|
|
|
|
\\
|
|
|
|
|
|
|
|
|
|
$\grave{a}$ \texttt{\textbackslash{}grave\{a\}}
|
|
|
|
|
&
|
|
|
|
|
$\ddot{t}$ \texttt{\textbackslash{}ddot\{t\}}
|
|
|
|
|
&
|
|
|
|
|
$\tilde{\alpha}$ \texttt{\textbackslash{}tilde\{\textbackslash{}alpha\}}
|
|
|
|
|
\\
|
|
|
|
|
|
|
|
|
|
$\breve{x}$ \texttt{\textbackslash{}breve\{x\}}
|
|
|
|
|
&
|
|
|
|
|
$\dddot{t}$ \texttt{\textbackslash{}dddot\{t\}}
|
|
|
|
|
&
|
|
|
|
|
$\vec{\imath}$ \texttt{\textbackslash{}vec\{\textbackslash{}imath\}}
|
|
|
|
|
\\
|
|
|
|
|
|
|
|
|
|
$\check{a}$ \texttt{\textbackslash{}check\{a\}}
|
|
|
|
|
&
|
|
|
|
|
$\bar{a}$ \texttt{\textbackslash{}bar\{a\}}
|
|
|
|
|
&
|
|
|
|
|
$\vec{R}$ \texttt{\textbackslash{}vec\{R\}}
|
|
|
|
|
\\
|
|
|
|
|
\end{longtable*}
|
|
|
|
|
|
|
|
|
|
\end{description}
|
|
|
|
|
|
|
|
|
|
% \widetilde{xxx}
|
|
|
|
|
% \widehat{xxx}
|
|
|
|
|
|
|
|
|
|
Modulation Transfer Function:
|
|
|
|
|
%
|
|
|
|
|
\begin{equation*}
|
|
|
|
|
\text{MTF} = \left|\frac{\mathcal{F}\{s(x)\}}
|
|
|
|
|
{\mathcal{F}\{ s(x)\} |_{\omega _{x}=0}}\right|
|
|
|
|
|
= \mathrm{abs}\left(\frac
|
|
|
|
|
{\int _{-\infty }^{\infty }s(x) \mathrm{e}^{\mathrm{i}\omega _{x}x}\mathrm{d}{x}}
|
|
|
|
|
{\int _{-\infty }^{\infty }s(x)\mathrm{d}{x}}
|
|
|
|
|
\right).
|
|
|
|
|
\end{equation*}
|
|
|
|
|
Math split over two lines: If a double backslash is detected outside a
|
|
|
|
|
\texttt{\textbackslash{}begin\{...\} \textbackslash{}end\{...\}} pair, the math code is wrapped in an \href{ftp://ftp.ams.org/ams/doc/amsmath/short-math-guide.pdf}{AMSmath}\DUfootnotemark{id36}{id35}{7}
|
|
|
|
|
\texttt{align} environment:
|
|
|
|
|
%
|
|
|
|
|
\begin{align*}
|
|
|
|
|
s_{\mathrm{out}}(x) & = s_{\mathrm{in}}(x') * s_\delta (x-x') \\
|
|
|
|
|
& = \int s_{\mathrm{in}}(x')s_\delta (x-x')\mathrm{d}x'
|
|
|
|
|
\end{align*}
|
|
|
|
|
Cases (“manually”, with \texttt{matrix} environment):
|
|
|
|
|
%
|
|
|
|
|
\begin{equation*}
|
|
|
|
|
\mathrm{sgn}(x) = \left\{\begin{matrix}
|
|
|
|
|
-1 & x<0\\
|
|
|
|
|
1 & x>0
|
|
|
|
|
\end{matrix}\right.
|
|
|
|
|
\end{equation*}
|
|
|
|
|
Cases with the \href{ftp://ftp.ams.org/ams/doc/amsmath/short-math-guide.pdf}{AMSmath}\DUfootnotemark{id37}{id35}{7} \texttt{cases} environment (not (yet) supported by
|
|
|
|
|
HTML writers with \texttt{--math-output=MathML}):
|
|
|
|
|
%
|
|
|
|
|
\begin{equation*}
|
|
|
|
|
\mathrm{sgn}(x) = \begin{cases}
|
|
|
|
|
-1 & x<0\\
|
|
|
|
|
1 & x>0
|
|
|
|
|
\end{cases}
|
|
|
|
|
\end{equation*}
|
|
|
|
|
|
|
|
|
|
\section{3 Tests for the LaTeX writer%
|
|
|
|
|
\label{tests-for-the-latex-writer}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Test syntax elements which may cause trouble for the LaTeX writer but might
|
|
|
|
|
not need to be tested with other writers (e.g. the HTML writer).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{3.1 Custom Roles in LaTeX%
|
|
|
|
|
\label{custom-roles-in-latex}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
\item Role names and class arguments are converted to conform to the
|
|
|
|
|
regular expression \texttt{{[}a-z{]}{[}-a-z0-9{]}*} (letters are downcased,
|
|
|
|
|
accents and similar decoration is stripped, non-conforming
|
|
|
|
|
characters are replaced by a hyphen).
|
|
|
|
|
|
|
|
|
|
Class arguments may contain numbers and hyphens, which need special
|
|
|
|
|
treatment in LaTeX command names.
|
|
|
|
|
|
|
|
|
|
\DUrole{large}{\DUrole{custom4}{\DUrole{small-caps}{\DUrole{custom-role}{\DUrole{custom-role}{Text with role “custom4”}}}}} (but without styling by \texttt{DUrole*}
|
|
|
|
|
macros).
|
|
|
|
|
|
|
|
|
|
\item With LaTeX, roles can be styled within the document using the \DUroletitlereference{raw}
|
|
|
|
|
directive.
|
|
|
|
|
|
|
|
|
|
\newcommand{\DUrolelarge}[1]{{\large #1}}
|
|
|
|
|
\makeatletter
|
|
|
|
|
\@namedef{DUrolesmall-caps}{\textsc}
|
|
|
|
|
\@namedef{DUrolecustom4}{\textbf}
|
|
|
|
|
\makeatother
|
|
|
|
|
|
|
|
|
|
\DUrole{large}{\DUrole{custom4}{\DUrole{small-caps}{\DUrole{custom-role}{\DUrole{custom-role}{inline text}}}}} in large, bold, small-caps.
|
|
|
|
|
|
|
|
|
|
\item Custom roles can be based on standard roles:
|
|
|
|
|
|
|
|
|
|
This is a \emph{\DUrole{custom-emphasis}{customized emphasis text role}}
|
|
|
|
|
|
|
|
|
|
This is a \texttt{\DUrole{custom-literal}{customized literal text role}}
|
|
|
|
|
|
|
|
|
|
This is a \textbf{\DUrole{custom-strong}{customized strong text role}}
|
|
|
|
|
|
|
|
|
|
This is a \textsubscript{\DUrole{custom-subscript}{customized subscript text role}}
|
|
|
|
|
|
|
|
|
|
This is a \textsuperscript{\DUrole{custom-superscript}{customized superscript text role}}
|
|
|
|
|
|
|
|
|
|
This is a \DUroletitlereference{\DUrole{custom-title-reference}{customized title-reference text role}}
|
|
|
|
|
\end{itemize}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{3.2 class handling%
|
|
|
|
|
\label{class-handling}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
This section tests class handling for block level elements by the LaTeX
|
|
|
|
|
writer. See the input file \texttt{classes\_latex.txt} for the raw LaTeX code used
|
|
|
|
|
to style the examples.
|
|
|
|
|
|
|
|
|
|
An “epigraph” directive is exported as “quote” wrapped in a “DUclass”
|
|
|
|
|
environment. Here, it is styled by a “DUCLASSepigraph” environment
|
|
|
|
|
redefining the “quote” environment as “minipage”:
|
|
|
|
|
|
|
|
|
|
\newcommand*{\DUCLASSepigraph}{%
|
|
|
|
|
\renewenvironment{quote}{\vspace{1em}
|
|
|
|
|
\footnotesize\hfill{}%
|
|
|
|
|
\begin{minipage}{0.4\columnwidth}}%
|
|
|
|
|
{\end{minipage}\vskip\baselineskip}}
|
|
|
|
|
|
|
|
|
|
\begin{DUclass}{epigraph}
|
|
|
|
|
\begin{quote}
|
|
|
|
|
Do not play this piece fast. It is never right to play \emph{Ragtime} fast.
|
|
|
|
|
\nopagebreak
|
|
|
|
|
|
|
|
|
|
\raggedleft —Scott Joplin
|
|
|
|
|
\end{quote}
|
|
|
|
|
\end{DUclass}
|
|
|
|
|
|
|
|
|
|
Raw latex is also used to style the following lists: “DUCLASSenumerateitems”
|
|
|
|
|
redefines “itemize” as “enumerate”, “DUCLASSrules” draws horizontal lines
|
|
|
|
|
above and below.
|
|
|
|
|
|
|
|
|
|
\newcommand*{\DUCLASSenumerateitems}{%
|
|
|
|
|
\renewenvironment{itemize}{\begin{enumerate}}%
|
|
|
|
|
{\end{enumerate}}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
\newenvironment{DUCLASSrules}%
|
|
|
|
|
{\noindent\rule[0.5ex]{1\columnwidth}{1pt}}%
|
|
|
|
|
{\noindent\rule[0.5ex]{1\columnwidth}{1pt}}
|
|
|
|
|
|
|
|
|
|
An “enumerated” bullet list:
|
|
|
|
|
|
|
|
|
|
\begin{DUclass}{enumerateitems}
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
\item item
|
|
|
|
|
|
|
|
|
|
\item next item
|
|
|
|
|
|
|
|
|
|
\item third item
|
|
|
|
|
\end{itemize}
|
|
|
|
|
\end{DUclass}
|
|
|
|
|
|
|
|
|
|
A list with lines above and below:
|
|
|
|
|
|
|
|
|
|
\begin{DUclass}{rules}
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
\item item
|
|
|
|
|
|
|
|
|
|
\item next item
|
|
|
|
|
\end{itemize}
|
|
|
|
|
\end{DUclass}
|
|
|
|
|
|
|
|
|
|
A normal bullet list is kept unchanged by the above redefinitions:
|
|
|
|
|
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
\item item
|
|
|
|
|
|
|
|
|
|
\item next item
|
|
|
|
|
|
|
|
|
|
\item third item
|
|
|
|
|
\end{itemize}
|
|
|
|
|
|
|
|
|
|
A container wraps several elements in a common “class wrapper”. Here, we use
|
|
|
|
|
it to set 2 paragraphs and a list in small caps:
|
|
|
|
|
|
|
|
|
|
\newcommand*{\DUCLASSscshape}{\scshape}
|
|
|
|
|
|
|
|
|
|
\begin{DUclass}{scshape}
|
|
|
|
|
|
|
|
|
|
paragraph 1
|
|
|
|
|
|
|
|
|
|
paragraph 2
|
|
|
|
|
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
\item bullet list
|
|
|
|
|
|
|
|
|
|
\item still bullet list
|
|
|
|
|
\end{itemize}
|
|
|
|
|
\end{DUclass}
|
|
|
|
|
|
|
|
|
|
A right-aligned line-block. Alignment handling is built into the latex
|
|
|
|
|
writer for image, table, and line block elements.
|
|
|
|
|
|
|
|
|
|
\begin{DUlineblock}{0em}
|
|
|
|
|
\raggedleft
|
|
|
|
|
\item[] Max Mustermann
|
|
|
|
|
\item[] Waldstr. 22
|
|
|
|
|
\item[] D 01234 Testdorf
|
|
|
|
|
\item[] Tel.: 0123/456789
|
|
|
|
|
\end{DUlineblock}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{3.3 More Tables%
|
|
|
|
|
\label{more-tables}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
A table with multi-paragraph multicolumn cells:
|
|
|
|
|
|
|
|
|
|
\setlength{\DUtablewidth}{\linewidth}
|
|
|
|
|
\begin{longtable*}[c]{|p{0.133\DUtablewidth}|p{0.179\DUtablewidth}|p{0.179\DUtablewidth}|p{0.110\DUtablewidth}|p{0.121\DUtablewidth}|p{0.145\DUtablewidth}|}
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
test
|
|
|
|
|
&
|
|
|
|
|
\textbf{bold hd}
|
|
|
|
|
& \multicolumn{3}{p{0.41\DUtablewidth}|}{%
|
|
|
|
|
multicolumn 1
|
|
|
|
|
|
|
|
|
|
With a second paragraph
|
|
|
|
|
} &
|
|
|
|
|
\emph{emph hd}
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
\multicolumn{2}{|p{0.31\DUtablewidth}|}{%
|
|
|
|
|
multicolumn 2
|
|
|
|
|
|
|
|
|
|
With a second paragraph
|
|
|
|
|
} &
|
|
|
|
|
cell
|
|
|
|
|
&
|
|
|
|
|
cell
|
|
|
|
|
&
|
|
|
|
|
cell
|
|
|
|
|
&
|
|
|
|
|
cell
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
cell
|
|
|
|
|
& \multicolumn{2}{p{0.36\DUtablewidth}|}{%
|
|
|
|
|
multicolumn 3 (one line,
|
|
|
|
|
but very very very very
|
|
|
|
|
very looooong)
|
|
|
|
|
} &
|
|
|
|
|
cell
|
|
|
|
|
&
|
|
|
|
|
cell
|
|
|
|
|
&
|
|
|
|
|
cell
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
cell
|
|
|
|
|
&
|
|
|
|
|
cell
|
|
|
|
|
&
|
|
|
|
|
cell
|
|
|
|
|
& \multicolumn{3}{p{0.38\DUtablewidth}|}{%
|
|
|
|
|
Short multicolumn 4
|
|
|
|
|
} \\
|
|
|
|
|
\hline
|
|
|
|
|
\end{longtable*}
|
|
|
|
|
|
|
|
|
|
Tables with multi-paragraph multirow cells currently fail due to a LaTeX
|
|
|
|
|
limitation (see \url{https://sourceforge.net/p/docutils/bugs/225/}).
|
|
|
|
|
|
|
|
|
|
A table with multirow header and column-widths set by LaTeX:
|
|
|
|
|
|
|
|
|
|
\begin{longtable*}[c]{|l|l|}
|
|
|
|
|
\hline
|
|
|
|
|
\multirow{2}{*}{\textbf{XXX}} & \textbf{Variable Summary} \\
|
|
|
|
|
\cline{2-2}
|
|
|
|
|
& \textbf{Description} \\
|
|
|
|
|
\hline
|
|
|
|
|
\endfirsthead
|
|
|
|
|
\hline
|
|
|
|
|
\multirow{2}{*}{\textbf{XXX}} & \textbf{Variable Summary} \\
|
|
|
|
|
\cline{2-2}
|
|
|
|
|
& \textbf{Description} \\
|
|
|
|
|
\hline
|
|
|
|
|
\endhead
|
|
|
|
|
\multicolumn{2}{c}{\hfill ... continued on next page} \\
|
|
|
|
|
\endfoot
|
|
|
|
|
\endlastfoot
|
|
|
|
|
\multicolumn{2}{|l|}{multicollumn cell} \\
|
|
|
|
|
\hline
|
|
|
|
|
\end{longtable*}
|
|
|
|
|
|
|
|
|
|
In a table with column-widths set by LaTeX, each cell has just one line.
|
|
|
|
|
Paragraphs are merged (a warning is given).
|
|
|
|
|
|
|
|
|
|
\begin{longtable*}[c]{|l|l|}
|
|
|
|
|
\hline
|
|
|
|
|
11 & first paragraph
|
|
|
|
|
second paragraph
|
|
|
|
|
third paragraph \\
|
|
|
|
|
\hline
|
|
|
|
|
21 & 22 \\
|
|
|
|
|
\hline
|
|
|
|
|
\end{longtable*}
|
|
|
|
|
|
|
|
|
|
% This file is used by the standalone_rst_latex test.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{3.4 Option lists%
|
|
|
|
|
\label{id23}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
The LaTeX-2e description environment is used for definition lists.
|
|
|
|
|
The definition is continued on the same line as the term, this should
|
|
|
|
|
not happen if a option-list is at the top of the definition.
|
|
|
|
|
|
|
|
|
|
If the option list is not at the first element in the definition, it
|
|
|
|
|
is contained in a quote
|
|
|
|
|
|
|
|
|
|
\begin{quote}
|
|
|
|
|
\begin{DUoptionlist}
|
|
|
|
|
\item[--help] show help
|
|
|
|
|
|
|
|
|
|
\item[-v] verbose
|
|
|
|
|
\end{DUoptionlist}
|
|
|
|
|
\end{quote}
|
|
|
|
|
|
|
|
|
|
\begin{description}
|
|
|
|
|
\item[{In a definition list:}] \leavevmode
|
|
|
|
|
\begin{DUoptionlist}
|
|
|
|
|
\item[--help] show help
|
|
|
|
|
|
|
|
|
|
\item[-v] verbose
|
|
|
|
|
\end{DUoptionlist}
|
|
|
|
|
|
|
|
|
|
\end{description}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{3.5 Monospaced non-alphanumeric characters%
|
|
|
|
|
\label{monospaced-non-alphanumeric-characters}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
These are all ASCII characters except a-zA-Z0-9 and space:
|
|
|
|
|
|
|
|
|
|
\texttt{!!!\textquotedbl{}\textquotedbl{}\textquotedbl{}\#\#\#\$\$\$\%\%\%\&\&\&'''((()))***+++,,,---...///:::}
|
|
|
|
|
|
|
|
|
|
\texttt{;;;<<<===>>>???@@@{[}{[}{[}\textbackslash{}\textbackslash{}\textbackslash{}{]}{]}{]}\textasciicircum{}\textasciicircum{}\textasciicircum{}\_\_\_```\{\{\{|||\}\}\}\textasciitilde{}\textasciitilde{}\textasciitilde{}}
|
|
|
|
|
|
|
|
|
|
\texttt{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}
|
|
|
|
|
|
|
|
|
|
The two lines of non-alphanumeric characters should both have the same
|
|
|
|
|
width as the third line.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{3.6 Non-ASCII characters%
|
|
|
|
|
\label{non-ascii-characters}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Punctuation and footnote symbols
|
|
|
|
|
|
|
|
|
|
\setlength{\DUtablewidth}{\linewidth}
|
|
|
|
|
\begin{longtable*}[c]{|p{0.028\DUtablewidth}|p{0.424\DUtablewidth}|}
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
–
|
|
|
|
|
&
|
|
|
|
|
en-dash
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
—
|
|
|
|
|
&
|
|
|
|
|
em-dash
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
‘
|
|
|
|
|
&
|
|
|
|
|
single turned comma quotation mark
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
’
|
|
|
|
|
&
|
|
|
|
|
single comma quotation mark
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
‚
|
|
|
|
|
&
|
|
|
|
|
low single comma quotation mark
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
“
|
|
|
|
|
&
|
|
|
|
|
double turned comma quotation mark
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
”
|
|
|
|
|
&
|
|
|
|
|
double comma quotation mark
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
„
|
|
|
|
|
&
|
|
|
|
|
low double comma quotation mark
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
†
|
|
|
|
|
&
|
|
|
|
|
dagger
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
‡
|
|
|
|
|
&
|
|
|
|
|
double dagger
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
♦
|
|
|
|
|
&
|
|
|
|
|
black diamond suit
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
♥
|
|
|
|
|
&
|
|
|
|
|
black heart suit
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
♠
|
|
|
|
|
&
|
|
|
|
|
black spade suit
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
♣
|
|
|
|
|
&
|
|
|
|
|
black club suit
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
…
|
|
|
|
|
&
|
|
|
|
|
ellipsis
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
™
|
|
|
|
|
&
|
|
|
|
|
trade mark sign
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
⇔
|
|
|
|
|
&
|
|
|
|
|
left-right double arrow
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
\end{longtable*}
|
|
|
|
|
|
|
|
|
|
The \DUroletitlereference{Latin-1 extended} Unicode block
|
|
|
|
|
|
|
|
|
|
\setlength{\DUtablewidth}{\linewidth}
|
|
|
|
|
\begin{longtable*}[c]{|p{0.051\DUtablewidth}|p{0.028\DUtablewidth}|p{0.028\DUtablewidth}|p{0.028\DUtablewidth}|p{0.028\DUtablewidth}|p{0.028\DUtablewidth}|p{0.028\DUtablewidth}|p{0.028\DUtablewidth}|p{0.028\DUtablewidth}|p{0.028\DUtablewidth}|p{0.028\DUtablewidth}|}
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
%
|
|
|
|
|
&
|
|
|
|
|
0
|
|
|
|
|
&
|
|
|
|
|
1
|
|
|
|
|
&
|
|
|
|
|
2
|
|
|
|
|
&
|
|
|
|
|
3
|
|
|
|
|
&
|
|
|
|
|
4
|
|
|
|
|
&
|
|
|
|
|
5
|
|
|
|
|
&
|
|
|
|
|
6
|
|
|
|
|
&
|
|
|
|
|
7
|
|
|
|
|
&
|
|
|
|
|
8
|
|
|
|
|
&
|
|
|
|
|
9
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
160
|
|
|
|
|
& &
|
|
|
|
|
¡
|
|
|
|
|
&
|
|
|
|
|
¢
|
|
|
|
|
&
|
|
|
|
|
£
|
|
|
|
|
& &
|
|
|
|
|
¥
|
|
|
|
|
&
|
|
|
|
|
¦
|
|
|
|
|
&
|
|
|
|
|
§
|
|
|
|
|
&
|
|
|
|
|
¨
|
|
|
|
|
&
|
|
|
|
|
©
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
170
|
|
|
|
|
&
|
|
|
|
|
ª
|
|
|
|
|
&
|
|
|
|
|
«
|
|
|
|
|
&
|
|
|
|
|
¬
|
|
|
|
|
&
|
|
|
|
|
\-
|
|
|
|
|
&
|
|
|
|
|
®
|
|
|
|
|
&
|
|
|
|
|
¯
|
|
|
|
|
&
|
|
|
|
|
°
|
|
|
|
|
&
|
|
|
|
|
±
|
|
|
|
|
&
|
|
|
|
|
²
|
|
|
|
|
&
|
|
|
|
|
³
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
180
|
|
|
|
|
&
|
|
|
|
|
´
|
|
|
|
|
&
|
|
|
|
|
µ
|
|
|
|
|
&
|
|
|
|
|
¶
|
|
|
|
|
&
|
|
|
|
|
·
|
|
|
|
|
&
|
|
|
|
|
¸
|
|
|
|
|
&
|
|
|
|
|
¹
|
|
|
|
|
&
|
|
|
|
|
º
|
|
|
|
|
&
|
|
|
|
|
»
|
|
|
|
|
&
|
|
|
|
|
¼
|
|
|
|
|
&
|
|
|
|
|
½
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
190
|
|
|
|
|
&
|
|
|
|
|
¾
|
|
|
|
|
&
|
|
|
|
|
¿
|
|
|
|
|
&
|
|
|
|
|
À
|
|
|
|
|
&
|
|
|
|
|
Á
|
|
|
|
|
&
|
|
|
|
|
Â
|
|
|
|
|
&
|
|
|
|
|
Ã
|
|
|
|
|
&
|
|
|
|
|
Ä
|
|
|
|
|
&
|
|
|
|
|
Å
|
|
|
|
|
&
|
|
|
|
|
Æ
|
|
|
|
|
&
|
|
|
|
|
Ç
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
200
|
|
|
|
|
&
|
|
|
|
|
È
|
|
|
|
|
&
|
|
|
|
|
É
|
|
|
|
|
&
|
|
|
|
|
Ê
|
|
|
|
|
&
|
|
|
|
|
Ë
|
|
|
|
|
&
|
|
|
|
|
Ì
|
|
|
|
|
&
|
|
|
|
|
Í
|
|
|
|
|
&
|
|
|
|
|
Î
|
|
|
|
|
&
|
|
|
|
|
Ï
|
|
|
|
|
&
|
|
|
|
|
Ð
|
|
|
|
|
&
|
|
|
|
|
Ñ
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
210
|
|
|
|
|
&
|
|
|
|
|
Ò
|
|
|
|
|
&
|
|
|
|
|
Ó
|
|
|
|
|
&
|
|
|
|
|
Ô
|
|
|
|
|
&
|
|
|
|
|
Õ
|
|
|
|
|
&
|
|
|
|
|
Ö
|
|
|
|
|
&
|
|
|
|
|
×
|
|
|
|
|
&
|
|
|
|
|
Ø
|
|
|
|
|
&
|
|
|
|
|
Ù
|
|
|
|
|
&
|
|
|
|
|
Ú
|
|
|
|
|
&
|
|
|
|
|
Û
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
220
|
|
|
|
|
&
|
|
|
|
|
Ü
|
|
|
|
|
&
|
|
|
|
|
Ý
|
|
|
|
|
&
|
|
|
|
|
Þ
|
|
|
|
|
&
|
|
|
|
|
ß
|
|
|
|
|
&
|
|
|
|
|
à
|
|
|
|
|
&
|
|
|
|
|
á
|
|
|
|
|
&
|
|
|
|
|
â
|
|
|
|
|
&
|
|
|
|
|
ã
|
|
|
|
|
&
|
|
|
|
|
ä
|
|
|
|
|
&
|
|
|
|
|
å
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
230
|
|
|
|
|
&
|
|
|
|
|
æ
|
|
|
|
|
&
|
|
|
|
|
ç
|
|
|
|
|
&
|
|
|
|
|
è
|
|
|
|
|
&
|
|
|
|
|
é
|
|
|
|
|
&
|
|
|
|
|
ê
|
|
|
|
|
&
|
|
|
|
|
ë
|
|
|
|
|
&
|
|
|
|
|
ì
|
|
|
|
|
&
|
|
|
|
|
í
|
|
|
|
|
&
|
|
|
|
|
î
|
|
|
|
|
&
|
|
|
|
|
ï
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
240
|
|
|
|
|
&
|
|
|
|
|
ð
|
|
|
|
|
&
|
|
|
|
|
ñ
|
|
|
|
|
&
|
|
|
|
|
ò
|
|
|
|
|
&
|
|
|
|
|
ó
|
|
|
|
|
&
|
|
|
|
|
ô
|
|
|
|
|
&
|
|
|
|
|
õ
|
|
|
|
|
&
|
|
|
|
|
ö
|
|
|
|
|
&
|
|
|
|
|
÷
|
|
|
|
|
&
|
|
|
|
|
ø
|
|
|
|
|
&
|
|
|
|
|
ù
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
250
|
|
|
|
|
&
|
|
|
|
|
ú
|
|
|
|
|
&
|
|
|
|
|
û
|
|
|
|
|
&
|
|
|
|
|
ü
|
|
|
|
|
&
|
|
|
|
|
ý
|
|
|
|
|
&
|
|
|
|
|
þ
|
|
|
|
|
&
|
|
|
|
|
ÿ
|
|
|
|
|
& & & & \\
|
|
|
|
|
\hline
|
|
|
|
|
\end{longtable*}
|
|
|
|
|
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
\item The following line should not be wrapped, because it uses
|
|
|
|
|
no-break spaces (\textbackslash{}u00a0):
|
|
|
|
|
|
|
|
|
|
X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X
|
|
|
|
|
|
|
|
|
|
\item Line wrapping with/without breakpoints marked by soft hyphens
|
|
|
|
|
(\textbackslash{}u00ad):
|
|
|
|
|
|
|
|
|
|
pdn\-derd\-mdtd\-ri\-schpdn\-derd\-mdtd\-ri\-schpdn\-derd\-mdtd\-ri\-schpdn\-derd\-mdtd\-ri\-schpdn\-derd\-mdtd\-ri\-sch
|
|
|
|
|
|
|
|
|
|
pdnderdmdtdrischpdnderdmdtdrischpdnderdmdtdrischpdnderdmdtdrischpdnderdmdtdrisch
|
|
|
|
|
\end{itemize}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{3.7 Encoding special chars%
|
|
|
|
|
\label{encoding-special-chars}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
The LaTeX Info pages lists under “2.18 Special Characters”
|
|
|
|
|
|
|
|
|
|
\begin{quote}
|
|
|
|
|
The following characters play a special role in LaTeX and are called
|
|
|
|
|
“special printing characters”, or simply “special characters”.
|
|
|
|
|
|
|
|
|
|
\begin{quote}
|
|
|
|
|
\# \$ \% \& \textasciitilde{} \_ \textasciicircum{} \textbackslash{} \{ \}
|
|
|
|
|
\end{quote}
|
|
|
|
|
\end{quote}
|
|
|
|
|
|
|
|
|
|
The special chars verbatim:
|
|
|
|
|
|
|
|
|
|
\begin{quote}
|
|
|
|
|
\begin{alltt}
|
|
|
|
|
# $ % & ~ _ ^ \textbackslash{} \{ \}
|
|
|
|
|
\end{alltt}
|
|
|
|
|
\end{quote}
|
|
|
|
|
|
|
|
|
|
However also \emph{square brackets} {[}{]} need special care.
|
|
|
|
|
|
|
|
|
|
\begin{quote}
|
|
|
|
|
Commands with optional arguments (e.g. \texttt{\textbackslash{}item}) check
|
|
|
|
|
if the token right after the macro name is an opening bracket.
|
|
|
|
|
In that case the contents between that bracket and the following
|
|
|
|
|
closing bracket on the same grouping level are taken as the
|
|
|
|
|
optional argument. What makes this unintuitive is the fact that
|
|
|
|
|
the square brackets aren’t grouping characters themselves, so in
|
|
|
|
|
your last example item{[}{[}…{]}{]} the optional argument consists of
|
|
|
|
|
{[}… (without the closing bracket).
|
|
|
|
|
\end{quote}
|
|
|
|
|
|
|
|
|
|
Compare the items in the following lists:
|
|
|
|
|
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
\item simple item
|
|
|
|
|
|
|
|
|
|
\item {[}bracketed{]} item
|
|
|
|
|
\end{itemize}
|
|
|
|
|
|
|
|
|
|
\begin{description}
|
|
|
|
|
\item[{simple}] \leavevmode
|
|
|
|
|
description term
|
|
|
|
|
|
|
|
|
|
\item[{{[}bracketed{]}}] \leavevmode
|
|
|
|
|
description term
|
|
|
|
|
|
|
|
|
|
\end{description}
|
|
|
|
|
|
|
|
|
|
The OT1 font-encoding has different characters for the less-than,
|
|
|
|
|
greater-than and bar, < | >, except for typewriter font \DUroletitlereference{cmtt}:
|
|
|
|
|
|
|
|
|
|
\begin{quote}
|
|
|
|
|
\begin{alltt}
|
|
|
|
|
< | >
|
|
|
|
|
\end{alltt}
|
|
|
|
|
\end{quote}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{3.8 Hyperlinks and -targets%
|
|
|
|
|
\label{hyperlinks-and-targets}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
In LaTeX, we must set an explicit anchor (\texttt{\textbackslash{}phantomsection}) for a
|
|
|
|
|
%
|
|
|
|
|
\phantomsection\label{hypertarget-in-plain-text}hypertarget in plain text or in a figure but not in a longtable or
|
|
|
|
|
caption:
|
|
|
|
|
|
|
|
|
|
\setlength{\DUtablewidth}{\linewidth}
|
|
|
|
|
\begin{longtable}[c]{|p{0.075\DUtablewidth}|p{0.075\DUtablewidth}|p{0.075\DUtablewidth}|}
|
|
|
|
|
\caption{Table with %
|
|
|
|
|
\label{hypertarget-in-table-title}hypertarget in table title.}\\
|
|
|
|
|
\hline
|
|
|
|
|
|
|
|
|
|
False
|
|
|
|
|
&
|
|
|
|
|
True
|
|
|
|
|
&
|
|
|
|
|
None
|
|
|
|
|
\\
|
|
|
|
|
\hline
|
|
|
|
|
\end{longtable}
|
|
|
|
|
\label{table-label}
|
|
|
|
|
|
|
|
|
|
\begin{figure}
|
|
|
|
|
\phantomsection\label{figure-label}
|
|
|
|
|
\noindent\makebox[\linewidth][c]{\includegraphics{../../../docs/user/rst/images/biohazard.png}}
|
|
|
|
|
\caption{Figure with %
|
|
|
|
|
\label{hypertarget-in-figure-caption}hypertarget in figure caption.}
|
|
|
|
|
\begin{DUlegend}
|
|
|
|
|
Legend with %
|
|
|
|
|
\phantomsection\label{hypertarget-in-figure-legend}hypertarget in figure legend.
|
|
|
|
|
\end{DUlegend}
|
|
|
|
|
\end{figure}
|
|
|
|
|
|
|
|
|
|
\includegraphics{../../../docs/user/rst/images/biohazard.png}
|
|
|
|
|
\phantomsection\label{image-label}
|
|
|
|
|
|
|
|
|
|
See \hyperref[hypertarget-in-plain-text]{hypertarget in plain text},
|
|
|
|
|
\hyperref[table-label]{table label}, \hyperref[hypertarget-in-table-title]{hypertarget in table title},
|
|
|
|
|
\hyperref[figure-label]{figure label}, \hyperref[hypertarget-in-figure-caption]{hypertarget in figure caption},
|
|
|
|
|
\hyperref[hypertarget-in-figure-legend]{hypertarget in figure legend}, and
|
|
|
|
|
\hyperref[image-label]{image label}.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{3.9 External references%
|
|
|
|
|
\label{external-references}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Long URLs should be wrapped in the PDF.
|
|
|
|
|
This can be achieved with the url command which is used by the LaTeX writer
|
|
|
|
|
whenever the content (name) of a reference node equals the link URL.
|
|
|
|
|
|
|
|
|
|
\begin{description}
|
|
|
|
|
\item[{Example:}] \leavevmode
|
|
|
|
|
a long URL that should wrap in the output
|
|
|
|
|
\url{http://docutils.sourceforge.net/docs/user/latex.html\#id79}
|
|
|
|
|
|
|
|
|
|
\end{description}
|
|
|
|
|
|
|
|
|
|
If the argument contains any “\%”, “\#”, or “\textasciicircum{}\textasciicircum{}”, or ends with \texttt{\textbackslash{}}, it can’t
|
|
|
|
|
be used in the argument to another command. The argument must not contain
|
|
|
|
|
unbalanced braces.
|
|
|
|
|
|
|
|
|
|
The characters \textasciicircum{}, \{, \}, and \texttt{\textbackslash{}} are invalid in a “http:” or “ftp:” URL
|
|
|
|
|
and not recognized as part of it:
|
|
|
|
|
|
|
|
|
|
\begin{DUlineblock}{0em}
|
|
|
|
|
\item[] \url{http://www.example.org}/strange\textasciicircum{}\textasciicircum{}name
|
|
|
|
|
\item[] \url{http://www.example.org}\textbackslash{}using\textbackslash{}DOS\textbackslash{}paths\textbackslash{}
|
|
|
|
|
\item[] \url{http://www.example.org/XML}/strange\{n\}ame
|
|
|
|
|
\end{DUlineblock}
|
|
|
|
|
|
|
|
|
|
They can, however be used in paths and/or filenames.
|
|
|
|
|
|
|
|
|
|
Handling by the LaTeX writer:
|
|
|
|
|
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
\item \texttt{\#}, \texttt{\textbackslash{}} and \texttt{\%} are escaped:
|
|
|
|
|
|
|
|
|
|
\begin{DUlineblock}{0em}
|
|
|
|
|
\item[] \href{http://www.w3.org/XML/Schema\#dev}{URL with \#}
|
|
|
|
|
\url{http://www.w3.org/XML/Schema\#dev}
|
|
|
|
|
\item[] \href{http://www.w3.org/XML/Schema\%dev}{URL with \%}
|
|
|
|
|
\url{http://example.org/Schema\%dev}
|
|
|
|
|
\item[] \href{A:DOS\\path\\}{file with DOS path}\DUfootnotemark{id44}{id43}{10} \url{A:DOS\\path\\}\DUfootnotemark{id45}{id43}{10}
|
|
|
|
|
\end{DUlineblock}
|
|
|
|
|
|
|
|
|
|
\DUadmonition[note]{
|
|
|
|
|
\DUtitle[note]{Note}
|
|
|
|
|
|
|
|
|
|
These URLs are typeset inside a LaTeX command without error.
|
|
|
|
|
|
|
|
|
|
\begin{DUlineblock}{0em}
|
|
|
|
|
\item[] \url{http://www.w3.org/XML/Schema\#dev}
|
|
|
|
|
\item[] \url{http://example.org/Schema\%dev}
|
|
|
|
|
\item[] \url{A:DOS\\path\\}\DUfootnotemark{id46}{id43}{10}
|
|
|
|
|
\end{DUlineblock}
|
|
|
|
|
}
|
|
|
|
|
\end{itemize}
|
|
|
|
|
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
\item \textasciicircum{}\textasciicircum{} LaTeX’s special syntax for characters results in “strange” replacements
|
|
|
|
|
(both with href and url). A warning is given.
|
|
|
|
|
|
|
|
|
|
\href{../strange^^name}{file with \textasciicircum{}\textasciicircum{}}:
|
|
|
|
|
\url{../strange^^name}
|
|
|
|
|
|
|
|
|
|
\item Unbalanced braces, \{ or \}, will fail (both with href and url):
|
|
|
|
|
|
|
|
|
|
\begin{quote}
|
|
|
|
|
\begin{alltt}
|
|
|
|
|
`file with \{ <../strange\{name>`__
|
|
|
|
|
`<../strange\{name>`__
|
|
|
|
|
\end{alltt}
|
|
|
|
|
\end{quote}
|
|
|
|
|
|
|
|
|
|
while balanced braces are suported:
|
|
|
|
|
|
|
|
|
|
\begin{DUlineblock}{0em}
|
|
|
|
|
\item[] \url{../strange{n}ame}
|
|
|
|
|
\item[] \url{../st{r}ange{n}ame}
|
|
|
|
|
\item[] \url{../{st{r}ange{n}ame}}
|
|
|
|
|
\end{DUlineblock}
|
|
|
|
|
\end{itemize}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{3.10 Section titles with \hyperref[inline-markup]{inline markup}%
|
|
|
|
|
\label{section-titles-with-inline-markup}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsubsection{3.10.1 \emph{emphasized}, H\textsubscript{2}O and $x^2$%
|
|
|
|
|
\label{emphasized-h2o-and-x-2}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsubsection{3.10.2 Substitutions work%
|
|
|
|
|
\label{substitutions-fail}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsection{3.11 Deeply nested sections%
|
|
|
|
|
\label{deeply-nested-sections}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
In LaTeX and HTML,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subsubsection{3.11.1 Level 3%
|
|
|
|
|
\label{level-3}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
nested sections
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\paragraph{3.11.1.1 level 4%
|
|
|
|
|
\label{level-4}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
reach at some level
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\subparagraph{3.11.1.1.1 level 5%
|
|
|
|
|
\label{level-5}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
(depending on the document class)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\DUtitle[sectionVI]{3.11.1.1.1.1 level 6%
|
|
|
|
|
\label{level-6}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
an unsupported level.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\section{4 Tests for the XeTeX writer%
|
|
|
|
|
\label{tests-for-the-xetex-writer}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
With XeTeX, you can typeset text in any language/script supported by
|
|
|
|
|
Unicode and the selected font, e.g. Azərbaycanca, Bân-lâm-gú, Башҡорт
|
|
|
|
|
Беларуская, Български, Català, Чӑвашла, Česky, Ελληνικά, Español,
|
|
|
|
|
Français, Føroyskt, Хальмг, Íslenska, עברית , Қазақша, Kurdî,
|
|
|
|
|
Latviešu, Lietuvių, Македонски, Монгол, Nāhuatl, Português, Română,
|
|
|
|
|
Русский, Slovenščina, Српски, Türkçe, Українська, Tiếng Việt, Volapük,
|
|
|
|
|
Võro, ייִדיש , Žemaitėška.
|
|
|
|
|
Currently, there is extended support for 28 languages in the
|
|
|
|
|
\href{http://ctan.org/pkg/polyglossia}{polyglossia}\DUfootnotemark{id39}{id38}{8} package.
|
|
|
|
|
|
|
|
|
|
% System Messages:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\section{5 Error Handling%
|
|
|
|
|
\label{error-handling}%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Any errors caught during processing will generate system messages.
|
|
|
|
|
|
|
|
|
|
There should be five messages in the following, auto-generated
|
|
|
|
|
section, “Docutils System Messages”:
|
|
|
|
|
|
|
|
|
|
% section should be added by Docutils automatically
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\section[Docutils System Messages]{\color{red}Docutils System Messages%
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
\DUadmonition[system-message]{
|
|
|
|
|
\DUtitle[system-message]{system-message}
|
|
|
|
|
\raisebox{1em}{\hypertarget{id27}{}}
|
|
|
|
|
|
|
|
|
|
{\color{red}ERROR/3} in \texttt{functional/input/data/standard.txt}, line~104
|
|
|
|
|
|
|
|
|
|
\hyperlink{id28}{
|
|
|
|
|
Undefined substitution referenced: \textquotedbl{}problematic\textquotedbl{}.
|
|
|
|
|
}}
|
|
|
|
|
|
|
|
|
|
\DUadmonition[system-message]{
|
|
|
|
|
\DUtitle[system-message]{system-message}
|
|
|
|
|
\raisebox{1em}{\hypertarget{id47}{}}
|
|
|
|
|
|
|
|
|
|
{\color{red}ERROR/3} in \texttt{functional/input/data/standard.txt}, line~391
|
|
|
|
|
|
|
|
|
|
\hyperlink{id17}{
|
|
|
|
|
Unknown target name: \textquotedbl{}5\textquotedbl{}.
|
|
|
|
|
}}
|
|
|
|
|
|
|
|
|
|
\DUadmonition[system-message]{
|
|
|
|
|
\DUtitle[system-message]{system-message}
|
|
|
|
|
\raisebox{1em}{\hypertarget{id48}{}}
|
|
|
|
|
|
|
|
|
|
{\color{red}ERROR/3} in \texttt{functional/input/data/standard.txt}, line~400
|
|
|
|
|
|
|
|
|
|
\hyperlink{id19}{
|
|
|
|
|
Unknown target name: \textquotedbl{}nonexistent\textquotedbl{}.
|
|
|
|
|
}}
|
|
|
|
|
|
|
|
|
|
\DUadmonition[system-message]{
|
|
|
|
|
\DUtitle[system-message]{system-message}
|
|
|
|
|
\raisebox{1em}{\hypertarget{id49}{}}
|
|
|
|
|
|
|
|
|
|
{\color{red}ERROR/3} in \texttt{functional/input/data/standard.txt}, line~427
|
|
|
|
|
|
|
|
|
|
\hyperlink{id50}{
|
|
|
|
|
Unknown target name: \textquotedbl{}hyperlink reference without a target\textquotedbl{}.
|
|
|
|
|
}}
|
|
|
|
|
|
|
|
|
|
\DUadmonition[system-message]{
|
|
|
|
|
\DUtitle[system-message]{system-message}
|
|
|
|
|
\raisebox{1em}{\hypertarget{id51}{}}
|
|
|
|
|
|
|
|
|
|
{\color{red}ERROR/3} in \texttt{functional/input/data/standard.txt}, line~440
|
|
|
|
|
|
|
|
|
|
\hyperlink{id52}{
|
|
|
|
|
Duplicate target name, cannot be used as a unique reference: \textquotedbl{}duplicate target names\textquotedbl{}.
|
|
|
|
|
}}
|
|
|
|
|
|
|
|
|
|
\end{document}
|