LaTeX is a system for document-preparation and typesetting. In my corner of academia (physics, mathematics, computer science) it is also the method de rigueur for the preparation of manuscripts. Many academics in my field reach out for LaTeX by default when writing anything on the computer. I am no exception.
To comply with the Americans with Disabilities Act, digital course material provided to students are required to meet accessibility requirements. General guidance on the topic are offered by, e.g. Michigan State University's Digital Accessibility portal.
The PDFs generated from LaTeX sources are, as of writing, by default not accessible. This challenge is well-known (see documentation and guidance by the American Mathematical Society). The LaTeX community is developing tools that can generate PDFs meeting the new PDF/UA-2 standards; the current progress is documented at the LaTeX Tagging Project website.
While there is still much to be done, the technology is mature enough for many day-to-day use scenarios (at least from the perspective of a mathematician engaged in teaching at the University level). One of the biggest challenges is that many existing LaTeX packages and document classes are not fully compatible with the tagging project. The purpose of this repository is to curate a collection of working templates (and configurations coded as customized document classes) that are known to generate accessible PDFs, with the hope of lowering the barrier of entry.
The templates will be periodically updated as the LaTeX Tagging Project improves its coverage. For details see the link provided.
amsthm released on 2026/6/1, and will only build using TeXLive at the 2026Q2 release (in June) or later. Crucially: as of 2026/6/17, Overleaf still doesn't support TeXLive 2026, so the code here will not work on Overleaf.This is a basic template for filing NSF grant applications; the formatting and required sections should be current as of the 2018 Grant Proposal Guide.
A nice feature is that it uses the childdoc package to enable the easy compilation of the various "sections" of the grant proposal into standalone PDF files ready for upload to Fastlane/research.gov. The file MASTER.tex should only be edited to include more preamble stuff that you need; compiling it will produce one big PDF file including all parts of the proposal (convenient for sending to your chairperson to review).
Each of the individual numbered TeX files can be edited and compiled separately, cross references and citations are automatically handled.
Michigan State University has published letterhead for use by faculty and staff in Microsoft Word format. I reproduced the formatting in LaTeX, including the use of Arial (Helvetica in fact) for the information in the scholar's margin. The PDF version of the MSU wordmark and seal are converted from the Postscript ones available for download on the MSU brand website.
If you ever find yourself needing to add postscripts after the signature (for example, using the letter as a cover letter with further attachments, or having additional appendix pages on your letter), please note that the class is based on the LaTeX letter class, which means that the \closing command disables subsequent page breaks. To work around that, you would need to manually issue \startbreaks as described in this TeX StackExchange answer.
wwwfontselect.sty file from the same repository.textpos package. Margins defined using the geometry document. The positioning of the marginalia should now be stable across changes of paper sizes (but it would not look good with legal paper; you would need to fix that yourself if you use paper sizes much different from letter or A4).I have some other LaTeX resources on my MSU GitLab Repository. This includes some heavily customized LaTeX class files for preparation of my lecture notes, as well as for preparing documents for printing with the Espresso Book Machine. One of the things I am somewhat proud of is some code for producing annotated cross references. Also included are some miscellaneous packages that I wrote at one time or another.
For the longest time I used JabRef as my reference manager of choice. However, I've grown accustomed to doing as much as I can on the command-line, and so recently I switched to Papis. Occasionally, however, I need to handle BibTeX databases from standalone projects. It would be convenient to have a easy way of searching them.
Neugebauer's BibTool is a powerful utility to manipulate BibTeX files. The search syntax, however, is a bit annoying, especially with the need to handle shell escapes. So here's a shell script to make typing easier.
Searches a BibTeX file using bibtool.
Syntax: dbsearch.sh [search parameters]
-h Displays this help
-i FILE Specify the input file; else runs as a filter
-a RG List those entries with RG in author list
-t RG List those entries with RG in title
-k RG List those entries with RG in keywords
-T TP List those entries with TP as type
-n RG List those entries with RG in bib key
-E RG Search for RG everywhere
Note: RG type arguments can be regexp expressions
What the script does is to:
select{...} syntax used by bibtool.bibtool command. (For example, it is not possible to use a single call to bibtool to find all entries of type @book that is authored by Steinhaus that has Rat somewhere in the bibliographic data.) I did not implement OR-type search conditions since I don't find that particularly useful.Some usage notes:
-i option.bibtool documentation and configure it to their own liking (for example, for use with BibLaTeX, or to support custom entry types). All of these can be done by placing a resource file in the standard bibtool search path.
input {...} command); otherwise items from that database will show up in all search results.If you are curious: I do most of my editing on Linux-based systems. In my office my laptop runs arch linux. I used to be a religious user of the i3 tiling window manager, but have recently converted to using the scrolling window manager niri that works over Wayland. I found the scrolling setup to be excellent as a person who have often way too many terminal windows open at any given time. When out of my office my computer is Chromebook running ChromeOS. I make heavy use of Project Crostini and have a container running arch. Most of my setup is the same between the two machines.
For editing, I use NeoVim, with the VimTeX plug-in, though syntax highlighting is left to treesitter. Mostly I use the srcery color scheme.