{"id":2416,"date":"2012-11-19T22:17:09","date_gmt":"2012-11-19T22:17:09","guid":{"rendered":"http:\/\/www.readytext.co.uk\/?p=2416"},"modified":"2013-02-13T17:06:15","modified_gmt":"2013-02-13T17:06:15","slug":"browsing-luatex-source-with-netbeans","status":"publish","type":"post","link":"https:\/\/www.readytext.co.uk\/?p=2416","title":{"rendered":"Browsing LuaTeX source with NetBeans"},"content":{"rendered":"<h1>Introduction<\/h1>\n<p>It&#8217;s been a long time since I posted anything on this blog, mainly because my job has been keeping me very busy. As time permits I&#8217;ve been reading parts of the LuaTeX source code in an attempt to better understand how it all works: cross-referencing the source code to explanations in the LuaTeX Reference. A couple of days ago I stumbled on the NetBeans IDE &ndash; a free Integrated Development Environment. I was interested to see that NetBeans has a Subversion Checkout Wizard (i.e., built-in SVN capabilities), so you can checkout a copy of the LuaTeX code repository and import it directly into NetBeans as a new project. So, I downloaded <a href=\"http:\/\/netbeans.org\/features\/cpp\/index.html\">NetBeans (with C\/C++ support)<\/a> and checked out a copy of the LuaTeX code base, directly from within NetBeans. After completing the download, NetBeans automatically imported the LuaTeX code to create a new project. Very nice!<\/p>\n<p>However, I have not tried to build LuaTeX using NetBeans (because I need to understand more about the build process) but I have found that it provides excellent tools to search and browse the source code, allowing you to very quickly explore and probe some of the deeper mysteries of TeX.<\/p>\n<h2>Tip: tell NetBeans about .w files<\/h2>\n<p>Much of the LuaTeX code base is written in <a href=\"http:\/\/en.wikipedia.org\/wiki\/CWEB\">CWEB<\/a> (integrated C source code and documentation); consequently, many of the source files have a .w extension. You&#8217;ll need to configure NetBeans to tell it about .w files: see Tools &#8211;> Options &#8211;> Miscellaneous.<\/p>\n<p>Here&#8217;s a screenshot showing a search for the <code>build_page()<\/code> function, part of TeX&#8217;s page-building machinery, showing you where and when TeX exercises the page builder.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/readytext.co.uk\/files\/netbeans.png\" width=\"100%\"\/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction It&#8217;s been a long time since I posted anything on this blog, mainly because my job has been keeping me very busy. As time permits I&#8217;ve been reading parts of the LuaTeX source code in an attempt to better understand how it all works: cross-referencing the source code to explanations in the LuaTeX Reference. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-2416","post","type-post","status-publish","format-standard","hentry","category-luatex"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/www.readytext.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/2416","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.readytext.co.uk\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.readytext.co.uk\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.readytext.co.uk\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.readytext.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2416"}],"version-history":[{"count":12,"href":"https:\/\/www.readytext.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/2416\/revisions"}],"predecessor-version":[{"id":2672,"href":"https:\/\/www.readytext.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/2416\/revisions\/2672"}],"wp:attachment":[{"href":"https:\/\/www.readytext.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2416"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.readytext.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2416"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.readytext.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2416"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}