mirror of
https://gitlab.com/MisterBiggs/latex-bingo.git
synced 2025-06-15 14:46:41 +00:00
65 lines
1.6 KiB
Python
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
|