Portál AbcLinuxu, 12. května 2025 15:21
Ahoj, prosím o radu s nepříjemným problémem: Snažím se v LaTeXu použít tabulku pomocí balíku ltxtable
. Tento balík v sobě kombinuje schopnost tabulky určit automaticky šířku některých sloupců (sloupců typu X) a možnost rozdělení tabulky na několik stránek, včetně definice opakovaných záhlaví a podobně.
Bohužel mi tento balík funguje pouze pro anglické texty, tedy texty bez diakritiky. S češtinou to má podivný problém. Snažil jsem se vymyslet co nejjednodušší příklad, který tu chybu ukazuje.
Tohle se přeloží bez problémů:
\documentclass[12pt,notitlepage,twoside,a4paper]{article} \pagestyle{plain} \usepackage[left=2cm,right=2cm,top=2cm,bottom=3cm]{geometry} \usepackage[utf8]{inputenc} \usepackage{czech} \usepackage{longtable} \usepackage{ltxtable} \begin{filecontents}{mytable.tex} \begin{longtable}{ X } Something. \\ \end{longtable} \end{filecontents} \begin{document} \LTXtable{\textwidth}{mytable.tex} \end{document}
Stačí ale jeden český symbol a je to v háji:
\documentclass[12pt,notitlepage,twoside,a4paper]{article} \pagestyle{plain} \usepackage[left=2cm,right=2cm,top=2cm,bottom=3cm]{geometry} \usepackage[utf8]{inputenc} \usepackage{czech} \usepackage{longtable} \usepackage{ltxtable} \begin{filecontents}{mytable.tex} \begin{longtable}{ X } Něco. \\ \end{longtable} \end{filecontents} \begin{document} \LTXtable{\textwidth}{mytable.tex} \end{document}
Chybová hláška je:
(./mytable.tex ! Undefined control sequence. l.6 N\unhbox \voidb @x \bgroup \let \unhbox \voidb@x \setbox \@tempboxa \hbox...
Zkoušel jsem vstupní kódování ISO-8859-2, ale problém byl pořád stejný. Netušíte někdo, co má tohle znamenat? Google o tom mlčí. Před nějakou dobou se na to už kdosi zoufale ptal na mailing listu, ale nikdo mu neodpověděl. Longtable mi funguje normálně i s češtinou.
$cat tabulky.tex \documentclass[12pt]{article} \usepackage[utf8]{inputenc} \usepackage[czech]{babel} \usepackage{ltxtable} \begin{document} \LTXtable{\textwidth}{mytable.tex} \end{document} $cat mytable.tex \begin{longtable}{ X } Něco \end{longtable} $pdflatex tabulky.tex ... Output written on tabulky.pdf (1 page, 4210 bytes). Transcript written on tabulky.log.
Souhlas. V xelatexu (součást xetexu, tj. s přímou podporou utf-8) to ovšem funguje:
\documentclass[12pt,notitlepage,twoside,a4paper]{article}
\pagestyle{plain}
\usepackage[left=2cm,right=2cm,top=2cm,bottom=3cm]{geometry}
\usepackage{fontspec,xunicode}
\usepackage{longtable}
\usepackage{ltxtable}
\begin{filecontents}{mytable.tex}
\begin{longtable}{ X }
příliš žluťoučký kůň úpěl ďábelské ódy\\
\end{longtable}
\end{filecontents}
\begin{document}
\LTXtable{\textwidth}{mytable.tex}
\end{document}
Takže tam bych viděl řešení. V LaTeXu by se daly jako obezlička použít escape sekvence N\v{e}co atd, to funguje taky.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.