Skip to content

cite(form: "prose") does not work well with superscript citation styles #511

Description

@YDX-2147483647

This issue was originally reported by 液氦杯面🍜 in the Chinese community.

A CSL may specify vertical-align="sup" to render citations in superscripts. gb-7714-2015-numeric is an example.

For such styles, cite(form: "prose") puts the citation number in a superscript, but puts the affixes on the baseline. That looks ugly.

I suggest we include the affixes in the superscript.

Minimal example

test.csl
<?xml version="1.0" encoding="utf-8"?>
<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0">
  <info>
    <title/>
    <id/>
    <category citation-format="numeric"/>
  </info>
  <citation>
    <layout vertical-align="sup" prefix="[" suffix="]">
      <text variable="citation-number"/>
    </layout>
  </citation>
  <bibliography >
    <layout>
      <names variable="author"/>
    </layout>
  </bibliography>
</style>
- Normal form @a
- Prose form: #cite(<a>, form: "prose")

#bibliography(
  bytes("@article{a, author = {Author}}"),
  style: "test.csl",
)

Typst v0.15.1 paged output:

Image

Typst v0.15.1 HTML output (This eliminates the possibility of font issues):

<ul>
  <li>Normal form<sup role="doc-biblioref">[</sup><a href="#loc-1" role="doc-biblioref"><sup>1</sup></a><sup role="doc-biblioref">]</sup></li>
  <li>Prose form: <a href="#loc-1" role="doc-biblioref">Author [<sup>1</sup>]</a></li>
</ul>

Expected output:

Image

Relevant code

hayagriva/src/csl/mod.rs

Lines 1847 to 1854 in 9781848

// Print the label.
if let Some(prefix) = self.csl.citation.layout.prefix.as_ref() {
ctx.push_str(prefix);
}
do_regular(&mut ctx);
if let Some(suffix) = self.csl.citation.layout.suffix.as_ref() {
ctx.push_str(suffix);
}

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions