def test_to_html(self): doc = Document('woo') doc.to_html(GENERATED_FILES_DIR) expect_str = (INPUT_FILES_DIR / 'document.html').read_text() generated_str = (GENERATED_FILES_DIR / 'document.html').read_text() assert _remove_meta_tags(expect_str) == _remove_meta_tags( generated_str)
def test_basic_title_page(self): doc = Document([BlindText(), ''] * 10, authors=['Person One', 'Human Two', 'Being Three'], title='My Title') assert str( doc ) == '\\documentclass[]{article}\n\\usepackage{amsmath}\n\\usepackage{pdflscape}\n\\usepackage{booktabs}\n\\usepackage{array}\n\\usepackage{threeparttable}\n\\usepackage{fancyhdr}\n\\usepackage{lastpage}\n\\usepackage{textcomp}\n\\usepackage{dcolumn}\n\\newcolumntype{L}[1]{>{\\raggedright\\let\\newline\\\\\\arraybackslash\\hspace{0pt}}m{#1}}\n\\newcolumntype{C}[1]{>{\\centering\\let\\newline\\\\\\arraybackslash\\hspace{0pt}}m{#1}}\n\\newcolumntype{R}[1]{>{\\raggedleft\\let\\newline\\\\\\arraybackslash\\hspace{0pt}}m{#1}}\n\\newcolumntype{.}{D{.}{.}{-1}}\n\\newcolumntype{d}[1]{D{.}{.}{#1}}\n\\usepackage[T1]{fontenc}\n\\usepackage{caption}\n\\usepackage{subcaption}\n\\usepackage{graphicx}\n\\usepackage[margin=0.8in, bottom=1.2in]{geometry}\n\\usepackage[page]{appendix}\n\\usepackage{blindtext}\n\\pagestyle{fancy}\n\\renewcommand{\\headrulewidth}{0pt}\n\\fancyhead{}\n\\rfoot{Page \\thepage\\ of \\pageref{LastPage}}\n\\cfoot{}\n\\begin{document}\n\\title{My Title}\n\\author{Person One, Human Two, and Being Three}\n\\date{\\today}\n\\maketitle\n\\blindtext\n\n\\blindtext\n\n\\blindtext\n\n\\blindtext\n\n\\blindtext\n\n\\blindtext\n\n\\blindtext\n\n\\blindtext\n\n\\blindtext\n\n\\blindtext\n\n\\end{document}'
def test_all_options_with_title_page(self): doc = Document( 'woo', **self.common_kwargs, ) assert str( doc ) == '\\documentclass[12pt, twocolumn]{article}\n\\usepackage{amsmath}\n\\usepackage{pdflscape}\n\\usepackage{booktabs}\n\\usepackage{array}\n\\usepackage{threeparttable}\n\\usepackage{fancyhdr}\n\\usepackage{lastpage}\n\\usepackage{textcomp}\n\\usepackage{dcolumn}\n\\newcolumntype{L}[1]{>{\\raggedright\\let\\newline\\\\\\arraybackslash\\hspace{0pt}}m{#1}}\n\\newcolumntype{C}[1]{>{\\centering\\let\\newline\\\\\\arraybackslash\\hspace{0pt}}m{#1}}\n\\newcolumntype{R}[1]{>{\\raggedleft\\let\\newline\\\\\\arraybackslash\\hspace{0pt}}m{#1}}\n\\newcolumntype{.}{D{.}{.}{-1}}\n\\newcolumntype{d}[1]{D{.}{.}{#1}}\n\\usepackage[T1]{fontenc}\n\\usepackage{caption}\n\\usepackage{subcaption}\n\\usepackage{graphicx}\n\\usepackage{hyperref}\n\\usepackage{tikz}\n\\usepackage[margin=1in]{geometry}\n\\usepackage{floatrow}\n\\DeclareFloatFont{small}{\\small}\n\\floatsetup[table]{font=small,capposition=top}\n\\DeclareFloatFont{large}{\\large}\n\\floatsetup[figure]{font=large,capposition=top}\n\\usepackage[nolists]{endfloat}\n\\DeclareDelayedFloatFlavor{ltable}{table}\n\\DeclareDelayedFloatFlavor{lfigure}{figure}\n\\usepackage{setspace}\n\\doublespacing\n\\usepackage[page]{appendix}\n\\renewcommand{\\thesection}{\\Roman{section}}\n\\renewcommand{\\thesubsection}{\\thesection.\\Alph{subsection}}\n\\renewcommand{\\thesubsubsection}{\\thesubsection.\\arabic{subsubsection}}\n\\renewcommand{\\thesubfigure}{\\roman{subfigure}}\n\\setcounter{secnumdepth}{0}\n\\pagestyle{fancy}\n\\lhead{\\textsc{short title}}\n\\rhead{\\textsc{Page \n\\thepage}}\n\\cfoot{}\n\\begin{document}\n\\title{My Title}\n\\author{Person One and Human Two}\n\\date{2020-10-01 00:00:00}\n\\maketitle\n\\newpage\n\\thispagestyle{empty}\n{\n\\begin{center}\n\\setlength{\\baselineskip}{40pt}\n\\LARGE\n\\textbf{My Title}\n\\end{center}\n}\n\\vspace{35pt}\n\\begin{center}\n\\textbf{Abstract}\n\\end{center}\n\\vspace{-10pt}\n\\hspace{1.5em}\nSome text for the abstract\n\\vspace{20pt}\n\\textit{Stuff:}\n\n\nYeah, things\n\n\n\\newpage\n\\setcounter{page}{1}\nwoo\n\n\n\n\\end{document}'
def test_all_options_no_title_page(self): kwargs = {**self.common_kwargs} kwargs['skip_title_page'] = True doc = Document('woo', **kwargs) assert str( doc ) == '\\documentclass[12pt, twocolumn]{article}\n\\usepackage{amsmath}\n\\usepackage{pdflscape}\n\\usepackage{booktabs}\n\\usepackage{array}\n\\usepackage{threeparttable}\n\\usepackage{fancyhdr}\n\\usepackage{lastpage}\n\\usepackage{textcomp}\n\\usepackage{dcolumn}\n\\newcolumntype{L}[1]{>{\\raggedright\\let\\newline\\\\\\arraybackslash\\hspace{0pt}}m{#1}}\n\\newcolumntype{C}[1]{>{\\centering\\let\\newline\\\\\\arraybackslash\\hspace{0pt}}m{#1}}\n\\newcolumntype{R}[1]{>{\\raggedleft\\let\\newline\\\\\\arraybackslash\\hspace{0pt}}m{#1}}\n\\newcolumntype{.}{D{.}{.}{-1}}\n\\newcolumntype{d}[1]{D{.}{.}{#1}}\n\\usepackage[T1]{fontenc}\n\\usepackage{caption}\n\\usepackage{subcaption}\n\\usepackage{graphicx}\n\\usepackage{hyperref}\n\\usepackage{tikz}\n\\usepackage[margin=1in]{geometry}\n\\usepackage{floatrow}\n\\DeclareFloatFont{small}{\\small}\n\\floatsetup[table]{font=small,capposition=top}\n\\DeclareFloatFont{large}{\\large}\n\\floatsetup[figure]{font=large,capposition=top}\n\\usepackage[nolists]{endfloat}\n\\DeclareDelayedFloatFlavor{ltable}{table}\n\\DeclareDelayedFloatFlavor{lfigure}{figure}\n\\usepackage{setspace}\n\\doublespacing\n\\usepackage[page]{appendix}\n\\renewcommand{\\thesection}{\\Roman{section}}\n\\renewcommand{\\thesubsection}{\\thesection.\\Alph{subsection}}\n\\renewcommand{\\thesubsubsection}{\\thesubsection.\\arabic{subsubsection}}\n\\renewcommand{\\thesubfigure}{\\roman{subfigure}}\n\\setcounter{secnumdepth}{0}\n\\pagestyle{fancy}\n\\lhead{\\textsc{short title}}\n\\rhead{\\textsc{Page \n\\thepage}}\n\\cfoot{}\n\\begin{document}\nwoo\n\n\n\n\\end{document}'
def test_custom_footer(self): doc = Document('woo', custom_footers=[ LeftFooter('stuff'), CenterFooter(''), RightFooter([ 'Page', ThisPageNumber(), '\\', 'of', PageReference('LastPage') ]), FooterLine() ]) assert str( doc ) == '\\documentclass[]{article}\n\\usepackage{amsmath}\n\\usepackage{pdflscape}\n\\usepackage{booktabs}\n\\usepackage{array}\n\\usepackage{threeparttable}\n\\usepackage{fancyhdr}\n\\usepackage{lastpage}\n\\usepackage{textcomp}\n\\usepackage{dcolumn}\n\\newcolumntype{L}[1]{>{\\raggedright\\let\\newline\\\\\\arraybackslash\\hspace{0pt}}m{#1}}\n\\newcolumntype{C}[1]{>{\\centering\\let\\newline\\\\\\arraybackslash\\hspace{0pt}}m{#1}}\n\\newcolumntype{R}[1]{>{\\raggedleft\\let\\newline\\\\\\arraybackslash\\hspace{0pt}}m{#1}}\n\\newcolumntype{.}{D{.}{.}{-1}}\n\\newcolumntype{d}[1]{D{.}{.}{#1}}\n\\usepackage[T1]{fontenc}\n\\usepackage{caption}\n\\usepackage{subcaption}\n\\usepackage{graphicx}\n\\usepackage[margin=0.8in, bottom=1.2in]{geometry}\n\\usepackage[page]{appendix}\n\\pagestyle{fancy}\n\\renewcommand{\\headrulewidth}{0pt}\n\\fancyhead{}\n\\lfoot{stuff}\n\\cfoot{}\n\\rfoot{Page\n\\thepage\n\\\nof\n\\pageref{LastPage}}\n\\renewcommand{\\footrulewidth}{0.4pt}\n\\begin{document}\nwoo\n\\end{document}'
def _filepaths_to_document_or_figure(filepaths, subfigure_kwargs={}, figure_kwargs={}, document_kwargs={}, as_document=True): subfigures = [Subfigure(fp, **subfigure_kwargs) for fp in filepaths] figure = Figure(subfigures, **figure_kwargs) if not as_document: return figure simple_package_strs = ['caption', 'subcaption', 'graphicx', 'pdflscape'] simple_packages = [Package(str_) for str_ in simple_package_strs] packages = simple_packages + [ ] # add any packages with options here with the Package class document = Document(figure, packages, **document_kwargs) return document
def as_document(self, landscape=False): from pyexlatex.models.document import Document from pyexlatex.figure.packages import default_packages return Document(self, default_packages, landscape=landscape)
def test_no_options_list(self): doc = Document(['woo']) assert str(doc) == self.no_options_result
def test_no_options_str(self): doc = Document('woo') assert str(doc) == self.no_options_result
def test_to_pdf_with_references(self): doc = Document(['woo', self.citation, self.bibliography]) doc.to_pdf(GENERATED_FILES_DIR, outname='document with references') compare_pdfs(INPUT_FILES_DIR / 'document with references.pdf', GENERATED_FILES_DIR / 'document with references.pdf')
def test_to_pdf(self): doc = Document('woo') doc.to_pdf(GENERATED_FILES_DIR) compare_pdfs(INPUT_FILES_DIR / 'document.pdf', GENERATED_FILES_DIR / 'document.pdf')