梅威瑟:

梅威瑟:

我有以下 csv 文件(我的CSV文件.csv) 包含带有 LaTeX 代码的标题:

$T_{1,2}$, $T_{3}$
100, 300
200, 500

在我的 LaTeX 文档中,我使用 导入该表格\pgfplotstabletypeset[col sep=comma,row sep=newline]{myCSVfile.csv}

它运行良好,但我的 csv 文件不能让我满意,因为有些逗号是注释列分隔符,但只是标题中数学表达式中的字符,如下所示:$T_{1,2}$

我有一个本机命令,它只在数学模式下打印逗号,例如:$T_{1\comma{}2}$而不是$T_{1,2}$在 pdf 中输出几乎相同的内容?. 在文本模式下,即使这不是最好的解决方案,对我来说也是可以的:$T_{1\text{\comma{}}2}$

我找到了\mathpunct命令这里但是当我在 csv 文件中使用它时仍然有一个逗号:$T_{1\mathpunct{,}2}$而不是and ,在使用...$T_{1,2}$导入时我收到错误\pgfplotstabletypeset

我知道我可以将标题放在双引号之间"$T_{1,2}$"以确保标题中的逗号不会被解释为列分隔符,但我想知道是否有办法在数学模式甚至文本模式下使用本机命令获取逗号。

梅威瑟:

\documentclass{article}
\usepackage{pgfplotstable,filecontents}

\begin{filecontents*}{myCSVfile.csv}
$T_{1,2}$, $T_{3}$
100,      300     
200,      500     
\end{filecontents*}

\begin{document}
    \pgfplotstabletypeset[col sep = comma,row sep=newline]{myCSVfile.csv}
\end{document}

答案1

我会使用"$T_{1,2}$"逗号,因为任何软件或阅读 csv 文件的人都可以轻松理解。但是逗号是 ASCII 十进制 44,十六进制 2C,因此您可以^^2c根据需要使用:

\documentclass{article}
\usepackage{pgfplotstable,filecontents}

\begin{filecontents*}{myCSVfile.csv}
$T_{1^^2c 2}$, $T_{3}$
100,      300     
200,      500     
\end{filecontents*}

\begin{document}
    \pgfplotstabletypeset[col sep = comma,row sep=newline]{myCSVfile.csv}
\end{document}

相关内容