0

The solution of moewe to the question Biblatex: Two bibliographies with different styles and sortings II Part 3 produces the desired output. Unfortunately, there is a special case where the output differs from the "normal" behavior.

Problem source: It seems to be the replacement of the \space with \addthinspace (\renewcommand*{\multicitedelim}{\addsemicolon\space} with \renewcommand*{\multicitedelim}{\addsemicolon\addthinspace}).

Problem: Long citations of several lines (multiple authors all in alpha style) with, for instance, \cite overflow the text margins when using the above-mentioned solution with \addthinspace.

Question: Is there a solution adding short/thin spaces instead of normal spaces?

Output with \renewcommand*{\multicitedelim}{\addsemicolon\space} enter image description here

Output with \renewcommand*{\multicitedelim}{\addsemicolon\addthinspace} enter image description here

MWE

\documentclass[parskip=full]{scrbook}
\usepackage{microtype}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage[backend=biber,
style=numeric-comp,
labelalpha, defernumbers,
locallabelwidth]{biblatex}

\usepackage[colorlinks=true,citecolor=blue,urlcolor=red]{hyperref}
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.25pt}
\renewcommand*\ShowFrameColor{\color{red}}

%Append keywords to identify different bibliography entries.
\DeclareSourcemap{
    \maps[datatype=bibtex, overwrite]{
        \map{
            \perdatasource{biblatextest1.bib}
            \step[fieldset=KEYWORDS, fieldvalue=primary]
        }
        \map{
            \perdatasource{biblatextest2.bib}
            \step[fieldset=KEYWORDS, fieldvalue=secondary]
        }
    }
}
%Rewritting of internal commands. Solution of moewe
%https://tex.stackexchange.com/questions/557555/biblatex-two-bibliographies-with-different-styles-and-sortings-ii-part-3
%==========================================================================================%
%\renewcommand*{\multicitedelim}{\addsemicolon\space}
\renewcommand*{\multicitedelim}{\addsemicolon\addthinspace}

\renewcommand*{\ppspace}{\addnbthinspace}

\letbibmacro{cite:num:comp}{cite:comp}

\newbibmacro{cite:alpha}{%
    \printtext[bibhyperref]{%
        \printfield{labelprefix}%
        \printfield{labelalpha}%
        \printfield{extraalpha}%
        \ifbool{bbx:subentry}
        {\printfield{entrysetcount}}
        {}}}

\renewbibmacro*{cite:comp}{%
    \ifkeyword{primary}
    {\usebibmacro{cite:dump}%
        \ifnumgreater{\value{cbx@tempcntb}}{-1}
        {\multicitedelim}
        {\iffirstcitekey
            {}
            {\multicitedelim}}%
        \usebibmacro{cite:alpha}%
        \iflastcitekeylocal
        {}
        {\multicitedelim}%
        \setcounter{cbx@tempcnta}{0}%
        \setcounter{cbx@tempcntb}{-2}}
    {\usebibmacro{cite:num:comp}}}

\makeatletter
\newcommand*\iflastcitekeylocal{%
    \ifnumequal\c@citecount\c@citetotal}

\renewbibmacro*{cite:init}{%
    \global\boolfalse{cbx:parens}%
    \global\undef\cbx@lasthash
    \global\undef\cbx@lastnumber
    \global\undef\cbx@lastprefix
    \global\undef\cbx@secondtolastprefix
    \setcounter{cbx@tempcnta}{0}%
    \setcounter{cbx@tempcntb}{-2}}

\newcommand*{\ifsamelabelprefix}{%
    \iffieldundef{labelprefix}
    {\ifundef\cbx@lastprefix}
    {\iffieldequals{labelprefix}{\cbx@lastprefix}}}

