summaryrefslogtreecommitdiff
path: root/test/test_writers/test_latex2e.py
diff options
context:
space:
mode:
authorwiemann <wiemann@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2006-01-09 20:44:25 +0000
committerwiemann <wiemann@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2006-01-09 20:44:25 +0000
commitd77fdfef70e08114f57cbef5d91707df8717ea9f (patch)
tree49444e3486c0c333cb7b33dfa721296c08ee4ece /test/test_writers/test_latex2e.py
parent53cd16ca6ca5f638cbe5956988e88f9339e355cf (diff)
parent3993c4097756e9885bcfbd07cb1cc1e4e95e50e4 (diff)
downloaddocutils-0.4.tar.gz
Release 0.4: tagging released revisiondocutils-0.4
git-svn-id: http://svn.code.sf.net/p/docutils/code/tags/docutils-0.4@4268 929543f6-e4f2-0310-98a6-ba3bd3dd1d04
Diffstat (limited to 'test/test_writers/test_latex2e.py')
-rwxr-xr-xtest/test_writers/test_latex2e.py377
1 files changed, 377 insertions, 0 deletions
diff --git a/test/test_writers/test_latex2e.py b/test/test_writers/test_latex2e.py
new file mode 100755
index 000000000..04448883a
--- /dev/null
+++ b/test/test_writers/test_latex2e.py
@@ -0,0 +1,377 @@
+#! /usr/bin/env python
+
+# Author: engelbert gruber
+# Contact: grubert@users.sourceforge.net
+# Revision: $Revision$
+# Date: $Date$
+# Copyright: This module has been placed in the public domain.
+
+"""
+Tests for latex2e writer.
+"""
+
+from __init__ import DocutilsTestSupport
+
+def suite():
+ s = DocutilsTestSupport.PublishTestSuite('latex')
+ s.generateTests(totest)
+ return s
+
+
+latex_head = """\
+\\documentclass[10pt,a4paper,english]{article}
+\\usepackage{babel}
+\\usepackage{ae}
+\\usepackage{aeguill}
+\\usepackage{shortvrb}
+\\usepackage[latin1]{inputenc}
+\\usepackage{tabularx}
+\\usepackage{longtable}
+\\setlength{\\extrarowheight}{2pt}
+\\usepackage{amsmath}
+\\usepackage{graphicx}
+\\usepackage{color}
+\\usepackage{multirow}
+\\usepackage{ifthen}
+\\usepackage[colorlinks=true,linkcolor=blue,urlcolor=blue]{hyperref}
+\\usepackage[DIV12]{typearea}
+%% generator Docutils: http://docutils.sourceforge.net/
+\\newlength{\\admonitionwidth}
+\\setlength{\\admonitionwidth}{0.9\\textwidth}
+\\newlength{\\docinfowidth}
+\\setlength{\\docinfowidth}{0.9\\textwidth}
+\\newlength{\\locallinewidth}
+\\newcommand{\\optionlistlabel}[1]{\\bf #1 \\hfill}
+\\newenvironment{optionlist}[1]
+{\\begin{list}{}
+ {\\setlength{\\labelwidth}{#1}
+ \\setlength{\\rightmargin}{1cm}
+ \\setlength{\\leftmargin}{\\rightmargin}
+ \\addtolength{\\leftmargin}{\\labelwidth}
+ \\addtolength{\\leftmargin}{\\labelsep}
+ \\renewcommand{\\makelabel}{\\optionlistlabel}}
+}{\\end{list}}
+\\newlength{\\lineblockindentation}
+\\setlength{\\lineblockindentation}{2.5em}
+\\newenvironment{lineblock}[1]
+{\\begin{list}{}
+ {\\setlength{\\partopsep}{\\parskip}
+ \\addtolength{\\partopsep}{\\baselineskip}
+ \\topsep0pt\\itemsep0.15\\baselineskip\\parsep0pt
+ \\leftmargin#1}
+ \\raggedright}
+{\\end{list}}
+% begin: floats for footnotes tweaking.
+\\setlength{\\floatsep}{0.5em}
+\\setlength{\\textfloatsep}{\\fill}
+\\addtolength{\\textfloatsep}{3em}
+\\renewcommand{\\textfraction}{0.5}
+\\renewcommand{\\topfraction}{0.5}
+\\renewcommand{\\bottomfraction}{0.5}
+\\setcounter{totalnumber}{50}
+\\setcounter{topnumber}{50}
+\\setcounter{bottomnumber}{50}
+% end floats for footnotes
+% some commands, that could be overwritten in the style file.
+\\newcommand{\\rubric}[1]{\\subsection*{~\\hfill {\\it #1} \\hfill ~}}
+\\newcommand{\\titlereference}[1]{\\textsl{#1}}
+% end of "some commands"
+"""
+
+totest = {}
+
+totest['table_of_contents'] = [
+# input
+["""\
+.. contents:: Table of Contents
+
+Title 1
+=======
+Paragraph 1.
+
+Title 2
+-------
+Paragraph 2.
+""",
+## # expected output
+latex_head + """\
+\\title{}
+\\author{}
+\\date{}
+\\raggedbottom
+\\begin{document}
+
+\\setlength{\\locallinewidth}{\\linewidth}
+\\hypertarget{table-of-contents}{}
+\\pdfbookmark[0]{Table of Contents}{table-of-contents}
+\\subsubsection*{~\\hfill Table of Contents\\hfill ~}
+\\begin{list}{}{}
+\\item {} \\href{\\#title-1}{Title 1}
+\\begin{list}{}{}
+\\item {} \\href{\#title-2}{Title 2}
+
+\\end{list}
+
+\\end{list}
+
+
+
+%___________________________________________________________________________
+
+\\hypertarget{title-1}{}
+\\pdfbookmark[0]{Title 1}{title-1}
+\\section*{Title 1}
+
+Paragraph 1.
+
+
+%___________________________________________________________________________
+
+\\hypertarget{title-2}{}
+\\pdfbookmark[1]{Title 2}{title-2}
+\\subsection*{Title 2}
+
+Paragraph 2.
+
+\\end{document}
+"""],
+
+]
+
+
+totest['enumerated_lists'] = [
+# input
+["""\
+1. Item 1.
+2. Second to the previous item this one will explain
+
+ a) nothing.
+ b) or some other.
+
+3. Third is
+
+ (I) having pre and postfixes
+ (II) in roman numerals.
+""",
+# expected output
+latex_head + """\
+\\title{}
+\\author{}
+\\date{}
+\\raggedbottom
+\\begin{document}
+
+\\setlength{\\locallinewidth}{\\linewidth}
+\\newcounter{listcnt1}
+\\begin{list}{\\arabic{listcnt1}.}
+{
+\\usecounter{listcnt1}
+\\setlength{\\rightmargin}{\\leftmargin}
+}
+\\item {}
+Item 1.
+
+\\item {}
+Second to the previous item this one will explain
+
+\\end{list}
+\\begin{quote}
+\\newcounter{listcnt2}
+\\begin{list}{\\alph{listcnt2})}
+{
+\\usecounter{listcnt2}
+\\setlength{\\rightmargin}{\\leftmargin}
+}
+\\item {}
+nothing.
+
+\\item {}
+or some other.
+
+\\end{list}
+\\end{quote}
+\\newcounter{listcnt3}
+\\begin{list}{\\arabic{listcnt3}.}
+{
+\\usecounter{listcnt3}
+\\addtocounter{listcnt3}{2}
+\\setlength{\\rightmargin}{\\leftmargin}
+}
+\\item {}
+Third is
+
+\\end{list}
+\\begin{quote}
+\\newcounter{listcnt4}
+\\begin{list}{(\\Roman{listcnt4})}
+{
+\\usecounter{listcnt4}
+\\setlength{\\rightmargin}{\\leftmargin}
+}
+\\item {}
+having pre and postfixes
+
+\\item {}
+in roman numerals.
+
+\\end{list}
+\\end{quote}
+
+\\end{document}
+"""],
+]
+
+# BUG: need to test for quote replacing if language is de (ngerman).
+
+totest['quote_mangling'] = [
+# input
+["""\
+Depending on language quotes are converted for latex.
+Expecting "en" here.
+
+Inside literal blocks quotes should be left untouched
+(use only two quotes in test code makes life easier for
+the python interpreter running the test)::
+
+ ""
+ This is left "untouched" also *this*.
+ ""
+
+.. parsed-literal::
+
+ should get "quotes" and *italics*.
+
+
+Inline ``literal "quotes"`` should be kept.
+""",
+latex_head + """\
+\\title{}
+\\author{}
+\\date{}
+\\raggedbottom
+\\begin{document}
+
+\\setlength{\\locallinewidth}{\\linewidth}
+
+Depending on language quotes are converted for latex.
+Expecting ``en'' here.
+
+Inside literal blocks quotes should be left untouched
+(use only two quotes in test code makes life easier for
+the python interpreter running the test):
+\\begin{quote}{\\ttfamily \\raggedright \\noindent
+"{}"~\\\\
+This~is~left~"untouched"~also~*this*.~\\\\
+"{}"
+}\\end{quote}
+\\begin{quote}{\\ttfamily \\raggedright \\noindent
+should~get~"quotes"~and~\\emph{italics}.
+}\\end{quote}
+
+Inline \\texttt{literal "quotes"} should be kept.
+
+\\end{document}
+"""],
+]
+
+totest['table_caption'] = [
+# input
+["""\
+.. table:: Foo
+
+ +-----+-----+
+ | | |
+ +-----+-----+
+ | | |
+ +-----+-----+
+""",
+latex_head + """\
+\\title{}
+\\author{}
+\\date{}
+\\raggedbottom
+\\begin{document}
+
+\\setlength{\\locallinewidth}{\\linewidth}
+
+\\begin{longtable}[c]{|p{0.07\locallinewidth}|p{0.07\locallinewidth}|}
+\\caption{Foo}\\\\
+\\hline
+ & \\\\
+\hline
+ & \\\\
+\hline
+\\end{longtable}
+
+\\end{document}
+"""],
+]
+
+# In "\\\n[" the "[" needs to be protected (otherwise it will be seen as an option to "\\").
+totest['brackett_protection'] = [
+# input
+["""\
+::
+
+ something before to get a end of line.
+ [
+
+ the empty line gets tested too
+ ]
+""",
+latex_head + """\
+\\title{}
+\\author{}
+\\date{}
+\\raggedbottom
+\\begin{document}
+
+\\setlength{\\locallinewidth}{\\linewidth}
+\\begin{quote}{\\ttfamily \\raggedright \\noindent
+something~before~to~get~a~end~of~line.~\\\\
+{[}~\\\\
+~\\\\
+the~empty~line~gets~tested~too~\\\\
+{]}
+}\\end{quote}
+
+\\end{document}
+"""],
+]
+
+totest['raw'] = [
+["""\
+.. raw:: latex
+
+ \\noindent
+
+A paragraph.
+
+.. |sub| raw:: latex
+
+ (some raw text)
+
+Foo |sub|
+same paragraph.
+""",
+latex_head + """\
+\\title{}
+\\author{}
+\\date{}
+\\raggedbottom
+\\begin{document}
+
+\\setlength{\\locallinewidth}{\\linewidth}
+\\noindent
+A paragraph.
+
+Foo (some raw text)
+same paragraph.
+
+\\end{document}
+"""],
+]
+
+if __name__ == '__main__':
+ import unittest
+ unittest.main(defaultTest='suite')