# Seamless crossreferencing

**URL:** <https://discourse.jabref.org/t/seamless-crossreferencing/100>\
**Category:** Features\
**Created:** [August 2, 2016, 3:18pm UTC](https://discourse.jabref.org/t/seamless-crossreferencing/100 "2016-08-02T15:18:07Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![i\_ngli](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.jabref.org/i_ngli/32/677_2.png) [@i\_ngli](https://discourse.jabref.org/u/i_ngli)\
**Post date:** [August 2, 2016, 3:18pm UTC](https://discourse.jabref.org/t/seamless-crossreferencing/100/1 "2016-08-02T15:18:07Z")

</div>

Given an existing entry for, e.g., a book/edited volume, when I now want to create another entry that crossreferences the first entry, several steps are required. Several ways are possible, none of which are seamless. For example I can copy the bibtexkey of the first entry and then manually generate the second entry, then I can paste the bibtexkey from the first entry.

My suggestion is twofold a) to add a shortcut with the function “add new entry with crossref to currently selected entry”; b) in an entry that contains a crossref to show (e.g. in italics) the data that would be “inherited” from the crossreferenced entry; the user could then see that inherited data whilst adding the specific data for the new (second) entry.

One could even ponder about a related similar feature © that would work via the main table: if the user drag-drops an entry line (entry A) onto another entry line (entry B), the user could be asked whether they want to have a crossref in B to A.

* * *

Please vote if you support this proposal:

