robitex” post=81846Ciao,
l’idea è quella di implemetare una nuova shape per disegnare un barcode secondo un dato formato.
Una shape è gestita da PGF tramite i noti punti di ancoraggio.
Il problema nel caso del barcode è che il disegno della forma non dipende dalle dimensioni del testo del nodo, ma dal testo stesso.
Secondo voi è possibile rintracciare la macro dove pgf memorizza il testo del nodo per processarla?
Il manuale al capitolo “Nodes and Shapes” non fa cenno alla cosa.
Forse non è possibile.Il codice che crea una forma rettangolare al cui interno trova posto il barcode, è il seguente (manca della parte di disegno):
`\pgfdeclareshape{barcode}{%
\savedanchor{\centerpoint}{
\pgf@y=.5\pgfbc@h
\pgf@x=.5\pgfbc@x
}
\savedanchor{\upperrightcorner}{
\pgf@y=\pgfbc@h
\pgf@x=\pgfbc@x
}
\anchor{north east}{\upperrightcorner}
\anchor{center}{\centerpoint}
\foregroundpath{… elaborazione del testo per la produzione del barcode…}
}`Utilizzo delle dimensioni TeX variabili a seconda del codice del barcode.
Dispongo già del codice pgf per disegnare il barcode (nel formato code39) a partire dal testo.
Semmai si potrebbe pensare di scrivere un articolo (breve) per il prossimo numero di Ars se qualcuno è interessato.
Grazie mille.
R.
Dovrebbe essere [tt]\pgfnodeparttextbox[/tt]. Onestamente però non ne sono sicuro al 100%. Ho controllato in [tt]tikz.code.tex[/tt] e in un certo senso viene confermata la mia impressione vedendo che la macro è usata in [tt]\tikz@do@fig[/tt] (e quindi seguendo il filo in [tt]\tikz@fig@collectresetcolor[/tt] -> [tt]\tikz@fig@boxdone[/tt] ed infine [tt]\tikz@fig@continue[/tt] – è proprio questa definizione finale quella chiave che mi conferma l’impressione). Vedendo poi l’uso di [tt]\pgfmultipartnode[/tt] e andando nel manuale a pagina 619 c’è un esempio decisamente interessante.
Sono curioso di vedere poi il codice dell’applicazione 😉
Ciao
Claudio