Fix escape do TeXu
This commit is contained in:
parent
bf46105db8
commit
7230d87f6b
1 changed files with 19 additions and 13 deletions
|
@ -27,19 +27,25 @@ class UCWTexGenerator(OutputGenerator):
|
||||||
super().__init__(output_file, *args, **kwargs)
|
super().__init__(output_file, *args, **kwargs)
|
||||||
|
|
||||||
def escape_special_chars(self, text: str) -> str:
|
def escape_special_chars(self, text: str) -> str:
|
||||||
text = text.replace("&", r"\&")
|
if '\\' in text:
|
||||||
text = text.replace("%", r"\%")
|
print("ESCAPE", text)
|
||||||
text = text.replace("$", r"\$")
|
out = ""
|
||||||
text = text.replace("#", r"\#")
|
for char in text:
|
||||||
text = text.replace("_", r"\_")
|
out += {
|
||||||
text = text.replace("{", r"\{")
|
'&': r"\&",
|
||||||
text = text.replace("}", r"\}")
|
'%': r"\%",
|
||||||
text = text.replace("~", r"\textasciitilde{}")
|
'$': r"\$",
|
||||||
text = text.replace("^", r"\textasciicircum{}")
|
'#': r"\#",
|
||||||
text = text.replace("\\", r"\textbackslash{}")
|
'_': r"\_",
|
||||||
text = text.replace(" ", "~") # We use unicode no-break spaces to force nbsp in output
|
'{': r"\{",
|
||||||
text = text.replace("", "")
|
'}': r"\}",
|
||||||
return text
|
'~': r"\textasciitilde{}",
|
||||||
|
'^': r"\textasciicircum{}",
|
||||||
|
'\\': r"\textbackslash{}",
|
||||||
|
' ': r"~",
|
||||||
|
'': r"",
|
||||||
|
}.get(char, char)
|
||||||
|
return out
|
||||||
|
|
||||||
def generate(self, e: Union[Element, ListContainer]):
|
def generate(self, e: Union[Element, ListContainer]):
|
||||||
if hasattr(e, "attributes") and "only" in e.attributes and e.attributes["only"] != "tex":
|
if hasattr(e, "attributes") and "only" in e.attributes and e.attributes["only"] != "tex":
|
||||||
|
|
Loading…
Reference in a new issue