Your country

Tools that support it use your country for local currency, number formats, units and paper size. Your choice is saved only in this browser.

Type a name or a two-letter code. Use the up and down arrow keys to move through the countries, Enter to choose one and Escape to close.

LaTeX & Typst (papers, theses, resumes and slides)  Module 1 – Start here: from source file to PDF

LaTeX and Typst: what they are and when to use each

How LaTeX and Typst turn a plain-text file into a PDF, which releases are current, how fast each built one note, and when each beats Word or Markdown.

  • Beginner
  • 10 minutes
  • Examples run with TeX Live 2026, TinyTeX 2026.10, Typst 0.15.1, Python 3.14.8 and poppler 26.09.0
  • By MySmartCoPilot
Free lesson, Pro answers: 10 minutes
Free: the whole lesson. With a pass: the model answers to its 2 interview questions.

What you will learn

  • Explain how a .tex file becomes a PDF through an engine, the LaTeX format and a distribution, and how Typst does it in one program
  • Identify the engine and the LaTeX or Typst release from the lines a build prints
  • Choose between LaTeX, Typst, a word processor and Markdown for a given document and the people who work on it
  • Read a recorded session of this track, from the command to the exit status
What you’ll learn

What you will learn

  • Explain how a .tex file becomes a PDF through an engine, the LaTeX format and a distribution, and how Typst does it in one program
  • Identify the engine and the LaTeX or Typst release from the lines a build prints
  • Choose between LaTeX, Typst, a word processor and Markdown for a given document and the people who work on it
  • Read a recorded session of this track, from the command to the exit status
On this page

The same four-line note became a PDF in 0.08 seconds with Typst and in 1.60 seconds with LuaLaTeX in the run recorded on this page, and both PDFs say the same thing. LaTeX and Typst are both ways of writing a document as plain text with markup and letting a program set the pages; they differ in how many programs take part, how quickly they answer, and where each one is required.

Below you will follow one note through each system, read the lines a build prints about its engine and its release, walk through the releases this track runs on, compare four engines on the same file, and choose a tool for five documents and then for one of your own.

A LaTeX file passes through an engine, a format and a distribution

Here is the note, written once for each system. The LaTeX file needs a class and a document environment around its text; the Typst file is the text, with one setting at the top:

The same note in LaTeX and in Typst

LaTeX: hello.tex · hello/hello.tex

\documentclass{article}
\begin{document}
\section{Hello}
This note was typeset by \LaTeX. The area of a circle is $\pi r^2$.
\end{document}

Typst: hello.typ · hello/hello.typ

#set heading(numbering: "1")

= Hello
This note was typeset by Typst. The area of a circle is $pi r^2$.

Every session in this track is recorded the same way: each command after $ , then everything it printed, and [exit status N] under any command that failed. This one builds both files, reads each PDF back as text with pdftotext and asks Typst for its version:

Building the note in both systems Python · hello_session.py
from session import files, run

# The same note in LaTeX and in Typst, each compiled once and its PDF read back as text.
files("hello/hello.tex", "hello/hello.typ")
run("""
pdflatex hello.tex
typst compile hello.typ hello-typst.pdf
pdftotext hello.pdf -
pdftotext hello-typst.pdf -
typst --version
""")

Output

