criando csv cabeçalho duplo simples

criando csv cabeçalho duplo simples

Estou tentando incluir as duas primeiras linhas como cabeçalhos. Gostaria de ter as unidades - - m m metc. em cada página e outra linha abaixo.

Não sou um usuário avançado decsvsimples, e não consegui encontrar respostas no manual.

A primeira página fica assim:

primeiro

E o segundo:

segundo

Já resolvi o problema de ter símbolos de látex como \delta.

Além disso, o outro problema que estou enfrentando é que não consigo exibir o cabeçalho em todas as páginas.

 \begin{longtable}{lllllllllll}
   \caption{Database of Ropax Ships.}\\
    \toprule
    \csvreader[
        head=false,
        late after line=\\,
        filter equal={\thecsvinputline}{1},
        ]{data_appendix.csv}{}{\csvcoli & \csvcolii & \csvcoliii & \csvcoliv & \csvcolv & \csvcolvi & \csvcolvii & \csvcolviii & \csvcolix}
    \midrule
    \endfirsthead
    \toprule
        \csvreader[
        head=false,
        late after line=\\,
        filter equal={\thecsvinputline}{1},
        ]{data_appendix.csv}{}{\csvcoli & \csvcolii & \csvcoliii & \csvcoliv & \csvcolv & \csvcolvi & \csvcolvii & \csvcolviii & \csvcolix}
    \midrule
    \endhead
    \midrule
    \endfoot
    \bottomrule
    \endlastfoot
    \csvreader[
        head=false,
        late after line=\\,
        filter not equal={\thecsvinputline}{1},
        ]{data_appendix.csv}{}{\csvcoli & \csvcolii & \csvcoliii & \csvcoliv & \csvcolv & \csvcolvi & \csvcolvii & \csvcolviii & \csvcolix}
\end{longtable}

Eu realmente aprecio alguma ajuda.

Responder1

Bem, você não forneceu nenhum MWE, então em algumas partes só posso adivinhar, mas o principal culpado aqui é usar as duas primeiras linhas csv em seus cabeçalhos para tabela longa e omitir as duas primeiras linhas csv exibindo os dados.

Use o seguinte código para \endfirsthead:

\csvreader[%
    head=false,
    late after line=\\,
    filter equal={\thecsvinputline}{1},
    ]{\jobname.csv}{}{\csvcoli & \csvcolii & \csvcoliii & \csvcoliv & \csvcolv & \csvcolvi & \csvcolvii & \csvcolviii & \csvcolix}
\csvreader[% <====================================================== added
    head=false,
    late after line=\\,
    filter equal={\thecsvinputline}{2}, % <========================= line 2
    ]{\jobname.csv}{}{\csvcoli & \csvcolii & \csvcoliii & \csvcoliv & \csvcolv & \csvcolvi & \csvcolvii & \csvcolviii & \csvcolix}
\midrule
\endfirsthead

e para o \endhead:

\toprule
    \csvreader[
    head=false,
    late after line=\\,
    filter equal={\thecsvinputline}{1},
    ]{\jobname.csv}{}{\csvcoli & \csvcolii & \csvcoliii & \csvcoliv & \csvcolv & \csvcolvi & \csvcolvii & \csvcolviii & \csvcolix}
    \csvreader[% <================================================== added 
    head=false,
    late after line=\\,
    filter equal={\thecsvinputline}{2}, % <========================= line 2
    ]{\jobname.csv}{}{\csvcoli & \csvcolii & \csvcoliii & \csvcoliv & \csvcolv & \csvcolvi & \csvcolvii & \csvcolviii & \csvcolix}
\midrule
\endhead

As linhas adicionadas \csvreaderimprimem a segunda linha com unidades nos cabeçalhos da tabela.

Para imprimir a tabela completa só precisamos começar a imprimir a partir da linha 3 (a linha filter test=\ifnumgreater{\thecsvinputline}{2},verifica se o número da linha atual é maior que 2):

\csvreader[%
    head=false,
    late after line=\\,
    filter test=\ifnumgreater{\thecsvinputline}{2},
    ]{\jobname.csv}{}{\csvcoli & \csvcolii & \csvcoliii & \csvcoliv & \csvcolv & \csvcolvi & \csvcolvii & \csvcolviii & \csvcolix}

Então, com o seguinte mwe completo (veja que os cabeçalhos precisam do trabalho que você já fez, use o código não mostrado):

