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 need to create a list of citation shorthands, but my document only uses shorthands to works of one single author. The full citation scheme in shorthands is, therefor, redundant: It should omit the author's name.

That is achievable by reseting the author field with an \AtBeginShorthands, like:

\AtBeginShorthands{\renewbibmacro*{author}{}}

But I also need this behavior in other places: There's a section i the document where I'm planning to put a description list, introducing and explaining the main bibliography...

I'd like to create a separate bibliography, something like “Works by Author Name”, where the author's name would also be redundant... (I think this supposed to be made inside a \defbibenvironment but I don't know how)

So, summarizing:

  • 1) how to reset author bibmacro inside a single environment
  • 2) how to reset author bibmacro inside a separated bibliography
share|improve this question
    
i managed to do the first thing --- reset author bibmacro inside an environment --- simply by adding \renewbibmacro*{author}{}at the beginning of the environment (Sorry, there were a problem in my test file)... But I still don't know how to use \defbibenvironment... –  henrique Jun 4 '11 at 19:11

1 Answer 1

up vote 4 down vote accepted

Prenote: Although you state to have managed resetting the author field inside an environment, I'm afraid that \renewbibmacro*{author}{} will cover many, but not all cases. (The standard bibliography drivers use a lot of different bibmacros!)

For a separated bibliography, I suggest to clone the bibenvironment used by your favourite bibliography/citation style and to add \clearname{author} (and \clearname{editor}) to the fourth mandatory argument of \defbibenvironment -- the one that contains "code to be executed at the beginning of each entry in the bibliography or the list of shorthands" (manual, section 3.5.7).

In the following example, I have also semi-automatized the creation of the "Works by author name" bibliographies. biblatex doesn't (yet?) feature a \bibbyauthor command, but you can declare categories for the different authors and use \bibbycategory.

\documentclass{article}

\usepackage[defernumbers=true]{biblatex}

\defbibenvironment{bibnoauthors}
  {\list
     {\printtext[labelnumberwidth]{%
    \printfield{prefixnumber}%
    \printfield{labelnumber}}}
     {\setlength{\labelwidth}{\labelnumberwidth}%
      \setlength{\leftmargin}{\labelwidth}%
      \setlength{\labelsep}{\biblabelsep}%
      \addtolength{\leftmargin}{\labelsep}%
      \setlength{\itemsep}{\bibitemsep}%
      \setlength{\parsep}{\bibparsep}}%
      \renewcommand*{\makelabel}[1]{\hss##1}}
  {\endlist}
  {\clearname{author}%
  \clearname{editor}%
  \item}

\DeclareBibliographyCategory{Author}
\DeclareBibliographyCategory{Buthor}
\addtocategory{Author}{A01x,A01y}
\addtocategory{Buthor}{B02}
\defbibheading{Author}{\section*{Works by A.~Author}}
\defbibheading{Buthor}{\section*{Works by B.~Buthor}}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@misc{A01x,
  author = {Author, A.},
  year = {2001},
  title = {Alpha-First},
}
@misc{A01y,
  author = {Author, A.},
  year = {2001},
  title = {Alpha-Second},
}
@misc{B02,
  editor = {Buthor, B.},
  year = {2002},
  title = {Bravo},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\nocite{*}

\begin{document}

\bibbycategory[env=bibnoauthors]

\printbibliography

\end{document}
share|improve this answer
    
Thanks @lockstep! It works perfectly! I had just been able to do it my own way: by adding the \renewbibmacro{author}{} to the "begin code" section of \defbibenvironment, and splitting the bibliography by adding keywords to the .bib file... But that's not such a good idea, since it requires to change the bibliography database... –  henrique Jun 4 '11 at 20:09
    
I still faced same problems with your solution, because the style I'm using (verbose-trad3) substitutes the missing author field by the editor one, and if I \clearname both of them, I empoverish my reference too much. The editor's name is important to the point of being irremovable, but not to the point of being highlighted... So, in this case, \renewbibmacro{author}{} works best for me. –  henrique Jun 6 '11 at 16:27

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.