1

I'm trying to import a .CSV file generated with excel that contais special characters as á, é, í, ó, ú. I'm using \DTLloadrawdb, but these characters still don't show. What is the magic trick to do this? My code:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage[version=4]{mhchem}
\usepackage[listings]{tcolorbox}
\usepackage{natbib}
\bibliographystyle{plainnat}
\usepackage{gensymb}
\usepackage{tabularx}
\usepackage{enumitem}
\usepackage{xifthen}
%\usepackage[brazilian]{babel}/


\usepackage{datatool}
\DTLrawmap{á}{\'{a}}
\DTLrawmap{é}{\'{e}}
\DTLrawmap{í}{\'{i}}
\DTLrawmap{ó}{\'{o}}
\DTLrawmap{ú}{\'{u}}
\DTLsetseparator{;}
\DTLloadrawdb{produtosAloe}{../EstudoMercado.csv}
\DTLsetseparator{,}
\DTLloadrawdb{produtosValor}{../../Planilhas/prod.csv}
\title{Estudo de mercado}
\author{Glauco Goebel Tirollo}
\date{09 de Novembro de 2017}
\newcommand{\av}{\textit{Aloe Vera}}
\begin{document}

\maketitle
\newpage



\input{EstudoMercado.tex}



\end{document}

And, if useful, my csv:

Company;Address;Description;Products;Website Natier;Buenos Aires,    
Argentina;A Natier é uma empresa de produtos naturais, entre eles a babosa. A empresa possui uma variedade   muito grande de produtos, com loja online e pontos físicos espalhados pela argentina.;Liofilizado;https://www.tiendanatier.com.ar aloe explotaciones;Andalucía, Espanha;Grupo dedicado ao cultivo e produção de Aloe Vera ecol\'{o}gico e seus derivados. Seus produtos   seguem os padrões de qualidade ditados pela União Européia. ;Plantas, folhas, gel, suco e liofilizados.;aloeexplotaciones.com Alibaba;China;Website chinês de busca de fornecedores.;Aloe Vera liofilizada em p\'{o};https://spanish.alibaba.com Veracetis;Madrid, Espanha;Veracetis é uma empresa de base tecnol\'{o}gica, surgida na Universidade de Alcalá, e apresenta um  novo conceito de produtos de consumos obtidos a partir de extratos vegetais bem como a  aplicação  destes extratos em diversos setores.  Possuem produção totalmente nacional, e é a primeira empresa europeia com registro sanitário e registro de agricultura ecol\'{o}gica.  Possui um forte centro de PD&I, que possui mais de 20 anos de experiência.;Suco, \'{o}leo, extrato seco, azeite, cápsulas, etc.;http://www.veracetics.es The body shop;mundial;Empresa originalmente britânica, atualmente possui 160 lojas espalhadas por todo o mundo.  Possui uma gama enorme de produtos na área de saúde, higiene e bem estar. ;Tônico calmante facial, Creme hidratante, espuma de limpeza facial, loção, sabão, creme de barbear, creme p\'{o}s barba, chá de banho, esfoliantes, entre outros produtos.;https://www.thebodyshop.com The face shop;Coréia;Empresa originalmente coreana, atualmente possui mais de 2600 lojas em 29 países ao redor do   mundo. Possuem uma grande variedade de artigos de beleza baseados em principios ativos de plantas.;Sabonete líquido, máscara facial, gel calmante. ;https://thefaceshop.ca/ Neutrogena;Los Angeles, Calif\'{o}rnia, EUA;neutrogena é uma marca norte-americana que inclui produtos faciais, para a pele, para os cabelos e   colorações. Em 1994, foi comprada pela Johnson & Johnson. Seus produtos são vendidos internacionalmente.;Gel para acne, ;www.neutrogena.com.br Forever living;Madrid, Espanha;A FOREVER é a maior plantadora, processadora e distribuidora de Aloe Vera do mundo! ;Protetor Solar;foreverliving.com`
3

\DTLloadrawdb is intended for CSV files that have been generated by a non-TeX aware tool that doesn't escape special characters (& # etc, but not \). The command locally redefines those characters so that they expand to literal rather than active characters so they don't cause a problem. This expansion means that if the CSV file also contains control sequences or other active characters, then fragile stuff can break. Version 2.29 of datatool now uses \protected@xdef rather than \xdef in \DTLloadrawdb, but if your CSV file contains LaTeX control sequences, then you shouldn't be using \DTLloadrawdb (because it's not raw non-TeX data).

If your CSV file doesn't contain & etc intended in a literal context then always use \DTLloaddb which doesn't perform any expansion. If the CSV file contains non-ASCII characters just make sure that the encoding is correctly set in the document before loading the data:

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{datatool}

\DTLsetseparator{;}
\DTLloaddb{produtosAloe}{../EstudoMercado.csv}

The problem with your CSV file is that it contains a mixture of UTF-8 (é), literal special characters (&) and control sequences (\'{o}). You need to be consistent: if you use LaTeX markup then escape the special characters (change PD&I to PD\&I etc) or if you can't escape special characters then don't use LaTeX markup (change ecol\'{o}gico to ecológico). The first (escaping special characters) is the better method. For the second, make sure you have at least v2.29 which will protect the expansion of the active UTF-8 octets.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.