¿Cómo puedo componer (imprimir) solo la primera letra de un grupo de texto?
Por ejemplo, ¿cómo se biblatex
determinan bibtex
las 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 \justfirst
necesita su argumento.noentre llaves, pero terminado por una cantidad conocida. Por lo tanto, \firstinit
conspira con \justfirst
, sin que el usuario lo sepa, para proporcionarlo así, con a \relax
como 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}
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}