Precnievajuce vzorce.
Zdenek Wagner
wagner at cesnet.cz
Tue May 16 12:44:53 CEST 2006
On Tue, 16 May 2006, Marian Lekavy wrote:
> Dakujem.
> TeX rozdeluje vzorce okolo znamienok, ale ja potrebujem skor nastavit,
> aby cely vzorec (resp. jeho nerozdelitelnu cast) dal automaticky na novy
> riadok tak, aby tato cast neprecnievala.
> Priklad je $\{MAB(S_{init}, S_{final})\}$, kde nie je ziaduce aby sa
> rozdelila cast pred ciarkou, ale kedze je ta cast dost dlha a precnieva
> zo stlpca, bolo by dobre, aby bola na novom riadku. TeX mi to
> automaticky nespravi, pravdepodobne preto, aby na riadku neostali prilis
> dlhe medzery medzi slovami (text je v pomerne uzkych stlpcoch). Ja by
> som na druhej strane skor akceptoval dlhsie medzery medzi slovami, nez
> text vycnievajuci pol centimetra zo stlpca.
>
To se nastavuje pomoci parametru \tolerance a pripadne \emergencystretch
(viz napr. TBN). Velke mezery ovsem take nejsou zadouci, protoze text
vypadajici stejne ohavne jako soucasne ceske noviny je spatne citelny.
Hodne pomuze hz-algoritmus, ale pokud mate v uzkem sloupci dlouhe
nezlomitelne vyrazy, nepomuze nic jineho nez zasah do textu a presouvani,
pridavani nebo vypousteni slov (viz jakakoliv dobra ucebnice typografie).
> S pozdravom,
>
> Marian Lekavy
>
>
>
> JaromĂr Kuben wrote:
>
> > 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
> >>
> >>
> >
> >
>
Zdenek Wagner
e-mail: wagner at cesnet.cz
see also http://hroch486.icpf.cas.cz/wagner/
http://icebearsoft.euweb.cz
More information about the csTeX
mailing list