Coder Social home page Coder Social logo

nsf-proposal's Introduction

nsf-proposal: Basic LaTeX2e documentclass for NSF proposals

Mike Renfro (GitHub/Twitter: @mikerenfro)

Sample Project Summary page

Sample Project Description page

Sample Project References page

This needs better documentation, but for now, this documentclass lets you make relatively compact NSF proposals with a minimum of fiddly ad hoc formatting inside the main document. We've used this documentclass for both an MRI and a CC* proposal in 2021, and it's just been recently been verified for the 2024 PAPPG standards (as far as I know).

TL;DR

\documentclass[fontsize,basefont] where fontsize is 10pt, 11pt, or 12pt, and basefont is any of:

  • arial
  • cm (the default)
  • courier-new
  • helvetica
  • palatino
  • palatino-linotype (may only work by default on Windows)
  • times-new-roman

Optionally, add the tg class option to use the TeX Gyre equivalents to Courier New, Helvetica, Palatino, or Times New Roman.

Now write the rest of your proposal, using \chapter on down to \paragraph to break things up. You'll want to use the starred versions of these on the one-page project summary. See nsf-demo.tex for an example.

More Details

This documentclass uses the memoir class as its base, and supports proposals with a base font size of 10 points and higher (for the arial, courier-new, helvetica, palatino, and palatino-linotype options), or 11 points and higher (for the cm and times-new-roman options). It adds a small amount of whitespace around lines at 10pt, since NSF's PDF readers will often flag a 10pt document as having more than 6 lines per inch. We also noticed that LuaLaTeX creates a slightly different line height than pdfLaTeX, so if you're using Overleaf, you may want to set the default engine to pdfLaTeX, or if you find a better solution that works with both engines, send me a pull request.

It disables most, if not all, of the hyperlinks in the main body of the proposal, leaving hyperlinks active in the references.

The documentclass code is around 300 lines, including whitespace and comments, so it should be relatively readable (over half of that is for handling different base fonts and sizes). The documentclass depends on the following packages:

  • fontspec (if using LuaLaTeX or XeLaTeX)
  • helvet (for option helvetica)
  • hyperref
  • iftex
  • mathpazo (for option palatino and palatino-linotype)
  • sansmath (for option arial and helvetica)
  • xstring

Sample source files for a proposal can be found in:

  • nsf-demo.tex
  • nsf-demo.bib

Sample Output

The following tables are grouped by base font, latex engine, and font size. The "summary", "description", and "references" PDFs represent the one-page summary, the <=15-page project description, and the bibliography for a sample NSF proposal. These PDFs can be uploaded to research.gov on a test project, and they shouldn't throw any warnings as provided. Any N/A entries represent either an impossible combination of font and engine (e.g., Arial and pdflatex), or an invalid combination of font and size per the NSF PAPPG (e.g., Computer Modern at 10 pt).

arial

10 pt 11 pt 12 pt
pdf N/A N/A N/A
pdfxe summary, description, references, combined summary, description, references, combined summary, description, references, combined
pdflua summary, description, references, combined summary, description, references, combined summary, description, references, combined

cm

10 pt 11 pt 12 pt
pdf N/A summary, description, references, combined summary, description, references, combined
pdfxe N/A summary, description, references, combined summary, description, references, combined
pdflua N/A summary, description, references, combined summary, description, references, combined

courier-new

10 pt 11 pt 12 pt
pdf N/A N/A N/A
pdfxe summary, description, references, combined summary, description, references, combined summary, description, references, combined
pdflua summary, description, references, combined summary, description, references, combined summary, description, references, combined

courier-new (TeX Gyre Cursor)

10 pt 11 pt 12 pt
pdf N/A N/A N/A
pdfxe summary, description, references, combined summary, description, references, combined summary, description, references, combined
pdflua summary, description, references, combined summary, description, references, combined summary, description, references, combined

helvetica

10 pt 11 pt 12 pt
pdf summary, description, references, combined summary, description, references, combined summary, description, references, combined
pdfxe summary, description, references, combined summary, description, references, combined summary, description, references, combined
pdflua summary, description, references, combined summary, description, references, combined summary, description, references, combined

helvetica (TeX Gyre Heros)

10 pt 11 pt 12 pt
pdf N/A N/A N/A
pdfxe summary, description, references, combined summary, description, references, combined summary, description, references, combined
pdflua summary, description, references, combined summary, description, references, combined summary, description, references, combined

palatino

10 pt 11 pt 12 pt
pdf summary, description, references, combined summary, description, references, combined summary, description, references, combined
pdfxe summary, description, references, combined summary, description, references, combined summary, description, references, combined
pdflua summary, description, references, combined summary, description, references, combined summary, description, references, combined

palatino (TeX Gyre Pagella)

10 pt 11 pt 12 pt
pdf N/A N/A N/A
pdfxe summary, description, references, combined summary, description, references, combined summary, description, references, combined
pdflua summary, description, references, combined summary, description, references, combined summary, description, references, combined

palatino-linotype

10 pt 11 pt 12 pt
pdf N/A N/A N/A
pdfxe summary, description, references, combined summary, description, references, combined summary, description, references, combined
pdflua summary, description, references, combined summary, description, references, combined summary, description, references, combined

times-new-roman

10 pt 11 pt 12 pt
pdf N/A N/A N/A
pdfxe N/A summary, description, references, combined summary, description, references, combined
pdflua N/A summary, description, references, combined summary, description, references, combined

times-new-roman (TeX Gyre Termes)

10 pt 11 pt 12 pt
pdf N/A N/A N/A
pdfxe N/A summary, description, references, combined summary, description, references, combined
pdflua N/A summary, description, references, combined summary, description, references, combined

Sample Document Details

The sample document nsf-demo.tex adds the following packages not specifically required by NSF, but really handy for these sorts of proposals:

As shown in the sample document, you can use a \chapter* and \section* for the 1-page Project Summary, \chapter, \section, \subsection, \subsubsection, and \paragraph commands as needed in the Project Description, where the subsubsection and paragraph levels are unnumbered by default.

Larger font sizes may trigger hyphenation problems for some words and drive some lines into the right margin, so be sure to add hyphenation as necessary (already done for the hurt2021 reference in nsf-demo.bib).

We also made a basic Gantt chart for one of the proposals. It uses pgfgantt, with just a bit of abuse to let us have additional columns for which team member bears primary responsibility or secondary responsibility. You'll find its source and output in the images/ folder.

Sample Gantt chart

nsf-proposal's People

Contributors

mikerenfro avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.