\renewbibmacro*{cite:comp:comp}{%
    \renewcommand*{\multicitedelim}{\addcomma\addthinspace}%
    \ifsamelabelprefix
    {\ifnumequal{\thefield{labelnumber}}{\value{cbx@tempcntb}}
        {\savefield{entrykey}{\cbx@lastkey}%
            \savefield{labelnumber}{\cbx@lastnumber}%
            \addtocounter{cbx@tempcnta}{1}}
        {\ifnumequal{\thefield{labelnumber}}{\value{cbx@tempcntb}-1}
            {}
            {\usebibmacro{cite:dump}%
                \ifnumgreater{\value{cbx@tempcntb}}{-1}
                {\multicitedelim}
                {}%
                \printtext[bibhyperref]{%
                    \iffieldequals{labelprefix}{\cbx@lastprefix}
                    {}
                    {\printfield{labelprefix}}%
                    \printfield{labelnumber}}}}}
    {\usebibmacro{cite:comp:end}}%
    \setcounter{cbx@tempcntb}{\thefield{labelnumber}}%
    \global\let\cbx@secondtolastprefix\cbx@lastprefix
    \savefield{labelprefix}{\cbx@lastprefix}}

        \DefineBibliographyExtras{english}{
    \renewcommand*{\bibrangedash}{\addnbthinspace\textendash\addhpthinspace}
}
\renewbibmacro*{cite:dump}{%
    \ifnumgreater{\value{cbx@tempcnta}}{0}
    {\ifnumgreater{\value{cbx@tempcnta}}{1}
        {\bibrangedash}
        {\multicitedelim}%
        \bibhyperref[\cbx@lastkey]{%
            \ifdef\cbx@lastprefix
            {\ifdefequal\cbx@lastprefix\cbx@secondtolastprefix
                {}
                {\printtext[labelprefix]{\cbx@lastprefix}}}
            {}%
            \printtext[labelnumber]{\cbx@lastnumber}}}
    {}%
    \setcounter{cbx@tempcnta}{0}}
