scitex.ai Β· pip install scitex-writer
---
**LaTeX compilation system for scientific manuscripts with automatic versioning, diff generation, and cross-platform reproducibility.**
Part of the [SciTeX](https://scitex.ai) ecosystem β empowers both human researchers and AI agents.
## π¬ Demo
π Demo prompt and progress report ([org](examples/scitex-writer-v2.2.0-demo.org) | [pdf](examples/scitex-writer-v2.2.0-demo.pdf)) | [Manuscript output](examples/scitex-writer-v2.2.0-demo-manuscript.pdf) | [Revision output](examples/scitex-writer-v2.2.0-demo-revision.pdf)
## π¦ Installation
```bash
# LaTeX dependencies (Ubuntu/Debian)
sudo apt-get install texlive-latex-extra latexdiff parallel imagemagick ghostscript
# LaTeX dependencies (macOS)
brew install texlive latexdiff parallel imagemagick ghostscript
# Python package + MCP server
pip install scitex-writer
```
## Quick Start
```bash
git clone https://github.com/ywatanabe1989/scitex-writer.git my-paper
cd my-paper && make manuscript # or: ./compile.sh manuscript
```
## Four Interfaces
| Interface | For | Description |
|-----------|-----|-------------|
| π **Shell/Make** | Direct compilation | `make manuscript`, `./compile.sh` |
| π **Python API** | Human researchers | `import scitex_writer as sw` |
| π₯οΈ **CLI Commands** | Terminal users | `scitex-writer compile`, `scitex-writer bib` |
| π§ **MCP Tools** | AI agents | 28 tools for Claude/GPT integration |
π Shell Scripts / Make
```bash
# Make commands (recommended)
make manuscript # Compile manuscript
make supplementary # Compile supplementary
make revision # Compile revision
make all # Compile all documents
make clean # Remove build artifacts
# Shell scripts (direct)
./compile.sh manuscript --draft # Fast single-pass
./compile.sh manuscript --no-figs # Skip figures
./compile.sh manuscript --no-tables # Skip tables
./compile.sh manuscript --watch # Hot-reload
```
π Python API
**Compile** β Build PDFs
```python
import scitex_writer as sw
sw.compile.manuscript("./my-paper") # Full compile
sw.compile.manuscript("./my-paper", draft=True) # Fast draft mode
sw.compile.supplementary("./my-paper")
sw.compile.revision("./my-paper", track_changes=True)
```
**Tables/Figures/Bib** β CRUD Operations
```python
# Tables
sw.tables.list("./my-paper")
sw.tables.add("./my-paper", "results", "a,b\n1,2", "Results summary")
sw.tables.remove("./my-paper", "results")
# Figures
sw.figures.list("./my-paper")
sw.figures.add("./my-paper", "fig01", "./plot.png", "My figure")
sw.figures.remove("./my-paper", "fig01")
# Bibliography
sw.bib.list_files("./my-paper")
sw.bib.add("./my-paper", "@article{Smith2024, title={...}}")
sw.bib.merge("./my-paper") # Merge + deduplicate
```
**Guidelines** β IMRAD Writing Tips
```python
sw.get_guideline("abstract")
sw.build_guideline("abstract", draft="Your draft...")
sw.list_guidelines() # ['abstract', 'introduction', 'methods', 'discussion', 'proofread']
```
**Prompts** β AI2 Asta
```python
from scitex_writer import generate_asta
result = generate_asta("./my-paper", search_type="related")
```
π₯οΈ CLI Commands
```bash
scitex-writer --help # Show all commands
# Compile - Build PDFs
scitex-writer compile manuscript # Compile manuscript
scitex-writer compile manuscript --draft # Fast single-pass
scitex-writer compile supplementary # Compile supplementary
scitex-writer compile revision # Compile revision letter
# Bibliography - Reference management
scitex-writer bib list-files # List .bib files
scitex-writer bib list-entries # List all entries
scitex-writer bib get Smith2024 # Get specific entry
scitex-writer bib add '@article{...}' # Add entry
scitex-writer bib remove Smith2024 # Remove entry
scitex-writer bib merge # Merge and deduplicate
# Tables - CSVβLaTeX management
scitex-writer tables list # List tables
scitex-writer tables add results data.csv "Caption"
scitex-writer tables remove results
# Figures - Image management
scitex-writer figures list # List figures
scitex-writer figures add fig01 plot.png "Caption"
scitex-writer figures remove fig01
# Guidelines - IMRAD writing tips
scitex-writer guidelines list # List available sections
scitex-writer guidelines abstract # Get abstract guidelines
scitex-writer guidelines abstract -d draft.tex # Build prompt with draft
# Prompts - AI2 Asta integration
scitex-writer prompts asta # Generate related papers prompt
scitex-writer prompts asta -t coauthors # Find collaborators
# MCP server management
scitex-writer mcp list-tools # List all MCP tools (markdown)
scitex-writer mcp doctor # Check server health
scitex-writer mcp installation # Show Claude Desktop config
scitex-writer mcp start # Start MCP server
```
π§ MCP Tools β 28 tools for AI Agents
Turn AI agents into autonomous manuscript compilers.
| Category | Tools | Description |
|----------|-------|-------------|
| project | 4 | Clone, info, PDF paths, document types |
| compile | 3 | Manuscript, supplementary, revision |
| tables | 5 | CSVβLaTeX, list/add/remove tables |
| figures | 5 | Convert, render PDF, list/add/remove |
| bib | 6 | List files/entries, CRUD, merge/dedupe |
| guidelines | 3 | List, get, build with draft |
| prompts | 1 | AI2 Asta prompt generation |
| usage | 1 | Project guide |
**Claude Desktop** (`~/.config/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"scitex-writer": {
"command": "scitex-writer",
"args": ["mcp", "start"]
}
}
}
```
β **[Full MCP tool reference](./docs/MCP_TOOLS.md)**
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
```bash
# 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
1. Place media files in `01_manuscript/contents/figures/caption_and_media/`:
```
01_example_figure.png
01_example_figure.tex # Caption file
```
2. Caption file format (`01_example_figure.tex`):
```latex
%% Figure caption
\caption{Your figure caption here. Explain panels (A, B, C) if applicable.}
\label{fig:example_figure_01}
```
3. Supported formats: PNG, JPEG, PDF, SVG, TIFF, Mermaid (.mmd)
4. Figures auto-compile and include in `FINAL.tex`
Tables
1. Place CSV + caption in `01_manuscript/contents/tables/caption_and_media/`:
```
01_example_table.csv
01_example_table.tex # Caption file
```
2. CSV auto-converts to LaTeX table format
3. Caption file format (`01_example_table.tex`):
```latex
%% 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:
```bash
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)
## Documentation
Details
| Guide | Description |
|-------|-------------|
| [Installation](docs/01_GUIDE_INSTALLATION.md) | Setup for all environments |
| [Quick Start](docs/01_GUIDE_QUICK_START.md) | Common workflows |
| [Content Creation](docs/01_GUIDE_CONTENT_CREATION.md) | Writing manuscripts |
| [Bibliography](docs/01_GUIDE_BIBLIOGRAPHY.md) | Reference management |
| [Architecture](docs/02_ARCHITECTURE_IMPLEMENTATION.md) | Technical details |
---
AGPL-3.0 Β· ywatanabe@scitex.ai