mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Merge pull request #8781 from jfbu/latex_hyphenation_of_first_word
Fix #8780: long words in narrow columns may not be hyphenated
This commit is contained in:
commit
879bf54a05
1
CHANGES
1
CHANGES
@ -109,6 +109,7 @@ Bugs fixed
|
||||
:confval:`numfig` is not True
|
||||
* #8442: LaTeX: some indexed terms are ignored when using xelatex engine
|
||||
(or pdflatex and :confval:`latex_use_xindy` set to True) with memoir class
|
||||
* #8780: LaTeX: long words in narrow columns may not be hyphenated
|
||||
|
||||
Testing
|
||||
--------
|
||||
|
@ -12,17 +12,13 @@ The following is a list of deprecated interfaces.
|
||||
|
||||
.. tabularcolumns:: |>{\raggedright}\Y{.4}|>{\centering}\Y{.1}|>{\centering}\Y{.12}|>{\raggedright\arraybackslash}\Y{.38}|
|
||||
|
||||
.. |LaTeXHyphenate| raw:: latex
|
||||
|
||||
\hspace{0pt}
|
||||
|
||||
.. list-table:: deprecated APIs
|
||||
:header-rows: 1
|
||||
:class: deprecated
|
||||
:widths: 40, 10, 10, 40
|
||||
|
||||
* - Target
|
||||
- |LaTeXHyphenate|\ Deprecated
|
||||
- Deprecated
|
||||
- (will be) Removed
|
||||
- Alternatives
|
||||
|
||||
|
@ -1024,6 +1024,14 @@ Environments
|
||||
Miscellany
|
||||
~~~~~~~~~~
|
||||
|
||||
- Every text paragraph in document body starts with `\sphinxAtStartPar`.
|
||||
Currently, this is used to insert a zero width horizontal skip which
|
||||
is a trick to allow TeX hyphenation of the first word of a paragraph
|
||||
in a narrow context (like a table cell). For ``'lualatex'`` which
|
||||
does not need the trick, the `\sphinxAtStartPar` does nothing.
|
||||
|
||||
.. versionadded:: 3.5.0
|
||||
|
||||
- The section, subsection, ... headings are set using *titlesec*'s
|
||||
``\titleformat`` command.
|
||||
|
||||
|
@ -410,6 +410,11 @@
|
||||
\DisableKeyvalOption{sphinx}{numfigreset}
|
||||
\DisableKeyvalOption{sphinx}{nonumfigreset}
|
||||
\DisableKeyvalOption{sphinx}{mathnumfig}
|
||||
% To allow hyphenation of first word in narrow contexts; no option,
|
||||
% customization to be done via 'preamble' key
|
||||
\newcommand*\sphinxAtStartPar{\nobreak\hskip\z@skip}
|
||||
% No need for the \hspace{0pt} trick (\hskip\z@skip) with luatex
|
||||
\ifdefined\directlua\let\sphinxAtStartPar\@empty\fi
|
||||
% user interface: options can be changed midway in a document!
|
||||
\newcommand\sphinxsetup[1]{\setkeys{sphinx}{#1}}
|
||||
|
||||
|
@ -1161,7 +1161,9 @@ class LaTeXTranslator(SphinxTranslator):
|
||||
# (first one is label node)
|
||||
pass
|
||||
else:
|
||||
self.body.append('\n')
|
||||
# the \sphinxAtStartPar is to allow hyphenation of first word of
|
||||
# a paragraph in narrow contexts such as in a table cell
|
||||
self.body.append('\n\\sphinxAtStartPar\n')
|
||||
|
||||
def depart_paragraph(self, node: Element) -> None:
|
||||
self.body.append('\n')
|
||||
|
@ -1,13 +1,18 @@
|
||||
|
||||
\sphinxAtStartPar
|
||||
Equation without a label.
|
||||
\begin{equation*}
|
||||
\begin{split}E = mc^2\end{split}
|
||||
\end{equation*}
|
||||
\sphinxAtStartPar
|
||||
Equation with label.
|
||||
\begin{equation}\label{equation:equations:test}
|
||||
\begin{split}E = hv\end{split}
|
||||
\end{equation}
|
||||
\sphinxAtStartPar
|
||||
Second equation without label.
|
||||
\begin{equation*}
|
||||
\begin{split}c^2 = a^2 + b^2\end{split}
|
||||
\end{equation*}
|
||||
\sphinxAtStartPar
|
||||
Equation with label \eqref{equation:equations:test} is important.
|
||||
|
@ -1,10 +1,13 @@
|
||||
\label{\detokenize{complex:complex-spanning-cell}}
|
||||
\sphinxAtStartPar
|
||||
table having …
|
||||
\begin{itemize}
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
consecutive multirow at top of row (1\sphinxhyphen{}1 and 1\sphinxhyphen{}2)
|
||||
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
consecutive multirow at end of row (1\sphinxhyphen{}4 and 1\sphinxhyphen{}5)
|
||||
|
||||
\end{itemize}
|
||||
@ -16,26 +19,35 @@ consecutive multirow at end of row (1\sphinxhyphen{}4 and 1\sphinxhyphen{}5)
|
||||
\hline
|
||||
\sphinxmultirow{3}{1}{%
|
||||
\begin{varwidth}[t]{\sphinxcolwidth{1}{5}}
|
||||
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}1
|
||||
\par
|
||||
\vskip-\baselineskip\vbox{\hbox{\strut}}\end{varwidth}%
|
||||
}%
|
||||
&\sphinxmultirow{3}{2}{%
|
||||
\begin{varwidth}[t]{\sphinxcolwidth{1}{5}}
|
||||
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}2
|
||||
\par
|
||||
\vskip-\baselineskip\vbox{\hbox{\strut}}\end{varwidth}%
|
||||
}%
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}3
|
||||
&\sphinxmultirow{3}{4}{%
|
||||
\begin{varwidth}[t]{\sphinxcolwidth{1}{5}}
|
||||
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}4
|
||||
\par
|
||||
\vskip-\baselineskip\vbox{\hbox{\strut}}\end{varwidth}%
|
||||
}%
|
||||
&\sphinxmultirow{2}{5}{%
|
||||
\begin{varwidth}[t]{\sphinxcolwidth{1}{5}}
|
||||
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}5
|
||||
\par
|
||||
\vskip-\baselineskip\vbox{\hbox{\strut}}\end{varwidth}%
|
||||
@ -43,12 +55,15 @@ cell1\sphinxhyphen{}5
|
||||
\\
|
||||
\cline{3-3}\sphinxtablestrut{1}&\sphinxtablestrut{2}&\sphinxmultirow{2}{6}{%
|
||||
\begin{varwidth}[t]{\sphinxcolwidth{1}{5}}
|
||||
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}3
|
||||
\par
|
||||
\vskip-\baselineskip\vbox{\hbox{\strut}}\end{varwidth}%
|
||||
}%
|
||||
&\sphinxtablestrut{4}&\sphinxtablestrut{5}\\
|
||||
\cline{5-5}\sphinxtablestrut{1}&\sphinxtablestrut{2}&\sphinxtablestrut{6}&\sphinxtablestrut{4}&
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}5
|
||||
\\
|
||||
\hline
|
||||
|
@ -5,35 +5,47 @@
|
||||
\begin{tabulary}{\linewidth}[t]{|T|T|T|}
|
||||
\hline
|
||||
\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header2
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header3
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}1
|
||||
&\sphinxmultirow{2}{5}{%
|
||||
\begin{varwidth}[t]{\sphinxcolwidth{1}{3}}
|
||||
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}2
|
||||
\par
|
||||
\vskip-\baselineskip\vbox{\hbox{\strut}}\end{varwidth}%
|
||||
}%
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}3
|
||||
\\
|
||||
\cline{1-1}\cline{3-3}\sphinxmultirow{2}{7}{%
|
||||
\begin{varwidth}[t]{\sphinxcolwidth{1}{3}}
|
||||
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}1
|
||||
\par
|
||||
\vskip-\baselineskip\vbox{\hbox{\strut}}\end{varwidth}%
|
||||
}%
|
||||
&\sphinxtablestrut{5}&
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}3
|
||||
\\
|
||||
\cline{2-3}\sphinxtablestrut{7}&\sphinxstartmulticolumn{2}%
|
||||
\sphinxmultirow{2}{9}{%
|
||||
\begin{varwidth}[t]{\sphinxcolwidth{2}{3}}
|
||||
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}2
|
||||
\par
|
||||
\vskip-\baselineskip\vbox{\hbox{\strut}}\end{varwidth}%
|
||||
@ -41,10 +53,13 @@ cell3\sphinxhyphen{}2
|
||||
\sphinxstopmulticolumn
|
||||
\\
|
||||
\cline{1-1}
|
||||
\sphinxAtStartPar
|
||||
cell4\sphinxhyphen{}1
|
||||
&\multicolumn{2}{l|}{\sphinxtablestrut{9}}\\
|
||||
\hline\sphinxstartmulticolumn{3}%
|
||||
\begin{varwidth}[t]{\sphinxcolwidth{3}{3}}
|
||||
|
||||
\sphinxAtStartPar
|
||||
cell5\sphinxhyphen{}1
|
||||
\par
|
||||
\vskip-\baselineskip\vbox{\hbox{\strut}}\end{varwidth}%
|
||||
|
@ -3,8 +3,10 @@
|
||||
\begin{savenotes}\sphinxatlongtablestart\begin{longtable}[c]{|l|l|}
|
||||
\hline
|
||||
\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header2
|
||||
\\
|
||||
\hline
|
||||
@ -14,8 +16,10 @@ header2
|
||||
{\makebox[0pt]{\sphinxtablecontinued{\tablename\ \thetable{} \textendash{} continued from previous page}}}\\
|
||||
\hline
|
||||
\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header2
|
||||
\\
|
||||
\hline
|
||||
@ -27,18 +31,24 @@ header2
|
||||
|
||||
\endlastfoot
|
||||
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
|
@ -3,8 +3,10 @@
|
||||
\begin{savenotes}\sphinxatlongtablestart\begin{longtable}[r]{|l|l|}
|
||||
\hline
|
||||
\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header2
|
||||
\\
|
||||
\hline
|
||||
@ -14,8 +16,10 @@ header2
|
||||
{\makebox[0pt]{\sphinxtablecontinued{\tablename\ \thetable{} \textendash{} continued from previous page}}}\\
|
||||
\hline
|
||||
\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header2
|
||||
\\
|
||||
\hline
|
||||
@ -27,18 +31,24 @@ header2
|
||||
|
||||
\endlastfoot
|
||||
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
|
@ -5,8 +5,10 @@
|
||||
\caption{caption for longtable\strut}\label{\detokenize{longtable:id1}}\\*[\sphinxlongtablecapskipadjust]
|
||||
\hline
|
||||
\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header2
|
||||
\\
|
||||
\hline
|
||||
@ -16,8 +18,10 @@ header2
|
||||
{\makebox[0pt]{\sphinxtablecontinued{\tablename\ \thetable{} \textendash{} continued from previous page}}}\\
|
||||
\hline
|
||||
\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header2
|
||||
\\
|
||||
\hline
|
||||
@ -29,18 +33,24 @@ header2
|
||||
|
||||
\endlastfoot
|
||||
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
|
@ -3,8 +3,10 @@
|
||||
\begin{savenotes}\sphinxatlongtablestart\begin{longtable}[c]{|*{2}{\X{1}{2}|}}
|
||||
\hline
|
||||
\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header2
|
||||
\\
|
||||
\hline
|
||||
@ -14,8 +16,10 @@ header2
|
||||
{\makebox[0pt]{\sphinxtablecontinued{\tablename\ \thetable{} \textendash{} continued from previous page}}}\\
|
||||
\hline
|
||||
\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header2
|
||||
\\
|
||||
\hline
|
||||
@ -28,23 +32,30 @@ header2
|
||||
\endlastfoot
|
||||
\begin{itemize}
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
item1
|
||||
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
item2
|
||||
|
||||
\end{itemize}
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
|
@ -3,10 +3,13 @@
|
||||
\begin{savenotes}\sphinxatlongtablestart\begin{longtable}[c]{|*{3}{\X{1}{3}|}}
|
||||
\hline
|
||||
\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header2
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header3
|
||||
\\
|
||||
\hline
|
||||
@ -16,10 +19,13 @@ header3
|
||||
{\makebox[0pt]{\sphinxtablecontinued{\tablename\ \thetable{} \textendash{} continued from previous page}}}\\
|
||||
\hline
|
||||
\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header2
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header3
|
||||
\\
|
||||
\hline
|
||||
@ -32,22 +38,29 @@ header3
|
||||
\endlastfoot
|
||||
\sphinxstyletheadfamily \begin{itemize}
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
instub1\sphinxhyphen{}1a
|
||||
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
instub1\sphinxhyphen{}1b
|
||||
|
||||
\end{itemize}
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
instub1\sphinxhyphen{}2
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
notinstub1\sphinxhyphen{}3
|
||||
\\
|
||||
\hline\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}2
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}3
|
||||
\\
|
||||
\hline
|
||||
|
@ -3,8 +3,10 @@
|
||||
\begin{savenotes}\sphinxatlongtablestart\begin{longtable}[c]{|*{2}{\X{1}{2}|}}
|
||||
\hline
|
||||
\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header2
|
||||
\\
|
||||
\hline
|
||||
@ -14,8 +16,10 @@ header2
|
||||
{\makebox[0pt]{\sphinxtablecontinued{\tablename\ \thetable{} \textendash{} continued from previous page}}}\\
|
||||
\hline
|
||||
\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header2
|
||||
\\
|
||||
\hline
|
||||
@ -31,16 +35,21 @@ header2
|
||||
\PYG{n}{hello} \PYG{n}{world}
|
||||
\end{sphinxVerbatimintable}
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
|
@ -3,8 +3,10 @@
|
||||
\begin{savenotes}\sphinxatlongtablestart\begin{longtable}[c]{|\X{30}{100}|\X{70}{100}|}
|
||||
\hline\noalign{\phantomsection\label{\detokenize{longtable:namedlongtable}}\label{\detokenize{longtable:mylongtable}}}%
|
||||
\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header2
|
||||
\\
|
||||
\hline
|
||||
@ -14,8 +16,10 @@ header2
|
||||
{\makebox[0pt]{\sphinxtablecontinued{\tablename\ \thetable{} \textendash{} continued from previous page}}}\\
|
||||
\hline
|
||||
\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header2
|
||||
\\
|
||||
\hline
|
||||
@ -27,21 +31,28 @@ header2
|
||||
|
||||
\endlastfoot
|
||||
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\end{longtable}\sphinxatlongtableend\end{savenotes}
|
||||
|
||||
\sphinxAtStartPar
|
||||
See {\hyperref[\detokenize{longtable:mylongtable}]{\sphinxcrossref{mylongtable}}}, same as {\hyperref[\detokenize{longtable:namedlongtable}]{\sphinxcrossref{\DUrole{std,std-ref}{this one}}}}.
|
||||
|
@ -3,8 +3,10 @@
|
||||
\begin{savenotes}\sphinxatlongtablestart\begin{longtable}[c]{|\X{30}{100}|\X{70}{100}|}
|
||||
\hline
|
||||
\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header2
|
||||
\\
|
||||
\hline
|
||||
@ -14,8 +16,10 @@ header2
|
||||
{\makebox[0pt]{\sphinxtablecontinued{\tablename\ \thetable{} \textendash{} continued from previous page}}}\\
|
||||
\hline
|
||||
\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header2
|
||||
\\
|
||||
\hline
|
||||
@ -28,23 +32,30 @@ header2
|
||||
\endlastfoot
|
||||
\begin{itemize}
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
item1
|
||||
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
item2
|
||||
|
||||
\end{itemize}
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
|
@ -3,8 +3,10 @@
|
||||
\begin{savenotes}\sphinxatlongtablestart\begin{longtable}[c]{|c|c|}
|
||||
\hline
|
||||
\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header2
|
||||
\\
|
||||
\hline
|
||||
@ -14,8 +16,10 @@ header2
|
||||
{\makebox[0pt]{\sphinxtablecontinued{\tablename\ \thetable{} \textendash{} continued from previous page}}}\\
|
||||
\hline
|
||||
\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header2
|
||||
\\
|
||||
\hline
|
||||
@ -27,18 +31,24 @@ header2
|
||||
|
||||
\endlastfoot
|
||||
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
|
@ -5,23 +5,31 @@
|
||||
\begin{tabulary}{\linewidth}[t]{|T|T|}
|
||||
\hline
|
||||
\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
|
@ -9,23 +9,31 @@
|
||||
\begin{tabulary}{\linewidth}[t]{|T|T|}
|
||||
\hline
|
||||
\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
|
@ -5,29 +5,38 @@
|
||||
\begin{tabular}[t]{|*{2}{\X{1}{2}|}}
|
||||
\hline
|
||||
\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header2
|
||||
\\
|
||||
\hline\begin{itemize}
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
item1
|
||||
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
item2
|
||||
|
||||
\end{itemize}
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
|
@ -5,30 +5,40 @@
|
||||
\begin{tabular}[t]{|*{3}{\X{1}{3}|}}
|
||||
\hline
|
||||
\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header2
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header3
|
||||
\\
|
||||
\hline\sphinxstyletheadfamily \begin{itemize}
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
instub1\sphinxhyphen{}1a
|
||||
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
instub1\sphinxhyphen{}1b
|
||||
|
||||
\end{itemize}
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
instub1\sphinxhyphen{}2
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
notinstub1\sphinxhyphen{}3
|
||||
\\
|
||||
\hline\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}2
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}3
|
||||
\\
|
||||
\hline
|
||||
|
@ -5,13 +5,17 @@
|
||||
\begin{tabulary}{\linewidth}[t]{|T|}
|
||||
\hline
|
||||
\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header1
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}1\sphinxhyphen{}par1
|
||||
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}1\sphinxhyphen{}par2
|
||||
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}1\sphinxhyphen{}par3
|
||||
\\
|
||||
\hline
|
||||
|
@ -5,8 +5,10 @@
|
||||
\begin{tabular}[t]{|*{2}{\X{1}{2}|}}
|
||||
\hline
|
||||
\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header2
|
||||
\\
|
||||
\hline
|
||||
@ -14,16 +16,21 @@ header2
|
||||
\PYG{n}{hello} \PYG{n}{world}
|
||||
\end{sphinxVerbatimintable}
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
|
@ -6,23 +6,31 @@
|
||||
\begin{tabular}[t]{|\X{30}{100}|\X{70}{100}|}
|
||||
\hline
|
||||
\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
@ -30,4 +38,5 @@ cell3\sphinxhyphen{}2
|
||||
\par
|
||||
\sphinxattableend\end{savenotes}
|
||||
|
||||
\sphinxAtStartPar
|
||||
See {\hyperref[\detokenize{tabular:mytabular}]{\sphinxcrossref{\DUrole{std,std-ref}{this}}}}, same as {\hyperref[\detokenize{tabular:namedtabular}]{\sphinxcrossref{namedtabular}}}.
|
||||
|
@ -5,29 +5,38 @@
|
||||
\begin{tabular}[t]{|\X{30}{100}|\X{70}{100}|}
|
||||
\hline
|
||||
\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header2
|
||||
\\
|
||||
\hline\begin{itemize}
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
item1
|
||||
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
item2
|
||||
|
||||
\end{itemize}
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
|
@ -5,23 +5,31 @@
|
||||
\begin{tabular}[t]{|\X{30}{100}|\X{70}{100}|}
|
||||
\hline
|
||||
\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
|
@ -5,23 +5,31 @@
|
||||
\begin{tabulary}{\linewidth}[t]{|c|c|}
|
||||
\hline
|
||||
\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
|
@ -5,23 +5,31 @@
|
||||
\begin{tabulary}{\linewidth}[t]{|T|T|}
|
||||
\hline
|
||||
\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header1
|
||||
&\sphinxstyletheadfamily
|
||||
\sphinxAtStartPar
|
||||
header2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell1\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell2\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}1
|
||||
&
|
||||
\sphinxAtStartPar
|
||||
cell3\sphinxhyphen{}2
|
||||
\\
|
||||
\hline
|
||||
|
@ -730,13 +730,14 @@ def test_footnote(app, status, warning):
|
||||
'\\end{footnote}') in result
|
||||
assert '\\begin{footnote}[3]\\sphinxAtStartFootnote\nnamed\n%\n\\end{footnote}' in result
|
||||
assert '\\sphinxcite{footnote:bar}' in result
|
||||
assert ('\\bibitem[bar]{footnote:bar}\ncite\n') in result
|
||||
assert ('\\bibitem[bar]{footnote:bar}\n\\sphinxAtStartPar\ncite\n') in result
|
||||
assert '\\sphinxcaption{Table caption \\sphinxfootnotemark[4]' in result
|
||||
assert ('\\hline%\n\\begin{footnotetext}[4]\\sphinxAtStartFootnote\n'
|
||||
'footnote in table caption\n%\n\\end{footnotetext}\\ignorespaces %\n'
|
||||
'\\begin{footnotetext}[5]\\sphinxAtStartFootnote\n'
|
||||
'footnote in table header\n%\n\\end{footnotetext}\\ignorespaces \n'
|
||||
'VIDIOC\\_CROPCAP\n&\n') in result
|
||||
'footnote in table header\n%\n\\end{footnotetext}\\ignorespaces '
|
||||
'\n\\sphinxAtStartPar\n'
|
||||
'VIDIOC\\_CROPCAP\n&\n\\sphinxAtStartPar\n') in result
|
||||
assert ('Information about VIDIOC\\_CROPCAP %\n'
|
||||
'\\begin{footnote}[6]\\sphinxAtStartFootnote\n'
|
||||
'footnote in table not in header\n%\n\\end{footnote}\n\\\\\n\\hline\n'
|
||||
@ -776,7 +777,7 @@ def test_reference_in_caption_and_codeblock_in_footnote(app, status, warning):
|
||||
assert ('This is a reference to the code\\sphinxhyphen{}block in the footnote:\n'
|
||||
'{\\hyperref[\\detokenize{index:codeblockinfootnote}]'
|
||||
'{\\sphinxcrossref{\\DUrole{std,std-ref}{I am in a footnote}}}}') in result
|
||||
assert ('&\nThis is one more footnote with some code in it %\n'
|
||||
assert ('&\n\\sphinxAtStartPar\nThis is one more footnote with some code in it %\n'
|
||||
'\\begin{footnote}[11]\\sphinxAtStartFootnote\n'
|
||||
'Third footnote in longtable\n') in result
|
||||
assert ('\\end{sphinxVerbatim}\n%\n\\end{footnote}.\n') in result
|
||||
@ -816,13 +817,15 @@ def test_latex_show_urls_is_inline(app, status, warning):
|
||||
assert ('\\sphinxhref{http://sphinx-doc.org/~test/}{URL including tilde} '
|
||||
'(http://sphinx\\sphinxhyphen{}doc.org/\\textasciitilde{}test/)') in result
|
||||
assert ('\\item[{\\sphinxhref{http://sphinx-doc.org/}{URL in term} '
|
||||
'(http://sphinx\\sphinxhyphen{}doc.org/)}] \\leavevmode\nDescription' in result)
|
||||
'(http://sphinx\\sphinxhyphen{}doc.org/)}] '
|
||||
'\\leavevmode\n\\sphinxAtStartPar\nDescription' in result)
|
||||
assert ('\\item[{Footnote in term \\sphinxfootnotemark[6]}] '
|
||||
'\\leavevmode%\n\\begin{footnotetext}[6]\\sphinxAtStartFootnote\n'
|
||||
'Footnote in term\n%\n\\end{footnotetext}\\ignorespaces \n'
|
||||
'Description') in result
|
||||
'Footnote in term\n%\n\\end{footnotetext}\\ignorespaces '
|
||||
'\n\\sphinxAtStartPar\nDescription') in result
|
||||
assert ('\\item[{\\sphinxhref{http://sphinx-doc.org/}{Term in deflist} '
|
||||
'(http://sphinx\\sphinxhyphen{}doc.org/)}] \\leavevmode\nDescription') in result
|
||||
'(http://sphinx\\sphinxhyphen{}doc.org/)}] '
|
||||
'\\leavevmode\n\\sphinxAtStartPar\nDescription') in result
|
||||
assert '\\sphinxurl{https://github.com/sphinx-doc/sphinx}\n' in result
|
||||
assert ('\\sphinxhref{mailto:sphinx-dev@googlegroups.com}'
|
||||
'{sphinx\\sphinxhyphen{}dev@googlegroups.com}') in result
|
||||
@ -867,16 +870,16 @@ def test_latex_show_urls_is_footnote(app, status, warning):
|
||||
'{URL in term}\\sphinxfootnotemark[9]}] '
|
||||
'\\leavevmode%\n\\begin{footnotetext}[9]\\sphinxAtStartFootnote\n'
|
||||
'\\sphinxnolinkurl{http://sphinx-doc.org/}\n%\n'
|
||||
'\\end{footnotetext}\\ignorespaces \nDescription') in result
|
||||
'\\end{footnotetext}\\ignorespaces \n\\sphinxAtStartPar\nDescription') in result
|
||||
assert ('\\item[{Footnote in term \\sphinxfootnotemark[11]}] '
|
||||
'\\leavevmode%\n\\begin{footnotetext}[11]\\sphinxAtStartFootnote\n'
|
||||
'Footnote in term\n%\n\\end{footnotetext}\\ignorespaces \n'
|
||||
'Description') in result
|
||||
'Footnote in term\n%\n\\end{footnotetext}\\ignorespaces '
|
||||
'\n\\sphinxAtStartPar\nDescription') in result
|
||||
assert ('\\item[{\\sphinxhref{http://sphinx-doc.org/}{Term in deflist}'
|
||||
'\\sphinxfootnotemark[10]}] '
|
||||
'\\leavevmode%\n\\begin{footnotetext}[10]\\sphinxAtStartFootnote\n'
|
||||
'\\sphinxnolinkurl{http://sphinx-doc.org/}\n%\n'
|
||||
'\\end{footnotetext}\\ignorespaces \nDescription') in result
|
||||
'\\end{footnotetext}\\ignorespaces \n\\sphinxAtStartPar\nDescription') in result
|
||||
assert ('\\sphinxurl{https://github.com/sphinx-doc/sphinx}\n' in result)
|
||||
assert ('\\sphinxhref{mailto:sphinx-dev@googlegroups.com}'
|
||||
'{sphinx\\sphinxhyphen{}dev@googlegroups.com}\n') in result
|
||||
@ -913,13 +916,13 @@ def test_latex_show_urls_is_no(app, status, warning):
|
||||
'Footnote inside footnote\n%\n\\end{footnotetext}\\ignorespaces') in result
|
||||
assert '\\sphinxhref{http://sphinx-doc.org/~test/}{URL including tilde}' in result
|
||||
assert ('\\item[{\\sphinxhref{http://sphinx-doc.org/}{URL in term}}] '
|
||||
'\\leavevmode\nDescription') in result
|
||||
'\\leavevmode\n\\sphinxAtStartPar\nDescription') in result
|
||||
assert ('\\item[{Footnote in term \\sphinxfootnotemark[6]}] '
|
||||
'\\leavevmode%\n\\begin{footnotetext}[6]\\sphinxAtStartFootnote\n'
|
||||
'Footnote in term\n%\n\\end{footnotetext}\\ignorespaces \n'
|
||||
'Description') in result
|
||||
'Footnote in term\n%\n\\end{footnotetext}\\ignorespaces '
|
||||
'\n\\sphinxAtStartPar\nDescription') in result
|
||||
assert ('\\item[{\\sphinxhref{http://sphinx-doc.org/}{Term in deflist}}] '
|
||||
'\\leavevmode\nDescription') in result
|
||||
'\\leavevmode\n\\sphinxAtStartPar\nDescription') in result
|
||||
assert ('\\sphinxurl{https://github.com/sphinx-doc/sphinx}\n' in result)
|
||||
assert ('\\sphinxhref{mailto:sphinx-dev@googlegroups.com}'
|
||||
'{sphinx\\sphinxhyphen{}dev@googlegroups.com}\n') in result
|
||||
@ -1354,7 +1357,7 @@ def test_latex_index(app, status, warning):
|
||||
'\\index{equation@\\spxentry{equation}}equation:\n' in result)
|
||||
assert ('\n\\index{Einstein@\\spxentry{Einstein}}'
|
||||
'\\index{relativity@\\spxentry{relativity}}'
|
||||
'\\ignorespaces \nand') in result
|
||||
'\\ignorespaces \n\\sphinxAtStartPar\nand') in result
|
||||
assert ('\n\\index{main \\sphinxleftcurlybrace{}@\\spxentry{'
|
||||
'main \\sphinxleftcurlybrace{}}}\\ignorespaces ' in result)
|
||||
|
||||
@ -1403,7 +1406,7 @@ def test_latex_thebibliography(app, status, warning):
|
||||
result = (app.outdir / 'python.tex').read_text()
|
||||
print(result)
|
||||
assert ('\\begin{sphinxthebibliography}{AuthorYe}\n'
|
||||
'\\bibitem[AuthorYear]{index:authoryear}\n'
|
||||
'\\bibitem[AuthorYear]{index:authoryear}\n\\sphinxAtStartPar\n'
|
||||
'Author, Title, Year\n'
|
||||
'\\end{sphinxthebibliography}\n' in result)
|
||||
assert '\\sphinxcite{index:authoryear}' in result
|
||||
@ -1447,7 +1450,8 @@ def test_latex_labels(app, status, warning):
|
||||
r'\end{figure}' in result)
|
||||
assert (r'\caption{labeled figure}'
|
||||
'\\label{\\detokenize{index:figure3}}\n'
|
||||
'\\begin{sphinxlegend}\nwith a legend\n\\end{sphinxlegend}\n'
|
||||
'\\begin{sphinxlegend}\n\\sphinxAtStartPar\n'
|
||||
'with a legend\n\\end{sphinxlegend}\n'
|
||||
r'\end{figure}' in result)
|
||||
|
||||
# code-blocks
|
||||
|
@ -158,7 +158,8 @@ def get_verifier(verify, verify_re):
|
||||
':pep:`8`',
|
||||
('<p><span class="target" id="index-0"></span><a class="pep reference external" '
|
||||
'href="http://www.python.org/dev/peps/pep-0008"><strong>PEP 8</strong></a></p>'),
|
||||
('\\index{Python Enhancement Proposals@\\spxentry{Python Enhancement Proposals}'
|
||||
('\\sphinxAtStartPar\n'
|
||||
'\\index{Python Enhancement Proposals@\\spxentry{Python Enhancement Proposals}'
|
||||
'!PEP 8@\\spxentry{PEP 8}}\\sphinxhref{http://www.python.org/dev/peps/pep-0008}'
|
||||
'{\\sphinxstylestrong{PEP 8}}')
|
||||
),
|
||||
@ -169,7 +170,8 @@ def get_verifier(verify, verify_re):
|
||||
('<p><span class="target" id="index-0"></span><a class="pep reference external" '
|
||||
'href="http://www.python.org/dev/peps/pep-0008#id1">'
|
||||
'<strong>PEP 8#id1</strong></a></p>'),
|
||||
('\\index{Python Enhancement Proposals@\\spxentry{Python Enhancement Proposals}'
|
||||
('\\sphinxAtStartPar\n'
|
||||
'\\index{Python Enhancement Proposals@\\spxentry{Python Enhancement Proposals}'
|
||||
'!PEP 8\\#id1@\\spxentry{PEP 8\\#id1}}\\sphinxhref'
|
||||
'{http://www.python.org/dev/peps/pep-0008\\#id1}'
|
||||
'{\\sphinxstylestrong{PEP 8\\#id1}}')
|
||||
@ -180,7 +182,8 @@ def get_verifier(verify, verify_re):
|
||||
':rfc:`2324`',
|
||||
('<p><span class="target" id="index-0"></span><a class="rfc reference external" '
|
||||
'href="http://tools.ietf.org/html/rfc2324.html"><strong>RFC 2324</strong></a></p>'),
|
||||
('\\index{RFC@\\spxentry{RFC}!RFC 2324@\\spxentry{RFC 2324}}'
|
||||
('\\sphinxAtStartPar\n'
|
||||
'\\index{RFC@\\spxentry{RFC}!RFC 2324@\\spxentry{RFC 2324}}'
|
||||
'\\sphinxhref{http://tools.ietf.org/html/rfc2324.html}'
|
||||
'{\\sphinxstylestrong{RFC 2324}}')
|
||||
),
|
||||
@ -191,7 +194,8 @@ def get_verifier(verify, verify_re):
|
||||
('<p><span class="target" id="index-0"></span><a class="rfc reference external" '
|
||||
'href="http://tools.ietf.org/html/rfc2324.html#id1">'
|
||||
'<strong>RFC 2324#id1</strong></a></p>'),
|
||||
('\\index{RFC@\\spxentry{RFC}!RFC 2324\\#id1@\\spxentry{RFC 2324\\#id1}}'
|
||||
('\\sphinxAtStartPar\n'
|
||||
'\\index{RFC@\\spxentry{RFC}!RFC 2324\\#id1@\\spxentry{RFC 2324\\#id1}}'
|
||||
'\\sphinxhref{http://tools.ietf.org/html/rfc2324.html\\#id1}'
|
||||
'{\\sphinxstylestrong{RFC 2324\\#id1}}')
|
||||
),
|
||||
@ -201,14 +205,14 @@ def get_verifier(verify, verify_re):
|
||||
'``code sample``',
|
||||
('<p><code class="(samp )?docutils literal notranslate"><span class="pre">'
|
||||
'code</span>   <span class="pre">sample</span></code></p>'),
|
||||
r'\\sphinxcode{\\sphinxupquote{code sample}}',
|
||||
r'\\sphinxAtStartPar\n\\sphinxcode{\\sphinxupquote{code sample}}',
|
||||
),
|
||||
(
|
||||
# interpolation of arrows in menuselection
|
||||
'verify',
|
||||
':menuselection:`a --> b`',
|
||||
('<p><span class="menuselection">a \N{TRIANGULAR BULLET} b</span></p>'),
|
||||
'\\sphinxmenuselection{a \\(\\rightarrow\\) b}',
|
||||
'\\sphinxAtStartPar\n\\sphinxmenuselection{a \\(\\rightarrow\\) b}',
|
||||
),
|
||||
(
|
||||
# interpolation of ampersands in menuselection
|
||||
@ -216,7 +220,9 @@ def get_verifier(verify, verify_re):
|
||||
':menuselection:`&Foo -&&- &Bar`',
|
||||
('<p><span class="menuselection"><span class="accelerator">F</span>oo '
|
||||
'-&- <span class="accelerator">B</span>ar</span></p>'),
|
||||
r'\sphinxmenuselection{\sphinxaccelerator{F}oo \sphinxhyphen{}\&\sphinxhyphen{} \sphinxaccelerator{B}ar}',
|
||||
('\\sphinxAtStartPar\n'
|
||||
r'\sphinxmenuselection{\sphinxaccelerator{F}oo \sphinxhyphen{}'
|
||||
r'\&\sphinxhyphen{} \sphinxaccelerator{B}ar}'),
|
||||
),
|
||||
(
|
||||
# interpolation of ampersands in guilabel
|
||||
@ -224,21 +230,22 @@ def get_verifier(verify, verify_re):
|
||||
':guilabel:`&Foo -&&- &Bar`',
|
||||
('<p><span class="guilabel"><span class="accelerator">F</span>oo '
|
||||
'-&- <span class="accelerator">B</span>ar</span></p>'),
|
||||
r'\sphinxguilabel{\sphinxaccelerator{F}oo \sphinxhyphen{}\&\sphinxhyphen{} \sphinxaccelerator{B}ar}',
|
||||
('\\sphinxAtStartPar\n'
|
||||
r'\sphinxguilabel{\sphinxaccelerator{F}oo \sphinxhyphen{}\&\sphinxhyphen{} \sphinxaccelerator{B}ar}'),
|
||||
),
|
||||
(
|
||||
# no ampersands in guilabel
|
||||
'verify',
|
||||
':guilabel:`Foo`',
|
||||
'<p><span class="guilabel">Foo</span></p>',
|
||||
r'\sphinxguilabel{Foo}',
|
||||
'\\sphinxAtStartPar\n\\sphinxguilabel{Foo}',
|
||||
),
|
||||
(
|
||||
# kbd role
|
||||
'verify',
|
||||
':kbd:`space`',
|
||||
'<p><kbd class="kbd docutils literal notranslate">space</kbd></p>',
|
||||
'\\sphinxkeyboard{\\sphinxupquote{space}}',
|
||||
'\\sphinxAtStartPar\n\\sphinxkeyboard{\\sphinxupquote{space}}',
|
||||
),
|
||||
(
|
||||
# kbd role
|
||||
@ -249,7 +256,7 @@ def get_verifier(verify, verify_re):
|
||||
'+'
|
||||
'<kbd class="kbd docutils literal notranslate">X</kbd>'
|
||||
'</kbd></p>'),
|
||||
'\\sphinxkeyboard{\\sphinxupquote{Control+X}}',
|
||||
'\\sphinxAtStartPar\n\\sphinxkeyboard{\\sphinxupquote{Control+X}}',
|
||||
),
|
||||
(
|
||||
# kbd role
|
||||
@ -260,7 +267,8 @@ def get_verifier(verify, verify_re):
|
||||
'+'
|
||||
'<kbd class="kbd docutils literal notranslate">^</kbd>'
|
||||
'</kbd></p>'),
|
||||
'\\sphinxkeyboard{\\sphinxupquote{Alt+\\textasciicircum{}}}',
|
||||
('\\sphinxAtStartPar\n'
|
||||
'\\sphinxkeyboard{\\sphinxupquote{Alt+\\textasciicircum{}}}'),
|
||||
),
|
||||
(
|
||||
# kbd role
|
||||
@ -275,21 +283,24 @@ def get_verifier(verify, verify_re):
|
||||
'-'
|
||||
'<kbd class="kbd docutils literal notranslate">s</kbd>'
|
||||
'</kbd></p>'),
|
||||
'\\sphinxkeyboard{\\sphinxupquote{M\\sphinxhyphen{}x M\\sphinxhyphen{}s}}',
|
||||
('\\sphinxAtStartPar\n'
|
||||
'\\sphinxkeyboard{\\sphinxupquote{M\\sphinxhyphen{}x M\\sphinxhyphen{}s}}'),
|
||||
),
|
||||
(
|
||||
# kbd role
|
||||
'verify',
|
||||
':kbd:`-`',
|
||||
'<p><kbd class="kbd docutils literal notranslate">-</kbd></p>',
|
||||
'\\sphinxkeyboard{\\sphinxupquote{\\sphinxhyphen{}}}',
|
||||
('\\sphinxAtStartPar\n'
|
||||
'\\sphinxkeyboard{\\sphinxupquote{\\sphinxhyphen{}}}'),
|
||||
),
|
||||
(
|
||||
# kbd role
|
||||
'verify',
|
||||
':kbd:`Caps Lock`',
|
||||
'<p><kbd class="kbd docutils literal notranslate">Caps Lock</kbd></p>',
|
||||
'\\sphinxkeyboard{\\sphinxupquote{Caps Lock}}',
|
||||
('\\sphinxAtStartPar\n'
|
||||
'\\sphinxkeyboard{\\sphinxupquote{Caps Lock}}'),
|
||||
),
|
||||
(
|
||||
# non-interpolation of dashes in option role
|
||||
@ -297,14 +308,15 @@ def get_verifier(verify, verify_re):
|
||||
':option:`--with-option`',
|
||||
('<p><code( class="xref std std-option docutils literal notranslate")?>'
|
||||
'<span class="pre">--with-option</span></code></p>$'),
|
||||
r'\\sphinxcode{\\sphinxupquote{\\sphinxhyphen{}\\sphinxhyphen{}with\\sphinxhyphen{}option}}$',
|
||||
(r'\\sphinxAtStartPar\n'
|
||||
r'\\sphinxcode{\\sphinxupquote{\\sphinxhyphen{}\\sphinxhyphen{}with\\sphinxhyphen{}option}}$'),
|
||||
),
|
||||
(
|
||||
# verify smarty-pants quotes
|
||||
'verify',
|
||||
'"John"',
|
||||
'<p>“John”</p>',
|
||||
"“John”",
|
||||
"\\sphinxAtStartPar\n“John”",
|
||||
),
|
||||
(
|
||||
# ... but not in literal text
|
||||
@ -312,21 +324,21 @@ def get_verifier(verify, verify_re):
|
||||
'``"John"``',
|
||||
('<p><code class="docutils literal notranslate"><span class="pre">'
|
||||
'"John"</span></code></p>'),
|
||||
'\\sphinxcode{\\sphinxupquote{"John"}}',
|
||||
'\\sphinxAtStartPar\n\\sphinxcode{\\sphinxupquote{"John"}}',
|
||||
),
|
||||
(
|
||||
# verify classes for inline roles
|
||||
'verify',
|
||||
':manpage:`mp(1)`',
|
||||
'<p><em class="manpage">mp(1)</em></p>',
|
||||
'\\sphinxstyleliteralemphasis{\\sphinxupquote{mp(1)}}',
|
||||
'\\sphinxAtStartPar\n\\sphinxstyleliteralemphasis{\\sphinxupquote{mp(1)}}',
|
||||
),
|
||||
(
|
||||
# correct escaping in normal mode
|
||||
'verify',
|
||||
'Γ\\\\∞$',
|
||||
None,
|
||||
'Γ\\textbackslash{}\\(\\infty\\)\\$',
|
||||
'\\sphinxAtStartPar\nΓ\\textbackslash{}\\(\\infty\\)\\$',
|
||||
),
|
||||
(
|
||||
# in verbatim code fragments
|
||||
@ -342,7 +354,7 @@ def get_verifier(verify, verify_re):
|
||||
'verify_re',
|
||||
'`test <https://www.google.com/~me/>`_',
|
||||
None,
|
||||
r'\\sphinxhref{https://www.google.com/~me/}{test}.*',
|
||||
r'\\sphinxAtStartPar\n\\sphinxhref{https://www.google.com/~me/}{test}.*',
|
||||
),
|
||||
(
|
||||
# description list: simple
|
||||
|
Loading…
Reference in New Issue
Block a user