Наберите только первую букву в группе

Наберите только первую букву в группе

Как набрать (напечатать) только первую букву группы текста?

Например, как biblatexопределяются bibtexпервые буквы имени?

MWE для начала:

\documentclass[]{article}

\begin{document}

This prints \firstinit{just the first letter}.

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

\end{document}

решение1

Рутине \justfirstнужен свой аргументнетв фигурных скобках, но завершается известным количеством. Таким образом, \firstinitсговаривается с \justfirst, без ведома пользователя, чтобы предоставить его просто так, с a \relaxв качестве терминатора, потому что он вряд ли появится в тексте пользователя.

\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}

введите описание изображения здесь


Конечно, если вы имели в виду для многословных фраз вывод первой буквыкаждыйсловом, это немного сложнее. ПЕРЕСМОТРЕНО, чтобы воспользоваться преимуществами рекурсии; ПЕРЕСМОТРЕНО, чтобы исключить использование пакетов. ПЕРЕСМОТРЕНО, чтобы предотвратить поражение от «ламы».

\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} 

введите описание изображения здесь

Связанный контент