diff options
author | milde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2013-08-21 21:49:14 +0000 |
---|---|---|
committer | milde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2013-08-21 21:49:14 +0000 |
commit | c498f0c7d1cddf6a25a34a4281c3fd804e6478be (patch) | |
tree | d0f5bd0eb6c6a105072732da27fa4c59bd60bcf3 | |
parent | d03805e4658db7ccd7b97b56d144cf1df169aed5 (diff) | |
download | docutils-c498f0c7d1cddf6a25a34a4281c3fd804e6478be.tar.gz |
Simplify visit_inline code.
git-svn-id: http://svn.code.sf.net/p/docutils/code/trunk/docutils@7715 929543f6-e4f2-0310-98a6-ba3bd3dd1d04
-rw-r--r-- | docutils/writers/latex2e/__init__.py | 33 | ||||
-rw-r--r-- | test/functional/expected/standalone_rst_latex.tex | 2 | ||||
-rw-r--r-- | test/functional/expected/standalone_rst_xetex.tex | 2 |
3 files changed, 14 insertions, 23 deletions
diff --git a/docutils/writers/latex2e/__init__.py b/docutils/writers/latex2e/__init__.py index 89cb9e00a..9be0e651b 100644 --- a/docutils/writers/latex2e/__init__.py +++ b/docutils/writers/latex2e/__init__.py @@ -2339,27 +2339,18 @@ class LaTeXTranslator(nodes.NodeVisitor): self.out += self.ids_to_labels(node) + ['\n'] def visit_inline(self, node): # <span>, i.e. custom roles - # Make a copy to keep ``node['classes']`` True if a - # language argument is popped (used in conditional calls of - # depart_inline()): - classes = node['classes'][:] - self.context.append('}' * len(classes)) - # handle language specification: - language_tags = [cls for cls in classes - if cls.startswith('language-')] - if language_tags: - language = self.babel.language_name(language_tags[0][9:]) - if language: - self.babel.otherlanguages[language] = True - self.out.append(r'\foreignlanguage{%s}{' % language) - classes.pop(classes.index(language_tags[0])) - if not classes: - return - # mark up for styling with custom macros - if 'align-center' in classes: - self.fallbacks['align-center'] = PreambleCmds.align_center - self.fallbacks['inline'] = PreambleCmds.inline - self.out += [r'\DUrole{%s}{' % cls for cls in classes] + self.context.append('}' * len(node['classes'])) + for cls in node['classes']: + if cls == 'align-center': + self.fallbacks['align-center'] = PreambleCmds.align_center + if cls.startswith('language-'): + language = self.babel.language_name(cls[9:]) + if language: + self.babel.otherlanguages[language] = True + self.out.append(r'\foreignlanguage{%s}{' % language) + else: + self.fallbacks['inline'] = PreambleCmds.inline + self.out.append(r'\DUrole{%s}{' % cls) def depart_inline(self, node): self.out.append(self.context.pop()) diff --git a/test/functional/expected/standalone_rst_latex.tex b/test/functional/expected/standalone_rst_latex.tex index f3b59ddbd..f3876a7f1 100644 --- a/test/functional/expected/standalone_rst_latex.tex +++ b/test/functional/expected/standalone_rst_latex.tex @@ -1532,7 +1532,7 @@ The following works in most browsers but does not validate } \end{quote} -\foreignlanguage{british}{\DUrole{green}{\DUrole{sc}{British colourful text in small-caps}}}. +\DUrole{green}{\DUrole{sc}{\foreignlanguage{british}{British colourful text in small-caps}}}. \end{itemize} diff --git a/test/functional/expected/standalone_rst_xetex.tex b/test/functional/expected/standalone_rst_xetex.tex index 86a496d16..5a971b445 100644 --- a/test/functional/expected/standalone_rst_xetex.tex +++ b/test/functional/expected/standalone_rst_xetex.tex @@ -1531,7 +1531,7 @@ The following works in most browsers but does not validate } \end{quote} -\foreignlanguage{british}{\DUrole{green}{\DUrole{sc}{British colourful text in small-caps}}}. +\DUrole{green}{\DUrole{sc}{\foreignlanguage{british}{British colourful text in small-caps}}}. \end{itemize} |