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}

Ñako
  • 3,626

1 Answers1

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.

moewe
  • 175,683