我有下表:
ID,Ln,La,N$_{I}$,Period$_{I}$,$\sigma_{I}$
4,05:18:11.71,-00:01:35.7,13,45,3.56,1e-4
....
我正在尝试使用以下代码创建表:
\documentclass[preprint,10pt]{aastex}
\usepackage[utf8]{inputenc}
\usepackage{caption}
\usepackage{graphicx}
\usepackage{subcaption}
\usepackage{csvsimple,longtable,booktabs}
\usepackage{pdflscape}
\usepackage{afterpage}
\usepackage{pgffor}
\usepackage{float}
\usepackage{amsmath}
\usepackage[scientific-notation=true]{siunitx}
\usepackage{lscape}
\usepackage{csvsimple}
\citestyle{aa}
\usepackage[normalem]{ulem}
\usepackage{color}
\newcommand{\kgsins}[1]{\textcolor{blue}{#1}}
\newcommand{\kgsdel}[1]{\textcolor{red}{\sout{#1}}}
\begin{document}
\label{section:apptable}
{\setlength\tabcolsep{2.5pt}
\begin{flushleft}
\begin{flushleft}
\begin{landscape}
\small
\csvautolongtable[
table head=\caption{some table}\\\hline
\csvlinetotablerow\\\hline
\endfirsthead\hline
\csvlinetotablerow\\\hline
\endhead\hline
\endfoot]{table_v15demo.csv}
\end{landscape}
\end{flushleft}
\end{flushleft}
\end{document}
当我编写时,代码可以正常编译sigma$_{I}$
,但是当我编写时无法编译,$\sigma_{I}$
而是出现以下错误:
缺少插入的 \endcsname。\sigma l.711 \endfoot]{table_v15demo.csv}
标记的控制序列不应该出现在 \csname 和 \endcsname 之间。
答案1
这个问题与 amsmath 无关,如果你做了一个简单的例子,你就会注意到这一点,例如
\documentclass{article}
\usepackage{csvsimple,longtable}
\begin{document}
\csvautolongtable[
table head=\caption{some table}\\\hline
\csvlinetotablerow\\\hline
\endfirsthead\hline
\csvlinetotablerow\\\hline
\endhead\hline
\endfoot]{table_v15demo.csv}
\end{document}
问题在于,你正在根据第一行的内容为标题创建内部宏名称,如果那里有不可扩展的命令,则无法正常工作。一种可能性是
\documentclass{article}
\usepackage{csvsimple,longtable}
\def\xsigma{\ifmmode\sigma\else\string\sigma\fi}
\begin{document}
\csvautolongtable[
table head=\caption{some table}\\\hline
\csvlinetotablerow\\\hline
\endfirsthead\hline
\csvlinetotablerow\\\hline
\endhead\hline
\endfoot]{table_v15demo.csv}
\end{document}
用于在未排版时\string
保证安全。\sigma
那么 csv 文件将是
ID,Ln,La,N$_{I}$,Period$_{I}$,$\xsigma_{I}$
4,05:18:11.71,-00:01:35.7,13,45,3.56,1e-4