Convert your PROS Source Code into a Syntax Highlighted PDF! Great for Printing Hard Copies of your code base for your Engineering Notebook.
- Intelligent file selection
- Recursive file searching
- Cross Platform: Windows and *nix Support
- Flexible: works with a variety of code bases
- Colored code highlighting
- Project name detection
- Maintains clean project organization
- Endless custom formatting options using the Minted Tex Package
Print your code on standard 8.5" x 11" paper with one simple command!
Follow these steps to add this functionality to your project:
- create a
scriptsdirectory in the root of your PROS project - add the prosToMinted.py file to your
scriptsdirectory (All the dependencies come pre-installed with python3!)
Open the terminal on your computer and navigate to the project's root directory
Run python .\scripts\prosToMinted.py for Windows:
FOUND PROJECT FILE ↓
project.pros | <class 'pathlib.WindowsPath'>
Success! Find your zip at: docs/output.zip
Upload the zip directly to overleaf and let it compile into a PDF!
Run python3 scripts/prosToMinted.py for *nix:
FOUND PROJECT FILE ↓
project.pros | <class 'pathlib.PosixPath'>
Success! Find your zip at: docs/output.zip
Upload the zip directly to overleaf and let it compile into a PDF!
As the final line of each output message reads, output.zip should be uploaded to Overleaf where it can easily be compiled into a pdf. (You will have to create a free account first, if you do not already have one!) Once you have an account you can choose New Project > Upload Project and choose the output.zip file that was just created. If you would like to view a preview before downloading it as a pdf, you can press the left facing arrow at the very right of the screen to open the preview window. When you see the green recompile button at the top you can press it to see the updated pdf.
output.zip
The script builds a temporary folder and adds all the relevant .tex, *.c* and *.h* files. Once all the file are added, the folder is zipped in the docs directory and the temp folder is deleted. The *.c* and *.h* just embedded as paths in the .tex files. When overleaf compiles the .tex files the actual formatting is done. Since you have access to all the files in the zip you can make any modifications or adjustments in Overleaf to meet your formatting requirements. If you want to make permanent changes to how the .tex files are built, you can edit the python script to reflect those changes.
The script is designed to work with a wide variety of projects. However it is unrealistic to design it for any project structure. For that reason, it assumes your project follows two basic practices:
- keeping all your header (.h*) files in
include/ - keeping all your source (.c*) files in
src/
Subdirectories within either of those folders will work as expected. For example, include/my_lib/drive.h or src/my_lib/drive.cpp will be found and formatted.
v 0.2-beta -> v 1.0:
- only search for headers in
include/to prevent pulling cached files from.vscode/orcquery_cached_index/ - provide more useful output messages
- organize readme and add troubleshooting section
Here is the PDF generated from this PROS project

Tested and working on: Python 3.8.6 on macOS 10.15.7 & Python 3.7.0 on Windows 10
- Introduce VEXCode Pro V5 Support
- Display Git Information
- Customize Margins to Fit in Notebooks
- Specify Sections Snippets to Format
- Promote project organization by using specific folders
- Promote abstraction by automating as much as possible
- Provide accessibility for novices but allow growth for experts
Are you having issues getting setup? Do you have a suggestion for an improvement? Would you like to add a feature? You can message me on the vexforum at: _Colossus or on discord at: Udit#4398
Official PSU VEX-U Source Code
Vex Forum
MIT License