How to create a LATEX like logo using any word at hand?
The design expert in me tells me this looks awful, but it will give you a start:
There are three things you can do to make a logo like this:
- you can
\kern
, to move characters closer or further from each other; - you can
\raise
or\lower
characters; - you can change their size (as the
A
in ).
The three above are available without driver dependent operations, like scaling or rotating. If you want to have those too:
- you can also scale (or mirror, which is a special case of scaling, like the first
E
in ); - and you can rotate, for extra wackiness :)
Here I'll stick with the first three, but the other two are not hard to apply if you so wish.
\kern
ing
You can use the \kern
primitive to move characters close to each other. You can write A\kern-0.5em B
to have the B
move 0.5em
towards the A
, partially superimposing it. If you use a positive value, it will go further away. The unit em
is defined (but not exactly!) as “roughly the width of an uppercase letter M in the current font”, so it is better to use em
here as the exact amount it will move will depend on the actual width of the glyphs in the font, so if you use your symbol with a larger or smaller size, it should stay more or less correct. Note that the exact amount of kerning depends on the font used, to you might need to adjust.
\raise
ing or \lower
ing
You can move characters (boxes, actually) up or down using the \raise
or \lower
primitives. The syntax is \raise <dimension> <box>
. The dimension is similar to \kern
, except here you'll prefer to use the unit ex
, defined as “roughly the height of a lowercase letter x in the current font”, so it is an indication of the height of the glyphs. Also \raise
(and \lower
) need a box, so instead of A\raise 0.5ex B
you have to write A\raise 0.5ex\hbox{B}
to get the B
slightly higher than the A
.
Changing font size
The LaTeX logo selects the current script font size for the A
(the same size as in math super/subscripts). You can use the same technique, or you can use the \relsize
package to change to a smaller or larger font size, or use the \scalebox
command. Though scaling might look bad if you overdo it.
I made the font size changing into a command \logosmaller
that makes the argument with the script size font, and aligns it with the top line of other characters:
\def\logosmaller#1{%
\hbox{\sbox\z@ T%
\vbox to\ht\z@{\hbox{\check@mathfonts
\fontsize\sf@size\z@
\math@fontsfalse\selectfont #1}\vss}}}
then you can use L\logosmaller{A}
to make something similar to LaTeX.
Building the logo
\newcommand\lecture{%
L\kern-.2em%
\logosmaller{E}\kern-.1em%
C\kern-.2em%
\raise0.5ex\hbox{T}\kern-.23em%
\hbox{U}\kern-.1em%
\lower0.1ex\logosmaller{R}\kern-.1em%
E\@}
The logo starts with L
, then brings the next character closer by -0.2em
.
L\kern-.2em%
then it adds a smaller E
, and brings C
closer by -0.1em
, and the T
closer to C
by -0.2em
:
\logosmaller{E}\kern-.1em%
C\kern-.2em%
now we raise the T
by 0.5ex, and bring the U
and the R
closer:
\raise0.5ex\hbox{T}\kern-.23em%
\hbox{U}\kern-.1em%
finally, make the R
smaller and lower it, and at the end add the E
and the spacefactor correction \@
:
\lower0.1ex\logosmaller{R}\kern-.1em%
E\@
then add the final E
.
Here's a compilable example:
\documentclass{article}
\makeatletter
\def\logosmaller#1{%
\hbox{\sbox\z@ T%
\vbox to\ht\z@{\hbox{\check@mathfonts
\fontsize\sf@size\z@
\math@fontsfalse\selectfont #1}\vss}}}
\begin{document}
\newcommand\lecture{%
L\kern-.2em%
\logosmaller{E}\kern-.1em%
C\kern-.2em%
\raise0.5ex\hbox{T}\kern-.23em%
\hbox{U}\kern-.1em%
\lower0.1ex\logosmaller{R}\kern-.1em%
E\@}
Here's a \lecture\ for you
\end{document}
Just to entertain me on the first day of 2021 :D, how about this:
\documentclass{article}
\usepackage{relsize}
\makeatletter
\def\lecture@ssize{\larger[-3]\scshape}
\DeclareRobustCommand{\lecture}{%
\mbox{%
L\kern-0.37em
\raisebox{0.49ex}{\lecture@ssize e}%\kern-0.1em
C\kern-0.53em
\raisebox{0.49ex}{\lecture@ssize t}\kern-0.05em
\raisebox{0.49ex}{\lecture@ssize u}\kern-0.12em%
R\kern-0.1em
\raisebox{0.49ex}{\lecture@ssize e}%
}%
}
\makeatother
\begin{document}
Here's a \lecture\ for you
{\large Here's a \lecture\ for you}
{\Large Here's a \lecture\ for you}
{\LARGE Here's a \lecture\ for you}
{\huge Here's a \lecture\ for you}
{\Huge Here's a \lecture\ for you}
\end{document}
Adapted from an old response (https://tex.stackexchange.com/a/60515/7832 ) from the time I created my own logo.
If one's too lazy to position letters by oneself and a semi-automatic alternative is needed, a broke man's solution is possible via MetaPost.
Disadvantages are: 1) because of random raising and lowering, outputs will be different, but one can choose a result and store it for later use, 3) it doesn't work well with non-ASCII string, 2) well, results are rather ugly, but beauty in the eye of the beholder.
Anyway, here's my approach:
\documentclass{standalone}
\usepackage[latex,shellescape]{gmp}
\begin{document}
\newcommand{\uglylogo}[2][\textwidth]{%
\begin{mpost}[name=uglylogo]
vardef myuglylogo(expr s) =
save len; len := length s;
save Char; picture Char[];
save Em; Em := 0;
save Ex;
for i = 1 upto len:
Char[i] := image(label((substring(i-1,i) of s), origin);) scaled (1-uniformdeviate(0.4));
Ex := (ypart (ulcorner Char[i])) - (ypart (llcorner Char[i]));
draw Char[i] shifted
if (i mod 2 = 1):
(Em,Ex*uniformdeviate(0.35))
else:
(Em,-Ex*uniformdeviate(0.35))
fi;
Em := Em + (xpart (urcorner Char[i])) - (xpart (ulcorner Char[i]));
endfor
enddef;
myuglylogo("#2");
\end{mpost}%
\usempost[width=#1]{uglylogo}%
}
\vbox{
\hbox{\uglylogo[6cm]{LECTURE}}
\hbox{\uglylogo[6cm]{LECTURE}}
\hbox{\uglylogo[6cm]{LECTURE}}
\hbox{\uglylogo[6cm]{LECTURE}}
\hbox{\uglylogo[6cm]{LECTURE}}
\hbox{\uglylogo[6cm]{LECTURE}}
\hbox{\uglylogo[6cm]{LECTURE}}
}
\end{document}