Referencing to a standard (eurocode) several times yet different sections












1















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?










share|improve this question

























  • 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
















1















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?










share|improve this question

























  • 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














1












1








1








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?










share|improve this question
















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






share|improve this question















share|improve this question













share|improve this question




share|improve this question








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} and cite[§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











  • 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

















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










1 Answer
1






active

oldest

votes


















2














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:



enter image description here



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.






share|improve this answer























    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
    });


    }
    });














    draft saved

    draft discarded


















    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









    2














    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:



    enter image description here



    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.






    share|improve this answer




























      2














      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:



      enter image description here



      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.






      share|improve this answer


























        2












        2








        2







        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:



        enter image description here



        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.






        share|improve this answer













        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:



        enter image description here



        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.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Feb 23 at 13:32









        AndiWAndiW

        3101211




        3101211






























            draft saved

            draft discarded




















































            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.




            draft saved


            draft discarded














            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





















































            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







            Popular posts from this blog

            How to change which sound is reproduced for terminal bell?

            Title Spacing in Bjornstrup Chapter, Removing Chapter Number From Contents

            Can I use Tabulator js library in my java Spring + Thymeleaf project?