diff options
author | wiemann <wiemann@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2006-01-09 20:44:25 +0000 |
---|---|---|
committer | wiemann <wiemann@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2006-01-09 20:44:25 +0000 |
commit | d77fdfef70e08114f57cbef5d91707df8717ea9f (patch) | |
tree | 49444e3486c0c333cb7b33dfa721296c08ee4ece /test/test_writers/test_latex2e.py | |
parent | 53cd16ca6ca5f638cbe5956988e88f9339e355cf (diff) | |
parent | 3993c4097756e9885bcfbd07cb1cc1e4e95e50e4 (diff) | |
download | docutils-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-x | test/test_writers/test_latex2e.py | 377 |
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') |