- Questo topic ha 18 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 12 anni, 7 mesi fa da .
-
Topic
-
Ciao a tutti,
devo ancora decidere se modificare l’indice come vi andrò a descrivere oppure no. In ogni modo mi si è presentato il problema e colgo l’occasione sia per avere un’opinione vostra sulla cosa in sé sia su come, eventualmente, attuarla (e perché le mie soluzioni non funzionano…)Solita premessa, di interesse credo sia sufficiente dirvi che carico: scrbook+classicthesis+arsclassicanohyper (versione identica a quella di Lorenzo a cui ho eliminato la chiamata ad hyperref per inserirla esplicitamente io alla fine del mio preambolo)+imakeidx+bm (per i caratteri grassetti delle lettere greche matematiche) — [se serve la lista completa ve la mando]
Il comando che ho definito è il seguente
`\newcommand{\defin}[1]{\textbf{\texttt{#1}}\index{#1}} %definizioni indicizzate con testo formattato`
che mi mette in risalto la voce principale di una definizione nel testo e la manda direttamente nell’indice così non faccio confusione o me ne dimentico.
Esempio di utilizzo:
`\begin{definizione}
Diciamo che $\tau$ è una \defin{topologia} su $X$ se e solo se è una famiglia di sottoinsiemi chiusa per intersezioni finite, unioni arbitrarie e contenente $X$ stesso così come $\emptyset$.
\end{definizione}`Dopodiché ho creato anche il comando
`\newcommand{\definpost}[2][]{\textbf{\texttt{#2 #1}}\index{#2!#1}} %definizioni indicizzate con specifica e testo formattato
`il quale inizialmente lo avevo pensato come miglioramento del precedente, per fare delle sottovoci automatiche nei casi in cui fosse utile e solo quelli…o altrimenti (senza opzioni) avrebbe dovuto funzionare come il precedente. Vedendo #1 come argomento opzionale (da cui “post” visto che solitamente la quadra si scrive prima della graffa nel codice ma nel testo viene dopo per il genere di definizioni che uso).
Esempio di utilizzo
`\begin{definizione}
Diciamo \definpost[topologico]{spazio} una coppia $(X,\tau)$ in cui $X$ è un insieme e $\tau$ è una topologia su $X$.
\end{definizione}\begin{definizione}
Diciamo \definpost[metrico]{spazio} una coppia $(X,d)$ in cui $X$ è un insieme e $d$ è una metrica su $X$.
\end{definizione}`Di fatto però non posso scrivere \definpost{topologia} perché mi inserisce lo spazio anche dopo la parola (visto che “opzionale” è solo #1 e non anche lo spazio tra #2 e #1 :-)).
OK. Problemi:
1) come faccio a definire un argomento opzionale inserendo delle “cose” nel comando solo se l’argomento opzionale c’è? Per esempio lo spazio nell’esempio precedente tra #2 e #1 che compare anche se #1 (opzionale) non c’è…senza dover scrivere tale “cosa” direttamente tra le quadre quando richiamo il comando? ( tra l’altro nel nostro caso non andrebbe comunque bene perché tra “!” dell’indicizzazione o lo spazio in “#2 #1” o metto uno o l’altro, in un caso l’errore finisce nell’indice nell’altro finisce nel testo ma sempre un errore c’è :-))
Un altro esempio che posso presentare (così da buttare anche un idea) che ho testato (ovvero ho testato che non funziona…) per risolvere un altro problema è:
`\newcommand{\defin}[2][]{\textbf{\texttt{#2}}\index{#1@#2}} %definizioni indicizzate con testo formattato e ordinamento esplicito (opzionale)
`che nella mia fantasia avrebbe dovuto ordinare la voce secondo il parametro opzionale solo se questo ci fosse stato o altrimenti ordinarlo normalmente (il problema è nato pensando a \defin[e]{$\bm\epsilon$-palla})…ma se il parametro opzionale non c’è, ovviamente da errore (infatti \index{@ciao} non ha senso :-))
2) diciamo che volessi avere l’indice con le iniziali maiuscole e qui da un lato ci stanno le domande: è una porcata? è carino? ha senso? che ne pensate? lo faccio? Dall’altra ci sta il problema, o meglio i problemi (uno l’ho risolto non so se in modo rozzo o sensato).
Innanzitutto la mia idea (applicabile a tutti gli esempi qui sopra, prendo il primo perché il più semplice, ma è uguale):
` \newcommand{\defin}[1]{\textbf{\texttt{#1}}\index{\MakeUppercase#1}} %definizioni indicizzate (iniziale maiuscola) con testo formattato`
Il problema delle lettere accentate non me lo pongo perché non credo le userò e, comunque (spero) che non inserendo gli accenti esplicitamente come \’e ma con il carattere vero come è il problema non si ponga (come riesce a sillabare le parole con accenti espliciti…riconoscerà che è una e accentata… e quindi deve trasformala in una È?!). Quindi:
Problema 2a) \defin{$epsilon$-palle} da errore e, come dicevo non so se in modo blasfemo, ho risolto in locale con \defin{\protect{$epsilon$-}palle} (che però così me lo indicizza sotto la “p”, senza \protect lo indicizza all’inizio di tutto). Io vorrei scrivere \defin[e]{\protect{$\epsilon$-}palle} e averlo indicizzato sotto la “e”).
Problema2b) \defin{T$_0$} e \defin{topologia} me li scrive correttamente nel testo (\textbf{\texttt{T_0} è \textbf{\texttt{topologia}) correttamente nell’indice (T_0 e Topologia) ma ordina (in ordine alfabetico corretto) prima tutte le voci con maiuscola originale (dalla A alla Z) poi tutte le voci che ha trasformato con la maiuscola (dalla a alla z). Questo non sono proprio riuscito a farmi un idea del perché e quindi non sono riuscito ad abbozzare nemmeno una soluzione fuffa.
Per esempio mi compare
`
T_0, 6
Spazio
metrico, 7
topologico, 5
Topologia, 3
`Qualcuno ha qualche idea o consiglio?
Grazie mille. 🙂
Notte notte, 🙂
Corrado.
- Devi essere connesso per rispondere a questo topic.