Changeset 651b46 in git
- Timestamp:
- May 20, 1998, 5:40:07 PM (25 years ago)
- Branches:
- (u'spielwiese', '828514cf6e480e4bafc26df99217bf2a1ed1ef45')
- Children:
- ea35599e9a4a656449259a45a33777c6075d7e6a
- Parents:
- a5279cef2f7895ec8e67e6a1c0e9ee30da6f7511
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/latex.lib
ra5279ce r651b46 1 // $Id: latex.lib,v 1. 1 1998-05-17 17:39:51 obachmanExp $1 // $Id: latex.lib,v 1.2 1998-05-20 15:40:07 gorzel Exp $ 2 2 // 1998/04/17 3 3 // author : Christian Gorzel email: gorzelc@math.uni-muenster.de … … 5 5 /////////////////////////////////////////////////////////////////////////////// 6 6 7 7 version="1.14"; 8 info=" 8 9 LIBRARY: latex.lib PROCEDURES FOR TYPESET OF SINGULAROBJECTS IN LATEX2E 9 10 by Christian Gorzel, send bugs and … … 32 33 33 34 TeXwidth : int: -1,0,1..9, >9 controls the breaking of long polynomials 34 TeXnofrac : (int) flag, write 1/2 instead of \ \frac{1}{2}35 TeXbrack : string: possible values {,(,<,|, \"\"35 TeXnofrac : (int) flag, write 1/2 instead of \frac{1}{2} 36 TeXbrack : string: possible values {,(,<,|, the empty string 36 37 controls brackets around ideals and matrices 37 38 TeXproj : (int) flag, write : instead of , in intvecs and vectors 38 39 TeXaligned : (int) flag, write maps (and ideals) aligned 39 40 TeXreplace : list, entries twoelemented list for replacing symbols 40 NoDollars : (int) flag, suppresses surrounding "$"signs41 41 NoDollars : (int) flag, suppresses surrounding $ signs 42 "; 42 43 43 44 /////////////////////////////////////////////////////////////////////////////// 44 45 45 46 proc closetex(string fname, list #) 46 USAGE: closetex(fname[,style]); fname,style = string47 "USAGE: closetex(fname[,style]); fname,style = string 47 48 RETURN: nothing; writes a LaTeX2e closing line into file fname 48 49 NOTE: style overwrites the default setting latex2e; maybe latex,amstex,tex 49 preceeding ">>" end ending ".tex" may miss in fname;50 preceeding >> end ending \".tex\" may miss in fname; 50 51 overwriting an existing file is not possible 51 52 EXAMPLE: example closetex; shows an example 53 " 52 54 { 53 55 string default = "latex2e"; … … 87 89 88 90 proc tex(string fname, list #) 89 USAGE: tex(fname[,style]); fname,style = string91 "USAGE: tex(fname[,style]); fname,style = string 90 92 RETURN: nothing; calls latex2e for compiling the file fname 91 93 NOTE: style overwrites the default setting latex2e; maybe latex,amstex,tex 92 94 ending ".tex" may miss in fname 93 95 EXAMPLE: example tex; shows an example 96 " 94 97 { 95 98 string default = "latex2e"; … … 139 142 140 143 proc opentex(string fname, list #) 141 USAGE: opentex(fname[,style]); fname,style = string144 "USAGE: opentex(fname[,style]); fname,style = string 142 145 RETURN: nothing; writes as LaTeX2e header into a new file fname 143 146 NOTE: suffix .tex may miss in fname 144 147 style overwrites the default setting latex2e; may be latex,amstex,tex 145 148 EXAMPLE: example opentex; shows an example 149 " 146 150 { 147 151 string default = "latex2e"; … … 225 229 226 230 proc texdemo(list #) 227 USAGE: texdemo();231 "USAGE: texdemo(); 228 232 RETURN: nothing; generates automatically a LaTeX2e file called: texlibdemo.tex 229 explaining the features of tex.lib and its gloabl variables230 NOTE: this proc takes someminutes233 explaining the features of latex.lib and its gloabl variables 234 NOTE: this proc takes a minutes 231 235 EXAMPLE: example texdemo; executes the generation 236 " 232 237 { int TeXdemostart = system("pid"); 233 238 string fname = "texlibdemo"; 234 string fnamet = fname+ ".tex";235 239 236 240 if (size(#)) … … 270 274 271 275 proc texfactorize(string fname, poly f, list #) 272 USAGE: opentex(fname,f); fname = string; f = poly276 "USAGE: opentex(fname,f); fname = string; f = poly 273 277 RETURN: string, the poly as as product of its irreducible factors 274 278 in TeX-typesetting if fname == empty string; 275 279 otherwise append this to file fname.tex; return nothing 276 NOTE: preceeding ">>" end ending ".tex" may miss in fname280 NOTE: preceeding >> end ending \".tex\" may miss in fname 277 281 EXAMPLE: example texfactorize; shows an example 282 " 278 283 { 279 284 def @r = basering; … … 342 347 343 348 proc texmap(string fname, def m, def @r1, def @r2, list #) 344 USAGE: texmap(fname,f); fname = string; m = string/map, @r1,@r2 = ring349 "USAGE: texmap(fname,f); fname = string; m = string/map, @r1,@r2 = ring 345 350 RETURN: string, the map m from @r1 to @r2 preeceded by its name if m = string 346 351 in TeX-typesetting if fname == empty string; 347 352 otherwise append this to file fname.tex; return nothing 348 NOTE: preceeding ">>" end ending ".tex" may miss in fname353 NOTE: preceeding >> end ending \".tex\" may miss in fname 349 354 EXAMPLE: example texmap; shows an example 355 " 350 356 { 351 357 int saveDollars= defined(NoDollars); … … 489 495 490 496 proc texname(string fname, string s) 491 USAGE: texname(fname,s); fname,s = string492 RETURN: the string s if fname == the empty string "" ;497 "USAGE: texname(fname,s); fname,s = string 498 RETURN: the string s if fname == the empty string 493 499 otherwise append s to file fname.tex; return nothing 494 NOTE: preceeding ">>" end ending ".tex" may miss in fname;500 NOTE: preceeding >> end ending \".tex\" may miss in fname 495 501 EXAMPLE: example texname; shows an example 502 " 496 503 { 497 504 string st, extr; … … 565 572 566 573 proc texobj(string fname, list #) 567 USAGE: texobj(fname,l); fname = string,l = list of Singular dataypes574 "USAGE: texobj(fname,l); fname = string,l = list of Singular dataypes 568 575 RETURN: string, the objects in TeX-typesetting if fname == empty string; 569 576 otherwise append this to file fname.tex; return nothing 570 577 NOTE: preceeding ">>" end ending ".tex" may miss in fname; 571 578 EXAMPLE: example texobj; shows an example 579 " 572 580 { 573 581 int i,j,k,nr,nc,linear,Tw,Dollars; … … 844 852 845 853 proc texproc(string fname,string pname) 846 USAGE: opentex(fname,pname); fname,pname = string854 "USAGE: opentex(fname,pname); fname,pname = string 847 855 RETURN: string, the proc in a verbatim environment in TeX-typesetting 848 856 if fname == empty string; 849 857 otherwise append this to file fname.tex; return nothing 850 NOTE: preceeding ">>" end ending ".tex" may miss in fname;858 NOTE: preceeding >> end ending \".tex\" may miss in fname; 851 859 CAUTION: texproc cannot applied on itself correctly 852 860 EXAMPLE: example texproc; shows an example 861 " 853 862 { 854 863 int i,j=1,1; … … 912 921 913 922 proc texring(string fname, def r, list #) 914 USAGE: texring(fname, r[,l]); fname = string; r = ring;915 916 coefficint field etc. see example texdemo();923 "USAGE: texring(fname, r[,l]); fname = string; r = ring; 924 l=list of strings : controls the symbol for 925 coefficient field etc. see example texdemo(); 917 926 RETURN: string, the ring in TeX-typesetting if fname == empty string; 918 927 otherwise append this to file fname.tex; return nothing 919 NOTE: preceeding ">>" end ending ".tex" may miss in fname;928 NOTE: preceeding >> end ending \".tex\" may miss in fname; 920 929 EXAMPLE: example texring; shows an example 930 " 921 931 { 922 932 int i,galT,flag,mipo,nopar,Dollars,TB,TA; … … 1096 1106 1097 1107 proc rmx(string fname) 1098 USAGE: rmx(fname); fname = string1108 "USAGE: rmx(fname); fname = string 1099 1109 RETURN: nothing; removes .log and .aux files associated to file <fname> 1100 removes tex and xdvi file too, if suffix ".tex" or ".dvi" is given1110 removes tex and xdvi file too, if suffix \".tex\" or \".dvi\" is given 1101 1111 NOTE: if fname ends by .dvi or .tex 1102 1112 fname.dvi or fname.dvi and fname.tex will be deleted, too 1103 1113 EXAMPLE: example rmx; shows an example 1114 " 1104 1115 { 1105 1116 int i,suffix= 1,0; … … 1149 1160 1150 1161 proc xdvi(string fname, list #) 1151 USAGE: xdvi(fname[,style]); fname,style = string1162 "USAGE: xdvi(fname[,style]); fname,style = string 1152 1163 RETURN: nothing; displays dvi-file fname.dvi with previewer xdvi 1153 1164 NOTE: ending .dvi may miss in fname 1154 1165 style overwrites the default setting xdvi 1155 EXAMPLE: example xdvi ; shows an example 1166 EXAMPLE: example xdvi; shows an example 1167 " 1156 1168 { 1157 1169 int i=1; … … 1196 1208 1197 1209 proc texpoly(string fname,def p,list #) 1210 "USAGE: texpoly(fname,p[,l]); fname = string; p = poly,ideal; l formation str 1211 RETURN: string, the objects in TeX-typesetting if fname == empty string; 1212 otherwise append this to file fname.tex; return nothing 1213 NOTE: preceeding ">>" end ending ".tex" may miss in fname; 1214 EXAMPLE: example texpoly; shoes an example 1215 " 1198 1216 { 1199 1217 def @r = basering; … … 1429 1447 } 1430 1448 1431 proc parsp(string cfmt, int b)1449 static proc parsp(string cfmt, int b) 1432 1450 { string mt, nom,denom; 1433 1451 int fl1,fl2,sz1,sz2,msz; … … 1465 1483 } 1466 1484 1467 proc parst(string s,int sec) // parse parameter1485 static proc parst(string s,int sec) // parse parameter 1468 1486 // sec parameter to see if in parsp a fraction follows 1469 1487 { int i,j =1,-1; … … 1599 1617 1600 1618 1601 proc parselong(string s)1619 static proc parselong(string s) 1602 1620 { 1603 1621 int i,j,k,b,mz; … … 1663 1681 ///////////////////////////// PART0 ////////////////////////////////////////// 1664 1682 1665 proc part0(string fname)1683 static proc part0(string fname) 1666 1684 { 1667 1685 int texdemopart =0; … … 1676 1694 //echo =2; 1677 1695 1678 1696 proc randompoly(int n,int cm,int em) 1679 1697 { 1680 1698 int i,j,k; … … 1687 1705 if (np) 1688 1706 { 1689 // for(k=1; k<=2;k++) // zwei Terme1690 // {1691 1707 nm=random(-cm,cm); 1692 1708 for (j=1;j<=np;j++) 1693 1709 { nm=nm*par(j)^random(-em/ 2,em/ 2);} 1694 1710 nom = nom + nm; 1695 // } 1696 // for(k=1; k<=2;k++) // zwei Terme 1697 // { 1711 1698 1712 nm=random(-cm,cm); 1699 1713 for (j=1;j<=np;j++) 1700 1714 { nm=nm*par(j)^random(-em/ 2,em/ 2);} 1701 1715 denom = denom + nm; 1702 // }1703 1716 if (denom!=0) {g = nom*denom^-1;} 1704 1717 else {g = 0;} … … 1775 1788 1776 1789 write(fname,"\\section{Introduction}"); 1777 write(fname,"The procedures in \\verb|tex.lib| translate the output of 1778 Singular in \\LaTeX text. Most of the examples in this document are generated 1779 randomly by Singular itself and passed through the procs from \\verb|tex.lib|. 1780 Consequently, every document doesnot show merely how the \\verb|tex.lib| works 1790 write(fname,"The procedures in \\verb|latex.lib| translate the output of 1791 Singular in \\LaTeX \\ text. 1792 Most of the examples in this document are generated 1793 randomly by Singular itself and passed through the procs from 1794 \\verb|latex.lib|. Consequently, 1795 every document does not show merely how the \\verb|latex.lib| works 1781 1796 but looks differently in large parts."); 1782 1797 write(fname,bv + 1783 1798 " 1784 1785 LIBRARY: tex.lib PROCEDURES FOR TYPESET OF SINGULAROBJECTS IN TEX 1786 1787 closetex( s);writes closing line for TeX-document1788 opentex( s); writes header for TeX-file s1789 tex( s); call latex for TeX-file s1790 texdemo( ); produces a latexfile explaining the features of this lib1791 texfactorize(fn ame,f); createstring in TeX-Symbolformat for factors of poly f1792 texmap(fn ame,m,r1,r2); createstring in TeX-Symbolformat for map m:r1->r21793 texname(fn ame,s); createstring in TeX-Symbolformat for identifier1799 LIBRARY: latex.lib PROCEDURES FOR TYPESET OF SINGULAROBJECTS IN LATEX2E 1800 1801 1802 closetex(fnm); writes closing line for TeX-document 1803 opentex(fnm); writes header for TeX-file fnm 1804 tex(fnm); calls LaTeX2e for TeX-file fnm 1805 texdemo([n]); produces a file explaining the features of this lib 1806 texfactorize(fnm,f); creates string in TeX-Symbolformat for factors of poly f 1807 texmap(fnm,m,r1,r2); creates string in TeX-Symbolformat for map m:r1->r2 1808 texname(fnm,s); creates string in TeX-Symbolformat for identifier 1794 1809 texobj(l); creates string in TeX-Symbolformat for any (basic) type 1795 1810 texpoly(f,n[,l]); creates string in TeX-Symbolformat for poly 1796 texproc(fn ame,p); createstring in TeX-Symbolformat of text from proc p1797 texring(fn ame,r[,l]); createstring in TeX-Symbolformat for ring/qring1798 rmx(s); remove .aux and .log files of TeXfile s1799 xdvi(s); call xdvi for dvi-file s1811 texproc(fnm,p); creates string in TeX-Symbolformat of text from proc p 1812 texring(fnm,r[,l]); creates string in TeX-Symbolformat for ring/qring 1813 rmx(s); removes .aux and .log files of TeXfile s 1814 xdvi(s); calls xdvi for dvi-file s 1800 1815 (parameters in square brackets [] are optional) 1801 1816 … … 1803 1818 TeXwidth, TeXnofrac, TeXbrack, TeXproj, TeXaligned, TeXreplace, NoDollars 1804 1819 are used to control the typesetting 1805 Call example texdemo; to become familiar with the features of tex.lib1820 Call example texdemo; to become familiar with the features of latex.lib 1806 1821 1807 1822 " + … … 1833 1848 write(fname,"\\section{Opening a \\LaTeX\\ file}"); 1834 1849 write(fname,"All starts by defining a variable " + nl 1835 + bv + "> string fname = \" tldemo.tex\";" + nl +1850 + bv + "> string fname = \"" + fname + "\";" + nl + 1836 1851 "> texopen(fname);" + ev + nl); 1837 1852 write(fname,"This variable \\verb|fname| has to given as first argument to 1838 all procedures in \\verb| tex.lib|");1853 all procedures in \\verb|latex.lib|"); 1839 1854 1840 1855 //% opentex, defaulted to latex, possibly extension are ... and … … 1843 1858 1844 1859 pagewidth = 65; 1845 int TeXwidth = 80; export TeXwidth;1860 int TeXwidth = 100; export TeXwidth; 1846 1861 "part 0 generated " + nl; 1847 1862 } //part0 … … 1851 1866 1852 1867 1853 proc part1(string fname)1868 static proc part1(string fname) 1854 1869 { int st = defined(texdemopart); 1855 1870 … … 2006 2021 2007 2022 2008 // -6b------- a ring in char 11 , and indexed parameters --------- ----------2023 // -6b------- a ring in char 11003, and indexed parameters --------- ---------- 2009 2024 write(fname, 2010 2025 " A ring in characteristic 11 and indexed parameters. 2011 2026 " +nl); 2012 ring rt=(11 111,t1,t2,t3),(X,Y),dp;2027 ring rt=(11003,t1,t2,t3),(X,Y),dp; 2013 2028 poly g = 8*(-t1+t2)/(t1+t3)*X + t2*Y -1; g; 2014 2029 poly f = randompoly(5,25,25); f; 2015 2030 write(fname, 2016 2031 bv + 2017 "> ring rt=(11 111,t1,t2,t3),(X,Y),dp; texring(fname,rt);2032 "> ring rt=(11003,t1,t2,t3),(X,Y),dp; texring(fname,rt); 2018 2033 > poly g = 8*(-t1+t2)/(t1+t3)*X + t2*Y -1; g; texpoly(fname,g);" +nl + 2019 2034 string(g) + nl + … … 2096 2111 // -10--------- a quotient ring performed from ---------- 2097 2112 write(fname, 2098 " A quotient ring .2113 " A quotient ring performed from \\verb|r0| 2099 2114 " +nl); 2100 2115 setring r0; … … 2196 2211 2197 2212 write(fname,"Any correct letter in \\LaTeX \\ notation may be used to describe 2198 the coefficientfield. If the letter is k, K or R it should ! forcew texring2213 the coefficientfield. If the letter is k, K or R it forces \\verb|texring| 2199 2214 not to print the parameters. This will be useful for a ring described by an 2200 2215 algebraic extension",nl2); … … 2209 2224 2210 2225 // texobj(fname,"with k = "); 2211 2226 2227 write(fname,nl2, 2228 "The algebraic extension is diplayed with the optional paramater 2229 \\verb|mipo|"); 2230 write(fname, 2231 bv + 2232 "> texring(fname,ralg,\"mipo\");" + nl + 2233 ev 2234 ); 2235 2236 texring(fname, ralg,"mipo"); 2237 2238 2212 2239 write(fname,nl,"\\Line"); 2213 2240 // displaying only certain vars … … 2245 2272 // passing over additional information 2246 2273 2247 write(fname,"If you want to mark a ring as the Invariantring under a group,2248 additional informations starting with \\verb|^| willbe added.",nl2);2274 write(fname,"If you want to mark a ring as the invariantring under a group, 2275 additional informations starting with \\verb|^| may be added.",nl2); 2249 2276 2250 2277 write(fname, … … 2257 2284 2258 2285 write(fname,nl2,"All these arguments may be passed over in any order as 2259 optional arguments, but it may completely --- result if too much of them2260 are used at the same time",nl);2286 optional arguments, but it may give a rather nonsense result if too much of 2287 them are used at the same time",nl); 2261 2288 2262 2289 write(fname, … … 2278 2305 2279 2306 2280 proc part2(string fname)2307 static proc part2(string fname) 2281 2308 { int st = defined(texdemopart); 2282 2309 … … 2328 2355 2329 2356 2330 write(fname,nl2,"If \\verb|texfactorize| is called by the name of the polynom, 2331 the result is the following" + lb,nl);2332 2333 2334 write(fname,nl2, "Noch nicht implemtiert" + lb,nl2);2357 //write(fname,nl2, If \\verb|texfactorize| is called by the name of the 2358 // polynom, the result is the following" + lb,nl); 2359 2360 2361 // write(fname,nl2, "Noch nicht implemtiert" + lb,nl2); 2335 2362 2336 2363 … … 2351 2378 write(fname,"The global variable \\verb|TeXreplace| must be a list 2352 2379 whose entries are twoelemented lists again; wherby the first entry is the 2353 word which should be replaced and second is the replacing word." + lb + 2354 "---- ---- this holds for texname anmd texmap too ---- ---- " + lb + 2355 "It is most usefule to write the greec letters correctly. Notice to write 2356 a \\verb|\\\\\ | at the beginning of a \\TeX \\ symbol." + lb); 2380 word which should be replaced and second is the replacing word." + 2381 "This is may be applied to replace variablenames, but holds also for texname 2382 anmd texmap" + lb + 2383 "It is most useful to write the greece letters correctly. Notice that it 2384 is necesarry to write 2385 a double backslash \\verb|\\\\\ | at the beginning of 2386 a \\TeX \\ symbol." + lb); 2357 2387 2358 2388 … … 2411 2441 kill TeXreplace; 2412 2442 2413 write(fname,"If \\verb|TeXreplace| is defined, the translation into \\TeX --code2414 runs significantly slower, because every polynom will be compiled in the2443 write(fname,"If \\verb|TeXreplace| is defined, the translation into \\TeX code 2444 runs significantly slower, because every polynomial will be compiled in the 2415 2445 \\verb|non short| mode."+ lb ); 2416 2446 … … 2434 2464 "\\]",nl); 2435 2465 2436 write(fname,"Notice that two letters asx counts as three subscripts or2466 write(fname,"Notice that two letters like x counts as three subscripts or 2437 2467 exponents",nl); 2438 2468 … … 2441 2471 //---------------------------------------------------------- 2442 2472 2443 write(fname,"\\verb|TeXwidth| is the only global variable which will be 2444 from Singular automatically. Its default value is -12445 i.e. wrapping is set off "+ lb);2473 write(fname,"\\verb|TeXwidth| is the only global variable which will be defined 2474 automatically from Singular. Its default value is -1 2475 i.e. wrapping is set off."+ lb); 2446 2476 2447 2477 // Examples: … … 2450 2480 write(fname,"\\item",nl); 2451 2481 2452 write(fname,"Up to now the value is -1");2482 write(fname,"Up to now the value is " + string(TeXwidth)+"."); 2453 2483 2454 2484 write(fname, … … 2512 2542 write(fname,nl2,"\\Line",nl); 2513 2543 2514 write(fname,nl2, " offset for poly " + lb, nl);2515 2516 write(fname,nl2,"\\Line",nl);2544 //write(fname,nl2, " offset for poly " + lb, nl); 2545 2546 //write(fname,nl2,"\\Line",nl); 2517 2547 2518 2548 write(fname,"As seen there are two possibilities to tex a polynomial. The … … 2521 2551 " The command \\verb|texobj| is the most general one, if a polynomial 2522 2552 will be texed with this command, it will be written in display mode and 2523 the length of the terms will be counted ....." + lb,nl2,2553 the length of the terms will be counted appropriately ." + lb,nl2, 2524 2554 "Let us compare the output for \\verb|texpoly| and \\verb|texobj|."+lb); 2525 2555 2526 2527 2556 write(fname, 2528 2557 bv + 2529 2558 "> setring r3; 2530 > texpoly(fname,f );" + nl +2559 > texpoly(fname,f/180);" + nl + 2531 2560 ev); 2532 2561 2533 2562 2534 2563 setring r3; 2535 texpoly(fname,f );2564 texpoly(fname,f/180); 2536 2565 2537 2566 write(fname,nl2, "Now the same again with \\verb|texobj| "+ lb,nl); … … 2539 2568 write(fname, 2540 2569 bv + 2541 "> texobj(fname,f );2570 "> texobj(fname,f/180); 2542 2571 " + nl + 2543 2572 ev); 2544 2573 2545 texobj(fname,f );2574 texobj(fname,f/180); 2546 2575 2547 2576 … … 2587 2616 write(fname,"\\Line"); 2588 2617 //---------------------------------------------------------------------- 2589 write(fname,"If you prefer other bracketsjust set them");2618 write(fname,"If other brackets are prefered, just set them"); 2590 2619 2591 2620 write(fname, … … 2685 2714 2686 2715 2687 proc part3(string fname)2716 static proc part3(string fname) 2688 2717 { int st = defined(texdemopart); 2689 2718 … … 3015 3044 //----------------------------------texname------------------- 3016 3045 3017 write(fname,"\\section{Names of identifiers}");3018 3019 3020 write(fname,"The proc \\verb|texname| is used to write indexed names in a3021 correct way"+lb,nl);3046 //write(fname,"\\section{Names of identifiers}"); 3047 3048 3049 //write(fname,"The proc \\verb|texname| is used to write indexed names in a 3050 //correct way"+lb,nl); 3022 3051 3023 3052 … … 3027 3056 write(fname,"Finally, here is the procedure we used to generate the random 3028 3057 polynomials."); 3029 write(fname,"\\newpage");3058 // write(fname,"\\newpage"); 3030 3059 texproc(fname,"randompoly"); 3031 3060 … … 3037 3066 "\\verb|tex(fname)| and displayed with \\verb|xdvi(fname)|"); 3038 3067 3039 write(fname,"\\section{Remarks}");3068 // write(fname,"\\section{Remarks}"); 3040 3069 closetex(fname); 3041 3070 3042 3071 "end of part3" + nl; 3072 3073 pagewidth =80; 3043 3074 } 3044 3075
Note: See TracChangeset
for help on using the changeset viewer.