FlexiTeX (Bachelor thesis)

University Project

LaTeX Collaboration Without Giving Up Personal Project Structure

Command-line tool for restructuring and splitting large LaTeX projects. Intended for collaborative writing, sharing, or reorganizing complex LaTeX documents.

About the project


LaTeX gives users a lot of freedom in how they structure their projects, but this becomes a problem when working with others. Popular collaboration tools assume that all users follow the same project structure, which does not reflect how people actually prefer to organize their work. This thesis introduces FlexiTeX, a system that allows each user to keep their own project structure while still collaborating on the same content. The system works by flattening a LaTeX project, parsing it into an abstract tree that captures the logical structure. It then applies transformation rules to rebuild the project structure based on a configuration file. The transformation is designed to be reversible, idempotent and preserve the ability to compile the document. A proof of concept shows how this approach can be used in a collaborative setup where each user works in a personal branch and changes are synced through a shared internal version. An evaluation on real-world projects shows that the system preserves content in most cases, although some limitations remain due to parser behavior. Overall, FlexiTeX makes it possible to collaborate on LaTeX projects without forcing everyone to adopt the same structure.

Keywords: LaTeX, document transformation, collaborative editing, abstract syntax tree, configuration-based layout

Supervisor(s): dr. Vadim Zaytsev, Nhat Bui

Thesis


PDF Preview

Slides


PDF Preview