6

I create two indexes in tufte-book. I use the default settings for the first--Index of artists--which matches the body of the book, is two-column, and has the large margins used throughout the book. (I'm running TeXShop 3.96 on a Mac.)

My problem centers on the other, general Index, which is so large I'd like to make it three columns and run across the full page. I tried surrounding the \makeindex with \begin{fullpage} ... \end{fullpage} (see below). That works on half the pages, but the margins are all wrong on the other half, interleaved, pages. Basically, when encountering the \begin{fullpage} LaTeX "decides" whether the layout should assume everything following is on an even page or on an odd page, and adheres to that throughout the typesetting.

Here is the top few inches of the output pages... First a "good" margin page of the Index:

good Index page

Next a "bad" margin page of the Index:

bad Index page

Here's a minimal working example of the source:

\documentclass[twoside,symmetric]{tufte-book}

\usepackage{imakeidx}

\makeindex[name=artists,title=Index of artists,columns=2]

\makeindex[title=Index,columns=3]

\begin{document}

\chapter{My first chapter}

Text here

\index[artists]{Picasso, Pablo}

\index{oil paint}

\printindex[artists]

\begin{fullwidth}
\printindex 
\end{fullwidth} 

\end{document}

How do I ensure all the three-column Index pages are full page width and have proper margins?

  • Try to clean the auxiliary files, and build the project with xelatex. – lRadha Nov 4 at 10:32
6
+50

With the document class tufte-book, a margin (of 2 inches) is reserved for sidenotes. Regarding options twoside,symmetric, the manual says:

The twoside option will modify the running heads so that the page number is printed on the outside edge (as opposed to always printing the page number on the right-side edge in oneside mode).

The symmetric option typesets the sidenotes on the outside edge of the page. This is how books are traditionally printed, but is contrary to Tufte’s book design which sets the sidenotes on the right side of the page. This option implicitly sets the twoside option.

Therefore, using option symmetric (hence twoside) induces different values for the left margin depending on the page number parity.

Using oneside option (and removing symmetric) yields the right hand side of the following screenshot (against twoside,symmetric on the left hand side).

enter image description here

On these screenshots, I've drawn a frame around the margins (using package showframe), to show that the three columns already span over the full page width. I also added other index entries to span over several columns:

\documentclass[oneside]{tufte-book}

\usepackage{imakeidx}

\usepackage{showframe}

\makeindex[name=artists,title={Index of artists},columns=3]

\makeindex[title=Index,columns=3]

\begin{document}

\chapter{My first chapter}

Text here


\index[artists]{Picasso0, Pablo0}
\index[artists]{Picasso1, Pablo1}
\index[artists]{Picasso2, Pablo2}
\index[artists]{Picasso3, Pablo3}
\index[artists]{Picasso4, Pablo4}
\index[artists]{Picasso5, Pablo5}
\index[artists]{Picasso6, Pablo6}
\index[artists]{Picasso7, Pablo7}
\index[artists]{Picasso8, Pablo8}
\index[artists]{Picasso9, Pablo9}
\index[artists]{Picasso10, Pablo10}
\index[artists]{Picasso11, Pablo11}
\index[artists]{Picasso12, Pablo12}
\index[artists]{Picasso13, Pablo13}
\index[artists]{Picasso14, Pablo14}
\index[artists]{Picasso15, Pablo15}
\index[artists]{Picasso16, Pablo16}
\index[artists]{Picasso17, Pablo17}
\index[artists]{Picasso18, Pablo18}
\index[artists]{Picasso19, Pablo19}
\index[artists]{Picasso20, Pablo20}
\index[artists]{Picasso21, Pablo21}
\index[artists]{Picasso22, Pablo22}
\index[artists]{Picasso23, Pablo23}
\index[artists]{Picasso24, Pablo24}
\index[artists]{Picasso25, Pablo25}
\index[artists]{Picasso26, Pablo26}
\index[artists]{Picasso27, Pablo27}
\index[artists]{Picasso28, Pablo28}
\index[artists]{Picasso29, Pablo29}
\index[artists]{Picasso30, Pablo30}
\index[artists]{Picasso31, Pablo31}
\index[artists]{Picasso32, Pablo32}
\index[artists]{Picasso33, Pablo33}
\index[artists]{Picasso34, Pablo34}
\index[artists]{Picasso35, Pablo35}
\index[artists]{Picasso36, Pablo36}
\index[artists]{Picasso37, Pablo37}
\index[artists]{Picasso38, Pablo38}
\index[artists]{Picasso39, Pablo39}
\index[artists]{Picasso40, Pablo40}
\index[artists]{Picasso41, Pablo41}
\index[artists]{Picasso42, Pablo42}
\index[artists]{Picasso43, Pablo43}
\index[artists]{Picasso44, Pablo44}
\index[artists]{Picasso45, Pablo45}
\index[artists]{Picasso46, Pablo46}
\index[artists]{Picasso47, Pablo47}
\index[artists]{Picasso48, Pablo48}
\index[artists]{Picasso49, Pablo49}
\index[artists]{Picasso50, Pablo50}
\index[artists]{Picasso51, Pablo51}
\index[artists]{Picasso52, Pablo52}
\index[artists]{Picasso53, Pablo53}
\index[artists]{Picasso54, Pablo54}
\index[artists]{Picasso55, Pablo55}
\index[artists]{Picasso56, Pablo56}
\index[artists]{Picasso57, Pablo57}
\index[artists]{Picasso58, Pablo58}
\index[artists]{Picasso59, Pablo59}
\index[artists]{Picasso60, Pablo60}
\index[artists]{Picasso61, Pablo61}
\index[artists]{Picasso62, Pablo62}
\index[artists]{Picasso63, Pablo63}
\index[artists]{Picasso64, Pablo64}
\index[artists]{Picasso65, Pablo65}
\index[artists]{Picasso66, Pablo66}
\index[artists]{Picasso67, Pablo67}
\index[artists]{Picasso68, Pablo68}
\index[artists]{Picasso69, Pablo69}
\index[artists]{Picasso70, Pablo70}
\index[artists]{Picasso71, Pablo71}
\index[artists]{Picasso72, Pablo72}
\index[artists]{Picasso73, Pablo73}
\index[artists]{Picasso74, Pablo74}
\index[artists]{Picasso75, Pablo75}
\index[artists]{Picasso76, Pablo76}
\index[artists]{Picasso77, Pablo77}
\index[artists]{Picasso78, Pablo78}
\index[artists]{Picasso79, Pablo79}
\index[artists]{Picasso80, Pablo80}
\index[artists]{Picasso81, Pablo81}
\index[artists]{Picasso82, Pablo82}
\index[artists]{Picasso83, Pablo83}
\index[artists]{Picasso84, Pablo84}
\index[artists]{Picasso85, Pablo85}
\index[artists]{Picasso86, Pablo86}
\index[artists]{Picasso87, Pablo87}
\index[artists]{Picasso88, Pablo88}
\index[artists]{Picasso89, Pablo89}
\index[artists]{Picasso90, Pablo90}
\index[artists]{Picasso91, Pablo91}
\index[artists]{Picasso92, Pablo92}
\index[artists]{Picasso93, Pablo93}
\index[artists]{Picasso94, Pablo94}
\index[artists]{Picasso95, Pablo95}
\index[artists]{Picasso96, Pablo96}
\index[artists]{Picasso97, Pablo97}
\index[artists]{Picasso98, Pablo98}
\index[artists]{Picasso99, Pablo99}



\index{oil paint}

\printindex[artists]

\begin{fullwidth}
\printindex 
\end{fullwidth} 

\end{document}

If you absolutely want a twoside,symmetric document, use \thispagestyle command with package geometry.

EDIT Here are the complete details using the geometry and afterpage packages, thanks to this answer. Thanks also to @mac for using tikz to shorten the TeX code.

\documentclass[twoside,symmetric]{tufte-book}

\usepackage{imakeidx}

\usepackage{showframe,tikz}

\usepackage{geometry,afterpage}

\makeindex[name=artists,title={Index of artists},columns=3]

\begin{document}

\chapter{My first chapter}

Text here

\foreach \s in {1,2,...,200}{
\index[artists]{Picasso\s, Pablo\s}}

\afterpage{%
\newgeometry{left=1in,right=1in}
\printindex[artists]
\clearpage
\restoregeometry
} 

\end{document}

Produces the following (left hand side: pages 1 & 2, right hand side: pages 3 & 4). The style for the rest of the book (margins especially) remains unchanged thanks to the \restoregeometry command.

enter image description here

  • Thanks for your efforts. But as far as I can see your three columns span just the central text region, not as my example showed the full page width. (See my top image... which is what I want throughout.) If you can show the full code using geometry and such that works, I'll accept the answer. I've tried and nothing quite works perfectly. (Also, I want to retain the original style throughout the rest of the book, so I won't change the full book to oneside, etc.) – David G. Stork Nov 4 at 17:38
  • I've edited the answer according to your feedback. Does that work for you? Is this what you wanted? – jchd Nov 5 at 9:03
  • jcdh: Oh so very close... I get the three columns across all full pages (thanks!) but for some reason (unlike your perfect example) my entries do not extend as low on the page as the rest of the body of the book. (Note: I did't use showframe and tikz, as it seems those were just for displaying your solution.) Is there some \textheight or other change I need? – David G. Stork Nov 5 at 18:50
  • jcdh: I just needed to adjust \textheight and now all works beautifully. Thanks so VERY much (accept). (Buy my book when it comes out and see your handywork!) – David G. Stork Nov 5 at 18:57
  • Ahahah, glad if it works! tikz and showframes were indeed for the example. – jchd Nov 6 at 7:53
2

Based on jdhd's answer, here is an attempt by using adjmulticol for the fullwidth environment and tikz for its \foreach command. Although this work it causes another problem: The Index list doesn't change page. Maybe someone can work on that. Nevertheless I present this solution:

\documentclass[oneside,symmetric]{tufte-book}

\usepackage{imakeidx}

\usepackage{showframe,adjmulticol,tikz}

\makeindex[name=artists,title={Index of artists},columns=3]

\makeindex[title=Index,columns=3]


\newcommand{\full}[1]{\begin{adjmulticols}{1}{0cm}{\dimexpr-\marginparwidth-\marginparsep\relax}
#1
\end{adjmulticols}}

\begin{document}

\chapter{My first chapter}

Text here

\foreach \s in {1,2,...,200}{
\index[artists]{Picasso\s, Pablo\s}}



\index{oil paint}

\printindex[artists]

\begin{fullwidth}
\printindex 
\end{fullwidth} 


\full{\printindex[artists]}

\end{document}
  • Thanks. A helpful ingredient, and perhaps someone can figure out how to fix the remaining problem(s). Note, though, that I don't want to change the rest of the book... which has been carefully designed. – David G. Stork Nov 4 at 17:42
  • 1
    Of course. That would be tricky. I think I added as few as possible to your MWE. Also I tried a lot to find a way to fix this issue with the page. I use this command in my work for a fullwidth environment in a document like yours and it works with plain text. As it turned out it doesn't work with index. – mac Nov 4 at 17:49

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.