[cstex] Expanze znaku konce stránky
Procházka Lukáš Ing. - Pontex s. r. o.
LPr at pontex.cz
Mon Mar 15 15:04:22 CET 2010
... Asi jsem to dal dohromady (primitivní test zafungoval) - po prostudování source2e. Makro by mohlo vypadat např. takto:
\makeatletter
\def\MACRO{
\def\T{itemize}
\ifx\@currenvir\T IN ITEMIZE
\else
\def\T{enumerate}
\ifx\@currenvir\T IN ENUMERATE
\else
ELSEWHERE
\fi
\fi
}
\MACRO
\begin{itemize}
\item \MACRO
\end{itemize}
\begin{enumerate}
\item \MACRO
\end{enumerate}
\makeatother
Zdravím
Lukáš Procházka
On Mon, 15 Mar 2010 13:00:53 +0100, Procházka Lukáš Ing. - Pontex s. r. o. <LPr at pontex.cz> wrote:
> ... To máte pravdu. Ale snažil jsem se vytvořit makro, které přímo vysází ten \item, čili nehrozí, že bude uvnitř \item a ještě uvnitř nějakého jiného prostředí (třeba \bfseries).
>
> Makro mělo dělat něco jako:
>
> \def\MAKRO#1{\if "uvnitř itemize nebo enumerate" \item #1\else \section*{#1}}
>
> A pak bych je použil:
>
> \MAKRO{A}
> \MAKRO{B}
>
> \begin{itemize}
> \MAKRO{C}
> \MAKRO{D}
> \end{itemize}
>
> Takhle to asi vypadá nesmyslně - to původné makro bylo ve skutečnosti složitejší a to, co naznačuji, byla jedna z jeho žádaných funkcionalit.
>
> Ještě se pokusím prozkoumat definici \begin.
>
> Zdravím
>
> Lukáš Procházka
>
>
>> Já bych si asi zkopíroval definici daného prostředí a do něj vložil
>> definici makra, které má v tom prostředí vypadat jinak. Test by se
>> samozřejmě dal naprogramovat. \begin si jméno prostředí schová v
>> nějakém interním makru, a \end kontroluje, zda jméno souhlasí. Když
>> ale napíšete
>>
>> \begin{itemize}
>> \item \begin{bfseries}\TestProstredi\end{bfseries}
>> \end{itemize}
>>
>> pak \TestProstredi uvidi jen "bfseries", neuvidi "itemize".
More information about the csTeX
mailing list