Welcome to the Research Paper Starter Template! This repository is designed to streamline the workflow of writing academic papers (specifically targeted at IEEE conferences/journals, but adaptable) while managing the associated experimental code.
It provides a clean separation of concerns:
code/: For your Python scripts, Jupyter notebooks (.ipynb), and experimental data.paper/: For your LaTeX manuscript, modularized for easy collaboration and maintenance.
- Modular LaTeX Structure: The main paper is split into logical sections (
introduction.tex,methodology.tex, etc.) in thepaper/sections/folder. - Cross-Platform Build Script: A Python-based build script (
paper/build.py) that handles the full LaTeX compilation cycle (pdflatex->bibtex->pdflatex) automatically. Works on Windows, Linux, and macOS. - Smart Compilation: The build script checks if your PDF is locked (open in a viewer) and waits for you to close it before retrying, preventing common write errors.
- Clean Repository: configured
.gitignoreto keep your repo free of LaTeX build artifacts (.aux,.log, etc.).
.
├── code/ # 🐍 Experimental Code
│ ├── main.py # Entry point for your experiments
│ ├── pyproject.toml # Python project dependencies
│ └── ...
│
├── paper/ # 📝 LaTeX Manuscript
│ ├── main.tex # Main abstraction file (inputs other sections)
│ ├── references.bib # Bibliography file
│ ├── build.py # 🛠️ Build utility
│ ├── generated/ # (Optional) Figures generated by code
│ └── sections/ # Content modules
│ ├── abstract.tex
│ ├── introduction.tex
│ ├── methodology.tex
│ └── ...
│
└── README.md # This file
- Python 3.x: Required for the build script and experimental code.
- LaTeX Distribution:
Navigate to paper/sections/ and edit the individual .tex files.
sections/introduction.texsections/methodology.tex- etc.
The main.tex file acts as the skeleton. You mostly won't need to touch it unless you are adding new packages or changing the overall layout.
Forget about complex terminal commands. We have a script for that.
- Open your terminal in the project root.
- Run the build script:
python paper/build.py
- The script will:
- Check if
main.pdfis locked/open. - Run
pdflatex(generation 1). - Run
bibtex(citation linking). - Run
pdflatextwice more (cross-reference resolution). - Output the final
main.pdf.
- Check if
The code/ directory is a standard Python project.
- Define dependencies in
pyproject.toml. - Place your Jupyter notebooks and scripts here.
- (Optional) configure your code to save generated plots/figures directly to
../paper/generated/so your paper updates automatically when you rerun experiments!
- Braincore
- Eric Julianto
- Dian Alhusari
- Safrizal Ardana Ardiyansa
Happy Researching! 🎓