[comp.text.tex] Changing the letters sizes in LaTeX

mgu@chorus.fr (Marc Guillemont) (02/13/91)

I want to produce the pretty "CHORUS/MiX" logo according to the following
typographic rules:

  - C      in the current size
  - HORUS  in letters 2 points smaller than the current size
  - /      in the current size
  - MiX    in letters 1 point smaller than the current size

With troff, it is straightforward:

    C\s-2HORUS\s0/\s-1MiX\s0

With LaTeX, I asked my local gurus, but I could not get any reasonable
solution:

  - \sc reduces the size of capitals relatively to the current size, but
    + I can get only one small size (I need 2)
    + I cannot use lower case letters (as in "MiX")

  - \footnotesize and \small give me 2 sizes and the ability to use
    lower case letters, but
    + the sizes are not relative to the current point size: if the text
      is in 11pts, in a \title using 14pts, \footnotesize gives me 9pts
      (11 -2) instead of 12pts (14 -2)
    + in \title and \section, LaTeX get confused and throws away one of
      its typical dissuasive messages

  - I have seen another solution, but it requires about 10 lines of
    comands and macros!

Is there a solution in LaTeX as simple as the solution in troff?
--

 _ __         _ _ _   ___ 	Marc Guillemont
' )  )       ' ) ) ) /   )	Chorus syste`mes
 /--' __      / / / / __  . .	6, avenue Gustave Eiffel
/    / '     / / ( (___/_(_/_	F-78182, St-Quentin-en-Yvelines Cedex

Tel: +33 (1) 30 64 82 00	Fax: +33 (1) 30 57 00 66
E-mail: mgu@chorus.fr		or mgu%chorus.fr@mcsun.EU.net

gvr@cs.brown.edu (George V. Reilly) (02/14/91)

In article <7865@chorus.fr> mgu@chorus.fr (Marc Guillemont) writes:
| 
| I want to produce the pretty "CHORUS/MiX" logo according to the following
| typographic rules:
| 
|   - C      in the current size
|   - HORUS  in letters 2 points smaller than the current size
|   - /      in the current size
|   - MiX    in letters 1 point smaller than the current size
| 
| With troff, it is straightforward:
| 
|     C\s-2HORUS\s0/\s-1MiX\s0
| 
| With LaTeX, I asked my local gurus, but I could not get any reasonable
| solution:

[\sc is inadequate, as are \footnotesize and \small]

|   - I have seen another solution, but it requires about 10 lines of
|     comands and macros!
| 
| Is there a solution in LaTeX as simple as the solution in troff?

No, but there is a solution.  I have a solution which may be
derived from the set of macros that you're thinking of.

You need the following style file, `relative_sizes.sty':

---------------------
% relative_sizes.sty

% TeXhax Digest    Monday,  February 19, 1990  Volume 90 : Issue 19
% Date: Thu, 1 Feb 90 15:23:02 EST
% From: Bernie Cosell <cosell@WILMA.BBN.COM>
% Subject: Relative font sizing in LaTeX
% Keywords: LaTeX, font sizing
% 
% One continual annoyance to me is that LaTeX does absolute font sizing,
% and so if you have some \newcommand that uses the sizing commands to
% achieve some graphic effect, you'll discover that your chapter heads
% and footnotes and such are pretty screwed up [in a recent case, I
% wanted a fake small-caps-san-serif font, and so I used {\small\sf
% NOWISTHETIME}, which did just what I wanted in the running text, but
% was an unmitigated disaster in the chapter heads].  I think that the
% following is a significant improvement: \smaller and \larger changes
% the point size *relatively* by one slot, and so I made my definition:
% {\smaller\sf NOWISTHETIME}, and it all magically works.

% Modified by George V. Reilly (gvr@cs.brown.edu) to handle non-Roman font
% families correctly, so that this really does work usefully in titles, etc.

\def\smaller{%
    \count255=\fam%
    \ifx\@currsize\Huge \protect\huge \else
       \ifx\@currsize\huge \protect\LARGE \else
          \ifx\@currsize\LARGE \protect\Large \else
             \ifx\@currsize\Large \protect\large \else
                \ifx\@currsize\large \protect\normalsize \else
                   \ifx\@currsize\normalsize \protect\small \else
                      \ifx\@currsize\small \protect\footnotesize \else
                         \ifx\@currsize\footnotesize \protect\scriptsize \else
                            \protect\tiny
    \fi\fi\fi\fi\fi\fi\fi\fi%
    \ifnum\count255=\itfam \protect\it \else
       \ifnum\count255=\slfam \protect\sl \else
          \ifnum\count255=\bffam \protect\bf \else
             \ifnum\count255=\ttfam \protect\tt \else
                \ifnum\count255=\sffam \protect\sf \else
                   \ifnum\count255=\scfam \protect\sc
    \fi\fi\fi\fi\fi\fi%
}

\def\larger{%
    \count255=\fam%
    \ifx\@currsize\tiny \protect\scriptsize \else
       \ifx\@currsize\scriptsize \protect\footnotesize \else
          \ifx\@currsize\footnotesize \protect\small \else
             \ifx\@currsize\small \protect\normalsize \else
                \ifx\@currsize\normalsize \protect\large \else
                   \ifx\@currsize\large \protect\Large \else
                      \ifx\@currsize\Large \protect\LARGE \else
                         \ifx\@currsize\LARGE \protect\huge \else
                            \protect\Huge
    \fi\fi\fi\fi\fi\fi\fi\fi%
    \ifnum\count255=\itfam \protect\it \else
       \ifnum\count255=\slfam \protect\sl \else
          \ifnum\count255=\bffam \protect\bf \else
             \ifnum\count255=\ttfam \protect\tt \else
                \ifnum\count255=\sffam \protect\sf \else
                   \ifnum\count255=\scfam \protect\sc
    \fi\fi\fi\fi\fi\fi%
}

---------------------

Now add the following two lines to your preamble:

	\def\pCHORUS/MiX{C{\smaller\smaller HORUS}/{\smaller MiX}}
	\def\CHORUS/MiX{\protect\pCHORUS/MiX}

and you can now use \CHORUS/MiX like this:

	\section{Is \CHORUS/MiX\ the way to go?}

	And now we discuss \CHORUS/MiX, a wonderful new thing indeed.

The two-step definition of \CHORUS/MiX using \protect is
necessary if you want it to work in commands like \section.
________________
George V. Reilly   `Out Vile Jelly'	gvr@cs.brown.edu   +1 (401) 863-7684
uunet!brunix!gvr   gvr@browncs.bitnet	Box 1910, Brown U, Prov, RI 02912