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.
47 lines
1.2 KiB
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}")
|