我可以在 LaTeX 表中输入列而不是行吗?

我可以在 LaTeX 表中输入列而不是行吗?

我使用tabularLaTeX 环境。

我想在 LaTeX 代码中将表格中的一列写为一行。

对于我用 LaTeX 编写的问题,很自然地会一次考虑一列。

例如

1 & 3 & 5

2 & 4 & 6

我想写

1,2 

3,4

5,6 

我可以为此编写一些代码吗?

答案1

一个可能的解决方案是\pgfplotstabletranspose使用pgfplotstable包。

由于您没有提供最小工作示例(MWE),我完全按照你的要求做了,但是,当然,也可以处理列名,并且该包还有许多其他功能来设置列类型。

\documentclass{article}
\usepackage{pgfplotstable}
\pgfplotsset{compat=1.16}

\begin{document}
    \pgfplotstableread[col sep=comma]{
        1,2
        3,4
        5,6
        }{\mytabletotranspose}

    \pgfplotstabletranspose{\mytable}{\mytabletotranspose}

    \pgfplotstabletypeset[
        columns={0,1,2},
        every head row/.style={output empty row},
        string type
        ]{\mytable}
\end{document}

在此处输入图片描述

答案2

为了好玩:

\documentclass{article}

\usepackage{array}
\usepackage{xinttools}

\makeatletter
\newcommand\TrTable[1]{\begin{tabular}{*{10}{c}}\Tr@Table #1\par\par
                       \end{tabular}}

\def\Tr@Table #1\par{\if\relax\detokenize{#1}\relax\else
    \begin{tabular}{@{}c@{}}
    \xintListWithSep{\\}{\xintCSVtoListNoExpand{#1}}
    \end{tabular}\expandafter\Tr@@Table\fi}

% some complication with inserting the &'s only if and when needed
\def\Tr@@Table #1\par{\if\relax\detokenize{#1}\relax\else
    \@firstofone{&}\begin{tabular}{@{}c@{}}
    \xintListWithSep{\\}{\xintCSVtoListNoExpand{#1}}
    \end{tabular}\expandafter\Tr@@Table\fi}

\makeatother

\begin{document}
\TrTable{
1,2 

3,4

5,6 
}

For comparison:

\begin{tabular}{*{3}{c}}
  1&3&5 \\
  2&4&6
\end{tabular}
\end{document}

在此处输入图片描述

相关内容