You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kmftools/flashcardgenerator/gen_flashcard.py

47 lines
1.2 KiB

import csv
# Instellingen
input_csv = "flashcards.csv"
output_tex = "flashcards.tex"
# LaTeX-header
latex_header = r"""
\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[dutch]{babel}
\usepackage{flashcards}
\usepackage{geometry}
\geometry{a4paper, margin=1cm}
\begin{document}
\section*{Chinese Flashcards}
"""
# LaTeX-footer
latex_footer = r"""
\end{document}
"""
# Lees CSV en genereer LaTeX-flashcards
flashcards = []
with open(input_csv, newline='', encoding='utf-8') as csvfile:
reader = csv.reader(csvfile)
next(reader) # Sla de header over
for row in reader:
karakter, pinyin, betekenis = row
flashcards.append(
f"\\begin{{flashcard}}{{{karakter}}}\n"
f"\\textbf{{Pinyin:}} {pinyin}\\\\[0.5em]\n"
f"\\textbf{{Betekenis:}} {betekenis}\n"
f"\\end{{flashcard}}\n"
)
# Schrijf de LaTeX-uitvoer naar een bestand
with open(output_tex, "w", encoding="utf-8") as texfile:
texfile.write(latex_header)
texfile.writelines(flashcards)
texfile.write(latex_footer)
print(
f"LaTeX-bestand '{output_tex}' gegenereerd. Compileer dit met pdflatex om een PDF te maken: pdflatex {output_tex}")