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 symbols
Read (PL) papers carefully
Words may not properly break
\-
\hyphenation
, \babelhyphenation
may be usefulUse 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}