Brilliant idea!
I spun up an ubuntu vm, played dependency whack-a-mole until everything is installed and happy. I install liblouisutdml-bin and its dependencies via apt and that got me file2brl without compiling. I'm getting really close now.
Running (in debug mode to get you the full error context):
```bash
mathbook/pretext/pretext -c all -f braille-electronic -p class-notes/publication/publication.ptx -d class-notes/output/epub -vv class-notes/source/class-notes.ptx
```
results in this error along with the rest of the build messages:
--- output ---
PTX:DEBUG: Parsed CLI args {'verbose': 2, 'config_file': None, 'component': 'all', 'format': 'braille-emboss', 'publication_file': 'class-notes/publication/publication.ptx', 'stringparams': [], 'extra_stylesheet': None, 'method': '', 'xmlid': '', 'server': None, 'data_dir': None, 'out': None, 'dir': 'class-notes/output/epub', 'abort': False, 'xml_file': 'class-notes/source/class-notes.ptx'}
PTX:DEBUG: Python version: 3.8 (expecting 3.6 or newer)
PTX:DEBUG: discovered distribution and xsl directories: /src/mathbook, /src/mathbook/xsl
PTX: parsing possible configuration files: ['/src/mathbook/pretext/pretext.cfg', '/src/mathbook/user/mbx.cfg', '/src/mathbook/user/pretext.cfg']
PTX:DEBUG: configuration files actually used/read: ['/src/mathbook/pretext/pretext.cfg']
PTX: using default configuration only
PTX: custom configuration file not used at /src/mathbook/user/pretext.cfg
PTX:DEBUG: dictionary of executables/commands: {'latex': 'latex', 'pdflatex': 'pdflatex', 'xelatex': 'xelatex', 'pdfsvg': 'pdf2svg', 'asy': 'asy', 'sage': 'sage', 'pdfpng': 'convert', 'pdfeps': 'pdftops', 'pdfcrop': 'pdf-crop-margins', 'pageres': 'pageres', 'node': 'node', 'liblouis': 'file2brl'}
PTX: verifying and expanding XML source file: class-notes/source/class-notes.ptx
PTX: input XML source file expanded to absolute path: /src/class-notes/source/class-notes.ptx
PTX: verifying and expanding publisher file: class-notes/publication/publication.ptx
PTX: input publisher file expanded to absolute path: /src/class-notes/publication/publication.ptx
PTX: verifying and expanding input directory: class-notes/output/epub
PTX: input directory expanded to absolute path: /src/class-notes/output/epub
PTX: Done examining environment and initializing setup info
PTX: converting /src/class-notes/source/class-notes.ptx into BRF in /src/class-notes/output/epub combining UEB2 and Nemeth
PTX:DEBUG: Braille manufacture in temporary directory: /tmp/tmpc9iuzx_z
PTX:DEBUG: converting raw LaTeX from /src/class-notes/source/class-notes.ptx into clean nemeth format placed into /tmp/tmpc9iuzx_z/math-representations-nemeth.xml
PTX: converting LaTeX from /src/class-notes/source/class-notes.ptx into nemeth format
PTX:DEBUG: converting LaTeX from /src/class-notes/source/class-notes.ptx into nemeth format
PTX:DEBUG: temporary directory for MathJax work: /tmp/tmp2a_ls7y4
PTX:DEBUG: extracting LaTeX from /src/class-notes/source/class-notes.ptx and collected in /tmp/tmp2a_ls7y4/mj-input-latex.html
PTX: XSL conversion of /src/class-notes/source/class-notes.ptx by /src/mathbook/xsl/support/extract-math.xsl
PTX:DEBUG: XSL conversion via /src/mathbook/xsl/support/extract-math.xsl of /src/class-notes/source/class-notes.ptx to /tmp/tmp2a_ls7y4/mj-input-latex.html and/or into directory None with parameters {'math.punctuation': 'none', 'publisher': '/src/class-notes/publication/publication.ptx'}
PTX:DEBUG: calling MathJax to convert LaTeX from /tmp/tmp2a_ls7y4/mj-input-latex.html into raw representations as nemeth in /tmp/tmp2a_ls7y4/mj-output-nemeth.html
PTX:DEBUG: locating "node" in [executables] section of configuration file
PTX:DEBUG: node executable: node, options:
PTX:DEBUG: packaging math as nemeth from /tmp/tmp2a_ls7y4/mj-output-nemeth.html into XML file /tmp/tmpc9iuzx_z/math-representations-nemeth.xml
PTX: XSL conversion of /tmp/tmp2a_ls7y4/mj-output-nemeth.html by /src/mathbook/xsl/support/package-math.xsl
PTX:DEBUG: XSL conversion via /src/mathbook/xsl/support/package-math.xsl of /tmp/tmp2a_ls7y4/mj-output-nemeth.html to /tmp/tmpc9iuzx_z/math-representations-nemeth.xml and/or into directory None with parameters {}
PTX: XML file of math representations deposited as /tmp/tmpc9iuzx_z/math-representations-nemeth.xml
PTX:DEBUG: converting source (/src/class-notes/source/class-notes.ptx) and clean representations (/tmp/tmpc9iuzx_z/math-representations-nemeth.xml) into liblouis precursor XML file (/tmp/tmpc9iuzx_z/liblouis-precursor.xml)
PTX: XSL conversion of /src/class-notes/source/class-notes.ptx by /src/mathbook/xsl/pretext-braille.xsl
PTX:DEBUG: XSL conversion via /src/mathbook/xsl/pretext-braille.xsl of /src/class-notes/source/class-notes.ptx to None and/or into directory /tmp/tmpc9iuzx_z with parameters {'mathfile': '/tmp/tmpc9iuzx_z/math-representations-nemeth.xml', 'page-format': 'emboss', 'publisher': '/src/class-notes/publication/publication.ptx'}
PTX:DEBUG: locating "liblouis" in [executables] section of configuration file
PTX:DEBUG: liblouis executable: file2brl, options:
PTX:DEBUG: applying liblouis to /tmp/tmpc9iuzx_z/liblouis-precursor.xml with configurations /src/mathbook/script/braille/pretext-liblouis.cfg,/src/mathbook/script/braille/pretext-liblouis-emboss.cfg, creating BRF /src/class-notes/output/epub/class-notes.brf
Cannot resolve table 'nemeth.ctb'
1 errors found.
nemeth.ctb could not be compiled
liblouisutdml.ini:38: Table 'nemeth.ctb' cannot be found.
liblouisutdml.ini:38: invalid mathexprTableName
Cannot resolve table 'nemeth.ctb'
1 errors found.
nemeth.ctb could not be compiled
liblouisutdml.ini:38: Table 'nemeth.ctb' cannot be found.
liblouisutdml.ini:38: invalid mathexprTableName
PTX: BRF file deposited as /src/class-notes/output/epub/class-notes.brf
PTX:DEBUG: Temporary directories left behind for inspection: ['/tmp/tmpc9iuzx_z', '/tmp/tmp2a_ls7y4']
--------
The last error is happening during the `file2brl` phase. It does create a brf file, but I'm suspicious it's invalid since we're seeing this error. Also, note I get the same error whether I use -f braille-emboss or braille-electronic
We're so close!