Check out my first novel, midnight's simulacra!
LaTeX: Difference between revisions
Line 6: | Line 6: | ||
==General== | ==General== | ||
* Use the [https://ctan.org/pkg/microtype microtype] package for most documents. It improves typography (but is only partially supported outside of pdflatex). | * Use the [https://ctan.org/pkg/microtype microtype] package for most documents. It improves typography (but is only partially supported outside of pdflatex; LuaTex supports it better than XeTeX as of 2023-10). | ||
* Use the [https://ctan.org/pkg/realscripts realscripts] package for most documents. It improves sub- and superscripts when using OpenType fonts with appropriate features (normally the glyphs are simply drawn at a smaller size). | * Use the [https://ctan.org/pkg/realscripts realscripts] package for most documents. It improves sub- and superscripts when using OpenType fonts with appropriate features (normally the glyphs are simply drawn at a smaller size). It doesn't work well in certain environments or in certain cases, in which case use a '*' suffix to revert to the previous definitions. It's best to use this from the beginning of a document so that you check each placement. | ||
==Punctuation== | ==Punctuation== |
Revision as of 04:50, 15 October 2023
These days, I always use XeTeX (as opposed to e.g. pdflatex or lualatex), usually in conjunction with the Memoir class and polyglossia package (as opposed to e.g. babel).
XeTeX is significantly slower than pdflatex, and cannot use the full capabilities of the microtype package (as of 2023-09, anyway). Nonetheless, it's a far better way to deal with Unicode and modern fonts. LuaTeX seems another valid option, and might perhaps be more actively developed. It's currently about as slow as XeTeX.
Note that Amazon's createspace package cannot be used with XeTeX, at least as of 2023-08.
General
- Use the microtype package for most documents. It improves typography (but is only partially supported outside of pdflatex; LuaTex supports it better than XeTeX as of 2023-10).
- Use the realscripts package for most documents. It improves sub- and superscripts when using OpenType fonts with appropriate features (normally the glyphs are simply drawn at a smaller size). It doesn't work well in certain environments or in certain cases, in which case use a '*' suffix to revert to the previous definitions. It's best to use this from the beginning of a document so that you check each placement.
Punctuation
Quotation Marks
Use `` for the left mark, and two apostrophes for the right.
Hyphens/Dashes
- Hyphens separate the parts of a compound word. Use a single '-', without spaces.
- En dashes separate the bounds of a range, usually numerics. Use two '-' characters, without spaces.
- Em dashes separate distinct thoughts. Use three '-' characters, without spaces.
- Minus signs are a mathematical entity. Use a single '-' in math mode.
Periods
To get correct spacing:
- Use ".\ " if the period does not end the sentence.
- Use "\@. " if the period ends the sentence, and follows a capital letter.
Ellipses
Use \ldots (or \cdots for line-centered dots).
- Don't use three periods (bad spacing) or the Unicode character '…' (HORIZONTAL ELLIPSIS, U+2026).
- What about \dots? fixme
Tildes
Generally, \textasciitilde{} is the way to go. In math mode, use \sim.
- When typesetting a url, the url and hyperref packages handle tildes properly.
Backslashes
Use \textbackslash{} to render a backslash in text.
Lists
Enclose bulleted lists within a \begin{itemize} and \end{itemize} block. Each element is preceded by \item.
- enumerate will give numbers instead of bullets
- description generates labeled items. Provide each label in square brackets: \item[label]
Tables
- Use tabularray!
Appearance
Fonts
- Bold: \textbf{boldfaced text}
- Italics: \textit{italicized text} (it is advised to end most italicized sequences with "\/")
- Monospace: \texttt{typewriter-stylized text}
Spacing
- The default margins are generally 1.5" or more, more suitable for books than other documents. For 1" margins, add \usepackage{fullpage}.
- Double-spacing can be achieved (in the main body) via \usepackage{doublespace}
- Return to single-spacing via \begin{singlespace} and \end{singlespace} blocks.
- \vfill, \vspace{amount} and \pagebreak
Special Forms
To include monospaced documents (code, emails, etc) use \VerbatimInput on a filename argument. This requires the moreverb package.
- Important attributes include fontsize, frame, framerule, label, and numbers
Unicode
Basic LaTeX doesn't support UTF-8 beyond expanding macros based on lexical sequences. If this is intended, use the utf8 parameter to the inputenc package. XeTeX aims to be a fully Unicode-aware TeX engine.
BibTeX
- Style examples
- Protect anything like capitalization, accented characters etc with curly braces
- A good list of BibTeX tips
- My BibTeX repository
Checkers
Of these, ChkTeX seems more fully-featured than lacheck. Neither is actively maintained.
- ChkTeX
- Watch out for some idiosyncrasies of ChkTeX. In particular, its error #38 is a false positive using the standard rules of American English.
- Rule emission can be controlled with command-line options or ~/.chktexrc
- I use -n 38
- This has the (more descriptive) .chktexrc equivalent
QuoteStyle = Traditional
(default: Logical)
- lacheck
See Also
- StackOverflow post, "Entering Unicode characters in LaTeX"
- Martin J. Osborne's "Common (La)TeX errors"
- MIT's "Essential LaTeX on Athena (AC-50)"