How to Write a Lab/Engineering Report in LaTeX
A LaTeX lab report uses sections for aim, method, results with tables and figures, and references. Copy this template and checklist to write reports fast.
A LaTeX lab or engineering report uses the article class with sections for the aim, method, results, and references. The structure mirrors the scientific method: state what you tested, how, what you measured (with tables and figures), and what it means. Below is a complete template plus a submission checklist that earns marks on formatting alone.
1. The lab report template
\documentclass[11pt, a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{siunitx} % units and numbers
\usepackage{amsmath}
\usepackage[style=numeric]{biblatex}
\usepackage{hyperref}
\addbibresource{refs.bib}
\title{Measuring the Acceleration Due to Gravity}
\author{Student Name \\ Course / Group}
\date{\today}
\begin{document}
\maketitle
\begin{abstract}
A one-paragraph summary of the experiment and key result.
\end{abstract}
\section{Aim}
\section{Theory}
\section{Method}
\section{Results}
\section{Discussion}
\section{Conclusion}
\printbibliography
\end{document}
2. The sections markers expect
| Section | Content | |---|---| | Aim / Objective | One sentence: what you set out to measure | | Theory | Governing equations, defined symbols | | Method | Apparatus and procedure, reproducibly | | Results | Tables, plots, and the headline number | | Discussion | Error sources, comparison to theory | | Conclusion | Did you meet the aim? |
3. Numbers and units done right
The siunitx package is essential for any quantitative report:
The measured value was \SI{9.78 \pm 0.05}{\meter\per\second\squared}.
In tables, the S column aligns every value on the decimal point — see the tables guide for the full column reference.
4. Results: tables, plots, and equations
Present data in booktabs tables, plot it with pgfplots so the chart matches your fonts (see TikZ diagrams), and typeset governing equations with the math equations guide. Reference every float with \label and \ref — see cross-referencing.
5. Submission checklist
- [ ] Title block with name, course, date
- [ ] Every figure and table captioned and referenced
- [ ] Units via
siunitx, decimals aligned - [ ] Code in an appendix via
listings— see code listings - [ ] References auto-formatted, not typed by hand
→ Write and compile your report with lab partners in real time in LetX, from a ready report template.
Written by Shihab Shahriar Antor — AI Engineer & Founder of Shahriar Labs, maker of LetX.
Frequently Asked Questions
Should a lab report use the article or report class?
Use the article class for a typical lab report of a few to a dozen pages, since it gives you \section without forcing chapter-style page breaks. Reserve the report class for long technical reports with distinct chapters and a separate title page. The article class with a \maketitle title block, an abstract, and numbered sections covers the structure most engineering and science courses expect.
How do I present numerical results and uncertainties cleanly?
Use the siunitx package. It typesets units correctly with \SI{9.81}{\meter\per\second\squared}, aligns numbers on the decimal point in tables with the S column type, and formats uncertainties as \SI{2.50(5)}{\volt}. This keeps every measurement consistent and is the standard in physics and engineering reports, where mixing unit styles by hand is both error-prone and penalized.
How do I include code or data-processing scripts in a report?
Use the listings package for syntax-highlighted code with \lstinputlisting{analysis.py}, which pulls the file in directly so the report always shows the current script. For prettier highlighting, minted (which calls Pygments and needs the -shell-escape flag) is an alternative. Putting long code in an appendix and referencing key lines in the body keeps the results section readable.