Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Constructing a Custom TeX Ecosystem for Educati...

Constructing a Custom TeX Ecosystem for Educational Institutions—Beyond Academic Typesetting

This presentation was delivered at BachoTeX 2025 in Poland.

It introduces the design and implementation of a custom TeX ecosystem developed over 18 years at a Japanese educational institution.

By creating an in-house TeX distribution tightly integrated with macOS, we were able to leverage macOS capabilities to the fullest—enabling even non-technical staff to produce professional-quality documents with a single click.

The talk explores the technical details behind this integration and concludes with a discussion of challenges ahead.

doratex

May 04, 2025
Tweet

More Decks by doratex

Other Decks in Education

Transcript

  1. "CPVU.F Yusuke TERADA from Tokyo, Japan A private preparatory school

    teacher for high-school students Japanese TeX Development Community A contributor to TeXShop development Major work: TeX2img https://tex2img.tech/
  2. 5F9GPS&WFSZ4VCKFDU Mathematics Physics Chemistry Biology Earth Science Information Science English

    Literature Classical Japanese Classical Chinese Geography History
  3. 5FDIOJDBM"SDIJUFDUVSFPG PVS*O)PVTF5F94ZTUFN All staff use macOS devices: Company-provided Macs (full-time

    staff) BYOD Macs (part-time staff) BYOD = Bring Your Own Device Our in-house TeX distribution is installed on every machine "TTVNQUJPOT
  4. 0VS*O)PVTF5F9%JTUSJCVUJPO Tailored specifically for in-house use on macOS Lightweight and

    compact Includes everything needed for our use Bundled with a customized version of TeXShop Not based on TeX Live Coexists safely with TeX Live Delivered and updated via our internal server
  5. 8IZ/PU5F9-JWF 1. Historical 2. Size 3. Update Control Prevents unintended

    incompatibility Our distribution (~1.5 GB) vs. TeX Live (> 9 GB) TeX Live wasn't as mature in 2007 as it is now
  6. $IBMMFOHFTJO%FQMPZNFOU #BSSJFSTUP"EPQUJPO Staff have diverse levels of IT literacy ❌

    Command-line Tools ✅ Fully GUI-driven Apps Package Handling # Which package do I have to \usepackage? Creating Indexes Requires External Tools $ Understand .ind/.idx/.ist files and ɹ run makeindex/upmendex separately from TeX
  7. $IBMMFOHFTJO%FQMPZNFOU #BSSJFSTUP"EPQUJPO Font Selection System LaTeX Style: NFSS (New Font

    Selection Scheme) Family: \rmfamily, \sffamily, \ttfamily,... Series: \mdseries, \bfseries,... Shape: \upshape, \itshape, \scshape, \slshape,... Word Style: Choose Font by Name
  8. $IBMMFOHFTJO%FQMPZNFOU #BSSJFSTUP"EPQUJPO Cryptic Error Messages dvipdfmx:warning: Glyph for CID 22113

    missing in font "HiraginoSerif.ttc" # What does that mean? What am I supposed to do with this?
  9. #FOFpUTPG7FSUJDBM*OUFHSBUJPO macOS APFS (File System) Cocoa (API) dvipdfmx upmendex Compiler

    DVI driver Index processor In-house distro Custom Editor TeXShop Fonts Printing System Compile Script In-house Packages upLaTeX Tools Printed output
  10. .BLJOH5F96TFS'SJFOEMZ All major packages are preloaded tikz, tcolorbox, amsmath, multicol,

    ... Font invoking commands are defined for all macOS built-in fonts Compile Script handles: Compilation: LaTeX → DVI → PDF Automatically runs makeindex/upmendex when required Translates error messages into user-friendly explanations
  11. .BLJOH5F96TFS'SJFOEMZ All major packages are preloaded tikz, tcolorbox, amsmath, multicol,

    ... Font invoking commands are defined for all macOS built-in fonts Compile Script handles: Compilation: LaTeX → DVI → PDF Automatically runs makeindex/upmendex when required Translates error messages into user-friendly explanations
  12. &SSPS.FTTBHF5SBOTMBUJPO dvipdfmx Compiler DVI driver In-house distro Editor TeXShop Compile

    Script upLaTeX Get output texlua Interpreter Parsed result Human Readable Messages tee
  13. &SSPS.FTTBHF5SBOTMBUJPO Before dvipdfmx:warning: Glyph for CID 22113 missing in font

    "HiraginoSerif.ttc" # After You attempted to typeset a glyph that is not available in the mapped font. It appears as a blank space in the output PDF. Change the font used for that character. Search for the following character and wrap it with \hanamin{} to use Hanazono Mincho font: * 䂬 ➡ \hanamin{䂬} '
  14. "VUPNBUFE1SJOU$POpHVSBUJPO TeX Source In-house distro In-house Packages Compile Script Set

    hooks macOS APFS (File System) dvipdfmx Output Embed Metadata into PDF's Extended Attributes Read Metadata ' Appropriate Settings Applied Print Printing System Paper
  15. "VUPNBUFE1SJOU$POpHVSBUJPO TeX Source In-house distro In-house Packages Compile Script Set

    hooks macOS APFS (File System) dvipdfmx Output Embed Metadata into PDF's Extended Attributes Read Metadata ' Appropriate Settings Applied Print Printing System Paper
  16. 1FSGPSNBODF0QUJNJ[BUJPO Too much time spent on expanding macros in packages

    mylatexformat .fmt File Macro expansion already done Use as Format File instead of Standard Format Files (latex.fmt, pdflatex.fmt, uplatex.fmt, ...)
  17. "VUPNBUJDGNU3FHFOFSBUJPO In-house distro Compile Script macOS APFS (File System) .fmt

    File MD5 Checksum Checksum Extended Attributes Compare Generate and Embed Checksum (if updated)
  18. 0VUDPNFT Accessible to All Staff: Minimal IT skills required From

    managers to part-timers Simple TeX Workflow: Seamless document production with beautiful results Single-click document creation Automation boosts operational efficiency across the organization TeX has been widely adopted across the entire company!
  19. $IBMMFOHFT"IFBE Keeping Up with the Latest LaTeX TeX Live is

    evolving rapidly LaTeX kernel has changed a lot over the past decade Hard to follow recent updates Migrating to LuaTeX? upLaTeX is specialized for Japanese typesetting LuaTeX is becoming the new standard upLaTeX is often said to have no future
  20. $IBMMFOHFT"IFBE .JHSBUJOHUP-VB5F9 Should we migrate to LuaTeX? → In principle

    yes, but not realistic for now Why not? 18 years of legacy Speed concerns Future hardware advances may eventually solve this
  21. 5XP1BUIT'PSXBSE Two options for the future: 1. Sacrifice some compatibility

    to stay up-to-date 2. Freeze the current environment and maintain internally Neither path is easy A decision will eventually be necessary
  22. $IBMMFOHFT"IFBE 4ZTUFN4VTUBJOBCJMJUZ Deep knowledge of TeX and macOS internals required

    to maintain our system Currently maintained by only one person Need for successor training
  23. $PODMVTJPO TeX is not just a typesetting engine It can

    support: Educational material development Internal infrastructure Organizational workflows Key to success: Seamless integration User-friendly design