[cstex] Zlom v matematickém prostředí – opakování operátorů na začátku dalšího řádku

Jaromír Kuben jaromir.kuben at unob.cz
Tue Nov 27 11:46:21 CET 2012


Dobrý den.

Já používám (latex+babel) už několik let následující kód:

%Podle Tesaříkova czech.ldf
\makeatletter
\def\Deleni{%
   \ifx\protect\@typeset at protect
     \ifhmode
       \ifinner
         \bbl at afterelse\bbl at afterelse\bbl at afterelse\cs at hyphen
       \else
         \bbl at afterfi\bbl at afterelse\bbl at afterelse\cs at firsthyphen
       \fi
     \else
       \bbl at afterfi\bbl at afterelse\cs at hyphen
     \fi
   \else
     \bbl at afterfi\cs at hyphen
   \fi }
\makeatother

%Opakování symbolů binárních operací a relací při zalomení řádku
%Autor: Josef Tkadlec tkadlec at fel.cvut.cz

\relpenalty     =10000      % aby se nelámalo v jiných než ošetřených
\binoppenalty   =10000
\exhyphenpenalty=1000       % aby spíše nouzově (implicitně je 50)
                             % "lokálně" lze zakázat {...}

\def\neq {\mathrel{\not=}}  % aby nedocházelo k lámání \not=/=
\let\ne=\neq

\def\OpakujPrikaz #1#2{\let #2=#1
   \def #1{#2\nobreak\discretionary{}{\hbox{$#2$}}{}}}
\def\OpakujZnak #1#2{\mathchardef #2=\mathcode`#1
   \activedef #1{#2\nobreak\discretionary{}{\hbox{$#2$}}{}}
   \uccode`\~=0 \mathcode`#1="8000 }
%Doplnil Kuben pro nový czech.ldf \expandafter možná nemusí být
\def\OpakujZnakMinus #1#2{\mathchardef #2=\mathcode`#1
   \activedef 
#1{\ifmmode#2\nobreak\discretionary{}{\hbox{$#2$}}{}\else\expandafter\Deleni\fi 
}
   \uccode`\~=0 \mathcode`#1="8000 }
\def\activedef #1{\uccode`\~=`#1 \uppercase{\def~}}

\OpakujPrikaz {\neq }{\neqORI}  \let \ne=\neq
\OpakujPrikaz {\leq }{\leqORI}  \let \le=\leq
\OpakujPrikaz {\geq }{\geqORI}  \let \ge=\geq
\OpakujPrikaz {\cup }{\cupORI}
\OpakujPrikaz {\cap }{\capORI}
\OpakujPrikaz {\times }{\timesORI}
\OpakujZnak <{\lessORI}
\OpakujZnak >{\greaterORI}
\OpakujZnak +{\plusORI}
\AtBeginDocument {\OpakujZnak ={\eqORI} \OpakujZnakMinus -{\minusORI}}

Zdraví
               Jaromír Kuben


On 27.11.2012 10:45, Michal Růžička wrote:
> Zdravím kolektivní vědomí,
>
> před nějakou dobou jsem viděl nějaký nástroj pro podporu sazby delších
> matematických výrazů. Konkrétně se jednalo o podporu zlomu na
> operátorech typu +, − apod., kdy zároveň docházelo k jejich opakování
> na dalším řádku. Teď se mi to ale nedaří dohledat. Uměl by někdo napovědět?
>
> S díky,
> Michal Růžička
>
>




More information about the csTeX mailing list