ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* TaBlE from Lua
@ 2011-02-23 23:07 Daniel Lyons
  2011-02-23 23:19 ` Wolfgang Schuster
  2011-02-24  1:16 ` Philipp Gesang
  0 siblings, 2 replies; 6+ messages in thread
From: Daniel Lyons @ 2011-02-23 23:07 UTC (permalink / raw)
  To: ntg-context

Is there a convenient way to create TaBlE tables from Lua? If so,
where can I read about it?

Thanks,

-- 
Daniel
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: TaBlE from Lua
  2011-02-23 23:07 TaBlE from Lua Daniel Lyons
@ 2011-02-23 23:19 ` Wolfgang Schuster
  2011-02-24  1:16 ` Philipp Gesang
  1 sibling, 0 replies; 6+ messages in thread
From: Wolfgang Schuster @ 2011-02-23 23:19 UTC (permalink / raw)
  To: mailing list for ConTeXt users


Am 24.02.2011 um 00:07 schrieb Daniel Lyons:

> Is there a convenient way to create TaBlE tables from Lua?

\startluacode
context.starttable({"|l|l|"})
context.HL()
context.NC()
context("One")
context.NC()
context("Two")
context.NC()
context.AR()
context.HL()
context.stoptable()
\stopluacode

Wolfgang


___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: TaBlE from Lua
  2011-02-23 23:07 TaBlE from Lua Daniel Lyons
  2011-02-23 23:19 ` Wolfgang Schuster
@ 2011-02-24  1:16 ` Philipp Gesang
  2011-02-24  1:45   ` Daniel Lyons
  1 sibling, 1 reply; 6+ messages in thread
From: Philipp Gesang @ 2011-02-24  1:16 UTC (permalink / raw)
  To: mailing list for ConTeXt users


[-- Attachment #1.1.1: Type: text/plain, Size: 901 bytes --]

On 2011-02-23 <17:07:38>, Daniel Lyons wrote:
> Is there a convenient way to create TaBlE tables from Lua? If so,
> where can I read about it?

Good evening, Daniel!

[-1] Isn’t TaBlE deprecated?  <http://wiki.contextgarden.net/Tables_Overview>

[0] If you aim for convenience, wouldn’t you rather want to
    switch to \[start|stop]tabulate? Its syntax is very similar
    and there are a few examples to learn from in the context
    source code.

[1] I don’t know how your table structure looks like, but the
    example 1 can be a starting point, assuming a 2dimensional
    table where all rows have the same element count:

[2] Item example 2, but using the cld interface
    <http://wiki.contextgarden.net/cld>.

Put both files in the same directory and run “context” on
table.tex to build the examples.

Regards, Philipp

> 
> Thanks,
> 
> -- 
> Daniel

[-- Attachment #1.1.2: table.tex --]
[-- Type: text/x-tex, Size: 582 bytes --]

\registerctxluafile{table}{}

%%% Example 1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\typesetatable{%
  \ctxlua{userdata.do_typesetatable(userdata.t)}%
}

%%% Example 2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\typesetcldtable{%
  \ctxlua{userdata.do_typesetcldtable(userdata.t)}%
}

\starttext

%%% Demo 1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\placetable[here]{Concatenation based}{\typesetatable}

%%% Demo 2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\placetable[here]{CLD-based}{\typesetcldtable}

\stoptext \endinput

[-- Attachment #1.1.3: table.lua --]
[-- Type: text/plain, Size: 1151 bytes --]

userdata = userdata or { }

userdata.t = {
    { 0, 0, 0, },
    { 0, 0, 1, },
    { 0, 1, 0, },
    { 0, 1, 1, },
    { 1, 0, 0, },
    { 1, 0, 1, },
    { 1, 1, 0, },
    { 1, 1, 1, },
}

--- Lua stuff 1 -------------------------------------------------
userdata.env = [[
\starttable[%s]
  \HL
%s
  \HL
\stoptable
]]

local fmt, rep, unpack = string.format, string.rep, table.unpack
userdata.do_typesetatable = function (t)
    local maxx, maxy, lines = #t[1], #t, { }
    local template = rep("\\NC %s", maxx)
    for n=1, maxy do
        local row = t[n]
        lines[n] = "  " .. fmt(template, unpack(row)) .. "\\AR"
    end
    context( fmt(userdata.env, "|" .. rep("c|", maxx), table.concat(lines, "\n")) )
end

--- Lua stuff 2 -------------------------------------------------
local AR, HL, NC = context.AR, context.HL, context.NC

userdata.do_typesetcldtable = function (t)
    local maxx, maxy = #t[1], #t
    context.starttable({ "|" .. rep("c|", maxx) })
    HL()
    for n=1, maxy do
        local row = t[n]
        for m=1, maxx do
            NC() context(row[m])
        end
        AR()
    end
    HL()
    context.stoptable()
end

[-- Attachment #1.2: Type: application/pgp-signature, Size: 198 bytes --]

[-- Attachment #2: Type: text/plain, Size: 486 bytes --]

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: TaBlE from Lua
  2011-02-24  1:16 ` Philipp Gesang
@ 2011-02-24  1:45   ` Daniel Lyons
  2011-02-24  6:35     ` luigi scarso
  0 siblings, 1 reply; 6+ messages in thread
From: Daniel Lyons @ 2011-02-24  1:45 UTC (permalink / raw)
  To: mailing list for ConTeXt users


On Feb 23, 2011, at 6:16 PM, Philipp Gesang wrote:

