Skip to content

Bug report: unexpected subsequent-author-substitute with truncated names #274

Description

@zepinglee

This was originally posted at https://tex.stackexchange.com/q/756102/82731 and I simplified it to the following test.

The spec of subsequent-author-substitute-rule="complete-all" says:

“complete-all” - (default), when all names of the name variable match those in the preceding bibliographic entry, the value of subsequent-author-substitute replaces the entire name list (including punctuation and terms like “et al” and “and”), except for the affixes set on the cs:names element.

In the following test, the names "Ulrich Luz et al." in the first entry do not match "Ulrich Luz" in the second entry, and thus the substitution should not happen. However, the current citeproc-js (c3a03eb) incorrectly substitutes the name in the second entry with dashes.

      + expected - actual

       <div class="csl-bib-body">
         <div class="csl-entry">Ulrich Luz et al.</div>
      -  <div class="csl-entry">---</div>
      +  <div class="csl-entry">Ulrich Luz</div>
>>===== MODE =====>>
bibliography
<<===== MODE =====<<


>>===== DESCRIPTION =====>>
<https://tex.stackexchange.com/q/756102/82731>
<<===== DESCRIPTION =====<<


>>===== RESULT =====>>
<div class="csl-bib-body">
  <div class="csl-entry">Ulrich Luz et al.</div>
  <div class="csl-entry">Ulrich Luz</div>
</div>
<<===== RESULT =====<<


>>===== CSL =====>>
<style xmlns="http://purl.org/net/xbiblio/csl" class="note" version="1.0">
  <info>
    <id />
    <title />
    <updated>2026-03-16T15:15:16+00:00</updated>
  </info>
  <citation>
    <layout>
      <text value="dummy"/>
    </layout>
  </citation>
  <bibliography et-al-min="3" et-al-use-first="1" subsequent-author-substitute="---" subsequent-author-substitute-rule="complete-all">
    <layout>
      <names variable="author"/>
    </layout>
  </bibliography>
</style>
<<===== CSL =====<<


>>===== INPUT =====>>
[
    {
        "id": "LuzEtAl_NachfolgeTRE",
        "type": "entry-encyclopedia",
        "author": [
            {
                "family": "Luz",
                "given": "Ulrich"
            },
            {
                "family": "Frank",
                "given": "Karl Suso"
            },
            {
                "family": "Riches",
                "given": "John K."
            },
            {
                "family": "Klimkeit",
                "given": "Hans-Joachim"
            }
        ]
    },
    {
        "id": "Luz_TRE23Nachfolge",
        "type": "entry-encyclopedia",
        "author": [
            {
                "family": "Luz",
                "given": "Ulrich"
            }
        ]
    }
]
<<===== INPUT =====<<


>>===== VERSION =====>>
1.0
<<===== VERSION =====<<

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