Kaydet (Commit) c4ac789b authored tarafından Raymond Hettinger's avatar Raymond Hettinger

Fix-up latex styling

üst ad5ae045
...@@ -145,23 +145,25 @@ def build_html_page(classified_text, title='python', ...@@ -145,23 +145,25 @@ def build_html_page(classified_text, title='python',
#### LaTeX Output ########################################## #### LaTeX Output ##########################################
default_latex_colors = { default_latex_commands = {
'comment': 'red', 'comment': '{\color{red}#1}',
'string': 'green', 'string': '{\color{ForestGreen}#1}',
'docstring': 'green', 'docstring': '{\emph{\color{ForestGreen}#1}}',
'keyword': 'orange', 'keyword': '{\color{orange}#1}',
'builtin': 'purple', 'builtin': '{\color{purple}#1}',
'definition': 'orange', 'definition': '{\color{orange}#1}',
'defname': 'blue', 'defname': '{\color{blue}#1}',
'operator': 'brown', 'operator': '{\color{brown}#1}',
} }
default_latex_document = r''' default_latex_document = r'''
\documentclass{article} \documentclass{article}
\usepackage{alltt} \usepackage{alltt}
\usepackage{upquote}
\usepackage{color} \usepackage{color}
\usepackage[usenames,dvipsnames]{xcolor} \usepackage[usenames,dvipsnames]{xcolor}
\usepackage[cm]{fullpage} \usepackage[cm]{fullpage}
%(macros)s
\begin{document} \begin{document}
\center{\LARGE{%(title)s}} \center{\LARGE{%(title)s}}
\begin{alltt} \begin{alltt}
...@@ -181,17 +183,18 @@ def latex_escape(s): ...@@ -181,17 +183,18 @@ def latex_escape(s):
return re.sub(r'[\\#$%^&_{}~]', lambda mo: xlat[mo.group()], s) return re.sub(r'[\\#$%^&_{}~]', lambda mo: xlat[mo.group()], s)
def latex_highlight(classified_text, title = 'python', def latex_highlight(classified_text, title = 'python',
colors = default_latex_colors, commands = default_latex_commands,
document = default_latex_document): document = default_latex_document):
'Create a complete LaTeX document with colorized source code' 'Create a complete LaTeX document with colorized source code'
macros = '\n'.join(r'\newcommand{\py%s}[1]{%s}' % c for c in commands.items())
result = [] result = []
for kind, text in classified_text: for kind, text in classified_text:
if kind: if kind:
result.append(r'{\color{%s}' % colors[kind]) result.append(r'\py%s{' % kind)
result.append(latex_escape(text)) result.append(latex_escape(text))
if kind: if kind:
result.append('}') result.append('}')
return default_latex_document % dict(title=title, body=''.join(result)) return default_latex_document % dict(title=title, macros=macros, body=''.join(result))
if __name__ == '__main__': if __name__ == '__main__':
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment