コード例 #1
0
ファイル: Texify.py プロジェクト: CronWorks/latex-python-cli
    def regenerate(self, filename):
        (baseFilename, extension) = splitext(filename)
        if extension.lower() == '.py':
            pdfFilename = baseFilename + '.pdf'
            documentModule = load_source('documentModule', filename)
            for k in documentModule.__dict__.keys():
                document = documentModule.__dict__[k]  # the convention for Texifiable .py modules
                if isinstance(document, JinjaTexDocument):
                    (errors, warnings, pdfFilename) = document.generate(pdfFilename)  # eventually calls regenerateFromTexFile()
                    break  # only generate the first document we find
        elif extension.lower() == '.tex':
            (errors, warnings, pdfFilename) = generatePdf(filename, self.system, glossary=self.arguments['glossary'], preserveLogFile=self.arguments['log'])
        else:
            self.out.put('ERROR: You can only Texify something ending in .tex or .py!')
            exit(-1)

        if errors or warnings:
            self.indentMessages("ERRORS", errors)
            self.indentMessages("WARNINGS", warnings)
        else:
            sleep(1)  # wait for pdf to be written
            self.out.put('starting "evince %s"' % pdfFilename)
            p = self.system.startCommandProcess(['evince', pdfFilename])
            if self.evinceProcess == None:
                self.evinceProcess = p
コード例 #2
0
ファイル: JinjaBase.py プロジェクト: CronWorks/latex-python
    def generate(self, outputFilenameBase, system, variables={}):
        # apply the template if it hasn't been applied already
        # (this will be the case if no custom clauses have been added)
        self.applyTemplateContentIfNecessary()

        errors = self.validate()
        if errors:
            return (errors, [], None)  # errors, warnings, filename

        extension = outputFilenameBase[-4:].lower()
        if extension == ".tex" or extension == ".pdf":
            outputFilenameBase = outputFilenameBase[0:-4]

        classFilename = outputFilenameBase + ".cls"
        classFile = codecs.open(classFilename, "w", "utf-8")
        today = datetime.date.today()
        classFile.write(
            """
            \\NeedsTeXFormat{LaTeX2e}[1999/09/01]
            \\ProvidesClass{%s}[%4d/%2d/%2d J Luke Scott, Copyright (C) %4d]
        """
            % (outputFilenameBase, today.year, today.month, today.day, today.year)
        )
        output = self.classTemplate.render(variables)
        classFile.write(output)
        classFile.close()

        texFilename = outputFilenameBase + ".tex"
        texFile = codecs.open(texFilename, "w", "utf-8")
        texFile.write(
            """
            \\documentclass{%s}
        """
            % (outputFilenameBase)
        )
        output = self.texTemplate.render(variables)
        texFile.write(output)
        texFile.close()

        return generatePdf(texFilename=texFilename, system=system)