Figures & Cross-References

Two figure styles are supported:

  • LaTeX \begin{figure} — rendered server-side as a clearly-labelled placeholder (for content created from PDF extraction before images are uploaded)
  • content-figure block — a real <img> with auto-numbered caption and \figref{} cross-references

LaTeX \begin{figure} — placeholder rendering

When a PDF is converted with MinerU, \includegraphics references cannot resolve
to blob URLs yet. The renderer shows a labelled placeholder so the rest of the
content stays readable during the upload step.

Nebula Carina diabadikan oleh VLT-ESO dalam panjang gelombang tampak dan inframerah, menampilkan kolom-kolom gas tempat bintang masif terbentuk.
Nebula Carina diabadikan oleh VLT-ESO dalam panjang gelombang tampak dan inframerah, menampilkan kolom-kolom gas tempat bintang masif terbentuk.

After running pdf_images_upload { jobId, courseId }, each placeholder is replaced with the real blob URL.

Content-figure — real image, auto-numbered

As shown in Gambar 1, the caption is auto-numbered and \figref{}
produces a clickable link that scrolls to the figure.

Nebula Carina dalam panjang gelombang tampak
Gambar 1. Nebula Carina (ESO 0932a) — salah satu wilayah pembentukan bintang paling aktif di galaksi kita, berjarak sekitar 7,500 tahun cahaya. Pilar-pilar gas raksasa di dalamnya mengandung ratusan gugus bintang muda. Sumber: ESO/VLT.

Forward reference

You can reference a figure before it appears in the document: Gambar 2
demonstrates the same block with a different id.

Gambar kedua untuk demonstrasi penomoran
Gambar 2. Tampilan kedua Nebula Carina — perhatikan bahwa nomornya bertambah secara otomatis menjadi "Gambar 4.2".

Catatan

  • id must use hyphens only, never colons (fig-ch4-hero ✓, fig:hero ✗).

  • Do not type **Gambar 4.1.** inside the figcaption — the renderer adds it.

  • A missing/unknown \figref{} target renders as a muted “Gambar ?” so broken
    references are visible during review.

  • To upload images from a PDF job: pdf_images_upload { jobId, courseId } rewrites
    \includegraphics paths to blob URLs in one pass, converting the placeholder
    into a proper <img> element.