Welcome to the repository for the Northeastern University Wireless Club LaTeX Workshop. This repository contains the slide deck and related materials used for our LaTeX Workshop.
A precompiled PDF of the slide deck is available in the Releases section for quick viewing.
This repository is primarily maintained by the Wireless Club Workshop Team.
The public can view the precompiled slide deck, but local compilation is primarily intended for officers. Successful compilation requires invoking the --shell-escape flag during build, as the source uses it to execute a Git command that retrieves the current commit hash for the footer.
To compile successfully, you must have a local clone of the repository that includes the .git directory. The build process depends on this metadata to parse the Git commit head through the \iexec command.
If you only download main.tex or a ZIP archive from GitHub, the .git directory will be missing and the version hash in the footer will not render correctly. In that case, you can still compile the slides by creating your own repository or removing the versioning command from the footer.
Officers with repository access can clone and compile directly. External users would need to fork or create their own repository to do the same.
To compile the slide deck locally, make sure you have:
- A LaTeX distribution such as TeX Live, MiKTeX, or MacTeX
- The
mintedpackage (requires Python and Pygments; compile with the--shell-escapeflag) - A LaTeX editor such as VS Code with the LaTeX Workshop extension, TeXstudio, or TeXShop
This presentation cannot be built online (such as on Overleaf) because it needs the --shell-escape flag, which allows LaTeX to execute external commands.
To my knolwedge, Overleaf does not support user projects that invoke shell commands during compilation.
The --shell-escape flag is needed because of the following command defined in the source:
\usepackage{iexec}
\newcommand{\gitAbbrevHash}{\iexec{git rev-parse --short HEAD}}The iexec package runs the system command git rev-parse --short HEAD to automatically insert the current commit hash into the footer.
This requires both Git and a repository clone with its .git directory intact.
If you download only main.tex without the .git folder, the command will not return anything, and the “Version” field in the footer will be blank.
-
Clone the repository
-
Compile using
pdflatex(or any compiler) with the shell escape flagpdflatex --shell-escape main.tex
If you are using VS Code with LaTeX Workshop, make sure the
--shell-escapeflag is included in your build recipe.I personally have only ever compiled this slide deck with pdflatex, so I cannot speak for lualatex or any otehr compilers.
-
Compile twice
The slide deck uses the
lastpagepackage to display the total number of pages in the footer:\usepackage{lastpage} Version: \gitAbbrevHash{} \hspace{1em} \insertpagenumber/\pageref{LastPage}
LaTeX requires two compilation passes to correctly resolve cross-references such as
\pageref{LastPage}so it can display the total number of pages in the footer:- The first pass writes the page reference information to an auxiliary file (
.aux), resulting in “??” placeholders. - The second pass reads this data and replaces the placeholders with the actual page count.
- The first pass writes the page reference information to an auxiliary file (
The frame count was previously used, but since introducing overlays into the slide deck (\onslide, \only) now the page numbers are used and introuced extra comoplexity.
nuwc-latex/
├── overleaf/ # Live Demo files, challenge file (pending time), and examples
├── .gitignore # Git ignore file
├── LICENSE # License file
├── main.tex # Main Beamer slide deck source file
└── README.md # This README file
- Blank version field in footer: You are compiling outside a Git repository or missing the
.gitdirectory. You eitehr need to be an officer with push access or create your own Git repo. - Error's mentioning shell escape Re-run compilation with the
--shell-escapeflag. - Page number shows “??”: Run LaTeX a second time to resolve references.
If you have any questions or feedback, please reach out:
- Contributor's Email: elarbi.m@northeastern.edu
- Workshop Email: workshops@nuwireless.org
- Club Website: https://nuwireless.org
This project is licensed under the
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.