mirror of
https://gitlab.com/MisterBiggs/latex-bingo.git
synced 2025-06-16 07:06:49 +00:00
62 lines
1.6 KiB
Python
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
|