Portál AbcLinuxu, 11. listopadu 2025 02:04
! Use of \@part doesn't match its definition.
\@uclclist ->\oe
\OE \o \O \ae \AE \dh \DH \dj \DJ \l \L \ng \NG \ss \SS \th...
l.349 \cast{Teoretická část}
překlad fungoval pak sem něco upravil a je to v háji a nemožu si stím poradit.
překládám XeLaTeXem, ale chyba XeLaTeXu to nebude.
takto je to makro ve zdroji.
\def\cast#1{% příkaz \cast jako alternativa k \part
\part{#1}
}
\def\@part[#1]#2{%
\ifnum \c@secnumdepth >\m@ne
\refstepcounter{part}%
\addcontentsline{toc}{section}{\protect\makebox[1cm][l]{\thepart}\MakeTextUppercase{#1}}%
\else
\addcontentsline{toc}{section}{\MakeTextUppercase{#1}}%
\fi
{\parindent \z@ \raggedright
\interlinepenalty \@M
\clearpage
\normalfont
\ifnum \c@secnumdepth >\m@ne
\Large\bfseries
\nobreak \fi
\vspace*{9cm}
\center\huge \bfseries\thepart. \MakeTextUppercase{#2}%
\markboth{}{}\par}%
\nobreak
\clearpage
\@afterheading
}
celou šablonu mám na githubu
Řešení dotazu:
\def\@part[#1]#2{...}
je TeXovská definice příkazu, která pak vyžaduje, aby se argumenty použily stejným způsobem (the use of ... does not match its definition), tj. včetně hranatých závorek.
Pokud chcete nadefinovat funkci s nepovinným parametrem v LaTeXu, pak použijte LaTeXovský \newcommand (viz dokumentace), který umí nepovinné parametry zpracovat.
LaTeX zpracovává [...] nějakým vnitřním mechanismem, v čistém TeXu žádné nepovinné parametry v [] nejsou.
všechna písmena jsou velká, ale první je většíAch jo. To jsou přece kapitálky. Zřejmě tam někde bude \sc či \scshape...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.