[Python-checkins] cpython: Fix-up latex styling

raymond.hettinger python-checkins at python.org
Sun Jul 15 02:58:40 CEST 2012


http://hg.python.org/cpython/rev/592307606f51
changeset:   78103:592307606f51
parent:      78101:5f62c317c202
user:        Raymond Hettinger <python at rcn.com>
date:        Sat Jul 14 17:58:29 2012 -0700
summary:
  Fix-up latex styling

files:
  Tools/scripts/highlight.py |  27 ++++++++++++++-----------
  1 files changed, 15 insertions(+), 12 deletions(-)


diff --git a/Tools/scripts/highlight.py b/Tools/scripts/highlight.py
--- a/Tools/scripts/highlight.py
+++ b/Tools/scripts/highlight.py
@@ -145,23 +145,25 @@
 
 #### LaTeX Output ##########################################
 
-default_latex_colors = {
-    'comment': 'red',
-    'string': 'green',
-    'docstring': 'green',
-    'keyword': 'orange',
-    'builtin': 'purple',
-    'definition': 'orange',
-    'defname': 'blue',
-    'operator': 'brown',
+default_latex_commands = {
+    'comment': '{\color{red}#1}',
+    'string': '{\color{ForestGreen}#1}',
+    'docstring': '{\emph{\color{ForestGreen}#1}}',
+    'keyword': '{\color{orange}#1}',
+    'builtin': '{\color{purple}#1}',
+    'definition': '{\color{orange}#1}',
+    'defname': '{\color{blue}#1}',
+    'operator': '{\color{brown}#1}',
 }
 
 default_latex_document = r'''
 \documentclass{article}
 \usepackage{alltt}
+\usepackage{upquote}
 \usepackage{color}
 \usepackage[usenames,dvipsnames]{xcolor}
 \usepackage[cm]{fullpage}
+%(macros)s
 \begin{document}
 \center{\LARGE{%(title)s}}
 \begin{alltt}
@@ -181,17 +183,18 @@
     return re.sub(r'[\\#$%^&_{}~]', lambda mo: xlat[mo.group()], s)
 
 def latex_highlight(classified_text, title = 'python',
-                    colors = default_latex_colors,
+                    commands = default_latex_commands,
                     document = default_latex_document):
     '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 = []
     for kind, text in classified_text:
         if kind:
-            result.append(r'{\color{%s}' % colors[kind])
+            result.append(r'\py%s{' % kind)
         result.append(latex_escape(text))
         if kind:
             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__':

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list