- Questo topic ha 11 risposte, 4 partecipanti ed è stato aggiornato l'ultima volta 21 anni, 9 mesi fa da
AntonioFabio82.
-
CreatoreTopic
-
2 Dicembre 2004 alle 21:08 #4237::
Esiste un metodo generale per *aggiungere* delle caratteristiche ad un ambiente (o ad un comando) esistente?Per esempio, per dirvene una: voglio che l’ambiente “tabular” sia con font monospaziato di dimensione tiny. Giusto per fare un esempio. Insomma, vorrei ridefinire tabular, ma in modo che continui a fare quello che fa finora, semplicemente in + deve fare altre cose.
Se faccio qualcosa tipo:
`
\renewenvironment{tabular}
{\tiny \begin{tabular}}
{\end{tabular} }
`mi finisce, naturalmente, in un loop infinito…
Riassumendo: innanzitutto, se c’è un modo pratico di avere tutte le mie tabelle con un font specifico in un colpo solo, ben venga il consiglio. Ma in generale, come posso “aggiungere” comandi ad ambienti/comandi esistenti?
-
CreatoreTopic
-
AutoreRisposte
-
-
2 Dicembre 2004 alle 21:57 #4238::
-
Io non ridefinirei l’ambiente tabular ma ne creerei uno nuovo;
-
mi pare che nella tua nuova definizione dell’ambiente manchi l’informazione sull’allineamento delle colonne.
dunque ti suggerisco`
\newenvironment{tabella}[1]
{\tiny \begin{tabular}{#1}}
{\end{tabular}}
…
\begin{tabella}{lll}
a&b&c
\end{tabella}`
-
-
2 Dicembre 2004 alle 22:00 #4239
-
3 Dicembre 2004 alle 0:37 #4240::
[*] Io non ridefinirei l’ambiente tabular ma ne creerei uno nuovo;
Uhm, ok. Ma non ho proprio modo di “personalizzare” gli esistenti anteponendo/posponendo dei comandi? Mi sarebbe estremamente utile, essenzialmente per cambiare in un colpo i font e altre opzioni di layout di tutte le occorrenze dell’ambiente nel documento già esistente. Così invece dovrei fare un trova/sostituisci per sostituire ogni volta all’ambiente tabular il mio nuovo ambiente.
Oddio, non è una questione vitale, mi rendo conto che potete mandarmi a quel paese dicendomi “e usa ‘tabella’ e non romperci!”. Ma la verità è che uso un tool che mi autogenera le tabelle con tutti i numeri dentro ben formattati, e naturalmente mi piazza “tabular” come intestazione. Mi pareva + elegante ridefinire l’ambiente tabular che fare ogni volta trova-sostituisci.
Ogni commento ulteriore (anche soluzioni alternative, come quelle (ottime!) già ricevute) è benvenuto.
Nota: fortunatamente il tool è molto configurabile, per cui potrei anche cambiare “tabular” in “tabella” nel suo output. Solo che mi scoccia che poi in ogni documento che userebbe il tool dovrei ridefinirmi l’ambiente “tabella”, mentre invece “tabular” c’è sempre, ed ha un suo comportamento di default.
Nota 2: questione analoga per altri comandi/ambienti.
Nota 3: se credete sia cosa complicata fare quel che intendo (come da topic), ditemi pure “non ne vale la pena”. Non ne so tanto di latex, per cui un tale consiglio mi eviterebbe quantomeno di sprecare il mio tempo su di una stupidaggine.
-
3 Dicembre 2004 alle 12:31 #4241::
Ma in generale, come posso “aggiungere” comandi ad ambienti/comandi esistenti?
Ridefinendo nuovi ambienti con le stesse caratteristiche:`\newenvironment{Tabular}[1]{\tiny\ttfamily\begin{tabular}{#1}}{\end{tabular}}`e usare Tabular alla stessa maniera di tabular.
Un modo anche migliore è di scrivere`\newenvironment{perstab}[1]
{#1\begin{tabular}}{\end{tabular}}`
che ti permette di dare come argomento ciò che vuoi valga in tutta. Hai così una nuova classe di ambienti, che puoi usare per definirne altri ancora. Per esempio:`\begin{perstab}{\tiny\ttfamily}{ccc}
a&b&c
\end{perstab}`Un programmatore “macho” scriverebbe`\newenvironment{perstab}[1]
{#1\tabular}{\endtabular}`ma forse è meglio non andare troppo nei dettagli.
Ciao
Enrico
-
3 Dicembre 2004 alle 13:44 #4242
-
3 Dicembre 2004 alle 15:55 #4243::
Un modo anche migliore è di scrivere`\newenvironment{perstab}[1]
{#1\begin{tabular}}{\end{tabular}}`Ma è sempre la strada proposta anche da Lapo Mori… Insomma, davvero nulla di meglio che crearsi un nuovo ambiente?
Potresti avere bisogno del “tabular” originale, no? Come faresti dopo averlo ridefinito? Che cos’ha una definizione di nuovo ambiente che ti turba? Anzi, è un arricchimento degli strumenti a disposizione.
Ciao
Enrico
-
3 Dicembre 2004 alle 17:18 #4244::
Potresti avere bisogno del “tabular” originale, no? Come faresti dopo averlo ridefinito?
Si, potrei sicuramente averne bisogno, ma non all’interno dello stesso documento! Io piazzerei solo una ridefinizione nel preambolo, senza nulla toccare fuori.
Se poi voglio tutte le tabelle tt e tiny, lo cambio nel preambolo. Se non mi va + bene, lo tolgo. Se solo per qualche tabella particolare, nello stesso documento, voglio un font (o qualche altra impostazione che ora non saprei citare) particolare solo per lei, lo dico esplicitamente solo lìddove creo la tabella.
In ogni caso, la cosa mi si rivelerebbe utile anche in altri ambienti. Per esempio, “quote” o “list”, per ridefinire il comportamento di default senza crearmi nuovi ambienti che sarebbero solo: “uguale a quote però + interlinea” o “uguale a list però testo di colore verde ❓ “. (nota: sono esempi inventati al volo. Soprattutto per quote credo ci siano pacchetti che fanno già ogni servizio possibile e immaginabile…).
-
3 Dicembre 2004 alle 18:17 #4245::
Potresti avere bisogno del “tabular” originale, no? Come faresti dopo averlo ridefinito?
Si, potrei sicuramente averne bisogno, ma non all’interno dello stesso documento! Io piazzerei solo una ridefinizione nel preambolo, senza nulla toccare fuori.
Se poi voglio tutte le tabelle tt e tiny, lo cambio nel preambolo. Se non mi va + bene, lo tolgo. Se solo per qualche tabella particolare, nello stesso documento, voglio un font (o qualche altra impostazione che ora non saprei citare) particolare solo per lei, lo dico esplicitamente solo lìddove creo la tabella.
In ogni caso, la cosa mi si rivelerebbe utile anche in altri ambienti. Per esempio, “quote” o “list”, per ridefinire il comportamento di default senza crearmi nuovi ambienti che sarebbero solo: “uguale a quote però + interlinea” o “uguale a list però testo di colore verde ❓ “. (nota: sono esempi inventati al volo. Soprattutto per quote credo ci siano pacchetti che fanno già ogni servizio possibile e immaginabile…).
Ma avere una ridefinizione nel preambolo che cos’ha di tanto diverso dalla definizione di un nuovo ambiente? Da quello che capisco, sei un utente non ancora troppo esperto e forse non hai compreso chiaramente la “filosofia” di LaTeX: concentrarsi sulla struttura logica del testo e non sulla forma. Cose “diverse” vanno trattate in modo “diverso”.
Decidi tu; se vuoi ridefinirti “tabular”, fallo. Ma non sperare che ti diciamo come. 🙂
Ciao
Enrico
-
3 Dicembre 2004 alle 18:44 #4246::
Decidi tu; se vuoi ridefinirti “tabular”, fallo. Ma non sperare che ti diciamo come. 🙂
Aaahhh, maledetti!
Hehehehe, scherzo 😆
Comunque, dal fatto che non ho avuto risposta, mi par di capire che la cosa non è tanto banale, dunque rinuncerei, rimandando a tempi migliori il problema.Comunque, ho riportato + sopra un problema pratico che mi impedisce di usare direttamente il mio nuovo ambiente: il file latex è autogenerato da un altro tool, che usa tabular. Cioè, alla fine posso anche fare “trova-sostituisci” ogni volta che ho fatto girare il tool o, ancora, potrei personalizzarmi il tool (devo trovare se è previsto un modo per farlo senza smaronare nei suoi sorgenti, sennò pazienza: cambio la riga incriminata nel suo sorgente…). Anyway, mi sembrava + “fico” personalizzarmi tabular da dentro il documento 😀
Hai ragionissima che non sono in pieno nella filosofia latex!
Vengo da OpenOffice Writer, che sprona un uso consistente degli stili: di pagina, di carattere, di paragrafo, di lista, etc. etc…. Tutto (quasi) lo si imposta negli stili, poi nel documento usi gli stili, senza toccare direttamente la formattazione, che puoi fare prima, durante o dopo la stesura del testo.
Questo modo di fare, se non ti permette di concentrarti SOLO sul contenuto, ti permette comunque di posporre alla fine la formattazione del tutto. Aggiungici che puoi salvare i tuoi stili in un modello da ri-usare in futuro… ed è fatta! Non è poi così male. Bon, ma qui sto andando pesantemente off-topic.
Anche se credo che la mia domanda sia sorta dall’abitudine a lavorare in questo modo (volevo ridefinirmi lo stile di “tabular” 😆 ).
-
3 Dicembre 2004 alle 18:44 #4247::
Decidi tu; se vuoi ridefinirti “tabular”, fallo. Ma non sperare che ti diciamo come. 🙂
Aaahhh, maledetti!
Hehehehe, scherzo 😆
Comunque, dal fatto che non ho avuto risposta, mi par di capire che la cosa non è tanto banale, dunque rinuncerei, rimandando a tempi migliori il problema.
Comunque, ho riportato + sopra un problema pratico che mi impedisce di usare direttamente il mio nuovo ambiente: il file latex è autogenerato da un altro tool, che usa tabular. Cioè, alla fine posso anche fare “trova-sostituisci” ogni volta che ho fatto girare il tool o, ancora, potrei personalizzarmi il tool (devo trovare se è previsto un modo per farlo senza smaronare nei suoi sorgenti, sennò pazienza: cambio la riga incriminata nel suo sorgente…). Anyway, mi sembrava + “fico” personalizzarmi tabular da dentro il documento 😀Vedi che se ti spieghi ci si capisce? Ovviamente sarebbe meglio che il programma esterno fosse meno drastico nelle sue scelte. Se non hai altre possibilità, il trucco ovviamente c’è. Avvertenza per chi ci legge e non ha lo stesso problema: non cercate di imitare questo senza capire ciò che state facendo.`\let\oldtabular\tabular
\let\endoldtabular\endtabular
\renewenvironment{tabular}{\ttfamily\tiny\oldtabular}{\endoldtabular}`
Ciao
Enrico
-
3 Dicembre 2004 alle 20:05 #4248::
Avvertenza per chi ci legge e non ha lo stesso problema: non cercate di imitare questo senza capire ciò che state facendo.`\let\oldtabular\tabular
\let\endoldtabular\endtabular
\renewenvironment{tabular}{\ttfamily\tiny\oldtabular}{\endoldtabular}`Aaaahhhh, ecco a cosa serve quel “\let” che ho visto talvolta in giro 😯
Cmq tranquillo, il comando ho davvero intenzione di metterlo solo nel preambolo del documento corrente. Certo è che non è banale fare il servizio in generale (in questo caso bisognerebbe sapere dell’esistenza di \tabular e \endtabular…)!Grazie 1000 della dritta!
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.