\makeatother
%==========================================================================================%
\DeclareFieldFormat{labelalphawidth}{\mkbibbrackets{#1}}

\defbibenvironment{bibliographyALPHA}
{\list
    {\printtext[labelalphawidth]{%
            \printfield{labelprefix}%
            \printfield{labelalpha}%
            \printfield{extraalpha}}}
    {\setlength{\labelwidth}{\labelalphawidth}%
        \setlength{\leftmargin}{\labelwidth}%
        \setlength{\labelsep}{\biblabelsep}%
        \addtolength{\leftmargin}{\labelsep}%
        \setlength{\itemsep}{\bibitemsep}%
        \setlength{\parsep}{\bibparsep}}%
    \renewcommand*{\makelabel}[1]{##1\hss}}
{\endlist}
{\item}

\begin{filecontents}{biblatextest1.bib}
    @BOOK{BookB07,
        author    = {Author Ät{\"a}},
        title     = {Some Title},
        publisher = {Some Publisher},
        year      = 2003,
    }
    @BOOK{BookB08,
        author    = {Author Bb\"{a}},
        title     = {Some Title},
        publisher = {Some Publisher},
        year      = 2004,
    }
    @BOOK{BookB09,
        author    = {Author Aaa},
        title     = {Some Title},
        publisher = {Some Publisher},
        year      = 2005,
    }
    @BOOK{BookB10,
        author    = {Author Kkk},
        title     = {Some Title},
        publisher = {Some Publisher},
        year      = 2006,
    }
    @BOOK{BookB11,
        author    = {Author Lll},
        title     = {Some Title},
        publisher = {Some Publisher},
        year      = 2007,
    }
    @BOOK{BookB12,
    author    = {Author Mmm},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2008,
}
    @BOOK{BookB13,
    author    = {Author Nnn},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2009,
}
    @BOOK{BookB14,
    author    = {Author Ooo},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2010,
}
    @BOOK{BookB15,
    author    = {Author Ppp},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2011,
}
    @BOOK{BookB16,
    author    = {Author Qqq},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2012,
}
    @BOOK{BookB17,
    author    = {Author Rrr},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2013,
}
    @BOOK{BookB18,
    author    = {Author Sss},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2014,
}
    @BOOK{BookB19,
    author    = {Author Ttt},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2015,
}
    @BOOK{BookB20,
    author    = {Author Uuu},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2016,
}
    @BOOK{BookB21,
    author    = {Author Vvv},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2017,
}
    @BOOK{BookB22,
    author    = {Author Xxx},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2018,
}
    @BOOK{BookB23,
    author    = {Author Yyy},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2019,
}
    @BOOK{BookB24,
    author    = {Author Zzz},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2020,
}
    @BOOK{BookB25,
    author    = {Author Ccc},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2021,
}
    @BOOK{BookB26,
    author    = {Author Ddd},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2022,
}
    @BOOK{BookB27,
    author    = {Author Eee},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2023,
}
    @BOOK{BookB28,
    author    = {Author Fff},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2024,
}
    @BOOK{BookB29,
    author    = {Author Ggg},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2025,
}
    @BOOK{BookB30,
    author    = {Author Hhh},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2026,
}
    @BOOK{BookB31,
    author    = {Author Iii},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2027,
}
    @BOOK{BookB32,
    author    = {Author Jjj},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2028,
}
    @BOOK{BookB33,
    author    = {Author aaA},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2029,
}
    @BOOK{BookB34,
    author    = {Author bBB},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2030,
}
    @BOOK{BookB35,
    author    = {Author cCC},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2031,
}
    @BOOK{BookB36,
    author    = {Author dDD},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2032,
}
    @BOOK{BookB37,
    author    = {Author eEE},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2033,
}
    @BOOK{BookB38,
    author    = {Author ff},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2034,
}
    @BOOK{BookB39,
    author    = {Author ggG},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2035,
}
    @BOOK{BookB40,
    author    = {Author hhH},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2036,
}
    @BOOK{BookB41,
    author    = {Author i},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2037,
}
    @BOOK{BookB42,
    author    = {Author jjJ},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2038,
}
    @BOOK{BookB43,
    author    = {Author kkK},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2039,
}
    @BOOK{BookB44,
    author    = {Author llL},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2040,
}
    @BOOK{BookB45,
    author    = {Author mMM},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2041,
}
    @BOOK{BookB46,
    author    = {Author nN},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2042,
}
    @BOOK{BookB47,
    author    = {Author Oo},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2043,
}
    @BOOK{BookB48,
    author    = {Author ppP},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2044,
}
    @BOOK{BookB49,
    author    = {Author qqQ},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2045,
}
    @BOOK{BookB50,
    author    = {Author rrR},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2046,
}
    @BOOK{BookB51,
    author    = {Author ssS},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2047,
}
    @BOOK{BookB52,
    author    = {Author t},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2048,
}
    @BOOK{BookB53,
    author    = {Author uuU},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2049,
}
    @BOOK{BookB54,
    author    = {Author vvV},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2050,
}
    @BOOK{BookB55,
    author    = {Author Www},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2051,
}
    @BOOK{BookB56,
    author    = {Author xxX},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2052,
}
    @BOOK{BookB57,
    author    = {Author yyY},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2053,
}
    @BOOK{BookB58,
    author    = {Author zzZ},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2054,
}
    @BOOK{BookB59,
    author    = {Author rst},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2055,
}
\end{filecontents}
\begin{filecontents}{biblatextest2.bib}
    @MISC{LinkD03,
        author  = {Author Ccc},
        title   = {Some Title},
        year    = 2004,
        url     = {www.test1.com/bild.jpg},
    }
    @MISC{LinkD04,
        author  = {Author Ddd},
        title   = {Some Title},
        year    = 2001,
        url     = {www.test2.com/bild.jpg},
    }
    @MISC{LinkD05,
        author  = {Author Eee},
        title   = {Some Title},
        year    = 2004,
        url     = {www.test3.com/bild.jpg},
    }
    @MISC{LinkD06,
        author  = {Author Fff},
        title   = {Some Title},
        year    = 2001,
        url     = {www.test4.com/bild.jpg},
    }
    @MISC{LinkD07,
        author  = {Author Ggg},
        title   = {Some Title},
        year    = 2004,
        url     = {www.test5.com/bild.jpg},
    }
    @MISC{LinkD08,
        author  = {Author Hhh},
        title   = {Some Title},
        year    = 2001,
        url     = {www.test6.com/bild.jpg},
    }
    @MISC{LinkD09,
        author  = {Author Iii},
        title   = {Some Title},
        year    = 2001,
        url     = {www.test6.com/bild.jpg},
    }
\end{filecontents}
\addbibresource{biblatextest1.bib}
\addbibresource{biblatextest2.bib}


\begin{document}
    The first two citations \autocite{LinkD07,LinkD03}
    and \autocite{BookB10,BookB11,BookB09}. 
    Mixing both primary and secondary \autocite{LinkD08,LinkD04,LinkD05,BookB10,BookB11,BookB09}.
    The others are \autocite{LinkD03,LinkD08,LinkD05,LinkD06,LinkD07}
    as well as \autocite{LinkD03,LinkD04,LinkD05,LinkD07,LinkD08, LinkD09}
    and \autocite{BookB07}.
    With page numbers \cites[2--15]{BookB09}[3,5,23]{BookB10}[1--6]{BookB11}
    With page numbers \Cites[2--15]{BookB10}[3,5,23]{BookB09}[1--6]{BookB11}\\\\
    
    Example of very long citation with multiple authors all in alpha style \cite{BookB07,BookB08,BookB09,BookB10,BookB11,BookB12,BookB13,BookB14,BookB15,BookB16,BookB17,BookB18,BookB19,BookB20,BookB21,BookB22,BookB23,BookB24,BookB25,BookB26,BookB27,BookB28,BookB29,BookB30,BookB31,BookB32,BookB33,BookB34,BookB35,BookB36,BookB37,BookB38,BookB39,BookB40,BookB41,BookB42,BookB43,BookB44,BookB45,BookB46,BookB47,BookB48,BookB49,BookB50,BookB51,BookB52,BookB53,BookB54,BookB55,BookB56,BookB57,BookB58,BookB59}. The are some problems with the linebreaks inside the citation. 
    
    \printbibliography[env=bibliographyALPHA, title=Bibliography, keyword=primary]
    
    \newrefcontext[labelprefix=tech\string\adddot\addnbthinspace]
    \printbibliography[title=References, keyword=secondary, resetnumbers]
\end{document}
1
  • 1
    You need a strechable space, I think \thinspace has a fixed width.
    – corvus_192
    Commented Aug 19, 2020 at 13:46

1 Answer 1

1

As corvus_192 says in the comments, your main problem here is that \addthinspace produces a rigid space that can neither shrink nor stretch. If you fill entire lines only with (otherwise unbreakable) alphabetic citation labels, the only chance LaTeX has to get a good line break is by adjusting the space between the citations.

Indeed \addthinspace is defined in biblatex.sty as

\newrobustcmd*{\addthinspace}{%
  \unspace\blx@postpunct
  \hskip0.16667em\relax
  \blx@imc@resetpunctfont}

I'd define a stretchable version as follows

\newrobustcmd*{\stretchablethinspace}{%
  \hskip0.16667em plus 0.0555em minus 0.0555em\relax}

\newrobustcmd*{\addstretchablethinspace}{%
  \unspace\blx@postpunct
  \stretchablethinspace
  \blx@imc@resetpunctfont}

You can then use

\renewcommand*{\multicitedelim}{\addsemicolon\stretchablethinspace}

(Note that you don't need to use the \add... version, since the housekeeping is already done by the previous \addsemicolon).

\documentclass[parskip=full]{scrbook}
\usepackage{microtype}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage[backend=biber,
style=numeric-comp,
labelalpha, defernumbers,
locallabelwidth]{biblatex}

\usepackage[colorlinks=true,citecolor=blue,urlcolor=red]{hyperref}
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.25pt}
\renewcommand*\ShowFrameColor{\color{red}}

%Append keywords to identify different bibliography entries.
\DeclareSourcemap{
    \maps[datatype=bibtex, overwrite]{
        \map{
            \perdatasource{biblatextest1.bib}
            \step[fieldset=KEYWORDS, fieldvalue=primary]
        }
        \map{
            \perdatasource{biblatextest2.bib}
            \step[fieldset=KEYWORDS, fieldvalue=secondary]
        }
    }
}

\makeatletter
\newrobustcmd*{\stretchablethinspace}{%
  \hskip0.16667em plus 0.0555em minus 0.0555em\relax}

\newrobustcmd*{\addstretchablethinspace}{%
  \unspace\blx@postpunct
  \stretchablethinspace
  \blx@imc@resetpunctfont}
\makeatother

%Rewritting of internal commands. Solution of moewe
%https://tex.stackexchange.com/questions/557555/biblatex-two-bibliographies-with-different-styles-and-sortings-ii-part-3
%==========================================================================================%
%\renewcommand*{\multicitedelim}{\addsemicolon\space}
\renewcommand*{\multicitedelim}{\addsemicolon\stretchablethinspace}

\renewcommand*{\ppspace}{\addnbthinspace}

\letbibmacro{cite:num:comp}{cite:comp}

\newbibmacro{cite:alpha}{%
    \printtext[bibhyperref]{%
        \printfield{labelprefix}%
        \printfield{labelalpha}%
        \printfield{extraalpha}%
        \ifbool{bbx:subentry}
        {\printfield{entrysetcount}}
        {}}}

\renewbibmacro*{cite:comp}{%
    \ifkeyword{primary}
    {\usebibmacro{cite:dump}%
        \ifnumgreater{\value{cbx@tempcntb}}{-1}
        {\multicitedelim}
        {\iffirstcitekey
            {}
            {\multicitedelim}}%
        \usebibmacro{cite:alpha}%
        \iflastcitekeylocal
        {}
        {\multicitedelim}%
        \setcounter{cbx@tempcnta}{0}%
        \setcounter{cbx@tempcntb}{-2}}
    {\usebibmacro{cite:num:comp}}}

\makeatletter
\newcommand*\iflastcitekeylocal{%
    \ifnumequal\c@citecount\c@citetotal}

\renewbibmacro*{cite:init}{%
    \global\boolfalse{cbx:parens}%
    \global\undef\cbx@lasthash
    \global\undef\cbx@lastnumber
    \global\undef\cbx@lastprefix
    \global\undef\cbx@secondtolastprefix
    \setcounter{cbx@tempcnta}{0}%
    \setcounter{cbx@tempcntb}{-2}}

\newcommand*{\ifsamelabelprefix}{%
    \iffieldundef{labelprefix}
    {\ifundef\cbx@lastprefix}
    {\iffieldequals{labelprefix}{\cbx@lastprefix}}}

\renewbibmacro*{cite:comp:comp}{%
    \renewcommand*{\multicitedelim}{\addcomma\stretchablethinspace}%
    \ifsamelabelprefix
    {\ifnumequal{\thefield{labelnumber}}{\value{cbx@tempcntb}}
        {\savefield{entrykey}{\cbx@lastkey}%
            \savefield{labelnumber}{\cbx@lastnumber}%
            \addtocounter{cbx@tempcnta}{1}}
        {\ifnumequal{\thefield{labelnumber}}{\value{cbx@tempcntb}-1}
            {}
            {\usebibmacro{cite:dump}%
                \ifnumgreater{\value{cbx@tempcntb}}{-1}
                {\multicitedelim}
                {}%
                \printtext[bibhyperref]{%
                    \iffieldequals{labelprefix}{\cbx@lastprefix}
                    {}
                    {\printfield{labelprefix}}%
                    \printfield{labelnumber}}}}}
    {\usebibmacro{cite:comp:end}}%
    \setcounter{cbx@tempcntb}{\thefield{labelnumber}}%
    \global\let\cbx@secondtolastprefix\cbx@lastprefix
    \savefield{labelprefix}{\cbx@lastprefix}}

        \DefineBibliographyExtras{english}{
    \renewcommand*{\bibrangedash}{\addnbthinspace\textendash\addhpthinspace}
}
\renewbibmacro*{cite:dump}{%
    \ifnumgreater{\value{cbx@tempcnta}}{0}
    {\ifnumgreater{\value{cbx@tempcnta}}{1}
        {\bibrangedash}
        {\multicitedelim}%
        \bibhyperref[\cbx@lastkey]{%
            \ifdef\cbx@lastprefix
            {\ifdefequal\cbx@lastprefix\cbx@secondtolastprefix
                {}
                {\printtext[labelprefix]{\cbx@lastprefix}}}
            {}%
            \printtext[labelnumber]{\cbx@lastnumber}}}
    {}%
    \setcounter{cbx@tempcnta}{0}}
\makeatother
%==========================================================================================%
\DeclareFieldFormat{labelalphawidth}{\mkbibbrackets{#1}}

\defbibenvironment{bibliographyALPHA}
{\list
    {\printtext[labelalphawidth]{%
            \printfield{labelprefix}%
            \printfield{labelalpha}%
            \printfield{extraalpha}}}
    {\setlength{\labelwidth}{\labelalphawidth}%
        \setlength{\leftmargin}{\labelwidth}%
        \setlength{\labelsep}{\biblabelsep}%
        \addtolength{\leftmargin}{\labelsep}%
        \setlength{\itemsep}{\bibitemsep}%
        \setlength{\parsep}{\bibparsep}}%
    \renewcommand*{\makelabel}[1]{##1\hss}}
{\endlist}
{\item}

\begin{filecontents}{biblatextest1.bib}
    @BOOK{BookB07,
        author    = {Author Ät{\"a}},
        title     = {Some Title},
        publisher = {Some Publisher},
        year      = 2003,
    }
    @BOOK{BookB08,
        author    = {Author Bb\"{a}},
        title     = {Some Title},
        publisher = {Some Publisher},
        year      = 2004,
    }
    @BOOK{BookB09,
        author    = {Author Aaa},
        title     = {Some Title},
        publisher = {Some Publisher},
        year      = 2005,
    }
    @BOOK{BookB10,
        author    = {Author Kkk},
        title     = {Some Title},
        publisher = {Some Publisher},
        year      = 2006,
    }
    @BOOK{BookB11,
        author    = {Author Lll},
        title     = {Some Title},
        publisher = {Some Publisher},
        year      = 2007,
    }
    @BOOK{BookB12,
    author    = {Author Mmm},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2008,
}
    @BOOK{BookB13,
    author    = {Author Nnn},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2009,
}
    @BOOK{BookB14,
    author    = {Author Ooo},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2010,
}
    @BOOK{BookB15,
    author    = {Author Ppp},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2011,
}
    @BOOK{BookB16,
    author    = {Author Qqq},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2012,
}
    @BOOK{BookB17,
    author    = {Author Rrr},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2013,
}
    @BOOK{BookB18,
    author    = {Author Sss},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2014,
}
    @BOOK{BookB19,
    author    = {Author Ttt},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2015,
}
    @BOOK{BookB20,
    author    = {Author Uuu},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2016,
}
    @BOOK{BookB21,
    author    = {Author Vvv},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2017,
}
    @BOOK{BookB22,
    author    = {Author Xxx},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2018,
}
    @BOOK{BookB23,
    author    = {Author Yyy},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2019,
}
    @BOOK{BookB24,
    author    = {Author Zzz},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2020,
}
    @BOOK{BookB25,
    author    = {Author Ccc},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2021,
}
    @BOOK{BookB26,
    author    = {Author Ddd},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2022,
}
    @BOOK{BookB27,
    author    = {Author Eee},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2023,
}
    @BOOK{BookB28,
    author    = {Author Fff},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2024,
}
    @BOOK{BookB29,
    author    = {Author Ggg},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2025,
}
    @BOOK{BookB30,
    author    = {Author Hhh},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2026,
}
    @BOOK{BookB31,
    author    = {Author Iii},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2027,
}
    @BOOK{BookB32,
    author    = {Author Jjj},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2028,
}
    @BOOK{BookB33,
    author    = {Author aaA},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2029,
}
    @BOOK{BookB34,
    author    = {Author bBB},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2030,
}
    @BOOK{BookB35,
    author    = {Author cCC},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2031,
}
    @BOOK{BookB36,
    author    = {Author dDD},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2032,
}
    @BOOK{BookB37,
    author    = {Author eEE},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2033,
}
    @BOOK{BookB38,
    author    = {Author ff},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2034,
}
    @BOOK{BookB39,
    author    = {Author ggG},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2035,
}
    @BOOK{BookB40,
    author    = {Author hhH},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2036,
}
    @BOOK{BookB41,
    author    = {Author i},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2037,
}
    @BOOK{BookB42,
    author    = {Author jjJ},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2038,
}
    @BOOK{BookB43,
    author    = {Author kkK},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2039,
}
    @BOOK{BookB44,
    author    = {Author llL},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2040,
}
    @BOOK{BookB45,
    author    = {Author mMM},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2041,
}
    @BOOK{BookB46,
    author    = {Author nN},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2042,
}
    @BOOK{BookB47,
    author    = {Author Oo},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2043,
}
    @BOOK{BookB48,
    author    = {Author ppP},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2044,
}
    @BOOK{BookB49,
    author    = {Author qqQ},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2045,
}
    @BOOK{BookB50,
    author    = {Author rrR},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2046,
}
    @BOOK{BookB51,
    author    = {Author ssS},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2047,
}
    @BOOK{BookB52,
    author    = {Author t},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2048,
}
    @BOOK{BookB53,
    author    = {Author uuU},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2049,
}
    @BOOK{BookB54,
    author    = {Author vvV},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2050,
}
    @BOOK{BookB55,
    author    = {Author Www},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2051,
}
    @BOOK{BookB56,
    author    = {Author xxX},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2052,
}
    @BOOK{BookB57,
    author    = {Author yyY},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2053,
}
    @BOOK{BookB58,
    author    = {Author zzZ},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2054,
}
    @BOOK{BookB59,
    author    = {Author rst},
    title     = {Some Title},
    publisher = {Some Publisher},
    year      = 2055,
}
\end{filecontents}
\begin{filecontents}{biblatextest2.bib}
    @MISC{LinkD03,
        author  = {Author Ccc},
        title   = {Some Title},
        year    = 2004,
        url     = {www.test1.com/bild.jpg},
    }
    @MISC{LinkD04,
        author  = {Author Ddd},
        title   = {Some Title},
        year    = 2001,
        url     = {www.test2.com/bild.jpg},
    }
    @MISC{LinkD05,
        author  = {Author Eee},
        title   = {Some Title},
        year    = 2004,
        url     = {www.test3.com/bild.jpg},
    }
    @MISC{LinkD06,
        author  = {Author Fff},
        title   = {Some Title},
        year    = 2001,
        url     = {www.test4.com/bild.jpg},
    }
    @MISC{LinkD07,
        author  = {Author Ggg},
        title   = {Some Title},
        year    = 2004,
        url     = {www.test5.com/bild.jpg},
    }
    @MISC{LinkD08,
        author  = {Author Hhh},
        title   = {Some Title},
        year    = 2001,
        url     = {www.test6.com/bild.jpg},
    }
    @MISC{LinkD09,
        author  = {Author Iii},
        title   = {Some Title},
        year    = 2001,
        url     = {www.test6.com/bild.jpg},
    }
\end{filecontents}
\addbibresource{biblatextest1.bib}
\addbibresource{biblatextest2.bib}


\begin{document}
    The first two citations \autocite{LinkD07,LinkD03}
    and \autocite{BookB10,BookB11,BookB09}. 
    Mixing both primary and secondary \autocite{LinkD08,LinkD04,LinkD05,BookB10,BookB11,BookB09}.
    The others are \autocite{LinkD03,LinkD08,LinkD05,LinkD06,LinkD07}
    as well as \autocite{LinkD03,LinkD04,LinkD05,LinkD07,LinkD08, LinkD09}
    and \autocite{BookB07}.
    With page numbers \cites[2--15]{BookB09}[3,5,23]{BookB10}[1--6]{BookB11}
    With page numbers \Cites[2--15]{BookB10}[3,5,23]{BookB09}[1--6]{BookB11}
    
    Example of very long citation with multiple authors all in alpha style \cite{BookB07,BookB08,BookB09,BookB10,BookB11,BookB12,BookB13,BookB14,BookB15,BookB16,BookB17,BookB18,BookB19,BookB20,BookB21,BookB22,BookB23,BookB24,BookB25,BookB26,BookB27,BookB28,BookB29,BookB30,BookB31,BookB32,BookB33,BookB34,BookB35,BookB36,BookB37,BookB38,BookB39,BookB40,BookB41,BookB42,BookB43,BookB44,BookB45,BookB46,BookB47,BookB48,BookB49,BookB50,BookB51,BookB52,BookB53,BookB54,BookB55,BookB56,BookB57,BookB58,BookB59}. The are some problems with the linebreaks inside the citation. 
    
    \printbibliography[env=bibliographyALPHA, title=Bibliography, keyword=primary]
    
    \newrefcontext[labelprefix=tech\string\adddot\addnbthinspace]
    \printbibliography[title=References, keyword=secondary, resetnumbers]
\end{document}

Nicely broken lines.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .