使用 csvsimple 时表格中的希腊字符出现问题

使用 csvsimple 时表格中的希腊字符出现问题

你好,这是我写的:

\documentclass{article}
\usepackage{amsmath}
\usepackage{gensymb}
\usepackage[utf8]{inputenc}
\usepackage{csvsimple}
\usepackage{booktabs}
\usepackage{longtable}
\usepackage[T1]{fontenc}

\begin{document}
\csvautotabular{Book2.csv}

\end{document}

这是 csv 文件的内容,我用 excel 制作并用 notepad++ 转换

frequenza ν (Hz),frequenza teorica ν (Hz) ,nodi n
510,537.18,2
760,805.78,3
1010,1074.38,4
1280,1342.97,5
1550,1611.56,6

无法创建 PDF,这是错误消息:

Package gensymb Warning: Not defining \perthousand.
Package gensymb Warning: Not defining \micro.

! Undefined control sequence.
\GenericError  ...                                
                                                    #4  \errhelp \@err@     ...
l.12 \csvautotabular{Book2.csv}

? ^C! Interruption.
\GenericError  ...                              #4
                                                    \errhelp \@err@         ...
l.12 \csvautotabular{Book2.csv}

谢谢您的回答

答案1

可能是字体问题;君主制并且xelatex似乎有效:

\documentclass{article}
\usepackage{fontspec}
\usepackage[greek, italian, english]{babel}
\setmainfont[Mapping=tex-text]{Gentium}
\usepackage{amsmath}
\usepackage{csvsimple}

\begin{document}
\csvautotabular{Book2.csv}
\end{document}

给予

结果表

答案2

对于pdflatex您可以将输入中的 ν 字符映射到$\nu$使用\newunicodecharacter。但是,csvsimple不允许在标题行中使用宏,因为标题值用于创建引用相应列的键。解决方法是禁用创建键的代码。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{csvsimple}
\usepackage{newunicodechar}
% map ν in input to macro
\newunicodechar{ν}{$\nu$}

\makeatletter
% switch off csvsimple column name macros
\def\set@csv@head{\relax}
\makeatother

\begin{document}
\csvautotabular{book2.csv}

\end{document}

结果:

在此处输入图片描述

如果您不想自己定义字符映射,那么您可以使用alphabeta包 - 但请注意,字符看起来有点不同。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{csvsimple}
\usepackage{alphabeta}

\makeatletter
% switch off csvsimple column name macros
\def\set@csv@head{\relax}
\makeatother

\begin{document}
\csvautotabular{book2.csv}

\end{document}

在此处输入图片描述

相关内容