Can biblatex exclude all bib entries of one author from the index or indices it generates?Highlight an author...
What are the consequences of changing the number of hours in a day?
PTIJ: Why do we make a Lulav holder?
Do I need to convey a moral for each of my blog post?
What is the difference between something being completely legal and being completely decriminalized?
Friend wants my recommendation but I don't want to give it to him
Worshiping one God at a time?
Output visual diagram of picture
Can "few" be used as a subject? If so, what is the rule?
Would this string work as string?
Does the Shadow Magic sorcerer's Eyes of the Dark feature work on all Darkness spells or just his/her own?
Why is "la Gestapo" feminine?
Exit shell with shortcut (not typing exit) that closes session properly
"Marked down as someone wanting to sell shares." What does that mean?
How to determine the greatest d orbital splitting?
Recursively updating the MLE as new observations stream in
Was World War I a war of liberals against authoritarians?
How do researchers send unsolicited emails asking for feedback on their works?
What will the Frenchman say?
Emojional cryptic crossword
Isn't the word "experience" wrongly used in this context?
Animating wave motion in water
Print a physical multiplication table
When did hardware antialiasing start being available?
Is xar preinstalled on macOS?
Can biblatex exclude all bib entries of one author from the index or indices it generates?
Highlight an author in bibliography using biblatex allowing bibliography style to format itbiblatex: separating publications of a specific author in the bibliographyIndexing with biblatex - how to filter out publication titles of indexed authors?Cited Authors with Biblabels in IndexAn entry with multiple keys in the related field: is Biblatex expected to split multiple related entries into multiple paragraphs?Citation of short titlesCite all references from one authorBibLaTeX crashing when using multiple entries from same author with no dateCan one set up 2 kinds of shorthand lists in biblatex?Change sorting of authors in the index generated by BiblatexBiblatex after partial bibliograph sets markers to [0]
I know one can use bibfilters and bibchecks to exclude entries from a bibliography, but is it possible to do something equivalent for indexing? I've looked at the examples of multiple indexes, but as far as I understand them, they put all the entries, or all the cited entries, into the index, or into an author and a title index. But I'd like to exclude all entries, cited or not, of a single author from any index generated by biblatex. The reason is simple: I would like not to index myself, even though I do cite my papers.
biblatex indexing
add a comment |
I know one can use bibfilters and bibchecks to exclude entries from a bibliography, but is it possible to do something equivalent for indexing? I've looked at the examples of multiple indexes, but as far as I understand them, they put all the entries, or all the cited entries, into the index, or into an author and a title index. But I'd like to exclude all entries, cited or not, of a single author from any index generated by biblatex. The reason is simple: I would like not to index myself, even though I do cite my papers.
biblatex indexing
This is not the most automatic, but you could useindexing=false
as an bibentry option (that is, in your bib file) for your own papers.
– gusbrs
Mar 21 '18 at 0:51
@gusbrs Do you mean adding indexing={false}, to the bib file? This suggests maybe one could use DeclareSourceMap somehow to add this field to any set of bib entries which one want to exclude?
– ss1789
Mar 21 '18 at 3:22
No, it should be used asoptions = {indexing=false}
, as mentioned in moewe's answer. But in their answer, you have already a good set of possibilities, I suppose.
– gusbrs
Mar 21 '18 at 10:12
add a comment |
I know one can use bibfilters and bibchecks to exclude entries from a bibliography, but is it possible to do something equivalent for indexing? I've looked at the examples of multiple indexes, but as far as I understand them, they put all the entries, or all the cited entries, into the index, or into an author and a title index. But I'd like to exclude all entries, cited or not, of a single author from any index generated by biblatex. The reason is simple: I would like not to index myself, even though I do cite my papers.
biblatex indexing
I know one can use bibfilters and bibchecks to exclude entries from a bibliography, but is it possible to do something equivalent for indexing? I've looked at the examples of multiple indexes, but as far as I understand them, they put all the entries, or all the cited entries, into the index, or into an author and a title index. But I'd like to exclude all entries, cited or not, of a single author from any index generated by biblatex. The reason is simple: I would like not to index myself, even though I do cite my papers.
biblatex indexing
biblatex indexing
asked Mar 21 '18 at 0:31
ss1789ss1789
32019
32019
This is not the most automatic, but you could useindexing=false
as an bibentry option (that is, in your bib file) for your own papers.
– gusbrs
Mar 21 '18 at 0:51
@gusbrs Do you mean adding indexing={false}, to the bib file? This suggests maybe one could use DeclareSourceMap somehow to add this field to any set of bib entries which one want to exclude?
– ss1789
Mar 21 '18 at 3:22
No, it should be used asoptions = {indexing=false}
, as mentioned in moewe's answer. But in their answer, you have already a good set of possibilities, I suppose.
– gusbrs
Mar 21 '18 at 10:12
add a comment |
This is not the most automatic, but you could useindexing=false
as an bibentry option (that is, in your bib file) for your own papers.
– gusbrs
Mar 21 '18 at 0:51
@gusbrs Do you mean adding indexing={false}, to the bib file? This suggests maybe one could use DeclareSourceMap somehow to add this field to any set of bib entries which one want to exclude?
– ss1789
Mar 21 '18 at 3:22
No, it should be used asoptions = {indexing=false}
, as mentioned in moewe's answer. But in their answer, you have already a good set of possibilities, I suppose.
– gusbrs
Mar 21 '18 at 10:12
This is not the most automatic, but you could use
indexing=false
as an bibentry option (that is, in your bib file) for your own papers.– gusbrs
Mar 21 '18 at 0:51
This is not the most automatic, but you could use
indexing=false
as an bibentry option (that is, in your bib file) for your own papers.– gusbrs
Mar 21 '18 at 0:51
@gusbrs Do you mean adding indexing={false}, to the bib file? This suggests maybe one could use DeclareSourceMap somehow to add this field to any set of bib entries which one want to exclude?
– ss1789
Mar 21 '18 at 3:22
@gusbrs Do you mean adding indexing={false}, to the bib file? This suggests maybe one could use DeclareSourceMap somehow to add this field to any set of bib entries which one want to exclude?
– ss1789
Mar 21 '18 at 3:22
No, it should be used as
options = {indexing=false}
, as mentioned in moewe's answer. But in their answer, you have already a good set of possibilities, I suppose.– gusbrs
Mar 21 '18 at 10:12
No, it should be used as
options = {indexing=false}
, as mentioned in moewe's answer. But in their answer, you have already a good set of possibilities, I suppose.– gusbrs
Mar 21 '18 at 10:12
add a comment |
1 Answer
1
active
oldest
votes
We can filter what goes to the index by checking for the name hash. You can learn more about the name hash in my answer to "Highlight an author in bibliography using biblatex allowing bibliography style to format it". Suffice it to say that Biber creates a unique hash for each name it encounters, you can find the hash for each name in the .bbl
. That hash is a convenient way to check if two names are the same without having to expand all name parts and comparing the strings separately.
So you need to find our "your" hash first. Then replace Sir Humphrey's hash with yours in the code below
documentclass[british]{report}
usepackage[T1]{fontenc}
usepackage[utf8]{inputenc}
usepackage{babel}
usepackage{csquotes}
usepackage[style=authoryear, backend=biber, indexing=true]{biblatex}
DeclareIndexNameFormat{default}{%
iffieldequalstr{hash}{dd90e644e3018ab2c6a7ffa2a58522d0}
{}
{usebibmacro{index:name}
{index}
{namepartfamily}
{namepartgiven}
{namepartprefix}
{namepartsuffix}}}
usepackage{filecontents}
begin{filecontents}{jobname.bib}
@book{appleby,
author = {Humphrey Appleby},
title = {On the Importance of the Civil Service},
date = {1980},
}
@book{applebywoolley,
author = {Humphrey Appleby and Bernard Woolley},
title = {On the Ablative in Greek},
date = {1980},
}
end{filecontents}
addbibresource{jobname.bib}
addbibresource{biblatex-examples.bib}
usepackage{imakeidx}
makeindex
begin{document}
cite{sigfridsson,appleby,applebywoolley}
printbibliography
printindex
end{document}
The index does not list Sir Humphrey. It does, however, list his co-author Bernard Woolley. This is different from putting options = {indexing=false}
in the bibliography where the entire entry would not be indexed.
If you don't like the fact that you have to look up the hash in the .bbl
file, you can try the following approach based on my automatic solution to Highlight an author in bibliography using biblatex allowing bibliography style to format it. Using this you can give the names you want to exclude to addnamehash
as you would input them in the .bib
file. The code then writes the names to a temporary .bib
file and extracts the name hashes automatically.
documentclass[british]{report}
usepackage[T1]{fontenc}
usepackage[utf8]{inputenc}
usepackage{babel}
usepackage{csquotes}
usepackage[style=authoryear, backend=biber, indexing=true]{biblatex}
makeatletter
defnhblx@bibfile@name{jobname -namehashes.bib}
newwritenhblx@bibfile
immediateopenoutnhblx@bibfile=nhblx@bibfile@name
newcounter{nhblx@name}
setcounter{nhblx@name}{0}
newcommand*{nhblx@writenametobib}[1]{%
stepcounter{nhblx@name}%
edefnhblx@tmp@nocite{%
noexpandAfterPreamble{%
noexpandsetbox0noexpandvbox{%
noexpandnhblx@getmethehash{nhblx@name@thevalue{nhblx@name}}}}%
}%
nhblx@tmp@nocite
immediatewritenhblx@bibfile{%
@misc{nhblx@name@thevalue{nhblx@name}, author = {unexpanded{#1}}, %
options = {dataonly=true},}%
}%
}
AtEndDocument{%
closeoutnhblx@bibfile}
addbibresource{nhblx@bibfile@name}
newcommand*{nhblx@hashes}{}
DeclareNameFormat{nhblx@hashextract}{%
xifinlist{thefield{hash}}{nhblx@hashes}
{}
{listxadd{nhblx@hashes}{thefield{fullhash}}}}
DeclareCiteCommand{nhblx@getmethehash}
{}
{printnames[nhblx@hashextract][1-999]{author}}
{}
{}
newcommand*{addnamehash}{forcsvlistnhblx@writenametobib}
newcommand*{resetnamehashes}{defnhblx@hashes{}}
DeclareIndexNameFormat{default}{%
savefield*{hash}{nhblx@currentnamehash}%
xifinlist{nhblx@currentnamehash}{nhblx@hashes}
{}
{usebibmacro{index:name}
{index}
{namepartfamily}
{namepartgiven}
{namepartprefix}
{namepartsuffix}}}
makeatother
usepackage{filecontents}
begin{filecontents}{jobname.bib}
@book{appleby,
author = {Humphrey Appleby},
title = {On the Importance of the Civil Service},
date = {1980},
}
@book{applebywoolley,
author = {Humphrey Appleby and Bernard Woolley},
title = {On the Ablative in Greek},
date = {1980},
}
end{filecontents}
addbibresource{jobname.bib}
addbibresource{biblatex-examples.bib}
usepackage{imakeidx}
makeindex
addnamehash{Humphrey Appleby}
begin{document}
cite{sigfridsson,appleby,applebywoolley}
printbibliography
printindex
end{document}
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "85"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f422252%2fcan-biblatex-exclude-all-bib-entries-of-one-author-from-the-index-or-indices-it%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
We can filter what goes to the index by checking for the name hash. You can learn more about the name hash in my answer to "Highlight an author in bibliography using biblatex allowing bibliography style to format it". Suffice it to say that Biber creates a unique hash for each name it encounters, you can find the hash for each name in the .bbl
. That hash is a convenient way to check if two names are the same without having to expand all name parts and comparing the strings separately.
So you need to find our "your" hash first. Then replace Sir Humphrey's hash with yours in the code below
documentclass[british]{report}
usepackage[T1]{fontenc}
usepackage[utf8]{inputenc}
usepackage{babel}
usepackage{csquotes}
usepackage[style=authoryear, backend=biber, indexing=true]{biblatex}
DeclareIndexNameFormat{default}{%
iffieldequalstr{hash}{dd90e644e3018ab2c6a7ffa2a58522d0}
{}
{usebibmacro{index:name}
{index}
{namepartfamily}
{namepartgiven}
{namepartprefix}
{namepartsuffix}}}
usepackage{filecontents}
begin{filecontents}{jobname.bib}
@book{appleby,
author = {Humphrey Appleby},
title = {On the Importance of the Civil Service},
date = {1980},
}
@book{applebywoolley,
author = {Humphrey Appleby and Bernard Woolley},
title = {On the Ablative in Greek},
date = {1980},
}
end{filecontents}
addbibresource{jobname.bib}
addbibresource{biblatex-examples.bib}
usepackage{imakeidx}
makeindex
begin{document}
cite{sigfridsson,appleby,applebywoolley}
printbibliography
printindex
end{document}
The index does not list Sir Humphrey. It does, however, list his co-author Bernard Woolley. This is different from putting options = {indexing=false}
in the bibliography where the entire entry would not be indexed.
If you don't like the fact that you have to look up the hash in the .bbl
file, you can try the following approach based on my automatic solution to Highlight an author in bibliography using biblatex allowing bibliography style to format it. Using this you can give the names you want to exclude to addnamehash
as you would input them in the .bib
file. The code then writes the names to a temporary .bib
file and extracts the name hashes automatically.
documentclass[british]{report}
usepackage[T1]{fontenc}
usepackage[utf8]{inputenc}
usepackage{babel}
usepackage{csquotes}
usepackage[style=authoryear, backend=biber, indexing=true]{biblatex}
makeatletter
defnhblx@bibfile@name{jobname -namehashes.bib}
newwritenhblx@bibfile
immediateopenoutnhblx@bibfile=nhblx@bibfile@name
newcounter{nhblx@name}
setcounter{nhblx@name}{0}
newcommand*{nhblx@writenametobib}[1]{%
stepcounter{nhblx@name}%
edefnhblx@tmp@nocite{%
noexpandAfterPreamble{%
noexpandsetbox0noexpandvbox{%
noexpandnhblx@getmethehash{nhblx@name@thevalue{nhblx@name}}}}%
}%
nhblx@tmp@nocite
immediatewritenhblx@bibfile{%
@misc{nhblx@name@thevalue{nhblx@name}, author = {unexpanded{#1}}, %
options = {dataonly=true},}%
}%
}
AtEndDocument{%
closeoutnhblx@bibfile}
addbibresource{nhblx@bibfile@name}
newcommand*{nhblx@hashes}{}
DeclareNameFormat{nhblx@hashextract}{%
xifinlist{thefield{hash}}{nhblx@hashes}
{}
{listxadd{nhblx@hashes}{thefield{fullhash}}}}
DeclareCiteCommand{nhblx@getmethehash}
{}
{printnames[nhblx@hashextract][1-999]{author}}
{}
{}
newcommand*{addnamehash}{forcsvlistnhblx@writenametobib}
newcommand*{resetnamehashes}{defnhblx@hashes{}}
DeclareIndexNameFormat{default}{%
savefield*{hash}{nhblx@currentnamehash}%
xifinlist{nhblx@currentnamehash}{nhblx@hashes}
{}
{usebibmacro{index:name}
{index}
{namepartfamily}
{namepartgiven}
{namepartprefix}
{namepartsuffix}}}
makeatother
usepackage{filecontents}
begin{filecontents}{jobname.bib}
@book{appleby,
author = {Humphrey Appleby},
title = {On the Importance of the Civil Service},
date = {1980},
}
@book{applebywoolley,
author = {Humphrey Appleby and Bernard Woolley},
title = {On the Ablative in Greek},
date = {1980},
}
end{filecontents}
addbibresource{jobname.bib}
addbibresource{biblatex-examples.bib}
usepackage{imakeidx}
makeindex
addnamehash{Humphrey Appleby}
begin{document}
cite{sigfridsson,appleby,applebywoolley}
printbibliography
printindex
end{document}
add a comment |
We can filter what goes to the index by checking for the name hash. You can learn more about the name hash in my answer to "Highlight an author in bibliography using biblatex allowing bibliography style to format it". Suffice it to say that Biber creates a unique hash for each name it encounters, you can find the hash for each name in the .bbl
. That hash is a convenient way to check if two names are the same without having to expand all name parts and comparing the strings separately.
So you need to find our "your" hash first. Then replace Sir Humphrey's hash with yours in the code below
documentclass[british]{report}
usepackage[T1]{fontenc}
usepackage[utf8]{inputenc}
usepackage{babel}
usepackage{csquotes}
usepackage[style=authoryear, backend=biber, indexing=true]{biblatex}
DeclareIndexNameFormat{default}{%
iffieldequalstr{hash}{dd90e644e3018ab2c6a7ffa2a58522d0}
{}
{usebibmacro{index:name}
{index}
{namepartfamily}
{namepartgiven}
{namepartprefix}
{namepartsuffix}}}
usepackage{filecontents}
begin{filecontents}{jobname.bib}
@book{appleby,
author = {Humphrey Appleby},
title = {On the Importance of the Civil Service},
date = {1980},
}
@book{applebywoolley,
author = {Humphrey Appleby and Bernard Woolley},
title = {On the Ablative in Greek},
date = {1980},
}
end{filecontents}
addbibresource{jobname.bib}
addbibresource{biblatex-examples.bib}
usepackage{imakeidx}
makeindex
begin{document}
cite{sigfridsson,appleby,applebywoolley}
printbibliography
printindex
end{document}
The index does not list Sir Humphrey. It does, however, list his co-author Bernard Woolley. This is different from putting options = {indexing=false}
in the bibliography where the entire entry would not be indexed.
If you don't like the fact that you have to look up the hash in the .bbl
file, you can try the following approach based on my automatic solution to Highlight an author in bibliography using biblatex allowing bibliography style to format it. Using this you can give the names you want to exclude to addnamehash
as you would input them in the .bib
file. The code then writes the names to a temporary .bib
file and extracts the name hashes automatically.
documentclass[british]{report}
usepackage[T1]{fontenc}
usepackage[utf8]{inputenc}
usepackage{babel}
usepackage{csquotes}
usepackage[style=authoryear, backend=biber, indexing=true]{biblatex}
makeatletter
defnhblx@bibfile@name{jobname -namehashes.bib}
newwritenhblx@bibfile
immediateopenoutnhblx@bibfile=nhblx@bibfile@name
newcounter{nhblx@name}
setcounter{nhblx@name}{0}
newcommand*{nhblx@writenametobib}[1]{%
stepcounter{nhblx@name}%
edefnhblx@tmp@nocite{%
noexpandAfterPreamble{%
noexpandsetbox0noexpandvbox{%
noexpandnhblx@getmethehash{nhblx@name@thevalue{nhblx@name}}}}%
}%
nhblx@tmp@nocite
immediatewritenhblx@bibfile{%
@misc{nhblx@name@thevalue{nhblx@name}, author = {unexpanded{#1}}, %
options = {dataonly=true},}%
}%
}
AtEndDocument{%
closeoutnhblx@bibfile}
addbibresource{nhblx@bibfile@name}
newcommand*{nhblx@hashes}{}
DeclareNameFormat{nhblx@hashextract}{%
xifinlist{thefield{hash}}{nhblx@hashes}
{}
{listxadd{nhblx@hashes}{thefield{fullhash}}}}
DeclareCiteCommand{nhblx@getmethehash}
{}
{printnames[nhblx@hashextract][1-999]{author}}
{}
{}
newcommand*{addnamehash}{forcsvlistnhblx@writenametobib}
newcommand*{resetnamehashes}{defnhblx@hashes{}}
DeclareIndexNameFormat{default}{%
savefield*{hash}{nhblx@currentnamehash}%
xifinlist{nhblx@currentnamehash}{nhblx@hashes}
{}
{usebibmacro{index:name}
{index}
{namepartfamily}
{namepartgiven}
{namepartprefix}
{namepartsuffix}}}
makeatother
usepackage{filecontents}
begin{filecontents}{jobname.bib}
@book{appleby,
author = {Humphrey Appleby},
title = {On the Importance of the Civil Service},
date = {1980},
}
@book{applebywoolley,
author = {Humphrey Appleby and Bernard Woolley},
title = {On the Ablative in Greek},
date = {1980},
}
end{filecontents}
addbibresource{jobname.bib}
addbibresource{biblatex-examples.bib}
usepackage{imakeidx}
makeindex
addnamehash{Humphrey Appleby}
begin{document}
cite{sigfridsson,appleby,applebywoolley}
printbibliography
printindex
end{document}
add a comment |
We can filter what goes to the index by checking for the name hash. You can learn more about the name hash in my answer to "Highlight an author in bibliography using biblatex allowing bibliography style to format it". Suffice it to say that Biber creates a unique hash for each name it encounters, you can find the hash for each name in the .bbl
. That hash is a convenient way to check if two names are the same without having to expand all name parts and comparing the strings separately.
So you need to find our "your" hash first. Then replace Sir Humphrey's hash with yours in the code below
documentclass[british]{report}
usepackage[T1]{fontenc}
usepackage[utf8]{inputenc}
usepackage{babel}
usepackage{csquotes}
usepackage[style=authoryear, backend=biber, indexing=true]{biblatex}
DeclareIndexNameFormat{default}{%
iffieldequalstr{hash}{dd90e644e3018ab2c6a7ffa2a58522d0}
{}
{usebibmacro{index:name}
{index}
{namepartfamily}
{namepartgiven}
{namepartprefix}
{namepartsuffix}}}
usepackage{filecontents}
begin{filecontents}{jobname.bib}
@book{appleby,
author = {Humphrey Appleby},
title = {On the Importance of the Civil Service},
date = {1980},
}
@book{applebywoolley,
author = {Humphrey Appleby and Bernard Woolley},
title = {On the Ablative in Greek},
date = {1980},
}
end{filecontents}
addbibresource{jobname.bib}
addbibresource{biblatex-examples.bib}
usepackage{imakeidx}
makeindex
begin{document}
cite{sigfridsson,appleby,applebywoolley}
printbibliography
printindex
end{document}
The index does not list Sir Humphrey. It does, however, list his co-author Bernard Woolley. This is different from putting options = {indexing=false}
in the bibliography where the entire entry would not be indexed.
If you don't like the fact that you have to look up the hash in the .bbl
file, you can try the following approach based on my automatic solution to Highlight an author in bibliography using biblatex allowing bibliography style to format it. Using this you can give the names you want to exclude to addnamehash
as you would input them in the .bib
file. The code then writes the names to a temporary .bib
file and extracts the name hashes automatically.
documentclass[british]{report}
usepackage[T1]{fontenc}
usepackage[utf8]{inputenc}
usepackage{babel}
usepackage{csquotes}
usepackage[style=authoryear, backend=biber, indexing=true]{biblatex}
makeatletter
defnhblx@bibfile@name{jobname -namehashes.bib}
newwritenhblx@bibfile
immediateopenoutnhblx@bibfile=nhblx@bibfile@name
newcounter{nhblx@name}
setcounter{nhblx@name}{0}
newcommand*{nhblx@writenametobib}[1]{%
stepcounter{nhblx@name}%
edefnhblx@tmp@nocite{%
noexpandAfterPreamble{%
noexpandsetbox0noexpandvbox{%
noexpandnhblx@getmethehash{nhblx@name@thevalue{nhblx@name}}}}%
}%
nhblx@tmp@nocite
immediatewritenhblx@bibfile{%
@misc{nhblx@name@thevalue{nhblx@name}, author = {unexpanded{#1}}, %
options = {dataonly=true},}%
}%
}
AtEndDocument{%
closeoutnhblx@bibfile}
addbibresource{nhblx@bibfile@name}
newcommand*{nhblx@hashes}{}
DeclareNameFormat{nhblx@hashextract}{%
xifinlist{thefield{hash}}{nhblx@hashes}
{}
{listxadd{nhblx@hashes}{thefield{fullhash}}}}
DeclareCiteCommand{nhblx@getmethehash}
{}
{printnames[nhblx@hashextract][1-999]{author}}
{}
{}
newcommand*{addnamehash}{forcsvlistnhblx@writenametobib}
newcommand*{resetnamehashes}{defnhblx@hashes{}}
DeclareIndexNameFormat{default}{%
savefield*{hash}{nhblx@currentnamehash}%
xifinlist{nhblx@currentnamehash}{nhblx@hashes}
{}
{usebibmacro{index:name}
{index}
{namepartfamily}
{namepartgiven}
{namepartprefix}
{namepartsuffix}}}
makeatother
usepackage{filecontents}
begin{filecontents}{jobname.bib}
@book{appleby,
author = {Humphrey Appleby},
title = {On the Importance of the Civil Service},
date = {1980},
}
@book{applebywoolley,
author = {Humphrey Appleby and Bernard Woolley},
title = {On the Ablative in Greek},
date = {1980},
}
end{filecontents}
addbibresource{jobname.bib}
addbibresource{biblatex-examples.bib}
usepackage{imakeidx}
makeindex
addnamehash{Humphrey Appleby}
begin{document}
cite{sigfridsson,appleby,applebywoolley}
printbibliography
printindex
end{document}
We can filter what goes to the index by checking for the name hash. You can learn more about the name hash in my answer to "Highlight an author in bibliography using biblatex allowing bibliography style to format it". Suffice it to say that Biber creates a unique hash for each name it encounters, you can find the hash for each name in the .bbl
. That hash is a convenient way to check if two names are the same without having to expand all name parts and comparing the strings separately.
So you need to find our "your" hash first. Then replace Sir Humphrey's hash with yours in the code below
documentclass[british]{report}
usepackage[T1]{fontenc}
usepackage[utf8]{inputenc}
usepackage{babel}
usepackage{csquotes}
usepackage[style=authoryear, backend=biber, indexing=true]{biblatex}
DeclareIndexNameFormat{default}{%
iffieldequalstr{hash}{dd90e644e3018ab2c6a7ffa2a58522d0}
{}
{usebibmacro{index:name}
{index}
{namepartfamily}
{namepartgiven}
{namepartprefix}
{namepartsuffix}}}
usepackage{filecontents}
begin{filecontents}{jobname.bib}
@book{appleby,
author = {Humphrey Appleby},
title = {On the Importance of the Civil Service},
date = {1980},
}
@book{applebywoolley,
author = {Humphrey Appleby and Bernard Woolley},
title = {On the Ablative in Greek},
date = {1980},
}
end{filecontents}
addbibresource{jobname.bib}
addbibresource{biblatex-examples.bib}
usepackage{imakeidx}
makeindex
begin{document}
cite{sigfridsson,appleby,applebywoolley}
printbibliography
printindex
end{document}
The index does not list Sir Humphrey. It does, however, list his co-author Bernard Woolley. This is different from putting options = {indexing=false}
in the bibliography where the entire entry would not be indexed.
If you don't like the fact that you have to look up the hash in the .bbl
file, you can try the following approach based on my automatic solution to Highlight an author in bibliography using biblatex allowing bibliography style to format it. Using this you can give the names you want to exclude to addnamehash
as you would input them in the .bib
file. The code then writes the names to a temporary .bib
file and extracts the name hashes automatically.
documentclass[british]{report}
usepackage[T1]{fontenc}
usepackage[utf8]{inputenc}
usepackage{babel}
usepackage{csquotes}
usepackage[style=authoryear, backend=biber, indexing=true]{biblatex}
makeatletter
defnhblx@bibfile@name{jobname -namehashes.bib}
newwritenhblx@bibfile
immediateopenoutnhblx@bibfile=nhblx@bibfile@name
newcounter{nhblx@name}
setcounter{nhblx@name}{0}
newcommand*{nhblx@writenametobib}[1]{%
stepcounter{nhblx@name}%
edefnhblx@tmp@nocite{%
noexpandAfterPreamble{%
noexpandsetbox0noexpandvbox{%
noexpandnhblx@getmethehash{nhblx@name@thevalue{nhblx@name}}}}%
}%
nhblx@tmp@nocite
immediatewritenhblx@bibfile{%
@misc{nhblx@name@thevalue{nhblx@name}, author = {unexpanded{#1}}, %
options = {dataonly=true},}%
}%
}
AtEndDocument{%
closeoutnhblx@bibfile}
addbibresource{nhblx@bibfile@name}
newcommand*{nhblx@hashes}{}
DeclareNameFormat{nhblx@hashextract}{%
xifinlist{thefield{hash}}{nhblx@hashes}
{}
{listxadd{nhblx@hashes}{thefield{fullhash}}}}
DeclareCiteCommand{nhblx@getmethehash}
{}
{printnames[nhblx@hashextract][1-999]{author}}
{}
{}
newcommand*{addnamehash}{forcsvlistnhblx@writenametobib}
newcommand*{resetnamehashes}{defnhblx@hashes{}}
DeclareIndexNameFormat{default}{%
savefield*{hash}{nhblx@currentnamehash}%
xifinlist{nhblx@currentnamehash}{nhblx@hashes}
{}
{usebibmacro{index:name}
{index}
{namepartfamily}
{namepartgiven}
{namepartprefix}
{namepartsuffix}}}
makeatother
usepackage{filecontents}
begin{filecontents}{jobname.bib}
@book{appleby,
author = {Humphrey Appleby},
title = {On the Importance of the Civil Service},
date = {1980},
}
@book{applebywoolley,
author = {Humphrey Appleby and Bernard Woolley},
title = {On the Ablative in Greek},
date = {1980},
}
end{filecontents}
addbibresource{jobname.bib}
addbibresource{biblatex-examples.bib}
usepackage{imakeidx}
makeindex
addnamehash{Humphrey Appleby}
begin{document}
cite{sigfridsson,appleby,applebywoolley}
printbibliography
printindex
end{document}
edited 2 mins ago
answered Mar 21 '18 at 7:44
moewemoewe
94k10115354
94k10115354
add a comment |
add a comment |
Thanks for contributing an answer to TeX - LaTeX Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f422252%2fcan-biblatex-exclude-all-bib-entries-of-one-author-from-the-index-or-indices-it%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
This is not the most automatic, but you could use
indexing=false
as an bibentry option (that is, in your bib file) for your own papers.– gusbrs
Mar 21 '18 at 0:51
@gusbrs Do you mean adding indexing={false}, to the bib file? This suggests maybe one could use DeclareSourceMap somehow to add this field to any set of bib entries which one want to exclude?
– ss1789
Mar 21 '18 at 3:22
No, it should be used as
options = {indexing=false}
, as mentioned in moewe's answer. But in their answer, you have already a good set of possibilities, I suppose.– gusbrs
Mar 21 '18 at 10:12