Portál AbcLinuxu, 29. října 2025 23:40
Mám problém s použitím příkazu \cline v tabulce v LaTeXovém dokumentu. Dokument jsem nejprve překládal pod MIKTeX 2.5, nyní jsem aktualizoval na verzi 2.9 a při překladu se mi to zastaví na hlášce:
Runaway argument?
2-11\@nil
! Paragraph ended before \@cline was complete.
<to be read again>
\par
V diskuzích jsem našel, že by mohl být problém s parametrem "split" (\usepackage[split]{czech}), ale tohle ve svém dokumentu použité nemám. Nepomáhá aní fígl s
{\begingroup \standardhyphens
\cline{2-11}
\endgroup}
ani
\standardhyphens
\cline{2-11}
\splithyphens
Nevím jak dál. Netušíte někdo kde by mohl být problém? Potřeboval bych to vyřešit a nebo alespoň nějak obejít. Cílem je, mít v tabulce (prostředí tabular*) několik horizontálních řádků od 2. do 11. sloupečku (tedy mimo 1.). Předem díky za rady.
Řešení dotazu:
Paragraph ended before \@cline was complete." může být problém i v tom, že se tazatel do makra, které není definované jako \long pokusil předat parametr obsahující konec odstavce. Ale vzhledem k tomu, že netuším, k čemu to makro slouží a jak je definované, netroufám si posoudit, jestli je to chyba jeho nebo makra.
Problém je v tom, že includujete něco, co vám změnilo kategorii znaku '-' na 13, takže po expanzi \cline{2-11} na
\@cline 2-11\@nil
není správně přiřazen parametru #1 hodnota '2-11'. Můj tip je nějaký styl, který nastavuje '-' jako aktivní kvůli správnému dělení. Čisté řešení je takový styl vyhodit, protože bude zaručeně kolidovat i se spoustou jiných věcí, rychlý workaround je dočasně přepsat kategorii '-' zpátky na 12.
Je to možné, každopádně to je takto v šabloně kterou mám danou a neměl bych ji měnit. Takže pro mě by bylo zajímavé to s tím "přepsat kategorii '-' zpátky na 12". Můžete být prosím konkrétní?
Potřeboval bych něco ve smyslu
{ \neco_tu__docasne_zmenim
\cline{2-11} %ted uz funguje}
nebo
\neco_tu__docasne_zmenim
\cline{2-11} %ted uz funguje
\zase_to vratim
Ony ty \being{tentononc} ... \end{tentononc} asi budou v sobě obsahovat skupinu, takže nejspíš bude stačit do některého z těch bloků vložit
\catcode`\-=12
Vypadá to, že např. hned za \begin{table} by to mohlo fungovat.
Zkoušel jsem také přijít na to, který styl páchá tu aktivní pomlčku a zdá se, že tohle zvěrstvo má na svědomí LaTeX sám. Ještě že ho nepoužívám…
Super, vložení \catcode`\-=12 za \begin{table} pomohlo. Velice Vám děkuji za pomoc!
Ještě drobný dotaz, mění se tímto ta kategorie znaku '-' globálně, nebo jen jednorázově v prostředí 'table', ve kterém je vložen ten řádek viz víše?
\begin{table} ... \end{table} obsahuje skupinu, takže jen lokálně.
)
% Vyřešení problému s aktivní pomlčkou např. v \cline a \pdfpages:
% Balíček babel nastaví pomlčku - na aktivní znak, protože česká typografie
% vyžaduje při dělení spojených slov např. "česko-anglický" opakování spojovníku
% i na dalším řádku. To ovšem způsobuje chyby v příkazech \cline nebo \pdfpages.
% Pokud na tento problém narazíte, pak ho vyřešte jednou z následujících možností:
% 1. Tabulky, ve kterých příkaz \cline použijete, obalte následovně:
% \shorthandoff{-} \begin{tabular} ... \end{tabular} \shorthandon{-}
% 2. Aktivujte výše uvedené pro všechny tabulky v dokumentu odpoznámkováním tohoto:
% \usepackage{etoolbox}
% \preto\tabular{\shorthandoff{-}}
% 3. Vypněte aktivní pomlčky globálně v celém dokumentu odpoznámkováním tohoto:
% \AtBeginDocument{\shorthandoff{-}}
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.