flexitex
Command-line tool for restructuring and splitting large LaTeX projects. Intended for collaborative writing, sharing, or reorganizing complex LaTeX documents.
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.4%) to scientific vocabulary
Repository
Command-line tool for restructuring and splitting large LaTeX projects. Intended for collaborative writing, sharing, or reorganizing complex LaTeX documents.
Basic Info
Statistics
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
FlexiTeX is a command-line tool for restructuring and splitting large LaTeX projects.
It enables users to define custom rules for organizing LaTeX documents, manages figures and file paths, and can visualize document structure.
The tool is intended for collaborative writing, sharing, or reorganizing complex LaTeX documents.
Installation
From the root directory run:
sh
pip install .
Quick Start
- Prepare your LaTeX project and a config file (see
example-config.yml). - Run FlexiTeX:
sh flexitex -c example-config.yml
Usage
sh
flexitex [-c CONFIG] [--debug] [-vo] [-vf]
[-if INPUT_FOLDER] [-im INPUT_MAIN]
[-of OUTPUT_FOLDER] [-om OUTPUT_MAIN]
[-fig FIGURE_FOLDER]
| Option | Required | Argument | Description |
| ----------------------------- | -------- | ------------ | ------------------------------------------------------------------ |
| -c, --config | No | Path to YAML | Path to config file (default: config.yml) |
| --debug, -d | No | None | Enable debug output during parsing |
| -vo, --visualize-original | No | None | Show initial AST as Graphviz PDF (before applying splitting rules) |
| -vf, --visualize-final | No | None | Show final AST as Graphviz PDF (after applying splitting rules) |
| -if, --input-folder | No | Path | Override: input folder (e.g., ./input) |
| -im, --input-main | No | Filename | Override: input main file (e.g., main.tex) |
| -of, --output-folder | No | Path | Override: output folder (e.g., ./output) |
| -om, --output-main | No | Filename | Override: output main file (e.g., output.tex) |
| -fig, --figure-folder | No | Path | Override: folder for figures (e.g., figs/) |
Configuration
See example-config.yml for a template.
Example Repository
For a working demonstration of collaborative workflows using FlexiTeX, see the FlexiTeX-Example repository.
It shows how multiple users can maintain custom LaTeX styles across branches with automated synchronization via GitHub Actions.
License
MIT License. See LICENSE.
Owner
- Name: W.D.C. ten Brinke
- Login: wtb04
- Kind: user
- Location: Enschede
- Website: auto.w-tb.nl
- Repositories: 1
- Profile: https://github.com/wtb04
Citation (CITATION.cff)
cff-version: 1.2.0
message: >
If you use this software, please cite it using the metadata from this file.
title: FlexiTeX
version: "1.0.0"
date-released: 2025-06-03
license: MIT
repository-code: "https://github.com/wtb04/FlexiTeX"
abstract: >
FlexiTeX is a tool for collaborative LaTeX projects that
enables each contributor to use their own flexible file
structure and naming conventions. It uses a configurable
mapping system to transform between project layouts,
making collaboration seamless without enforcing rigid
standards.
authors:
- given-names: Wouter
family-names: ten Brinke
email: w.d.c.tenbrinke@student.utwente.nl
GitHub Events
Total
- Delete event: 1
- Public event: 1
- Push event: 14
- Pull request event: 5
- Create event: 2
Last Year
- Delete event: 1
- Public event: 1
- Push event: 14
- Pull request event: 5
- Create event: 2
Dependencies
- PyYAML ==6.0.2
- graphviz *
- pylatexenc *
- PyYAML ==6.0.2
- graphviz ==0.20.3
- pylatexenc ==2.10