Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I'm using biblatex, and am still very new at it.

I can't figure out how to suppress certain fields automatically generated from my bibtex file into my .bbl file. For instance, for all of my entries, I have a category Language in which I record the language that that work was written in. This is just for my own database, and I don't want this information listed in the References at the end of my article/book. But it gets listed anyway. The same is true of my notes field. Is there anyway to suppress a specific field so that it does not show up in the "List of References"?

I would write my own style, but my knowledge of programming/TeX is not even close to being able to do that. I've noticed there is a solution for the ISBN number (an option isbn=false), and this is exactly what I need, but for different fields.

share|improve this question

2 Answers 2

The command \clearlist can be used to suppress a category. You can read more details in the documenation

texdoc biblatex

In the MWE below I have used filecontents* to create the bibliography, but if you already have a .bib file then you can delete these lines.

% this part creates mybib.bib
% delete these lines if you already have a .bib file
\begin{filecontents*}{mybib.bib}
@BOOK{Ab_Steg,
 author = "M. Abramowitz and I. A. Stegun",
 title = {Handbook of mathematical functions},
 publisher = "Dover publications",
 year = "1965",
 language="English" }
\end{filecontents*}
% end delete

\documentclass{article}
\usepackage{biblatex}

\bibliography{mybib}
\AtEveryBibitem{\clearlist{language}} % clears language
\AtEveryBibitem{\clearfield{note}}    % clears notes

\begin{document}

hello world \cite{Ab_Steg}

\printbibliography

\end{document}

The compilation sequence is

pdflatex myfile.tex
biber myfile.bcf
pdflatex myfile.tex
pdflatex myfile.tex

(You don't have to use the extensions if you don't want to.)

share|improve this answer
2  
Thank you very much, cmhughes, for the advice! It worked perfectly to suppress the information from the "Language" field, which is a variable of the \list command in the generated .bib file. And it led me to the solution for the other field I wanted to suppress: "note" - however, the "note" field is a variable of the \field command, so \clearlist{} doesn't work, but \clearfield{} does, as in: \AtEveryBibitem{\clearfield{note}} –  jeutzsch Oct 28 '11 at 9:04
    
@cmhughes Would you mind commenting on why you used '\clearlist' in the first case and '\clearfield' in the second? –  louis cypher Apr 21 '12 at 14:34
    
@louiscypher see Jeutzsch comment above –  cmhughes Apr 22 '12 at 10:55
    
@cmhughes Sorry I must have had tomatoes on my eyes –  louis cypher Apr 22 '12 at 12:23

If you are using Biber rather than BibTeX, you can supress/map any fields before BibLaTeX even sees them. See section 3.1.1 of the Biber PDF manual. For example, in your case, you could put this in your biber.conf (version 0.9.8+):

<config>
  <sourcemap>
    <maps datatype="bibtex" map_overwrite="1">
      <map>
        <map_step map_field_set="LANGUAGE" map_null="1"/>
        <map_step map_field_set="NOTES" map_null="1"/>
      </map>
    </maps>
  </sourcemap>
</config>

You can also do this only for specific entrytypes. See the Biber manual. There is a also a document level macro interface to this, see the biblatex 2.0+ manual. In your preamble, you could do the following, which is equivalent to the above:

\DeclareSourcemap{
  \maps[datatype=bibtex, overwrite]{
    \map{
      \step[fieldset=language, null]
      \step[fieldset=notes, null]
    }
  }
}
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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