Files
latex/build/labels.py
2026-02-21 11:32:53 +01:00

63 lines
2.4 KiB
Python

# Auto-generate labels and version numbers
def generate_labels():
data = ""
reset_func = "\\newcommand{\\resetNumbering}{"
for label in [
"definition",
"example",
"theorem",
"lemma",
"corollary",
"proposition",
"fact",
"formula",
"remark",
"combine",
]:
data += f"\\newcounter{{{label}none}}\n"
reset_func += f"\n \\setcounter{{{label}none}}{{0}}\n"
data += f"\\newcounter{{{label}section}}[section]\n"
data += f"\\renewcommand{{\\the{label}section}}{{\\thesection.\\arabic{{{label}section}}}}\n"
reset_func += f" \\setcounter{{{label}section}}{{0}}\n"
data += f"\\newcounter{{{label}subsection}}[subsection]\n"
data += f"\\renewcommand{{\\the{label}subsection}}{{\\thesubsection.\\arabic{{{label}subsection}}}}\n"
reset_func += f" \\setcounter{{{label}subsection}}{{0}}\n"
data += f"\\newcounter{{{label}subsubsection}}[subsubsection]\n"
data += f"\\renewcommand{{\\the{label}subsubsection}}{{\\thesubsubsection.\\arabic{{{label}subsubsection}}}}\n"
reset_func += f" \\setcounter{{{label}subsubsection}}{{0}}\n"
data += f"\\newcounter{{{label}paragraph}}[paragraph]\n"
data += f"\\renewcommand{{\\the{label}paragraph}}{{\\theparagraph.\\arabic{{{label}paragraph}}}}\n"
reset_func += f" \\setcounter{{{label}paragraph}}{{0}}\n"
# Generate tcolorboxes
if label != "combine":
data += f"""\\newtcolorbox{{{label}}}[2][]{{
mainboxstyle,
colback={label}color!5!white,
colframe={label}color!75!black,
colbacktitle={label}color!75!black,
title={{\\large #2}},
overlay={{
\\node[overlaystyle,
draw={label}color!75!black,
fill={label}color!75!black
] at (frame.north east)
{{
\\large \\tr{{\\{label}NamingEN}}{{\\{label}NamingDE}}\\printLabel{{{label}}}
}};
}}, #1
}}\n\n"""
data += f"\\newcommand{{\\inline{label}}}[1][NONAME]{{\\inline[#1]{{{label}}}}}"
data += f"\\newcommand{{\\short{label}}}[1][NONAME]{{\\short[#1]{{{label}}}}}"
reset_func += "\n \\setcounter{table}{0}\n"
reset_func += " \\setcounter{figure}{0}\n"
reset_func += "}\n"
return data, reset_func