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