Saltar al contenido

¿Cómo crear un logo tipo LATEX usando cualquier palabra a mano?

Solución:

El experto en diseño que hay en mí me dice que esto se ve horrible, pero te dará un comienzo:

ingrese la descripción de la imagen aquí

Hay tres cosas que puede hacer para crear un logotipo como este:

  • usted puede kern, para acercar o alejar a los personajes unos de otros;
  • usted puede raise o lower caracteres;
  • puede cambiar su tamaño (como el A en ingrese la descripción de la imagen aquí).

Los tres anteriores están disponibles sin operaciones dependientes del controlador, como escalar o rotar. Si también quieres tenerlos:

  • también puede escalar (o reflejar, que es un caso especial de escalado, como el primero E en ingrese la descripción de la imagen aquí);
  • y puedes rotar, para extravagancia 🙂

Aquí me quedo con los tres primeros, pero los otros dos no son difíciles de aplicar si así lo desea.

kernEn g

Puedes usar el kern primitivo para acercar a los personajes unos de otros. Puedes escribir Akern-0.5em B tener el B moverse 0.5em hacia el A, superponiéndolo parcialmente. Si usa un valor positivo, irá más lejos. La unidad em se define (¡pero no exactamente!) como “aproximadamente el ancho de una letra mayúscula M en la fuente actual”, por lo que es mejor usar em aquí, ya que la cantidad exacta que se moverá dependerá del ancho real de los glifos en la fuente, por lo que si usa su símbolo con un tamaño más grande o más pequeño, debería permanecer más o menos correcto. Tenga en cuenta que la cantidad exacta de interletraje depende de la fuente utilizada, por lo que es posible que deba ajustar.

raiseing o lowerEn g

Puede mover caracteres (cuadros, en realidad) hacia arriba o hacia abajo usando el raise o lower primitivas. La sintaxis es raise <dimension> <box>. La dimensión es similar a kern, excepto que aquí preferirá usar la unidad ex, definido como “aproximadamente la altura de una letra x minúscula en la fuente actual”, por lo que es una indicación de la altura de los glifos. También raise (y lower) necesita una caja, así que en lugar de Araise 0.5ex B tu tienes que escribir Araise 0.5exhbox{B} para obtener el B ligeramente más alto que el A.

Cambiar el tamaño de la fuente

El logotipo de LaTeX selecciona el tamaño de fuente del script actual para el A (del mismo tamaño que en los superíndices y subíndices de matemáticas). Puede utilizar la misma técnica o puede utilizar la relsize paquete para cambiar a un tamaño de fuente más pequeño o más grande, o utilice el scalebox mando. Aunque la escala puede verse mal si se excede.

Hice que el tamaño de la fuente cambiara a un comando logosmaller que crea el argumento con la fuente del tamaño del script y lo alinea con la línea superior de otros caracteres:

deflogosmaller#1{%
  hbox{sbox[email protected] T%
    vbox toht[email protected]{hbox{[email protected]
      fontsize[email protected][email protected]
      [email protected]selectfont #1}vss}}}

entonces puedes usar Llogosmaller{A} para hacer algo similar a LaTeX.

Construyendo el logo

newcommandlecture{%
  Lkern-.2em%
  logosmaller{E}kern-.1em%
  Ckern-.2em%
  raise0.5exhbox{T}kern-.23em%
  hbox{U}kern-.1em%
  lower0.1exlogosmaller{R}kern-.1em%
  E@}

El logo comienza con L, luego acerca al siguiente personaje -0.2em.

  Lkern-.2em%

luego agrega un más pequeño Ey trae C más cerca -0.1em, y el T más cerca a C por -0.2em:

  logosmaller{E}kern-.1em%
  Ckern-.2em%

ahora levantamos el T por 0.5ex, y trae el U y el R más cerca:

  raise0.5exhbox{T}kern-.23em%
  hbox{U}kern-.1em%

finalmente, haz el R más pequeño y bájelo, y al final agregue el E y la corrección del factor espacial @:

  lower0.1exlogosmaller{R}kern-.1em%
  E@

luego agrega el final E.


Aquí hay un ejemplo compilable:

documentclass{article}

makeatletter
deflogosmaller#1{%
  hbox{sbox[email protected] T%
    vbox toht[email protected]{hbox{[email protected]
      fontsize[email protected][email protected]
      [email protected]selectfont #1}vss}}}

begin{document}

newcommandlecture{%
  Lkern-.2em%
  logosmaller{E}kern-.1em%
  Ckern-.2em%
  raise0.5exhbox{T}kern-.23em%
  hbox{U}kern-.1em%
  lower0.1exlogosmaller{R}kern-.1em%
  E@}

Here's a lecture for you

end{document}

Solo para entretenerme el primer día de 2021: D, ¿qué tal esto?

Salida OK

documentclass{article}
usepackage{relsize}
makeatletter
def[email protected]{larger[-3]scshape}
DeclareRobustCommand{lecture}{%
  mbox{%
    Lkern-0.37em
    raisebox{0.49ex}{[email protected] e}%kern-0.1em
    Ckern-0.53em
    raisebox{0.49ex}{[email protected] t}kern-0.05em
    raisebox{0.49ex}{[email protected] u}kern-0.12em%
    Rkern-0.1em
    raisebox{0.49ex}{[email protected] 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}

Adaptado de una respuesta anterior (https://tex.stackexchange.com/a/60515/7832) desde el momento en que creé mi propio logotipo.

Si uno es demasiado perezoso para colocar las letras por sí mismo y se necesita una alternativa semiautomática, la solución de un hombre arruinado es posible a través de MetaPost.

Las desventajas son: 1) debido a la subida y bajada aleatoria, las salidas serán diferentes, pero se puede elegir un resultado y almacenarlo para su uso posterior, 3) no funciona bien con cadenas no ASCII, 2) bueno, los resultados son bastante feo, pero hermoso a los ojos del espectador.

De todos modos, este es mi enfoque:

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}

ingrese la descripción de la imagen aquí

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *