Mantén la atención ya que en esta sección hallarás la respuesta que buscas.
Solución:
No es una respuesta directa, pero recomendaría la pgfplotstable
para tales tareas. Es bastante completo y las operaciones con archivos son muy convenientes. Puede parecer una exageración para esta pregunta específica, pero a medida que las tareas se vuelven más complicadas, revela su true potencial.
documentclassarticle
usepackagepgfplotstable,filecontents,booktabs
% Make csv in question
beginfilecontents*scientists2.csv
name,surname
Albert,Einstein
Marie,Curie
Thomas,Edison
endfilecontents*
pgfplotstableread[col sep=comma]scientists2.csvmytable
begindocument
begincenter
pgfplotstabletypeset[
string type,
columns/name/.style=column name=Name,
columns/surname/.style=column name=Surname,
% Row/column numbering starts from zero
every row 1 column 1/.style=postproc cell content/.style=@cell content=textbf##1,
every head row/.style=before row=toprule,after row=midrule,
every last row/.style=after row=toprule,
]mytable
endcenter
enddocument
También puedes hacer esto con el datatool
paquete:
Notas:
- usé el
xstring
paquete paraIfStrEq
.
Código:
documentclassarticle
usepackagedatatool
usepackagebooktabs
usepackagexstring
usepackagexcolor
% Make csv in question
%usepackagefilecontents
beginfilecontents*scientists2.csv
name,surname,
Albert,Einstein,
Marie,Curie,
Thomas,Edison,
endfilecontents*
newcommand*FormatCell[1]%
IfStrEq#1Curietextcolorred#1#1%
%
begindocument
DTLloaddb[keys=Name,Surname]myDBscientists2.csv
bigskip
begintabularl ltoprule
textbfFirst Name & textbfLast Name\cmidrule1-2
DTLforeach*myDBName=Name,Surname=Surname%
Name & FormatCellSurname \
%
endtabular
enddocument
csvsimple versión 1.06 lanzado el 2012-11-08 hace exactamente lo que quieres. El siguiente código es su MWE original, siendo la única modificación textbfCurie
en vez de Curie
dentro del entorno de contenido del archivo.
documentclassarticle
usepackagecsvsimple % requires csvsimple version 1.06 released 2012-11-08
% Make csv in question
beginfilecontents*scientists2.csv
name,surname
Albert,Einstein
Marie,textbfCurie
Thomas,Edison
endfilecontents*
begindocument
begincenter
csvreader[tabular=|l|l|,
table head=hline textbf First Name & textbfLast Nmae \hline,
late after line = \hline]%
scientists2.csvname=name,surname=surname%
name & surname%
endcenter
enddocument
También vale la pena consultar la nueva sección “Código de macro dentro de los datos” en la documentación (p.21). El siguiente código ha sido tomado directamente de esta sección.
documentclassscrreprt
usepackagetikz,csvsimple,filecontents
begindocument
%-- file embedded for simplicity --
beginfilecontents*macrodata.csv
type,description,content
M,A nice textbfformula, $displaystyle intfrac1x = ln|x|+c$
G,A textcolorredcolored ball, tikz shadedraw [shading=ball] (0,0) circle (.5cm);
M,textbfAnother formula, $displaystyle limlimits_ntoinfty frac1n=0$
endfilecontents*
%-- end embedded file --
csvautotabularmacrodata.csv
csvstylemy enumeratehead to column names
beginenumerate
csvreader[my enumerate]macrodata.csvitem description:parcontent
endenumerate
Now, formulas only:
beginenumerate
csvreader[my enumerate,filter equal=typeM]macrodata.csv%
item description:qquadcontent
endenumerate
enddocument
“Mega cool”, como dirían mis hijos :-).