.csv와 함께 pgfplotstable 및 longtable 사용

Oct 15 2020

longtable및 .csv를 사용하는 동안 .csv를 가져 오려고합니다 pdfplotstabletypeset. longtable명령이 작동 하지 않습니다 .

\documentclass[12pt,a4paper,oneside]{report}

\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{longtable}
\usepackage{pgfplotstable}
\usepackage{ragged2e}
\usepackage{pdfpages}
\usepackage{pdflscape}
\usepackage{tikz}
\usepackage{subcaption}

\begin{filecontents*}{MYFILE.csv}
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
Software,A
\end{filecontents*}

\begin{document}

\begin{table}[!htb]
%   \setstretch{1.1}
    \pgfplotstabletypeset[
        column type=,
        col sep=comma, 
        string type,
        begin table={\begin{longtable}{p{5cm}p{10cm}}},
%       begin table={\begin{longtable}{@{*}r||p{1in}@{*}},
            end table={\end{longtable}},
        every head row/.style={
            before row={\toprule},
            after row={\midrule\addlinespace}},
        assign column name/.style={/pgfplots/table/column name={\textbf{#1}}},
        every last row/.style={after row=\midrule},
        every row no 5/.style={after row=\toprule\addlinespace},
        every row no 6/.style={after row=\midrule\addlinespace},
        every row 6 column 0/.style={postproc cell content/.style={@cell content=\textbf{##1}}},
        every row no 14/.style={after row=\toprule\addlinespace},
        every row no 15/.style={after row=\midrule\addlinespace},
        every row 15 column 0/.style={postproc cell content/.style={@cell content=\textbf{##1}}},
        every row no 18/.style={after row=\toprule\addlinespace},
        every row no 19/.style={after row=\midrule\addlinespace},
        every row 19 column 0/.style={postproc cell content/.style={@cell content=\textbf{##1}}},
        every row no 22/.style={after row=\toprule\addlinespace},
        every row no 23/.style={after row=\midrule\addlinespace},
        every row 23 column 0/.style={postproc cell content/.style={@cell content=\textbf{##1}}},
        every row no 26/.style={after row=\toprule\addlinespace},
        every row no 27/.style={after row=\midrule\addlinespace},
        every row 27 column 0/.style={postproc cell content/.style={@cell content=\textbf{##1}}},
    ]{MYFILE.csv}
\end{table}

\end{document}

답변

TorbjørnT. Oct 14 2020 at 23:48

table페이지에 걸쳐 침입 할 수없는 환경, longtable의 사용 외부로 의미 table들. 따라서 \begin{table}\end{table}. 표 상단에 캡션을 원하면 예를 들어every head row/.style={before row={\caption{foo}\\\toprule}, ...

SP1 Oct 15 2020 at 14:38

나를 위해 일한 코드는 다음과 같습니다.

\pgfplotstabletypeset[
    column type=,
    col sep=comma, 
    string type,
    begin table={\begin{longtable}{p{5cm}p{10cm}}},
        end table={\end{longtable}},
    every head row/.style={
        before row={\toprule},
        after row={\midrule\addlinespace}},
    assign column name/.style={/pgfplots/table/column name={\textbf{#1}}},
    every last row/.style={after row=\midrule},
    every row no 5/.style={after row=\toprule\addlinespace},
    every row no 6/.style={after row=\midrule\addlinespace},
    every row 6 column 0/.style={postproc cell content/.style={@cell content=\textbf{##1}}},
    every row no 14/.style={after row=\toprule\addlinespace},
    every row no 15/.style={after row=\midrule\addlinespace},
    every row 15 column 0/.style={postproc cell content/.style={@cell content=\textbf{##1}}},
    every row no 18/.style={after row=\toprule\addlinespace},
    every row no 19/.style={after row=\midrule\addlinespace},
    every row 19 column 0/.style={postproc cell content/.style={@cell content=\textbf{##1}}}
    ]{MYFILE.csv}