![](https://secure.gravatar.com/avatar/ed6f43113e3f1cee031ebd13654fc703.jpg?s=120&d=mm&r=g)
On 8/17/2023 3:50 AM, Andres Conrado Montoya wrote:
Hello List.
I've been trying to typeset a somewhat complex list of authors for several articles and a book. My proof of concept seems to work fine, however, I know I am doing weird things that I think could probably be done in a better way. I'm using datasets and a recursion, kind of hacky but I can't find a better way of handling it. Specifically I would like to know: 1. Is there a way of getting the length of a filled dataset? (how many entries it contains) 2. Is it OK to use \startuserdata \stopuserdata without its inlineuserdata? Is there an alternative that does not require inlineuserdata?
Weird is relative. Just use what you like most. One could for instance use the publication mechanism but you need to set up a bit more (see manual for example of usa as database). Now datasets. It is not hard to add a size query so I added that. Your data is missins commas so let's fix that first \definedataset[autores] \setdataset[autores] [ nombre={Angie Natalia Farfán Acevedo}, cvlac={https://scienti.minciencias.gov.co/cvlac/visualizador/generarCurriculoCv.do?cod_rh=0002125949}, orcid={https://orcid.org/0009-0007-0765-4241}, gscholar={https://scholar.google.com/citations?user=GpYTTU0AAAAJ&hl=es&authuser=1}, ] \setdataset[autores] [ nombre={Ivon Andrea Rodríguez Román}, cvlac={https://scienti.minciencias.gov.co/cvlac/visualizador/generarCurriculoCv.do?cod_rh=0000027033}, orcid={https://orcid.org/0009-0001-1183-6829}, gscholar={https://scholar.google.com/citations?user=iz8SQNcAAAAJ&hl=es}, ] \setdataset[autores] [ nombre={Angie Caterin Garzón González}, cvlac={https://scienti.minciencias.gov.co/cvlac/visualizador/generarCurriculoCv.do?cod_rh=0002128501}, orcid={https://orcid.org/0009-0009-0990-6902}, gscholar={https://scholar.google.com/citations?view_op=list_works&hl=es&user=5WqcOeEAAAAJ}, ] \setdataset[autores] [ nombre={Heidy Paola Veira Tenorio}, cvlac={https://scienti.minciencias.gov.co/cvlac/visualizador/generarCurriculoCv.do?cod_rh=0002127550}, orcid={https://orcid.org/0009-0008-4076-7317}, gscholar={https://scholar.google.es/citations?view_op=new_profile&hl=es&authuser=1}, ] \setdataset[autores] [ nombre={Yerly Lorena Diaz Aldana}, cvlac={https://scienti.minciencias.gov.co/cvlac/visualizador/generarCurriculoCv.do?cod_rh=0002127754}, orcid={https://orcid.org/0009-0008-1720-4057}, gscholar={https://scholar.google.com/citations?hl=es&user=0obyCwkAAAAJ&view_op=list_works&gmla=AOV7GLPWRTK-xooHNe0iQ3uubfcSbG__GY_Guy35FdaqDJA3OfLLtp01-E1kzjxUhltlsfj494MaoQFkk9U9hCFYSipoR8aX0Vu2E6sV}, ] There is no need to use userdata as intermediate: % \startsetups[userdata:idautor] % \dontleavehmode % \imghref % {\externalfigure[cvlac.pdf][logo]} % {\datasetvariable{autores}{\recurselevel}{vclac}} % \quad % \imghref % {\externalfigure[orcid.pdf][logo]} % {\datasetvariable{autores}{\recurselevel}{orcid}} % \quad % \imghref % {\externalfigure[gscholar.pdf][logo]} % {\datasetvariable{autores}{\recurselevel}{nombre}} % \quad % \datasetvariable{autores}{\recurselevel}{nombre}\par % \stopsetups Just loop over the set and call up the variables in the setup: % \startdocument % \dorecurse{\datasetsize{autores}}{ % \setups[userdata:idautor] % } % \stopdocument However, i can provide a processor: % \startsetups[userdata:idautor] % \dontleavehmode % \imghref % {\externalfigure[cvlac.pdf][logo]} % {\datasetvariable{autores}{\datasetindex}{vclac}} % \quad % \imghref % {\externalfigure[orcid.pdf][logo]} % {\datasetvariable{autores}{\datasetindex}{orcid}} % \quad % \imghref % {\externalfigure[gscholar.pdf][logo]} % {\datasetvariable{autores}{\datasetindex}{nombre}} % \quad % \datasetvariable{autores}{\datasetindex}{nombre}\par % \stopsetups As we know what dataset we process: \startsetups[userdata:idautor] \dontleavehmode \imghref {\externalfigure[cvlac.pdf][logo]} {\datasetentry{vclac}} \quad \imghref {\externalfigure[orcid.pdf][logo]} {\datasetentry{orcid}} \quad \imghref {\externalfigure[gscholar.pdf][logo]} {\datasetentry{nombre}} \quad \datasetentry{nombre} \par \stopsetups We then end up with: \startdocument \processdataset[autores][userdata:idautor] \stopdocument I'll mail you the patch. Copy it to the right place and remake the format. Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------