<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">After some attempts to build crosswords puzzles with context, I found this approach:<div class=""><br class=""></div><div class="">1) <span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);" class="">Create the puzzle with  genxword</span></div><a href="https://github.com/riverrun/genxword" class="">https://github.com/riverrun/genxword</a><span class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"> </span><div class=""><span class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br class=""></span></div><div class=""><span class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">2) Edit the output table and change all {}  to  *</span></div><div class=""><span class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br class=""></span></div><div class=""><span class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">3) Save the table in a file (p.e. crosswords.txt) </span></div><div class=""><span class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br class=""></span></div><div class=""><span class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">3) In context use this script (Revised By Wolfgang Schuster)</span></div><div class=""><span class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br class=""></span></div><div class=""><span class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">\startluacode</span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">    context.startmidaligned()</span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">        context.bTABLE( { rulethickness = ".25pt", width = ".8cm", height = ".8cm", align = "{lohi, middle}" } )</span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">            for line in io.lines("crosswords.txt") do</span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">                for w in (line .. "|"):gmatch("([^|]*)|") do </span><br style="background-color: rgb(255, 255, 255);" class=""><span style="background-color: rgb(255, 255, 255);" class=""><font color="#000000" class=""><span style="caret-color: rgb(0, 0, 0);" class="">                    -- print (w)</span></font></span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">                    if w == ' ' then</span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">                        context.bTR()</span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">                    elseif w == '.' then</span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">                        context.eTR()</span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">                    else</span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">                        if w == '* ' then </span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">                            context.bTD( { frame = "off" } )</span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">                            context.eTD()</span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">                        else </span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">                            ww = string.match (w, "%d+")</span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">                            print (ww)</span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">                            if ww then</span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">                                context.bTD( { foregroundstyle = "\\bfxx" } )</span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">                                context("%s",ww)</span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">                                context.eTD()</span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">                            else</span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">                                context.bTD()</span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">                             -- context("%s",w)</span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">                                context.eTD()</span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">                            end</span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">                        end</span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">                    end</span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">                end</span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">            end</span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">        context.eTABLE()</span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">    context.stopmidaligned()</span><br style="background-color: rgb(255, 255, 255);" class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="">\stopluacode</span></span></div><div class=""><span class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span style="background-color: rgb(255, 255, 255);" class=""><br class=""></span></span></div><div class=""><span class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span style="background-color: rgb(255, 255, 255);" class=""><br class=""></span></span></div><div class=""><span class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span style="background-color: rgb(255, 255, 255);" class="">Files: </span></span></div><div class=""><span class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span style="background-color: rgb(255, 255, 255);" class=""><br class=""></span></span></div><div class=""><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><font color="#000000" class="">crossword.txt file:</font></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><font color="#000000" class=""><br class=""></font></div><div class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><div class=""> |* |* |[2]T|* |* |* |* |* |* |* |* |* |* |* |* |* |.</div><div class=""> |[1]A|D|R|I|A|N|O|* |* |* |* |* |* |* |* |* |.</div><div class=""> |* |* |A|* |* |* |* |* |* |* |* |* |* |* |* |* |.</div><div class=""> |[6]H|* |J|* |* |* |[4]T|* |* |* |* |* |* |* |* |* |.</div><div class=""> |[3]I|T|A|L|I|C|A|* |* |* |* |* |* |* |* |* |.</div><div class=""> |S|* |N|* |* |* |R|* |* |* |* |* |* |* |* |* |.</div><div class=""> |P|* |O|* |* |* |G|* |[10]S|* |* |[7]P|* |* |* |* |.</div><div class=""> |A|* |* |* |[5]G|U|A|D|A|L|Q|U|I|[9]V|I|[8]R|.</div><div class=""> |L|* |* |* |* |* |R|* |N|* |* |B|* |E|* |O|.</div><div class=""> |I|* |* |* |* |* |Y|* |T|* |* |L|* |N|* |M|.</div><div class=""> |S|* |* |* |* |* |E|* |I|* |* |I|* |U|* |A|.</div><div class=""> |* |* |* |* |* |* |N|* |P|* |* |O|* |S|* |N|.</div><div class=""> |* |* |* |* |* |* |* |* |O|* |* |* |* |* |* |O|.</div><div class=""> |* |* |* |* |* |* |* |* |N|* |* |* |* |* |* |S|.</div><div class=""> |* |* |* |* |* |* |* |* |C|* |* |* |* |* |* |* |.</div><div class=""> |* |* |* |[11]A|N|F|I|T|E|A|T|R|O|* |* |* |.</div><div class=""><br class=""></div><div class="">Output</div><div class=""><br class=""></div><div class=""><br class=""></div></div></div><div class=""><span class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span style="background-color: rgb(255, 255, 255);" class=""><br class=""></span></span></div><div class=""><span class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><img apple-inline="yes" id="D0F0AA49-B0C1-4075-8062-8896A1E856AD" src="cid:2A010464-26E3-4D21-BD49-497730A288F7@home" class=""></span></div><div class=""><span class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span style="background-color: rgb(255, 255, 255);" class=""><br class=""></span></span></div><div class=""><span class="" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><span style="background-color: rgb(255, 255, 255);" class=""><br class=""></span></span></div></body></html>