mirror of
https://gitlab.com/MisterBiggs/latex-bingo.git
synced 2025-07-23 14:41:28 +00:00
Initial commit of tex and python files
This commit is contained in:
61
makechecklist.py
Normal file
61
makechecklist.py
Normal file
@@ -0,0 +1,61 @@
|
||||
#/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
|
Reference in New Issue
Block a user