Skip to content
Snippets Groups Projects

Sazba diplomů

Merged Martin Mareš requested to merge diplomy into devel
1 file
+ 13
8
Compare changes
  • Side-by-side
  • Inline
+ 13
8
@@ -10,8 +10,10 @@ import mo.util
def tex_arg(s: Any) -> str:
# Primitivní escapování do TeXu. Nesnaží se ani tak o věrnou intepretaci všech znaků,
# jako o zabránění pádu TeXu kvůli divným znakům.
"""
Primitivní escapování do TeXu. Nesnaží se ani tak o věrnou intepretaci všech znaků,
jako o zabránění pádu TeXu kvůli divným znakům.
"""
if s is None:
s = ""
elif type(s) is not str:
@@ -22,18 +24,21 @@ def tex_arg(s: Any) -> str:
return '{' + s + '}'
def format_hacks(tex_hacks: str) -> str:
# U výsledkových listin a diplomů lze zadat tex_hacks -- speciální
# nastavítka pro různé typografické hacky.
# Nemůžeme ovšem uživatelům dovolit předávat TeXu libovolné příkazy,
# protože bychom jim například zpřístupnili celý filesystem.
"""
U výsledkových listin a diplomů lze zadat tex_hacks -- speciální
nastavítka pro různé typografické hacky.
Nemůžeme ovšem uživatelům dovolit předávat TeXu libovolné příkazy,
protože bychom jim například zpřístupnili celý filesystem.
"""
lines = []
for k, v in parse_tex_hacks(tex_hacks).items():
for k, v in _parse_tex_hacks(tex_hacks).items():
lines.append('\\hack' + k + tex_arg(v) + '\n')
return "".join(lines)
def parse_tex_hacks(tex_hacks: str) -> Dict[str, str]:
def _parse_tex_hacks(tex_hacks: str) -> Dict[str, str]:
hacks = {}
fields = re.split(r'([A-Za-z]+)={([^}]*)}', tex_hacks)
for i, f in enumerate(fields):
Loading