1
0
mirror of https://gitlab.com/MisterBiggs/latex-bingo.git synced 2025-06-15 14:46:41 +00:00
LaTeX-Bingo/makechecklist.py
2020-09-28 21:34:34 -07:00

65 lines
1.6 KiB
Python

# /usr/bin/python
import os
import sys
import re
# makechecklist.py: a quick parser for a specifically-formatted LaTeX file
# that produces a nice checklist in {longtable} for the entire list.
# The list is, or should be, larger than the number of cells on any one
# bingo card, so a canonical list of the cells is useful when evaluating any
# one card.
#
# Jesse Hamner, 2016
# Functions:
def makeEntry(varname):
"""Take a nicely formatted variable (string) and write it into a LaTeX \
[long]table cell"""
tabline = str("$\\square$ & %s \\\\[\\sep]\n" % varname)
return tabline
def slurpInFile(fn, theList):
"""Open an input file, parse it, ignore some fields, and nicely format the\
remainder of the file into a long text string of LaTeX tabular fields."""
f = open(fn, "r")
li = f.read()
grr = li.split("\n")
for i in grr:
if re.search("^%|^\s*$", i):
continue
elif re.match("\s*}\s*$", i):
return theList
else:
mline = i.split(";")
# print (mline)
for j in mline:
if re.match("^\s*$", j):
continue
j = re.sub("\\\\myItems{", "", j)
theList = theList + makeEntry(j)
return 0
# Main loop:
filename = "bingolist.tex"
nicetable = "% Hopefully a nice table\n\n"
nicetable = slurpInFile(filename, nicetable)
# write out the table to a file:
ofile = "checklist1.tex"
output = open(ofile, "w")
output.write(nicetable)
output.close()
# let user know:
print("wrote output to %s" % ofile)
# EOF