opakovani mat. znamenek

Hans GINZEL Hans at mail.kolej.mff.cuni.cz
Tue Apr 29 12:26:10 CEST 1997


Miroslav Dont wrote:
> Shrnuto jsou pozadavky zhruba nasledujici.
> Predefinovani znaku +, -, =, \leq, \geq, \in
> \subset, <, >, \to, \cup, \cap (a mozna nekterych
> dalsich) a prislusnych negovanych tak, aby se
> opakovaly na novem radku po lamani a aby bylo
> mozne lamani zabranit prikazem \nolinebreak.

Pokud Vam jde o to \nobreak, tak treba takhle pro =

{\catcode`\==13 \expandafter }\expandafter
   \def\noexpand={\eq   % rovnitko
	   \def\onnextline{=}% v pripade rozdeleni
      \futurelet\next\zdalinobreak}% podivam se,
      % co nasleduje
\def\zdalinobreak{\ifx\next\nobreak % neni-li
         % to nolinebreak
   \else \discretionary{}{\onnextline}{}\fi}

\mathchardef\eq=\mathcode`\=
\mathcode`\=="8000

\binoppenalty=10000

> Pokud udelame totez pro znameni =, bude clovek spokojeny
> az do okamziku, kdy se mu na konci radku objevi nerovnitko
> (\neq). Pokud bude rozdeleno za nerovnitkem, pak se na
> dalsim radku objevi rovnitko - v definici \neq je =.

Predefinujeme si \neq k obrazu nasemu.

\def\neq{\not\eq
   \def\onnextline{\hbox{$\not\eq$}}
   \futurelet\next\zdalinobreak}

% Demo (PlainTeX)
\hsize=1in \obeylines
 ajkudiu $1=1$             hasd
 ajkudiu $1=\nobreak 1$    hasd
 ajkudiu $1= \nobreak 1$   hasd  % Pozor na mezeru!
 ajkud   $1\neq 2$         hasd
 ajkudiu $1\neq 2$         hasd
 ajkudiu $1\neq\nobreak 2$ hasd
\end

                               Hans GINZEL



More information about the csTeX mailing list