jabref icon indicating copy to clipboard operation
jabref copied to clipboard

Add "Non-standard Types" of biblatex entry types

Open ThiloteE opened this issue 8 months ago • 10 comments

JabRef 6.0-alpha.459--2025-04-16--b3530c1 Windows 10 10.0 amd64 Java 23.0.1 JavaFX 24+29

Related to https://github.com/plk/biblatex/issues/1454

Biblatex supports "Non-standard Types" entry types.

  • See page 14 of https://de.mirrors.cicku.me/ctan/macros/latex/contrib/biblatex/doc/biblatex.pdf).
  • Also accessible via https://ctan.org/pkg/biblatex

Is your suggestion for improvement related to a problem? Please describe. My problem is that I am sometimes confused what entry type I should pick in the entry-editor for example for video or image. Reading through the biblatex documentation, I found that "Non-standard Types" are mapped to the "misc" entry type, but to me "misc" is only a fall-back, if nothing else fits, so I am searching and searching for the correct type and cannot find and will finally settle on misc, but that time searching could be diminished by having the "Non-standard Types" available. I think having to cite a video or image or audio is not really something extraordinary in the year 2025.

In short: Non-standard Types are a time-saver.

Describe the solution you'd like Add Non-Standard Types to

  • The entry editor Image
  • Add entry dialog Image

Additional Context Biblatex-Chicago supports the following entry types by default: Image

  • See page 7 of https://ctan.mc1.root.project-creative.net/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/biblatex-chicago.pdf
  • Also accessible via https://ctan.org/pkg/biblatex-chicago

ThiloteE avatar Apr 18 '25 14:04 ThiloteE

Completed? Maybe you can add some explanations, in case some user has the same problem as yours 😃

I remember JabRef has some support for custom entry types -- maybe this can help too

InAnYan avatar Apr 18 '25 15:04 InAnYan

Closed, not completed, because to tag this as good first issue it might require pointers to code.

ThiloteE avatar Apr 18 '25 16:04 ThiloteE

Four directions:

A Custom Entry Types

  • Guide the end users to https://docs.jabref.org/setup/customentrytypes
  • Offer pre-configured entry types .bib files. We can "easily" create one for Chicago
  • Offer a repository for custom entry types collections and have JabRef make the access to it seamlessly.

B style detection based on .tex

JabRef could parse the .tex files belonging to the .bib file to find out the bibliography style and adapt the UI accordingly.

C hard code the famous types

We can hard code more and more types. However, not all types are supported by all styles. This is a WTF to users (especially to me).

D hard code different styles

We could have a "citation mode" in the bib file. Then, the offered types are changed to the mode. Depending on the mode, JabRef offers different types. All types are hardcoded.

Since there are maybe 30 popular styles, this could be doable. Over the years, we could support all 1000+ styles.

koppor avatar Apr 18 '25 17:04 koppor

Add a built-in “BibLaTeX Extra Types” section in the Add Entry dialog (and type selector).

This section would include commonly used non-standard BibLaTeX types, such as: image, video, audio, dataset, software, legal, legislation, jurisdiction, codefragment, etc.

They can be placed in a collapsible group (e.g., “BibLaTeX Extra Types”) with short tooltips so users know what each type represents.

Why this helps: Users often don’t know that these types exist in BibLaTeX and end up searching endlessly before settling on misc. Showing them directly in the UI removes that confusion.

Why I believe this direction works better than the others Compared to custom entry types (Option A):

These types are already part of BibLaTeX, so users shouldn’t have to manually configure them.

Compared to style detection (Option B):

Detecting styles from .tex files is powerful, but it also adds a lot of complexity and doesn’t solve the core issue immediately.

Compared to full style profiles (Option D):

Supporting many citation styles long-term would require ongoing maintenance. This issue can be solved without that level of overhead.

Key Benefits

Immediate improvement for anyone citing images, videos, datasets, audio, etc.

Very small and safe code change—mostly UI.

Fully compatible with BibLaTeX’s fallback behavior (types gracefully degrade to misc).

Makes JabRef feel more modern and intuitive, especially for multimedia-heavy work.

Next Steps

If this approach sounds good to you, I’m happy to start working on the implementation. I’m also completely open to suggestions or adjustments—if you think something should be done differently, I’d be glad to discuss it @koppor @ThiloteE

shubhamk0205 avatar Dec 05 '25 00:12 shubhamk0205

Screenshot of page 14:

Image Image

These are 15 types.

We should just hard-code them for now: Option C.

General

Offer them in BibLaTeX mode only.

Logic Part

Introduce .withType to org.jabref.model.entry.BibEntryType, which returns a new BibEntryType with the type changed. Then, the 15 new types can be implemetended with one liners.

UI Part

Add new group "Non-standard Types" and offer all 15 there.


@shubhamk0205 Your comment reads like LLM generated, please try to dive into the context for yourself.

koppor avatar Dec 05 '25 02:12 koppor

@koppor thank u for advice . form now on i will try my best to write it myself and dont use any LLM for writing and formatting my solution

shubhamk0205 avatar Dec 05 '25 16:12 shubhamk0205

/assign-me

shubhamk0205 avatar Dec 05 '25 18:12 shubhamk0205

⚠️ Assignment Limit Reached

Hi @shubhamk0205, you've reached the maximum number of 1 concurrent assignments.

[!NOTE] Please complete or unassign from your current issues before taking on new ones.

Current options
  • Complete one of your assigned issues and close it
  • Use /unassign-me on an issue you're no longer working on
  • Ask a maintainer for an exception if this is a special case

jabref-machine avatar Dec 05 '25 18:12 jabref-machine

/assign @shubhamk0205

koppor avatar Dec 05 '25 21:12 koppor

👋 Hey @shubhamk0205, thank you for your interest in this issue! 🎉

We're excited to have you on board. Start by exploring our Contributing guidelines, and set up your local development workspace by following the steps in our workspace setup guidelines to get started smoothly.

For questions on JabRef functionality, you can consult the JabRef Guru. For questions related to the codebase, please start using DeepWiki.

In case you encounter failing tests during development, please check our developer FAQs!

Still facing issues or having more questions? Feel free to ask here on GitHub or on JabRef's Gitter chat. Please don't hesitate to open a (draft) pull request early on to show the direction you are heading towards if unsure.

Happy coding! 🚀

jabref-machine avatar Dec 05 '25 21:12 jabref-machine

We think that this issue was fixed. Please head to https://builds.jabref.org/main to download a development build and try it out.

For any feedback, add a comment to the pull request at https://github.com/JabRef/jabref/pull/14534.

github-actions[bot] avatar Dec 11 '25 19:12 github-actions[bot]