Precnievajuce vzorce.

Jaromír Kuben kuben at scova.vabo.cz
Tue May 16 07:55:53 CEST 2006


Matej Kosik napsal(a):

>stMarian Lekavy wrote:
>  
>
>>Mam mensi problem so vzorcami. TeX nezalamuje vzorce obcas sa stane, ze
>>vzorec precnieva mimo stlpca. Ide mi hlavne o "in-line" vzorce, ktore su
>>priamo v texte (nie na samostatnom riadku).
>>Neviete mi poradit, ako by som tomu mohol zabranit a sposobit, aby sa
>>takyto precnievajuci vzorec dal na novy riadok? Kedze tam je tych
>>vzorcov pomerne vela, nerad by som to cele formatoval natvrdo rucne.
>>
>>Dakujem.
>>    
>>
>
>Ahoj,
>
>Urobil som mikropokus s TeX-om a zda sa, ze on je v celku schopny rozumnym sposobom rozdelovat vzorce na viac riadkov.
>
>Tak napriklad v takomto dokumente (text si nevsimaj)
>
>
>http://altair.dcs.elf.stuba.sk/~kosik/tmp44/a.pdf
>http://altair.dcs.elf.stuba.sk/~kosik/tmp44/a.tex
>(zamerne dvojstlpcovy styl)
>
>som raz presiel do "math" modu a to takto:
>
>	$a+b+c$
>
>ako vidis, TeX to vysadzal v celku rozumne. T.j. ak sa to nezmestilo na ten riadok, kde ta vec zacala, tak ten "vzorec" roztrhol na vhodnom mieste a cast je na jednom a cast na druhom riadku. Nestalo sa to, ze by tam cosi "precnievalo". Mozno je prob
>
>To delenie matematickych vyrazov na viac riadkov je asi vacsinou ziaduce, teda aspon ked sa jedna o aspon trochu rozumny vzorec, rovnicu alebo nieco podobne. Zivot je ale zlozity, a ak na nejakom mieste nechces aby sa ti dany kus niecoho rozdelil na
>
>  
>
Dobry den.

>	\mbox{$a+b+c$}
>  
>
Lepsi je
                      ${a+b+c}$
Pouceni najdete napr.v TeXbooku naruby P. Olsaka.

V ceske sazbe by se pri deleni mely opakovat symboly +,-,= a pod.
To zajisti v LaTeXu napr. tento kod:

%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 }
\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 {\leqq}{\leqqORI}  \let \le=\leqq \let \leq=\leqq
\OpakujPrikaz {\geqq}{\geqqORI} \let \ge=\geqq  \let \geq=\geqq
\OpakujPrikaz {\cup }{\cupORI}
\OpakujPrikaz {\cap }{\capORI}
\OpakujPrikaz {\times }{\timesORI}
\OpakujZnak <{\lessORI}
\OpakujZnak >{\greaterORI}
\OpakujZnak +{\plusORI}
\AtBeginDocument {\OpakujZnak ={\eqORI} \OpakujZnak -{\minusORI}}

Opakovani dalsich symbolu lze nadefinovat podobne.
Aby fungovalo to \leqq a \geqq (nerovnost s rovnitkem, ne jen s jednou 
carkou),
je treba pouzit
\usepackage{amsfonts}
\DeclareMathSymbol{\leqq}         {\mathrel}{AMSa}{"35}
\DeclareMathSymbol{\geqq}         {\mathrel}{AMSa}{"3D}

Zdravi
                 Jaromir Kuben

>tak sa mi nerozdeli. Ostane v celku.
>--
>Matej Kosik
>  
>





More information about the csTeX mailing list