Biblatex:两种不同风格和排序的书目 II 第 4 部分

Biblatex:两种不同风格和排序的书目 II 第 4 部分

解决方案莫威针对这个问题Biblatex:两种不同风格和排序的书目 II 第 3 部分产生所需的输出。不幸的是,有一种特殊情况,输出与“正常”行为不同。

问题来源\space:这好像是把with \addthinspace\renewcommand*{\multicitedelim}{\addsemicolon\space}带有)替换掉了\renewcommand*{\multicitedelim}{\addsemicolon\addthinspace}

问题:例如,\cite 当使用上述解决方案时,带有 的几行长引用(多位作者均采用 alpha 样式)会溢出文本边距\addthinspace

问题:有没有解决方案,用添加短/窄空间来代替普通空间?

输出\renewcommand*{\multicitedelim}{\addsemicolon\space} 在此处输入图片描述

输出\renewcommand*{\multicitedelim}{\addsemicolon\addthinspace} 在此处输入图片描述

平均能量损失

\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

作为corvus_192在评论中,这里的主要问题是\addthinspace会产生一个既不能收缩也不能伸展的刚性空间。如果您只用(否则无法断开的)字母引文标签填充整行,那么 LaTeX 获得良好换行的唯一机会就是调整引文之间的空间。

确实\addthinspace定义biblatex.sty

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

我将定义一个可拉伸的版本,如下所示

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

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

然后您可以使用

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

(请注意,您不需要使用版本\add...,因为之前的版本已经完成了内部工作\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}

优美的断线。

相关内容