LaTeX manuscript compilation system for scientific documents with MCP server
Project description
SciTeX Writer
A LaTeX compilation system for academic manuscripts with automatic versioning, diff generation, and cross-platform reproducibility.
Part of the fully open-source SciTeX project: https://scitex.ai
Quick Start
git clone https://github.com/ywatanabe1989/scitex-writer.git
./scitex-writer/scripts/compile.sh manuscript
Output Structure
./scitex-writer/
├── 00_shared/ # Shared resources across all documents
│ ├── title.tex # Manuscript title
│ ├── authors.tex # Author names and affiliations
│ ├── keywords.tex # Keywords for the manuscript
│ ├── journal_name.tex # Target journal name
│ ├── bib_files/ # Multiple .bib files (auto-merged and deduplicated)
│ ├── latex_styles/ # Common LaTeX configurations
│ └── templates/ # LaTeX document templates
│
├── 01_manuscript/ # Main manuscript
│ ├── contents/ # Modular content sections
│ │ ├── abstract.tex
│ │ ├── introduction.tex
│ │ ├── methods.tex
│ │ ├── results.tex
│ │ ├── discussion.tex
│ │ ├── figures/ # Figure captions + media
│ │ └── tables/ # Table captions + CSV data
│ ├── archive/ # Version history (gitignored)
│ ├── manuscript.tex # Compiled LaTeX
│ ├── manuscript_diff.tex # Change-tracked version
│ └── manuscript.pdf # Output PDF
│
├── 02_supplementary/ # Supplementary materials
│ ├── contents/ # Supplementary content sections
│ │ ├── supplementary_methods.tex
│ │ ├── supplementary_results.tex
│ │ ├── figures/ # Supplementary figures
│ │ └── tables/ # Supplementary tables
│ ├── archive/ # Version history (gitignored)
│ ├── supplementary.tex # Compiled LaTeX
│ └── supplementary.pdf # Output PDF
│
├── 03_revision/ # Revision response letter
│ ├── contents/ # Reviewer responses
│ │ ├── editor/ # E_01_comments.tex, E_01_response.tex
│ │ ├── reviewer1/ # R1_01_comments.tex, R1_01_response.tex
│ │ └── reviewer2/ # R2_01_comments.tex, R2_01_response.tex
│ ├── archive/ # Version history (gitignored)
│ ├── revision.tex # Compiled LaTeX
│ └── revision.pdf # Output PDF
│
├── config/ # Configuration files
│ └── config_manuscript.yaml # Citation style, engine settings
│
└── scripts # Compilation scripts
├── containers/ # Container image builds (Apptainer/Singularity)
├── installation/ # Environment setup and dependency installation
├── maintenance/ # Repository maintenance (usage, update, demos)
├── powershell/ # Windows PowerShell scripts
├── python/ # Python utilities
└── shell/ # Core compilation scripts
Features
Details
| Feature | Description |
|---|---|
| Separated Files | Modular sections (abstract, intro, methods, results, discussion) |
| Built-in Templates | Pre-configured manuscript, supplementary materials, and revision |
| Bibliography | Multi-file with auto-deduplication, 20+ citation styles |
| Assets | Parallel figure/table processing (PNG, PDF, SVG, Mermaid, CSV) |
| Multi-Engine | Auto-selects best engine (Tectonic 1-3s, latexmk 3-6s, 3-pass 12-18s) |
| Cross-Platform | Linux, macOS, WSL2, Docker, Singularity, HPC clusters |
Usage
PDF Compilation
# Basic compilation
./scripts/shell/compile_manuscript.sh # Manuscript
./scripts/shell/compile_supplementary.sh # Supplementary
./scripts/shell/compile_revision.sh # Revision letter
# Performance options
./scripts/shell/compile_manuscript.sh --draft # Fast single-pass
./scripts/shell/compile_manuscript.sh --no-figs # Skip figures
./scripts/shell/compile_manuscript.sh --no-tables # Skip tables
./scripts/shell/compile_manuscript.sh --no-diff # Skip diff generation
# Engine selection
./scripts/shell/compile_manuscript.sh --engine tectonic # Fastest
./scripts/shell/compile_manuscript.sh --engine latexmk # Standard
./scripts/shell/compile_manuscript.sh --engine 3pass # Most compatible
# Development
./scripts/shell/compile_manuscript.sh --watch # Hot-reload on file changes
./scripts/shell/compile_manuscript.sh --clean # Remove cache
Figures
-
Place media files in
01_manuscript/contents/figures/caption_and_media/:01_example_figure.png 01_example_figure.tex # Caption file -
Caption file format (
01_example_figure.tex):%% Figure caption \caption{Your figure caption here. Explain panels (A, B, C) if applicable.} \label{fig:example_figure_01}
-
Supported formats: PNG, JPEG, PDF, SVG, TIFF, Mermaid (.mmd)
-
Figures auto-compile and include in
FINAL.tex
Tables
-
Place CSV + caption in
01_manuscript/contents/tables/caption_and_media/:01_example_table.csv 01_example_table.tex # Caption file -
CSV auto-converts to LaTeX table format
-
Caption file format (
01_example_table.tex):%% Table caption \caption{Your table caption. Define abbreviations used.} \label{tab:example_table_01}
References
Organize references in multiple .bib files - they auto-merge with deduplication:
00_shared/bib_files/
├── methods_refs.bib # Method-related references
├── field_background.bib # Background literature
└── my_papers.bib # Your own publications
Change citation style in config/config_manuscript.yaml:
unsrtnat(numbered, order of citation)plainnat(numbered, alphabetical)apalike(author-year, APA style)IEEEtran(IEEE format)naturemag(Nature style)
Installation
Python Package (MCP Server)
# Install from PyPI
pip install scitex-writer
# Verify installation (CLI or Python module)
scitex-writer --version
python -m scitex_writer version
# Check MCP setup
scitex-writer mcp doctor
python -m scitex_writer mcp doctor
# Start MCP server
scitex-writer mcp start
python -m scitex_writer mcp start
Add to Claude Desktop config (~/.config/Claude/claude_desktop_config.json):
Option 1: CLI command
{
"mcpServers": {
"scitex-writer": {
"command": "scitex-writer",
"args": ["mcp", "start"]
}
}
}
Option 2: Python module
{
"mcpServers": {
"scitex-writer": {
"command": "python",
"args": ["-m", "scitex_writer", "mcp", "start"]
}
}
}
Ubuntu/Debian
sudo apt-get install texlive-latex-extra latexdiff parallel imagemagick ghostscript
macOS
brew install texlive latexdiff parallel imagemagick ghostscript
HPC / Containers
# Module system
module load texlive latexdiff parallel
# Docker
docker run -v $(pwd):/work scitex-writer
# Singularity/Apptainer
singularity run scitex-writer.sif
Documentation
Details
| Guide | Description |
|---|---|
| Installation | Setup for all environments |
| Quick Start | Common workflows |
| Content Creation | Writing manuscripts |
| Bibliography | Reference management |
| Architecture | Technical details |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file scitex_writer-0.1.0.tar.gz.
File metadata
- Download URL: scitex_writer-0.1.0.tar.gz
- Upload date:
- Size: 2.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.0rc1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
22f90487595333ee703dc1b5950a92e0c5af86b4d5cb7295f7f81de5e88dccd4
|
|
| MD5 |
f93ce78dd1dafe07075c4378eea360bf
|
|
| BLAKE2b-256 |
07cc38d6f25e03d280f76b3af97a7deafb2ef0d41bd35b0665c6b784a4c974bf
|
File details
Details for the file scitex_writer-0.1.0-py3-none-any.whl.
File metadata
- Download URL: scitex_writer-0.1.0-py3-none-any.whl
- Upload date:
- Size: 20.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.0rc1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
054f0e2abdce69e1f4f01943263189cd7137e7efd4ad61701da32a9558c35a50
|
|
| MD5 |
bbd58f74273b4aad2c3ee89dbf2feb88
|
|
| BLAKE2b-256 |
c996431cfa9d9a3c785b233ea93bc35dd64425802a88f4a3e5be2bf7c5d1d104
|