Risposte nei forum create
-
AutoreRisposte
-
19 Novembre 2012 alle 7:16 in risposta a: ArteLaTeX (febbraio 2012) figura 8: bibliografie suddivise #80639::
robitex” post=79928
[quote=”robitex” post=79902][quote=”antonio.macrì” post=79901][tt]start angle[/tt] e [tt]end angle[/tt] sono individuati dai punti in cui la tangente all’ellisse è 45 gradi, aventi coordinate come \(P=(a^2/\sqrt{a^2+b^2},b^2/\sqrt{a^2+b^2})\). L’angolo formato con l’orizzontale (o la verticale, a seconda dei casi) è nella forma \(\alpha=\mathop{\rm atan}(b^2/a^2)\). Ma siccome pgf vuole l’angolo del cerchio che la circoscrive (è come se poi restringesse il cerchio, per tracciare l’ellisse), bisogna fare qualche calcolo: \(\alpha’=\mathop{\rm atan}(b/a)\).
Problemi di calcoli?
Perché non usare LuaLaTeX o LaTeX3…
SalutiCiao Roberto, vorrei chiederti una cosa: è possibile far svolgere dei calcoli a LuaLaTeX in un documento LaTeX? C’è qualche documentazione alla quale posso fare riferimento?
Grazie mille e buona domenica,
Marco.[/quote]
Buona domenica anche a te.
Certo che è possibile, guarda l’esempio di Antonio.
La modalità dipende da quello che ti serve.
Nella primitiva LuaTeX \directlua può essere inserito codice Lua che però prima viene letto da TeX pertanto le macro che contengono numeri vengono completamente espanse e ciò che rimane nel codice sono i dati.
La funzione print o sprint della tabella tex (e quindi eseguibile con la dot notation tex.print() immette token nell’elaborazione sequenziale di TeX).
Così molto semplicemente è possibile fornire a Lua dei dati da TeX e viceversa.
Bisognerà aspettare una buona guida LuaTeX per capire come fare per qualcosa di più sofisticato.
`
\def\x{6.2145245}
\directlua{tex.sprint(\x^2)}
`Leggi anche l’ultimo numero di ArsTeXnica, l’articolo di Agostino De Marco.
Ciao.[/quote]Grazie mille Roberto! Ora cercherò di sfruttare queste informazioni.
Buona giornata, 🙂
Marco.
18 Novembre 2012 alle 11:54 in risposta a: ArteLaTeX (febbraio 2012) figura 8: bibliografie suddivise #80635::robitex” post=79902
[tt]start angle[/tt] e [tt]end angle[/tt] sono individuati dai punti in cui la tangente all’ellisse è 45 gradi, aventi coordinate come \(P=(a^2/\sqrt{a^2+b^2},b^2/\sqrt{a^2+b^2})\). L’angolo formato con l’orizzontale (o la verticale, a seconda dei casi) è nella forma \(\alpha=\mathop{\rm atan}(b^2/a^2)\). Ma siccome pgf vuole l’angolo del cerchio che la circoscrive (è come se poi restringesse il cerchio, per tracciare l’ellisse), bisogna fare qualche calcolo: \(\alpha’=\mathop{\rm atan}(b/a)\).
Problemi di calcoli?
Perché non usare LuaLaTeX o LaTeX3…
SalutiCiao Roberto, vorrei chiederti una cosa: è possibile far svolgere dei calcoli a LuaLaTeX in un documento LaTeX? C’è qualche documentazione alla quale posso fare riferimento?
Grazie mille e buona domenica,
Marco.
15 Novembre 2012 alle 17:18 in risposta a: ArteLaTeX (febbraio 2012) figura 8: bibliografie suddivise #80621::
Ciao,lorenzo.pantieriComplimenti per il tuo codice (di cui non capisco nulla): lo considero un pezzo di bravura, alla pari di quelli che dà spesso Enrico per risolvere problemi specifici: roba per esperti, non per utenti “normali”
In effetti non avrei saputo scrivere il codice scritto da Antonio; almeno non così su due piedi. Comunque ho provato a rifare il suo disegno alla veloce con le mie conoscenze (da non esperto). Ecco il risultato:
`\documentclass[a5paper]{article}\usepackage{tikz}
% Librerie
\usetikzlibrary{automata}
\usetikzlibrary{arrows}
\usetikzlibrary{backgrounds}
\usetikzlibrary{calc}
\usetikzlibrary{hobby}
\usetikzlibrary{intersections}
\usetikzlibrary{mindmap}
\usetikzlibrary{patterns}
\usetikzlibrary{positioning}
\usetikzlibrary{shadows}
\usetikzlibrary{shapes}
\usetikzlibrary{through}
\usetikzlibrary{trees}
% Pacchetti
\usepackage{tkz-euclide}
\usetkzobj{all}\usepackage{lipsum}
\pagestyle{empty}
\begin{document}
\centering
\begin{tikzpicture}[scale=.75]% definizioni e macro
\def\lung{10.5} %larghezza foglio
\def\alt{14.85} %altezza foglio
\def\pieg{2.5}
\def\r{1.1}% coordinate
\coordinate (bs) at (0,0); %punto in basso a sinistra
\coordinate (bd) at ($(bs)+(\lung,0)$); %punto in basso a destra
\coordinate (ad) at ($(bs)+(\lung,\alt)$); %punto in alto a destra
\coordinate (as) at ($(bs)+(0,\alt)$); %punto in alto a sinistra
\coordinate (bad) at ($(ad)+(0,-\pieg)$);
\coordinate (sad) at ($(ad)+(-\pieg,0)$);
\coordinate (bbad) at ($(bad)+(0,-\r)$);
\coordinate (ssad) at ($(sad)+(-\r,0)$);\coordinate (fpa) at ($(bbad)+(-\r,0)+(90:\r)$);
\coordinate (intfpa) at ($(bbad)+(-\r,0)+(45:\r)$);
\coordinate (fsa) at ($(ssad)+(0,-\r)+(0:\r)$);
\coordinate (intfsa) at ($(ssad)+(0,-\r)+(45:\r)$);
\coordinate (spigolo) at (fpa -| fsa);% disegno foglio
\draw [gray!85] (intfpa) — (intfsa);
\draw [gray!85,shade, bottom color=white, top color=cyan!35] (bs) — (bd) — (bbad) arc (0:90:\r) — (spigolo) — (fsa) arc (0:90:\r) — (as) — cycle;% scritta
\draw ($(bs)!.5!(ad)+(-.5,0)$) [text width=4.5cm, align=justify] node {\small \lipsum[3]};\end{tikzpicture}
\end{document}`
Come si può notare il disegno è parametrico e quindi rapidamente modificabile in pochi attimi. Certo, così com’è è proprio da sistemare…Lorenzo, questo non c’entra con [tt]TikZ:[/tt] il disegno della pagina che hai fatto non mi sembra fisicamente del tutto corretto. Infatti “l’angolo piegato” mantiene i suoi lati paralleli a quelli del foglio, ma l’angolo che il tratto inclinato in alto a destra nel disegno definisce non è di 45 gradi…
Ciao e buona serata!
Marco.
::
Ciao scaggydrum,scaggydrumPS: Le regole tipografiche le ho consciamente lasciate da parte … ognuno ha i suoi gusti no?
Non concordo per nulla. 🙂 Le regole tipografiche possono essere violate, ma da chi prima le ha sapute padroneggiare. Altrimenti rischi di fare quello che fa il 99,9% degli utilizzatori di Word Processor: nell’euforia della “libertà” tipografica producono documenti di una qualità vergognosa.
Ciao,
Marco.
::
Ciao grnivan,`\usepackage[autostyle,italian=guillemets,⟨altre opzioni⟩]{csquotes}
\usepackage[bibstyle=⟨…⟩,citestyle=⟨…⟩,backend=bibes]{biblatex}`In queste righe di codice l’espressione [tt]⟨…⟩[/tt] non va usata esplicitamente così com’è: quei puntini sono stati usati per indicarti che devi riempire quel campo (anche le parentesi non compariranno nel codice che poi compilerai). Similmente per l’espressione [tt]⟨altre opzioni⟩.[/tt] Come riempirli? Guarda il relativo capitolo dell’Arte o la documentazione del pacchetto [tt]biblatex.[/tt]
Ciao,
Marco.
::
Ciao Luca,cancella la cartella “C:\Users\luca05\AppData\Local\Temp\par-6c7563613035”, e poi riprova a ricompilare con [tt]biber.[/tt]
Ciao,
Marco.P.S. Purtroppo, ogni tanto, [tt]biber[/tt] dà quel problema. Se noti, non ho fatto altro che dirti di cancellare la cartella che ti viene indicata nella prima riga del log che hai riportato. Basta che copi l’indirizzo della cartella (quello che ho riportato io) e che lo copi nella barra di navigazione di Windows Explorer, e così trovi subito la cartella. Altrimenti cercala seguendo il percorso.
::
Ciao Luca,segui quanto viene indicato al paragrafo 8 (pagina 13) di questa guida di Enrico.
Ciao,
Marco.
::
Ciao,OldClaudioEsiste, e ne ha parlato Enrico in un filone di questo forum non molto tempo fa, un file da usare con XeLaTeX che permette di usare la traslitterazione con i tasti latini basata sui miei font con codifica LGR
Ti riferisci al file “asciitogreek” fornito da Enrico in questa discussione?
O a queste righe di codice (sempre fornite da Enrico):
`\newenvironment{transgreek}
{\catcode`\~=12 \fontencoding{LGR}\fontfamily{porson}\selectfont}
{}`Ciao,
Marco.P.S. Scusate se ho creato confusione. Il mio obiettivo è soltanto quello di essere utile e Dingo, fornendogli, se è quello che Claudio intende, il link del file da lui citato. Magari invece si sta parlando di tutt’altro, e allora mi scuso ancora di più (e magari cancello anche questo messaggio). Buona giornata a tutti comunque!
::
Ciao Alfy88,Alfy88potrebbe farmi uscire di testa 😛
Ma no! 😀 Se nonostante sia un utilizzatore poco esperto di [tt]TikZ[/tt] posso darti un consiglio, procedi per passi:
- Dai una letta al capitolo 2 della documentazione (dove vengono mostrati alcuni comandi base), che trovi con “texdoc tikz”;
- Scorri l’indice per farti un’idea generale di cosa viene spiegato e quindi di cosa può fare [tt]TikZ[/tt] (tenendo conto che ci sono altre librerie che ne estendono le enormi potenzialità);
- Mano a mano che ti viene in mente di fare qualcosa, risolvi quel particolare problema. Così, piano piano, vedrai risolversi diversi problemi e aumentare le tue conoscenze.
Vedrai che in meno tempo di quello che pensi saprai fare già diverse cose! 😉
Ciao e buona giornata,
Marco.
::
Ciao Claudio,ti ringrazio molto. In effetti non pensavo che si potesse far stampare in quel modo il valore contenuto in [tt]\differenza.[/tt] L’errore era dovuto alla precisione con cui il comando [tt]\calcLV[/tt] eseguiva i calcoli (arrotondando a 5 cifre decimali, se non sbaglio). Visto che nel mio caso la precisione di macchina è dell’ordine di 10-16, ho sostituito questa riga di definizione del comando [tt]\calcLV:[/tt]
`\FPround\FPMathLen\FPMathLen5\relax`
con questa:
`\FPround\FPMathLen\FPMathLen17\relax`
In questo modo dovrei avere la massima precisione possibile. Così facendo il valore di [tt]\differenza[/tt] visualizzato è di 0.0, e il codice del mio nuovo comando funziona correttamente.cfiandrabeh.. se utilizzi linux
In realtà no; almeno per ora, sono un “leale” sostenitore e utilizzatore di Windows. Comunque cercherò in altri modi quei file e cercherò di seguire i tuoi consigli.
Grazie mille e buona serata,
Marco.
::
Ciao Enrico,chiedo scusa. Ecco un codice che riproduce il comportamento che ho descritto:
`\documentclass[a4paper,11pt,extrafontsizes,twoside,openright]{memoir}
\usepackage{etex}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[greek,italian]{babel}
\usepackage{microtype}
\pagestyle{empty}
\usepackage{ifthen}\usepackage{xcolor}
\usepackage{tikz}
% Librerie
\usetikzlibrary{automata}
\usetikzlibrary{arrows}
\usetikzlibrary{backgrounds}
\usetikzlibrary{calc}
\usetikzlibrary{hobby}
\usetikzlibrary{intersections}
\usetikzlibrary{patterns}
\usetikzlibrary{positioning}
\usetikzlibrary{shadows}
\usetikzlibrary{shapes}
\usetikzlibrary{through}
% Pacchetti
\usepackage{tkz-euclide}
\usetkzobj{all}% TikZ
%Distanza fra due punti (la lunghezza viene espressa in punti, quindi usare \calcLV pt)
\makeatletter
\def\calcLV(#1,#2)#3{%
\pgfpointdiff{\pgfpointanchor{#1}{center}}%
{\pgfpointanchor{#2}{center}}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\FPeval\@temp@a{\pgfmath@tonumber{\pgf@xa}}%
\FPeval\@temp@b{\pgfmath@tonumber{\pgf@ya}}%
\FPeval\@temp@sum{(\@temp@a*\@temp@a+\@temp@b*\@temp@b)}%
\FProot{\FPMathLen}{\@temp@sum}{2}%
\FPround\FPMathLen\FPMathLen5\relax
\global\expandafter\edef\csname #3\endcsname{\FPMathLen}
}
\makeatother% Distanza fra due punti lungo X (la lunghezza viene espressa in punti, quindi usare \calcLVX pt)
\makeatletter
\def\calcLVX(#1,#2)#3{%
\pgfpointdiff{\pgfpointanchor{#1}{center}}%
{\pgfpointanchor{#2}{center}}%
\pgf@xa=\pgf@x%
\FPeval\@temp@a{\pgfmath@tonumber{\pgf@xa}}%
\FPround\@temp@a\@temp@a5\relax
\global\expandafter\edef\csname #3\endcsname{\@temp@a}
}
\makeatother% Distanza fra due punti lungo Y (la lunghezza viene espressa in punti, quindi usare \calcLVY pt)
\makeatletter
\def\calcLVY(#1,#2)#3{%
\pgfpointdiff{\pgfpointanchor{#1}{center}}%
{\pgfpointanchor{#2}{center}}%
\pgf@ya=\pgf@y%
\FPeval\@temp@a{\pgfmath@tonumber{\pgf@ya}}%
\FPround\@temp@a\@temp@a5\relax
\global\expandafter\edef\csname #3\endcsname{\@temp@a}
}
\makeatother% MIO NUOVO COMMANDO
\newcommand{\my}[4]{%
\coordinate (medio) at ($(#1)!.5!(#2)$);
\calcLV(#1,medio){dist}
\coordinate (o) at (0,0);
\coordinate (temp) at (#3,0);
\calcLV(o,temp){rag}
\pgfmathsetmacro{\differenza}{\dist-\rag}
%
\ifdim \differenza pt = 0 pt
\def\abc{2}
\else
\def\abc{3}
\fi
}\begin{document}
\begin{tikzpicture}[scale=1]
\draw [help lines] (0,0) grid (3,3);
\coordinate [label={270:\tiny $O$}] (or) at (0,0);
\coordinate [label={270:\tiny $A$}] (a) at (50:2);
\coordinate [label={270:\tiny $B$}] (b) at (50+180:2);\my{a}{b}{2}{}
\fill [black] (a) circle (1.5pt);
\fill [black] (b) circle (1.5pt);
\fill [cyan] (\abc,\abc) circle (2pt);\end{tikzpicture}
\end{document}`
Nel comando [tt]\my[/tt] quello che faccio (cerco di fare) per ora è eseguire questo:- Dati due punti, ne creo uno posto esattamente al centro;
- Misuro la distanza che c’è tra questo e uno dei due punti forniti in ingresso;
- Converto il raggio inserito in ingresso in pt (sull’efficienza del mio codice credo che ci sia molto da dire);
- Calcolo la differenza che c’è tra queste due distanze;
- A seconda del valore di questa differenza eseguo un codice o un altro.
Nell’esempio che ho riportato [tt]\differenza[/tt] dovrebbe essere nulla, di conseguenza [tt]\abc[/tt] dovrebbe essere pari a [tt]2,[/tt] e quindi il punto azzurro dovrebbe avere coordinate [tt](2,2),[/tt] ma non è così. Cosa sbaglio?
Grazie e buona giornata,
Marco.
::
Ciao Enrico,egreg9Immagino che [tt]\differenza[/tt] contenga una dimensione in punti;
A dire il vero non ne sono sicuro. Il comando [tt]\calcLV[/tt] mostrato nella discussione di cui ho fornito il link nel mio messaggio precedente, determina la distanza fra due punti. Il risultato è fornito in pt, ma non so se si porti dietro anche l’unità di misura; in merito sono parecchio ignorante. 🙁
Se scrivo:
`\ifdim\differenza = 0pt
…
\else
…
\fi`
mi viene dato il seguente errore:Illegal unit of measure (pt inserted).
= Se invece scrivo:
`\ifdim\differenza pt = 0pt
…
\else
…
\fi`
l’errore scompare, ma il comportamento del codice mostra che quell’uguaglianza non viene verificata correttamente.Grazie e buona serata,
Marco.
::
Ciao Alfy88,un’alternativa è quella di usare il pacchetto [tt]overpic,[/tt] la cui documentazione consiste in una pagina (la trovi digitando sul terminale “texdoc opic-rel”). Naturalmente gli strumenti descritti nell’articolo che ti ha indicato Lorenzo sono ben più sofisticati e potenti; comunque puoi tener conto di questa alternativa. Personalmente userei [tt]TikZ,[/tt] comunque…
Ciao,
Marco.
-
AutoreRisposte