14

I am using the following BibTeX style for my bibliography.

   \bibliographystyle{IEEEtran}
   \bibliography{IEEEabrv,references,thesis}

This formats bibliography entries like this:

enter image description here

, including a hyperlink to the web if provided. For brevity, I don't want it to show the URLs. How can I deactivate them?

EDIT: Let me clarify - I want to save space by not showing the URL, although the BibTeX entry for the publication contains a URL.

5
  • Do you want to deactivate the hyperlinks for all possible URLs in your document or just for those URLs appearing in your bibliography? May 23, 2012 at 17:52
  • 1
    I want to remove the URLs from my Bibliography without editing the .bib file.
    – clstaudt
    May 23, 2012 at 18:01
  • I think the only way to do this would be editing the IEEEtrans.cls and make it somehow ignore the URL entries. Can you edit the .cls?
    – Dan
    May 23, 2012 at 18:48
  • 3
    I've just goggled it a bit, and apparently you can do this by editing the .bst file. Check this out tug.org/pipermail/tex-live/2007-August/014582.html
    – Dan
    May 23, 2012 at 18:53
  • @Dan Yes, this works. Had you posted this as an answer, I could accept it now. ;)
    – clstaudt
    May 23, 2012 at 18:59

4 Answers 4

14

If you don't want BibTeX to print out the URL field for a given entry even though a URL field is present, you need to edit the bibliography style file -- in the present case, the file IEEEtran.bst -- to disable this printing. Make a copy of the file IEEEtran.bst and call it, say, myIEEEtran.bst. Open the new file in a text editor and search for the function format.url. It should look like this:

FUNCTION {format.url}
{ url empty$
    { "" }
    { this.to.prev.status
      this.status.std
      cap.yes 'status.cap :=
      name.url.prefix " " *
      "\url{" * url * "}" *
      punct.no 'this.status.punct :=
      punct.period 'prev.status.punct :=
      space.normal 'this.status.space :=
      space.normal 'prev.status.space :=
      quote.no 'this.status.quote :=
    }
  if$
}

Replace this function with the following "dummy" function:

FUNCTION {format.url}
{ url empty$
    { "" }
    { "" }
  if$
}

In short, you're telling BibTeX not to print out any information contained in the URL field. Save the file, update the filename database if necessary (e.g., if using TeXLive, type texhash in a command window), and be sure to use the new bibliography style file from now on. Happy TeXing!

3
  • 1
    This should be marked as the correct answer, as the author of this question recognised in my comment above (which is pretty much the same as this answer) tex.stackexchange.com/questions/57087/…
    – Dan
    May 23, 2012 at 19:32
  • This also worked with a bib style called aipproc.bst
    – drevicko
    Aug 16, 2014 at 18:56
  • @drevicko - Thanks! Indeed, the method should work for a great many (all?!) bibliography styles that feature a function called format.url and, naturally, .bib files with entries with a field named url.
    – Mico
    Aug 16, 2014 at 19:01
13

The IEEEtran BibTeX style provides an option to deactivate the display of URLs through use of its BST control functionality. To do so, create a BibTeX entry in one of your .bib files as follows:

@IEEEtranBSTCTL{BSTcontrol,
CTLuse_url = "no",
}

Then, activate the BST control with the \bstctlcite command. It is best to place this command right after \begin{document} because it will only alter the formatting of the citations that follow it.

\begin{document}
\bstctlcite{BSTcontrol}

This method is described in the IEEEtran BibTeX how-to file.

Note that this method avoids editing the ieeetran.bst style file.

2

I'm a little bit late to the party, but for anyone else looking for a way to do this it is also possible to make a new version of the IEEEtran.bst file as above and edit the following lines:

% #0 turns off the display of urls
% #1 enables
FUNCTION {default.is.use.url} { #1 }

to be:

FUNCTION {default.is.use.url} { #0 }

Make sure you rename the file and use the edited version.

0

\hypersetup{hidelinks=true} will make the links "hidden" (typeset without emphasis, but still clickable).

You can switch this on and off for parts of the text (using \hypersetup{hidelinks=false} appropriately), so you can hide only the bibliography links or all links in the document.

2
  • inserting this command gives me an error: Package kvsetkeys Error: Undefined key 'hidelinks'.
    – clstaudt
    May 23, 2012 at 18:04
  • 1
    It is also not a solution to my problem, because it removes the colored border/clickable link, not the URL. I hope have formulated the question more clearly now.
    – clstaudt
    May 23, 2012 at 18:11

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .