[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