beginner's guide to using the Research Project Template
Quick Reference: Cheatsheet | Common Workflows | FAQ
This guide covers Levels 1-3 of the Research Project Template. for users who just want to write documents without programming.
By the end of this guide, you'll be able to:
- ✅ Set up the template on your computer
- ✅ Write and format professional documents
- ✅ Add equations and cross-references
- ✅ Generate publication-ready PDFs
- ✅ Customize project metadata
Estimated Time: 2-3 hours
- Basic computer skills
- Text editor (any will work)
- No programming knowledge required
- Quick Start
- Level 1: Write Your First Document
- Level 2: Add Equations and References
- Level 3: Basic Customization
- What to Read Next
-
Click "Use this template" on GitHub
-
Name your repository (e.g., "my-research-project")
-
Clone your new repository
git clone https://github.com/YOUR_USERNAME/your-repo-name.git cd your-repo-name
macOS:
# Install Homebrew if not already installed
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install system dependencies
brew install pandoc
brew install --cask mactex
# Install Python dependencies
pip install uv
uv syncUbuntu/Debian:
# Install system dependencies
sudo apt-get update
sudo apt-get install -y pandoc texlive-xetex texlive-fonts-recommended fonts-dejavu python3-pip
# Install Python dependencies
pip3 install uv
uv sync# Run the unified interactive menu and select Option 8 (Full Pipeline)
./run.sh
# Open the result (example project code_project)
open output/code_project/pdf/code_project_combined.pdf # macOS
xdg-open output/code_project/pdf/code_project_combined.pdf # Linux🎉 Success! You should see a professional PDF document.
Goal: Create professional documents without programming
Time: 30-45 minutes
The template provides pre-structured manuscript files in the manuscript/ directory:
projects/code_project/manuscript/
├── preamble.md # LaTeX styling (don't edit yet)
├── 01_abstract.md # Research overview
├── 02_introduction.md # Project introduction
├── 03_methodology.md # Methods and approach
├── 04_experimental_results.md # Results and findings
├── 05_discussion.md # Analysis
├── 06_conclusion.md # Summary
└── 99_references.md # Bibliography
-
Open the abstract file
vim projects/code_project/manuscript/01_abstract.md # Or use your preferred text editor -
You'll see:
# Abstract {#sec:abstract} This template demonstrates... -
Replace with your content:
# Abstract {#sec:abstract} This research investigates the impact of machine learning on climate prediction accuracy. We developed a novel ensemble method combining neural networks with traditional models... -
Save the file
-
Open the introduction
vim projects/code_project/manuscript/02_introduction.md
-
Add your content:
# Introduction {#sec:introduction} ## Background Climate change poses significant challenges... ## Motivation Current prediction methods have limitations... ## Objectives This research aims to: 1. Develop improved prediction models 2. Validate accuracy across multiple datasets 3. Provide actionable recommendations
-
Save the file
-
Run pipeline
# Core pipeline (ten stages by default: clean through copy outputs) uv run python scripts/execute_pipeline.py --project {name} --core-only # Or use unified interactive menu ./run.sh
-
View the result
open output/code_project/pdf/code_project_combined.pdf # After copy outputs: output/{name}/pdf/
What You Get:
- ✅ Professional formatting
- ✅ Automatic section numbering
- ✅ Table of contents
- ✅ Proper academic style
Continue editing other sections:
- Methodology (
03_methodology.md): Your research methods - Results (
04_experimental_results.md): Your findings - Discussion (
05_discussion.md): Analysis and interpretation - Conclusion (
06_conclusion.md): Summary and future work
After each major change, regenerate the PDF to see your progress.
Goal: Add mathematical equations and cross-references
Time: 45-60 minutes
For math within text, use dollar signs:
The quadratic formula $x = \frac{-b \pm \sqrt{b^2-4ac}}{2a}$ solves...For important equations you'll reference later:
\begin{equation}\label{eq:quadratic}
x = \frac{-b \pm \sqrt{b^2-4ac}}{2a}
\end{equation}Key Parts:
\begin{equation}- Start equation\label{eq:quadratic}- Unique name for referencing\end{equation}- End equation
To refer to an equation elsewhere:
Using the quadratic formula \eqref{eq:quadratic}, we can solve...| Symbol | LaTeX | Example |
|---|---|---|
| Fraction | \frac{a}{b} |
|
| Square root | \sqrt{x} |
|
| Superscript | x^2 |
|
| Subscript | x_1 |
|
| Sum | \sum_{i=1}^{n} |
|
| Integral | \int_0^1 |
|
| Greek letters | \alpha, \beta |
When creating a section heading, add a label:
# Methodology {#sec:methodology}
## Data Collection {#sec:data_collection}To refer to a section:
As described in Section \ref{sec:methodology}, we collected...
The data collection process (Section \ref{sec:data_collection}) involved...Even though you're not generating figures yet, you can reference existing ones:
\begin{figure}[h]
\centering
\includegraphics[width=0.8\textwidth]{../output/figures/example_figure.png}
\caption{Example visualization showing convergence behavior}
\label{fig:example}
\end{figure}
Figure \ref{fig:example} demonstrates the algorithm's performance.Figure Anatomy:
[h]- Place here (h = here, t = top, b = bottom)width=0.8\textwidth- 80% of text widthcaption{}- Description below figurelabel{}- Unique name for referencing
Here's a methodology section with equations and references:
# Methodology {#sec:methodology}
## Mathematical Framework
Our approach is based on the optimization problem:
\begin{equation}\label{eq:objective}
\min_{x \in \mathbb{R}^n} f(x) = \sum_{i=1}^{n} w_i \phi_i(x)
\end{equation}
where $w_i$ are weights and $\phi_i$ are basis functions.
## Algorithm
The iterative update follows:
\begin{equation}\label{eq:update}
x_{k+1} = x_k - \alpha_k \nabla f(x_k)
\end{equation}
As shown in Equation \eqref{eq:update}, we use gradient descent with
step size $\alpha_k$.
## Convergence Analysis
From equations \eqref{eq:objective} and \eqref{eq:update}, we can prove
convergence under standard assumptions (see Section \ref{sec:results}).Goal: Personalize your project
Time: 30-45 minutes
# Set your information
export AUTHOR_NAME="Dr. Jane Smith"
export AUTHOR_EMAIL="jane.smith@university.edu"
export AUTHOR_ORCID="0000-0001-2345-6789"
export PROJECT_TITLE="Impact of Machine Learning on Climate Prediction"
# Optional: Add DOI if published
export DOI="10.5281/zenodo.12345678"
# Generate with your metadata
uv run python scripts/execute_pipeline.py --project {name} --core-only-
Copy template
cp infrastructure/config/.env.template .env
-
Edit .env
vim .env
-
Add your information
AUTHOR_NAME="Dr. Jane Smith" AUTHOR_EMAIL="jane.smith@university.edu" AUTHOR_ORCID="0000-0001-2345-6789" PROJECT_TITLE="Impact of Machine Learning on Climate Prediction" DOI="" # Leave empty if not published yet
-
Source and build
source .env uv run python scripts/execute_pipeline.py --project {name} --core-only
What Gets Updated:
- ✅ PDF title page
- ✅ PDF metadata
- ✅ Author information
- ✅ Document properties
Note: This is optional and more advanced. Skip if you're satisfied with defaults.
The template uses manuscript/preamble.md for styling. You can modify:
- Colors: Change link colors, heading colors
- Fonts: Modify font families and sizes
- Spacing: Adjust line spacing and margins
- Headers/Footers: Customize page headers
Basic color customization:
-
Open preamble
vim projects/code_project/manuscript/preamble.md
-
Find color definitions (around line 97-103):
\definecolor{codebg}{RGB}{248, 248, 248} \definecolor{codeborder}{RGB}{200, 200, 200}
-
Add your colors:
\definecolor{myblue}{RGB}{0, 114, 178} \definecolor{mygreen}{RGB}{0, 158, 115}
-
Use in hyperlinks (around line 54-60):
\hypersetup{ colorlinks=true, linkcolor=myblue, citecolor=mygreen, ... }
See code_project/manuscript/preamble.md for the LaTeX preamble configuration.
-
Edit references.bib
vim projects/code_project/manuscript/references.bib
-
Add entries:
@article{smith2020climate, title={Machine Learning for Climate Prediction}, author={Smith, Jane and Doe, John}, journal={Nature Climate Change}, volume={10}, pages={123--130}, year={2020} } @book{jones2019ai, title={Artificial Intelligence in Environmental Science}, author={Jones, Alice}, publisher={Academic Press}, year={2019} }
-
Cite in manuscript:
Recent advances \cite{smith2020climate} demonstrate... For review, see \cite{jones2019ai}. -
Rebuild to see citations
uv run python scripts/execute_pipeline.py --project {name} --core-only
- Keep sections focused: One main idea per section
- Use clear headings: Help readers navigate
- Add labels consistently:
{#sec:descriptive_name} - Reference liberally: Connect ideas across sections
- Preview frequently: Regenerate PDF to see changes
| Mistake | Solution |
|---|---|
| Forgot section label | Add {#sec:name} after heading |
| Reference shows ?? | Check label spelling matches |
| Equation not numbered | Use \begin{equation}...\end{equation} |
| Figure not found | Check path is ../output/figures/ |
| PDF won't build | Run uv run python scripts/execute_pipeline.py --project {name} --core-only (includes cleanup) |
Most text editors:
- Save:
Ctrl+S(Linux/Windows) orCmd+S(macOS) - Find:
Ctrl+ForCmd+F - Replace:
Ctrl+HorCmd+Option+F
Vim users:
- Save and quit:
:wq - Quit without saving:
:q! - Search:
/searchterm
Problem: PDF generation fails
Solutions:
-
Check pandoc installed:
pandoc --version -
Check xelatex installed:
xelatex --version -
Clean and rebuild:
uv run python scripts/execute_pipeline.py --project {name} --core-only
Problem: ModuleNotFoundError: No module named 'matplotlib'
Solutions:
- Ensure matplotlib is in core dependencies (not optional):
# root pyproject.toml [project] dependencies = ["matplotlib>=3.7"] # Not in optional-dependencies
- Run
uv syncto install
Problem: Project doesn't appear in menu
Solutions:
- Ensure
manuscript/config.yamlexists - Check project is in
projects/(notprojects_archive/)
Problem: Cross-references display as ??
Solutions:
-
Check label exists: Search for
{#sec:labelname} -
Check spelling matches exactly
-
Rebuild (references need multiple passes):
uv run python scripts/execute_pipeline.py --project {name} --core-only
Problem: Equations display as plain text
Solutions:
- Check equation environment syntax
- Use
\begin{equation}not$$ - Check for unescaped special characters
- Rebuild PDF
Problem: Figure or reference not found
Solutions:
- Check relative path:
../output/figures/name.png - Verify file exists:
ls projects/{name}/output/figures/ - Run pipeline (includes script execution):
uv run python scripts/execute_pipeline.py --project {name} --core-only
Add your own figures and data → Read Figures and Analysis Guide (Levels 4-6)
Learn test-driven development → Read Testing and Reproducibility Guide (Levels 7-9)
Understand the system architecture → Read Architecture Guide
See real-world examples → Read Examples Showcase
Find answers to common questions → Read FAQ
- Quick Start Cheatsheet - One-page reference
- Common Workflows - Step-by-step recipes
- Glossary - Terms and definitions
- Markdown Template Guide - formatting reference
- Documentation Index - All documentation
After completing this guide, you should be able to:
- Install the template and dependencies
- Edit manuscript sections
- Add mathematical equations with labels
- Create cross-references between sections
- Generate professional PDFs
- Customize project metadata
- Add bibliography entries
Congratulations! You've mastered the basics. Ready for more? Check out Figures and Analysis.
Need help? Check the FAQ or Common Workflows
Quick Reference: Cheatsheet | Glossary