Giter Club home page Giter Club logo

Comments (14)

github-young avatar github-young commented on September 4, 2024

added in v3.6.1

I implemented this but I think there is no need to add a popup menu. Please have a try before I close this issue. If it works well please close it.

from zotero-better-authors.

mjthoraval avatar mjthoraval commented on September 4, 2024

So here, the et al. would always replace the Last author?
image

And here, I ask to display 2 authors. But the entry with 2 author still gets the last author replaced by et al., thus displaying only 1 author:
image

Are these the expected behaviours?
I guess this could be considered as functional, if you explain what the Last author tick would do.
But I would still prefer the clear 3 display modes proposed in the first post of the issue.
And also for the reasons described here.

from zotero-better-authors.

mjthoraval avatar mjthoraval commented on September 4, 2024

In the new format, can I get only the last author with the last author indicator symbol?
image

from zotero-better-authors.

mjthoraval avatar mjthoraval commented on September 4, 2024

I am trying to clarify the problem here.
The settings that you have implemented are probably equivalent to the drop-down menu that I have suggested here.

The main confusion here is that the Last author can be included in the First authors. So the main thing to clarify is what happens in that case.
Whatever solution you choose, the most important thing would be to clarify this confusion.

from zotero-better-authors.

github-young avatar github-young commented on September 4, 2024

In the new format, can I get only the last author with the last author indicator symbol?

OK. Will be fixed in next release.

from zotero-better-authors.

github-young avatar github-young commented on September 4, 2024

And here, I ask to display 2 authors. But the entry with 2 author still gets the last author replaced by et al., thus displaying only 1 author:

Let me explain clearly to you: you asked to display 2 authors within the scope of first authors. In case of only 2 authors, there is only 1 author that is considered as the first authors. So the 2 you input cannot produce 2 authors among the whole author scope. Can this solve your issues?

from zotero-better-authors.

github-young avatar github-young commented on September 4, 2024

I am trying to clarify the problem here. The settings that you have implemented are probably equivalent to the drop-down menu that I have suggested here.

What I wrote is "I think there is no need to", and that means "I understand your request, but I have no time/effort to implement this, and this change does not affect using". So, again, PRs are welcome.

from zotero-better-authors.

mjthoraval avatar mjthoraval commented on September 4, 2024

Thank you for the explanations.

from zotero-better-authors.

github-young avatar github-young commented on September 4, 2024

So is it OK to close this issue?

FYI, usually, bugs are given the highest priority. Features are subject to time, ability, and necessity.

from zotero-better-authors.

mjthoraval avatar mjthoraval commented on September 4, 2024

Yes, this is solved.
I will test in more details, but I will post in a new issue for clarity, with the better understanding of the settings.
I will also try to clarify if I feel that it is a bug or a feature request.

Thanks!

from zotero-better-authors.

mjthoraval avatar mjthoraval commented on September 4, 2024

Let me explain clearly to you: you asked to display 2 authors within the scope of first authors. In case of only 2 authors, there is only 1 author that is considered as the first authors. So the 2 you input cannot produce 2 authors among the whole author scope. Can this solve your issues?

Just to clarify here, with the settings set to display 1 First author without displaying the Last author:
image

Following the logic you have explained, if there is only 1 author for an item, this means 0 First author and 1 Last author, right? So, since you do not display the Last author, and there is no First author to display, then you should not display anything, right?
This is not consistent with the current behaviour.

I am not saying that this is what you should do. Just that this logic probably does not work well.

from zotero-better-authors.

mjthoraval avatar mjthoraval commented on September 4, 2024

Here is the long answer to explain my original suggestion.
Hopefully that clarifies the earlier discussions.

There are different ways of implementing the et al. functionality.
The one you have implemented is probably fine (still quite complicated), but it is different from what I had in mind.
And I do not see how to use your current settings to achieve the et al. behaviour I was expecting.

The way I was thinking of the the et al. functionality was: display a maximum number of authors Nmax, with et al. counted as an author in the Nmax. The idea behind this rule is to impose the size of the output to display.
So, in more details, with N the actual number of authors for an item:

  • 0 ≤ N ≤ Nmax: Display all authors
  • N > Nmax: Display Nmax-1 authors + et al. if Nmax > 0

The Creator column follows this rule with Nmax = 2.
This is the rule for APA in-text citations (ignoring the disambiguation rules): https://libanswers.snhu.edu/faq/83432

Note that Nmax = 0 simply means to not display anything.
And Nmax = 1 only displays et al. for N > 1.
So the cases N < 2 are not so useful, but at least they are consistent with the rule.


There exist other et al. rules, different from the one I have described above.
For example, the Chicago style in-text citations (note citation, with Nmax = 3):

  • 0 ≤ N ≤ Nmax: Display all authors
  • N > Nmax: Display the first author + et al. if some auhtors have been omitted

Here, Nmax = 0 does the same as Nmax = 1.
This version of et al. rules is probably less suitable for the Authors List colum.

Another variation would be not to count the et al. as an author in the Nmax.
So:

  • 0 ≤ N ≤ Nmax: Display all authors
  • N > Nmax: Display Nmax authors + et al. if Nmax > 0

This variation is useful already from Nmax= 1.
It is probably the easiest to implement.


