DTLforeach 生成的表格第一行第一列的对齐

DTLforeach 生成的表格第一行第一列的对齐

我有一个简单的表格:

\documentclass{article}
\pagestyle{empty}
\begin{document}
\begin{table}[ht]
  \centering
  \begin{tabular}{c c}
    \hline\hline
    x & y \\ [0.5ex]
    \hline
    1 & 4 \\
    2 & 6 \\
    3 & 8 \\
    [1ex]
    \hline
  \end{tabular}
\end{table}
\end{document}

它看起来像这样:

简单表格

我想复制这个datatool,保持相同的水平线和垂直空间:

\documentclass{article}
\usepackage{datatool}
\usepackage{filecontents}
\pagestyle{empty}
\begin{filecontents*}{input.csv}
x,y
1,4
2,6
3,8
\end{filecontents*}
\begin{document}
\DTLloaddb{mytable}{input.csv}
\begin{table}[ht]
  \centering
  \begin{tabular}{c c}
    \hline\hline
    x & y \\ [0.5ex]
    \hline
    \DTLforeach{mytable}
    {\x=x,\y=y}
    {
      \DTLiffirstrow{}{\\}
      \x & \y
    }
    \\
    [1ex]
    \hline
  \end{tabular}
\end{table}
\end{document}

这是几乎相同,但1水平方向未对齐:

表格未对齐

我该如何解决?

答案1

发现不同之处:

\begin{filecontents*}{\jobname.csv}
x,y
1,4
2,6
3,8
\end{filecontents*}

\documentclass{article}
\usepackage{datatool}

\begin{document}
\DTLloaddb{mytable}{\jobname.csv}

\begin{table}[ht]
  \centering
  \begin{tabular}{c c}
    \hline\hline
    x & y \\ [0.5ex]
    \hline
    \DTLforeach{mytable}
    {\x=x,\y=y}
    {%
      \DTLiffirstrow{}{\\}%
      \x & \y
    }
    \\[1ex]
    \hline
  \end{tabular}
\end{table}
\end{document}

在此处输入图片描述

不, 的位置filecontents和文件名无关。查找%

您在行尾添加了两个空格;第一个空格实际上并不相关,因为 LaTeX 会忽略它,但后面的空格\DTLiffirstrow{}{\\}不会被忽略。

相关内容