Skip to content

Commit

Permalink
escape LaTeX characters #2
Browse files Browse the repository at this point in the history
  • Loading branch information
sinaatalay committed Oct 27, 2023
1 parent 0181923 commit 08a4fcd
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 7 deletions.
13 changes: 9 additions & 4 deletions rendercv/data_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -138,14 +138,19 @@ def escape_latex_characters(sentence: str) -> str:
"~": r"\textasciitilde{}",
"_": r"\_",
"^": r"\textasciicircum{}",
"{": r"\{",
"}": r"\}",
"\\": r"\textbackslash{}",
}
# Handle backslash and curly braces separately because the other characters are
# escaped with backslash and curly braces:
sentence = sentence.replace("{", ">>{")
sentence = sentence.replace("}", ">>}")
sentence = sentence.replace("\\", "\\textbackslash{}")
sentence = sentence.replace(">>{", "\\{")
sentence = sentence.replace(">>}", "\\}")

# Loop through the letters of the sentence and if you find an escape character,
# replace it with its LaTeX equivalent:
for character in sentence:
copy_of_the_sentence = sentence
for character in copy_of_the_sentence:
if character in escape_characters:
sentence = sentence.replace(character, escape_characters[character])

Expand Down
6 changes: 3 additions & 3 deletions tests/test_data_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,10 @@ def test_escape_latex_characters(self):
result = data_model.escape_latex_characters(str_without_latex_characters)
self.assertEqual(result, expected)

str_with_latex_characers = r"asdf#asdf$asdf%asdf& ~ fd_ \ ^aa aa{ bb} "
str_with_latex_characers = r"asdf#asdf$asdf%asdf& ~ fd_ \ ^aa aa{ bb}"
expected = (
r"asdf\#asdf\$asdf\%asdf\& \textasciitilde{}\ fd\_ \textbackslash{}"
r" \textasciicircum{}aa aa\{ bb\} "
r"asdf\#asdf\$asdf\%asdf\& \textasciitilde{} fd\_ \textbackslash{}"
r" \textasciicircum{}aa aa\{ bb\}"
)
with self.subTest(msg="string with LaTeX characters"):
result = data_model.escape_latex_characters(str_with_latex_characers)
Expand Down

0 comments on commit 08a4fcd

Please sign in to comment.