summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorChen <53432474+werifu@users.noreply.github.com>2023-04-13 16:41:42 +0800
committerGitHub <noreply@github.com>2023-04-13 10:41:42 +0200
commita066a3d2831bc8e643349a54880671e9c7d11e0f (patch)
tree7355c76fa93a624a47f1a553c1d1434f6e568d69 /tests
parent8300f75f22cb4dd1b871a7e617397ff7d56ba001 (diff)
More flexible capability to control showing reference (#646)
Diffstat (limited to 'tests')
-rw-r--r--tests/ref/meta/ref.pngbin11693 -> 179188 bytes
-rw-r--r--tests/typ/meta/ref.typ101
2 files changed, 101 insertions, 0 deletions
diff --git a/tests/ref/meta/ref.png b/tests/ref/meta/ref.png
index 13e4db33..dc25a0ab 100644
--- a/tests/ref/meta/ref.png
+++ b/tests/ref/meta/ref.png
Binary files differ
diff --git a/tests/typ/meta/ref.typ b/tests/typ/meta/ref.typ
index 85750712..2bed2125 100644
--- a/tests/typ/meta/ref.typ
+++ b/tests/typ/meta/ref.typ
@@ -19,3 +19,104 @@ As seen in @intro, we proceed.
// Error: 1-5 label occurs multiple times in the document
@foo
+
+---
+
+#show ref: it => {
+ if it.element != none and it.element.func() == figure {
+ let element = it.element
+ "["
+ element.supplement
+ "-"
+ str(element.counter.at(element.location()).at(0))
+ "]"
+ // it
+ } else {
+ it
+ }
+}
+
+#figure(
+ image("/cylinder.svg", height: 3cm),
+ caption: [A sylinder.],
+ supplement: "Fig",
+) <fig1>
+
+#figure(
+ image("/tiger.jpg", height: 3cm),
+ caption: [A tiger.],
+ supplement: "Figg",
+) <fig2>
+
+#figure(
+ $ A = 1 $,
+ kind: "equation",
+ supplement: "Equa",
+
+) <eq1>
+@fig1
+
+@fig2
+
+@eq1
+
+---
+#set heading(numbering: (..nums) => {
+ nums.pos().map(str).join(".")
+ }, supplement: [Chapt])
+
+#show ref: it => {
+ if it.element != none and it.element.func() == heading {
+ let element = it.element
+ "["
+ emph(element.supplement)
+ "-"
+ numbering(element.numbering, ..counter(heading).at(element.location()))
+ "]"
+ } else {
+ it
+ }
+}
+
+= Introduction <intro>
+
+= Summary <sum>
+
+== Subsection <sub>
+
+@intro
+
+@sum
+
+@sub
+
+---
+
+#show ref: it => {
+ if it.element != none {
+ if it.element.func() == text {
+ let element = it.element
+ "["
+ element
+ "]"
+ } else if it.element.func() == underline {
+ let element = it.element
+ "{"
+ element
+ "}"
+ } else {
+ it
+ }
+ } else {
+ it
+ }
+}
+
+@txt
+
+Ref something unreferable <txt>
+
+@under
+#underline[
+Some underline text.
+] <under>