Componga solo la primera letra de un grupo.

Componga solo la primera letra de un grupo.

¿Cómo puedo componer (imprimir) solo la primera letra de un grupo de texto?

Por ejemplo, ¿cómo se biblatexdeterminan bibtexlas primeras iniciales de un nombre?

MWE para empezar:

\documentclass[]{article}

\begin{document}

This prints \firstinit{just the first letter}.

My hero is \firstinit{John} \firstinit{Paul} Jones.

\end{document}

Respuesta1

La rutina \justfirstnecesita su argumento.noentre llaves, pero terminado por una cantidad conocida. Por lo tanto, \firstinitconspira con \justfirst, sin que el usuario lo sepa, para proporcionarlo así, con a \relaxcomo terminador, porque es poco probable que aparezca en el texto del usuario.

\documentclass[]{article}
\def\firstinit#1{\justfirst#1\relax}
\def\justfirst#1#2\relax{#1}

\begin{document}

This prints \firstinit{just the first letter}.

My hero is \firstinit{John} \firstinit{Paul} Jones.

\end{document}

ingrese la descripción de la imagen aquí


Por supuesto, si lo que quería decir es que las frases con varias palabras generaran la primera letra decadapalabra, eso es un poco más difícil. REVISADO para aprovechar la recursividad; REVISADO nuevamente para eliminar el uso de paquetes. RE-RE-REVISADO para evitar la derrota por parte de una "llama".

\documentclass[]{article}
\def\firstinit#1{\justfirst#1 \relax\relax}
\def\justfirst#1#2 #3\relax{#1\if\relax#3\else{} \justfirst#3\relax\fi}
\begin{document}
This prints \firstinit{just the first llama in the list}.

My hero is \firstinit{John} \firstinit{Paul} Jones.
\end{document} 

ingrese la descripción de la imagen aquí

información relacionada