In some circumstances it is very nice to have a bibliography text typeset with protrusion enabled, especially when one uses a bibliography style in which a lot of lines begin with italics. However, the left side of a typical biblatex-generated bibliography doesn't protrude. MWE:
\documentclass[12pt]{article}
\usepackage[style=authoryear]{biblatex}
\usepackage[factor=6000]{microtype}
\usepackage{showframe}
\renewcommand*\ShowFrameLinethickness{.25pt}
\renewcommand*\ShowFrameColor{\color{green}}
\begin{filecontents}{\jobname.bib}
@BOOK{book1,
AUTHOR = {\char"200B Author, A.},
TITLE = {Title},
LOCATION = {Location},
YEAR = {2017}}
@BOOK{book2,
AUTHOR = {Author, B.},
TITLE = {Title},
LOCATION = {Location},
YEAR = {2017}}
\end{filecontents}
\addbibresource{\jobname.bib}
\renewcommand{\section}[2]{}
\begin{document}
\noindent Author\par
\nocite{book1,book2}
\printbibliography
\end{document}
which gives:
A quick look at the biblatex.sty
reveals that \def\blx@bibitem
on line 7746, using the default bibenvironment
\defbibenvironment{bibliography}
{\list{}{%
\leftmargin\bibhang
\itemindent-\leftmargin
\itemsep\bibitemsep
\parsep\bibparsep}}
{\endlist}
{\item}
creates a \list
and places an \item
at the beginning of every line. Of course, any character after \item
will not protrude to the left.
The pdfTeX manual (p. 34) states:
If you want to protrude some item other than a character (e.g. a \hbox ), you can do so by padding the item with an invisible zero--width character, for which protrusion is activated.
However, I don't want to protrude \item
s, but all characters differently according to their respective protrusion values.
So, I would be very grateful for any real workaround.
\protrudeleft
-- it's very interesting. I'm trying to insert the code into\def\blx@bibitem#1
, but first experiments show that it won't be that simple, because\protrudeleft
needs an argument (i.e. it can't be used in a hooks such as\AtEveryBibitem
). As for your remark about pdflatex and non-ascii characters -- I need them. Will the code behave differently with xelatex or lualatex?\protrudeleft
would be from @Ulrike's first comment would be the perfect solution for such simpler cases, but it doesn't work for non-ascii characters. AFAIU, the perfect solution for all these cases would be what was mentioned in Ulrike's comment to this post: tex.stackexchange.com/a/13711/123303 ("pdftex really needs a primitive to simulate line beginnings/ends"). The link with the feature request is broken. Do you know anything about this? Any attempt to bring it to life?