mirror of
https://github.com/typst/typst
synced 2025-05-14 04:56:26 +08:00
parent
5b11db0ef2
commit
ada30cd5b1
@ -431,6 +431,9 @@ impl<'a, 'b> Composer<'a, 'b, '_, '_> {
|
||||
// Find nested footnotes in the entry.
|
||||
let nested = find_in_frames::<FootnoteElem>(&frames);
|
||||
|
||||
// Check if there are any non-empty frames.
|
||||
let exist_non_empty_frame = frames.iter().any(|f| !f.is_empty());
|
||||
|
||||
// Extract the first frame.
|
||||
let mut iter = frames.into_iter();
|
||||
let first = iter.next().unwrap();
|
||||
@ -440,7 +443,7 @@ impl<'a, 'b> Composer<'a, 'b, '_, '_> {
|
||||
// possible, we then migrate the origin frame to the next region to
|
||||
// uphold the footnote invariant (that marker and entry are on the same
|
||||
// page). If not, we just queue the footnote for the next page.
|
||||
if first.is_empty() {
|
||||
if first.is_empty() && exist_non_empty_frame {
|
||||
if migratable {
|
||||
return Err(Stop::Finish(false));
|
||||
} else {
|
||||
|
BIN
tests/ref/issue-5354-footnote-empty-frame-infinite-loop.png
Normal file
BIN
tests/ref/issue-5354-footnote-empty-frame-infinite-loop.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.3 KiB |
@ -286,3 +286,8 @@ B #footnote[b]
|
||||
--- issue-4454-footnote-ref-numbering ---
|
||||
// Test that footnote references are numbered correctly.
|
||||
A #footnote(numbering: "*")[B]<fn>, C @fn, D @fn, E @fn.
|
||||
|
||||
--- issue-5354-footnote-empty-frame-infinite-loop ---
|
||||
// Test whether an empty footnote would cause infinite loop
|
||||
#show footnote.entry: it => {}
|
||||
#lorem(3) #footnote[A footnote]
|
||||
|
Loading…
x
Reference in New Issue
Block a user