Tenemos la mejor respuesta que encontramos por todo internet. Queremos que te sea de mucha ayuda y si puedes compartir alguna mejora hazlo con libertad.
Solución:
documentclassarticle
usepackagemakeidxmakeindex
newcommand*formatfirst[1]MakeUppercase#1
makeatletter
newcommand*mymacro[1]%
expandafterformatfirstexpandafter@car #1@empty@nil%
@cdr #1@empty@nil
newcommand*myMakeUpperCase[1]%
def@myuppercasewords[email protected]#1 @nil%
itshape@myuppercasewordsindex#[email protected]@myuppercasewords
def[email protected]#1 #2@nil%
mymacro#1%
ifx\#2\%
else
@ReturnAfterFi%
space
[email protected]#2@nil
%
fi
longdef@ReturnAfterFi#1fifi#1
makeatother
begindocument
foo
myMakeUpperCasecapital letter bar
myMakeUpperCaseNext one baz
myMakeUpperCasetwo words
printindex
enddocument
El mfirstuc
paquete de la glossaries
el paquete proporciona la práctica capitalisewords
comando que podría usarse aquí. me adapté HerbertEl ejemplo de y la salida es la misma:
documentclassarticle
usepackagemfirstuc
usepackagemakeidxmakeindex
makeatletter
newcommand*define[1]%
textit#1%
index#[email protected]
protectcapitalisewords#1%
makeatother
begindocument
foo
definecapital letter bar
defineNext one baz
definetwo words
printindex
enddocument
No estoy seguro de haber entendido bien tu pregunta, pero un breve macro como se muestra a continuación, escribirá en mayúscula la primera palabra que escriba y la colocará en el índice.
documentclass[11pt]article
usepackageindex
makeindex
begindocument
defIndex#1defx##1##2MakeUppercase##1##2textitx#1 indexx#1
Indexalpha
defindeX#1#2defx##1##2MakeUppercase##1##2x#1 indexx#2
Indexalpha
indeXtestthis
printindex
enddocument
Al final de todo puedes encontrar las aclaraciones de otros desarrolladores, tú asimismo eres capaz dejar el tuyo si lo deseas.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)