Portál AbcLinuxu, 12. května 2025 15:21

Dotaz: LaTeX: S tabulkami nefunguje čeština

29.1.2009 17:28 Andrej | skóre: 51 | blog: Republic of Mordor
LaTeX: S tabulkami nefunguje čeština
Přečteno: 570×
Odpovědět | Admin

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.

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

Odpovědi

29.1.2009 18:02 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: LaTeX: S tabulkami nefunguje čeština
Odpovědět | | Sbalit | Link | Blokovat | Admin
Problém je spíš s balíkem filecontents, protože tohle funguje:
$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.
I am always ready to learn although I do not always like to be taught. (W. Churchill)
2.2.2009 09:38 vencas | skóre: 32
Rozbalit Rozbalit vše Re: LaTeX: S tabulkami nefunguje čeština

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.

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.