Portál AbcLinuxu, 1. listopadu 2025 16:09
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.