flexitex

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

https://github.com/wtb04/flexitex

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
Last synced: 7 months ago · JSON representation ·

Repository

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

Basic Info
  • Host: GitHub
  • Owner: wtb04
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 107 KB
Statistics
  • Stars: 1
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created 10 months ago · Last pushed 9 months ago
Metadata Files
Readme License Citation

README.md

FlexiTeX Logo

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

  1. Prepare your LaTeX project and a config file (see example-config.yml).
  2. 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

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

pyproject.toml pypi
  • PyYAML ==6.0.2
  • graphviz *
  • pylatexenc *
requirements.txt pypi
  • PyYAML ==6.0.2
  • graphviz ==0.20.3
  • pylatexenc ==2.10