Risposte nei forum create
-
AutoreRisposte
-
8 Ottobre 2008 alle 7:48 in risposta a: Modificare ClassicThesis con il pacchetto ArsClassica #25878::
Ciao Enrico, cominciamo dall’errore finale, che era la causa del problema. Ci ho messo una toppa con questo codice (che certo ti farà sorridere di tenerezza):
`\@ifclassloaded{scrreprt}{%
\makeatletter
\def\toc@heading{%
\chapter*{\contentsname}%
\@mkboth{\spacedlowsmallcaps{\contentsname}}
{\spacedlowsmallcaps{\contentsname}}}
\makeatother}
{\relax}\@ifclassloaded{scrbook}{%
\makeatletter
\def\toc@heading{%
\chapter*{\contentsname}%
\@mkboth{\spacedlowsmallcaps{\contentsname}}
{\spacedlowsmallcaps{\contentsname}}}
\makeatother}
{\relax}`
Esiste un modo per dire: “se è caricata la classe scrreprt oppure la classe scrbook, allora…”?No, non esiste. Ma puoi scrivere
`\def\toc@headingbkORrp{%
\def\toc@heading{%
\chapter*{\contentsname}%
\@mkboth{\spacedlowsmallcaps{\contentsname}}
{\spacedlowsmallcaps{\contentsname}}}}
\@ifclassloaded{scrreprt}{\toc@headingbkORrp}{}
\@ifclassloaded{scrbook}{\toc@headingbkORrp}{}`
Così, almeno, il codice identico rimane in un posto solo. Niente \makeatletter e \makeatother! Dai, fa’ vedere che hai letto con attenzione il mio messaggio! 😀Le tue critiche al codice sono ineccepibili, naturalmente. Tuttavia l’obiettivo di ArsClassica (come credo anche quello di ClassicThesis) è quello di… funzionare (e ora ArsClassica funziona anche con la classe scrartcl), sacrificando purtroppo la precisione del codice.
Riguardo alle @ mancanti, ho provato ad aggiungerle (sostituendo per esempio eulerchapternumbers -> @eulerchapternumbers), ma se lo faccio sic et simpliciter ottengo un errore in compilazione.
E a me succede il contrario, come la mettiamo? Che Miède abbia pasticciato con le versioni di classicthesis?
Io ho la versione 2008/10/01, che alle righe 47-60 definisce i condizionali con @ davanti. Con tlmgr si possono aggiornare automaticamente i pacchetti della TeX Live (e di MacTeX, che è la stessa cosa) e quindi è possibile che la tua versione sia rimasta indietro.
Ciao
Enrico
::Salve,
sto cercando di creare una classe molto semplice, basata sulla book, che ne modifichi
qualche aspetto tramite opportune opzioni.Vorrei che coesistessero opzioni del tipo chiave=valore (usando keyval) e opzioni normali (vero/falso) (usando il comando \DeclareOption).
Il processamento delle opzioni di keyval l’ho copiato e incollato dal pacchetto layaureo.
`
\def\ProcessOptionsWithKV#1{%
\let\@tempa\@empty
\@for\CurrentOption:=\@classoptionslist\do{%
\@ifundefined{KV@#1@\CurrentOption}%
{}{\edef\@tempa{\@tempa,\CurrentOption,}}}%
\edef\@tempa{%
\noexpand\setkeys{#1}%
{\@tempa\@ptionlist{\@currname.\@currext}}}%
\@tempa
\AtEndOfPackage{\let\@unprocessedoptions\relax}}
`Purtroppo appena richiamo la mia classe con una opzione dichiarata con \DeclareOption, keyval mi da errore perché non riconosce quella opzione. Viceversa quando uso una opzione del tipo chiave=valore, keyval la processa correttamente ma \ProcessOptions mi restituisce un warning sull’inesistenza di tale opzione.
Per quanto riguarda il warning non saprei proprio come eliminarlo, mentre per il processamento delle opzioni di keyval credo che il problema sia specificare a mano quale opzioni processare, senza usare il for (oppure semplicemente non dichiarare
le opzioni tramite \DeclareOption ma limitarmi a usare anche per le altre \define@key,
come in layaureo per l’opzione big)La mia domanda: è possibile far coesistere keyval con \DeclareOption ? Se sì, come?
Credo che il modo migliore sia di usare xkeyval, che dovrebbe avere già la funzionalità che chiedi. Oppure di dichiarare le opzioni tramite \define@key.
Supponiamo che tu abbia un’opzione classica, “pippo”, che dichiareresti con
`\newif\ifpippo
\DeclareOption{pippo}{\pippotrue}
…
\ProcessOptions\relax`
Credo che il codice seguente abbia la stessa funzionalità con keyval:
`\newif\ifpippo
\define@key{mykeys}{pippo}[true]{\csname pippo#1\endcsname}
…
\ProcessOptionsWithKV{mykeys}`
Chiamando il pacchetto con \usepackage[pippo]{package} verrebbe eseguita l’opzione “pippo=true” che darà il risultato corretto, perché sarebbe eseguito il codice \csname pippotrue\endcsname che equivale a \pippotrue. Naturalmente non è necessario usare #1 nell’argomento di \define@key, puoi metterci qualsiasi codice.Puoi fare un esempio di quello che desideri ottenere?
Ciao
Enrico
7 Ottobre 2008 alle 17:15 in risposta a: Formattazione di una tabella secondo i desideri dell’utente #27419::Prologo: ho sviluppato una applicazione che incrociando i dati tra un’altra applicazione ed un database dovrebbe produrre un documento immediatamente distribuibile via web.
Il committente ha sollevato alcune riserve, tra le quali la formattazione delle tabelle.
Ho smanettato un poco e sono giunto a produrre una cosa come questa (scusate se il codice è orribile, ma oggettivamente meglio di così non sono stato in grado di fare):
`\begin{center}
\setlength{\tabcolsep}{1pt}%
\begin{xtabular}{|m{63pt}|m{26.1pt}|m{26.1pt}|} \hline
\rule[-1.5em]{1pt}{4em}\centering\arraybackslash \textbf{ i} & \centering\arraybackslash \textbf{M\(\mathsf{_{n2}}\)\newline{} [Nm]} & \centering\arraybackslash \textbf {M\(\mathsf{_{a2}}\)\newline{}[Nm]} \\ \cline{1-3}
\rule[-1ex]{1pt}{2em}\raggedright\arraybackslash TIPO 1 & \centering\arraybackslash 10 & \centering\arraybackslash 16 \\ \cline{1-3}
\rule[-1ex]{1pt}{2em}\raggedright\arraybackslash TIPO 2 & \centering\arraybackslash 12 & \centering\arraybackslash 20 \\ \cline{1-3}
\rule[-1ex]{1pt}{2em}\raggedright\arraybackslash TIPO 3 & \centering\arraybackslash 12 & \centering\arraybackslash 20 \\ \cline{1-3}
\end{xtabular}
\end{center}`
Il pilastrino largo 1pt l’ho messo per vedere meglio l’effetto del cambio dei parametri. Con questo sistema la tabella (per lo meno in colonna 1) ha la formattazione e l’aspetto che il cliente vuole.
Q1: La formattazione funziona bene quasi ovunque, tranne che nelle due celle di testa: non riesco a fare le due righe ‘centrate’. Mi inizia tutto a sinistra. Inoltre se aggiungo un \rule va tutto in malora.
Q2: Esiste un sistema per mettere il testo al centro di una cella senza fare i salti mortali?Esiste:
`\newcommand{\centerlistitem}[1]{\begin{tabular}{@{}c@{}}#1\end{tabular}}\begin{tabular}{|l|c|c|}
\hline
\multicolumn{1}{|c|}{\centerlistitem{\textbf{i}}} &
\centerlistitem{\textbf{M\(\mathsf{_{n2}}\)} \\ \textbf{[Nm]}} &
\centerlistitem{\textbf{M\(\mathsf{_{a2}}\)} \\ \textbf{[Nm]}} \\
\hline
TIPO 1 & 10 & 16 \\
\hline
TIPO 2 & 12 & 20 \\
\hline
TIPO 3 & 12 & 20 \\
\hline
\end{tabular}`
Usa puntelli di vario tipo e eventuali spaziature aggiuntive se preferisci che le celle siano più spaziate.Ciao
Enrico
7 Ottobre 2008 alle 16:15 in risposta a: Modelli matematici per problemi di ricerca operativa #27417::Salve a tutti,
Sto scrivendo una tesi su modelli di ricerca operativa. I modelli hanno molte equazioni nella forma
SUMMYj<=c V j \in C SUMMXij<=b V (i,j) \in B etc... Ho due problemi. Sto provando ad usare l'ambiente align ma le equazioni sforano la pagina in larghezza e in altezza. Come mai non sono visualizzate su più pagine? Come faccio a mandarle a capo automaticamente garantendo il giusto allineamento delle formule? ES: \begin{align} \sum_{j \in J}{X_{ij}^{hk}} = 1 &&& i \in J, i < j, h \in K, k \in K, h < k, etc etc etc etc \\ \sum_{j \in J}{X_{ij}^{hk}} = 1 &&& i \in J, i < j, h \in K, k \in K, h < k, etc etc etc etc \\ \sum_{j \in J}{X_{ij}^{hk}} = 1 &&& i \in J, i < j, h \in K, k \in K, h < k, etc etc etc etc \\ \sum_{j \in J}{X_{ij}^{hk}} = 1 &&& i \in J, i < j, h \in K, k \in K, h < k, etc etc etc etc \\ %... %... \sum_{j \in J}{X_{ij}^{hk}} = 1 &&& i \in J, i < j, h \in K, k \in K, h < k, etc etc etc etc \\ \sum_{j \in J}{X_{ij}^{hk}} = 1 &&& i \in J, i < j, h \in K, k \in K, h < k, etc etc etc etc \end{align}Il manuale di amsmath è disponibile anche in italiano, c’è nella TeX Live come itamsldoc.pdf (comunque lo trovi su CTAN).
Il modo più pulito è di trovare il posto migliore per il cambio pagina e, prima del relativo \\ mettere \displaybreak.
In alternativa, si può lasciar fare a LaTeX mettendo \allowdisplaybreaks nel preambolo; ma non è consigliabile, in generale; lo puoi usare durante la stesura, ma per la versione finale è meglio andare a mano.
Cerca una frase migliore per l’oggetto del messaggio, la prossima volta: il problema non sta certo nei modelli matematici per la ricerca operativa. ❗
Ciao
Enrico
::de gustibus… 😀 😀
non riesco però a fare apparire in grassetto anche la dicitura “Appendice”.
sapresti inoltre come numerare i paragrafi 1.1, 1.2 ecc?
con questo codice non mi escono i numeri dei capitoli accanto ai paragrafi nel sommario..poi giuro che non ti stresso più e penso solo al contenuto (nel vero spirito latex)
Se non vuoi che compaia la scritta “Capitolo”, perché vuoi che compaia “Appendice”?
Aggiungi
`\let\tocappendix\tocchapter
\renewcommand{\thesection}{\for{toc}{\thechapter.}\arabic{section}}`
al codice che ti avevo dato. Anche se trovo incongruo aggiungere il numero del capitolo solo lì.Ciao
Enrico
7 Ottobre 2008 alle 11:03 in risposta a: Il pacchetto verse non mi numera correttamente i versi. #27414::Enrico,
grazie come sempre per la tempestività. Ieri sera ho provato e riprovato a risolvere il problema con le mie forze, giusto per uscire dai pasticci da solo, per una volta, ma… “niente da fare”! 😀[…]
Piuttosto, non ho trovato nessun riferimento alla possibilità di impostare il rientro del solo primo verso di ogni strofe. Ho agito correttamente con quel
`\hspace{valore}`
? È un po’ macchinoso.
Vedi bene che Clementine usa \\! per separare le strofe (altverse non serve, nel tuo caso), che è simile al mio \\[\baselineskip]
A pagina 6 della documentazione c’è scritto che \\! va usato alla fine delle strofe, se vuol la numerazione. Infatti è il comando \\ che incrementa il contatore. Questo ovviamente spiega il tuo problema. Non sarebbe meglio leggersi da sé la documentazione? 👿 😀
Trovi anche \vin come abbreviazione del tuo \hskip{…}
Ciao
Enrico
::vorrei riaprire questo topic per risolvere un problema:
vorrei ridefinire il comando \part in modo da eliminare l’interruzione di pagina dopo il titolo della parte, spostando inoltre il titolo in alto alla pagina. Ho letto la documentazione del pacchetto titlesec ma non capisco se e come è possibile farlo.E che senso avrebbe?
Ciao
Enrico
7 Ottobre 2008 alle 10:05 in risposta a: Il pacchetto verse non mi numera correttamente i versi. #27411::Buongiorno a tutti,
credo di essere impazzito, perché ultimamente non mi funziona più nulla. Dopo i problemi con lettrine e marvosym, ora ci si mette anche verse.Dunque, compilate il codice qui sotto. Il mio output presenta la numerazione dei versi (che io vorrei ogni sei, cioè con l’ultimo verso di ogni sestina numerato e basta) sfasata verso il basso, e di molto. Praticamente è come se non contasse il primo verso della poesia.
Mi date qualche suggerimento, per favore?
Non so se è un baco di verse o se questo è il comportamento normale. Ma a quanto pare le righe vuote danno fastidio alla numerazione. Prova con
`Qual dagli antri marini\\
l'astro più caro a Venere\\
co' rugiadosi crini\\
fra le fuggenti tenebre\\
appare, e il suo viaggio\\
orna col lume dell'eterno raggio,\\[\baselineskip]sorgon così tue dive\\
membra dall'egro talamo,\\
e in te beltà rivive,\\
l'aurea beltate ond'ebbero\\
ristoro unico a' mali\\
le nate a vaneggiar menti mortali.\\[\baselineskip]…`
senza pasticciare con \parskip.Ciao
Enrico
7 Ottobre 2008 alle 9:52 in risposta a: Lettrine non mi genera un capolettera più alto di due righe. #27352::Rispondo a Enrico:
“nulla da fare” significa che anche provando a compilare con le indicazioni che mi sono state date, il risultato non cambia: ottengo esattamente la stessa cosa, cioè un non-capolettera grande quanto un normale carattere posizionato sulla linea corrispondente al numero di [lines=numero] e circondato dallo spazio destinato ad accoglierlo se fosse generato in modo corretto.Non riesco, dunque, a far apparire un capolettera più alto di due righe. La mia distribuzione di MikTeX 2.7 è completa. È vero che a casa non ho una connessione internet, ma il mio MikTeX è stato installato quest’estate, e ha sempre funzionato bene. E, soprattutto, è di un anno posteriore all’ultima release di lettrine.
Dunque, ora proverò a fare come mi suggerisce Lorenzo in ultima battuta.
Certo che, stante la bellezza del font computer modern, dover ricorrere ad altri font oppure incontrare, come vedo, tutti questi problemi per un semplice capolettera…
Non si dovrebbe mettere le mani sul pacchetto stesso?
Ma non me ne intendo. 😀Non sarebbe meglio produrre qualche messaggio rilevante del .log? Qualcosa come
`LaTeX Font Warning: Font shape `T1/cmr/m/n' in size <41.0682> not available
(Font) size <35.83> substituted on input line 55.LaTeX Font Warning: Font shape `T1/cmr/m/n' in size <68.36198> not available
(Font) size <35.83> substituted on input line 55.`
Ciao
Enrico
::Ciao,
In che contesto ti servirebbe questa roba?Ciao Enrico e ciao a tutti,
Innanzitutto grazie per la risposta; dunque vorrei mettere in evidenza la prima occorrenza di una parola all’interno di una definizione (uso \newtheorem). Direi che non ho bisogno di maiuscole, né punteggiatura, però potrebbero capitarmi lettere accentate!
Acc, credevo/speravo fosse stato più semplice!!! Ma esistono DML (basati su TeX o meno) che prevedono operazioni del genere? Senza dover scomodare Perl (o altri linguaggi), anche se non ho grossi problemi ad imparare nuovi linguaggi (conosco C++, Java, C#, e un po’ di Caml), però mi piacerebbe utilizzare una soluzione limpida e nativa.Temevo fosse qualcosa del genere. 🙂
Se hai una zanzara in camera, chiami forse il servizio di disinfestazione per liberartene? Suvvia! Quante definizioni hai nel tuo lavoro? Non puoi davvero pensare che un “automatismo” possa sostituire efficacemente la mente umana.
Ciao
Enrico
::Ciao,
Avrei bisogno di una macro che dati i seguenti 3 parametri:
1) testo da cercare
2) testo su cui cercare il testo passato come 1 parametro
3) macro da eseguire su tute le occorrenze di #1 trovate in #2Mi servirebbe per mettere in grassetto tutte le occorrenze di una parola all’interno di un testo. L’ottimo sarebbe avere un parametro opzionale che indica su quale N-prime occorrenze applicarlo, tipo solo sulla prima, sulle prime 3, ecc…
Quindi una roba tipo:
\apply{parola}{E’ una parola fare una macro del genere! Come la pesco ‘sta parola? Parola! Parola!}{\textbf}[2]
E mi vengono in grassetto le prime 2 occorrenze di “parola”.
Problema piuttosto complicato: il meccanismo con cui TeX legge l’input non è molto flessibile e tu stai chiedendo parecchio. Per esempio, vuoi la distinzione fra maiuscolo e minuscolo? Ci possono essere lettere accentate? Ci possono essere segni di punteggiatura nel tuo testo?
Non dico che sia impossibile: occorre esaminare il testo un carattere alla volta e paragonare la stringa ottenuta con il campione mettendo da parte ciò che non può funzionare e lavorando su ciò che invece può. Se poi aggiungiamo maiuscole e minuscole, c’è da tremare. 🙂
Direi che una cosa del genere è un lavoro per PerlTeX: Perl è un linguaggio molto più adatto a fare quello che desideri. Se non conosci Perl, studialo. 🙂
In che contesto ti servirebbe questa roba?
Ciao
Enrico
6 Ottobre 2008 alle 21:29 in risposta a: Lettrine non mi genera un capolettera più alto di due righe. #27348::Ciao,
Anch’io avevo un problema simile, alla fine sono passato al pacchetto dropping (http://www.ctan.org/tex-archive/macros/latex/contrib/dropping/) e ho risolto drasticamente il problema! 🙂
Strano. Il pacchetto lettrine è ben mantenuto e ha una versione piuttosto recente (2007/08/08), mentre dropping non è affatto mantenuto e risale al 1998; in più non è nemmeno in TeX Live.
Il caricamento di type1ec risolve il problema quando si usano i font standard; naturalmente occorre avere installato la versione Type1 (con CMSuper). In alternativa si può ricorrere ai font Latin Modern (molto simili a quelli standard).
Le asserzioni “nulla da fare” non ci dicono molto, purtroppo.
Ciao
Enrico
::chiedo venia per gli errori commessi nell’apertura della discussione…la fretta ha preso il sopravvento… 😀
tornando a “noi” ecco qui una delle figure che mi danno noia…
\begin{figure}[H]
\centering
\includegraphics[scale=0.40]{ds1802}
%\caption{Data Sheet access point direzionale a 180°, ulteriori
%informazioni}\label{Data Sheet access point direzionale a 180°,
%ulteriori informazioni}
\end{figure}ebbene si, ci ho messo l’H per mettere le figure in quella precisa posizione.
che problemi mi dà questa cosa?Per esempio quello che hai compilando il tuo documento. Prova a cercare (ricerca avanzata, cerca tutti i termini) “posizione figure” e avrai una bella lista di filoni in cui trovare le spiegazioni che cerchi. La questione è ben trattata anche nella guida di Lorenzo Pantieri.
Ciao
Enrico
::Salve a tutti, sono nuovo di questo forum e spero di riuscire attraverso i vostri consigli a sistemare un paio di problemini che sto avendo con un documento Latex.
Una domanda per messaggio, se si riferiscono a questioni nettamente diverse; è uno di questi casi.
li spiego brevemente:
1) ho allegato numerose immagini (png), con le opzioni \caption e \label. nessun problema fino a che le ultime 6 immagini che sto cercando di allegare al documento non mi consentono di utilizzare i succitati comandi.
anzi, mi viene segnalato un errore che precisa la mancanza di un \endcsname, di cui ignoro assolutamente la natura ed il significato.ho provato svariate volte a metter mano a tali immagini, col risultato che, non so in che occasione, mi ha compilato per una sola volta, dandomi poi nuovamente errore.
pensavo fosse dovuto alla lunghezza del testo del caption e del label, ma pur accorciando non ho risolto il problema…Probabilmente hai specificato tutti gli ambienti figure con [h] o, peggio, con [!h]. Ci sono innumerevoli filoni sul forum che trattano l’argomento.
2) seconda piccola domanda…
il mio documento è un book…ho provato svariate volte altri formati, includendo poi pacchetti come fancyhdr etc, tanto per provare…
il risultato, al momento attuale, è una numerazione che comprende solo le pagine di inizio capitolo, mentre il resto non riporta numeri.
il mio desiderio sarebbe quello (abbastanza classico, credo..) di avere numeri romani per la parte iniziale (indice, elenco figure etc) e poi numeri su tutte le pagine.
come posso agire??Hai pasticciato con le definizioni relative a fancyhdr. Apri un altro filone e metti un esempio (breve) che illustri il problema. (Nota: ho modificato anche l’oggetto del tuo messaggio; discutiamo qui, eventualmente, solo il primo problema.)
Ciao
Enrico
-
AutoreRisposte