- Questo topic ha 5 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 16 anni, 10 mesi fa da
lorenzo.pantieri.
-
CreatoreTopic
-
11 Novembre 2009 alle 10:40 #39138::
Come si dice a LaTeX che una voce dell’indice analitico è un comando che non va eseguito?
Mi spiego: se dò
`\index{\documentclass}
`
dopo makeindex nella ricompilazione protesta perchè vuole \documentclass nel preambolo, quindi lo prende come un comando. Come gli dico di non considerarlo tale?
-
CreatoreTopic
-
AutoreRisposte
-
-
11 Novembre 2009 alle 11:01 #39139::
Come si dice a LaTeX che una voce dell’indice analitico è un comando che non va eseguito?
Mi spiego: se dò
`\index{\documentclass}
`
dopo makeindex nella ricompilazione protesta perchè vuole \documentclass nel preambolo, quindi lo prende come un comando. Come gli dico di non considerarlo tale?Ho risolto così:`
\index{\BS documentclass@\texttt{\BS documentclass}}
`
dove `
\newcommand{\BS}{{\symbol{92}}}
`
C’è una soluzione migliore?
-
11 Novembre 2009 alle 12:46 #39140::
Come si dice a LaTeX che una voce dell’indice analitico è un comando che non va eseguito?
Mi spiego: se dò
`\index{\documentclass}
`
dopo makeindex nella ricompilazione protesta perchè vuole \documentclass nel preambolo, quindi lo prende come un comando. Come gli dico di non considerarlo tale?Dipende da come vuoi inserirlo nell’indice analitico; se lo vuoi nella lettera D, come pare naturale, la soluzione è
`\newcommand{\indexcs}[1]{#1@\texttt{\textbackslash #1}}`
e usare in quei casi \indexcs invece di \index, per esempio \indexcs{documentclass}Ciao
Enrico
-
12 Novembre 2009 alle 6:55 #39141::
Io uso questo (va nel preambolo, ci vuole anche il pacchetto listings):
`\DeclareRobustCommand*{\comando}[1]{\mbox{\lstinline!\\#1!}%
\index{#1@\texttt{\hspace*{-1.2ex}\textbackslash#1}}}`
Nel documento, poi, basta scrivere
`Ecco il comando \comando{documentclass}.`
Così il comando viene stampato nel font giusto e fatto precedere dalla barra. Nell’indice analitico, inoltre, l’incolonnamento viene fatto non con la barra, ma con la prima lettera del comando: guarda l’indice analitico dell’Arte o dell’Impaziente per un esempio.Ciao,
L.
-
12 Novembre 2009 alle 9:21 #39142::
Io uso questo (va nel preambolo, ci vuole anche il pacchetto listings):
`\DeclareRobustCommand*{\comando}[1]{\mbox{\lstinline!\\#1!}%
\index{#1@\texttt{\hspace*{-1.2ex}\textbackslash#1}}}`
Nel documento, poi, basta scrivere
`Ecco il comando \comando{documentclass}.`
Così il comando viene stampato nel font giusto e fatto precedere dalla barra. Nell’indice analitico, inoltre, l’incolonnamento viene fatto non con la barra, ma con la prima lettera del comando: guarda l’indice analitico dell’Arte o dell’Impaziente per un esempio.Invece di uno spazio calcolato “a occhio” forse sarebbe meglio rientrare di quanto è occupato davvero dalla barra rovescia:
`\DeclareRobustCommand*{\comando}[1]{\mbox{\lstinline!\\#1!}%
\index{#1@\texttt{\makebox[0pt][r]{\textbackslash}#1}}}`
Il complicato codice \makebox[0pt][r]{\textbackslash} può essere sostituito dal meno pesante (in termini di espansione) \llap{\textbackslash}.Tanto per curiosità, ecco che succede quando si espande \makebox[0pt][r]{a}:
`\makebox ->\leavevmode \@ifnextchar (\@makepicbox {\@ifnextchar [\@makebox \mbox }\leavevmode ->\unhbox \voidb@x
\@ifnextchar #1#2#3->\let \reserved@d =#1\def \reserved@a {#2}\def \reserved@b
{#3}\futurelet \@let@token \@ifnch
#1<-( #2<-\@makepicbox #3<-\@ifnextchar [\@makebox \mbox \@ifnch ->\ifx \@let@token \@sptoken \let \reserved@c \@xifnch \else \ifx
\@let@token \reserved@d \let \reserved@c \reserved@a \else \let \reserved@c
\reserved@b \fi \fi \reserved@c\reserved@c ->\@ifnextchar [\@makebox \mbox
\@ifnextchar #1#2#3->\let \reserved@d =#1\def \reserved@a {#2}\def \reserved@b
{#3}\futurelet \@let@token \@ifnch
#1<-[ #2<-\@makebox #3<-\mbox \@ifnch ->\ifx \@let@token \@sptoken \let \reserved@c \@xifnch \else \ifx
\@let@token \reserved@d \let \reserved@c \reserved@a \else \let \reserved@c
\reserved@b \fi \fi \reserved@c\reserved@c ->\@makebox
\@makebox [#1]->\@ifnextchar [{\@imakebox [#1]}{\@imakebox [#1][c]}
#1<-0pt \@ifnextchar #1#2#3->\let \reserved@d =#1\def \reserved@a {#2}\def \reserved@b
{#3}\futurelet \@let@token \@ifnch
#1<-[ #2<-\@imakebox [0pt] #3<-\@imakebox [0pt][c] \@ifnch ->\ifx \@let@token \@sptoken \let \reserved@c \@xifnch \else \ifx
\@let@token \reserved@d \let \reserved@c \reserved@a \else \let \reserved@c
\reserved@b \fi \fi \reserved@c\reserved@c ->\@imakebox [0pt]
\@imakebox [#1][#2]#3->\@begin@tempboxa \hbox {#3}\setlength \@tempdima {#1}
\hb@xt@ \@tempdima {\csname bm@#2\endcsname }\@end@tempboxa
#1<-0pt #2<-r #3<-a \@begin@tempboxa #1#2->\begingroup \setbox \@tempboxa #1{\color@begingroup
#2\color@endgroup }\def \width {\wd \@tempboxa }\def \height {\ht \@tempboxa }
\def \depth {\dp \@tempboxa }\let \totalheight \@ovri \totalheight \height \advance
\totalheight \depth
#1<-\hbox #2<-a \height ->\ht \@tempboxa\depth ->\dp \@tempboxa
\setlength #1#2->#1#2\relax
#1<-\@tempdima #2<-0pt \hb@xt@ ->\hbox to\bm@r ->\hss \unhbox \@tempboxa `
Ecco invece che succede quando si espande \llap{a}:
`\llap #1->\hb@xt@ \z@ {\hss #1}
#1<-a \hb@xt@ ->\hbox to`
Naturalmente bisogna stare attenti a quello che si fa quando si usa un comando non ufficialmente appartenente a LaTeX; per esempio non cambiare colore nell’argomento di \llap e altre piccole avvertenze. Nel caso in esame non ci dovrebbero essere problemi.Ciao
Enrico
-
12 Novembre 2009 alle 11:57 #39143
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.