$ pdflatex hello.tex
This is pdfTeX, Version 3.141592653-2.6-1.40.29 (TeX Live 2026) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
(./hello.tex
LaTeX2e <2026-06-01>
L3 programming layer <2026-09-09>
(…/texmf-dist/tex/latex/base/article.cls
Document Class: article 2025/01/22 v1.4n Standard LaTeX document class
(…/texmf-dist/tex/latex/base/size10.clo)) (…/texmf-dist/tex/latex/l3kernel/l3backend-pdftex.def)
No file hello.aux.
[1{…/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] (./hello.aux) )<…/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb><…/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb><…/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb><…/texmf-dist/fonts/type1/public/amsfonts/cm/cmr7.pfb>
Output written on hello.pdf (1 page, 40776 bytes).
Transcript written on hello.log.
$ typst compile hello.typ hello-typst.pdf
$ pdftotext hello.pdf -
1

Hello

This note was typeset by LATEX. The area of a circle is πr2 .

1

$ pdftotext hello-typst.pdf -
1 Hello
This note was typeset by Typst. The area of a circle is 𝜋𝑟2 .

$ typst --version
typst 0.15.1 (9dfd3a08)

Recorded with Python 3.14.8 on macOS 26 arm64. To run it yourself: mise exec python@3.14.8 -- python3 hello_session.py

Read the LaTeX build from its first line. This is pdfTeX names the TeX engine: The typesetting program that reads a TeX or LaTeX file and writes the pages, such as pdfTeX, XeTeX or LuaTeX. Commands such as pdflatex, xelatex and lualatex start one of them with the LaTeX format., the typesetting program that the pdflatex command started, and TeX Live 2026 names the collection it came from. TeX itself is Donald Knuth’s program from the late 1970s; pdfTeX, XeTeX and LuaTeX are its present-day engines, started by pdflatex, xelatex and lualatex. The line LaTeX2e <2026-06-01> names the format: A precompiled set of macro definitions that a TeX engine loads before it reads your file. LaTeX is a format, which is why a LaTeX log names the engine first and the LaTeX release after it. the engine loaded before it read your file: LaTeX is a set of macros, created by Leslie Lamport in 1984, that turns commands such as \section into spacing and numbering. The line that starts (…/texmf-dist/tex/latex/base/article.cls shows the engine reading the document class: The file named in \documentclass, such as article or report, that sets a LaTeX document's overall layout and provides commands such as \section. from the installed tree, where every package: A file of extra LaTeX commands, usually ending in .sty, that a document loads with \usepackage. CTAN collects packages, and a TeX distribution installs them. a document loads also lives.

That tree comes from a TeX distribution: A collection that installs the TeX engines, the LaTeX format, packages, fonts and tools together and keeps them updated, such as TeX Live, MiKTeX or TinyTeX.. TeX Live, from the TeX Users Group, is the comprehensive one, for Unix, macOS and Windows. MiKTeX starts small and downloads what a document asks for while it builds. TinyTeX is a small subset of TeX Live that grows as you add packages. The packages themselves are collected on CTAN, which lists more than 7,000 of them.

Looking for one LaTeX program to install

Wrong: looking for a LaTeX installer and expecting one program. Right: install a distribution, such as TeX Live, MiKTeX or TinyTeX, which brings the engines, the LaTeX format and the packages together; the next lesson does this step by step.

Typst is one program with its own markup and scripting

The Typst half of the session is short: typst compile printed nothing at all, because a build that succeeds has nothing to report. The Typst project describes it as a markup-based typesetting system designed to be as powerful as LaTeX and easier to learn, published under the Apache 2.0 licence. Its guide for LaTeX users says that no boilerplate is needed to start a document, and that the compiler is a single small binary that any user can run.

Three things do the work of LaTeX’s layers. Markup covers the common cases: = Hello is a heading and $pi r^2$ is maths. A #set rule changes a default for the rest of the file, as #set heading(numbering: "1") does in hello.typ so that the heading is numbered like LaTeX’s. And a scripting language, reached with #, handles everything else. Packages and templates come from Typst Universe: The online index of Typst packages and templates. Typst downloads a package from it the first time a document imports it and keeps it in a local cache., and Typst fetches each one only when a file imports it, keeping a copy for later builds. Its package index lists about 1,700 packages, about half of them templates, against CTAN’s 7,000 and more, a difference of age and size you will meet whenever a task needs a special package.

The two PDFs read back differently in one place. LaTeX’s maths came out as πr2, plain letters, while Typst’s came out as 𝜋𝑟2, Unicode’s mathematical italic letters. Both look the same on the page; text extraction and copy-paste see what each system wrote. Step through both builds, top half and bottom half:

Interactive · step by step Two roads from a text file to a PDF Step through what happens to hello.tex in the top half and to hello.typ in the bottom half, from the command to the PDF.
Two roads from a text file to a PDF, step 8 of 8. Showing hello.tex, LaTeX format, pdfTeX engine, TeX Live tree, hello.pdf, hello.typ, Typst Universe, typst compile, hello-typst.pdf. In focus: hello-typst.pdf.hello.texplain textLaTeX formatmacros loaded firstpdfTeX enginestarted by pdflatexTeX Live treeclasses, packages, fontshello.pdfplus .aux and .loghello.typplain textTypst Universepackages you importtypst compileone programhello-typst.pdftagged by default1 page

The drawing shows the whole scene; its 8 steps are listed below.

Every step as text
  1. Plain text in. Both files are plain text that any editor opens. Neither looks like the page yet; each describes a page that a program turns into a PDF.
  2. A command starts an engine. Typing pdflatex hello.tex starts the pdfTeX engine, the typesetting program itself. XeTeX and LuaTeX are the other engines, started by xelatex and lualatex.
  3. The format comes first. Before it reads your file, the engine loads the LaTeX format, a precompiled set of macros. That is why the log names pdfTeX on its first line and LaTeX2e on a later one.
  4. The tree supplies the rest. The line \documentclass{article} makes the engine read article.cls from the TeX Live tree on your disk. Every class, package and font a document loads comes from that installed tree.
  5. LaTeX writes its PDF. The engine typesets the page and writes hello.pdf, plus hello.aux, notes for the next run, and hello.log, the full transcript. An engine, a format and a tree of files worked together.
  6. Typst is one program. Below, typst compile reads hello.typ. The Typst program holds the language, the layout engine, its own fonts and the PDF writer, so no tree of installed files is needed. By default it can also use the fonts installed on the computer.
  7. Packages only on import. A Typst document that imports a package from Typst Universe gets it downloaded once into a local cache. This note imports none, so the dashed arrow carries nothing.
  8. Typst writes one file. Typst writes hello-typst.pdf in one run, tagged by default since Typst 0.14, and leaves no helper files beside it.

LaTeX needed an engine, a format and a tree of installed files, and left helper files behind; Typst needed one program and left one PDF.

Key idea

A LaTeX build is an engine running the LaTeX format with files from a distribution; a Typst build is one program, with packages fetched only when a document imports them.

Checkpoint

Check: Engine, format and distribution · Typst as one program

  1. Question 1 of 2 In the LaTeX build, which line tells you which release of the LaTeX format the engine loaded?

    Choose one answer.

    A hint

    The format is what LaTeX is; look for its name with something in angle brackets.

    Show the answer: Question 1 of 2

    Answer: The line that starts with LaTeX2e and gives a release in angle brackets

    A LaTeX build announces its layers in order: the engine and distribution on the first line, then the format and its release in angle brackets after LaTeX2e, then each class and package as the engine reads it from the tree.

  2. Question 2 of 2 Which of these did the Typst build of hello.typ use? Choose every one that applies.

    Choose every answer that is right.

    Show the answer: Question 2 of 2

    Answer:

    • A set rule that numbers the heading
    • The typst program

    Typst needed one program and one set rule for this note. Packages come from Typst Universe only when a document imports one, and Typst has no format or helper files.

Both systems keep releasing, and the version line says which you have

LaTeX names each release by its date, so the line LaTeX2e <2026-06-01> in a log tells you exactly which LaTeX ran. The LaTeX Project releases twice a year, usually in June and November, and describes each release in an issue of LaTeX News. TeX Live is released once a year and receives package updates in between. Typst numbers its releases: typst --version printed typst 0.15.1 (9dfd3a08) at the end of this lesson’s first session. Walk through how the two systems got here:

Timeline · 10 events in order From TeX to the releases this track runs on Walk through the steps in order. Each says what it added; the last three are the versions every example here uses.
  1. TeX

    Knuth's typesetting program the base

    Donald Knuth began TeX in the late 1970s to typeset his own books, mathematics above all. It reads a text file of commands and produces pages; it has been frozen apart from bug fixes for years, and newer engines extend it.

  2. LaTeX

    Macros that describe structure a format

    Leslie Lamport created LaTeX in 1984 as a set of TeX macros, a format, so that authors write section and figure and let the macros handle spacing and numbering.

  3. LaTeX2e

    The LaTeX in use today

    The first release of LaTeX2e came in 1994, and every LaTeX release since still carries that name. The LaTeX Project keeps adding to it in regular releases.

  4. Unicode engines

    XeTeX and LuaTeX new engines

    XeTeX and LuaTeX read UTF-8 natively and can use OpenType and TrueType fonts. pdfTeX, which the latex and pdflatex commands run on TeX Live, is an 8-bit engine.

  5. UTF-8 default

    Accented letters typed directly

    From its 2018 release, LaTeX reads every source file as UTF-8 unless told otherwise, so café needs no special command even with pdfTeX.

  6. Typst

    A new typesetting system new system

    Typst's first public releases came in 2023. It is one program with its own markup and scripting language, published under the Apache 2.0 licence.

  7. Typst 0.14

    Tagged PDF by default accessibility

    From version 0.14, Typst writes tagged PDF unless told not to, so a screen reader can follow the headings and the reading order, and it can export PDF/UA-1.

  8. TeX Live 2026

    The current yearly TeX Live current

    TeX Live is released once a year and updated in between. TeX Live 2026 ships pdfTeX 1.40.29, LuaHBTeX 1.24.0 and XeTeX 0.999998; this track installs it through TinyTeX 2026.10.

  9. LaTeX News 43

    The current LaTeX release current

    The LaTeX Project releases twice a year, usually in June and November, and describes each release in an issue of LaTeX News. Issue 43 covers the release that every log in this track names.

  10. Typst 0.15.1

    The current Typst release current

    Typst 0.15.1 is a bug-fix release of 0.15, with fixes to maths alignment and the New Computer Modern fonts. Every Typst example in this track runs on it.

The timeline has 10 events, from TeX to Typst 0.15.1.

Versions matter when a file leaves your computer. arXiv compiles the TeX source of every submission itself, with TeX Live 2025 by default and TeX Live 2023 on request, so a document that relies on something added in 2026 can fail there although it built on your laptop. Overleaf, too, sets a TeX Live year for each project. The version line is how you find out which one ran.

The versions behind this track

Every LaTeX example in this track runs on TeX Live 2026, installed as TinyTeX 2026.10, and every Typst example on Typst 0.15.1. Where a lesson uses something newer than what arXiv or an online editor may run, it says so.

Checkpoint

Check: Releases and version lines

  1. Question 1 of 2 How do LaTeX, TeX Live and Typst name their releases?

    Choose one answer.

    Show the answer: Question 1 of 2

    Answer: LaTeX by its release date, TeX Live by its year, Typst by a version number

    LaTeX releases twice a year and names each by its date, TeX Live once a year by its year, and Typst by version numbers. The version line of a build tells you which one you have.

  2. Question 2 of 2 A paper builds on your laptop with TeX Live 2026 but fails when arXiv compiles it. What should you check first?

    Choose one answer.

    Show the answer: Question 2 of 2

    Answer: Whether the paper uses something added after TeX Live 2025, the year arXiv uses by default

    The same source can build with one TeX Live year and fail with another. arXiv's default is TeX Live 2025, so a document that relies on a 2026 addition needs a fallback or must wait for arXiv to move.

The same note in four engines: time, size, fonts and tags

How fast a system answers decides how often you look at the result while writing. This program builds the note three times with each of the three LaTeX engines and with Typst, and reads every PDF with poppler’s pdffonts and pdfinfo:

One note, four engines, measured Python · engines_session.py
"""The note of hello/ built by three LaTeX engines and by Typst: the median time of three builds, the size of the
PDF, the fonts it embeds and whether it is tagged (pdffonts and pdfinfo from poppler 26.09.0 read the PDFs)."""

import statistics
import time

from session import files, shell

files("hello/hello.tex", "hello/hello.typ")
BUILDS = [
    ("pdfLaTeX", "pdflatex -interaction=nonstopmode -halt-on-error hello.tex"),
    ("LuaLaTeX", "lualatex -interaction=nonstopmode -halt-on-error hello.tex"),
    ("XeLaTeX", "xelatex -interaction=nonstopmode -halt-on-error hello.tex"),
    ("Typst", "typst compile hello.typ hello.pdf"),
]

print("Each build ran three times; the time is the median of the three.")
print()
print(f"{'engine':<10}{'seconds':>8}  {'PDF bytes':>9}  {'fonts embedded':<16}{'tagged'}")
for name, command in BUILDS:
    times = []
    for _ in range(3):
        start = time.perf_counter()
        status, output = shell(command)
        times.append(time.perf_counter() - start)
        if status != 0:
            raise SystemExit(f"{name} failed:\n{output}")
    _, fonts = shell("pdffonts hello.pdf")
    rows = fonts.splitlines()[2:]
    embedded = sum(1 for row in rows if row.split()[-5] == "yes")
    _, info = shell("pdfinfo hello.pdf")
    fields = dict(line.split(":", 1) for line in info.splitlines() if ":" in line)
    size = int(fields["File size"].split()[0])
    tagged = fields["Tagged"].strip()
    print(f"{name:<10}{statistics.median(times):>8.2f}  {size:>9,}  {f'{embedded} of {len(rows)}':<16}{tagged}")

Output

Each build ran three times; the time is the median of the three.

engine     seconds  PDF bytes  fonts embedded  tagged
pdfLaTeX      0.45     40,776  4 of 4          no
LuaLaTeX      1.60     24,061  5 of 5          no
XeLaTeX       0.52      9,240  5 of 5          no
Typst         0.08     11,935  3 of 3          yes

This output changes from run to run: the build times depend on the computer and its load and change from run to run; the sizes, fonts and tags do not

Recorded with Python 3.14.8 on macOS 26 arm64. To run it yourself: mise exec python@3.14.8 -- python3 engines_session.py

In this run Typst finished in 0.08 s, pdfLaTeX in 0.45 s, XeLaTeX in 0.52 s and LuaLaTeX in 1.60 s, twenty times as long as Typst. Typst’s guide says compilation usually takes milliseconds, not seconds, and the gap grows with the document, because a long LaTeX document also needs extra runs, the subject of the third lesson. The other columns do not change between runs. Every engine embedded all its fonts, so the PDFs look the same on any computer, and only Typst’s PDF is a tagged PDF: A PDF that also stores its structure, such as headings, paragraphs and reading order, so screen readers and text extraction can follow it. Typst writes tagged PDF by default., which screen readers rely on; LaTeX can tag too, when the document asks for it.

Pick one LaTeX engine per document

Use pdfLaTeX when a template or a venue names it, and LuaLaTeX or XeLaTeX when you need system fonts or scripts beyond Latin. Switching engines halfway changes fonts and line breaks, so decide at the start.

Checkpoint

Check: Speed, fonts and tags measured

  1. One question In the measured run, which of the four PDFs were tagged?

    Choose one answer.

    Show the answer: One question

    Answer: Only Typst's

    Typst writes tagged PDF unless told not to, so its PDF carries the structure screen readers use. The LaTeX engines wrote untagged PDFs because the note did not ask for tagging.

Choose by the document and the people who work on it

Most choices come down to four questions: does anyone require LaTeX source, will co-authors edit in Word, does the document number and cross-reference things, and will it live in version control? arXiv insists on TeX source when it exists and says that a PDF made from TeX will typically be rejected. Journals and conferences publish their own LaTeX classes on CTAN, such as IEEEtran, acmart, llncs and elsarticle. Word marks every change by every author with tracked changes and inserts citations in a style you pick from a menu, but a .docx file is a ZIP package of XML parts, which Git cannot compare line by line. The CommonMark specification of Markdown defines no equations, citations or numbered references at all.

Here are five invented documents and a choice for each:

Document Choice Why
A 6-page lab report for a course Typst, or LaTeX if the course gives a template Numbered figures and equations; Typst’s single run keeps the feedback fast
A preprint for arXiv LaTeX arXiv builds TeX source itself
A one-page resume Typst or LaTeX Both give exact control; module 9 builds one in each
A 120-page thesis LaTeX if the university supplies a class, else either Cross-references, a bibliography and the template’s rules decide
A notice for a club meeting A word processor or Markdown Nothing to number, and anyone can edit it

Now answer the questions for a document of your own; each answer rules tools out or adds a caveat, with the reason:

Interactive · answer and compare Which tool fits your document? Answer four questions about a document you have to write. The table marks the tools that fit and says why the others do not.
Does a journal, conference, arXiv or your department require LaTeX source?
Will co-authors edit the file only in a word processor, with tracked changes?
Does the document need numbered equations, cross-references or a bibliography?
Will the file live in Git or another version control system?

Answer the questions above: the table then marks what fits your case and says why the rest does not.

LaTeX, Typst, a word processor and Markdown against the four things that decide most choices
Tool Venue wants LaTeX Co-authors in Word Numbering and references Changes shown by Git
LaTeX You write: a .tex file of text and commands Good arXiv builds TeX source itself, and many journals publish LaTeX classes Poor a .tex file is source code to someone who only edits in Word Good equations, sections, figures and citations are numbered and cross-referenced Good plain text, so every changed line shows in a diff
Typst You write: a .typ file of text and markup Poor arXiv asks for TeX source, and journal classes are LaTeX classes Poor a .typ file is source code to someone who only edits in Word Good numbering, references and bibliographies are built in, resolved in one run Good plain text, so every changed line shows in a diff
Word processor You write: the page itself, saved as .docx Poor a venue that builds from LaTeX source cannot use a .docx Good tracked changes show which author made each change Mixed citations and a bibliography in a chosen style come from menus, not from markup Poor a .docx is a ZIP package of XML parts, so Git cannot show changed lines
Markdown You write: a .md file of lightly marked text Poor a venue that builds from LaTeX source cannot use a .md file Mixed plain text anyone can open, but with no tracked changes Poor the CommonMark specification has no equations, citations or numbered references Good plain text, so every changed line shows in a diff
How the answers decide
  • “Does a journal, conference, arXiv or your department require LaTeX source?” Yes, LaTeX source is required: rules out Typst, Word processor and Markdown. A venue that builds from LaTeX source, as arXiv does, needs a .tex file: arXiv says a PDF made from TeX is usually refused.
  • “Will co-authors edit the file only in a word processor, with tracked changes?” Yes, they edit in Word: rules out Markdown and adds a caveat to LaTeX and Typst. Co-authors who edit only in Word need a .docx for tracked changes. With LaTeX or Typst, collect their comments on the PDF instead.
  • “Does the document need numbered equations, cross-references or a bibliography?” Yes, some or all of them: rules out Markdown. Plain Markdown numbers nothing and cites nothing; LaTeX and Typst number and cross-reference for you.
  • “Does the document need numbered equations, cross-references or a bibliography?” No, it is a short note or a letter: adds a caveat to LaTeX. For a short note with no numbering, a class and a preamble are more setup than the note needs.
  • “Will the file live in Git or another version control system?” Yes: adds a caveat to Word processor. Git compares lines of text; a .docx is a ZIP package, so a diff of it shows nothing useful.

In short: LaTeX where a venue demands it, Typst where you choose freely and want speed and tagged PDF by default, a word processor where co-authors live in tracked changes, and Markdown for notes that need no numbering. This track teaches LaTeX and Typst side by side, so each later lesson shows both.

Projects and companies named here

MySmartCoPilot is not affiliated with the LaTeX Project, the TeX Users Group, CTAN, Typst, arXiv, Overleaf or Microsoft. The facts about them come from their own pages, listed under References.

Checkpoint

Check: Choosing a tool for a document

  1. Question 1 of 2 Two co-authors will mark up a 12-page report only in Word, with tracked changes. No journal rule applies. What fits best?

    Choose one answer.

    Show the answer: Question 1 of 2

    Answer: A word processor, so their tracked changes work as they expect

    The people who edit a document decide as much as its content. With co-authors in tracked changes and no venue rule, a word processor fits; LaTeX or Typst would mean collecting comments on the PDF instead.

  2. Question 2 of 2 Your university supplies a LaTeX class for theses that sets margins, title page and numbering. You prefer Typst. What is the sound first step?

    Choose one answer.

    Show the answer: Question 2 of 2

    Answer: Check the university's rules; if they require its class or format, write in LaTeX with the class

    For a thesis, the institution's rules come first. A supplied class or template usually encodes them, so LaTeX with that class is the safe choice unless the rules allow another system.

Markdown to PDF Converter Turn a Markdown note into a PDF in your browser when a document needs no numbering.

Practise: choose the tool, read the build

The questions mix the layers of a LaTeX build, the parts of Typst, the version lines and the choice of a tool for a document. The idea you know least comes first, and every answer explains itself:

Practice that adapts to you

Practise this lesson

14 questions about 5 ideas of this lesson. Each answer is explained at once, and what you get right is kept in this browser.

  1. Question 1 of 14 What does the command lualatex note.tex start?

    Choose one answer.

    Show the answer: Question 1 of 14

    Answer: The LuaTeX engine, running the LaTeX format on note.tex

    pdflatex, xelatex and lualatex each start an engine (pdfTeX, XeTeX, LuaTeX) with the LaTeX format loaded, and the engine then reads classes and packages from the distribution's tree.

  2. Question 2 of 14 A recorded session shows $ typst compile report.typ, an error message, and then [exit status 1]. What does the last line tell you?

    Choose one answer.

    Show the answer: Question 2 of 14

    Answer: The command failed, so report.pdf was not written by it

    Each command appears after $ , then what it printed, and a line [exit status N] only when it failed. Status 1 from typst compile means an error stopped it, so trust no PDF from that run.

  3. Question 3 of 14 On a new laptop, hello.tex builds, but a paper with \documentclass{IEEEtran} stops because IEEEtran.cls cannot be found. Which layer lacks something?

    Choose one answer.

    Show the answer: Question 3 of 14

    Answer: The distribution's installed tree, which has no IEEEtran class yet

    When one document builds and another stops on a missing class or package, the engine and format are fine and the file is missing from the distribution's tree. Installing that package, as the next lesson shows, fixes it.

  4. Question 4 of 14 In hello.typ, what does #set heading(numbering: "1") do?

    Choose one answer.

    Show the answer: Question 4 of 14

    Answer: It numbers every heading that comes after it

    A #set rule gives an element new default arguments from that point on. In hello.typ it numbers the heading so it reads "1 Hello", as LaTeX's article class numbers sections by itself.

  5. Question 5 of 14 A Typst file imports a package from Typst Universe. You compile it for the first time on a laptop with no internet connection. What happens?

    Choose one answer.

    Show the answer: Question 5 of 14

    Answer: The build fails, because the package was never downloaded into the cache

    Packages are downloaded on first use and then cached locally. Compile once while online, or copy the cache, before you work offline with a document that imports packages.

  6. Question 6 of 14 A student copies the formula from the Typst PDF of the note into a plain-text form and gets 𝜋𝑟2. From the LaTeX PDF they got πr2. What explains the difference?

    Choose one answer.

    Show the answer: Question 6 of 14

    Answer: Typst wrote maths as Unicode's mathematical italic letters; the page looks the same but the characters differ

    What a reader sees and what text extraction returns can differ. Typst stores maths letters as Unicode mathematical italic code points, pdfLaTeX as ordinary letters, so search and copy-paste behave differently.

  7. Question 7 of 14 How often does the LaTeX Project release LaTeX?

    Choose one answer.

    Show the answer: Question 7 of 14

    Answer: Twice a year, usually in June and November

    LaTeX releases twice a year and names each release by its date; TeX Live is yearly and carries the newest LaTeX through its updates.

  8. Question 8 of 14 A project that has lived on an online LaTeX editor for years suddenly fails when you copy a new package into it, while a new project builds the same text. What is the first thing to compare?

    Choose one answer.

    Show the answer: Question 8 of 14

    Answer: The TeX Live year each project compiles with

    A build depends on the TeX Live year it runs with. Compare the version lines of the two builds before you change the document.

  9. Question 9 of 14 Every engine in the measured table embedded all its fonts. Why does that matter for a PDF you send to someone?

    Choose one answer.

    Show the answer: Question 9 of 14

    Answer: Their computer shows the same glyphs even if it lacks those fonts

    A PDF that embeds its fonts looks the same on any computer and printer. pdffonts lists each font with yes or no under emb, and every engine here said yes for every font.

  10. Question 10 of 14 You rebuild a 40-page report every few minutes while writing, with no venue rule and no need for system fonts. Going by the measurements, which choice shortens the wait most?

    Choose one answer.

    Show the answer: Question 10 of 14

    Answer: Typst, or pdfLaTeX if it must be LaTeX, since both were the fastest here

    When nothing forces a choice, build speed decides how often you see the page. The measured run put Typst first and pdfLaTeX first among the LaTeX engines, and longer LaTeX documents add extra runs on top.

  11. Question 11 of 14 You are writing a preprint that you will post on arXiv. Which system do you write it in?

    Choose one answer.

    Show the answer: Question 11 of 14

    Answer: LaTeX, because arXiv builds TeX source itself

    A venue that builds from LaTeX source decides the choice for you. For arXiv, write in LaTeX and check which TeX Live year it will use.

  12. Question 12 of 14 You must publish a 10-page handbook as an accessible, tagged PDF this week. You write alone, and no venue rule applies. What fits best?

    Choose one answer.

    Show the answer: Question 12 of 14

    Answer: Typst, which writes tagged PDF by default

    When accessibility is required and nothing else constrains you, Typst's default tagged PDF saves work. A later lesson shows how to tag LaTeX output too.

  13. Question 13 of 14 You are writing the README of a code repository: a few headings, lists and code samples, shown on the repository page. What fits best?

    Choose one answer.

    Show the answer: Question 13 of 14

    Answer: Markdown

    Markdown suits notes and READMEs that need no numbering, cross-references or bibliography, and it diffs well in Git.

  14. Question 14 of 14 A journal requires LaTeX source, and one co-author edits only in Word with tracked changes. How do you set up the work?

    Choose one answer.

    Show the answer: Question 14 of 14

    Answer: Write in LaTeX with the journal's class, and collect that co-author's comments on the PDF or on a converted copy

    When a venue rule and a co-author's habits pull in different directions, the venue fixes the format and you adapt how comments come back: PDF annotations or a converted copy for review.

Interview questions

Warm-up (fresher to 2–5 years): how do TeX, LaTeX and a distribution such as TeX Live differ?

TeX is the typesetting program Donald Knuth wrote, and its present-day engines are pdfTeX, XeTeX and LuaTeX. LaTeX is a format: a set of macros, created by Leslie Lamport, that the engine loads before your file, so that you write \section and \cite instead of spacing commands. A distribution such as TeX Live, MiKTeX or TinyTeX installs the engines, the LaTeX format, thousands of packages and fonts together and keeps them updated. So pdflatex note.tex means the pdfTeX engine running the LaTeX format on your file, with every class and package read from the distribution’s tree. A log shows all three: This is pdfTeX for the engine, TeX Live 2026 for the distribution and LaTeX2e with its release date for the format.

Two harder questions follow, about choosing a toolchain under a deadline and about moving a group to Typst. Make your own first decision before you open each first step:

Model answers open with any pass: ₹79 for 1 week ($2.99), one payment that never renews.

  1. Fresher to mid

    Your group must submit a paper in five days to a journal that publishes its own LaTeX class. One co-author edits only in Word with tracked changes; another would rather write in Typst. Which toolchain do you choose, and how do you organise the writing so that nobody's work is lost?

    Model answer, Pro. Model answers open with any pass; prices are in the notice on this page. First step and follow-ups

  2. Mid to senior

    Your department marks about 200 lab reports a term, all written from a LaTeX template, and asks whether students should move to Typst. Make the case for or against, and say what you would measure before deciding.

    Model answer, Pro. First step and follow-ups

Key takeaways

  • A LaTeX build is an engine (pdfTeX, XeTeX or LuaTeX) running the LaTeX format, with classes, packages and fonts read from a distribution such as TeX Live, MiKTeX or TinyTeX.
  • Typst is one program with markup, set rules and a scripting language, and it downloads a package from Typst Universe only when a document imports one.
  • The version lines say what ran: LaTeX names its twice-yearly releases by date, TeX Live by year and Typst by number, and arXiv’s default is still TeX Live 2025.
  • On the same note, Typst built fastest and alone wrote a tagged PDF, while every engine embedded all its fonts.
  • Choose LaTeX when a venue requires its source, Typst when you choose freely, a word processor for co-authors who work in tracked changes, and Markdown for notes that number nothing.

Flashcards · 7 cards

Recall it, then check

Say the answer to yourself before you look: recalling it is what makes it stick.

  1. What three layers take part in a LaTeX build?

    An engine such as pdfTeX, XeTeX or LuaTeX; the LaTeX format, the macros the engine loads before your file; and a distribution such as TeX Live, MiKTeX or TinyTeX that installs both with the classes and packages.

  2. What do the first lines of a pdflatex log tell you?

    Which engine ran (This is pdfTeX), which distribution it came from (TeX Live 2026), and which LaTeX release was loaded, on the line that starts LaTeX2e.

  3. How does Typst get a package that a document imports?

    It downloads it from Typst Universe the first time a file imports it and keeps a copy, so later builds reuse it.

  4. How do LaTeX, TeX Live and Typst name their releases?

    LaTeX by the date of each release, about twice a year; TeX Live by its year; Typst by a version number such as 0.15.1.

  5. Why can a paper that builds on your laptop fail on arXiv?

    arXiv compiles the TeX source of every submission itself, with TeX Live 2025 by default or TeX Live 2023 on request, so something that only TeX Live 2026 has may be missing there.

  6. On the recorded four-line note, which build was fastest, and which wrote a tagged PDF?

    Typst, at 0.08 s against 0.45 s for pdfLaTeX, 0.52 s for XeLaTeX and 1.60 s for LuaLaTeX in that run, and only its PDF was tagged. Every engine embedded all its fonts.

  7. When is a word processor or Markdown the better choice than LaTeX or Typst?

    A word processor when co-authors work in tracked changes; Markdown for notes that number nothing, since the CommonMark specification defines no equations, citations or numbered references.

Terms in this lesson

document class
The file named in \documentclass, such as article or report, that sets a LaTeX document's overall layout and provides commands such as \section.
format
A precompiled set of macro definitions that a TeX engine loads before it reads your file. LaTeX is a format, which is why a LaTeX log names the engine first and the LaTeX release after it.
package
A file of extra LaTeX commands, usually ending in .sty, that a document loads with \usepackage. CTAN collects packages, and a TeX distribution installs them.
tagged PDF
A PDF that also stores its structure, such as headings, paragraphs and reading order, so screen readers and text extraction can follow it. Typst writes tagged PDF by default.
TeX distribution
A collection that installs the TeX engines, the LaTeX format, packages, fonts and tools together and keeps them updated, such as TeX Live, MiKTeX or TinyTeX.
TeX engine
The typesetting program that reads a TeX or LaTeX file and writes the pages, such as pdfTeX, XeTeX or LuaTeX. Commands such as pdflatex, xelatex and lualatex start one of them with the LaTeX format.
Typst Universe
The online index of Typst packages and templates. Typst downloads a package from it the first time a document imports it and keeps it in a local cache.

References

Related tools

Report a problem with this lesson

Quick answers and tool search

Type to search tools or to get a quick answer, for example 18% of 2500. Use the up and down arrow keys to move through the results, Enter to choose, and Escape to close.