mirror of
https://github.com/python/cpython.git
synced 2025-10-13 18:33:34 +00:00
Fix-up latex styling
This commit is contained in:
parent
ad5ae0456e
commit
c4ac789be7
1 changed files with 15 additions and 12 deletions
|
@ -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):
|
||||||
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__':
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue