##// END OF EJS Templates
Enclose \ldots with {}...
Jörg Dietrich -
Show More
@@ -1,63 +1,63
1 1 """Latex filters.
2 2
3 3 Module of useful filters for processing Latex within Jinja latex templates.
4 4 """
5 5 #-----------------------------------------------------------------------------
6 6 # Copyright (c) 2013, the IPython Development Team.
7 7 #
8 8 # Distributed under the terms of the Modified BSD License.
9 9 #
10 10 # The full license is in the file COPYING.txt, distributed with this software.
11 11 #-----------------------------------------------------------------------------
12 12
13 13 #-----------------------------------------------------------------------------
14 14 # Imports
15 15 #-----------------------------------------------------------------------------
16 16 import re
17 17
18 18 #-----------------------------------------------------------------------------
19 19 # Globals and constants
20 20 #-----------------------------------------------------------------------------
21 21
22 22 LATEX_RE_SUBS = (
23 (re.compile(r'\.\.\.+'), r'\\ldots'),
23 (re.compile(r'\.\.\.+'), r'{\\ldots}'),
24 24 )
25 25
26 26 # Latex substitutions for escaping latex.
27 27 # see: http://stackoverflow.com/questions/16259923/how-can-i-escape-latex-special-characters-inside-django-templates
28 28
29 29 LATEX_SUBS = {
30 30 '&': r'\&',
31 31 '%': r'\%',
32 32 '$': r'\$',
33 33 '#': r'\#',
34 34 '_': r'\_',
35 35 '{': r'\{',
36 36 '}': r'\}',
37 37 '~': r'\textasciitilde{}',
38 38 '^': r'\^{}',
39 39 '\\': r'\textbackslash{}',
40 40 }
41 41
42 42
43 43 #-----------------------------------------------------------------------------
44 44 # Functions
45 45 #-----------------------------------------------------------------------------
46 46
47 47 __all__ = ['escape_latex']
48 48
49 49 def escape_latex(text):
50 50 """
51 51 Escape characters that may conflict with latex.
52 52
53 53 Parameters
54 54 ----------
55 55 text : str
56 56 Text containing characters that may conflict with Latex
57 57 """
58 58 text = ''.join(LATEX_SUBS.get(c, c) for c in text)
59 59 for pattern, replacement in LATEX_RE_SUBS:
60 60 text = pattern.sub(replacement, text)
61 61
62 62 return text
63 63
General Comments 0
You need to be logged in to leave comments. Login now