0
@Article{gk25en,
  author    = {Gk},
  title     = {hljhjdlasjdhkjfahkf},
  year      = {1925},
  journal   = {International Journal of Communication Systems},
}
@Article{jt,
  author    = {Gk},
  title     = {hljhjdlasjdhkjfahkf},
  year      = {1925},
  journal   = {Journal of Lightwave Technology},
}

When I used ctrl+alt+A in Jabref (Tools->Abbriviate journal names)

@Article{gk25en,
  author    = {Gk},
  title     = {hljhjdlasjdhkjfahkf},
  year      = {1925},
  journal   = {Int. J. Commun. Syst.},
}
@Article{jt,
  author    = {Gk},
  title     = {hljhjdlasjdhkjfahkf},
  year      = {1925},
  journal   = IEEE_J_JLT,
}

Which reflects in reference section (texstudio,biblatex):

gk25en: shown perfectly as: Int. J. Commun. Syst.

jt: Everything OK, except NO journal name shows in the reference section. I was expecting to show this as: J. Lightw. Technol.

  • 2
    The journal name in jt will only show if you have an entry of the form @string{IEEE_J_JLT = {Int. J. Commun. Syst.}} in your .bib file or in a separate file you also load with \addbibresource. – moewe Mar 14 '18 at 9:23
  • 1
    See also github.com/JabRef/jabref/issues/2485. I guess you only need \addbibresource{IEEEabrv.bib}. OR go to options -> preferences -> advanced and uncheck "Use IEEE LaTeX abbreviations". – moewe Mar 14 '18 at 9:38
  • I added \addbibresource{IEEEabrv.bib} where it is written @STRING{IEEE_J_JLT = "J. Lightw. Technol."} not as @string{IEEE_J_JLT = {J. Lightw. Technol.}}. However, in compile message it shows warning: undefined macro "IEEE_J_JLT". Is that the problem of "" and {} – Mr.EU Mar 14 '18 at 9:39
  • 1
    I see. Biber chokes on IEEEabrv.bib because it contains the non-ASCII char á (apparently as ANSI) in the comments ... That's a tricky one. – moewe Mar 14 '18 at 9:45
  • 1
    github.com/plk/biber/issues/216 is not actually a problem. In what order do you load the .bib files? The one defining the @strings should come first. I.e. put \addbibresource{IEEEabrv.bib} before \addbibresource{mybibfile.bib}. – moewe Mar 14 '18 at 10:23
1

The general idea is pretty simple. Instead of giving the value of a field with journal = {J. Lightw. Technol.}

journal   = IEEE_J_JLT,

sets journal up to use the value of a @string variable instead. That variable will be defined in a .bib file as

@STRING{IEEE_J_JLT = "J. Lightw. Technol."}

so you can use it. By changing that variable in a single location you can then influence multiple entries at once.

There are several issues here.

If you use the IEEE abbreviations in JabRef (see https://github.com/JabRef/jabref/issues/2485), you will need to load either IEEEabrv.bib for abbreviated journal names or IEEEfull.bib for full journal names. So you need

\addbibresource{IEEEabrv.bib}
\addbibresource{mybibfile.bib}

Note that IEEEabrv.bib needs to be loaded first since it provides the @string entries later used by your .bib file. See https://github.com/plk/biber/issues/218.

The last point is more problematic. IEEEarbv.bib contains one non-ASCII char (namely an á in Nicolás Barabino). If your document is set up so that it assumes UTF-8 or ASCII-encoded .bib files, Biber can not read that file properly and chokes (see BibLaTeX not working with Biber 2.8 - error reading .bib file in ascii format for background on that). If your document is latin1-encoded anyway or all your .bib files are in latin1 you may get away with this by telling TeX or Biber to use latin1. Otherwise you will need to modify IEEEarbv.bib. Copy the file to a location where TeX can find it, rename it to IEEEarbv-ascii.bib and change Nicolás Barabino to Nicol\'{a}s Barabino. Then note in the header that you changed the file to pure ASCII. While the file is distributed under the LPPL, it explicitly states

Retain all contribution notices and credits.
** Modified files should be clearly indicated as such, including  **
** renaming them and changing author support contact information. **

So you should probably avoid making that file public. (Though I think they should be fine with that change to the credits. But IANAL.)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.