_Poll ([view on site](https://discourse.jabref.org/t/seamless-crossreferencing/100/1))_

---

<div class="post-metadata">

**Author:** ![oscar.gustafsson](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.jabref.org/oscar.gustafsson/32/8_2.png) [@oscar.gustafsson](https://discourse.jabref.org/u/oscar.gustafsson)\
**Post date:** [August 9, 2016, 9:59am UTC](https://discourse.jabref.org/t/seamless-crossreferencing/100/2 "2016-08-09T09:59:56Z")

</div>

Some improvements related to the `crossref`field are in the pipe:

- [https://github.com/JabRef/jabref/pull/1644](https://github.com/JabRef/jabref/pull/1644) implements parts of what you describe, almost. Fields are resolved in the main table based on crossrefs (and strings and alias fields, e.g. year from date) and it can be shown if it is a resolved field.
- [https://github.com/JabRef/jabref/pull/1645](https://github.com/JabRef/jabref/pull/1645) gives automatic updating of the crossref field if you change the key of the parent entry

---

<div class="post-metadata">

**Author:** ![jethrobelle](https://avatars.discourse-cdn.com/v4/letter/j/b5ac83/32.png) [@jethrobelle](https://discourse.jabref.org/u/jethrobelle)\
**Post date:** [August 10, 2016, 2:19am UTC](https://discourse.jabref.org/t/seamless-crossreferencing/100/3 "2016-08-10T02:19:47Z")

</div>

It would be nice if the crossref entry was exported along with the calling entry when creating a citation .bib file for a paper (any`|File>Export selected enties>`). I find I don’t pick it up until trying to typeset and a message that the citation is unavailable appears.  
Also helpful would be the ability to enter the crossref in the `file` field along with a pdf page number that would automatically open the paper within conference `proceedings` or `collection`… This applies where you have a pdf copy of the complete `proceedings/collection/book` rather than individual pdfs for each paper.

---

<div class="post-metadata">

**Author:** ![i\_ngli](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.jabref.org/i_ngli/32/677_2.png) [@i\_ngli](https://discourse.jabref.org/u/i_ngli)\
**Post date:** [August 10, 2016, 8:33am UTC](https://discourse.jabref.org/t/seamless-crossreferencing/100/4 "2016-08-10T08:33:23Z")

</div>

@oscar.gustafsson, I guess the first part of @jethrobelle’s suggestion

> It would be nice if the crossref entry was exported along with the calling entry when creating a citation .bib file for a paper (any|File\>Export selected enties\>). I find I don’t pick it up until trying to typeset and a message that the citation is unavailable appears.  
> would fit well to context of the changes in the main table.

I imagine that @jethrobelle’s second suggestion is suggesting a qualitatively new logics. Still, I agree that it would be helpful.

---

<div class="post-metadata">

**Author:** ![jethrobelle](https://avatars.discourse-cdn.com/v4/letter/j/b5ac83/32.png) [@jethrobelle](https://discourse.jabref.org/u/jethrobelle)\
**Post date:** [August 10, 2016, 11:57pm UTC](https://discourse.jabref.org/t/seamless-crossreferencing/100/5 "2016-08-10T23:57:59Z")

</div>

@oscar your guess is spot on:-). I only raised it here because it may affect the GUI logic given the pdf access is to the crossreferenced entry file. I currently set up the crosslinked pdf at the same time I set up the crosslink: given I have the PDF open from the crosslinked entry. Currently I enter: crossref-bibtexkey pdf-page, Library Resource.

bibtex eg:`file = {:AGARD1981Cfdoj p.425:Library Resource},`

That means currently to open what I think could be automated requires the following manual steps:

```
Search for crossfef-bibtexkey
Open pdf
Type pdf-page as PFD viewer number

```

If automated clicking on the entry file link would open the crossref-pdf at the required page: BRILLIANT.

PS: I use file type “`Library Resource`” becasue JabRef lets me.  
PPS: The alternative is to enter the parent file link directly in each entry, making any subsequent file changes a nighmare. I have one link (one entry only) to one file within my database, avoiding this ‘rats nest’ of links to the file system.

---

<div class="post-metadata">

**Author:** ![matthiasgeiger](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.jabref.org/matthiasgeiger/32/7_2.png) [@matthiasgeiger](https://discourse.jabref.org/u/matthiasgeiger)\
**Post date:** [August 11, 2016, 6:32am UTC](https://discourse.jabref.org/t/seamless-crossreferencing/100/6 "2016-08-11T06:32:36Z")

</div>

Just a short note regarding:

> If automated clicking on the entry file link would open the crossref-pdf at the required page: BRILLIANT.

I tried this in another context an unfortunately this is not possible. The only way to achieve this is to open the file in a web browser - but this is not appropriate for a Desktop application as JabRef.

---

<div class="post-metadata">

**Author:** ![jethrobelle](https://avatars.discourse-cdn.com/v4/letter/j/b5ac83/32.png) [@jethrobelle](https://discourse.jabref.org/u/jethrobelle)\
**Post date:** [August 12, 2016, 12:12am UTC](https://discourse.jabref.org/t/seamless-crossreferencing/100/7 "2016-08-12T00:12:56Z")

</div>

That is not a universal truth Matthias. On windows with PDF-XChange viewer the following command line works for me (with Windows path correctly set).

```
C:>PDFXCview /A page=10 filename.pdf

```

Docear, which is built on JabRef, will open directly a PDF annotation on any page from the link embedded in the mind map (using PDF-XChange viewer). That source code is available.

If this part is not implementable due to difficulty and desire to not be tied to specific pdf-viewers the remainder of my idea would be helpful.

---

<div class="post-metadata">

**Author:** ![Dellu](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.jabref.org/dellu/32/219_2.png) [@Dellu](https://discourse.jabref.org/u/Dellu)\
**Post date:** [October 4, 2016, 8:29pm UTC](https://discourse.jabref.org/t/seamless-crossreferencing/100/8 "2016-10-04T20:29:15Z")

</div>

> [@oscar.gustafsson](#):
>
> gives automatic updating of the crossref field if you change the key of the parent entry

Thank you. That is really great feature. I was worrying losing my links to the parent. I am donating 10£ from my student pocket to show my appreciation of what you are doing.

---

<div class="post-metadata">

**Author:** ![Dellu](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.jabref.org/dellu/32/219_2.png) [@Dellu](https://discourse.jabref.org/u/Dellu)\
**Post date:** [December 16, 2016, 2:41pm UTC](https://discourse.jabref.org/t/seamless-crossreferencing/100/9 "2016-12-16T14:41:51Z")

</div>

If you are a Keyboard Maestro user (mac), here is a small script to do the “seamless crossreferencing”.

> **[CROSSREF: Book--\> incollection.kmmacros](https://www.dropbox.com/s/u5hyb0zfw61229m/CROSSREF:%20Book--%3E%20incollection.kmmacros?dl=0)**
>
> Shared with Dropbox

1. copies the BibTex key of the parent
2. creates a new _incollection_ entry
3. pastes the BibTex key into the _crossref_ field of the newly created entry.

* * *

just select the parent (book) entry and click the shortcut (CMD+Alt+L)

---

<div class="post-metadata">

**Author:** ![i\_ngli](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.jabref.org/i_ngli/32/677_2.png) [@i\_ngli](https://discourse.jabref.org/u/i_ngli)\
**Post date:** [March 15, 2017, 9:04am UTC](https://discourse.jabref.org/t/seamless-crossreferencing/100/10 "2017-03-15T09:04:06Z")

</div>

Thanks @Dellu - unfortunately I am not on a Mac.

Anybody else: if I may ask, is it conceivable to consider adding a function, e.g. in the contextual menu of a selected entry that specifies,

```
 "add new entry with crossref to currently selected entry"

```

?

Cheers,  
Ingmar

---

<div class="post-metadata">

**Author:** ![i\_ngli](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.jabref.org/i_ngli/32/677_2.png) [@i\_ngli](https://discourse.jabref.org/u/i_ngli)\
**Post date:** [May 3, 2020, 3:42pm UTC](https://discourse.jabref.org/t/seamless-crossreferencing/100/11 "2020-05-03T15:42:18Z")

</div>

this issue is now on [github](https://github.com/JabRef/jabref/issues/6294)
