我在从 .csv 数据库读取行时遇到问题。每个键都用逗号分隔。因此,这是我的 .csv:
id,term,description
1,"system","name"
2,"syst2","description system"
3,"syst3","no name"
这是我放置它的表格(我将其设为 MVE):
\documentclass{article}
%\documentclass{ICD}
\usepackage[T2A,T1]{fontenc}
%\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{multicol}
\usepackage[russian,english]{babel}
%\usepackage[russian]{babel}
\usepackage{multirow} %для таблиц со слиянием столбцов и строк
\usepackage{amsthm}
\usepackage{array} %для таблиц с заданной шириной столбца
\usepackage{float}
\usepackage[table]{xcolor}
\usepackage{filecontents}
\usepackage{hyperref}
\usepackage{datatool} %для работы с базами данных
\begin{document}
\newpage
\DTLloaddb{myDB}{terms.csv} %работа с базой данных
\begin{DTLenvforeach}{myDB}{\id=id,\Ter=term,\desc=description}
\vspace{\fill}
\end{DTLenvforeach}
\section{Термины, определения и сокращения }
\begin{table}[!ht]
\centering
\begin{tabular}{|c|c|c|}
no& Термин/сокращение & Описание, расшифровка \\
\hline
\id & \emph{\T} & \emph{\TA} \\
\hline
% 2 & \emph{\TB} & \emph{\TC} \\
\id&\emph{\Ter} & \emph{\desc}\\
\hline
% 3 & \emph{\TD} & \emph{\TE} \\
2&\emph{\Ter} & \emph{\desc}\\
\hline
4 & \emph{\TF} & \emph{\TG} \\
\hline
5 & \emph{\Th} & \emph{\TI}\\
\hline
\end{tabular}
%\caption{Caption}
\label{tab:my_label}
\end{table}
\end{document}
\endinput
答案1
取决于 CSV 文件的复杂程度。对于像您问题中的简单 csv 文件,使用包csvsimple-l3
是最简单的方法。请参见以下示例。
\documentclass[border=1cm]{standalone}
\usepackage{csvsimple-l3}
\begin{filecontents*}[overwrite]{sample.csv}
id,term,description
1,``system'',``name''
2,``syst2'',``description system''
3,``syst3'',``no name''
\end{filecontents*}
\begin{document}
\csvautotabular{sample.csv}
\end{document}
它生成:
请注意,我已将普通的引文(即,Here is some "text".
使用 LaTeX 友好的引文)更改为,即,Here is some ``text''.