Portál AbcLinuxu, 22. května 2024 03:27


Dotaz: LaTeX - problém s tabulkou z CSV

otula avatar 4.6.2020 22:11 otula | skóre: 45 | blog: otakar | Adamov
LaTeX - problém s tabulkou z CSV
Přečteno: 469×
Odpovědět | Admin
Přílohy:
Ještě si dovolím položit jeden dotaz k LaTeXu. Když chci načíst tabulku z csv souboru, přibude vždy na konci tabulky něco jako jedna buňka navíc. Nejlépe to ukáže přiložený PDF soubor. Vyzkoušel jsem dva balíčky, které poskytují načítání csv souborů, ale u obou se to chová stejně. Netuším, zda někde dělám chybu, nebo je chyba v těch balíčcích...
$ cat test.tex

\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[czech]{babel}
\usepackage{datatool} %balíček datatool pro načtení CSV
\DTLloaddb{Cisla}{cisla.csv}
\usepackage{csvsimple} %balíček csvsimple pro totéž
\usepackage[table]{xcolor}
\usepackage{tabularx}
\rowcolors{2}{gray!15}{white}
\newcommand{\head}[1]{%
  \sffamily\textcolor{white}{\textbf{#1}}}
\renewcommand{\arraystretch}{1.5}
\begin{document}


balíček csvsimple

\begin{table}[!ht]
	\begin{tabularx}{\textwidth}{Xr}
    	\rowcolor{black!75}
	    \head{Slovo} & \head{Číslo}\\
		\csvreader{cisla.csv}{Slovo=\slovo,Cislo=\cislo}
		{ \slovo & \cislo \\} 
	\end{tabularx}
\end{table}

%============================================

balíček datatool

\begin{table}[!ht]
	\begin{tabularx}{\textwidth}{Xr}
		\rowcolor{black!75}
		\head{Slovo} & \head{Číslo}\\
		\DTLforeach{Cisla}{\slovo=Slovo,\cislo=Cislo}
		{ \slovo & \cislo \\} 
	\end{tabularx}
\end{table}

%============================================
přímé zadání

\begin{table}[!ht]
	\begin{tabularx}{\textwidth}{Xr}
		\rowcolor{black!75}
		\head{Slovo} & \head{Číslo}\\
		jedna & 1 \\
		dva & 2 \\
		tři & 3 \\
	\end{tabularx}
\end{table}

\end{document}
$ cat cisla.csv

Slovo,Cislo
jedna,1
dva,2
tři,3
Kdo vám tvrdí, že jste paranoidní, ten v tom spiknutí s největší pravděpodobností jede taky.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

otula avatar 4.6.2020 22:45 otula | skóre: 45 | blog: otakar | Adamov
Rozbalit Rozbalit vše Re: LaTeX - problém s tabulkou z CSV
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ještě jsem zkoušel testovat a vypadá to, že oba ty načítací balíčky zřejmě vygenerují na konci tabulky \\ navíc (pokud totiž do té poslední tabulky přidám ta dvě zpětná lomítka, vygeneruje to v dokumentu stejnou prasárnu).
Kdo vám tvrdí, že jste paranoidní, ten v tom spiknutí s největší pravděpodobností jede taky.
otula avatar 4.6.2020 23:23 otula | skóre: 45 | blog: otakar | Adamov
Rozbalit Rozbalit vše Re: LaTeX - problém s tabulkou z CSV
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ještě připojím na otestování verzi s vloženými daty, která se dá nakopírovat do https://www.latex4technics.com (vpravo v settings je potřeba zadat compiler Full LaTeX)
\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{datatool}
\rowcolors{2}{gray!15}{white}
\newcommand{\head}[1]{\sffamily\textcolor{white}{\textbf{#1}}}
\renewcommand{\arraystretch}{1.5}
\begin{document}
	
	\DTLnewdb{cisla}
	
	\DTLnewrow{cisla}
	\DTLnewdbentry{cisla}{jmeno}{jedna}
	\DTLnewdbentry{cisla}{cislo}{1}
	
	\DTLnewrow{cisla}
	\DTLnewdbentry{cisla}{jmeno}{dva}
	\DTLnewdbentry{cisla}{cislo}{2}
	
	\DTLnewrow{cisla}
	\DTLnewdbentry{cisla}{jmeno}{tri}
	\DTLnewdbentry{cisla}{cislo}{3}
	
	
	\begin{table}[!ht]
		\begin{tabular}{lr}
			\rowcolor{black!75}
			\head{Slovo} & \head{Cislo}\\
			\DTLforeach{cisla}{\JMENO=jmeno, \CISLO=cislo}{\JMENO&\CISLO\\} 
			\end{tabular}
	\end{table}
	
	
	
\end{document}
Kdo vám tvrdí, že jste paranoidní, ten v tom spiknutí s největší pravděpodobností jede taky.
Řešení 1× (otula (tazatel))
4.6.2020 23:57 kelidas | skóre: 7
Rozbalit Rozbalit vše Re: LaTeX - problém s tabulkou z CSV
Konec řádku \\ za \head{Císlo} přemístěn na začátek cyklu a za \CISLO odstraněn.
\begin{table}[!ht]
  \begin{tabular}{lr}
    \rowcolor{black!75}
	\head{Slovo} & \head{Cislo}  % \\ odstraněno
	\DTLforeach{cisla}{\JMENO=jmeno, \CISLO=cislo}{\\ \JMENO & \CISLO}  % \\ umístěno před \JMENO
  \end{tabular}
\end{table}
otula avatar 5.6.2020 00:20 otula | skóre: 45 | blog: otakar | Adamov
Rozbalit Rozbalit vše Re: LaTeX - problém s tabulkou z CSV
Super! Mockrát děkuji!
Kdo vám tvrdí, že jste paranoidní, ten v tom spiknutí s největší pravděpodobností jede taky.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.