[Tex/LaTex] Remove URL in IEEEtran bibliography

bibtexconditionalsieeetranurls

The question refers to the topic: Disabling URLs in bibliography

Could you think of a solution, which allows to have the URL in bibliography entry or not depending on the entry type. I. e. remove the URL from the bibliography for article-type entries, but keep it for manual– or techreport-type entries?

Best Answer

To disable the printing of URLs for certain entry types -- say, article and book -- while using the IEEEtran bibliography style, just do the following:

  • Locate the file IEEEtran.bst in your TeX distribution. On mine, the file is at TEXMFDIST\bibtex\bst\IEEEtran\IEEEtran.bst. Copy this file to, say, myIEEEtran.bst. Open the file myIEEEtran.bst in an ASCII editor.

  • Search for the line that contains FUNCTION {article}. (In my version of the file, it's at line 1964.) About a dozen lines further down from that line, there should be a line that contains

    format.url output
    

    Delete this line.

  • Repeat the preceding step for all other entry types, e.g., for the entry type book (which follows directly after article in this .bst file) for which you also want BibTeX to ignore any URL-related information.

  • Save the .bst file, run texhash (or the equivalent command for your TeX distribution), if necessary, to update the filename database, and specify \bibliographystyle{myIEEEtran} from now on.

Note that this approach does not require you to mess with the contents of your .bib file(s). All it does is to instruct BibTeX to ignore the url field, if available, for entries of type article and book. If, in the future, you need to use a different bibliography style -- say, the original IEEEtran bibliography style! -- just change the argument of the \bibliographystyle command.

Addendum: apacite:

If you want to remove URLs from bibliographies processed with the apacite bibliography style, comment out or remove the following directive from apacite.sty (and rename the file suitably):

  % url empty$
  %   'skip$
  %   { % Clear the stack
  %     duplicate$ empty$
  %       'skip$
  %       { output.new.block }
  %     if$
  %     format.url
  %   }
  % if$