IsSortByPosition ignored
JabRef version
5.11 (latest release)
Operating system
GNU / Linux
Details on version and operating system
OpenSuse 15.4
Checked with the latest development build (copy version output from About dialog)
- [X] I made a backup of my libraries before testing the latest development version.
- [X] I have tested the latest development version and the problem persists
Steps to reproduce the behaviour
- Edit jstyle file so that IsSortByPosition="true"
- Generate the bibliography
The bibliography will be alphabetical. Everything else is as expected.
Appendix
jstyle file:
NAME Frontiers Journal Harvard Style
JOURNALS Frontiers
PROPERTIES Title="References" IsSortByPosition="true" IsNumberEntries="false" ReferenceParagraphFormat="Text body" ReferenceHeaderParagraphFormat="Heading 1"
CITATION BibtexKeyCitations="false" AuthorField="author/editor" YearField="year" MaxAuthors="2" MaxAuthorsFirst="2" AuthorSeparator="," AuthorLastSeparator="" AuthorLastSeparatorInText=" and " EtAlString=" et al." YearSeparator=" " InTextYearSeparator=" " BracketBefore="(" BracketAfter=")" BracketBeforeInList="[" BracketAfterInList="] " CitationSeparator=", " UniquefierSeparator="," GroupedNumbersSeparator="-" MinimumGroupingCount="3" FormatCitations="false" CitationCharacterFormat="Default" MultiCiteChronological="true" LAYOUT article=\format[AuthorLastFirst,AuthorAbbreviator,AuthorAndsReplacer]{\author} (\year\uniq). \title, \journal \volume\begin{pages} : \format[FormatPagesForHTML]{\pages}\end{pages}.
book=\format[AuthorLastFirst,AuthorAbbreviator,AuthorAndsReplacer]{\author}\begin{editor}\format[AuthorLastFirst,AuthorAbbreviator,AuthorAndsReplacer]{\editor} (Ed.)\end{editor}, \year\uniq. \title. \publisher, \address.
incollection=\format[AuthorLastFirst,AuthorAbbreviator,AuthorAndsReplacer]{\author} (\year\uniq). \title. In: \format[AuthorLastFirst,AuthorAbbreviator,AuthorAndsReplacer]{\editor} (Ed.), \booktitle, \publisher.
inbook=\format[AuthorLastFirst,AuthorAbbreviator,AuthorAndsReplacer]{\author} (\year\uniq). \chapter. In: \format[AuthorLastFirst,AuthorAbbreviator,AuthorAndsReplacer]{\editor} (Ed.), \title, \publisher.
phdthesis=\format[AuthorLastFirst,AuthorAbbreviator,AuthorAndsReplacer]{\author} (\year\uniq). \title, \school.
default=\format[AuthorLastFirst,AuthorAbbreviator,AuthorAndsReplacer]{\author} (\year\uniq). \title, \journal \volume\begin{pages} : \format[FormatPagesForHTML]{\pages}\end{pages}.
Hi @vigmond, I would like to work on this issue.
As a general advice for newcomers: check out Contributing for a start. Also, guidelines for setting up a local workspace is worth having a look at.
Feel free to ask here at GitHub, if you have any issue related questions. If you have questions about how to setup your workspace use JabRef's Gitter chat. Try to open a (draft) pull-request early on, so that people can see you are working on the issue and so that they can see the direction the pull request is heading towards. This way, you will likely receive valuable feedback.
@vigmond could you please provide screenshots of prior and expected output?
@HarikaB11 this is not marked as "good first issue". If at any point you feel this is too tough an issue, feel free to check out other issues from the projects page. We are looking forward to transition to CSL styles in LibreOffice/OpenOffice eventually, as there is an organisation behind them that actively maintaines their styles. They also do have a lot more styles.
Hi
Here is the screenshot. Note that the references inserted in the libreoffice document are in alphabetical order and not in the order in which they are cited.
The problem was reproduced on a MacBook Pro 14" M2 running Sonoma.
It works correctly if the in-text citation is a number and not AuthorYear (isNumberEntries=true).
Sorry but nevermind. It makes little sense to use Author date and then not sort the bibliography by author.
For some info on the parameters see https://docs.jabref.org/cite/openofficeintegration
Could anybody give a hint as to where the underlying issue could be? I checked CitationGroups.java and a few other probable places, but could find no issue.
@subhramit Maybe @antalk2 can share some knowledge from 2022. He rewrote much parts of the code in 2021/2022: https://github.com/JabRef/jabref/pulls?q=is%3Apr+author%3Aantalk2+sort%3Aupdated-desc. No one else touched these parts of JabRef then.
There's also some documentation in our devdocs
Link to the general devdocs regarding LibreOffice integration: https://devdocs.jabref.org/code-howtos/openoffice/
I am not sure what knowledge is needed that I could share. Or, what is the problem we are trying to solve.
As vigmond mentioned above: "It makes little sense to use Author date and then not sort the bibliography by author."
Nevertheless, I include pointers below to what I found, just in case.
Docs
According to
doc: https://devdocs.jabref.org/code-howtos/openoffice/overview.html#citation-styles src: https://github.com/JabRef/jabref/blob/9116477440218d4c0aafdf95fa64cbbbf379fa63/docs/code-howtos/openoffice/overview.md?plain=1#L120
four styles are supported:
- (1)
jstyle:BibTeXKeyCitations - (2) Citations numbered in order of first appearance (
jstyle:IsSortByPosition) - (3) Citations numbered according to their order in the sorted bibliography
- (4) Author-year styles
(It is not spelled out above, but I believe (3) sorts as Author-year, and numbers the citations accordingly.)
Maybe the user documentation
- https://docs.jabref.org/cite/openofficeintegration#the-style-file
- or the description of IsSortByPosition https://docs.jabref.org/cite/openofficeintegration#global-properties could be extended to clarify the situation for users.
Technical background
I think (but could not test now), I did not change this aspect.
-
The accessor to
jstyle:IsSortByPositionin the code: https://github.com/JabRef/jabref/blob/9818ba82117da912fad0e80ac6a905521618597d/src/main/java/org/jabref/logic/openoffice/style/OOBibStyle.java#L463 -
It is used in a single location, in OOProcessNumericMarkers::produceCitationMarkers() https://github.com/JabRef/jabref/blob/9818ba82117da912fad0e80ac6a905521618597d/src/main/java/org/jabref/logic/openoffice/style/OOProcessNumericMarkers.java#L28
In particular: https://github.com/JabRef/jabref/blob/20e1e6ac2a7ee568d85dff7542dc6bec65730d4b/src/main/java/org/jabref/logic/openoffice/style/OOProcessAuthorYearMarkers.java#L129
calls https://github.com/JabRef/jabref/blob/20e1e6ac2a7ee568d85dff7542dc6bec65730d4b/src/main/java/org/jabref/logic/openoffice/style/OOProcessAuthorYearMarkers.java#L138
unconditionally.
@antalk2 Thank you so much for taking your time to help here. This should a bit guide newcomers to the code!
@vigmond Reading your comment and the comment by @antalk2, it seems, we just need to close issue, because it is a no-issue. - If I am mistaken, please comment here.