RE: Slide style with varying font size for different item levels

"Theo Smith" <[email protected]> Mon, 11 Apr 2005 19:21:08 +0000
Newsgroups gmane.comp.tex.latex.prosper.user
Message-ID <[email protected]>
One other thing:

The first solution did work with prosper (e.g. simply redefine item). There 
is no orig@item in prosper.cls. There is however old@item, which is only 
used when re-defining in the itemstep environment.

Halldor

>From: "Hendri Adriaens" <[email protected]>
>To: <[email protected]>
>Subject: RE: [Prosper-users] Slide style with varying font size for 
>different item levels
>Date: Mon, 11 Apr 2005 18:47:55 +0200
>
> > I am trying to make a slide style, that will allow me to define
> > globally the
> > font size for each of the 3 levels in the itemize environment.
> > Basically I
> > want the font size to be smaller on level 2 and 3 (which is default in
> > PowerPoint).
>
>This is not a prosper problem but a LaTeX problem.
>However, prosper does insert an extra layer of
>difficulty due to its erroneous manouvres with \item.
>
>So here we go. Let me stress that it isn't possible
>without redoing \@item from the latex kernel. However,
>as we can assume that you will be using a non-font
>item label, we can make a nice workaround. We first
>test it in a standard LaTeX class:
>\documentclass[12pt]{article}
>\makeatletter
>\let\old@item\item
>\def\item{%
>   \ifcase\@itemdepth\or
>     \fontsize{12.4pt}{12pt}\selectfont
>   \or
>     \fontsize{11.2pt}{11pt}\selectfont
>   \else
>     \fontsize{10pt}{10pt}\selectfont
>   \fi
>   \old@item
>}
>\makeatother
>\begin{document}
>\begin{itemize}
>\item level 1
>\begin{itemize}
>\item level 2
>\begin{itemize}
>\item level 3
>\end{itemize}
>\end{itemize}
>\end{itemize}
>\end{document}
>
>If you play a little with the numbers, you will see
>that the size of the item label also changes. That
>might not be the effect that we want, but we forget
>about that for now as you will insert a fixed size
>picture for it anyway.
>
>Now, if we want to port this `solution' to prosper,
>we have to take into account that prosper redefines
>\item itself (in a dubious way [1]) and that it stores
>the original \item definition in \orig@item so that
>it can use that internally again. So here, we need
>to redefine \orig@item and prosper will pick that
>up and set \let\item\orig@item internally.
>
>\documentclass[pdf]{prosper}
>\makeatletter
>\let\latex@item\orig@item
>\def\orig@item{%
>   \ifcase\@itemdepth\or
>     \fontsize{12.4pt}{12pt}\selectfont
>   \or
>     \fontsize{11.2pt}{11pt}\selectfont
>   \else
>     \fontsize{10pt}{10pt}\selectfont
>   \fi
>   \latex@item
>}
>\makeatother
>\begin{document}
>\begin{slide}{test}
>\begin{itemize}
>\item level 1
>\begin{itemize}
>\item level 2
>\begin{itemize}
>\item level 3
>\end{itemize}
>\end{itemize}
>\end{itemize}
>\end{slide}
>\end{document}
>
>For completeness, here's the `long' solution using
>a redefinition of \@item. This works without modification
>in prosper, but notice that enumerates are not covered
>(also not by the solutions above).
>
>\documentclass[12pt]{article}
>\makeatletter
>\def\@item[#1]{%
>   \if@noparitem
>     \@donoparitem
>   \else
>     \if@inlabel
>       \indent \par
>     \fi
>     \ifhmode
>       \unskip\unskip \par
>     \fi
>     \if@newlist
>       \if@nobreak
>         \@nbitem
>       \else
>         \addpenalty\@beginparpenalty
>         \addvspace\@topsep
>         \addvspace{-\parskip}%
>       \fi
>     \else
>       \addpenalty\@itempenalty
>       \addvspace\itemsep
>     \fi
>     \global\@inlabeltrue
>   \fi
>   \everypar{%
>     \@minipagefalse
>     \global\@newlistfalse
>     \if@inlabel
>       \global\@inlabelfalse
>       {\setbox\z@\lastbox
>        \ifvoid\z@
>          \kern-\itemindent
>        \fi}%
>       \box\@labels
>       \penalty\z@
>     \fi
>     \if@nobreak
>       \@nobreakfalse
>       \clubpenalty \@M
>     \else
>       \clubpenalty \@clubpenalty
>       \everypar{}%
>     \fi}%
>   \if@noitemarg
>     \@noitemargfalse
>     \if@nmbrlist
>       \refstepcounter\@listctr
>     \fi
>   \fi
>   \sbox\@tempboxa{\makelabel{#1}}%
>   \global\setbox\@labels\hbox{%
>     \unhbox\@labels
>     \hskip \itemindent
>     \hskip -\labelwidth
>     \hskip -\labelsep
>     \ifdim \wd\@tempboxa >\labelwidth
>       \box\@tempboxa
>     \else
>       \hbox to\labelwidth {\unhbox\@tempboxa}%
>     \fi
>     \hskip \labelsep}%
>   \ifcase\@itemdepth\or
>     \fontsize{12.4pt}{12pt}\selectfont
>   \or
>     \fontsize{11.2pt}{11pt}\selectfont
>   \else
>     \fontsize{10pt}{10pt}\selectfont
>   \fi
>   \ignorespaces}
>\makeatother
>\begin{document}
>\begin{itemize}
>\item level 1
>\begin{itemize}
>\item level 2
>\begin{itemize}
>\item level 3
>\end{itemize}
>\end{itemize}
>\end{itemize}
>\end{document}
>
>Hope that helps.
>
>-Hendri.
>
>[1] see, for instance, bug 3:
>http://wikiprosper.bbclone.de/index.php?pagename=ProsperBugs
>
>
>-------------------------------------------------------
>SF email is sponsored by - The IT Product Guide
>Read honest & candid reviews on hundreds of IT Products from real users.
>Discover which products truly live up to the hype. Start reading now.
>http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
>_______________________________________________
>Prosper-users mailing list
>[email protected]
>https://lists.sourceforge.net/lists/listinfo/prosper-users

_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE! 
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/



-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click