mirror of
https://github.com/asimonson1125/Implementations-of-Probability-Theory.git
synced 2026-02-25 06:09:50 -06:00
55 lines
1.6 KiB
Python
55 lines
1.6 KiB
Python
import subprocess
|
|
import csv
|
|
import time
|
|
|
|
def compile_latex(latex_file):
|
|
try:
|
|
# Run the pdflatex command to compile the LaTeX file
|
|
subprocess.run(['pdflatex', latex_file], check=True)
|
|
print(f'Successfully compiled {latex_file}')
|
|
except subprocess.CalledProcessError as e:
|
|
print(f'Error compiling {latex_file}: {e}')
|
|
|
|
def timesheet2Tex():
|
|
with open("timesheet.tex", 'r') as f:
|
|
lines = f.readlines()
|
|
timesheetStart = findIn(lines, "% OPEN Timesheet")
|
|
timesheetStop = findIn(lines, "% CLOSE Timesheet")
|
|
|
|
timetable = csv2Table("timesheet.csv")
|
|
|
|
with open("timesheet.tex", 'w') as f:
|
|
f.write(''.join(lines[:timesheetStart+1]) + timetable + ''.join(lines[timesheetStop:]))
|
|
|
|
def csv2Table(inFile):
|
|
with open(inFile, 'r') as f:
|
|
reader = csv.reader(f)
|
|
rows = list(reader)
|
|
|
|
out = "\\begin{table}[h!]\n\\centering\n"
|
|
out += "\\begin{tabular}[t]{|" + " c | c | c | c | p{6cm} |}\n"
|
|
out += "\\hline\n"
|
|
|
|
for row in rows:
|
|
# Escape special LaTeX characters
|
|
row = [cell.replace('&', '\\&') for cell in row]
|
|
out += " & ".join(row) + " \\\\\n"
|
|
out += "\\hline\n"
|
|
|
|
out += "\\end{tabular}\n\\end{table}\n"
|
|
return out
|
|
|
|
def findIn(arr, target):
|
|
for i, s in enumerate(arr):
|
|
if target in s:
|
|
return i
|
|
return -1
|
|
|
|
if __name__ == "__main__":
|
|
timesheet2Tex()
|
|
compile_latex('timesheet.tex')
|
|
|
|
# latex makes all kinds of files :(
|
|
subprocess.run(['rm -f *.aux *.log *.fdb_latexmk *.fls *.gz'], check=True, shell=True)
|
|
|