[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [Axiom-developer] ht.awk
From: |
Bill Page |
Subject: |
RE: [Axiom-developer] ht.awk |
Date: |
Thu, 16 Nov 2006 23:36:11 -0500 |
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:
address@hidden pages]$ pwd
/home/page/axiom.build-improvements/src/hyper/pages
address@hidden 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.
address@hidden 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.
address@hidden 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
address@hidden pages]$
Regards,
Bill Page.
- RE: [Axiom-developer] ht.awk, (continued)
Re: [Axiom-developer] ht.awk, Waldek Hebisch, 2006/11/16
- RE: [Axiom-developer] ht.awk,
Bill Page <=
Re: [Axiom-developer] ht.awk, root, 2006/11/17