On November 16, 2006 9:31 PM Waldek Hebisch wrote: > > Ralf asked: > > > Does somebody know where the file ht.awk is? > > > > All the .ht files say... > > > > % !! DO NOT MODIFY THIS FILE BY HAND !! Created by ht.awk. > > > > So if there is/were a script that generates the .ht files, > why keep them > > under source code control? >
You can find the ht.awk script in the src/htex directory in this tarball http://wiki.axiom-developer.org/public/htex.tgz See also the src/doc/htex files. > I think we can forget about 'ht.awk': the whole process could not > be very complicated, so it should be easy to create a new script. > But the bigger problem is which workflow _we_ want to have? IMO > we should stick to a small controlled subset of latex as a main > format and generate rest from it (the point is that once we allow > more Latex features we will spent more time developing tools then > writing documentation). > It looks to me like the original Axiom developers had already given this some thought. Perhaps the src/doc/htex files represent this sort of process? > There is a second problem: .ht files in general contain more > precise markup then 'book.pamphlet', but some differences may be > due to editing done by Tim. Yes, I think so. Tim has been editing the .tex files, not the original .htex files. > ATM the main difference I see is that book contains Tex formulas, > but hypertex pages use textual output from Axiom. I think that reflects the limitations of hyperdoc that cannot display actual Tex formulas. On the other hand NAG did have a commerical version of Axiom that used the Texplorer browser to display these formula, hyperdoc documentation, and even live graphics. > > > > > And, Waldek, didn't you say that also the .pht files are > > generated? > > > > I put the following in 'src/hyper/Makefile.pamphlet': > > In the long term, the [[.pht]] and viewports should be > generated at either > build time or installation time using commands like: > \begin{verbatim} > rm -f ht.db > ${HTADD} *.ht > for A in `ls *.ht`; do ${SMAN} -paste $$a ; done > rm -f ht.db > ${HTADD} *.ht *.pht > \end{verbatim} > Ah, so it is 'htadd' that is supposed to create .pht files from the .ht files. I see. Is there any documentation of this process? > Hypertex has special code to extract parts of .ht file and prepare > .input file for Axiom. Once .input is ready Hypertex tells > AXIOMsys to execute it, writing output to a file. Then Hypertex > should collect the output into .pht page. > > This 'almost' works: some pages are nicely generated, but on other > it stops and one has manually quit Axiom. It seems that Hypertex > has problem detecting that AXIOMsys finished writing output file. > Wow! How did you learn/know that this functionality even existed? :-) By reading the code? I am very pleased and amazed. I tried the following: [EMAIL PROTECTED] pages]$ pwd /home/page/axiom.build-improvements/src/hyper/pages [EMAIL PROTECTED] pages]$ sman -paste CYCLES.ht GCL (GNU Common Lisp) 2.6.8 CLtL1 Nov 15 2006 13:37:33 Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl) Binary License: GPL due to GPL'ed components: (READLINE BFD UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. Temporary directory for compiler files set to /tmp/ AXIOM Computer Algebra System Version: Axiom build-improvements branch 2006-11-09 Timestamp: Wednesday November 15, 2006 at 19:04:51 ---------------------------------------------------------------------------- - Issue )copyright to view copyright notices. Issue )summary for a summary of useful system commands. Issue )quit to leave AXIOM and return to shell. ---------------------------------------------------------------------------- - (1) -> (1) -> making CYCLES.input parsing: CycleIndicatorsXmpPage writing: )expose EVALCYC Loading /home/page/axiom.test/target/i686-pc-linux/autoload/bc-matrix. Loading /home/page/axiom.test/target/i686-pc-linux/autoload/bc-misc. Loading /home/page/axiom.test/target/i686-pc-linux/autoload/bc-solve. Loading /home/page/axiom.test/target/i686-pc-linux/autoload/bc-util. Loading /home/page/axiom.test/target/i686-pc-linux/autoload/ht-util. Loading /home/page/axiom.test/target/i686-pc-linux/autoload/htsetvar. Loading /home/page/axiom.test/target/i686-pc-linux/autoload/ht-root. Loading /home/page/axiom.test/target/i686-pc-linux/autoload/br-con. Loading /home/page/axiom.test/target/i686-pc-linux/autoload/br-data. Loading /home/page/axiom.test/target/i686-pc-linux/autoload/showimp. Loading /home/page/axiom.test/target/i686-pc-linux/autoload/br-op1. Loading /home/page/axiom.test/target/i686-pc-linux/autoload/br-op2. Loading /home/page/axiom.test/target/i686-pc-linux/autoload/br-search. Loading /home/page/axiom.test/target/i686-pc-linux/autoload/br-util. Loading /home/page/axiom.test/target/i686-pc-linux/autoload/topics. Loading /home/page/axiom.test/target/i686-pc-linux/autoload/br-prof. Loading /home/page/axiom.test/target/i686-pc-linux/autoload/br-saturn. All user variables and function definitions have been cleared. EvaluateCycleIndicators is now explicitly writing: complete 1 exposed in frame frame0 writing: complete 2 writing: complete 3 writing: complete 7 writing: elementary 7 writing: alternating 7 writing: cyclic 7 writing: dihedral 7 writing: graphs 5 writing: cap(complete 2**2, complete 2*complete 1**2) writing: cap(elementary 2**2, complete 2*complete 1**2) writing: cap(complete 3*complete 2*complete 1,complete 2**2*complete 1**2) writing: cap(elementary 3*elementary 2*elementary 1,complete 2**2*complete 1**2) writing: cap(complete 3*complete 2*complete 1,elementary 2**2*elementary 1**2) writing: eval(cup(complete 3*complete 2*complete 1, cup(complete 2**2*complete 1**2,complete 2**3))) writing: square:=dihedral 4 writing: cap(complete 2**2,square) writing: cap(complete 3*complete 2**2,dihedral 7) writing: cap(graphs 5,complete 7*complete 3) writing: s(x) == powerSum(x) writing: cube:=(1/24)*(s 1**8+9*s 2**4 + 8*s 3**2*s 1**2+6*s 4**2) Compiling function s with type PositiveInteger -> SymmetricPolynomial Fraction Integer writing: cap(complete 4**2,cube) writing: cap(complete 2**3*complete 1**2,wreath(elementary 4,elementary 2)) writing: cap(complete 2**3*complete 1**2,wreath(elementary 4,complete 2)) writing: cap(complete 2**3*complete 1**2,wreath(complete 4,elementary 2)) writing: cap(complete 2**3*complete 1**2,wreath(complete 4,complete 2)) writing: x: ULS(FRAC INT,'x,0) := 'x writing: ZeroOrOne: INT -> ULS(FRAC INT, 'x, 0) writing: Integers: INT -> ULS(FRAC INT, 'x, 0) writing: ZeroOrOne n == 1+x**n writing: ZeroOrOne 5 Compiling function ZeroOrOne with type Integer -> UnivariateLaurentSeries(Fraction Integer,x,0) writing: Integers n == 1/(1-x**n) writing: Integers 5 Compiling function Integers with type Integer -> UnivariateLaurentSeries(Fraction Integer,x,0) writing: eval(ZeroOrOne, graphs 5) writing: eval(ZeroOrOne,dihedral 8) writing: eval(Integers,complete 4) writing: eval(Integers,elementary 4) writing: eval(ZeroOrOne,cube) writing: eval(Integers,cube) writing: eval(Integers,graphs 5) writing: eval(ZeroOrOne ,graphs 15) writing: cap(dihedral 30,complete 7*complete 8*complete 5*complete 10) writing: sf3221:= SFunction [3,2,2,1] writing: cap(sf3221,complete 2**4) writing: cap(sf3221, powerSum 1**8) writing: eval(Integers, sf3221) At this point Axiom appeared to hang, but I hit Enter and got a promt. (47) -> )quit Please enter y or yes if you really want to leave the interactive environment and return to the operating system: yes ---------- The following .input file was generated. [EMAIL PROTECTED] pages]$ cat CYCLES.input -- Input for page CycleIndicatorsXmpPage )clear all )expose EVALCYC complete 1 complete 2 complete 3 complete 7 elementary 7 alternating 7 cyclic 7 dihedral 7 graphs 5 cap(complete 2**2, complete 2*complete 1**2) cap(elementary 2**2, complete 2*complete 1**2) cap(complete 3*complete 2*complete 1,complete 2**2*complete 1**2) cap(elementary 3*elementary 2*elementary 1,complete 2**2*complete 1**2) cap(complete 3*complete 2*complete 1,elementary 2**2*elementary 1**2) eval(cup(complete 3*complete 2*complete 1, cup(complete 2**2*complete 1**2,complete 2**3))) square:=dihedral 4 cap(complete 2**2,square) cap(complete 3*complete 2**2,dihedral 7) cap(graphs 5,complete 7*complete 3) s(x) == powerSum(x) cube:=(1/24)*(s 1**8+9*s 2**4 + 8*s 3**2*s 1**2+6*s 4**2) cap(complete 4**2,cube) cap(complete 2**3*complete 1**2,wreath(elementary 4,elementary 2)) cap(complete 2**3*complete 1**2,wreath(elementary 4,complete 2)) cap(complete 2**3*complete 1**2,wreath(complete 4,elementary 2)) cap(complete 2**3*complete 1**2,wreath(complete 4,complete 2)) x: ULS(FRAC INT,'x,0) := 'x ZeroOrOne: INT -> ULS(FRAC INT, 'x, 0) Integers: INT -> ULS(FRAC INT, 'x, 0) ZeroOrOne n == 1+x**n ZeroOrOne 5 Integers n == 1/(1-x**n) Integers 5 eval(ZeroOrOne, graphs 5) eval(ZeroOrOne,dihedral 8) eval(Integers,complete 4) eval(Integers,elementary 4) eval(ZeroOrOne,cube) eval(Integers,cube) eval(Integers,graphs 5) eval(ZeroOrOne ,graphs 15) cap(dihedral 30,complete 7*complete 8*complete 5*complete 10) sf3221:= SFunction [3,2,2,1] cap(sf3221,complete 2**4) cap(sf3221, powerSum 1**8) eval(Integers, sf3221) ------------ And a new CYCLES.pht file seems to have been generated. [EMAIL PROTECTED] pages]$ ls -l CYCLES.* -rw-rw-r-- 1 page page 11323 Nov 3 21:47 CYCLES.ht -rw-rw-r-- 1 page page 1587 Nov 16 22:28 CYCLES.input -rw-rw-r-- 1 page page 68987 Nov 16 22:28 CYCLES.pht [EMAIL PROTECTED] pages]$ Regards, Bill Page. _______________________________________________ Axiom-developer mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/axiom-developer
