From 5124754eee5beb26daa9ad3b697cb7a09b77164b Mon Sep 17 00:00:00 2001 From: grubert Date: Fri, 18 Jun 2004 22:56:36 +0000 Subject: [PATCH] Move unicode to LaTeX into a method. git-svn-id: https://docutils.svn.sourceforge.net/svnroot/docutils/trunk/docutils@2311 929543f6-e4f2-0310-98a6-ba3bd3dd1d04 --- docutils/writers/latex2e.py | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/docutils/writers/latex2e.py b/docutils/writers/latex2e.py index 311fed732..54b2ee966 100644 --- a/docutils/writers/latex2e.py +++ b/docutils/writers/latex2e.py @@ -710,6 +710,23 @@ class LaTeXTranslator(nodes.NodeVisitor): def language_label(self, docutil_label): return self.language.labels[docutil_label] + def utf8_to_latex(self,text): + # see LaTeX codec http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/252124 + # Only some special chracters are translated, for documents with many utf-8 + # chars one should use the LaTeX unicode package. + latex_equivalents = { + u'\u00A0' : '~', + u'\u00A9' : '{\\copyright}', + u'\u2013' : '{--}', + u'\u2014' : '{---}', + u'\u2020' : '{\\dag}', + u'\u2021' : '{\\ddag}', + u'\u21d4' : '{$\\Leftrightarrow$}', + } + for uchar in latex_equivalents.keys(): + text = text.replace(uchar,latex_equivalents[uchar]) + return text + def encode(self, text): """ Encode special characters in `text` & return. @@ -785,13 +802,7 @@ class LaTeXTranslator(nodes.NodeVisitor): if self.insert_none_breaking_blanks: text = text.replace(' ', '~') if self.settings.output_encoding != 'utf-8': - # see LaTeX codec http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/252124 - text = text.replace(u'\u00A0', '~') - text = text.replace(u'\u00A9', '{\\copyright}') - text = text.replace(u'\u2013', '{--}') - text = text.replace(u'\u2014', '{---}') - text = text.replace(u'\u2020', '{\\dag}') - text = text.replace(u'\u2021', '{\\ddag}') + text = self.utf8_to_latex(text) return text def attval(self, text, -- 2.11.4.GIT