Risposte nei forum create
-
AutoreRisposte
-
::
La guida è proprio quella che ho seguito per “creare” questo file (ho praticamente scopiazzato una sezione che trattava proprio questo argomento :D). Comunque grazie per la tua disponibilità, sei stato chiaro. Mi sono confuso perché partivo da un’ottica sbagliata, più da programmi come pascal e simili.Effettivamente ho inserito un richiamo in ogni file al preambolo comune “Pacchetto.tex”. Proverò a cercare come creare un file di formato. In questo modo evito che il programma pdflatex ricarichi tutte le volte i pacchetti? (Scusa se ti assillo, ma voglio avere ben chiaro cosa posso fare e sopratutto capire cosa fanno i vari comandi per usarli al meglio) 8)
::
Anzitutto grazie per la tua tempestiva risposta. Ora, io ho modificato il file come hai detto tu, ma, dopo una compilazione, in cui mi ha saltato alcuni file (gli unici due di cui non ho ancora prodotto un pdf), mi restituisce il messaggio
`
make: *** Nessuna regola per generare l'obiettivo “10.pdf”, necessario per “zzz.PDF”. Arresto.
`
se tento ulteriormente di compilare.
Non capisco perché si arresta. Non dovrebbe ignorare il file se questo soddisfa le condizioni? Grazie per la tua pazienza. Di seguito riporto il codice corretto con i tuoi consigli.
`
MAIN = zzz
MAIN_TEX = $(MAIN).tex
CAP_TEX = $(wildcard Capitoli/*.tex)
MAIN_PDF = $(MAIN).PDF
IMG_DIR = tikz
IMG_TIKZ = $(wildcard $(IMG_DIR)/*.tikz)
IMG_PDF = $(patsubst tikz/%.tikz, %.pdf , $(IMG_TIKZ))
FILE_CLEAN = *.aux *.log *.bbl *.blg *.dvi *.gz *.out *.toc *.auxlock.PHONY: pdf clean
pdf: $(MAIN_PDF)
$(MAIN_PDF): $(MAIN_TEX) $(CAP_TEX) $(IMG_PDF)
pdflatex -interaction=nonstopmode $(MAIN_TEX); pdflatex -interaction=nonstopmode $(MAIN_TEX); pdflatex -interaction=nonstopmode -synctex=1 $(MAIN_TEX)$(IMG_DIR)/%.pdf: $(IMG_DIR)/%.tikz $(IMG_DIR)/Pacchetti.tex
cd $(IMG_DIR); pdflatex $(shell basename $<); rm -f $(FILE_CLEAN) clean: rm -f $(FILE_CLEAN) `::
Il comando che ti ho passato, messo nel comando \subfloat dà errore anche a me (dice che \filename non è definito). Si corregge riscrivendo \def come \gdef rendendo la definizione globale. Ma anche così, persiste il problema che viene stampato solo il nome dell’ultimo file caricato. Non so proprio come aiutarti. 😀
::
Ho provato con l’ambiente subfig e il comando subfloat a compilare e dà errore anche a me (dice che \filename non è definito). L’errore si correggere sostituendo il comando \def con \gdef che rende la definizione globale. Così scritto però, viene stampato solo il nome dell’ultimo file che hai aggiunto. Non riesco ad ottenere niente che inglobi più nomi (ogni nuovo comando \includegraphics il comando \filename si definisce nuovamente con il nuovo valore).
::
Devi scrivere la molecola di fianco alla freccia tra parentesi graffe, così
`
\arrow{<=>[*{0}{\chemfig[][scale=.55]{…….}}]}
`
in modo che ogni parentesi aperta sia anche chiusa. Per le parentesi troppo spesse, devo ancora lavorarci. 😀EDIT: Mi spiace, ma non riesco a rendere le parentesi sottili. Dovrai pazientare e aspettare qualcuno più esperto di me.
::
Devo correggere un errore nel codice precedente. Mi sono accorto che non funziona se elimini le parentesi quadre dell’argomento facoltativo. Scrivendolo in questa forma, invece, funziona sia con argomenti facoltativi che senza.
`
\newcommand{\saveinclude}{}
\let\saveinclude\includegraphics
\renewcommand{\includegraphics}[2][]{\def\filename{{\ttfamily#2 }}\saveinclude[#1]{#2}}
`
Spero che questo codice non ti dia errori 😀
::
Il problema del codice che ti hanno passato, da quello che leggo sul sito inglese e da quel poco che capisco :D, e che ridefinisce il comando \includegraphics con un solo comando obbligatorio, eliminando il comando facoltativo. Modificando di poco il codice proposto ottengo
`
\let\saveinclude\includegraphics
\def\includegraphics[#1]#2{\def\filename{{\ttfamily#2 }}\saveinclude[#1]{#2}
`
che non mi dà alcun errore permettendomi di utilizzare le opzioni facoltative. Prova a vedere se funziona.Il comando \saveinclude non necessita alcun pacchetto perché lo stai definendo proprio tu. Potresti anche chiamarlo \pippo, il risultato non cambia. Utilizzando \let passi al definizione di \includegraphics a \saveinclude permettendoti di ridefinirlo. Se lo ridefinissi direttamente con \def\includegraphics#1{\includegraphics{#1}} o forme simili ti darebbe un errore errore (il perché cercatelo nelle guide dove spiegano il codice di basso livello 😉 se ti interessano). In questo modo ridefinisci \includegraphics partendo dallo stesso comando, aggiungendoci quello che ti serve (ossia nel tuo caso estrapoli il nome del file e lo stampi nella caption o dove ti serve).
14 Agosto 2013 alle 19:25 in risposta a: Voglio avere font diversi per scopi diversi, come fare? #88071::
Il problema è che utilizzare font differenti comporta dei rischi, essendo che possono essere di dimensioni diverse e quindi una volta compilati il risultato è sgradevole. Bisogna operare quindi per ridimensionar i font troppo grandi rispetto il resto e questo richiede una buona conoscenza delle norme tipografiche.Detto questo, il mio consiglio è di utilizzare pacchetti in cui tutto ciò è già stato fatto da chi se ne intende, come ad esempio txfonts oppure pxfonts. Ne esistono altri, di cui non mi ricordo il nome, ma con un po’ di ricerca dovresti trovarne uno che la cui resa ti aggrada.
::
Sto assemblando insieme delle vecchie dispense di una mia professoressa per studiarle e intanto studiare vari comandi. Per cui cerco di seguirne il più possibile i contenuti. Infatti queste dispense (una decina di capitoli) hanno solo “Capitolo 1, Capitolo 2, ….” come titoli dei capitoli.Al massimo a lavoro terminato apporrò ai vari capitoli un nome. Grazie comunque per i vostri consigli, con il senno di poi la cosa che ho scritto sopra è proprio stupida 😀
::
Devi togliere le parentesi che circondano lo stagno. In questo modo si corregge automaticamente la disposizione dei legami. DI seguito il codice corretto che a me dà delle molecole corrette.
`
\schemestart
\chemfig[][scale=0.75]{[:30]O*6(-(-CH_3)-(=O)-O-(-CH_3)-(=O)-)}\arrow{<=>[\tiny R-OH][\tiny Sn(Oct)$_2$]}[0]
\chemfig[][scale=0.75]{[:30]O*6(-(-CH_3)-(=O-[1,,,,dash pattern=on 2pt off 2pt]Sn(-Oct_2)-[2,,,,dash pattern=on 2pt off 2pt]O(-[:180]H)(-[:90]R))-O-(-CH_3)-(=O)-)}
\arrow{<=>}[-90]
\chemfig[][scale=0.75]{[:30]O*6(-(-CH_3)-(=O-[1,,,,dash pattern=on 2pt off 2pt]Sn(-Oct_2)-[2,,,,dash pattern=on 2pt off 2pt]O(-[:180]H?[a])(-[:90]R))-O?[a,1,{dash pattern=on 2pt off 2pt}]-(-CH_3)-(=O)-)}
\arrow{<=>}[180]
\chemfig[][scale=0.75]{[:30]O*8(-(-CH_3)-(-OR)=O-[,,,,dash pattern=on 2pt off 2pt]Sn(-Oct_2)-[,,,,dash pattern=on 2pt off 2pt]O(-[,,,,dash pattern=on 2pt off 2pt]H)-(-CH_3)-(=O)-)} \arrow{<=>}[-90]
\chemfig[][scale=0.75]{RO-[:30]([:90]=O)-[:-30](-[:-90]CH_3)-[:30]O-[:-30](=[:-90]O)-[:30](-[:90]CH_3)-[:-30]O(-[:30]H)(-[6,,,,dash pattern=on 2pt off 2pt]Sn(-Oct_2))}
\schemestop
`
Penso che mettendo lo stagno tra due parentesi tonde il pacchetto non lo consideri come l’atomo in quel punto, ma come un sostituente legato a quell’atomo, e quindi disegna i legami come se non avessi scritto niente. Poi appone lo stagno come sostituente, ma dato che non hai scritto alcun legame, lo stampa subito sopra all’atomo di cui è sostituente. Per cui fai attenzione a non mettere troppe tonde non necessarie. 😉
::
Chiedo scusa, ho dimenticato di precisare che tutto quello che ho scritto è legato al pacchetto chemfig già citato da robitex. Se hai dei dubbi su tale pacchetto chiedi pure, sono disponibile per chiarirteli ;D. Dall’esperienza personale lo trovo molto comodo sia per disegni di molecole, sia per scrivere reazioni.
@robitex: Va bene anche così. Sceglierà poi lui quale codice trova più comodo. 😀
::
Per le parentesi ti conviene definire un nuovo comando nel seguente modo:
`
\newcommand\delim[2]{\def\delimleft{#1}\def\delimright{#2}}
\def\pa[#1,#2]#3#4#5{%
\chemmove{%
\node[at=(#4),yshift=(#1),anchor=center]
{$\left\delimleft\vrule height#2 depth#2
width0pt\right.$};%
\node[at=(#5),yshift=(#1)]
{$\left.\vrule height#2 depth#2
width0pt\right\delimright_{#3}$};}}
`
Per scrivere le parentesi ti basta prima dare il comando \delim seguito dalle parentesi che ti interessano (tonde, quadre o graffe), poi dai il comando \pa[1,2]{3}{4}{5} dove 1 indica di quanto sono sollevate le parentesi rispetto il legame, 2 indica la dimensione raddoppiata delle parentesi, 3 indica il termine che verrà messo a pedice, 4 e 5 sono i nomi dei nodi che avrai posto in precedenza sui legami che ti interessano. Per i legami espansi, scrivi il legame così -[, ], in cui al posto di poni un numero per cui verrà moltiplicata la lunghezza del legame (nel tuo caso un numero maggiore di 1). Gioca un po’ con il numero e vedi la dimensione che ti aggrada. Logicamente tutto quello che ti ho scritto sopra è presente nel manuale del pacchetto con relative spiegazioni, a cui ti rimando per approfondimenti.
Spero di essere stato chiaro :D. Benvenuto sul blog.
Ciao,
Marco
-
AutoreRisposte