// Test footnotes. --- footnote-basic --- #footnote[Hi] --- footnote-space-collapsing --- // Test space collapsing before footnote. A#footnote[A] \ A #footnote[A] --- footnote-nested --- // Test nested footnotes. First \ Second #footnote[A, #footnote[B, #footnote[C]]] \ Third #footnote[D, #footnote[E]] \ Fourth --- footnote-nested-same-frame --- // Currently, numbers a bit out of order if a nested footnote ends up in the // same frame as another one. :( #footnote[A, #footnote[B]], #footnote[C] --- footnote-entry --- // Test customization. #show footnote: set text(red) #show footnote.entry: set text(8pt, style: "italic") #set footnote.entry( indent: 0pt, gap: 0.6em, clearance: 0.3em, separator: repeat[.], ) Beautiful footnotes. #footnote[Wonderful, aren't they?] --- footnote-break-across-pages --- #set page(height: 200pt) #lines(2) #footnote[ // 1 I #footnote[II ...] // 2 ] #lines(6) #footnote[III: #lines(8, "1")] // 3 #lines(6) #footnote[IV: #lines(15, "1")] // 4 #lines(6) #footnote[V] // 5 --- footnote-in-columns --- // Test footnotes in columns, even those that are not enabled via `set page`. #set page(height: 120pt) #align(center, strong[Title]) #show: columns.with(2) #lines(3) #footnote(lines(4, "1")) #lines(2) #footnote(lines(2, "1")) --- footnote-in-caption --- // Test footnote in caption. Read the docs #footnote[https://typst.app/docs]! #figure( image("/assets/images/graph.png", width: 70%), caption: [ A graph #footnote[A _graph_ is a structure with nodes and edges.] ] ) More #footnote[just for ...] footnotes #footnote[... testing. :)] --- footnote-duplicate --- // Test duplicate footnotes. #let lang = footnote[Languages.] #let nums = footnote[Numbers.] / "Hello": A word #lang / "123": A number #nums - "Hello" #lang - "123" #nums + "Hello" #lang + "123" #nums #table( columns: 2, [Hello], [A word #lang], [123], [A number #nums], ) --- footnote-invariant --- // Ensure that a footnote and the first line of its entry // always end up on the same page. #set page(height: 120pt) #lines(5) A #footnote(lines(6, "1")) --- footnote-ref --- // Test references to footnotes. A footnote #footnote[Hi] \ A reference to it @fn --- footnote-ref-multiple --- // Multiple footnotes are refs First #footnote[A] \ Second #footnote[B] \ First ref @fn1 \ Third #footnote[C] \ Fourth #footnote[D] \ Fourth ref @fn4 \ Second ref @fn2 \ Second ref again @fn2 --- footnote-ref-forward --- // Forward reference Usage @fn \ Definition #footnote[Hi] --- footnote-ref-in-footnote --- // Footnote ref in footnote #footnote[Reference to next @fn] #footnote[Reference to myself @fn] #footnote[Reference to previous @fn] --- footnote-styling --- // Styling #show footnote: text.with(fill: red) Real #footnote[...] \ Ref @fn --- footnote-ref-call --- // Footnote call with label #footnote() #footnote[Hi] #ref() #footnote() --- footnote-in-table --- // Test footnotes in tables. When the table spans multiple pages, the footnotes // will all be after the table, but it shouldn't create any empty pages. #set page(height: 100pt) = Tables #table( columns: 2, [Hello footnote #footnote[This is a footnote.]], [This is more text], [This cell #footnote[This footnote is not on the same page] breaks over multiple pages.], image("/assets/images/tiger.jpg"), ) #table( columns: 3, ..range(1, 10) .map(numbering.with("a")) .map(v => upper(v) + footnote(v)) ) --- issue-multiple-footnote-in-one-line --- // Test that the logic that keeps footnote entry together with // their markers also works for multiple footnotes in a single // line. #set page(height: 100pt) #v(50pt) A #footnote[a] B #footnote[b] --- issue-1433-footnote-in-list --- // Test that footnotes in lists do not produce extraneous page breaks. The list // layout itself does not currently react to the footnotes layout, weakening the // "footnote and its entry are on the same page" invariant somewhat, but at // least there shouldn't be extra page breaks. #set page(height: 100pt) #block(height: 50pt, width: 100%, fill: aqua) - #footnote[1] - #footnote[2] --- issue-footnotes-skip-first-page --- // In this issue, we would get an empty page at the beginning because footnote // layout didn't properly check for in_last. #set page(height: 50pt) #footnote[A] #footnote[B] --- issue-4454-footnote-ref-numbering --- // Test that footnote references are numbered correctly. A #footnote(numbering: "*")[B], C @fn, D @fn, E @fn.