From 4b02831760b76620022a89d3d054a35229bf04c9 Mon Sep 17 00:00:00 2001 From: "Kevin M. Godby" Date: Wed, 9 Dec 2009 23:46:54 +0000 Subject: [PATCH] * Fixed a type in the book index. * Simplified the letterspacing logic. * Letterspacing now uses the soul package if you're running LaTeX (issue #32). git-svn-id: https://tufte-latex.googlecode.com/svn/trunk@135 516e2f36-ce3a-0410-bea4-1d4a03f5df72 --- sample-book.pdf | Bin 353281 -> 353280 bytes sample-book.tex | 2 +- sample-handout.pdf | Bin 126200 -> 126200 bytes tufte-common.def | 108 +++++++++++++++++++++++++++++---------------- 4 files changed, 72 insertions(+), 38 deletions(-) diff --git a/sample-book.pdf b/sample-book.pdf index b78508232adb00ed1f30d34099e014fb23dd9662..ac5701cd4ecff27000e756ac0f4ad5d65d1e9e34 100644 GIT binary patch delta 2849 zcmah}X;c(f7Pjdwgw`l1C0W~v@jEF#DSY$Ekyc&b&Sp8%A^f_O>uim@&yWhR9 zwl>;kqrX<7H8V&pbs9Uzvn_1BZ=iJQv*YJJq^s@Y9e$`jQ(GIAlM|ht6JFqSx4#lDV+3JNtn1uU)kv&aEr6*3Le9wg2#*y0c9mY33L#Z1(8$L(?q^ ztS-u?waFf)cJYO zTG!(qDKU;^%^BBasx7-pZ8T;?=x|ct`cUuS0B7@z<kdnSxcIKN17t7a%`;AxKS*!cb> zpR8jJ&(U7Fc+}AHnL}mej~Az2xx2QtOI9^K*3Ea_3;UpNVrxR1sN|^R{_fYBx>uzq z4jj#mH`H&?SX~_R>G3iBmntAACnL&hJ9eae|IcRVo zb=~*+hkNDGb1g^3%j6z>^z^#-#$Wzs@1-_BucefW-Itpk`>b3;9H(T4oyBhK^_GQ& z<(`aWKdjBDSgf=;Wn7V5`GM8vb^A3NCRte)W@i>=W^gLqx4loEELd+IqI4?U)C_v> zZ8o?6Wm-kFZm1^W<-IyNwcFk$NdJ4@s9mjoS5ro}Y~Q){MGxflO{$kyge=UkGv=GP6suk z2NM3S+WN7iqVd@wOVzfX;fEWhUW&-KvrRW|>H97740*-F=d9UxUb*VzgLjB#MSbpP z1@(_-yB7W}C^%si9*QEAryRo&^A$-;Ft>)GKY+rPbLF1V+xM$g#_&paQx5c&lT+dawI^Faui4WM` zw$8G~{!y2@@y0VMlxe9tbuPrh{Iw0pp3o3Yom$|PbnU6#s^XHIiSK8!i5qc;dArnd z3wNr(he!w=D99Ret!^FuS<7v>%%|BTs;xt6WBT;%We-%}mwuA*P?n_pMfH8|1sR$1rd z?$bRt`6sus9HU-zCQ-V^ht)cK3ALs+YwigdX|v&i;oj^3EPX}Irr%$miz2M=)ZYEu z=)=+D8#|qyp-b_)JCcEt2*38{?b}aUlmr8>G}^AiD=zJoG%cc1Y4q1iOD8)(CCw=) z4k#hXDj-WKX~-#P94ZNhkI$9P;ICInC+2ZAQX^L*8{A^f5e&o$o^ivb$lp9Oo;Y1J zJ9ZiWqZ@Wr3OJ6}&%nYZ4BsXI!9#ZhEUy&+^0x%Qc^3}^fKL~I=FfXzVP-hT+jycS z$tMXw@dg11UZ(uto`nLCe7OJ=-zNae2h2nOdHqaup5^#9VM*~2M?mme0Z>K(P(}g) z$|wNj&%asOkZ48mNdf@gAOPfL0NaPia)2eGgccCHLJBJ~vlWLTImog6eFmF_a@w)jbO~vk!(tE3q&UYJU1niXW)j-C z#Rr=#kwBx~7YnjLj@?&b#}KUx!XB9kRfVGC1b;*ThVKeRb&$OGJQR%OlLUaqo%1lM zL;{Su`Iv*51UJ@%2}c>DE)olR&keq-n1nbBO*jIlh_7O?SsKwBK(Y)FaU>)NG)aP6 zZ*4;yWJobb;;hIo5|RXNa#o1==B#F<4`?G~aFc+XxHlvOfG|l6XkfxYk`eWlgpd=7 z(cma8$(bnR01$PTq)>as&QO3b5lus!6pNuDfMRE8hQMi!sA8G{lvoS{DM}oWp>R?x zkYPDWoP^;}(V`qI#g5po(END~NR}qV8v%hcq{u>KKFx{(B96sH0tJo{6@oZ)LEaUk z0qFMO?7Jl582rxx8JQ2nv7D$n04M^OoTbne7006>V;tXp1ThW@4uMo`yuz=&^5;4CxKR-yrK*Aqc#RUX#0TB2x0fCGP02SefQvtpT@Bh0c eTH)&}PfL$aP2ZThY`Gi&780!7)ip3&CI2sE5Q+U0#Z^T#{?d}co9d-;67-_M+^4$JHg z%dA{Mu8vYDDpvT|xAZVSNEZrcKd!Hf+z<`gsPq-`xVSTV`i(R6E3JHMt$in*V?Hh} ziP9VXv?`@acVUeF@Z!g>4s)<(aP@0ySoOOhhsgrWUG%WvQkXloZU^&4VqXv7K;3h z3;L@g>$=YVwC2ed%Y}Oe_UF#^kIEaB&$IojxNojos%3A{9Vtm=R9-33OZap3si3;@ z+;#H}M1Fcl8r;1rPSksZOC@_Otcv;)ca#;FJLlSOZ9ZaL@Ah!~up5-rHTFn^S}aeeI`2JQiel~P$?7G69NM@l+kmS{ zUf0+|UETjj`|MM<)yfIer4e;YGl#~(e#STU;GwXq-(P*Hexum(+Be4Ton@c%R%+lAL>@d_iSBr?dYiVn%(vK>hFJCZ{jq$$kAIl{QCps ze6HDyHUohYXOv2$5u?~obZg8XvGM>jltcjHpVtv2I$ zxWuAKm9qB4`zD_^R4KMwnTSfVFwZF-9&b4qsp3ZAMn^la}q9*--Y zs9y3$-C#@>**XW8J;|H#n=AFwIWTKNCR-d* z)m3~wK5xk+dE+Dc#NK!_^`SI%X8R+bWe3e8qk0`HU*`>OnUkW>doS@TzwDKQ;~kIB zi-JBIz2Com_N68HHkM<0Jr76Zb@*kUumr&}hkynU^}uFBnJl3GqU`CM(vI6-XSG@` zs8}Nnbuzhmq$##XacZ*0TGR61qpE_SyacQPKGK|Wpe zU1CJ)%NsSlyEogMAK0RZ?Ro5S?M|C>(J|fDs~J@@{X(VRw#N)-`oSMn+8vY>o@L8^gcJ%Ch9ocysv!atzgB)!Iyo^QLhN6 zR|?lNMyss4I^|)f?<`wqBn|2()b+G1x=`}f`+0$$-SYbNO>XCsMSo;?6z=}^{`N5136p?bDX}%E{On|L17(sFuG(d3X_}jE34G`Q}4Un7=AeFG! zF@Pk&&iVv$$(<0RnvZy+*ieH2pn#xw9L`cC;GPqRt0m2Q1W<}$Re(fFbu9U%aF$?M zPE8};u%|VHxC(&EmqGei3a2uM|_6bUwft5XLdXCYk_jNH@F zOce^#aqf%;7;ZQe&H*^@Fj$P`k~Bc73c?VfKtQO9K0;>c2r$*@a7`+sDvCscXS$Q` zD#i(vA+$JX44iutk9aG1j{wflfXCqkhLI@0EJo0P&*3P;TNqB@7^amAE8>6WDy9wr z0|^?_D#-GWgA)K?T8#k(v^WB%d56Ubg5`-(ps+1~e$bd<+7&p#0>C>jPQv^0H$wtU zOEg8GIA07!0D`|6ipEe{!D~#>fZ~gx36kU&q)8~8mrFA&$!|ilxRz*!WTw_HR{Zln zz!?hT2Lh-M=dBPfpJI4hfEGvef5GW^0Li|1sAXyfm z{(xbE$N-87U`6}Iy+eyxtTh;89TZ=f=*(ul%QZoJa8%9|G DS#2dx delta 133 zcmexyll{j{_J%Et8}4bD8k!jzm>TLDn5i2WsB3cR`{t*(B$lKqXt-Dz85md^8Uba& zO19s+$GDHz*~Qe*&CJNy)Wz7?(ZJQv$=J=!*wVt%(8a*S%+18y*-pWRkdo=Q-!RGo E07b?m!2kdN diff --git a/tufte-common.def b/tufte-common.def index 32a2a06..930e730 100644 --- a/tufte-common.def +++ b/tufte-common.def @@ -622,21 +622,13 @@ % Failing that, try to use the `soul' package, if it's available. % Failing that, well, I give up. +\DeclareTextFontCommand{\textsmallcaps}{\scshape} + \RequirePackage{textcase} % provides \MakeTextUppercase and \MakeTextLowercase -\def\allcapsspacing{\relax} -\def\smallcapsspacing{\relax} -\newcommand{\allcaps}[1]{\MakeTextUppercase{\allcapsspacing{#1}}} -\newcommand{\smallcaps}[1]{\MakeTextLowercase{\textsc{#1}}} - -\newcommand{\@tufte@loadsoul}{% - \IfFileExists{soul.sty}{% - \RequirePackage{soul} - \sodef\allcapsspacing{\upshape}{0.15em}{0.65em}{0.6em} - \sodef\smallcapsspacing{\scshape}{0.075em}{0.5em}{0.6em} - }{ - \TufteWarningNL{Couldn't locate `soul' package} - }% soul not installed... giving up. -} +\def\allcapsspacing{\TufteWarning{Proper spacing of ALL-CAPS letters has not been set up.}} +\def\smallcapsspacing{\TufteWarning{Proper spacing of small-caps letters has not been set up.}} +\newcommand{\allcaps}[1]{\allcapsspacing{\MakeTextUppercase{#1}}} +\newcommand{\smallcaps}[1]{\smallcapsspacing{\MakeTextLowercase{#1}}} % If we're using pdfLaTeX v1.40+, use the letterspace package. % If we're using pdfLaTex < v1.40, use the soul package. @@ -667,36 +659,78 @@ \fi \fi -\ifthenelse{\boolean{@tufte@letterspace}} - {% - \ifnum\@tufte@pdftexversion<6 - % pdfLaTeX version is too old or not using pdfLaTeX - \ifthenelse{\boolean{@tufte@xetex}} - {% TODO use xetex letterspacing - \TufteDebugInfoNL{XeTeX detected. \MessageBreak Reverting to `soul' package for letterspacing} - \@tufte@loadsoul} - {% use `soul' package for letterspacing - \TufteDebugInfoNL{Old version of pdfTeX detected. \MessageBreak Reverting to `soul' package for letterspacing} - \@tufte@loadsoul} - \else - \IfFileExists{letterspace.sty}{% +\newboolean{@tufte@letterspace@pkg@prereqs} +\setboolean{@tufte@letterspace@pkg@prereqs}{true} +\ifnum\@tufte@pdftexversion<6 + \setboolean{@tufte@letterspace@pkg@prereqs}{false} +\fi + + +\ifthenelse{\boolean{@tufte@letterspace}}{% + \ifthenelse{\boolean{@tufte@pdf}\AND\boolean{@tufte@letterspace@pkg@prereqs}\AND\NOT\boolean{@tufte@xetex}}{% + % load letterspace pkg + \IfFileExists{letterspace.sty}{% \TufteDebugInfoNL{Modern version of pdfTeX detected. \MessageBreak Using `letterspace' package} \RequirePackage{letterspace} % Set up letterspacing (using microtype package) -- requires pdfTeX v1.40+ \renewcommand{\allcapsspacing}[1]{\textls[200]{##1}} \renewcommand{\smallcapsspacing}[1]{\textls[50]{##1}} \renewcommand{\allcaps}[1]{\textls[200]{\MakeTextUppercase{##1}}} - \renewcommand{\smallcaps}[1]{\textsc{\MakeTextLowercase{##1}}} - }{% microtype failed, check for soul - \TufteDebugInfoNL{Modern version of pdfTeX detected, but `letterspace' \MessageBreak package not installed. \MessageBreak Reverting to `soul' package for letterspacing} - \@tufte@loadsoul - } - \fi} - {} - + \renewcommand{\smallcaps}[1]{\smallcapsspacing{\scshape\MakeTextLowercase{##1}}} + \renewcommand{\textsc}[1]{\smallcapsspacing{\textsmallcaps{##1}}} + }{}% + }{}% + % load soul pkg + \@ifpackageloaded{letterspace}{}{% + \IfFileExists{soul.sty}{% + \RequirePackage{soul} + \sodef\allcapsspacing{}{0.15em}{0.65em}{0.6em} + \sodef\smallcapsspacing{}{0.075em}{0.5em}{0.6em} + \sodef\sotextsc{\scshape}{0.075em}{0.5em}{0.6em} + \renewcommand{\allcaps}[1]{\allcapsspacing{\MakeTextUppercase{##1}}} + \renewcommand{\smallcaps}[1]{\smallcapsspacing{\scshape\MakeTextLowercase{##1}}} + \renewcommand{\textsc}[1]{\sotextsc{##1}} + }{ + \TufteWarningNL{Couldn't locate `soul' package} + }% soul not installed... giving up. + }% +}{} -\DeclareTextFontCommand{\textsmallcaps}{\scshape} -\renewcommand{\textsc}[1]{\smallcapsspacing{\textsmallcaps{#1}}} +%\ifthenelse{\boolean{@tufte@letterspace}}{% + %\ifthenelse{\boolean{pdf}}{% + %\ifthenelse{\NOT\boolean{@tufte@letterspace@pkg@prereqs}}{% + %% pdfLaTeX version is too old or not using pdfLaTeX + %\ifthenelse{\boolean{@tufte@xetex}}{% + %% TODO use xetex letterspacing + %\TufteDebugInfoNL{XeTeX detected. \MessageBreak Reverting to `soul' package for letterspacing}% + %\@tufte@loadsoul% + %}{% + %% use `soul' package for letterspacing + %\TufteDebugInfoNL{Old version of pdfTeX detected. \MessageBreak Reverting to `soul' package for letterspacing}% + %\@tufte@loadsoul% + %} + %}{% + %\IfFileExists{letterspace.sty}{% + %\TufteDebugInfoNL{Modern version of pdfTeX detected. \MessageBreak Using `letterspace' package} + %\RequirePackage{letterspace} + %% Set up letterspacing (using microtype package) -- requires pdfTeX v1.40+ + %\renewcommand{\allcapsspacing}[1]{\textls[200]{##1}} + %\renewcommand{\smallcapsspacing}[1]{\textls[50]{##1}} + %\renewcommand{\allcaps}[1]{\textls[200]{\MakeTextUppercase{##1}}} + %\renewcommand{\smallcaps}[1]{\smallcapsspacing{\MakeTextLowercase{##1}}} + %\renewcommand{\textsc}[1]{\smallcapsspacing{\textsmallcaps{##1}}} + %}{% microtype failed, check for soul + %\TufteDebugInfoNL{Modern version of pdfTeX detected, but `letterspace' \MessageBreak package not installed. \MessageBreak Reverting to `soul' package for letterspacing} + %\@tufte@loadsoul + %}% + %}% + %}{% + %\TufteDebugInfoNL{Plain LaTeX detected. \MessageBreak Using `soul' package for letterspacing} + %\@tufte@loadsoul + %} +%}{% +%% we're not to load letterspacing, so do nothing +%} %%