Referencing to a standard (eurocode) several times yet different sections
So I want to reference to several sections in the eurocode without a massive bibliography. Today I'm creating a new @standard for every section in a standary that I need to reference which of course generates i.e 15 references in the bibliography.
Example
As described in [1] and [2] the choise of parametes in [3]...
BIBLIOGRAPHY
[1] SS-EN 1992-1-1 eurocode section 4.5.6.7
[2] SS-EN 1992-1-1 eurocode section 4.5.6.8
[3] SS-EN 1992-1-1 eurocode section 4.5.6.9
This is what I would like to achieve:
Example
As described in [1a] and [1b] the chose of parametes in [1c]...
BIBLIOGRAPHY
[1] SS-EN 1992-1-1 eurocode
(a) section 4.5.6.7
(b) section 4.5.6.8
(c) section 4.5.6.9
Is there a nice way?
bibliographies
add a comment |
So I want to reference to several sections in the eurocode without a massive bibliography. Today I'm creating a new @standard for every section in a standary that I need to reference which of course generates i.e 15 references in the bibliography.
Example
As described in [1] and [2] the choise of parametes in [3]...
BIBLIOGRAPHY
[1] SS-EN 1992-1-1 eurocode section 4.5.6.7
[2] SS-EN 1992-1-1 eurocode section 4.5.6.8
[3] SS-EN 1992-1-1 eurocode section 4.5.6.9
This is what I would like to achieve:
Example
As described in [1a] and [1b] the chose of parametes in [1c]...
BIBLIOGRAPHY
[1] SS-EN 1992-1-1 eurocode
(a) section 4.5.6.7
(b) section 4.5.6.8
(c) section 4.5.6.9
Is there a nice way?
bibliographies
Maybe this tex.stackexchange.com/a/463919/118739 may help...
– AndiW
Feb 22 at 14:00
I guess usually one would just cite the entire thing and would add the specific section/pinpoint in the cite command:cite[§4.5.6.7]{en1992}
andcite[§4.5.6.9]{en1992}
.
– moewe
Feb 24 at 13:22
add a comment |
So I want to reference to several sections in the eurocode without a massive bibliography. Today I'm creating a new @standard for every section in a standary that I need to reference which of course generates i.e 15 references in the bibliography.
Example
As described in [1] and [2] the choise of parametes in [3]...
BIBLIOGRAPHY
[1] SS-EN 1992-1-1 eurocode section 4.5.6.7
[2] SS-EN 1992-1-1 eurocode section 4.5.6.8
[3] SS-EN 1992-1-1 eurocode section 4.5.6.9
This is what I would like to achieve:
Example
As described in [1a] and [1b] the chose of parametes in [1c]...
BIBLIOGRAPHY
[1] SS-EN 1992-1-1 eurocode
(a) section 4.5.6.7
(b) section 4.5.6.8
(c) section 4.5.6.9
Is there a nice way?
bibliographies
So I want to reference to several sections in the eurocode without a massive bibliography. Today I'm creating a new @standard for every section in a standary that I need to reference which of course generates i.e 15 references in the bibliography.
Example
As described in [1] and [2] the choise of parametes in [3]...
BIBLIOGRAPHY
[1] SS-EN 1992-1-1 eurocode section 4.5.6.7
[2] SS-EN 1992-1-1 eurocode section 4.5.6.8
[3] SS-EN 1992-1-1 eurocode section 4.5.6.9
This is what I would like to achieve:
Example
As described in [1a] and [1b] the chose of parametes in [1c]...
BIBLIOGRAPHY
[1] SS-EN 1992-1-1 eurocode
(a) section 4.5.6.7
(b) section 4.5.6.8
(c) section 4.5.6.9
Is there a nice way?
bibliographies
bibliographies
edited Feb 24 at 13:21
moewe
92.2k10115348
92.2k10115348
asked Feb 22 at 13:05
user182112user182112
61
61
Maybe this tex.stackexchange.com/a/463919/118739 may help...
– AndiW
Feb 22 at 14:00
I guess usually one would just cite the entire thing and would add the specific section/pinpoint in the cite command:cite[§4.5.6.7]{en1992}
andcite[§4.5.6.9]{en1992}
.
– moewe
Feb 24 at 13:22
add a comment |
Maybe this tex.stackexchange.com/a/463919/118739 may help...
– AndiW
Feb 22 at 14:00
I guess usually one would just cite the entire thing and would add the specific section/pinpoint in the cite command:cite[§4.5.6.7]{en1992}
andcite[§4.5.6.9]{en1992}
.
– moewe
Feb 24 at 13:22
Maybe this tex.stackexchange.com/a/463919/118739 may help...
– AndiW
Feb 22 at 14:00
Maybe this tex.stackexchange.com/a/463919/118739 may help...
– AndiW
Feb 22 at 14:00
I guess usually one would just cite the entire thing and would add the specific section/pinpoint in the cite command:
cite[§4.5.6.7]{en1992}
and cite[§4.5.6.9]{en1992}
.– moewe
Feb 24 at 13:22
I guess usually one would just cite the entire thing and would add the specific section/pinpoint in the cite command:
cite[§4.5.6.7]{en1992}
and cite[§4.5.6.9]{en1992}
.– moewe
Feb 24 at 13:22
add a comment |
1 Answer
1
active
oldest
votes
Welcome to TeX.SE!
Facing a very similar problem some time ago i modified the @set
handling of biblatex
with the highly appreciated assistance of moewe to get the following result:
Adapting the answer mentioned in my previous comment using the the solution of this question and the main part of this answer to your needs you can use the following:
documentclass{scrartcl}
usepackage[utf8]{inputenc}
usepackage[backend=biber,style=numeric-comp,mcite,subentry,sorting=nty,sortsets=true]{biblatex}
usepackage{enumitem}
DeclareNameAlias{sortname}{family-given}
DeclareNameAlias{default}{family-given}
DeclareFieldFormat{entrysetcount}{mknumalph{#1}}
DeclareDelimFormat{editortypedelim}{addspace}
DeclareFieldFormat{editortype}{mkbibparens{#1}}
makeatletter
DeclareEntryOption[string]{multivolumehead}{defxs@mv@head{#1}}
define@key{xs@multivolume}{multivolumehead}{defxs@mv@head{#1}}
DeclareBibliographyDriver{multivolumechild}{%
ifboolexpr{
test {ifnamesequal{author}{savedauthor}}
or
test {ifnameundef{author}}
}
{nopunct}
{printnames{author}%
newunitnewblock}%
iffieldundef{volume}
{}
{printfield{volume}%
printfield{part}%
newunitnewblock}%
usebibmacro{title}%
newunitnewblock
ifboolexpr{
test {ifnamesequal{editor}{savededitor}}
or
test {ifnameundef{editor}}
}{}
{usebibmacro{byeditor+others}%
newunitnewblock}%
ifboolexpr{
test {iflistsequal{location}{savedlocation}}
or
test {iflistundef{location}}
}{}
{printlist{location}}%<- typo
ifboolexpr{
test {iflistsequal{publisher}{savedpublisher}}
or
test {iflistundef{publisher}}
} {setunit*{addcommaspace}}%
{setunit*{addcolonspace}%
printlist{publisher}%
setunit*{addcommaspace}}%
newunitnewblock%
ifboolexpr{
test {iffieldsequal{year}{savedyear}}
or
test {iffieldundef{year}}
}{}
{printdate%
newunitnewblock}%
ifboolexpr{
test {iffieldsequal{isbn}{savedisbn}}
or
not togl {bbx:isbn}
}{}
{printfield{isbn}}%
newunitnewblock%
usebibmacro{chapter+pages}%
}
DeclareBibliographyDriver{set}{%
edefxs@mv@set{abx@field@entrykey}%
ifboolexpr{
test {ifundef{xs@mv@head}}
or
test {ifblank{xs@mv@head}}
}
{entryset{}{}%
newunitnewblock
usebibmacro{setpageref}%
finentry}
{entrydata*{xs@mv@head}{usedriver{}{abx@field@entrytype}finentrypunct%
% reload the set so we can access the header via saved
entrydata*{xs@mv@set}{
% don't issue leavevmode inside here
letblx@leavevmoderelax
setitemize{noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt}%
begin{itemize}[label={printfield{entrysetcount})},labelindent=0.5labelnumberwidth,labelsep=1ex,itemindent=0pt,leftmargin=*]
entryset{item ifcsdef{blx@bbx@multivolumeabx@field@savedentrytype}
{edefabx@field@entrytype{multivolumeabx@field@savedentrytype}}
{message{^^Jxs Warning: BibliographyDriver blx@bbx@multivolume@abx@field@entrytypespace undefined
^^J** Using fallback driver multivolumechild
^^J** If you get unexpected entries in the bibliography consider to create a new BibliographyDriver multivolume@abx@field@savedentrytype.}%
defabx@field@entrytype{multivolumechild}}}{}%
finentrypunctend{itemize}nopunct}}%
newunitnewblock
usebibmacro{setpageref}%
finentry}}
newcounter{cbx@tempcntc}% no. of entrysetcounts we skipped
newcounter{cbx@tempcntd}% 'predicted' entrysetcount
renewbibmacro*{cite:init}{%
globalboolfalse{cbx:parens}%
globalundefcbx@lasthash
globalundefcbx@lastnumber
globalundefcbx@lastprefix
globalundefcbx@lastcount
setcounter{cbx@tempcnta}{0}%
setcounter{cbx@tempcntb}{-2}%
setcounter{cbx@tempcntc}{0}%
setcounter{cbx@tempcntd}{-1}}
newcommand*{cbx@iflabelnumberequalslast}{%
iffieldequals{labelnumber}{cbx@lastnumber}}
newcommand*{cbx@iflabelprefixequalslast}{%
ifundefcbx@lastprefix
{iffieldundef{labelprefix}
{@firstoftwo}
{@secondoftwo}}
{iffieldequals{labelprefix}{cbx@lastprefix}
{@firstoftwo}
{@secondoftwo}}}
newcommand*{cbx@iflabelequalslast}{%
iffieldequals{labelnumber}{cbx@lastnumber}
{cbx@iflabelprefixequalslast
{@firstoftwo}
{@secondoftwo}}
{@secondoftwo}}
renewbibmacro*{cite:comp:inset}{%
stepcounter{cbx@tempcntd}%
cbx@iflabelequalslast
{}
{usebibmacro{cite:dump}%
ifnumgreater{value{cbx@tempcntb}}{-1}
{multicitedelim}
{}}%
printtext[bibhyperref]{%
cbx@iflabelequalslast
{}
{setcounter{cbx@tempcntd}{-1}%
printfield{labelprefix}%
printfield{labelnumber}%
savefield{labelprefix}{cbx@lastprefix}%
savefield{labelnumber}{cbx@lastnumber}}%
ifnumequal{thefield{entrysetcount}}{value{cbx@tempcntd}}
{savefield{entrykey}{cbx@lastkey}%
savefield{entrysetcount}{cbx@lastcount}%
stepcounter{cbx@tempcntc}}
{usebibmacro{cite:dump}%
ifnumgreater{value{cbx@tempcntd}}{0}
{multicitedelim}
{}%
printfield{entrysetcount}}}%
setcounter{cbx@tempcntd}{thefield{entrysetcount}}%
setcounter{cbx@tempcntb}{-1}}
renewbibmacro*{cite:dump}{%
ifnumgreater{value{cbx@tempcntc}}{0}
{ifnumgreater{value{cbx@tempcntc}}{1}
{bibrangedash}
{multicitedelim}%
bibhyperref[cbx@lastkey]{%
printtext[entrysetcount]{cbx@lastcount}}}
{}%
setcounter{cbx@tempcntc}{0}%
ifnumgreater{value{cbx@tempcnta}}{0}
{ifnumgreater{value{cbx@tempcnta}}{1}
{bibrangedash}
{multicitedelim}%
bibhyperref[cbx@lastkey]{%
ifdefcbx@lastprefix
{printtext[labelprefix]{cbx@lastprefix}}
{}%
printtext[labelnumber]{cbx@lastnumber}}%
globalundefcbx@lastprefix}
{}%
setcounter{cbx@tempcnta}{0}}
makeatother
renewcommand{entrysetpunct}{finentrypunct}
usepackage{filecontents}
begin{filecontents}{jobname.bib}
@Reference{ISO:a,
crossref = {ISO:base},
title = {section 4.5.6.7},
options = {dataonly},
}
@Reference{ISO:b,
crossref = {ISO:base},
title = {section 4.5.6.8},
options = {dataonly},
}
@Reference{ISO:c,
crossref = {ISO:base},
title = {section 4.5.6.9},
options = {dataonly},
}
@Reference{ISO:base,
title = {SS-EN 1992-1-1 eurocode},
options = {dataonly},
}
@Set{ISO,
entryset = {ISO:a,ISO:b,ISO:c},
options = {multivolumehead=ISO:base},
}
end{filecontents}
addbibresource{jobname.bib}
begin{document}
As described in cite{ISO:a} and cite{ISO:b} the chose of parametes in cite{ISO:c}, all those are part of cite{ISO}.
Furthermore multiple cites in one verb+cite+ command like verb+cite{ISO:a,ISO:c,ISO:b}+ are compressed to cite{ISO:a,ISO:c,ISO:b}.
printbibliography
end{document}
Note that if you do not use cite{ISO}
you have to add nocite{}
or it will fail.
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%2f476159%2freferencing-to-a-standard-eurocode-several-times-yet-different-sections%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
Welcome to TeX.SE!
Facing a very similar problem some time ago i modified the @set
handling of biblatex
with the highly appreciated assistance of moewe to get the following result:
Adapting the answer mentioned in my previous comment using the the solution of this question and the main part of this answer to your needs you can use the following:
documentclass{scrartcl}
usepackage[utf8]{inputenc}
usepackage[backend=biber,style=numeric-comp,mcite,subentry,sorting=nty,sortsets=true]{biblatex}
usepackage{enumitem}
DeclareNameAlias{sortname}{family-given}
DeclareNameAlias{default}{family-given}
DeclareFieldFormat{entrysetcount}{mknumalph{#1}}
DeclareDelimFormat{editortypedelim}{addspace}
DeclareFieldFormat{editortype}{mkbibparens{#1}}
makeatletter
DeclareEntryOption[string]{multivolumehead}{defxs@mv@head{#1}}
define@key{xs@multivolume}{multivolumehead}{defxs@mv@head{#1}}
DeclareBibliographyDriver{multivolumechild}{%
ifboolexpr{
test {ifnamesequal{author}{savedauthor}}
or
test {ifnameundef{author}}
}
{nopunct}
{printnames{author}%
newunitnewblock}%
iffieldundef{volume}
{}
{printfield{volume}%
printfield{part}%
newunitnewblock}%
usebibmacro{title}%
newunitnewblock
ifboolexpr{
test {ifnamesequal{editor}{savededitor}}
or
test {ifnameundef{editor}}
}{}
{usebibmacro{byeditor+others}%
newunitnewblock}%
ifboolexpr{
test {iflistsequal{location}{savedlocation}}
or
test {iflistundef{location}}
}{}
{printlist{location}}%<- typo
ifboolexpr{
test {iflistsequal{publisher}{savedpublisher}}
or
test {iflistundef{publisher}}
} {setunit*{addcommaspace}}%
{setunit*{addcolonspace}%
printlist{publisher}%
setunit*{addcommaspace}}%
newunitnewblock%
ifboolexpr{
test {iffieldsequal{year}{savedyear}}
or
test {iffieldundef{year}}
}{}
{printdate%
newunitnewblock}%
ifboolexpr{
test {iffieldsequal{isbn}{savedisbn}}
or
not togl {bbx:isbn}
}{}
{printfield{isbn}}%
newunitnewblock%
usebibmacro{chapter+pages}%
}
DeclareBibliographyDriver{set}{%
edefxs@mv@set{abx@field@entrykey}%
ifboolexpr{
test {ifundef{xs@mv@head}}
or
test {ifblank{xs@mv@head}}
}
{entryset{}{}%
newunitnewblock
usebibmacro{setpageref}%
finentry}
{entrydata*{xs@mv@head}{usedriver{}{abx@field@entrytype}finentrypunct%
% reload the set so we can access the header via saved
entrydata*{xs@mv@set}{
% don't issue leavevmode inside here
letblx@leavevmoderelax
setitemize{noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt}%
begin{itemize}[label={printfield{entrysetcount})},labelindent=0.5labelnumberwidth,labelsep=1ex,itemindent=0pt,leftmargin=*]
entryset{item ifcsdef{blx@bbx@multivolumeabx@field@savedentrytype}
{edefabx@field@entrytype{multivolumeabx@field@savedentrytype}}
{message{^^Jxs Warning: BibliographyDriver blx@bbx@multivolume@abx@field@entrytypespace undefined
^^J** Using fallback driver multivolumechild
^^J** If you get unexpected entries in the bibliography consider to create a new BibliographyDriver multivolume@abx@field@savedentrytype.}%
defabx@field@entrytype{multivolumechild}}}{}%
finentrypunctend{itemize}nopunct}}%
newunitnewblock
usebibmacro{setpageref}%
finentry}}
newcounter{cbx@tempcntc}% no. of entrysetcounts we skipped
newcounter{cbx@tempcntd}% 'predicted' entrysetcount
renewbibmacro*{cite:init}{%
globalboolfalse{cbx:parens}%
globalundefcbx@lasthash
globalundefcbx@lastnumber
globalundefcbx@lastprefix
globalundefcbx@lastcount
setcounter{cbx@tempcnta}{0}%
setcounter{cbx@tempcntb}{-2}%
setcounter{cbx@tempcntc}{0}%
setcounter{cbx@tempcntd}{-1}}
newcommand*{cbx@iflabelnumberequalslast}{%
iffieldequals{labelnumber}{cbx@lastnumber}}
newcommand*{cbx@iflabelprefixequalslast}{%
ifundefcbx@lastprefix
{iffieldundef{labelprefix}
{@firstoftwo}
{@secondoftwo}}
{iffieldequals{labelprefix}{cbx@lastprefix}
{@firstoftwo}
{@secondoftwo}}}
newcommand*{cbx@iflabelequalslast}{%
iffieldequals{labelnumber}{cbx@lastnumber}
{cbx@iflabelprefixequalslast
{@firstoftwo}
{@secondoftwo}}
{@secondoftwo}}
renewbibmacro*{cite:comp:inset}{%
stepcounter{cbx@tempcntd}%
cbx@iflabelequalslast
{}
{usebibmacro{cite:dump}%
ifnumgreater{value{cbx@tempcntb}}{-1}
{multicitedelim}
{}}%
printtext[bibhyperref]{%
cbx@iflabelequalslast
{}
{setcounter{cbx@tempcntd}{-1}%
printfield{labelprefix}%
printfield{labelnumber}%
savefield{labelprefix}{cbx@lastprefix}%
savefield{labelnumber}{cbx@lastnumber}}%
ifnumequal{thefield{entrysetcount}}{value{cbx@tempcntd}}
{savefield{entrykey}{cbx@lastkey}%
savefield{entrysetcount}{cbx@lastcount}%
stepcounter{cbx@tempcntc}}
{usebibmacro{cite:dump}%
ifnumgreater{value{cbx@tempcntd}}{0}
{multicitedelim}
{}%
printfield{entrysetcount}}}%
setcounter{cbx@tempcntd}{thefield{entrysetcount}}%
setcounter{cbx@tempcntb}{-1}}
renewbibmacro*{cite:dump}{%
ifnumgreater{value{cbx@tempcntc}}{0}
{ifnumgreater{value{cbx@tempcntc}}{1}
{bibrangedash}
{multicitedelim}%
bibhyperref[cbx@lastkey]{%
printtext[entrysetcount]{cbx@lastcount}}}
{}%
setcounter{cbx@tempcntc}{0}%
ifnumgreater{value{cbx@tempcnta}}{0}
{ifnumgreater{value{cbx@tempcnta}}{1}
{bibrangedash}
{multicitedelim}%
bibhyperref[cbx@lastkey]{%
ifdefcbx@lastprefix
{printtext[labelprefix]{cbx@lastprefix}}
{}%
printtext[labelnumber]{cbx@lastnumber}}%
globalundefcbx@lastprefix}
{}%
setcounter{cbx@tempcnta}{0}}
makeatother
renewcommand{entrysetpunct}{finentrypunct}
usepackage{filecontents}
begin{filecontents}{jobname.bib}
@Reference{ISO:a,
crossref = {ISO:base},
title = {section 4.5.6.7},
options = {dataonly},
}
@Reference{ISO:b,
crossref = {ISO:base},
title = {section 4.5.6.8},
options = {dataonly},
}
@Reference{ISO:c,
crossref = {ISO:base},
title = {section 4.5.6.9},
options = {dataonly},
}
@Reference{ISO:base,
title = {SS-EN 1992-1-1 eurocode},
options = {dataonly},
}
@Set{ISO,
entryset = {ISO:a,ISO:b,ISO:c},
options = {multivolumehead=ISO:base},
}
end{filecontents}
addbibresource{jobname.bib}
begin{document}
As described in cite{ISO:a} and cite{ISO:b} the chose of parametes in cite{ISO:c}, all those are part of cite{ISO}.
Furthermore multiple cites in one verb+cite+ command like verb+cite{ISO:a,ISO:c,ISO:b}+ are compressed to cite{ISO:a,ISO:c,ISO:b}.
printbibliography
end{document}
Note that if you do not use cite{ISO}
you have to add nocite{}
or it will fail.
add a comment |
Welcome to TeX.SE!
Facing a very similar problem some time ago i modified the @set
handling of biblatex
with the highly appreciated assistance of moewe to get the following result:
Adapting the answer mentioned in my previous comment using the the solution of this question and the main part of this answer to your needs you can use the following:
documentclass{scrartcl}
usepackage[utf8]{inputenc}
usepackage[backend=biber,style=numeric-comp,mcite,subentry,sorting=nty,sortsets=true]{biblatex}
usepackage{enumitem}
DeclareNameAlias{sortname}{family-given}
DeclareNameAlias{default}{family-given}
DeclareFieldFormat{entrysetcount}{mknumalph{#1}}
DeclareDelimFormat{editortypedelim}{addspace}
DeclareFieldFormat{editortype}{mkbibparens{#1}}
makeatletter
DeclareEntryOption[string]{multivolumehead}{defxs@mv@head{#1}}
define@key{xs@multivolume}{multivolumehead}{defxs@mv@head{#1}}
DeclareBibliographyDriver{multivolumechild}{%
ifboolexpr{
test {ifnamesequal{author}{savedauthor}}
or
test {ifnameundef{author}}
}
{nopunct}
{printnames{author}%
newunitnewblock}%
iffieldundef{volume}
{}
{printfield{volume}%
printfield{part}%
newunitnewblock}%
usebibmacro{title}%
newunitnewblock
ifboolexpr{
test {ifnamesequal{editor}{savededitor}}
or
test {ifnameundef{editor}}
}{}
{usebibmacro{byeditor+others}%
newunitnewblock}%
ifboolexpr{
test {iflistsequal{location}{savedlocation}}
or
test {iflistundef{location}}
}{}
{printlist{location}}%<- typo
ifboolexpr{
test {iflistsequal{publisher}{savedpublisher}}
or
test {iflistundef{publisher}}
} {setunit*{addcommaspace}}%
{setunit*{addcolonspace}%
printlist{publisher}%
setunit*{addcommaspace}}%
newunitnewblock%
ifboolexpr{
test {iffieldsequal{year}{savedyear}}
or
test {iffieldundef{year}}
}{}
{printdate%
newunitnewblock}%
ifboolexpr{
test {iffieldsequal{isbn}{savedisbn}}
or
not togl {bbx:isbn}
}{}
{printfield{isbn}}%
newunitnewblock%
usebibmacro{chapter+pages}%
}
DeclareBibliographyDriver{set}{%
edefxs@mv@set{abx@field@entrykey}%
ifboolexpr{
test {ifundef{xs@mv@head}}
or
test {ifblank{xs@mv@head}}
}
{entryset{}{}%
newunitnewblock
usebibmacro{setpageref}%
finentry}
{entrydata*{xs@mv@head}{usedriver{}{abx@field@entrytype}finentrypunct%
% reload the set so we can access the header via saved
entrydata*{xs@mv@set}{
% don't issue leavevmode inside here
letblx@leavevmoderelax
setitemize{noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt}%
begin{itemize}[label={printfield{entrysetcount})},labelindent=0.5labelnumberwidth,labelsep=1ex,itemindent=0pt,leftmargin=*]
entryset{item ifcsdef{blx@bbx@multivolumeabx@field@savedentrytype}
{edefabx@field@entrytype{multivolumeabx@field@savedentrytype}}
{message{^^Jxs Warning: BibliographyDriver blx@bbx@multivolume@abx@field@entrytypespace undefined
^^J** Using fallback driver multivolumechild
^^J** If you get unexpected entries in the bibliography consider to create a new BibliographyDriver multivolume@abx@field@savedentrytype.}%
defabx@field@entrytype{multivolumechild}}}{}%
finentrypunctend{itemize}nopunct}}%
newunitnewblock
usebibmacro{setpageref}%
finentry}}
newcounter{cbx@tempcntc}% no. of entrysetcounts we skipped
newcounter{cbx@tempcntd}% 'predicted' entrysetcount
renewbibmacro*{cite:init}{%
globalboolfalse{cbx:parens}%
globalundefcbx@lasthash
globalundefcbx@lastnumber
globalundefcbx@lastprefix
globalundefcbx@lastcount
setcounter{cbx@tempcnta}{0}%
setcounter{cbx@tempcntb}{-2}%
setcounter{cbx@tempcntc}{0}%
setcounter{cbx@tempcntd}{-1}}
newcommand*{cbx@iflabelnumberequalslast}{%
iffieldequals{labelnumber}{cbx@lastnumber}}
newcommand*{cbx@iflabelprefixequalslast}{%
ifundefcbx@lastprefix
{iffieldundef{labelprefix}
{@firstoftwo}
{@secondoftwo}}
{iffieldequals{labelprefix}{cbx@lastprefix}
{@firstoftwo}
{@secondoftwo}}}
newcommand*{cbx@iflabelequalslast}{%
iffieldequals{labelnumber}{cbx@lastnumber}
{cbx@iflabelprefixequalslast
{@firstoftwo}
{@secondoftwo}}
{@secondoftwo}}
renewbibmacro*{cite:comp:inset}{%
stepcounter{cbx@tempcntd}%
cbx@iflabelequalslast
{}
{usebibmacro{cite:dump}%
ifnumgreater{value{cbx@tempcntb}}{-1}
{multicitedelim}
{}}%
printtext[bibhyperref]{%
cbx@iflabelequalslast
{}
{setcounter{cbx@tempcntd}{-1}%
printfield{labelprefix}%
printfield{labelnumber}%
savefield{labelprefix}{cbx@lastprefix}%
savefield{labelnumber}{cbx@lastnumber}}%
ifnumequal{thefield{entrysetcount}}{value{cbx@tempcntd}}
{savefield{entrykey}{cbx@lastkey}%
savefield{entrysetcount}{cbx@lastcount}%
stepcounter{cbx@tempcntc}}
{usebibmacro{cite:dump}%
ifnumgreater{value{cbx@tempcntd}}{0}
{multicitedelim}
{}%
printfield{entrysetcount}}}%
setcounter{cbx@tempcntd}{thefield{entrysetcount}}%
setcounter{cbx@tempcntb}{-1}}
renewbibmacro*{cite:dump}{%
ifnumgreater{value{cbx@tempcntc}}{0}
{ifnumgreater{value{cbx@tempcntc}}{1}
{bibrangedash}
{multicitedelim}%
bibhyperref[cbx@lastkey]{%
printtext[entrysetcount]{cbx@lastcount}}}
{}%
setcounter{cbx@tempcntc}{0}%
ifnumgreater{value{cbx@tempcnta}}{0}
{ifnumgreater{value{cbx@tempcnta}}{1}
{bibrangedash}
{multicitedelim}%
bibhyperref[cbx@lastkey]{%
ifdefcbx@lastprefix
{printtext[labelprefix]{cbx@lastprefix}}
{}%
printtext[labelnumber]{cbx@lastnumber}}%
globalundefcbx@lastprefix}
{}%
setcounter{cbx@tempcnta}{0}}
makeatother
renewcommand{entrysetpunct}{finentrypunct}
usepackage{filecontents}
begin{filecontents}{jobname.bib}
@Reference{ISO:a,
crossref = {ISO:base},
title = {section 4.5.6.7},
options = {dataonly},
}
@Reference{ISO:b,
crossref = {ISO:base},
title = {section 4.5.6.8},
options = {dataonly},
}
@Reference{ISO:c,
crossref = {ISO:base},
title = {section 4.5.6.9},
options = {dataonly},
}
@Reference{ISO:base,
title = {SS-EN 1992-1-1 eurocode},
options = {dataonly},
}
@Set{ISO,
entryset = {ISO:a,ISO:b,ISO:c},
options = {multivolumehead=ISO:base},
}
end{filecontents}
addbibresource{jobname.bib}
begin{document}
As described in cite{ISO:a} and cite{ISO:b} the chose of parametes in cite{ISO:c}, all those are part of cite{ISO}.
Furthermore multiple cites in one verb+cite+ command like verb+cite{ISO:a,ISO:c,ISO:b}+ are compressed to cite{ISO:a,ISO:c,ISO:b}.
printbibliography
end{document}
Note that if you do not use cite{ISO}
you have to add nocite{}
or it will fail.
add a comment |
Welcome to TeX.SE!
Facing a very similar problem some time ago i modified the @set
handling of biblatex
with the highly appreciated assistance of moewe to get the following result:
Adapting the answer mentioned in my previous comment using the the solution of this question and the main part of this answer to your needs you can use the following:
documentclass{scrartcl}
usepackage[utf8]{inputenc}
usepackage[backend=biber,style=numeric-comp,mcite,subentry,sorting=nty,sortsets=true]{biblatex}
usepackage{enumitem}
DeclareNameAlias{sortname}{family-given}
DeclareNameAlias{default}{family-given}
DeclareFieldFormat{entrysetcount}{mknumalph{#1}}
DeclareDelimFormat{editortypedelim}{addspace}
DeclareFieldFormat{editortype}{mkbibparens{#1}}
makeatletter
DeclareEntryOption[string]{multivolumehead}{defxs@mv@head{#1}}
define@key{xs@multivolume}{multivolumehead}{defxs@mv@head{#1}}
DeclareBibliographyDriver{multivolumechild}{%
ifboolexpr{
test {ifnamesequal{author}{savedauthor}}
or
test {ifnameundef{author}}
}
{nopunct}
{printnames{author}%
newunitnewblock}%
iffieldundef{volume}
{}
{printfield{volume}%
printfield{part}%
newunitnewblock}%
usebibmacro{title}%
newunitnewblock
ifboolexpr{
test {ifnamesequal{editor}{savededitor}}
or
test {ifnameundef{editor}}
}{}
{usebibmacro{byeditor+others}%
newunitnewblock}%
ifboolexpr{
test {iflistsequal{location}{savedlocation}}
or
test {iflistundef{location}}
}{}
{printlist{location}}%<- typo
ifboolexpr{
test {iflistsequal{publisher}{savedpublisher}}
or
test {iflistundef{publisher}}
} {setunit*{addcommaspace}}%
{setunit*{addcolonspace}%
printlist{publisher}%
setunit*{addcommaspace}}%
newunitnewblock%
ifboolexpr{
test {iffieldsequal{year}{savedyear}}
or
test {iffieldundef{year}}
}{}
{printdate%
newunitnewblock}%
ifboolexpr{
test {iffieldsequal{isbn}{savedisbn}}
or
not togl {bbx:isbn}
}{}
{printfield{isbn}}%
newunitnewblock%
usebibmacro{chapter+pages}%
}
DeclareBibliographyDriver{set}{%
edefxs@mv@set{abx@field@entrykey}%
ifboolexpr{
test {ifundef{xs@mv@head}}
or
test {ifblank{xs@mv@head}}
}
{entryset{}{}%
newunitnewblock
usebibmacro{setpageref}%
finentry}
{entrydata*{xs@mv@head}{usedriver{}{abx@field@entrytype}finentrypunct%
% reload the set so we can access the header via saved
entrydata*{xs@mv@set}{
% don't issue leavevmode inside here
letblx@leavevmoderelax
setitemize{noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt}%
begin{itemize}[label={printfield{entrysetcount})},labelindent=0.5labelnumberwidth,labelsep=1ex,itemindent=0pt,leftmargin=*]
entryset{item ifcsdef{blx@bbx@multivolumeabx@field@savedentrytype}
{edefabx@field@entrytype{multivolumeabx@field@savedentrytype}}
{message{^^Jxs Warning: BibliographyDriver blx@bbx@multivolume@abx@field@entrytypespace undefined
^^J** Using fallback driver multivolumechild
^^J** If you get unexpected entries in the bibliography consider to create a new BibliographyDriver multivolume@abx@field@savedentrytype.}%
defabx@field@entrytype{multivolumechild}}}{}%
finentrypunctend{itemize}nopunct}}%
newunitnewblock
usebibmacro{setpageref}%
finentry}}
newcounter{cbx@tempcntc}% no. of entrysetcounts we skipped
newcounter{cbx@tempcntd}% 'predicted' entrysetcount
renewbibmacro*{cite:init}{%
globalboolfalse{cbx:parens}%
globalundefcbx@lasthash
globalundefcbx@lastnumber
globalundefcbx@lastprefix
globalundefcbx@lastcount
setcounter{cbx@tempcnta}{0}%
setcounter{cbx@tempcntb}{-2}%
setcounter{cbx@tempcntc}{0}%
setcounter{cbx@tempcntd}{-1}}
newcommand*{cbx@iflabelnumberequalslast}{%
iffieldequals{labelnumber}{cbx@lastnumber}}
newcommand*{cbx@iflabelprefixequalslast}{%
ifundefcbx@lastprefix
{iffieldundef{labelprefix}
{@firstoftwo}
{@secondoftwo}}
{iffieldequals{labelprefix}{cbx@lastprefix}
{@firstoftwo}
{@secondoftwo}}}
newcommand*{cbx@iflabelequalslast}{%
iffieldequals{labelnumber}{cbx@lastnumber}
{cbx@iflabelprefixequalslast
{@firstoftwo}
{@secondoftwo}}
{@secondoftwo}}
renewbibmacro*{cite:comp:inset}{%
stepcounter{cbx@tempcntd}%
cbx@iflabelequalslast
{}
{usebibmacro{cite:dump}%
ifnumgreater{value{cbx@tempcntb}}{-1}
{multicitedelim}
{}}%
printtext[bibhyperref]{%
cbx@iflabelequalslast
{}
{setcounter{cbx@tempcntd}{-1}%
printfield{labelprefix}%
printfield{labelnumber}%
savefield{labelprefix}{cbx@lastprefix}%
savefield{labelnumber}{cbx@lastnumber}}%
ifnumequal{thefield{entrysetcount}}{value{cbx@tempcntd}}
{savefield{entrykey}{cbx@lastkey}%
savefield{entrysetcount}{cbx@lastcount}%
stepcounter{cbx@tempcntc}}
{usebibmacro{cite:dump}%
ifnumgreater{value{cbx@tempcntd}}{0}
{multicitedelim}
{}%
printfield{entrysetcount}}}%
setcounter{cbx@tempcntd}{thefield{entrysetcount}}%
setcounter{cbx@tempcntb}{-1}}
renewbibmacro*{cite:dump}{%
ifnumgreater{value{cbx@tempcntc}}{0}
{ifnumgreater{value{cbx@tempcntc}}{1}
{bibrangedash}
{multicitedelim}%
bibhyperref[cbx@lastkey]{%
printtext[entrysetcount]{cbx@lastcount}}}
{}%
setcounter{cbx@tempcntc}{0}%
ifnumgreater{value{cbx@tempcnta}}{0}
{ifnumgreater{value{cbx@tempcnta}}{1}
{bibrangedash}
{multicitedelim}%
bibhyperref[cbx@lastkey]{%
ifdefcbx@lastprefix
{printtext[labelprefix]{cbx@lastprefix}}
{}%
printtext[labelnumber]{cbx@lastnumber}}%
globalundefcbx@lastprefix}
{}%
setcounter{cbx@tempcnta}{0}}
makeatother
renewcommand{entrysetpunct}{finentrypunct}
usepackage{filecontents}
begin{filecontents}{jobname.bib}
@Reference{ISO:a,
crossref = {ISO:base},
title = {section 4.5.6.7},
options = {dataonly},
}
@Reference{ISO:b,
crossref = {ISO:base},
title = {section 4.5.6.8},
options = {dataonly},
}
@Reference{ISO:c,
crossref = {ISO:base},
title = {section 4.5.6.9},
options = {dataonly},
}
@Reference{ISO:base,
title = {SS-EN 1992-1-1 eurocode},
options = {dataonly},
}
@Set{ISO,
entryset = {ISO:a,ISO:b,ISO:c},
options = {multivolumehead=ISO:base},
}
end{filecontents}
addbibresource{jobname.bib}
begin{document}
As described in cite{ISO:a} and cite{ISO:b} the chose of parametes in cite{ISO:c}, all those are part of cite{ISO}.
Furthermore multiple cites in one verb+cite+ command like verb+cite{ISO:a,ISO:c,ISO:b}+ are compressed to cite{ISO:a,ISO:c,ISO:b}.
printbibliography
end{document}
Note that if you do not use cite{ISO}
you have to add nocite{}
or it will fail.
Welcome to TeX.SE!
Facing a very similar problem some time ago i modified the @set
handling of biblatex
with the highly appreciated assistance of moewe to get the following result:
Adapting the answer mentioned in my previous comment using the the solution of this question and the main part of this answer to your needs you can use the following:
documentclass{scrartcl}
usepackage[utf8]{inputenc}
usepackage[backend=biber,style=numeric-comp,mcite,subentry,sorting=nty,sortsets=true]{biblatex}
usepackage{enumitem}
DeclareNameAlias{sortname}{family-given}
DeclareNameAlias{default}{family-given}
DeclareFieldFormat{entrysetcount}{mknumalph{#1}}
DeclareDelimFormat{editortypedelim}{addspace}
DeclareFieldFormat{editortype}{mkbibparens{#1}}
makeatletter
DeclareEntryOption[string]{multivolumehead}{defxs@mv@head{#1}}
define@key{xs@multivolume}{multivolumehead}{defxs@mv@head{#1}}
DeclareBibliographyDriver{multivolumechild}{%
ifboolexpr{
test {ifnamesequal{author}{savedauthor}}
or
test {ifnameundef{author}}
}
{nopunct}
{printnames{author}%
newunitnewblock}%
iffieldundef{volume}
{}
{printfield{volume}%
printfield{part}%
newunitnewblock}%
usebibmacro{title}%
newunitnewblock
ifboolexpr{
test {ifnamesequal{editor}{savededitor}}
or
test {ifnameundef{editor}}
}{}
{usebibmacro{byeditor+others}%
newunitnewblock}%
ifboolexpr{
test {iflistsequal{location}{savedlocation}}
or
test {iflistundef{location}}
}{}
{printlist{location}}%<- typo
ifboolexpr{
test {iflistsequal{publisher}{savedpublisher}}
or
test {iflistundef{publisher}}
} {setunit*{addcommaspace}}%
{setunit*{addcolonspace}%
printlist{publisher}%
setunit*{addcommaspace}}%
newunitnewblock%
ifboolexpr{
test {iffieldsequal{year}{savedyear}}
or
test {iffieldundef{year}}
}{}
{printdate%
newunitnewblock}%
ifboolexpr{
test {iffieldsequal{isbn}{savedisbn}}
or
not togl {bbx:isbn}
}{}
{printfield{isbn}}%
newunitnewblock%
usebibmacro{chapter+pages}%
}
DeclareBibliographyDriver{set}{%
edefxs@mv@set{abx@field@entrykey}%
ifboolexpr{
test {ifundef{xs@mv@head}}
or
test {ifblank{xs@mv@head}}
}
{entryset{}{}%
newunitnewblock
usebibmacro{setpageref}%
finentry}
{entrydata*{xs@mv@head}{usedriver{}{abx@field@entrytype}finentrypunct%
% reload the set so we can access the header via saved
entrydata*{xs@mv@set}{
% don't issue leavevmode inside here
letblx@leavevmoderelax
setitemize{noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt}%
begin{itemize}[label={printfield{entrysetcount})},labelindent=0.5labelnumberwidth,labelsep=1ex,itemindent=0pt,leftmargin=*]
entryset{item ifcsdef{blx@bbx@multivolumeabx@field@savedentrytype}
{edefabx@field@entrytype{multivolumeabx@field@savedentrytype}}
{message{^^Jxs Warning: BibliographyDriver blx@bbx@multivolume@abx@field@entrytypespace undefined
^^J** Using fallback driver multivolumechild
^^J** If you get unexpected entries in the bibliography consider to create a new BibliographyDriver multivolume@abx@field@savedentrytype.}%
defabx@field@entrytype{multivolumechild}}}{}%
finentrypunctend{itemize}nopunct}}%
newunitnewblock
usebibmacro{setpageref}%
finentry}}
newcounter{cbx@tempcntc}% no. of entrysetcounts we skipped
newcounter{cbx@tempcntd}% 'predicted' entrysetcount
renewbibmacro*{cite:init}{%
globalboolfalse{cbx:parens}%
globalundefcbx@lasthash
globalundefcbx@lastnumber
globalundefcbx@lastprefix
globalundefcbx@lastcount
setcounter{cbx@tempcnta}{0}%
setcounter{cbx@tempcntb}{-2}%
setcounter{cbx@tempcntc}{0}%
setcounter{cbx@tempcntd}{-1}}
newcommand*{cbx@iflabelnumberequalslast}{%
iffieldequals{labelnumber}{cbx@lastnumber}}
newcommand*{cbx@iflabelprefixequalslast}{%
ifundefcbx@lastprefix
{iffieldundef{labelprefix}
{@firstoftwo}
{@secondoftwo}}
{iffieldequals{labelprefix}{cbx@lastprefix}
{@firstoftwo}
{@secondoftwo}}}
newcommand*{cbx@iflabelequalslast}{%
iffieldequals{labelnumber}{cbx@lastnumber}
{cbx@iflabelprefixequalslast
{@firstoftwo}
{@secondoftwo}}
{@secondoftwo}}
renewbibmacro*{cite:comp:inset}{%
stepcounter{cbx@tempcntd}%
cbx@iflabelequalslast
{}
{usebibmacro{cite:dump}%
ifnumgreater{value{cbx@tempcntb}}{-1}
{multicitedelim}
{}}%
printtext[bibhyperref]{%
cbx@iflabelequalslast
{}
{setcounter{cbx@tempcntd}{-1}%
printfield{labelprefix}%
printfield{labelnumber}%
savefield{labelprefix}{cbx@lastprefix}%
savefield{labelnumber}{cbx@lastnumber}}%
ifnumequal{thefield{entrysetcount}}{value{cbx@tempcntd}}
{savefield{entrykey}{cbx@lastkey}%
savefield{entrysetcount}{cbx@lastcount}%
stepcounter{cbx@tempcntc}}
{usebibmacro{cite:dump}%
ifnumgreater{value{cbx@tempcntd}}{0}
{multicitedelim}
{}%
printfield{entrysetcount}}}%
setcounter{cbx@tempcntd}{thefield{entrysetcount}}%
setcounter{cbx@tempcntb}{-1}}
renewbibmacro*{cite:dump}{%
ifnumgreater{value{cbx@tempcntc}}{0}
{ifnumgreater{value{cbx@tempcntc}}{1}
{bibrangedash}
{multicitedelim}%
bibhyperref[cbx@lastkey]{%
printtext[entrysetcount]{cbx@lastcount}}}
{}%
setcounter{cbx@tempcntc}{0}%
ifnumgreater{value{cbx@tempcnta}}{0}
{ifnumgreater{value{cbx@tempcnta}}{1}
{bibrangedash}
{multicitedelim}%
bibhyperref[cbx@lastkey]{%
ifdefcbx@lastprefix
{printtext[labelprefix]{cbx@lastprefix}}
{}%
printtext[labelnumber]{cbx@lastnumber}}%
globalundefcbx@lastprefix}
{}%
setcounter{cbx@tempcnta}{0}}
makeatother
renewcommand{entrysetpunct}{finentrypunct}
usepackage{filecontents}
begin{filecontents}{jobname.bib}
@Reference{ISO:a,
crossref = {ISO:base},
title = {section 4.5.6.7},
options = {dataonly},
}
@Reference{ISO:b,
crossref = {ISO:base},
title = {section 4.5.6.8},
options = {dataonly},
}
@Reference{ISO:c,
crossref = {ISO:base},
title = {section 4.5.6.9},
options = {dataonly},
}
@Reference{ISO:base,
title = {SS-EN 1992-1-1 eurocode},
options = {dataonly},
}
@Set{ISO,
entryset = {ISO:a,ISO:b,ISO:c},
options = {multivolumehead=ISO:base},
}
end{filecontents}
addbibresource{jobname.bib}
begin{document}
As described in cite{ISO:a} and cite{ISO:b} the chose of parametes in cite{ISO:c}, all those are part of cite{ISO}.
Furthermore multiple cites in one verb+cite+ command like verb+cite{ISO:a,ISO:c,ISO:b}+ are compressed to cite{ISO:a,ISO:c,ISO:b}.
printbibliography
end{document}
Note that if you do not use cite{ISO}
you have to add nocite{}
or it will fail.
answered Feb 23 at 13:32
AndiWAndiW
3101211
3101211
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%2f476159%2freferencing-to-a-standard-eurocode-several-times-yet-different-sections%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
Maybe this tex.stackexchange.com/a/463919/118739 may help...
– AndiW
Feb 22 at 14:00
I guess usually one would just cite the entire thing and would add the specific section/pinpoint in the cite command:
cite[§4.5.6.7]{en1992}
andcite[§4.5.6.9]{en1992}
.– moewe
Feb 24 at 13:22