From f765d1e2400df944cc303aa4fbeb3e23dadc57f9 Mon Sep 17 00:00:00 2001 From: smerten Date: Mon, 29 Jun 2009 22:44:57 +0000 Subject: [PATCH] More adaptions to `latex2e` writer r5993. Looks quite good already. git-svn-id: https://docutils.svn.sourceforge.net/svnroot/docutils/trunk@6007 929543f6-e4f2-0310-98a6-ba3bd3dd1d04 --- sandbox/rst2beamer/latexbeamer/__init__.py | 77 ++++++++++++------------------ 1 file changed, 30 insertions(+), 47 deletions(-) diff --git a/sandbox/rst2beamer/latexbeamer/__init__.py b/sandbox/rst2beamer/latexbeamer/__init__.py index 4f317e8d6..a1dab6273 100644 --- a/sandbox/rst2beamer/latexbeamer/__init__.py +++ b/sandbox/rst2beamer/latexbeamer/__init__.py @@ -70,19 +70,10 @@ class Writer(latex2e.Writer): ['--use-latex-toc'], {'default': 0, 'action': 'store_true', 'validator': frontend.validate_boolean}), - ('Add parts on top of the section hierarchy.', - ['--use-part-section'], - {'default': 0, 'action': 'store_true', - 'validator': frontend.validate_boolean}), ('Enclose titlepage in LaTeX titlepage environment.', ['--use-titlepage-env'], {'default': 0, 'action': 'store_true', 'validator': frontend.validate_boolean}), - ('Let LaTeX print author and date, do not show it in docutils ' - 'document info.', - ['--use-latex-docinfo'], - {'default': 0, 'action': 'store_true', - 'validator': frontend.validate_boolean}), ("Use LaTeX abstract environment for the document's abstract. " 'Per default the abstract is an unnumbered section.', ['--use-latex-abstract'], @@ -211,24 +202,24 @@ class BeamerTranslator(latex2e.LaTeXTranslator): def __init__(self, document): document.settings.documentclass = 'beamer' - document.settings.use_latex_docinfo = 1 + document.settings.use_latex_docinfo = True + document.settings.use_part_section = False + self.linking = "%% hyperrefs are done by Beamer (%s %s %s)" + latex2e.LaTeXTranslator.__init__(self, document) - # TODO Should be done via explicit head_prefix - self.head_prefix = [ line - for line in self.head_prefix - if 'typearea' not in line and 'hyperref' not in line ] + + # Undo some things we don't want here + if 'typearea' in self.requirements: + del self.requirements['typearea'] + # Montpellier, Warsaw, JuanLesPins, Darmstadt, Antibes - self.head_prefix.extend(('\n', - '\\mode\n', - '{\n', - ' \\usetheme{%s}\n' - % ( document.settings.beamer_theme, ), - # TODO Argument to `setbeamercovered` must be - # an option - ' \\setbeamercovered{transparent}\n', - '}\n', - '\n', - )) + self.fallbacks['beamer00_mode'] = r""" +\mode +{ + \usetheme{%s} + \setbeamercovered{%s}\n', +}""" % ( document.settings.beamer_theme, 'transparent', ) + # TODO Argument to `setbeamercovered` must be an option # TODO Name of outline slides should be the name given for the contents # (is a `title` element) - might be determined by a preprocessor document.settings.toc_title = 'Outline' @@ -240,15 +231,14 @@ class BeamerTranslator(latex2e.LaTeXTranslator): else: at_begin = 'AtBeginSubsection' toc_option = 'currentsection,currentsubsection' - self.head_prefix.extend(('\n', - '\\%s[]\n' % ( at_begin, ), - '{\n', - ' \\begin{frame}\n', - ' \\frametitle{%s}\n' % ( document.settings.toc_title, ), - ' \\tableofcontents[%s]\n' % ( toc_option, ), - ' \\end{frame}\n', - '}\n', - )) + self.fallbacks['beamer10_intermediate_outlines'] = r""" +\%s[] +{ + \begin{frame} + \frametitle{%s} + \tableofcontents[%s] + \end{frame} +}""" % ( at_begin, document.settings.toc_title, toc_option ) self.d_class = DocumentClass() self.subtitle = '' @@ -303,20 +293,13 @@ class BeamerTranslator(latex2e.LaTeXTranslator): latex2e.LaTeXTranslator.depart_section(self, node) def astext(self): - if self.pdfinfo is not None: - if self.pdfauthor: - self.pdfinfo.append('pdfauthor={%s}' % self.pdfauthor) - if self.pdfinfo: - pdfinfo = '\\hypersetup{\n' + ',\n'.join(self.pdfinfo) + '\n}\n' - else: - pdfinfo = '' - head = '\\title{%s}\n\\subtitle{%s}\n\\author{%s}\n\\date{%s}\n' % \ - (self.title, self.subtitle, + self.head_prefix.append('\\title{%s}' % ( self.title, )) + self.head_prefix.append('\\subtitle{%s}' % ( self.subtitle, )) + self.head_prefix.append('\\author{%s}' % ( ' \\and\n'.join(['~\\\\\n'.join(author_lines) - for author_lines in self.author_stack]), - self.date) - return ''.join(self.head_prefix + [head] + self.head + [pdfinfo] - + self.body_prefix + self.body + self.body_suffix) + for author_lines in self.author_stack]), )) + self.head_prefix.append('\\date{%s}' % ( self.date, )) + return latex2e.LaTeXTranslator.astext(self) # Use an own reader to modify transformations done. class Reader(standalone.Reader): -- 2.11.4.GIT