def createLatex(self, parent, token, page): fname = token['src'] if fname.startswith('http'): fname, errcode = self.extension.getOnlineMedia(parent, fname) if errcode: return parent else: dest = os.path.join(os.path.dirname(page.destination), token['src']) dest = os.path.dirname(os.path.abspath(dest)) fname, errcode = self.extension.convertImage( token['media_source'], '.png', dest) if errcode: return parent img = self.extension.latexImage(latex.Environment(parent, 'center'), token, fname) img['args'] = [ latex.Bracket(string=u'width=\\textwidth', escape=False) ] return parent
def _processPages(self, root): """ Build a main latex file that includes the others. """ main = base.NodeBase() latex.Command(main, 'documentclass', string=u'report', end='') for package in self._packages: latex.Command(main, 'usepackage', string=package, start='\n', end='') func = lambda n: isinstance(n, page.MarkdownNode) nodes = [n for n in anytree.PreOrderIter(root, filter_=func)] for node in nodes: # If the parallel implementation was better this would not be needed. node.tokenize() node.render(node.ast) if node.depth == 1: title = latex.Command(main, 'title', start='\n') for child in node.result.children[0]: #[0].children: child.parent = title node.result.children[0].parent = None doc = latex.Environment(main, 'document', end='\n') latex.Command(doc, 'maketitle') for node in nodes: node.write() cmd = latex.Command(doc, 'input', start='\n') latex.String(cmd, content=unicode(node.destination), escape=False) return main
def latexImage(self, parent, token, page, src): args = [] style = latex.parse_style(token) width = style.get('width', None) if width: if width.endswith('%'): width = '{}\\textwidth'.format(int(width[:-1]) / 100.) args.append( latex.Bracket(string='width={}'.format(width), escape=False)) if style.get('text-align', None) == 'center': env = latex.Environment(parent, 'center') else: env = parent node = self.translator.findPage(src) fname = os.path.join(self.translator.destination, node.local) img = latex.Command(env, 'includegraphics', string=fname, args=args, escape=False) return img
def createLatex(self, parent, token, page): return latex.Environment(parent, 'enumerate', after_begin='', after_end='', info=token.info)
def createLatex(self, parent, token, page): args = [latex.Brace(string=token['label'])] return latex.Environment(parent, 'Requirement', args=args)
def createLatex(self, parent, token, page): #pylint: disable=no-self-use,unused-argument return latex.Environment(parent, 'quote', after_begin='', info=token.info)
def testEnvironment(self): env = latex.Environment(None, 'foo') self.assertEqual(env.write(), '\n\\begin{foo}\n\n\\end{foo}\n')
def createLatex(self, token, parent): #pylint: disable=no-self-use,unused-argument return latex.Environment(parent, 'quote')
def createLatex(self, token, parent): #pylint: disable=no-self-use,unused-argument return latex.Environment(parent, 'verbatim', string=token.code)
def createLatex(self, token, parent): #pylint: disable=no-self-use,unused-argument return latex.Environment(parent, 'verbatim', string=token.code, after_begin='', before_end='')
def createLatex(self, parent, token, page): args = [latex.Brace(string='\\textwidth', escape=False), latex.Brace(string="".join([f[0].upper() for f in token['form']]))] return latex.Environment(parent, 'tabulary', start='\\par', args=args)