summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormilde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2013-08-21 21:49:14 +0000
committermilde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2013-08-21 21:49:14 +0000
commitc498f0c7d1cddf6a25a34a4281c3fd804e6478be (patch)
treed0f5bd0eb6c6a105072732da27fa4c59bd60bcf3
parentd03805e4658db7ccd7b97b56d144cf1df169aed5 (diff)
downloaddocutils-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__.py33
-rw-r--r--test/functional/expected/standalone_rst_latex.tex2
-rw-r--r--test/functional/expected/standalone_rst_xetex.tex2
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}