In the way you have implemented it, you can get the et al. behaviour only when Last author is unticked.
So this is what I will consider below as your et al. implementation.

  1. If you untick the First authors: You get nothing for N ≤ 1 and the ; et al. for N >1. This is not so useful and contradicts the idea of et al. representing omitted authors.

  2. If you tick the First authors with Nfa the number of first authors:
    A) Nfa = 0: This corresponds to showing all the First authors + et al..

    • N = 0: Do not display anything
    • N = 1: Display the only author. [This is in contradiction with your definition of First authors, as the only author is the Last author.]
    • N > 1: Always replace the Last author by et al.

    B) Nfa > 0: This corresponds to showing the Nfa First authors + et al..

    • N = 0: Do not display anything
    • N = 1: Display the only author. [This is also in contradiction with your definition of First authors.]
    • 1 < N ≤ Nfa: Display the N-1 first authors + et al. (so just replace the Last author with et al.)
    • N > Nfa: Display the Nfa First authors + et al.

I do not think that this implementation is really what anyone would expect from an et al. behaviour.


I understand that your initial intention for the Last author tick box was simply to remove the last author.
This idea is conceptually different from the et al. behaviour. So I do not think that you can keep that tick box to build an et al. behaviour.
Your earlier idea was to distinguish 3 parts in the authors list: First author - Middle authors - Last author. You can probably achieve more complex rules with this kind of distinction, like simply removing the first or the last author. But that also leads to problems when you have a small number of auhors. For example, if there is only 1 author, is it a First author, Middle authors or Last author?

In my original post in this issue, the First N authors parameter was including the last author, so different from your definition. Because with the drop-down menu, there is no expected functionality to remove the Last author, or remove the First Author. These concepts are not well defined and probably not so useful for the user.

from zotero-better-authors.

github-young avatar github-young commented on September 4, 2024

Before explaining my ideas, I would like to point out that:

I do not think that this implementation is really what anyone would expect from an et al. behaviour.

I would expect this implementation of an et al. behaviour.

As you mentioned, there are various styles for displaying the et al. mode like the APA and Chicago mode. I should, of course, have the right to pick my preferred style. If I wish, I would call it a github-young mode because there is no regulation on the et al. mode that I have to obey.

I understand we have different requests for the same function. Therefore I will reopen this issue with an edited title and see if anyone could help you implement your preferred style. I would merge PRs which properly solve potential conflicts.


The following explanation means what I intended to realize, but in the plugin I released, bugs may exist. I hope the bugs do not mess up the message I want to convey here.

I treat the items first authors and last author as pointer which is a reference index pointing to the actual data. And I put a higher priority on last author than first authors.

In the case of N>=2 total authors, things are clear. Let us assume their names are:
Author 1, Author 2, ..., Author N-1, Author N

graph TD;
    subgraph Pointers;
    p_FirstAuthors;
    p_LastAuthor;
    end;
    subgraph Authors;
    A1[Author 1];
    A2[Author 2];
    ...;
    AN-1[Author N-1];
    AN[Author N];
    end;
    p_FirstAuthors--> A1[Author 1];
    p_FirstAuthors--> A2[Author 2];
    p_FirstAuthors--> AN-1[Author N-1];
    p_LastAuthor  --> AN[Author N];
Loading

There are 4 combinations of the check status of the check box Last author and First authors. So the displayed text should behave as follows.

Case 1:

  • First authors
  • Last author
    It should display: (null, but now the program has a bug as you pointed out, and I will fix it)

If you untick the First authors: You get nothing for N ≤ 1 and the ; et al.

Case 2:

  • First authors
  • Last author
    It should display: Author N†

Case 3.1:

  • First authors with 0 input
  • Last author
    It should display: Author 1, Author 2, [each one], Author N-1, et al.

Case 3.2:

  • First authors with n input (1 <= n <= N-1)
  • Last author
    It should display: Author 1, Author 2, [each one], Author n, et al.

Case 3.3:

  • First authors with n input (N <= n)
  • Last author
    It should display: Author 1, Author 2, [each one], Author N-1, et al.

Case 4:

  • First authors
  • Last author
    It should display: just replace the et al. in Case 3.x with Author N†

For N=1, the last author pointer will point to THE author, but the first authors pointer in this case should not be null, so it has to point to the only existing element. Assume the name is Only Author:

graph TD;
    subgraph Pointers;
    p_FirstAuthors;
    p_LastAuthor;
    end
    subgraph Authors;
    A1[Only Author];
    end;
    p_FirstAuthors--> A1;
    p_LastAuthor --> A1;
Loading

So for N=1 case:

Case 1:

  • First authors
  • Last author
    It should display: (null)

Case 2:

  • First authors
  • Last author
    It should display: Only Author†

Case 3:

  • First authors
  • Last author
    It should display: Only Author

Case 4:

  • First authors
  • Last author
    It should display: Only Author†

You can see from the indicator that, the identity of the author displayed is different in different cases.


For N=0, of course, it should display nothing. So this case does not involve any pointers operations and the program returns an empty string immediately.

from zotero-better-authors.

mjthoraval avatar mjthoraval commented on September 4, 2024

Thank you very much!

from zotero-better-authors.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.