quarto-dev / quarto-cli

Open-source scientific and technical publishing system built on Pandoc.
https://quarto.org
Other
3.59k stars 294 forks source link

odd behavior if cross-referencing an image as an equation #9960

Open m-clark opened 1 month ago

m-clark commented 1 month ago

Bug description

Kind of a weird one. Due to some annotated equations that won't render in html, I'm screenshotting the latex output and showing the image so it will work for both. However, I'd still like the cross-reference for the figure to be an equation. This could also be useful when displaying tables from other papers (saving the trouble of recreating), you could just snag the image and use that while still cross-referencing it as a table.

Figure references for the images are fine. These are not the issue.

Table references for the images, such as ![](img/someimg.png){#tbl-x}, also actually appear to work for table cross-references.

This doesn't hold for equations.

I've attached the pdf produced from the following code, but the same thing happens in html (not able to attach)

Steps to reproduce

---
title: "Untitled"
format: 
    pdf:
        fig-pos: 'H'

crossref:
    fig-prefix: Figure # can we do better than figure? 
    tbl-prefix: Table
    eq-prefix: Equation
---

No cross-reference of any kind, misaligns to left

![](../img/eq-model-basic.png){#eq-test width=50%}

\pagebreak

Figure cross-reference works as expected 

![](../img/eq-model-basic.png){#fig-test width=50%}

\pagebreak

Table cross-reference works as expected 

![](../img/eq-model-basic.png){#tbl-test width=50%}

\pagebreak

Adding a caption results in it being appropriately centered, but still not cross-referenced as an equation.

![howdy!](../img/eq-model-basic.png){#eq-test width=50%}

\pagebreak

As expected

![howdy!](../img/eq-model-basic.png){#fig-test width=50%}

\pagebreak

As expected

![howdy!](../img/eq-model-basic.png){#tbl-test width=50%}

test.pdf

Expected behavior

I would expect that if figure and table cross-references both work for a figure, an equation cross-reference for a figure should too.

Actual behavior

It may not produce any cross-reference, or not an equation cross-reference.

Your environment

Quarto check output

Quarto 1.5.6 [✓] Checking versions of quarto binary dependencies... Pandoc version 3.1.11: OK Dart Sass version 1.69.5: OK Deno version 1.37.2: OK [✓] Checking versions of quarto dependencies......OK [✓] Checking Quarto installation......OK Version: 1.5.6 Path: /Applications/quarto/bin

[✓] Checking tools....................OK TinyTeX: v2024.06 Chromium: (not installed)

[✓] Checking LaTeX....................OK Using: TinyTex Path: /Users/micl/Library/TinyTeX/bin/universal-darwin Version: 2024

[✓] Checking basic markdown render....OK

[✓] Checking Python 3 installation....OK Version: 3.11.5 (Conda) Path: /Users/micl/anaconda3/bin/python Jupyter: 5.3.0 Kernels: python3

[✓] Checking Jupyter engine render....OK

(|) Checking R installation...........── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ── ✔ dplyr 1.1.4 ✔ readr 2.1.5 ✔ forcats 1.0.0 ✔ stringr 1.5.1 ✔ ggplot2 3.5.1 ✔ tibble 3.2.1 ✔ lubridate 1.9.3 ✔ tidyr 1.3.1 ✔ purrr 1.0.2
(/) Checking R installation...........── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ── ✖ ::() masks ℹ Use the conflicted package (http://conflicted.r-lib.org/) to force all conflicts to become errors

Attaching package: ‘scales’

The following object is masked from ‘package:purrr’:

discard

The following object is masked from ‘package:readr’:

col_factor

[✓] Checking R installation...........OK Version: 4.3.3 Path: /Library/Frameworks/R.framework/Resources LibPaths:

[✓] Checking Knitr engine render......OK

cscheid commented 1 month ago

Expected behavior

I would expect that if figure and table cross-references both work for a figure, an equation cross-reference for a figure should too.

That's a valid expectation, but not how Quarto currently works. Figure and Table are float crossreferences. Equations are not.

It's something we can look into improving in the future, but no concrete plans to share.

m-clark commented 1 month ago

I kind of figured it might not be a true bug but thought to check. Thanks as always for the prompt response, feel free to close if desired.