5

I am trying to print the bibliography in a tufte-book using the whole width of the page, since I don't intend to put marginalia into the bibliography.

Edit: I am using an updated version of tufte that is not yet on CTAN, otherwise it is incompatible with biblatex.

The problem is that the fullwidth environment does not work across pages. I came across a possible solution here, however, as is mentioned there, this also shifts the page header, effectively ruining the layout (or forcing me to layout the page without headers, which would work, but means admitting defeat)

I found a second, better solution here using the mdframed environment, and this one seems to work really nicely, however it seems to only work with "normal" text. Furthermore, if there is a \chapter inside the environment, then the compilation falls into an endless loop. The solution proposed here seems to only amount to effectively disabling the package.

Using \printbibliography inside mdframed also results in an endless loop. As I found out, writing the MWE attached below, this can be remedied by [heading=subbibintoc]. This way there is no new chapter, ergo no endless loop. However, the output still is wrong, only the first biblabel is printed, with the complete bibliography (without further labels) following.

The page layout is nice though :)

MWE:

\documentclass[a4paper, nobib, symmetric, twoside]{tufte-book} % 
%\documentclass{article}
\usepackage{csquotes}
\usepackage{hyphenat} 
\usepackage[american]{babel}
\usepackage[style=alphabetic, backend=biber]{biblatex}
\usepackage[hidealllines=true]{mdframed}
\usepackage{lipsum}
\bibliography{biblatex-examples}
\begin{document}
\nocite{*}

%Normal Tufte Layout, lots of wasted space, since sidenotes are not needed here
\printbibliography[title=Normal Behaviour]

%First try, either recto or verso fine, the other runs off the page, depending on where bibliography starts
\begin{fullwidth}
\printbibliography[title=First Fullpage Attempt]
\end{fullwidth}

%Second try, works, but header offset as well (see missing pagenumbers)
\makeatletter
\changetext{}{\@tufte@overhang}{-\@tufte@overhang}{}{}
\makeatother
\printbibliography[title=Second Fullpage Attempt]
\makeatletter
\changetext{}{-\@tufte@overhang}{\@tufte@overhang}{}{}
\makeatother

% This works, but only with "normal" text, not with biliography
\begin{mdframed}[outermargin=\dimexpr-\marginparwidth-\marginparsep\relax,innermargin=0pt]
\section{Third Attempt with Normal Text}%works
%\chapter{Third Attempt with Normal Text}%Endless loop
\lipsum[1-20]
\end{mdframed}

% Gives endless loop if uncommented
\begin{mdframed}[outermargin=\dimexpr-\marginparwidth-\marginparsep\relax,innermargin=0pt]
%\printbibliography[title=Third Fullpage Attempt]%Endless Loop
%\printbibliography[heading=subbibintoc, title=Third Fullpage Attempt]%Compiles fine but only gives first bib label, with complete bibliography
\end{mdframed}

\end{document}

So, two questions:

  • Why is there an endless loop if a new chapter is inside the mdframed environment?
  • How to get nice output/why is the output different for \lipsum and \printbibliography
  • 1
    Well, compilation breaks for other reasons, e.g. hyphenation and \bibhang error message – user31729 Mar 11 '15 at 10:55
  • (I'm using the dev version from code.google.com.) Your second attempt seems to works quite nicely if you don't use symmetric (I could not see any adverse effect on the page number). – moewe Mar 11 '15 at 11:42
  • @SoundsOfSilence Sorry, I should have mentioned that I also use the dev version mentioned, since otherwise tufte is not compatible with biblatex, it uses natbib. – Bernhard Mar 12 '15 at 8:44
  • @moewe Yes, if using an asymmetric layout, then fullwidth works nicely. However, I am not free too chose where the margin is, and it has to be on the outside (Which I think looks nicer in print anyway. For a pdf to be read on screen, the margin can stay on the same side for all pages) – Bernhard Mar 12 '15 at 8:51
4

Using tcolorbox instead of mdframed or fullwidth finally solved the issue. Using grow to right by = \marginparwidth+\marginparsep on an odd page, and the opposite on an even page, I get (nearly) what I want, without any bugs. I think the length is not exactly right, but it's close enough for now. (Until someone smarter comes along at least)

\usepackage[most]{tcolorbox}

\begin{tcolorbox}[enhanced, show bounding box, breakable, colback=white, colframe=white, check odd page, toggle left and right, grow to right by=\marginparwidth+\marginparsep, toggle enlargement=evenpage]
\lipsum[1-16]
\end{tcolorbox}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.