\documentclass[a4paper]{article} % generated by Docutils \usepackage{cmap} % fix search and cut-and-paste in Acrobat \usepackage{ifthen} \usepackage[T1]{fontenc} \DeclareUnicodeCharacter{21D4}{\ensuremath{\Leftrightarrow}} \DeclareUnicodeCharacter{2660}{\ensuremath{\spadesuit}} \DeclareUnicodeCharacter{2663}{\ensuremath{\clubsuit}} \usepackage{alltt} \usepackage{amsmath} \usepackage{float} % extended float configuration \floatplacement{figure}{H} % place figures here definitely \usepackage{graphicx} \usepackage{multirow} \usepackage{pifont} \setcounter{secnumdepth}{0} \usepackage{longtable,ltcaption,array} \setlength{\extrarowheight}{2pt} \newlength{\DUtablewidth} % internal use in tables \newcommand{\DUcolumnwidth}[1]{\dimexpr#1\DUtablewidth-2\tabcolsep\relax} \usepackage{textcomp} % text symbol macros %%% 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}}{} } % 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 % legend environment (in figures and formal tables) \ifthenelse{\isundefined{\DUlegend}}{ \newenvironment{DUlegend}{\small}{} }{} % 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} }{} % 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}} % 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={Additional Tests for the LaTeX Writer}, } %%% Body \begin{document} \title{Additional Tests for the LaTeX Writer% \label{additional-tests-for-the-latex-writer}} \author{} \date{} \maketitle These tests contain syntax elements and combinations which may cause trouble for the LaTeX writer. \phantomsection\label{contents} \pdfbookmark[1]{Contents}{contents} \tableofcontents \section{Section heading levels% \label{section-heading-levels}% } \section{Level 1% \label{level-1}% } Nested sections \subsection{Level 2% \label{level-2}% } reach at some level \subsubsection{Level 3% \label{level-3}% } (depending on the document class and output format) \paragraph{level 4% \label{level-4}% } a level \subparagraph{level 5% \label{level-5}% } that is not supported by the output format. \begin{DUclass}{sectionVI} \DUtitle{level 6% \label{level-6}% } \end{DUclass} Unsupported in LaTeX and HTML5 (HTML5 reserves the 1st level for the document title). \begin{DUclass}{sectionVII} \DUtitle{level 7% \label{level-7}% } \end{DUclass} Unsupported in HTML4. \begin{DUclass}{sectionVIII} \DUtitle{level 8% \label{level-8}% } \end{DUclass} Unsupported in ODT. \section{Section titles with inline markup% \label{section-titles-with-inline-markup}% \label{references}% } \subsection{\emph{emphasized}, H\textsubscript{2}O, $x^2$, and \hyperref[references]{references}% \label{emphasized-h2o-x-2-and-references}% } \subsection{Substitutions work% \label{substitutions-fail}% } Note, that the \textquotedbl{}reference name\textquotedbl{} for this section is derived from the content \emph{before} substitution. This may be exploited to get intelligible IDs after \href{https://docutils.sourceforge.io/docs/ref/rst/directives.html\#identifier-normalization}{identifier normalization} of the section's reference name. % This file is used by the standalone_rst_latex test. \section{Option lists% \label{option-lists}% } 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 an 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} \section{Block Quotes% \label{block-quotes}% } \begin{quote} This block quote comes directly after the section heading and is followed by a paragraph. This is the second paragraph of the block quote and it contains some more text filling up some space which would otherwise be empty. \nopagebreak \raggedleft —Attribution \end{quote} This is a paragraph. \begin{quote} This block quote does not have an attribution. \end{quote} This is another paragraph. \begin{quote} Another block quote at the end of the section. \end{quote} \section{More Block Quotes% \label{more-block-quotes}% } \begin{quote} Block quote followed by a transition. \end{quote} %___________________________________________________________________________ \DUtransition \begin{quote} Another block quote. \end{quote} \section{Images% \label{images}% } Image with 20\% width: \includegraphics[width=0.200\linewidth]{../../../docs/user/rst/images/title.png} Image with 100\% width: \includegraphics[width=1.000\linewidth]{../../../docs/user/rst/images/title.png} \section{Tables% \label{tables}% } In contrast to HTML, LaTeX does not support line-breaks in tables with \textquotedbl{}automatic\textquotedbl{} column widths. Each cell has just one line, paragraphs are merged (the writer emits a warning). \begin{longtable}{|l|l|} \caption{problems with \textquotedbl{}auto\textquotedbl{} widths}\\ \hline 11 & first paragraph second paragraph \\ \hline content with linebreak & 22 \\ \hline \end{longtable} To provide for arbitrary cell content, the LaTeX writer defaults to specifying column widths computed from the source column widths. This works sufficiently in many cases: \setlength{\DUtablewidth}{\dimexpr\linewidth-7\arrayrulewidth\relax}% \begin{longtable}{|p{\DUcolumnwidth{0.153}}|p{\DUcolumnwidth{0.208}}|p{\DUcolumnwidth{0.208}}|p{\DUcolumnwidth{0.125}}|p{\DUcolumnwidth{0.139}}|p{\DUcolumnwidth{0.167}}|} \caption{a table with multi-paragraph multi-column cells}\\ \hline test & \textbf{bold hd} & \multicolumn{3}{p{\DUcolumnwidth{0.472}}|}{% multicolumn 1 With a second paragraph } & \emph{emph hd} \\ \hline \multicolumn{2}{|p{\DUcolumnwidth{0.361}}|}{% multicolumn 2 With a second paragraph } & cell & cell & cell & cell \\ \hline cell & \multicolumn{2}{p{\DUcolumnwidth{0.417}}|}{% multicolumn 3 (one line, but very very very very very looooong) } & cell & cell & cell \\ \hline cell & cell & cell & \multicolumn{3}{p{\DUcolumnwidth{0.431}}|}{% Short multicolumn 4 } \\ \hline \end{longtable} A problem with the source-derived column widths is that simple tables often use no padding while grid tables without padding look cramped: \setlength{\DUtablewidth}{\dimexpr\linewidth-5\arrayrulewidth\relax}% \begin{longtable}{|p{\DUcolumnwidth{0.100}}|p{\DUcolumnwidth{0.050}}|p{\DUcolumnwidth{0.050}}|p{\DUcolumnwidth{0.050}}|} \caption{simple table, not padded in the source}\\ \hline \textbf{% A } & \textbf{% B } & \textbf{% C } & \textbf{% D } \\ \hline \endfirsthead \caption[]{simple table, not padded in the source (... continued)}\\ \hline \textbf{% A } & \textbf{% B } & \textbf{% C } & \textbf{% D } \\ \hline \endhead \multicolumn{4}{p{\DUcolumnwidth{0.250}}}{\raggedleft\ldots continued on next page}\\ \endfoot \endlastfoot 100 & 2 & 3 & 4 \\ \hline EUR & b & c & d \\ \hline \end{longtable} \setlength{\DUtablewidth}{\dimexpr\linewidth-5\arrayrulewidth\relax}% \begin{longtable}{|p{\DUcolumnwidth{0.150}}|p{\DUcolumnwidth{0.100}}|p{\DUcolumnwidth{0.100}}|p{\DUcolumnwidth{0.100}}|} \caption{grid table, padded cells}\\ \hline \textbf{% A } & \textbf{% B } & \textbf{% C } & \textbf{% D } \\ \hline \endfirsthead \caption[]{grid table, padded cells (... continued)}\\ \hline \textbf{% A } & \textbf{% B } & \textbf{% C } & \textbf{% D } \\ \hline \endhead \multicolumn{4}{p{\DUcolumnwidth{0.450}}}{\raggedleft\ldots continued on next page}\\ \endfoot \endlastfoot 100 & 2 & 3 & 4 \\ \hline EUR & b & c & d \\ \hline \end{longtable} For better typographic results, setting the \DUroletitlereference{width} and/or \DUroletitlereference{widths} options of the \href{https://docutils.sourceforge.io/docs/ref/rst/directives.html\#table}{table directive} is recommended. \begin{longtable}{|l|l|l|l|} \caption{grid table, auto-width columns}\\ \hline \textbf{A} & \textbf{B} & \textbf{C} & \textbf{D} \\ \hline \endfirsthead \caption[]{grid table, auto-width columns (... continued)}\\ \hline \textbf{A} & \textbf{B} & \textbf{C} & \textbf{D} \\ \hline \endhead \endfoot \endlastfoot 100 & 2 & 3 & 4 \\ \hline EUR & b & c & d \\ \hline \end{longtable} \begin{longtable}{|l|l|} \caption{table with multi-row header and \textquotedbl{}auto\textquotedbl{} column-widths}\\ \hline \multirow{2}{*}{\textbf{XXX}} & \textbf{Variable Summary} \\ \cline{2-2} & \textbf{Description} \\ \hline \endfirsthead \caption[]{table with multi-row header and \textquotedbl{}auto\textquotedbl{} column-widths (... continued)}\\ \hline \multirow{2}{*}{\textbf{XXX}} & \textbf{Variable Summary} \\ \cline{2-2} & \textbf{Description} \\ \hline \endhead \multicolumn{2}{l}{\raggedleft\ldots continued on next page}\\ \endfoot \endlastfoot \multicolumn{2}{|l|}{multi-column cell} \\ \hline \end{longtable} The \DUroletitlereference{width} option overrides \textquotedbl{}auto\textquotedbl{} \DUroletitlereference{widths} as standard LaTeX tables don't have a global width setting: \setlength{\DUtablewidth}{\dimexpr0.600\linewidth-5\arrayrulewidth\relax}% \begin{longtable}{|p{\DUcolumnwidth{0.400}}|p{\DUcolumnwidth{0.200}}|p{\DUcolumnwidth{0.200}}|p{\DUcolumnwidth{0.200}}|} \caption{This table has \DUroletitlereference{widths} \textquotedbl{}auto\textquotedbl{} (ignored) and \DUroletitlereference{width} 60\%.}\\ \hline \textbf{% A } & \textbf{% B } & \textbf{% C } & \textbf{% D } \\ \hline \endfirsthead \caption[]{This table has \DUroletitlereference{widths} \textquotedbl{}auto\textquotedbl{} (ignored) and \DUroletitlereference{width} 60\%. (... continued)}\\ \hline \textbf{% A } & \textbf{% B } & \textbf{% C } & \textbf{% D } \\ \hline \endhead \multicolumn{4}{p{\DUcolumnwidth{1.000}}}{\raggedleft\ldots continued on next page}\\ \endfoot \endlastfoot 100 & 2 & 3 & 4 \\ \hline EUR & b & c & d \\ \hline \end{longtable} \subsection{Nested tables% \label{nested-tables}% } \setlength{\DUtablewidth}{\dimexpr\linewidth-3\arrayrulewidth\relax}% \begin{longtable*}{|p{\DUcolumnwidth{0.700}}|p{\DUcolumnwidth{0.300}}|} \hline Lorem ipsum dolor sit amet, consectetur & adipisicing elit \\ \hline \noindent\makebox[\linewidth][r]{% \setlength{\DUtablewidth}{\dimexpr\linewidth-3\arrayrulewidth\relax}% \begin{tabular}{|p{\DUcolumnwidth{0.150}}|p{\DUcolumnwidth{0.150}}|} \hline 1 & 2 \\ \hline \end{tabular} } & cell 1, 2 \\ \hline table width depends on parent column \noindent\makebox[\linewidth][c]{% \setlength{\DUtablewidth}{\dimexpr\linewidth-3\arrayrulewidth\relax}% \begin{tabular}{|p{\DUcolumnwidth{0.150}}|p{\DUcolumnwidth{0.150}}|} \hline 1 & 2 \\ \hline \end{tabular} } better use \textquotedbl{}auto\textquotedbl{} widths, see below & same table \setlength{\DUtablewidth}{\dimexpr\linewidth-3\arrayrulewidth\relax}% \begin{tabular}{|p{\DUcolumnwidth{0.150}}|p{\DUcolumnwidth{0.150}}|} \hline 1 & 2 \\ \hline \end{tabular} in narrow column \\ \hline \noindent\makebox[\linewidth][r]{% \begin{tabular}{|l|l|} \hline 1 & 2 \\ \hline \end{tabular} } \begin{description} \item[{definition:}] list \end{description} & cell 3, 2 \\ \hline \end{longtable*} \subsection{TODO% \label{todo}% } \begin{itemize} \item Tables with multi-paragraph multi-row cells currently fail due to a LaTeX limitation (see \url{https://sourceforge.net/p/docutils/bugs/225/}). \item Tweak vertical spacing in table cells containing multiple elements. \end{itemize} See also \texttt{test/functional/input/data/latex-problematic.txt}. \section{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. \section{Non-ASCII characters% \label{non-ascii-characters}% } \begin{longtable}{|l|l|} \caption{Punctuation and footnote symbols}\\ \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 \ding{169} & black diamond suit \\ \hline \ding{170} & 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} \begin{longtable}{|l|l|l|l|l|l|l|l|l|l|l|} \caption{The \DUroletitlereference{Latin-1 extended} Unicode block}\\ \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} \section{Encoding special characters% \label{encoding-special-characters}% } The LaTeX Info pages list under \textquotedbl{}2.18 Special Characters\textquotedbl{} \begin{quote} The following characters play a special role in LaTeX and are called \textquotedbl{}special printing characters\textquotedbl{}, or simply \textquotedbl{}special characters\textquotedbl{}. \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 \texttt{\textbackslash{}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}] description term \item[{{[}bracketed{]}}] description term \end{description} The OT1 font-encoding differs from ASCII for the less-than, greater-than and bar characters (< | >) except for typewriter font \DUroletitlereference{cmtt} (\texttt{< | >}). \section{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}{\dimexpr\linewidth-4\arrayrulewidth\relax}% \begin{longtable}{|p{\DUcolumnwidth{0.150}}|p{\DUcolumnwidth{0.150}}|p{\DUcolumnwidth{0.150}}|} \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}. \section{External references% \label{external-references}% } Long URLs should be wrapped in the PDF. This can be achieved with the \texttt{\textbackslash{}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:}] a long URL that should wrap in the output \url{https://docutils.sourceforge.io/docs/user/latex.html\#id79} \end{description} If the argument contains any \textquotedbl{}\%\textquotedbl{}, \textquotedbl{}\#\textquotedbl{}, or \textquotedbl{}\textasciicircum{}\textasciicircum{}\textquotedbl{}, 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 \textquotedbl{}http:\textquotedbl{} or \textquotedbl{}ftp:\textquotedbl{} 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} \url{A:DOS\\path\\} \end{DUlineblock} \begin{DUclass}{note} \begin{DUadmonition} \DUtitle{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\\} \end{DUlineblock} \end{DUadmonition} \end{DUclass} \end{itemize} \begin{itemize} \item \texttt{\textasciicircum{}\textasciicircum{}} LaTeX's special syntax for characters results in \textquotedbl{}strange\textquotedbl{} replacements (both with \texttt{\textbackslash{}href} and \texttt{\textbackslash{}url}). The writer emits a warning. \href{../strange^^name}{file with \textasciicircum{}\textasciicircum{}}: \url{../strange^^name} \item Unbalanced braces, \{ or \}, will fail (both with \texttt{\textbackslash{}href} and \texttt{\textbackslash{}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} \end{document}