indice analitico

  • Creatore
    Topic
  • #39138
    ernded
    Partecipante
      Up
      0
      Down
      ::


      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?

    Visualizzazione 4 filoni di risposte
    • Autore
      Risposte
      • #39139
        ernded
        Partecipante
          Up
          0
          Down
          ::

          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?

        • #39140
          Up
          0
          Down
          ::

          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

        • #39141
          lorenzo.pantieri
          Partecipante
            Up
            0
            Down
            ::


            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.

          • #39142
            Up
            0
            Down
            ::

            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

          • #39143
            lorenzo.pantieri
            Partecipante
              Up
              0
              Down
              ::

              Invece di uno spazio calcolato “a occhio” forse sarebbe meglio rientrare di quanto è occupato davvero dalla barra rovescia: […].

              Ubi maior… 😉

              Grazie mille,
              L.

          Visualizzazione 4 filoni di risposte
          • Devi essere connesso per rispondere a questo topic.

          Go to top