> On 2011-02-23 <17:07:38>, Daniel Lyons wrote:
>> Is there a convenient way to create TaBlE tables from Lua? If so,
>> where can I read about it?
> 
> Good evening, Daniel!
> 
> [-1] Isn’t TaBlE deprecated?  <http://wiki.contextgarden.net/Tables_Overview>

I didn't know that!

> [0] If you aim for convenience, wouldn’t you rather want to
>    switch to \[start|stop]tabulate? Its syntax is very similar
>    and there are a few examples to learn from in the context
>    source code.

My particular situation is a bit more involved. I want to put SQL in my ConTeXt source and have it run it against my database and format the result nicely in my document. I think I see how to do it, I just need to be able to take the parsed output and make the visually appealing table.

> [1] I don’t know how your table structure looks like, but the
>    example 1 can be a starting point, assuming a 2dimensional
>    table where all rows have the same element count:

It's not going to be too fancy, just headers and rows with the same number of columns on each line. I do want to be able to control how they get aligned but otherwise nothing interesting.

> [2] Item example 2, but using the cld interface
>    <http://wiki.contextgarden.net/cld>.
> 
> Put both files in the same directory and run “context” on
> table.tex to build the examples.

Thanks!

— 
Daniel Lyons

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: TaBlE from Lua
  2011-02-24  1:45   ` Daniel Lyons
@ 2011-02-24  6:35     ` luigi scarso
  2011-02-24  6:48       ` Daniel Lyons
  0 siblings, 1 reply; 6+ messages in thread
From: luigi scarso @ 2011-02-24  6:35 UTC (permalink / raw)
  To: mailing list for ConTeXt users; +Cc: Roberto Giacomelli

On Thu, Feb 24, 2011 at 2:45 AM, Daniel Lyons <fusion@storytotell.org> wrote:
>
> On Feb 23, 2011, at 6:16 PM, Philipp Gesang wrote:
>
>> On 2011-02-23 <17:07:38>, Daniel Lyons wrote:
>>> Is there a convenient way to create TaBlE tables from Lua? If so,
>>> where can I read about it?
>>
>> Good evening, Daniel!
>>
>> [-1] Isn’t TaBlE deprecated?  <http://wiki.contextgarden.net/Tables_Overview>
>
> I didn't know that!
>
>> [0] If you aim for convenience, wouldn’t you rather want to
>>    switch to \[start|stop]tabulate? Its syntax is very similar
>>    and there are a few examples to learn from in the context
>>    source code.
>
> My particular situation is a bit more involved. I want to put SQL in my ConTeXt source and have it run it against my database and format the result nicely in my document. I think I see how to do it, I just need to be able to take the parsed output and make the visually appealing table.
Have a look at
http://robitex.wordpress.com/2011/02/22/postgresql-gestisce-i-dati-lualatex-li-stampa/
It's in italian & latex & postgres, but pretty clear.

-- 
luigi
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: TaBlE from Lua
  2011-02-24  6:35     ` luigi scarso
@ 2011-02-24  6:48       ` Daniel Lyons
  0 siblings, 0 replies; 6+ messages in thread
From: Daniel Lyons @ 2011-02-24  6:48 UTC (permalink / raw)
  To: mailing list for ConTeXt users


On Feb 23, 2011, at 11:35 PM, luigi scarso wrote:

> On Thu, Feb 24, 2011 at 2:45 AM, Daniel Lyons <fusion@storytotell.org> wrote:
>> 
>> On Feb 23, 2011, at 6:16 PM, Philipp Gesang wrote:
>> 
>>> On 2011-02-23 <17:07:38>, Daniel Lyons wrote:
>>>> Is there a convenient way to create TaBlE tables from Lua? If so,
>>>> where can I read about it?
>>> 
>>> Good evening, Daniel!
>>> 
>>> [-1] Isn’t TaBlE deprecated?  <http://wiki.contextgarden.net/Tables_Overview>
>> 
>> I didn't know that!
>> 
>>> [0] If you aim for convenience, wouldn’t you rather want to
>>>    switch to \[start|stop]tabulate? Its syntax is very similar
>>>    and there are a few examples to learn from in the context
>>>    source code.
>> 
>> My particular situation is a bit more involved. I want to put SQL in my ConTeXt source and have it run it against my database and format the result nicely in my document. I think I see how to do it, I just need to be able to take the parsed output and make the visually appealing table.
> Have a look at
> http://robitex.wordpress.com/2011/02/22/postgresql-gestisce-i-dati-lualatex-li-stampa/
> It's in italian & latex & postgres, but pretty clear.


This is gorgeous, and I'm sure it will come in handy, thanks! I'm glad to know I'm not alone in trying this.

My particular situation is a bit different though, I need to be able to do something along the lines of:

\startSQLinteraction
SELECT * FROM foo;
\stopSQLinteraction

and have it produce something like this (possibly):

SELECT * FROM mailinglists;
Listing 6.1

+-------------------+------------------------+
| mailing list name | email address          |
+-------------------+------------------------+
| ConTeXt           | ntg-context@ntg.nl     |
| Snap Framework    | snap@snapframework.com |
+-------------------+------------------------+
Output of Listing 6.1


My inspiration here is the Real World Haskell book, which ran the snippets in the book during rendering, ensuring both that the snippets actually work and that their output was faithful to the input. I don't mind having one connection as a constant.

— 
Daniel Lyons

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2011-02-24  6:48 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-02-23 23:07 TaBlE from Lua Daniel Lyons
2011-02-23 23:19 ` Wolfgang Schuster
2011-02-24  1:16 ` Philipp Gesang
2011-02-24  1:45   ` Daniel Lyons
2011-02-24  6:35     ` luigi scarso
2011-02-24  6:48       ` Daniel Lyons

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).