\begin{filecontents*}{\jobname.csv}
Vessel Name , Year, LOA  , LBP  , B  , T   , D  , DUP  , Delta
-           , -   , m    , m    , m  , m   , m  , m    , t
Abel Matutes, 2010, 187  , 177  , 26.2, 6  , 9.2, 14.54, -
Aretousa    , 1995, 177.3, 166.4, 27  , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187  , 177  , 26.2, 6  , 9.2, 14.54, -
Aretousa    , 1995, 177.3, 166.4, 27  , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187  , 177  , 26.2, 6  , 9.2, 14.54, -
Aretousa    , 1995, 177.3, 166.4, 27  , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187  , 177  , 26.2, 6  , 9.2, 14.54, -
Aretousa    , 1995, 177.3, 166.4, 27  , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187  , 177  , 26.2, 6  , 9.2, 14.54, -
Aretousa    , 1995, 177.3, 166.4, 27  , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187  , 177  , 26.2, 6  , 9.2, 14.54, -
Aretousa    , 1995, 177.3, 166.4, 27  , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187  , 177  , 26.2, 6  , 9.2, 14.54, -
Aretousa    , 1995, 177.3, 166.4, 27  , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187  , 177  , 26.2, 6  , 9.2, 14.54, -
Aretousa    , 1995, 177.3, 166.4, 27  , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187  , 177  , 26.2, 6  , 9.2, 14.54, -
Aretousa    , 1995, 177.3, 166.4, 27  , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187  , 177  , 26.2, 6  , 9.2, 14.54, -
Aretousa    , 1995, 177.3, 166.4, 27  , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187  , 177  , 26.2, 6  , 9.2, 14.54, -
Aretousa    , 1995, 177.3, 166.4, 27  , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187  , 177  , 26.2, 6  , 9.2, 14.54, -
Aretousa    , 1995, 177.3, 166.4, 27  , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187  , 177  , 26.2, 6  , 9.2, 14.54, -
Aretousa    , 1995, 177.3, 166.4, 27  , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187  , 177  , 26.2, 6  , 9.2, 14.54, -
Aretousa    , 1995, 177.3, 166.4, 27  , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187  , 177  , 26.2, 6  , 9.2, 14.54, -
Aretousa    , 1995, 177.3, 166.4, 27  , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187  , 177  , 26.2, 6  , 9.2, 14.54, -
Aretousa    , 1995, 177.3, 166.4, 27  , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187  , 177  , 26.2, 6  , 9.2, 14.54, -
Aretousa    , 1995, 177.3, 166.4, 27  , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187  , 177  , 26.2, 6  , 9.2, 14.54, -
Aretousa    , 1995, 177.3, 166.4, 27  , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187  , 177  , 26.2, 6  , 9.2, 14.54, -
Aretousa    , 1995, 177.3, 166.4, 27  , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187  , 177  , 26.2, 6  , 9.2, 14.54, -
Aretousa    , 1995, 177.3, 166.4, 27  , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187  , 177  , 26.2, 6  , 9.2, 14.54, -
Aretousa    , 1995, 177.3, 166.4, 27  , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187  , 177  , 26.2, 6  , 9.2, 14.54, -
Aretousa    , 1995, 177.3, 166.4, 27  , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187  , 177  , 26.2, 6  , 9.2, 14.54, -
Aretousa    , 1995, 177.3, 166.4, 27  , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187  , 177  , 26.2, 6  , 9.2, 14.54, -
Aretousa    , 1995, 177.3, 166.4, 27  , 6.3, 9.1, 20.05, -
Abel Matutes, 2010, 187  , 177  , 26.2, 6  , 9.2, 14.54, -
Aretousa    , 1995, 177.3, 166.4, 27  , 6.3, 9.1, 20.05, -
\end{filecontents*}


\documentclass{article}

\usepackage{csvsimple}
\usepackage{booktabs}
\usepackage{longtable}


\begin{document}

\begin{longtable}{lllllllllll}
   \caption{Database of Ropax Ships.}\\
    \toprule
    \csvreader[%
        head=false,
        late after line=\\,
        filter equal={\thecsvinputline}{1},
        ]{\jobname.csv}{}{\csvcoli & \csvcolii & \csvcoliii & \csvcoliv & \csvcolv & \csvcolvi & \csvcolvii & \csvcolviii & \csvcolix}
    \csvreader[% <====================================================== added
        head=false,
        late after line=\\,
        filter equal={\thecsvinputline}{2}, % <========================= line 2
        ]{\jobname.csv}{}{\csvcoli & \csvcolii & \csvcoliii & \csvcoliv & \csvcolv & \csvcolvi & \csvcolvii & \csvcolviii & \csvcolix}
    \midrule
    \endfirsthead
    \toprule
        \csvreader[
        head=false,
        late after line=\\,
        filter equal={\thecsvinputline}{1},
        ]{\jobname.csv}{}{\csvcoli & \csvcolii & \csvcoliii & \csvcoliv & \csvcolv & \csvcolvi & \csvcolvii & \csvcolviii & \csvcolix}
        \csvreader[% <================================================== added 
        head=false,
        late after line=\\,
        filter equal={\thecsvinputline}{2}, % <========================= line 2
        ]{\jobname.csv}{}{\csvcoli & \csvcolii & \csvcoliii & \csvcoliv & \csvcolv & \csvcolvi & \csvcolvii & \csvcolviii & \csvcolix}
    \midrule
    \endhead
    \midrule
    \endfoot
    \bottomrule
    \endlastfoot
    \csvreader[%
        head=false,
        late after line=\\,
        filter test=\ifnumgreater{\thecsvinputline}{2},
        ]{\jobname.csv}{}{\csvcoli & \csvcolii & \csvcoliii & \csvcoliv & \csvcolv & \csvcolvi & \csvcolvii & \csvcolviii & \csvcolix}
\end{longtable}

\end{document}

e seu resultado:

página resultante 1

mostra as linhas csv 1 e 2 como cabeçalhos de tabela e inicia o conteúdo da tabela com a linha 3, e para a segunda página você também mostra as linhas 1 e 2 como cabeçalho conforme desejado:

insira a descrição da imagem aqui

informação relacionada