[NTG-context] Split \startalign content on more pages

elgospa at libero.it elgospa at libero.it
Mon May 14 06:37:46 CEST 2012


Sorry for having given you a non working example!
Here you can find a working one. The comments at the end of each line are in 
italian. 
Changing the height of the frame you can move the \startalign content in the 
page.
As you will see, the whole content flows from one page to the following, 
without splitting at the right line.
Thank you very much for your help.



%INIZIO PREAMBOLO
\setuppapersize[A4, portrait] [A4]% layout di pagina su foglio A4
\setuplayout[width=middle]% disposizione del testo sulla pagina
\setuppagenumbering[location={footer, middle}]% numero di pagina in basso al 
centro
\setupbodyfont[11pt]% altezza carattere 11pt
\setupcolors[state=start, rgb=yes]% per usare colori
\setupcolor[rgb]% carico colori di default
\setuptabulate[split=yes]% consente di spezzare le liste di tabualte su più 
pagine
%\setupindenting[medium, yes]% indentazione prima linea di paragrafi
\mainlanguage[it]% lingua principale del documento
\usemodule[units]% per scrivere le unità di misura in maniera coerente sia in 
modalità testo che matematico
%\usemodule[NTE]% per crare le tabelle complesse multipagina utilizzando 
l'ambiente TABLE
%
%----------COMANDI DEFINITI DA UTENTE-----------------
% comando \sb
\def\sb#1{\ctxlua{tex.print(#1)}}% definizione comando di sostituzione dei 
valori numerici a quelli letterali
% comando \sba
\def\sba#1{\ctxlua{tex.print(string.format("\%.0f", #1))}}% sostituisce numero 
a valori letterali scrivendolo senza cifre decimali
% comando \sbb
\define[1]\sbb{\ctxlua{context("\%.1f", #1)}}% sostituisce numero a valori 
letterali scrivendolo con 1 cifra decimale
% comando \sbc
\define[1]\sbc{\ctxlua{context("\%.2f", #1)}}% sostituisce numero a valori 
letterali scrivendolo con 2 cifre decimali
% comando \sbd
\define[1]\sbd{\ctxlua{context("\%.3f", #1)}}% sostituisce numero a valori 
letterali scrivendolo con 3 cifre decimali

\definedescription[descr][style=packed,headstyle=bold,style=normal,
location=hanging,width=broad,margin=1cm]
%FINE PREAMBOLO

\starttext
Bla bla bla

{\framed[height=15cm] Bla Bla}




\startluacode
e_yfi=5
R_fi=2000
r_fi=300
D_ifi=2500
P_dfi=0.6
f_dfi=200

e_dtryfi=1 -- spessore di tentativo in progetto in mm
e_yfi=100 -- inizializzo il valore ey a 100
while math.abs(e_yfi-e_dtryfi)>0.001 do
	e_dtryfi=e_yfi
	Y=math.min((e_dtryfi / R_fi), 0.04)
	Z=math.log10(1/Y)
	X=r_fi/D_ifi
	N=1.006-(1 / (6.2+(90*(Y^4))))
	beta006=N*((-0.3635*(Z^3))+(2.2124*(Z^2))-(3.2937*Z)+1.8873)
	beta01=N*((-0.1833*(Z^3))+(1.0383*(Z^2))-(1.2943*Z)+0.837)
	beta02=math.max(0.95*(0.56-(1.94*Y)-(83.5*(Y^2))), 0.5)
	if X==0.06 then
		beta=beta006
	elseif 0.06<X and X<0.1 then
		beta=25*(((0.1-X)*beta006)+((X-0.06)*beta01))
	elseif X==0.1 then
		beta=beta01
	elseif 0.1<X and X<0.2 then
		beta=10*(((0.2-X)*beta01)+((X-0.1)*beta02))
	elseif X==0.2 then
		beta=beta02
	else tex.print("\\red{ERRORE NELLA GEOMETRIA DEL FONDO INFERIORE}")
	end
	e_yfi=(beta*P_dfi*((0.75*R_fi)+(0.2*D_ifi)))/f_dfi
end

\stopluacode


\setupformulas[align=right]
\startformula
\startalign[n=3, align={left, right, left}]
\NC \text{dove} \quad	\NC Y \NC = min \left({{e_{yfi}} \over {R_{fi}}}; 0.04 
\right) = min \left({{\sbc{e_yfi}} \over {\sba{R_fi}}}; 0.04 \right)=\sbd{Y} 
\NR
\NC 					\NC Z \NC = log_{10} \left({1 \over Y} \right) = log_{10} \left({1 
\over \sbd{Y}} \right) = \sbc{Z} \NR
\NC 					\NC X \NC = {{r_{fi}} \over {D_{ifi}}} = {{\sba{r_fi}} \over {\sba
{D_ifi}}} = \sbd{X} \NR
\NC 					\NC N \NC = 1.006 - {1 \over {6.2 + \left(90 \cdot Y \right)^4}} = 
1.006 - {1 \over {6.2 + \left(90 \cdot \sbd{Y} \right)^4}} = \sbd{N} \NR
\startluacode
if X==0.06 then
	tex.print("\\NC  \\NC \\beta_{0.06} \\NC = N \\cdot \\left(-0.3635 \\cdot Z^3 
+ 2.2124 \\cdot Z^2 - 3.2937 \\cdot Z + 1.8873 \\right) = \\NR")
	tex.print("\\NC  \\NC 			    \\NC = N \\cdot \\left(-0.3635 \\cdot \\sbc{Z}^3 
+ 2.2124 \\cdot \\sbc{Z}^2 - 3.2937 \\cdot \\sbc{Z} + 1.8873 \\right) = \\sbc
{beta006} \\NR")
	tex.print("\\NC  \\NC \\beta \\NC =\\beta_{0.06}=\\sbc{beta006} \\NR")
elseif X>0.06 and X<0.1 then
	tex.print("\\NC  \\NC \\beta_{0.06} \\NC = N \\cdot \\left(-0.3635 \\cdot Z^3 
+ 2.2124 \\cdot Z^2 - 3.2937 \\cdot Z + 1.8873 \\right) = \\NR")
	tex.print("\\NC  \\NC 			    \\NC = N \\cdot \\left(-0.3635 \\cdot \\sbc{Z}^3 
+ 2.2124 \\cdot \\sbc{Z}^2 - 3.2937 \\cdot \\sbc{Z} + 1.8873 \\right) = \\sbc
{beta006} \\NR")
	tex.print("\\NC  \\NC \\beta_{0.1} \\NC = N \\cdot \\left(-0.1833 \\cdot Z^3 
+ 1.0383 \\cdot Z^2 - 1.2943 \\cdot Z + 0.837 \\right) = \\NR")
	tex.print("\\NC  \\NC 			    \\NC = N \\cdot \\left(-0.1833 \\cdot \\sbc{Z}^3 
+ 1.0383 \\cdot \\sbc{Z}^2 - 1.2943 \\cdot \\sbc{Z} + 0.837 \\right) = \\sbc
{beta01} \\NR")
	tex.print("\\NC  \\NC \\beta \\NC = 25 \\cdot \\left[ \\left(0.1 - X \\right) 
\\cdot \\beta_{0.06} + \\left(X - 0.06 \\right) \\cdot \\beta_{0.1} \\right]= 
\\NR")
	tex.print("\\NC  \\NC        \\NC = 25 \\cdot \\left[ \\left(0.1 - \\sbd{X} 
\\right) \\cdot \\sbc{beta006} + \\left(\\sbd{X} - 0.06 \\right) \\cdot \\sbc
{beta01} \\right]=\\sbd{beta} \\NR")
elseif X==0.1 then
	tex.print("\\NC  \\NC \\beta_{0.1} \\NC = N \\cdot \\left(-0.1833 \\cdot Z^3 
+ 1.0383 \\cdot Z^2 - 1.2943 \\cdot Z + 0.837 \\right) = \\NR")
	tex.print("\\NC  \\NC 			   \\NC = N \\cdot \\left(-0.1833 \\cdot \\sbc{Z}^3 
+ 1.0383 \\cdot \\sbc{Z}^2 - 1.2943 \\cdot \\sbc{Z} + 0.837 \\right) = \\sbc
{beta01} \\NR")
	tex.print("\\NC  \\NC \\beta       \\NC =\\beta_{0.1}=\\sbc{beta01} \\NR")
elseif X>0.1 and X<0.2 then
	tex.print("\\NC  \\NC \\beta_{0.1} \\NC = N \\cdot \\left(-0.1833 \\cdot Z^3 
+ 1.0383 \\cdot Z^2 - 1.2943 \\cdot Z + 0.837 \\right) = \\NR")
	tex.print("\\NC  \\NC 			    \\NC = N \\cdot \\left(-0.1833 \\cdot \\sbc{Z}^3 
+ 1.0383 \\cdot \\sbc{Z}^2 - 1.2943 \\cdot \\sbc{Z} + 0.837 \\right) = \\sbc
{beta01} \\NR")
	tex.print("\\NC  \\NC \\beta_{0.2} \\NC = max \\left[ 0.95 \\cdot \\left(0.56 
- 1.94 \\cdot Y - 82.5 \\cdot Y^2 \\right); 0.5 \\right] \\NR")
	tex.print("\\NC  \\NC              \\NC = max \\left[ 0.95 \\cdot \\left(0.56 
- 1.94 \\cdot \\sbd{Y} - 82.5 \\cdot \\sbd{Y}^2 \\right); 0.5 \\right] = \\sbd
{beta02} \\NR")
	tex.print("\\NC  \\NC \\beta \\NC = 10 \\cdot \\left[ \\left(0.2 - X \\right) 
\\cdot \\beta_{0.1} + \\left(X - 0.1 \\right) \\cdot \\beta_{0.2} \\right]= 
\\NR")
	tex.print("\\NC  \\NC        \\NC = 10 \\cdot \\left[ \\left(0.2 - \\sbd{X} 
\\right) \\cdot \\sbc{beta01} + \\left(\\sbd{X} - 0.1 \\right) \\cdot \\sbc
{beta02} \\right]=\\sbd{beta} \\NR")
elseif X==0.2 then
	tex.print("\\NC  \\NC \\beta_{0.2} \\NC = max \\left[ 0.95 \\cdot \\left(0.56 
- 1.94 \\cdot Y - 82.5 \\cdot Y^2 \\right); 0.5 \\right] \\NR")
	tex.print("\\NC  \\NC              \\NC = max \\left[ 0.95 \\cdot \\left(0.56 
- 1.94 \\cdot \\sbd{Y} - 82.5 \\cdot \\sbd{Y}^2 \\right); 0.5 \\right] = \\sbd
{beta02} \\NR")
	tex.print("\\NC  \\NC \\beta       \\NC =\\beta_{0.2}=\\sbd{beta02} \\NR")
end
\stopluacode
\stopalign
\stopformula
\setupformulas[align=middle]

\stoptext





More information about the ntg-context mailing list