\documentclass[a4paper]{article} % generated by Docutils \usepackage{cmap} % fix search and cut-and-paste in Acrobat \usepackage{ifthen} \usepackage[T1]{fontenc} \usepackage{alltt} \usepackage{amsmath} \usepackage{float} % extended float configuration \floatplacement{figure}{H} % place figures here definitely \usepackage{graphicx} \setcounter{secnumdepth}{0} \usepackage{longtable,ltcaption,array} \setlength{\extrarowheight}{2pt} \newlength{\DUtablewidth} % internal use in tables \usepackage{tabularx} %%% Custom LaTeX preamble % PDF Standard Fonts \usepackage{mathptmx} % Times \usepackage[scaled=.90]{helvet} \usepackage{courier} %%% 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]% {% "#1" does not work in end-part of environment. \def\DocutilsClassFunctionName{DUCLASS#1} \csname \DocutilsClassFunctionName \endcsname}% {\csname end\DocutilsClassFunctionName \endcsname}% \fi % Provide a length variable and set default, if it is new \providecommand*{\DUprovidelength}[2]{ \ifthenelse{\isundefined{#1}}{\newlength{#1}\setlength{#1}{#2}}{} } \providecommand*{\DUCLASSabstract}{ \renewcommand{\DUtitle}[1]{\centerline{\textbf{##1}}} } % admonition environment (specially marked topic) \ifx\DUadmonition\undefined % poor man's "provideenvironment" \newbox{\DUadmonitionbox} \newenvironment{DUadmonition}% {\begin{center} \begin{lrbox}{\DUadmonitionbox} \begin{minipage}{0.9\linewidth} }% { \end{minipage} \end{lrbox} \fbox{\usebox{\DUadmonitionbox}} \end{center} } \fi % width of docinfo table \DUprovidelength{\DUdocinfowidth}{0.9\linewidth} % field list environment (for separate configuration of `field lists`) \ifthenelse{\isundefined{\DUfieldlist}}{ \newenvironment{DUfieldlist}% {\quote\description} {\enddescription\endquote} }{} % numerical or symbol footnotes with hyperlinks and backlinks \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% } % custom inline roles: \DUrole{#1}{#2} tries \DUrole#1{#2} \providecommand*{\DUrole}[2]{% \ifcsname DUrole#1\endcsname% \csname DUrole#1\endcsname{#2}% \else% #2% \fi% } % line block 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} }{} % list of command line options \providecommand*{\DUoptionlistlabel}[1]{\bfseries #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} }{} % informal heading \providecommand*{\DUrubric}[1]{\subsubsection*{\emph{#1}}} % title for topics, admonitions, unsupported section levels, and sidebar \providecommand*{\DUtitle}[1]{% \smallskip\noindent\textbf{#1}\smallskip} % titlereference standard role \providecommand*{\DUroletitlereference}[1]{\textsl{#1}} % 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={Styling of Elements in Definition- or Field-List}, pdfauthor={Hänsel;Gretel} } %%% Body \begin{document} \title{Styling of Elements in Definition- or Field-List% \label{styling-of-elements-in-definition-or-field-list}} \author{} \date{} \maketitle % Docinfo \begin{center} \begin{tabularx}{\DUdocinfowidth}{lX} \textbf{Author}: & Hänsel \\ \textbf{Author}: & Gretel \\ \textbf{Address}: & {\raggedright 123 Example Street\\ Example, EX Canada } \\ \textbf{Generic Docinfo List Field}: & \begin{itemize} \item This is a list. \item It does not require \texttt{\textbackslash{}leavevmode} because it is in the docinfo. \end{itemize} \\ \end{tabularx} \end{center} \begin{DUclass}{abstract} \begin{quote} \DUtitle{Abstract} Test that \texttt{\textbackslash{}leavevmode} is inserted after the term or field-name when required for correct placement of the item. \end{quote} \end{DUclass} \section{Elements needing \texttt{\textbackslash{}leavevmode}% \label{elements-needing-leavevmode}% } \begin{DUfieldlist} \item[{Bullet List:}]\leavevmode \begin{itemize} \item This is a bullet list nested in a field list. \item It needs \texttt{\textbackslash{}leavevmode} so that it will start on a new line after the term. \item Without \texttt{\textbackslash{}leavevmode}, the first bullet would be on the same line as the term, and the following bullets would not line up. \end{itemize} \item[{Enumerated List:}]\leavevmode \begin{enumerate} \item This is an enumerated list. \item All lists need \texttt{\textbackslash{}leavevmode}. \end{enumerate} \item[{Field List:}]\leavevmode \begin{DUfieldlist} \item[{Field List:}] Like this one \item[{Needs \texttt{\textbackslash{}leavevmode}:}] Yes \end{DUfieldlist} \item[{empty:}]\end{DUfieldlist} \begin{description} \item[{Definition List}] \leavevmode \begin{description} \item[{Nested}] inside another definition list. \item[{Needs \texttt{\textbackslash{}leavevmode}?}] \leavevmode \begin{description} \item[{Yes.}] Independent of the nesting level. \end{description} \end{description} \item[{Option List}] \leavevmode \begin{DUoptionlist} \item[-h] Show help \item[-v] Be verbose \item[-{}-rare] a) This description starts with an enumeration c) but does not need \texttt{\textbackslash{}leavevmode}. \end{DUoptionlist} \item[{Literal Block}] \leavevmode \begin{quote} \begin{alltt} _needs_leavevmode = True \end{alltt} \end{quote} \item[{Doctest Block}] \leavevmode \begin{quote} \begin{alltt} >>> needs_leavevmode(nodes.doctest_block) True \end{alltt} \end{quote} \item[{Line Block}] \leavevmode \begin{DUlineblock}{0em} \item[] Needs “\texttt{\textbackslash{}leavevmode}”, \item[] so that all lines start with the same indent. \end{DUlineblock} \item[{Block Quote}] \leavevmode % \begin{quote} Block Quotes need “\texttt{\textbackslash{}leavevmode}”, too, so that all lines start with the same indent. \end{quote} \item[{Table}] \leavevmode \setlength{\DUtablewidth}{\linewidth}% \begin{longtable*}{|p{0.051\DUtablewidth}|p{0.051\DUtablewidth}|} \hline 1 & 2 \\ \hline 3 & 4 \\ \hline \end{longtable*} \item[{Figure}] \leavevmode \begin{figure} \noindent\makebox[\linewidth][c]{\includegraphics{../../../docs/user/rst/images/title.png}} \caption{A figure} \end{figure} \item[{Image}] \leavevmode \includegraphics{../../../docs/user/rst/images/title.png} \item[{Rubric}] \leavevmode \DUrubric{A Rubric} \item[{Admonition}] \leavevmode \begin{DUclass}{note} \begin{DUadmonition} \DUtitle{Note} Admonitions need to be preceded by \texttt{\textbackslash{}leavevmode}. Otherwise, the term ends up centered above the admonition box. So do \emph{System Messages}, as they use the “DUadmonition” LaTeX environment. \end{DUadmonition} \end{DUclass} \end{description} \section{Elements not needing \texttt{\textbackslash{}leavevmode}% \label{elements-not-needing-leavevmode}% } \begin{description} \item[{Paragraph}] Paragraphs don’t need \texttt{\textbackslash{}leavevmode}. They are meant to start after the term and have a hanging indent. \begin{itemize} \item Subsequent elements don’t need \texttt{\textbackslash{}leavevmode} either. \end{itemize} \item[{Math Block}] % \begin{equation*} \sum_{i=1}^n i = \frac{n^2+n}{2} \end{equation*} LaTeX starts math blocks (both single-line and multiline) in a new paragraph automatically, with or without \texttt{\textbackslash{}leavevmode}, so \texttt{\textbackslash{}leavevmode} isn’t needed. \item[{Term with Classifier: classifier}] \leavevmode \begin{itemize} \item After a \emph{classifier}, \texttt{\textbackslash{}leavevmode} is not required. \item This holds for all elements that normally need \texttt{\textbackslash{}leavevmode}. \end{itemize} \end{description} \section{Ambiguous cases% \label{ambiguous-cases}% } \begin{description} \item[{Comment and Target}] \leavevmode % This is ignored. \begin{itemize} \item Comments and other “Invisible” nodes (substitution definitions, targets, pending) must be skipped when determining whether a \texttt{\textbackslash{}leavevmode} is required. \end{itemize} \item[{Substitution Definition and Class directive}] \DUrole{test}{Is \texttt{\textbackslash{}leavevmode} required? Answer: No (because a paragraph follows).} \item[{Compound}] \begin{DUclass}{compound} \DUroletitlereference{Compound} and \DUroletitlereference{Container} wrap around other block elements. They get a \texttt{\textbackslash{}leavevmode}, if the first nested element is a list or similar. \end{DUclass} \item[{Container}] \leavevmode \begin{DUclass}{my-class} \begin{itemize} \item This list inside a container requires a \texttt{\textbackslash{}leavevmode}. \end{itemize} \end{DUclass} \item[{Footnote}] % \DUfootnotetext{f1}{f1}{1}{\phantomsection\label{f1}% This footnote will move to the bottom of the page. } A \texttt{\textbackslash{}leavevmode} is required, if the first list item value is a footnote and a list or similar follows. \item[{Citation}] \leavevmode\begin{figure}[b]\raisebox{1em}{\hypertarget{example73}{}}[example73] No Name, “Citations move to the bottom as well”, Musterstadt, 1973. \end{figure} \begin{itemize} \item A \texttt{\textbackslash{}leavevmode} is required, if the first list item value is a citation and a list or similar follows. \end{itemize} \item[{Raw Block Text}] \leavevmode “Raw” blocks are always preceded by \verb|\leavevmode|, just in case. \end{description} \end{document}