def write_stylesheet(self) -> None: highlighter = highlighting.PygmentsBridge('latex', self.config.pygments_style) stylesheet = path.join(self.outdir, 'sphinxhighlight.sty') with open(stylesheet, 'w') as f: f.write('\\NeedsTeXFormat{LaTeX2e}[1995/12/01]\n') f.write('\\ProvidesPackage{sphinxhighlight}' '[2016/05/29 stylesheet for highlighting with pygments]\n\n') f.write(highlighter.get_stylesheet())
def write_stylesheet(self) -> None: highlighter = highlighting.PygmentsBridge('latex', self.config.pygments_style) stylesheet = path.join(self.outdir, 'sphinxhighlight.sty') with open(stylesheet, 'w', encoding="utf-8") as f: f.write('\\NeedsTeXFormat{LaTeX2e}[1995/12/01]\n') f.write('\\ProvidesPackage{sphinxhighlight}' '[2022/06/30 stylesheet for highlighting with pygments]\n') f.write('% Its contents depend on pygments_style configuration variable.\n\n') f.write(highlighter.get_stylesheet())
def __init__(self, document, builder): nodes.NodeVisitor.__init__(self, document) self.builder = builder self.body = [] docclass = document.settings.docclass paper = builder.config.latex_paper_size + 'paper' if paper == 'paper': # e.g. command line "-D latex_paper_size=" paper = 'letterpaper' date = time.strftime(builder.config.today_fmt) logo = (builder.config.latex_logo and '\\includegraphics{%s}\\par' % path.basename(builder.config.latex_logo) or '') self.options = { 'docclass': docclass, 'papersize': paper, 'pointsize': builder.config.latex_font_size, 'preamble': builder.config.latex_preamble, 'modindex': builder.config.latex_use_modindex, 'author': document.settings.author, 'docname': document.settings.docname, # if empty, the title is set to the first section title 'title': document.settings.title, 'release': builder.config.release, 'logo': logo, 'date': date, } self.highlighter = highlighting.PygmentsBridge( 'latex', builder.config.pygments_style) self.context = [] self.descstack = [] self.bibitems = [] self.table = None self.next_table_colspec = None self.highlightlang = 'python' self.highlightlinenothreshold = sys.maxint self.written_ids = set() if docclass == 'manual': if builder.config.latex_use_parts: self.top_sectionlevel = 0 else: self.top_sectionlevel = 1 else: self.top_sectionlevel = 2 self.next_section_target = None # flags self.verbatim = None self.in_title = 0 self.in_production_list = 0 self.first_document = 1 self.this_is_the_title = 1 self.literal_whitespace = 0 self.need_graphicx = 0
def __init__(self, document, builder): nodes.NodeVisitor.__init__(self, document) self.builder = builder self.body = [] # sort out some elements papersize = builder.config.latex_paper_size + 'paper' if papersize == 'paper': # e.g. command line "-D latex_paper_size=" papersize = 'letterpaper' self.elements = self.default_elements.copy() self.elements.update({ 'docclass': document.settings.docclass, 'papersize': papersize, 'pointsize': builder.config.latex_font_size, # if empty, the title is set to the first section title 'title': document.settings.title, 'date': strftime(builder.config.today_fmt or _('%B %d, %Y')), 'release': builder.config.release, 'author': document.settings.author, 'releasename': _('Release'), 'preamble': builder.config.latex_preamble, 'modindexname': _('Module Index'), 'indexname': _('Index'), }) if builder.config.latex_logo: self.elements['logo'] = '\\includegraphics{%s}\\par' % \ path.basename(builder.config.latex_logo) if builder.config.language: babel = ExtBabel(builder.config.language) self.elements['classoptions'] += ',' + babel.get_language() self.elements['shorthandoff'] = babel.get_shorthandoff() self.elements['fncychap'] = '\\usepackage[Sonny]{fncychap}' else: self.elements['classoptions'] += ',english' if not builder.config.latex_use_modindex: self.elements['makemodindex'] = '' self.elements['printmodindex'] = '' # allow the user to override them all self.elements.update(builder.config.latex_elements) self.highlighter = highlighting.PygmentsBridge( 'latex', builder.config.pygments_style) self.context = [] self.descstack = [] self.bibitems = [] self.table = None self.next_table_colspec = None self.highlightlang = builder.config.highlight_language self.highlightlinenothreshold = sys.maxint self.written_ids = set() self.footnotestack = [] if self.elements['docclass'] == 'manual': if builder.config.latex_use_parts: self.top_sectionlevel = 0 else: self.top_sectionlevel = 1 else: self.top_sectionlevel = 2 self.next_section_target = None # flags self.verbatim = None self.in_title = 0 self.in_production_list = 0 self.first_document = 1 self.this_is_the_title = 1 self.literal_whitespace = 0
def __init__(self, document, builder): # super(type(self), self).__init__(document, builder) nodes.NodeVisitor.__init__(self, document) self.builder = builder self.body = [] self.sectionnames = builder.app.config.clatex_sectionnames self.elements = self.default_elements.copy() if type(builder.config.clatex_makeidx) == bool: if builder.config.clatex_makeidx: makeidx = '\\usepackage{makeidx}\n\\makeindex' else: makeidx = '' else: makeidx = builder.config.clatex_makeidx self.elements.update({ 'author': document.settings.author, 'title': document.settings.title, 'documentclass': builder.config.clatex_documentclass, 'preamble': builder.config.clatex_preamble, 'begin_doc': builder.config.clatex_begin_doc, 'end_doc': builder.config.clatex_end_doc, 'hyperref_args': builder.config.clatex_hyperref_args, 'makeidx': makeidx, }) self.highlighter = highlighting.PygmentsBridge( 'latex', builder.config.pygments_style, builder.config.trim_doctest_flags) self.context = [] self.descstack = [] self.bibitems = [] self.table = None self.next_table_colspec = None # stack of [language, linenothreshold] settings per file # the first item here is the default and must not be changed # the second item is the default for the master file and can be changed # by .. highlight:: directive in the master file self.hlsettingstack = 2 * [[ builder.config.highlight_language, sys.maxint ]] self.footnotestack = [] self.curfilestack = [] self.handled_abbrs = set() if builder.config.latex_use_parts: self.top_sectionlevel = 0 else: if builder.config.clatex_use_chapters: self.top_sectionlevel = 1 else: self.top_sectionlevel = 2 self.next_section_ids = set() self.next_figure_ids = set() self.next_table_ids = set() # flags self.verbatim = None self.in_title = 0 self.in_production_list = 0 self.in_footnote = 0 self.in_caption = 0 self.first_document = 1 self.this_is_the_title = 1 self.literal_whitespace = 0 self.no_contractions = 0 self.compact_list = 0 self.first_param = 0 self.previous_spanning_row = 0 self.previous_spanning_column = 0 self.remember_multirow = {} self.remember_multirowcol = {} self.footnote_restricted = 0 self.next_hyperlink_ids = {} self.in_container_literal_block = 0 self.in_minipage = 0
def __init__(self, document, builder): Translator.__init__(self, document) docCfg = self.document.docCfg self.builder = builder self.settings = document.settings self.d_class = DocumentClass(docCfg) self.polyglossia = Polyglossia(self.settings.language_code) self.requirements = Requirements() # elements # -------- self.elements = self.default_ctx.copy() self.elements.update(docCfg) self.elements.documentoptions = self.d_class.documentoptions self.elements.documentclass = self.d_class.documentclass self.elements.language = self.polyglossia.language # common flags & stacks # --------------------- self.out = [] self.bibitems = [] self.in_title = False self.in_minipage = False self.body = [] self.table = None self.next_table_colspec = None self.curfilestack = [] self.first_document = 1 self.first_param = 0 self.this_is_the_title = 1 # self.next_hyperlink_ids = {} # PDF properties (hyperref package) # --------------------------------- self.pdfsetup = [] self.pdfinfo = [] # PDF properties: pdftitle, pdfauthor self.pdfauthor = [] # footnotes # --------- self.in_footnote = 0 self.footnotestack = [] self.footnote_restricted = False self.pending_footnotes = [] # sectioning # ---------- self.next_section_ids = set() self.next_figure_ids = set() self.next_table_ids = set() if docCfg.get('tocdepth'): self.elements['tocdepth'] = (r'\setcounter{tocdepth}{%d}' % docCfg.get('tocdepth')) # code highlighter # ---------------- # XeLaTeX makes no use of the sphinx.util.texescape, but the # sphinx.highlighting.PygmentsBridge uses the *tex_hl_escape_map_new* # which has to be initialized. from sphinx.util import texescape texescape.init() self.highlighter = highlighting.PygmentsBridge( 'latex', self.builder.config.pygments_style or 'tango' # prefer tango as default , self.builder.config.trim_doctest_flags) # stack of [language, linenothreshold] settings per file the first item # here is the default and must not be changed the second item is the # default for the master file and can be changed by .. highlight:: # directive in the master file self.hlsettingstack = 2 * [[ self.builder.config.highlight_language, sys.maxsize ]]