LaTeX manuscript compilation system for scientific documents
Project description
SciWriter
LaTeX manuscript compilation with CLI and MCP server integration.
Quick Start
Shell Scripts (Recommended)
git clone https://github.com/ywatanabe1989/sciwriter.git my-paper
cd my-paper
./scripts/shell/compile_manuscript.sh
Python CLI
pip install sciwriter
sciwriter compile ./my-paper # Compile manuscript
sciwriter compile ./my-paper -t suppl # Compile supplementary
sciwriter status ./my-paper # Check dependencies
MCP Server
Add to Claude Desktop config (~/.config/claude/claude_desktop_config.json):
{
"mcpServers": {
"sciwriter": {
"command": "python",
"args": ["-m", "sciwriter.mcp_server"]
}
}
}
Tools: compile, status, clean, get_project_info
Features
Features
- Templates - Manuscript, supplementary material, and revision letter
- Modular LaTeX - Section-separated .tex files
- MCP Server - Claude Desktop integration
- Media Support - Figures, tables, and citations
- Citation Management - Multi-file .bib with auto-merge
- Citation Styles - 20+ journal formats (Nature, IEEE, APA, etc.)
- Auto Counts - Words and media per section
- Diff Visualization - Track changes between versions
- Git Friendly - Auto-archive with version history
Installation
Python Package
pip install sciwriter
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
Project Structure
Directory Layout
my-paper/
├── 00_shared/ # Shared resources (bibliography, styles)
│ ├── bib_files/ # Multiple .bib files (auto-merged)
│ └── latex_styles/ # Common LaTeX configurations
├── 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 (auto-generated)
│ ├── manuscript.tex # Compiled LaTeX
│ └── manuscript.pdf # Output PDF
├── 02_supplementary/ # Supplementary materials
├── 03_revision/ # Revision response letter
└── scripts/shell/ # Compilation scripts
PDF Compilation
Basic Commands
./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 Mode
./scripts/shell/compile_manuscript.sh --watch # Hot-reload on file changes
./scripts/shell/compile_manuscript.sh --clean # Remove cache
Content Management
Bibliography
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
Citation Styles (set in config/config_manuscript.yaml):
unsrtnat- numbered, order of citationplainnat- numbered, alphabeticalapalike- author-year, APA styleIEEEtran- IEEE formatnaturemag- Nature style
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)
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}
Documentation
Guides
| Guide | Description |
|---|---|
| Installation | Setup for all environments |
| Quick Start | Common workflows |
| Content Creation | Writing manuscripts |
| Bibliography | Reference management |
| Architecture | Technical details |
AI Prompts
Writing assistance prompts in docs/prompts/:
abstract.md- Abstract writing guidelinesintroduction.md- Introduction structuremethods.md- Methods section formatdiscussion.md- Discussion frameworkproofreed.md- Proofreading checklist
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 sciwriter-0.1.4.tar.gz.
File metadata
- Download URL: sciwriter-0.1.4.tar.gz
- Upload date:
- Size: 104.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0986f120367a879ab4824a79fa999440377034b9e51ce9ee42f7c904a37ae028
|
|
| MD5 |
9f44bccbe2d6c8de6e9ab849bdcb0a33
|
|
| BLAKE2b-256 |
b15b98511b305a2278ec9e1e4a413afd6631b8b94e563eb2b4d2141252cf275c
|
File details
Details for the file sciwriter-0.1.4-py3-none-any.whl.
File metadata
- Download URL: sciwriter-0.1.4-py3-none-any.whl
- Upload date:
- Size: 144.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed9c2fa225fcf7dc0f805443f9280f5cd315013066034d8a81f6aa025fc20af0
|
|
| MD5 |
ea33345d22d9c1f2232d0c76202f9381
|
|
| BLAKE2b-256 |
ba8edb1519496a750698e97b9549496cbf835d2e1fa9046c4d108c9b450a0f9f
|