# If my Tufte problem persists, are there other good book class to use?

I have seen many pages dedicated to solving this problem with tufte. None of these solutions work for me. I tried several simple .tex files using tufte. All have the same problem.

"Argument of \MakeTextLowercase has an extra }"

System: ubuntu 16.10, texlive full installation.

I appear to have other latex-related content under /usr/share: texmf, latex-cjk, texinfo, lintian, tex4ht which I include in case there is known interference.

I like what tufte offers. But I am willing to try others.

So; is there a known fix? Or; is there another strong book class to use?

Example to create error incorporating one of the recommended fixes:

\documentclass{tufte-book}

\usepackage{ifxetex}
\ifxetex
\newcommand{\textls}[2][5]{%
}
\renewcommand{\allcapsspacing}[1]{\textls[15]{#1}}
\renewcommand{\smallcapsspacing}[1]{\textls[10]{#1}}
\renewcommand{\allcaps}[1]{\textls[15]{\MakeTextUppercase{#1}}}
\renewcommand{\smallcaps}[1]
{\smallcapsspacing{\scshape\MakeTextLowercase{#1}}}
\renewcommand{\textsc}[1]{\smallcapsspacing{\textsmallcaps{#1}}}
\usepackage{fontspec}
\fi

\title{this is a title}
\author{me}

\begin{document}

\maketitle

\end{document}


Using "latex" with version:

$latex --version pdfTeX 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) kpathsea version 6.2.1 Copyright 2015 Peter Breitenlohner (eTeX)/Han The Thanh (pdfTeX). There is NO warranty. Redistribution of this software is covered by the terms of both the pdfTeX copyright and the Lesser GNU General Public License. For more information about these matters, see the file named COPYING and the pdfTeX source. Primary author of pdfTeX: Peter Breitenlohner (eTeX)/Han The Thanh (pdfTeX). Compiled with libpng 1.6.17; using libpng 1.6.17 Compiled with zlib 1.2.8; using zlib 1.2.8 Compiled with poppler version 0.41.0  Then, having put "\listfiles" before "\begin{document}" I reran it with this result: $ latex mono2
This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=latex)
restricted \write18 enabled.
entering extended mode
(./mono2.tex
LaTeX2e <2016/02/01>
Babel <3.9q> and hyphenation patterns for 81 language(s) loaded.
(/usr/share/texlive/texmf-dist/tex/latex/tufte-latex/tufte-book.cls
Document Class: tufte-book 2015/06/21 v3.5.2 Tufte-book class
(/usr/share/texlive/texmf-dist/tex/latex/tufte-latex/tufte-common.def
(/usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty
(/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex
(/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex
(/usr/share/texlive/texmf-dist/tex/generic/xkeyval/keyval.tex))))
(/usr/share/texlive/texmf-dist/tex/latex/xifthen/xifthen.sty
(/usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty)
(/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty)
(/usr/share/texlive/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty))
(/usr/share/texlive/texmf-dist/tex/latex/hardwrap/hardwrap.sty
(/usr/share/texlive/texmf-dist/tex/latex/ifplatform/ifplatform.sty
(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty
(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty)
(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty)
(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty)
(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty))
(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/catchfile.sty
(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/etexcmds.sty))

Package ifplatform Warning:
shell escape is disabled, so I can only detect \ifwindows.

) (/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty)
(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty))
(/usr/share/texlive/texmf-dist/tex/latex/base/book.cls
Document Class: book 2014/09/29 v1.4h Standard LaTeX document class
(/usr/share/texlive/texmf-dist/tex/latex/base/bk10.clo))
(/usr/share/texlive/texmf-dist/tex/latex/titlesec/titlesec.sty)
(/usr/share/texlive/texmf-dist/tex/latex/titlesec/titletoc.sty)
(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty
(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty))
(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty)
(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty)
(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def)
(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg)
(/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def)
(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty))

Package hyperref Message: Driver (default): hdvips.

(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hdvips.def
(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pdfmark.def
(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty)))
(/usr/share/texlive/texmf-dist/tex/latex/ms/ragged2e.sty
(/usr/share/texlive/texmf-dist/tex/latex/ms/everysel.sty))
(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty)
(/usr/share/texlive/texmf-dist/tex/latex/changepage/changepage.sty)
(/usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty)
(/usr/share/texlive/texmf-dist/tex/latex/textcase/textcase.sty)
(/usr/share/texlive/texmf-dist/tex/latex/soul/soul.sty)
(/usr/share/texlive/texmf-dist/tex/latex/setspace/setspace.sty)
(/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty
(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg)
(/usr/share/texlive/texmf-dist/tex/latex/graphics/dvips.def)
(/usr/share/texlive/texmf-dist/tex/latex/graphics/dvipsnam.def)
(/usr/share/texlive/texmf-dist/tex/latex/xcolor/svgnam.def))
(/usr/share/texlive/texmf-dist/tex/latex/natbib/natbib.sty)
(/usr/share/texlive/texmf-dist/tex/latex/natbib/bibentry.sty)
No file mono2.bbl.
(/usr/share/texlive/texmf-dist/tex/latex/sauerj/optparams.sty)
(/usr/share/texlive/texmf-dist/tex/latex/placeins/placeins.sty)
(/usr/share/texlive/texmf-dist/tex/latex/psnfss/mathpazo.sty)
(/usr/share/texlive/texmf-dist/tex/latex/psnfss/helvet.sty)
(/usr/share/texlive/texmf-dist/tex/latex/bera/beramono.sty)
(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
(/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def))
(/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty
(/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.def))
(/usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty)
(/usr/share/texlive/texmf-dist/tex/latex/tools/multicol.sty))) (./mono2.aux)
(/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmr.fd)
(/usr/share/texlive/texmf-dist/tex/latex/psnfss/t1pplj.fd)
(/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty))
(./mono2.out) (./mono2.out) ABD: EverySelectfont initializing macros
*geometry* driver: auto-detecting
*geometry* detected driver: dvips
(/usr/share/texlive/texmf-dist/tex/latex/psnfss/t1phv.fd)
! Argument of \MakeTextUppercase has an extra }.
<inserted text>
\par
l.22 \maketitle

?

• Does this happen with xetex, or latex, or both? – Teepeemm Sep 11 '18 at 22:21
• I get no error from this example, unless I use LuaLaTeX, but then the “fixes” are not applied. – egreg Sep 11 '18 at 22:23
• Which version of texlive do you have? With texlive2018 it compiles fine for me with pdflatex and xelatex. – user36296 Sep 11 '18 at 22:24
• Perhaps adding \listfiles just before \begin{document} and include in the question the version info that is printed in the log file might help to see if it is a package issue. – Peter Grill Sep 11 '18 at 23:22
• I added the version and result with \listfiles into the original question. xetex has the same error as latex. – jlettvin Sep 12 '18 at 0:29

The tufte classes use soul for letter spacing, which can be overridden by using microtype instead.

Here I use a factor 500 for emphasizing the spacing.

\documentclass[nohyper]{tufte-book}
\usepackage{microtype}

\renewcommand{\allcapsspacing}[1]{\textls[500]{#1}}
\renewcommand{\smallcapsspacing}[1]{\textls[500]{#1}}
\renewcommand{\allcaps}[1]{\textls[500]{\MakeTextUppercase{#1}}}
\renewcommand{\smallcaps}[1]{%
\smallcapsspacing{\scshape\MakeTextLowercase{#1}}%
}
\renewcommand{\textsc}[1]{\smallcapsspacing{\textsmallcaps{#1}}}

\title{this is a title}
\author{me}

\begin{document}

\maketitle

\end{document}


Compile with pdflatex.

Here is an example using the memoir class.

\documentclass[10pt,draft]{memoir}

%% calc used for algebra
%% environ used for environments
\usepackage{calc, environ}
\usepackage{lipsum}

%% page size and text block sizes
\setstocksize{9.25in}{6.125in}
\settrimmedsize{\stockheight}{\stockwidth}{*}
\setulmarginsandblock{0.75in}{*}{1}
\setlrmarginsandblock{0.5in}{*}{4.6}
%% calculations to size  margin paragraphs
\newlength{\margindiff}\setlength{\margindiff}{\foremargin - \spinemargin}
\newlength{\mpsep}\setlength{\mpsep}{2em}
\newlength{\mwidth}\setlength{\mwidth}{\margindiff -\mpsep}
\setmarginnotes{\mpsep}{\mwidth}{2.5\baselineskip}
%% validate everything
\checkandfixthelayout

%% narrower text flow needs a more relaxed justification rule
\midsloppy

%% FULL PAGE ENVIRONMENT
\NewEnviron{FullPage}{%
\BODY
}

%% document
\begin{document}

%% textbook cover
\begin{FullPage}
\thispagestyle{empty}
\begin{center}
{\sffamily\HUGE{}An Example Tufte-Mimic Layout}
\vfill
\vfill
Generated \today.
\end{center}
\end{FullPage}
\clearpage

%% body
\lipsum[1]
\marginpar{Here is some text located in the margin}
\lipsum[2-4]

\end{document}


One caveat I have found is, the FullPage environment can span only one page. It does not allow that text can flow across multiple pages. I overcame this with the book class using savegeometry and restoregeometry commands from the geometry package. However, memoir` has other benefits that I prefer.

• By replacing all calls to "latex" with "pdflatex", I appear to be able to use the tufte styles. Are there any problems I have introduced by doing this? – jlettvin Sep 13 '18 at 20:18

Use pdflatex instead of latex or xetex. The tufte-book template fails with any other translator. My problem may be specific to my configuration. That will be a problem for me since my references include authors from around the world such as: Santiago Ramón y Cajal. I believe these special characters like that ó are still possible using escape sequences. Nevertheless, thank you to those who reviewed my problem.