1
0
mirror of https://gitlab.com/MisterBiggs/latex-bingo.git synced 2025-06-16 07:06:49 +00:00
LaTeX-Bingo/makechecklist.py
2016-09-26 13:21:09 -05:00

62 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