pgfplotstable 与 .tsv 文件,其中标题有下划线:如何避免“缺少插入的 $”?

pgfplotstable 与 .tsv 文件,其中标题有下划线:如何避免“缺少插入的 $”?

我想要显示的文件是无法编辑的 .tsv 文件。它看起来像这样:

up_gene up_chr  up_strand   up_Genome_pos
APLP2   chr11   +   129991686
BACE2   chr21   +   42617990
BRDT    chr1    +   92470856
CTBS    chr1    -   85028940
DHRS1   chr14   -   24761405

但是当我读取它时,我得到了一个Missing $ inserted错误。最小的例子:

\documentclass{article}
\usepackage{pgfplotstable}
% recommended:
\usepackage{booktabs}
\usepackage{array}
\usepackage{colortbl}

\begin{document}

\pgfplotstabletypeset[
  every even row/.style={
    before row={
      \rowcolor[gray]{0.9}
    }
  },
  every head row/.style={
    before row=\toprule,
    after row=\midrule
  },
  every last row/.style={
    after row=\bottomrule
  },
  string type,
  columns={up_gene,up_chr},
]
{results.tsv}

\end{document}

这会导致上面提到的错误,并输出以下输出:

在此处输入图片描述

我有两个问题:

  1. 我该如何避免出现此错误?请注意,即使我删除了columns={up_gene,up_chr}
  2. 如何显示标题中的下划线?我不想在 中为 g 添加下标up_gene

答案1

您可以自己设置列名称:

\documentclass{article}
\usepackage{pgfplotstable}
% recommended:
\usepackage{booktabs}
\usepackage{array}
\usepackage{colortbl}

\begin{document}

\pgfplotstabletypeset[
  string type,
  columns={up_gene,up_chr},
  columns/up_gene/.style={column name=up\_gene},
  columns/up_chr/.style={column name=up\_chr},
  every even row/.style={
    before row={
      \rowcolor[gray]{0.9}
    }
  },
  every head row/.style={
    before row=\toprule,
    after row=\midrule
  },
  every last row/.style={
    after row=\bottomrule
  },
]{results.tsv}

\end{document}

在此处输入图片描述

可以用不同的方式来处理下划线,但这需要改变的类别代码_,如果涉及数学公式,这可能会产生不利影响;还需要fontenc使用该选项进行加载。T1

这里并排显示了两种排版:右边与上图相同,左边按索引选择了列,并且类别代码发生了变化。

\documentclass{article}
\usepackage[T1]{fontenc}

\usepackage{pgfplotstable}
% recommended:
\usepackage{booktabs}
\usepackage{array}
\usepackage{colortbl}

\begin{document}

\pgfplotstabletypeset[
  string type,
  columns={up_gene,up_chr},
  columns/up_gene/.style={column name=up\_gene},
  columns/up_chr/.style={column name=up\_chr},
  every even row/.style={
    before row={
      \rowcolor[gray]{0.9}
    }
  },
  every head row/.style={
    before row=\toprule,
    after row=\midrule
  },
  every last row/.style={
    after row=\bottomrule
  },
]{results.tsv}
%
\begingroup\catcode`_=12
\pgfplotstabletypeset[
  string type,
  columns={[index]0,[index]1},
  every even row/.style={
    before row={
      \rowcolor[gray]{0.9}
    }
  },
  every head row/.style={
    before row=\toprule,
    after row=\midrule
  },
  every last row/.style={
    after row=\bottomrule
  },
]{results.tsv}
\endgroup

\end{document}

在此处输入图片描述

相关内容