Yanyan Jiang
Always produce high quality documents
By hand, of course

Or by a typesetting machine


By programming languages!
\d/\u to move down/up for half lineJan 26\u\s-2th\s+2\d is a sample.PostScript (1984)
PDF is today's standard
But nobody wants to code in assembly!

A high-level programming language (and toolchain) for typesetting
Less user-friendly (e.g., compared with Microsoft Word)
Better flexibility
Cloud editors tex.nju.edu.cn or overleaf.com
Texlive binary
apt install texlive-full (Linux)Sans Serif vs. Serif
Widely used fonts
When to use them?

TeX system has nearly perfect kerning
Fixed-width fonts (Fira Code, Cascadia Code, ...)

Beautiful formulas

(Needs a lot of tuning)
texdoc symbolsRead (PL) papers carefully
Words may not properly break
\-\hyphenation, \babelhyphenation may be useful
Use microtype!

Quick quiz:
It's an iterative algorithm
LaTeX does not guarantee a fixed point
Help readers understand the flow of (dense) technical contents
Tips for figures
List a lot of objects
Tips for tables
Write readable code!
Host your code on Overleaf/Git
There is LaTeX diff
Text is useful to other tools (e.g., Grammarly)
pandoc \ # use another compiler
--wrap=none main.tex -t plain | \
python3 run.py > main.txt
# run.py
import sys, re
print(re.sub(r"\s+([,.])", r"\1", \
re.sub(r"(\s)+", r"\1", \
sys.stdin.read())))
Command-line tools
Packages
compare \tool{} with... → compare \tool with...Figure~\ref{fig:example} → \Cref{fig:example}