As of Spring 2025, this LaTeX template is the one officially supplied by the Georgia State University (GSU) College of Arts & Sciences (CAS). It was first written in 2006. This online repository hosts more up-to-date versions of its included packages, as well as incorporates new ones, while preserving all of the formatting initially defined by the class file. Although certain choices in this template were made specifically for Neuroscience Institute dissertations (e.g. citation style), any and all of these properties can be customized to the conventions of your field.
This template was developed on a Windows 10 machine using:
- TeX Live 2024
- VS Code
v1.96.4
- Perl
v5.40.0
- Git
v2.47.1
This repository was specifically designed for a Git + VS Code workflow using the LaTeX Workshop extension. The main motivations for implementing the template in this way were:
- It is entirely open-source
- It enables and encourages rigorous version control (VC)
- It employs a user-friendly, highly customizable text editor (VS Code) with great VC integration and text auto-completion functionalities (often lacking in default LaTeX editors, e.g. TeXworks).
Version controlling with Git is by no means required, but is recommended for documents of this size, and compatibility with branching.
If distribution size is no concern for you, install the TeX Live full distribution (~9 GB). It will take a while, but it comes with everything, meaning you have it all on your local machine.
This gives you:
- The easiest configuration for adding new packages to your document whenever you want
- The most portability to work completely offline, and
- The full range of local and remote version control capabilities (e.g. branching) with Git
You pay for that level of control with computer memory. And the LaTeX badge in the procedure below will take you to this option.
If you need to be conservative with your computer's storage space (we've all hammered out a thesis on a 5-year old laptop on its last legs), then I recommend installing TinyTex, compatible with Mac, Windows, and Linux. I include a procedure for a very lean distribution (~650 MB).
You pay for this compactness with more complexity, and will at some point or another need to become comfortable using only one command in the terminal — tlmgr
— to install missing pieces if necessary.
I provide a required_packages.txt
file and some suggested installation routines (see Step 4 below).
This, also being a local installation, is compatible with full Git functionality.
Takeaway: Use a local installation of a LaTeX distribution if offline work and version control are important to you.
If version control is not important to you, and you're looking for a user-friendly, cloud-based LaTeX alternative that you can easily collaborate with colleagues on real-time, this set-up should be fully compatible with Overleaf.
Just move all files from the Styles directory to the main project directory where main.tex
is.
Drawbacks: You forfeit autonomy when you opt for cloud-based over local.
- Git integration through Overleaf directly requires a premium subscription. You may be able to version control locally using command line Git without an Overleaf subscription, but I have not pursued this avenue.
- You will only be able to work on this document with an internet connection. If Overleaf's servers are down, you cannot write.
Read these steps before going forward with any of the above icons linked to installations. The order of the badges at the top is the best order to install these softwares in.
Download and extract this repository as .zip file to a directory of your choosing (probably your Documents
folder, or the like).
We'll come back to this directory in Step 4.
Install VS Code using the link in the badge above. Alternatively, if you are GSU student/faculty/staff, the Software Center for GSU networked machines also supplies VS Code — while it is ultimately open-source, sometimes it's best to go through the Software Center when available.
All software here should be added to your PATH
environment variables, which allows you to run programs at the command line from any directory under your User folder (e.g. C:/Users/myName/
, for a Windows machine).
Visit these links to learn how to add programs to your PATH
environment variables [Windows | MacOS]
If version control is of interest to you (i.e. Git), now would be the time to install it. I specify this after VS code installation because you can then specify VS Code as your default editor during Git install.
Perl is a useful scripting language that you'll never have to use here explicitly.
The reason for installing it is this template (as I've configured it) specifies latexmk
as the document compilation mechanism, which itself is a Perl script.
The decision table below indicates which Perl installer you should use depending on your admin rights status:
Admin Rights | Yes | No |
---|---|---|
Perl Installer | MSI or Portable zip | Portable zip |
If you have admin rights, you can use either the MSI installer — if you want it to be available to any User on the system — or the Portable installer for a custom directory that will be specific to your User.
NOTE: Installing to your system (MSI) will automatically add the variables to the PATH
.
If you don't have admin rights on your computer, select the Portable zip installer in the Strawberry Perl badge link above and extract it to a new folder in your user directory (e.g. C:/Users/myName/strawberry/
).
Add the following Perl directories (these will depend on your installer method)
C:/Users/myName/strawberry/perl/bin
C:/Users/myName/strawberry/perl/site/bin
, andC:/Users/myName/strawberry/c/bin
to your PATH
by editing environment variables for your user account, as linked in Step 1
This step may take anywhere from 30 minutes to a few hours, depending on which LaTeX installation method you landed on after Determining the distribution for you.
Operating System | Windows | MacOS | Linux |
---|---|---|---|
TeX distribution | TeX Live or TinyTex | TinyTex or MacTeX | TinyTex |
For a lean distribution (~650 MB), go with TinyTex, linked in Option 2:
- Downloading the
install-bin-windows.bat
referenced in their docs (for Windows) to the basicDownloads
directory then double-clicking will automatically create a the TinyTex install directory inUser/AppData/Roaming
and add it to the userPATH
(bearing in mind you may not have admin rights). Follow the respective steps in their linked docs for Mac or Linux.
For a larger distribution, see the TeX Live options linked in the LaTeX badge above:
- Distributions installed this way, however, will NOT automatically be added to the
PATH
, so their binaries (typically inside ofC:/Users/myName/texlive/2024/bin/windows
) must also be added using the Windows and Mac specific methods from Step 1
NOTE:
- TeX Live is the strongly recommended LaTeX distribution by developers of the VS Code LaTeX Workshop extension, and all of the links here provide TeX Live dists. If you really want to use MiKTeX, I leave that up to you.
To verify your distribution is on the path, you can search cmd
in the Windows Search bar, then run:
echo %PATH%
or in a MacOS/Linux terminal:
echo $PATH
The below tlmgr
commands are common across all OS, and are worth knowing for i) verifying that tlmgr
(i.e. TeX Live) is available on the PATH
, and ii) later package management when using LaTeX.
Function | Command |
---|---|
tlmgr accessibility |
tlmgr --version |
package installation | tlmgr install package |
package location | kpsewhich package.sty |
package update | tlmgr update --all |
manager update | tlmgr update --self |
As mentioned in Step 0, we now turn back to the directory where you extracted this template to.
This step runs a useful terminal command that installs remaining dependencies listed in required_packages.txt
, which aren't supplied by our Styles subdirectory.
NOTE:
- If you installed a larger TeX Live distribution, you may not need the below commands. Though running them won't do any harm.
- If you went with the compact TinyTex distribution, then you will need the below commands.
Pull up your cmd
terminal, and navigate to your extracted template directory.
For example, on a Windows machine (may autocomplete with backslashes) and if you're inside of your user folder (C:/Users/myName
)
cd Documents/extractedDir
Then run the below terminal command from inside the extracted template project directory. This installs other standalone package requirements:
for /f "delims=" %i in (required_packages.txt) do tlmgr install %i
For MacOS/Linux, you can try these bash
commands from the project dir:
while read package; do
tlmgr install "$package"
done < required_packages.txt
Or for loop:
for package in $(cat required_packages.txt); do
tlmgr install "$package"
done
Now that you have Strawberry Perl, your preferred LaTeX distribution, VS Code, and Git (Optional), and all are on your user PATH
, proceed with installing the LaTeX Workshop extension in VS Code:
- Open VS Code by right-clicking in a blank space of your template subdirectory in File explorer/Finder and click "Open with Code".
- In VS Code, click Extensions in the far left-side pane, search for
LaTeX Workshop
, then install it.
Once the extension is installed, open the file main.tex
and you should be able to compile (play button in the top right corner)
Happy TeX'ing!
The gsudiss.cls
class file defines macros and commands to structure different page types (e.g. the abstract, table of contents, figure, table, and abbreviation lists) programmtically, automating the format of your document. Both class .cls
and pre-supplied style .sty
files are located in the Styles subdirectory of this template.
The settings.json
file in .vscode defines the VS code settings you'd like to use.
May be helpful to review official documentation.
This file is intended to be project-specific, and a wide variety of LaTeX Workshop compilation rules and recipes can be defined here.
The provided settings are rather minimalist, explicitly defining the citation backend and build recipe (biblatex
, and latexmk
, respectively), as well as some auto-cleaning of auxiliary files and "synctex" for snapping PDF interactions to location in code, and vice versa from code to PDF.
The core design of this repository is as a multi-file project, where individual Chapters have their own directory, and each section has its own .tex
file which are incorporated in the chapter file (e.g. Chapter_XX.tex
) using \subfile{}
commands.
Structuring the project in this way confers a few advantages, namely:
- The ability to work on and view specific sections in isolation without compiling/viewing the entire document.
- The ability to version control (edit, commit, and push) individual section files separately, giving them their own history.
This design is also favorable for liberal use of git branches
, allowing you to keep track of different "states" of the work.
While the main
(or master
) branch of your repository should always have the most current, "ready to publish" state, creation of separate branches
allow you to prepare other versions (e.g. advisor-edits
, or journal-submission
) that you can maintain and develop in isolation without affecting the main body of work.
Another great feature of a multi-file structure is that we implement the subfiles
package, which allows us to compile individual chapter sections directly.
This gives us the option to do more focused work on a specific section (since dissertation sections can be quite long) without worrying about compiling or looking at the entire document.
NOTE:
- If you're compiling individual sections, one useful utility command for keeping your Chapters directory clean of auxiliary files is to run the below snippet in your VS Code integrated powershell terminal (you'll know your terminal is powershell by navigating over to "Terminal" in the debug console at the very bottom, and seeing
PS
beside your project's absolute path) - This clean-up routine clears out LaTeX compilation artifacts
gci .\Chapters -r *.tex | % { pushd $_.Directory; latexmk -C $_; popd }
This repository incorporates a git-guides submodule, a small collection of markdown cheatsheets to reference while getting comfortable with Git.
If you have a suggestion for a new git guide that would cover operations currently not present, try having Claude or ChatGPT generate one for you in Markdown (.md
), then make a pull request on the git-guides repo.
If you've worked with LaTeX before, you know that citation formatting can be one of the largest, most painful hurdles. Fortunately, you only have to solve it once. And here, it already is.
The default style implemented here is superscripted citations using the Springer Nature style (biblatex
, with biber
backend), where article titles follow sentence casing.
This choice was a personal preference based on the style's compactness (and the fact that it doesn't seem to be strictly specified by CAS in Neuroscience dissertations I've seen).
Citation style can be changed by modifying the arguments to \usepackage[...]{biblatex}
in main.tex
.
This part will take some research — there is no "one size fits all" procedure for getting the citation style you want.
You may have to change the citation backend, you may have to download alternative .bst
files.
YMMV.
The important thing is that you land on something that meets your requirements and it compiles correctly.
I recommend creating your bibliography in Zotero, an open-source reference manager (also available in GSU's Software Center), using the Better BibTeX (BBT) for Zotero plugin. This extension is better optimized for text-based toolchains such as LaTeX and Markdown.
Be careful using the -pvc
(preview continuous) flag in the latexmk
settings toolchain.
It creates a persistent Perl daemon that watches your files and automatically rebuilds them when changes are detected.
Safe ways to use -pvc
:
Through VS Code LaTeX Workshop's controlled environment, set it in settings.json
, allowing VS Code to manage the process lifecycle:
"latex-workshop.latex.recipe.default": "latexmk (pvc)",
"latex-workshop.latex.tools": [
{
"name": "latexmk (pvc)",
"command": "latexmk",
"args": [
"-pvc",
"-pdf",
"-interaction=nonstopmode",
"-synctex=1",
"%DOC%"
]
}
]
A safer command line approach is:
latexmk -pvc -pdf main.tex
Then stop it with Ctrl+C in the same terminal window, properly terminating the watching process.
Cautions in -pvc
mode
- Don't close VS Code/terminal without properly stopping the pvc process
- Don't delete output files while pvc is running (it'll keep trying to regenerate them)
- Always use Ctrl+C to stop the process, don't just close the window
If things do get stuck:
- Find and kill the
perl.exe
process in Task Manager - Clean auxiliary files AFTER killing the process
- Start fresh with a new build