Home

Proceedings

image

Contents

1. ESTY ca pis Leto efe de AR ex dol Ul bY bee 1 Figure 7 Mixed Alternate Glyphs in Two Columns From the classical dictionary Mukhtar al id 66 oriental tex optimizing paragraphs gt hans hagen 5 10115 samawi hamid Generally there is only one naturally widened character allowed per word However two non consecutive widened characters may be allowed In that case the second widened character should be longer than the f rst One case where cases of two naturally widened character will be common is in poetry which involves wide lines We ll say more about this in the section on flat extending Now let s look at the alternate shaped case Generally there is only one alternate shaped character allowed per word However two non consecutive alternate shaped characters may be allowed So we prefer e g cU SU toig but we could have e g as a last resort or as a stulistic option y em pie Again in poetry this kind of multiple substitution within a single word could occur frequently A challenge will be to develop a system of parameters where we can almost predict which kinds of substitution will hap
2. N ar tet nad ke hl dS JD LS USS tii ese 5 et 4 2 2 o KA T e CAE ahs SUI 633 zal Y z U ee Lis SIL cA sis sah oc Spd BEN a 4 9 M ys DE eee Aud GU ojs JH ai Ob GUS og Se e Lb IE EA ee th E os E suc S e 5 gle Ln Les Ys ya dat edit dfc OA US sog Sas GUS 4h ye bi gd gh Bt 5 a s S Cn uode ste taf C O gau cii as dl dad GU Figure 9 Flat justification from Microsoft Word 2010 For example DM wu In accordance with our working rule the top substitution uses only one flat extended character The bottom uses two but the second is longer than the first 69 contextgroup gt context meeting 2012 Qu JE ZU 1 2 Figure 10 Marginal note justification in Omega Aleph
3. ae 852 oa Bi 1 3 1 yai 2 al aes Gp Jo LST a i Alt eg dip Hl usi dg ai Sl ar Vers S ait 2 2 gt e s Ze QD wight normal her as VES Els cag 5 D PE unge 7e 2 Jl edis ge e de iv NP oe Sl di 3 n SLT BET sull 3 oe narrow Figure 13 An even narrower sample c 79 contextgroup gt context meeting 2012 80 lie Gail CAU 3 4 ee atl v QD OS es p i Se JA us del es JR D Be Om wo EX Ca Cha r 4i di rs le I E Y EA d Y 5 un 35 normal see d X 5 Us DES ae Lot shee BS all a 4 yom n EV Ca Ch wo 5 z 2 Ir RN Figure 14 An even narrower sample d 2 gt of 2 oll GYD 3 2 2 amp Ra S u Wo Wwe S Z G amp BS v OE Ba a is Xt KA 6 UM 2 2 we 2 Os uA We gt
4. 09 00 Excursion 19 30 Conference Dinner contextgroup gt context meeting 2012 Thursday 11 October 2012 09 00 Bogustav Jackowski OTF math fonts GUST e foundry s workbench 09 45 Jerzy Ludwichowski Present and future of the TG Math Project the report and some questions 11 00 Piotr Strzelczyk Is backward compatibility of LM Math and CM math sensible 11 45 Gust Foundry BOF session The future of math fonts 14 00 Hans Hagen xml 14 45 Hans Hagen a couple of styles 16 00 Hans Hagen lexing 16 45 Hans Hagen visual debugging Friday 12 October 2012 09 00 Yamamoto Munehiro TeX Typesetting Circumstances for Japanese Publishing 09 45 Kitagawa Hironori Japanese Typesetting with LuaTgX 11 00 Hans Hagen Tricks with the parbuilder Arabic typesetting 11 45 lvo Geradts Typesetting Sanskrit with LuaTex Kai Eigner 14 00 Hans Hagen mixed columns 14 45 Tom s Hala Differences in typesetting rules between Czech and Slovak languages in the context of ConTeXt 16 00 Jean Michel Hufflen MIBibTgX and Its New Extensions 16 45 Jean Michel Hufflen Demonstration of the mlbibcontext Program 17 45 Sietse Brouwer Bof session Context Wiki 18 30 2013 Announcements 18 45 Conference closing CrafTgX Applying TeX and friends in crafts Mari Voipio Everything started at my job as Documentation manager in hi tech industry when the word processor gave up on our big fat i
5. liga yes smallcaps mode node script latn kern yes smcp yes 3 solutions experimental less ligatures simple 3 55 contextgroup gt context meeting 2012 more smallcaps 1 We see four sets of features here Vou can use these sets in a ConTeXt feature definition like definefontfeature solution demo goodies demo featureset default You can use a set as follows definefont SomeTestFont texgyrepagellaregularxsolution demo at 10pt So far there is nothing special or new but we can go a step further definefontsolution solution a goodies demo solution experimental method normal preroll criterium 1 definefontsolution solution b goodies demo solution experimental method normal preroll split criterium 1 Here we have defined two solutions They refer to the experimental solution in the goodie file demo 1fg A solution has a less and a more entry The featuresets 56 oriental tex optimizing paragraphs gt hans hagen 5 10115 samawi hamid mentioned there reflect ways to make a word narrower or wider There can be more than one way to do that although it comes at a performance price Before we see how this works out we turn on a tracing option enabletrackers builders paragraphs solutions splitters colors This will color the words in the result according to what has happened
6. In our own estimation the smaller the type as in e g footnotes and marginal notes the less aesthetic variants that are needed And the less aesthetic variants needed the better that flat extending will work as a solution Consider another example of the same word processed in three different variants Ber doas In this case our default is on the left The variant on the right is about as basic as one can get the default on the left is a sophisticated aesthetic variant The middle one is well in between Let s try them with flat extending using only one extended character per word Aa On the left we have an aesthetic combination of letters followed by a flat tawil This is what Microsoft Word would give us and the result is aesthetically distasteful In the word on the right however the flat extension fits well with the basic nature of the feature set As for the middle one it could go either way and we leave it to the reader to decide what one thinks Now let s repeat with more naturally curved widening ca s 70 oriental tex optimizing paragraphs gt hans hagen 5 10115 samawi hamid Here the variant on the left comes out much nicer The one on the right looks okay with curved widening although one could arguably do better with flat extending at least in some contexts The middle one again could go either way though we think it does somewhat bette
7. a Lal LET el a A Le T Y ical Sk Peel G ee as a salt 515 Got cust al f Note that we already have a degree of widened substitution in this example This is all for the accommodation of vowels and is defined entirely in the OpenType tables of the font We also added some special orthography the rasm font feature to get the Quranic features just right Vou can also do this by adding the feature to the 1fg file local regular There is no paragraph optimization as yet although the default LuaTgX engine does a good job to start with Next we show a more optimized result 74 oriental tex optimizing paragraphs gt hans hagen 5 10115 samawi hamid setupfontsolution FancyHusayni method preroll normal criterium 1 startfontsolution FancyHusayni FancyHusayni righttoleft definefontfeatureLrasm script arab ss05 yes js06 no ss55 yes addff rasm getbuffer sample par stopfontsolution Im NUM o 22 o aci 2 secat Ele h c o o Now let s see what happens when parfillskip Opt i e the last line has no extra space after the end of the paragraph This is important for getting e g the last line of the page to end with the end of a verse as we discussed earlier 75 contextgroup gt context meeting 2012 setupfontsolution FancyHusayni method prerol
8. init if not get_strings_started then goto final_end init_tab initialize the tables init_prim call primitive for each primitive init str ptr str ptr init_pool_ptr pool_ptr max str ptr str ptr max pool ptr pool ptr fix date and time tinie ready already 314159 mfluaPRE start of MF start of MF lt Initialize the output routines gt lt Get the first line of input and prepare to starte history spotless ready to go mflua initialize if start sym 0 then insert the amp everyjob symbol begin cur sym start sym back input end mfluaPRE main control main control come to life mfluaPOST main control final cleanup prepare for deathj mfluaPOST final cleanup end of MF close files and terminate final end ready already 0 end We re going to examine the role of the mflua begin program sensor The Pas cal into C translator web2c is smart enough to distinguish a symbol already present in the Pascal source from an external symbol i e a symbol defined in another file In the latter case the programmer has to register that symbol into the file texmf defines if the symbolis related to an argumented procedure the translator will manage properly the arguments translation The translated code will contain the C form of the sensor symbol which will be resolved at compile time i e we need an object file that contains that symbol Each sensor is stored into mflua h an
9. For a point of view related to efficiency the programs mlbiblatex and mlbibcontext are written using Scheme only so they are more efficient than analogous programs that would interpret a bst bibliography style of bibTex dedicate this article to my late father 1922 2012 When I was a child he introduced me to the joy of reading He was himself an avid reader surely share this feature with him 1 Introduction 23 is rightly viewed as a wonderful word processor for typesetting written documents Besides it is assisted by other programs like bibTeX 24 as bibliography processors which generate References sections bbl files or other graphical tools 4 As a proof that 5 community of developers is very dynamic many programs including L TgX itself have evolved and been improved for many years Other for mats based on TeX or engines related to it have come out e g XJleX 19 LuaTeX 7 We can observe analogous dynamism about graphical tools compare the two editions of The Graphics Companion 5 and 4 As we mentioned in 16 bibTeX was unrivalled asthe bibliography processor usually associated with LATEX for a long time Besides bibTeX is stable for many years In fact some slight ex tensions built out of bibTeX s source files have been designed e g bibTeX8 23 8 13 11 and bibTeXu 29 8 4 3 see 16 for more details The difficulty of writing a new bibliography proces sor f
10. MANY OF THE new TYPOGRAPHERS RECEIVE THEIR knowl edge and information about the rules of typograph from books from computer magazines OR THE INS RUCTION MANUALS WHICH THEY GET WITH THE PURCHASE OF A PC or SOFTWARE THERE IS NOT SO MUCH basic instruction as of now as there was in the old days showing the differences between coop ann bad typographic de DESIGN Many people are just f scinated by THEIR PC s Mut ing THINK THAT A widely praised program CALLED UP ON THE SCREEN WILL MAKE EVERYTHING auto matic from now on normal Figure 1 Solution a solution This number reflects the maximum badness and future versions might have a different measure with more granularity 57 contextgroup gt context meeting 2012 There is one pitfall here This mechanism is made for a connective script where hyphenation is not used As a result a word here is actually split up when it has discretionaries and of course this text fragment has It goes unnoticed inthe rendering but is of course far from optimal SomeTestFont startfontsolution solution b input zapf par stopfontsolution In this example Figure 2 we keep words as a whole but as a side effect we skip words that are broken across a line This is mostly because it makes not much sense to implement it as Latin is not our target Future versions of ConTeXt might get more sophisticated font machinery so then things might look better Coming back to the use
11. U 0640 This character could then be repeated as often as necessary to fill any extra space Now an examination of pre digital books shows a rather wise reticence to using this method too slavishly That reticence has now been thrown to the winds This can be seen by looking at the standard implementation of flat extending as provided by Microsoft Word This program provides three levels of extending that it calls justification See Figure 9 for examples of all three The minimum level is actually very close to the default i e no justification level Note that the sample text used in Figure 9 is the same as that used in the earlier samples from the Quran Older implementations of Arabic script within TeX such as ArabTgX and Omega Aleph also provided facilities for flat extending The most common use was in poetry which requires a fixed width for each stanza In Omega Aleph a method based on xleaders was used based on a very thin tawil glyph much thinner than U 0640 that could be used for very fine extending optimization based on TeX s badness parameter One nice application is in marginal notes See Figure 10 where the marginal note on the right is zoomed in On the other hand we see that the leaders method creates extending that may be considered too perfectly even Do we want to impose the rule that only one character should be extended per word or at most two non consecutive characters have seen a lot of older digita
12. a glyph a simple cycle can be filled or unfilled and according to MetaFont s point of view a glyph is a set of cycles filled and or unfilled at the right moment A normal MetaFont designer doesn t care about these details because MetaFont has a high level language to describe curves points lines intersections filled and unfilled cycles and most important pens The listed entities produce a combination of two different basic draws regions unjfilled by a contour and regions un filled by the stroke of a pen i e the envelope of a pen Both are simple cycles but their origin is very different Let s consider the code of the glyph O from the file xmssdc10 mf cmchar The numeral 0 beginchar 0 9ust fig heighti 0 italcorr fig_height xslant 5u adjust fit 0 0 penpos1 vair 90 penpos3 vair 90 penpos2 curve 180 penpos4 curve 0 if not monospace interim superness sqrt more superxhein super fi x2r hround max 7u 1 45u 5curve x4r w x2r x1 x3 5w ylr h o y3r o y2zy4 b5h vair corr y21 y41 52h penstroke pulled_arc e 1 2 amp pulled_arc e 2 3 amp pulled_arc e 3 4 amp pulled_arc e 4 1 amp cycle bowl penlabels 1 2 3 4 endchar Fig 2 shows a glyph only made by two contours which are the result of penpos and penstroke macros Of course we could obtain the same result drawing 24 curve sections 12 for the outer contour 12 for the inner one but it should be clear that the MetaFon
13. curls and control points are split in a left and a right side directions apply to both sides equally e The absolute value of a tension specifier should be more than 0 75 and less than 4096 0 with negative values indicating atleast The absolute value of a direction or curl should be less than 4096 0 If a tension curl or direction is specified any existing control points will be replaced by the newly computed value 19 contextgroup gt context meeting 2012 Parsing PDF content streams with LuaTeX Taco Hoekwater The new pdfparser library in LuaTeX allows parsing of external pdf content streams directly from within a LuaTeX document This paper explains its origin and usage Background Docwolves main product is an infrastructure to facilitate paperless meetings One part of the functionality is handling meeting documents and to do so it offers the meeting participants a method to distribute share and comment on such documents by means of an intranet application as well as an iPad App Meeting documents typically consist of a meet ing agenda followed by included appendices combined into a single pdf file Such docu ments can have various revisions for example if a change has been made to the agenda or if an appendix has to be added or removed After such a change a newly combined pdf document is re distributed Annotations can be made on these documents and these can then be shared with other meet ing part
14. p Pe pa at the same time f and py intersects p Pe Pa at t then I Pa U Pp Pe pa is equal to I pp U Par po pj and we can delete p and p because p and stay connected But with more than three intersections things become more complex To solve these cases end program lua has a series of filters A filter acts on a specific glyph and typically removes unwanted curves and or adjusts the control points to ensure that a curve joins properly with its predecessors and successor Of course this means that the programmer inspects each glyph separately which is reasonable when we are designing the font less reasonable when we convert it We can call this approach per font and per glyph end_program lua is a Lua script valid only for a specific font and which has filters for each glyph The script end program lua also has some functions to convert the outlines with the correct turning number of each glyph into a SVG font this font format can be imported into FontForge and usually after re editing the glyphs tipically simplifying the curves it can be saved as an OpenType CFF In fig 5 we can see an example of this font 4 2 The Computer Modern Sans Serif Demibold Condensed 10 pt We now approach a more geometric strategy We don t want to output an OpenType font but to find an end program 1lua more universal and per glyph and less per font and per glyph Our experience with ccr10 mf make us believe that is al
15. provides the usual visual clues about what goes on the page The new mechanism is more ad vanced that the old one but still assumes some knowledge of what happens inside TeX In this presentation we will explain some of this Japanese Typesetting with LuaTeX KITAGAWA Hironori There are some issues for typeset Japanese documents by LuaTgX Some of them such as end of line rule and the value of a grouped variable at the end of a hbox are partially resolved by writing Lua codes Also we can discuss the specification of LuaTgX on vertical typesetting referring to that of Japanese pTeX Mixed columns Hans Hagen One of the last things to redo in MkIV is the page builder Although bits and pieces have been redone some major effort is needed to upgrade multi columns mechanisms We currently have three mechanisms regular columns that can be mixed with single column mode sim ple columns that can be used in a boxed way and columnsets The first two have been re 95 contextgroup gt context meeting 2012 placed by a new mechanism tagged as mixed columns This mechanism permits instances of multicolumns either or not in the page flow or in boxes and the old mechanisms will go Of course we try to remain compatible as much as possible In this talk we can discuss some of the issues involved and identify future needs Differences in typesetting rules between Czech and Slovak languages in the context of ConTeXt Tom
16. s H la During the existence of Czechoslovakia Czech and Slovak typesetting rules were defined by one common norm At present Slovak rules 96 have mostly been fixed by official documents whereas Czech rules are rather custom based This contribution deals with comparison of the rules in both languages especially with the use of hyphen dashes lists etc In addition to that some ot these items in Czech and Slovak differ considerably from those in other languages All important items have been compared with fa cilities in the typesetting system ConTeXt and it seems that some situations have not been covered in configuration files Therefore several suggestions for language settings have been made in order to make ConTeXt more general and comfortable for ordinary users participant list gt 6th context meeting Participant list of the 6th ConTeXt meeting Leo Arnold Technische Universit t M nchen Garching bei M nchen Germany latex arney de Doris Behrendt Gymnasium Marktbreit Biebelried Germany doris behrendt me com Sietse Brouwer The Netherlands sbbrouwer gmail com Gy ngyi Bujdos Faculty of Computer Science University of Debrecen Debrecen Hungary bujdoso gyongyi inf unideb hu Andreas Dafferner Heidelberger Akademie der Wissenschaften Heidelberg Germany andreas dafferner adw uni heidelberg de Karin Dornacher DANTE e V Heidelberg Germany office dante de Willi Egger BOEDE Sambeek The
17. startcell 1 1 stopcell startcell 2 1 stopcell startcell A 1 B 1 stopcell stoprow startrow startcell 2 1 stopcell startcell 2 2 stopcell startcell A 2 8 2 1 stoprow startrow startcell A 1 11 1 startcell A 2 B 2 stopcell startcell A 3 83 1 stoprow stopspreadsheettable The rendering is shown in figure 1 Keep in mind that in Lua all calculations are done using floats The last cell can also look like this startcell function local s 42 simple spreadsheets gt hans hagen for i 1 2 do for j 1 2 do s s dat ilLjl end end return s end stopcell The content of a cell is either a number or a function In this example we just loop over the already set cells and calculate their sum The dat variable accesses the grid of cells startcell function local s 0 for i 1 2 do for j 1 2 do dat i Lj end end tmp total s end stopcell In this variant we store the sum in the table tmp which is local to the current sheet Another table is fnc where we can store functions This table is shared between all sheets There are two predefined functions sum sometable firstindex lastindex fmt specification n Let s see this in action startspreadsheettableltest startrow startcell 1 1 stopcell startcell 2 1 stopcell stoprow 43 contextgroup gt context meeting 2012 startrow startcell 2 1 stopcell startcell 2 2 stopcell stoprow
18. startrow startcell function local s for i 1 2 do for j 1 2 do S s dat i j end end context bold s end stopcell startcell function local s 1 for i 1 2 do for j 1 2 do s x dat ilLjl end end context bold fmt 1f s end stopcell stoprow stopspreadsheettable The result is shown in figure 2 Watch the fmt call we use an at sign instead of a percent to please Tex Keep in mind that we re typesetting and that doing complex calculations is not our 21 main objective A typical application of this module is in making bills for which you 22 can combine it with the correspondence modules We leave that as an exercise for the 07 reader and stick to a simple example e complex startspreadsheettableltest startrow startcelllalign flushleft width 8cm item one stopcell startcelllalign flushright width 3cm 2f EUR 3 50 stopcell stoprow 44 simple spreadsheets gt hans hagen startrow startcelllalign flushleft item two stopcell startcelllalign flushright 0 2f EUR 8 45 stopcell stoprow startrow startcelllalign flushleft tax 19 percent stopcell startcelllalign flushright 0 2f EUR 0 19 x B 1 B 2 stopcell stoprow startrow startcelllalign flushleft total 1 stopcell Nstartcell align flushright 0 2f EUR sum B 1 3 stopcell stoprow startrow startcelllalign flushleft total 2 stopcell startcelllalign flushright
19. 0 2f EUR B 1 B 2 B 3 stopcell stoprow startrow startcelllalign flushleft total 3 stopcell Nstartcell align flushright 0 27 EUR sum B stopcell stoprow stopspreadsheettable Here and in figure 3 you see a quick and more readable way to format cell content The in the template is optional but needed in cases like this 8 00 2f EUR 8 45 A is only prepended when no is given in the template item one 3 50 EUR item two 8 45 EUR tax 1996 2 27 EUR total 1 14 22 EUR total 2 14 22 EUR total 3 42 66 EUR Figure 3 Cells can be formatted by using Q directives 45 contextgroup gt context meeting 2012 item one 3 50 EUR item two 8 45 EUR tax 19 2 27 EUR total 1 14 22 EUR total 2 14 22 EUR total 3 42 66 EUR Figure The sum function accumulated stepwise In practice this table can be simplified see figure 4 and made a bit nicer looking startspreadsheettable test frame off startrow startcelllalign flushleft width 8cm The first item stopcell Nstartcell align flushright width 3cm 2f EUR 3 50 stopcell stoprow startrow startcelllalign flushleft The second item stopcell startcelllalign flushright 0 2f EUR 8 45 stopcell stoprow startrow startcelllalign flushleft The third item stopcell Nstartcell align flushright 0 2f EUR 5 90 stopcell stoprow startrow Ltopframe on Ns
20. E NS gt y 2 Zz E A 00 sl a5 fod a TM zr ay normal EE Era E WS amp LE dip Sus st Sof xc Ro dE Se 2 A AGE x a 4 tt 2 to 4 2 bh o 9 to 2 EN ES Js N AS 7 292 3 A ee n A BS 3 aii af Figure 15 An even narrower sample e oriental tex optimizing paragraphs gt hans hagen 5 10115 samawi hamid 81 contextgroup gt context meeting 2012 Without going into a detailed analysis at the moment we restrict ourselves to two critical observations First in our tests one will notice that the glyph substitutions tend to take place on the right side of the line They should be more evenly distributed throughout each line Second we can say that the current method works better for alternate shaped glyph substitution than it does for naturally widened glyph substitution This leads us to the next step in this research project Within the Husayni font there is now a mapping between flat extending via tawil and curved widening via alternate glyphs Consider the following manually typed utf text using the tawil character U 0640 NARROW In flat extended typography that comes out like this Husayni through the optional Stylistic Alternates feature salt will map
21. Netherlands w egger boede nl Kai Eigner Tat Zetwerk Utrecht The Netherlands eigner tatzetwerk nl Ivo Geradts Tat Zetwerk Utrecht The Netherlands geradts tatzetwerk nl Frans Goddijn Amsterdam The Netherlands frans goddijn com Patrick Gundlach Dante e V Berlin Germany patrick gundla ch Hans Hagen Pragma ADE Hasselt The Netherlands pragma wxs nl Tomas Hala Mendel University Brno Brno Czech Republic thala mendelu cz Taco Hoekwater Bittext Breskens The Netherlands taco bittext nl Karel Horak Lety Czech Republic horakk math cas cz Jean Michel Hufflen University of Franche Comt Besancon Cedex France jmhuffle femto st fr Bogustav Jackowski GUST Gdansk Poland jacko bop com pl Hironori KITAGAWA Tokyo Japan h_kitagawa2001 yahoo co jp Harald K nig Balingen Germany koenig linux de Reinhard Kotucha Capical GmbH Hannover Germany reinhard kotucha web de Siep Kroonenberg RUG Groningen The Netherlands siepo cybercomm nl Silke Krumrey Fachhochschule Stralsund Stralsund Germany silke krumrey fh stralsund de Jan Kula Prague Czech Republic jano kula gmail com Yusuke KUROKI Yokohama Japan kuroky users sourceforge jp Johannes Kuster typoma GmbH Holzkirchen Germany info typoma com 97 contextgroup gt context meeting 2012 Dag Langmyhr University of Oslo Oslo Norway dag ifi uio no Lucien Lemmens Laakdal Belgium Icnimmns me com Manfre
22. The actual drawing of a pdf page is handled by PostScript style postfix operators These are contained in objects that are called page content streams After decompression of the pdf the beginning of a content stream could look like this 59 0 obj lt lt Length 4013 gt gt stream 0g06G 1 m 1 6 0 0 0 597 7584 448 3188 re 0 6 0 0 10 0 1 54 7979 44 8344 cm parsing pdf content streams with luatex gt taco hoekwater Here 6 0 re f 0 and cm are all postfix operators and the numeric quantities are all arguments As you see not all operators take the same amount of arguments g takes one q zero and re four Other operators may take for instance string valued arguments instead of numeric ones There are a little over half a dozen different types To process such a stream easily it is best to separate the task at least conceptually into two separate tasks First there is a the lexing stage which entails converting the actual bytes into combinations of values and types tokens that can be acted upon Separate from that there is the interpretation stage where the operators are actually exe cuted with the tokenized arguments that have preceded it pdf text extraction on the iPad It is very easy on an iPad to display a represen tation of a pdf page and Apple also provides a convenient interface to do the actual lexing of pdf content streams that is the first step in getting the text from
23. functions First let us look at its definition define SHOW a b mp_number_as_double mp mp_knot_ b mp a void mp_dump_solved_path MP mp mp_knot h mp_knot p q p Ing do q mp_knot_next mp p printf g g controls g g and g g SHOW p x_coord SHOW p y_coord SHOW p right_x SHOW p right y SHOW q left_x SHOW q left y p q if p h mp_knot_left_type mp h mp_endpoint printf n while p h if mp_knot_left_type mp h mp_endpoint printf cycle printf Nn Somewhat hidden in the source above is that there is another new type mp number the data structure representing a numerical value inside MPlib The used MPlib library functions are as follows e mp knot next move to the next knot in the path mp knot x coord mp knot y coord mp knot right x mp knot right y mp knot left x Q mp knot left y return the value of a knot field as a mp number object the calls to these func tions are hidden inside the definition of the SHOW macro e mp knot left type returns the type of a knot normally either mp endpoint or mp open e mp number as double converts a mp number to double To satisfy our curiosity here is the actual output of the example program listed above 0 0 controls 1 8685 6 35925 and 4 02429 12 1436 10 10 controls 16 8519 7 54208 and 16 9642 2 22969 10 5 controls 5 87875 6 6394 and 1 26079 4 29094 cyc
24. important rule regardless of whether we use Naskh Kufic or any other Arabic script Consider the word below It is a single word composed of two cursive strings One could actually hyphenate it with our rule being to break it at the end of the first cursive string and before the beginning of the second cursive string E Indeed even Latin hyphenation when it occurs can be considered a failure of sorts 60 oriental tex optimizing paragraphs gt hans hagen 5 10115 samawi hamid Again it s a rare phenomenon and hardly ever occurs in modern typesetting lead punch or digital if at all On the other hand it could have some creative uses in future Arabic script typography e Macrotypography aesthetic features In Arabic there are often numerous aesthetic ways of writing out the exact same semantic string AE Normally we put combine OpenType features into feature sets that are each internally and aesthetically coherent So in the above example we have used three different sets reading from right to left We ll call them simple default and dipped Just as Latin typography uses separate fonts to mark off different uses of text bold italic etc an advanced Arabic font can use aesthetic feature setsto similar effect This works best on distinguishing long streams of text from one another since the differences between feat
25. moving Taco Mojca Setup a mirroring system for the ConTgXt suite 9 Questions by members Mari thinks that it is correct to add the costs of a PayPal payment to the fee of membership The gathering seconds this Action Mojca Description Find out the average fee for transactions with PayPal and add it to the membership fee ac cordingly minutes of the membership meeting willi egger 10 Closing The meeting is closed at 21 22 13 contextgroup gt context meeting 2012 MetaPost path resolution isolated Taco Hoekwater A new interface in MPLib version 1 800 allows one to resolve path choices programmatically without the need to go through the MetaPost input language Metapost path solving As we all know MetaPost is pretty good at finding pleasing control points for paths What all of you may know is that besides drawing on a picture MetaPost can also display the found control points in the log file Some illustration at this point is useful Here is the MetaPost path input source of a very simple path as well as a visualisation of the path tracingchoices 1 path p p 0 0 10 10 10 5 cycle And here is what MetaPost outputs in the log file Path at line 5 before choices 0 0 10 10 10 5 cycle Path at line 5 after choices 0 0 controls 1 8685 6 35925 and 4 02429 12 14362 10 10 controls 16 85191 7 54208 and 16 9642 2 22969 10 5 controls
26. should be height h width w of the content The width is calculated by adding twice the width of the content w to the width of the fold in flap f For the real world portfolio we will take into account the thickness of the content This adds 2 x the spine width to the width of the sheet 3 The conference portfolio In order to determine the size of the portfolio one first needs to know the dimensions of the content which it should be able to carry For the preprints of the proceedings these di mensions are e Height 265 mm e Width 210 mm e Thickness 9 mm The space inside the portfolio should always be slightly larger than the actual dimensions of the content not to mention we have to leave room for our carpenter s pencil The final dimensions of the portfolio are set to e Height 275 mm e Width 225 mm e Spine width 10 mm When choosing a material for the portfolio it is important to check that the grain of the material is inthe direction width axis of the material The cardboard size should be 500 x 700 mm width x length 37 contextgroup gt context meeting 2012 Pit f W Figure 1 The blueprint for the portfolio 4 Making the portfolio In order to get good results make sure to mea sure and mark precisely measure twice cut once For creasing the folds a fairly sharp bone folder is advised For cutting a cutter with snap off blade is most
27. showing what we re dealing with This is because the ConTeXt mechanisms are generic in the sense that they can also be used with regular Latin fonts although it does not make that much sense Anyhow in the next section we wrap up the current state of typesetting Arabic in ConTgXt We focus on the rendering and leave general aspects of bidirectional typesetting and layouts for another time This article is written by Idris Samawi Hamid and Hans Hagen and is typeset by ConText MkIV which uses LuaTeX This program is an extension of TeX that uses Lua to open op the core machinery The LuaTgX core team consists of Taco Hoekwater Hartmut Henkel and Hans Hagen Manipulating glyphs When discussing optical optimization of a paragraph a few alternatives come to mind e One can get rid of extensive spaces by adding additional kerns between glyphs This is often used by poor man s typesetting programs or routines and can be applied to non connecting scripts It just looks bad Of course for connected scripts like Arabic inter glyph kerning is not an option not even in principle e Glyphs can be widened a few percent and this is an option that LuaTeX inherits from its predecessor pdfTgX Normally this goes unnoticed although excessive scaling makes things worse and yes one can run into such examples This 53 contextgroup gt context meeting 2012 strategy goes under the name hz optimization the hz refers to Hermann Zapf who first came up
28. shrink flts yes 1517 yes 5505 yes 5511 yes 5506 yes 5509 yes local default basics analysis regular positioning 72 oriental tex optimizing paragraphs gt hans hagen 5 10115 samawi hamid return name husayni version 1 00 comment Goodies that complement the Husayni font by prof Hamid author Idris Samawi Hamid and Hans Hagen featuresets default default Ur minimal stretching default js11 yes js03 yes US medium stretching default js12 yes js05 yes Js maximal stretching default 513 yes 505 yes js 9 Js wide all default js11 yes js12 yes js13 Jis shrink default flts yes js17 yes 5505 yes 5511 yes 5506 yes 5509 yes Un solutions experimental less shrink 1 e yes yes js 5 yes 31509 yes Js more minimal stretching medium stretching maximal stretching wide all tis jc 73 contextgroup gt context meeting 2012 There are some 55 stylistic and 21 justification features Not all make sense when optimizing We predefine some Lua tables to make the sets and solutions easier to understand The default rendering looks as follows NFancyHusayni righttoleft definefontfeaturelrasm Lscript arab ss05 yes js06 no ss55 yes addff rasm getbuffer sample par ex pe Bu ETT
29. since they are used for the sort operation in most styles A last point the syntax of the PAGES field has been refined A framework similar to biblatex had been put into action by Taco Hoekwater s bib module of ConTeXt 8 see Fig 5 for a source text using a bibliographical reference This reference as it should be produced by a bibliography proces sor is given in Fig 6 The bib module can be used with ConTeXt MkII 2 it has been reim plemented in ConTeXt MkIV by Hans Hagen 3 In this last case the switch we installed con siders a new CONTEXTPREAMBLE directive when a bib file is parsed This directive aims to re place the traditional PREAMBLE directive often used to put definitions of new LATEX commands 23 8 13 2 4 This eCONTEXTPREAMBLE directive can be used to program some LATEX commands put throughout bib files and non existing in ConText usemodule bib Needed for MkII not for MkIV Nsetupbibtex database mb Nsetuppublications numbering yes Nstarttext Did you read Ncite holmstrom2011 Nplacepublications Nstoptext Figure 5 Citations and bibliographies in ConText m B Nstartpublication k holmstrom2011 t book a Holmstrom y 2011 n 2 s Hol11 Nauthor Darwinj D Holmstrom pubyear 2011 title Toxic Terrain series Don Pendleton s The Executioner volume 390 pubname Gold Eagle month 5 stoppublication Figure 6 Reference used by ConTeXt 3 MibibTeX s a
30. suitable The ruler used should be made of steel Ones made from hard woods such as beechwood are also usable however one should be careful not to cut into the wood To make rulers more steady when drawing and cutting a strip of sandpaper may be glued to the back of them 38 When looking at the blueprint discussed earlier we see we need to compensate for the thickness of the content in our case 10mm In addition to that we also have to take into account the thickness of the material The latter is reflected by the fact that point C in the drawing 2 is moved to the right from the inner line of the spine by about 2 mm Thickness of the material affects overall thickness of the portfolio and also things such as corner radii as stiffer materials do not fold as easily conference portfolio gt willi egger 10 30 31 10 275 225 mm 275 mm so 0 227 Figure 2 Conference portfolio layout Correctly creasing the line between points and G is crucial This line must be made at an angle of exactly 45 After folding folds G and D F should be sharpened with a bone folder For folding narrow spines it is easiest to put a ruler on the inside along the line you wish to fold Use a bone folder to follow the edge of the ruler on the outside As you drag it along the ruler you push the material upwards into a straight clean fold The spines are just wide enough to place
31. the flat tawil extended characters to curved widened characters So with salt yes selected in ConTeXt we get 0 This opens up a way to connect a forthcoming solution to the flat tawil extended character method with the curved widened glyph method A future version of the optimizer may be able to optimize the paragraph in terms of the tawil character and a set of rules along the lines we discussed earlier Then we can simply convert the result to curves using the tawil character At least this is one possibility In any case the current paragraph optimizer even in its experimental status at the moment represents one of the greatest and most important steps in the evolution of digital Arabic script typography Its potential impact on for Arabic script typesetting is immense and we excitedly look forward to its completion 82 mibibtex and its new extensions gt jean michel hufflen 1 and Its New Extensions Jean Michel Hufflen These last years MibibTeX s kernel functions have been reused and extended in order to put new programs about bibliographies into action Examples are the hal program allowing an open archive site to be populated the mlbiblatex program building bibliographies suitable for the biblatex package the mlbibcontext program doing the same task for ConTgXt documents We show how all these programs are organised and explain how some operations can be refined or extended
32. the page But to find out where the actual pdf objects are one has to interpret the pdf document stream oneself and that is the harder part of the text extraction operation pdf text extraction on the server On the server side there is a similar problem at a different stage displaying a pdf is easy and even literal text extraction is easy with tools like pdftotext However that does not give you the location of the text on the page On the server Apple s lexing interface is not available and the available pdf library Libpoppler does not offer similar functionality Our solution We needed to write text extraction software that can be used on both platforms to ensure that the same releases of server and iPad software always agreed perfectly on the what and where of the text on the pdf page Both platforms use a stream interpreter written by ourselves in C with the iPad sofware starting from the Apple lexer and the server software starting from a new lexer written from scratch The prototype and first version of the newly created stream interpreter as well as the server side lexer were written in Lua LuaTeX s epdf libpoppler bindings to Lua were a very handy tool at that stage see below The code was later converted back to C for compilation into a server side helper application as well as the iPad App but originally it was written als a TeXLua script A side effect of this development process is that the lexer coul
33. these extra functions and a few more is in mplibapi tex which is included in the MetaPost distribution 18 metapost path resolution isolated gt taco hoekwater Lua interface There is also a Lua interface for use in LuaTgX which is a bit higher level lt boolean gt success mp solve_path lt table gt knots lt boolean gt cyclic This modifies the knots table which should contain an array of points in a path with the substructure explained below by filling in the control points The boolean cyclic is used to determine whether the path should be the equivalent of cycle If the return value is false there is an extra return argument containing the error string On entry the individual knot tables can contain the six knot field values mentioned above but typically the left x y and right x yJ will be missing x y coord are both required Also some extra values are allowed left tension number A tension specifier right tension number like left tension left curl number A curl specifier right curl number like left curl direction x number x displacement of a direction specifier direction y number y displacement of a direction specifier Issues to watch out for All the normal requirements for MetaPost paths still apply using this new interface In particular e Aknothas either a direction specifier or a curl specifier or a tension specifica tion or explicit control points with the additional note that tensions
34. to the pattern m n t y where m n t y respectively stand for Month Name person name as an author or ed itor Title Year all the other signs are ignored there is no default order rela tion if no sign is recognised the list of bibliographical items is left unsorted lg code is the code for the language to be used for sorting strings this information is rel evant whenever person names and titles mibibtex and its new extensions gt jean michel hufflen of works are compared available values are DE for German EN for English FR for French PO for Polish there is no default value Results look like Fig 4 More detais are given in 17 4 5 mlbibcontext The mlbibcontext program builds bbl files suitable for ConTgXt The corresponding com mand line looks like mlbiblatex s mlbibcontext filename aux key expr lg code and filename aux key expr lg code have the same meaning Results look like Fig 6 5 Future directions As we mention above the interface between the functions of a word processor in charge of pro cessing References sections the commands of the biblatex package or ConTeXt MkIV could be improved For example the commands mlbiblatex and mlbibcontext only deal with ascending orders This is just related to the rough interface we designed in order to propose first experimental versions of these programs as shown in Section MlbibTg
35. totalpages gt lt year gt 2011 lt year gt lt month gt lt may gt lt month gt lt book gt The from attribute of the book element is set to the base name of the bib file originally containing this entry Figure 2 Fig 1 s example given using xML syntax Let us recall that we have developed MI bibTeX 9 as a better bibTeX with particular focus on multilingual features As part of this task we put into action an analysis of the values associated with bib TeX fields as deeply as possible We have precisely designed an internal format for bibliographical items Later we were asked for a program populating an open archive site from the entries of bib files 14 15 Although this program needed conventions more precise than usually about bib files we succeeded in developing it quickly More precisely they have many fragments in common and the different parts were easily assembled We decided to do again this kind of experiment and succeeded again First we explain how MibibTeX can be extended Second we recall some advantages of using MlbibTgX s kernel Then we sketch the variants of MlbibTgX out eXtensible Markup Langage 3 LISt Processor MultiLingual bibTeX 84 o u N 10 2 MibibTeX s extensibility When MibibTgX s parser processes a bib file we can consider that it builds an XML tree of this file More precisely this program written using Scheme 18 builds expressions accor
36. you what to do by using a source code example include int main int argc char argv MP mp MP options opt mp options opt command line NULL opt noninteractive 1 mp mp initialize opt my try path mp mp finish mp free opt return 0 Most of the example code above is exactly what one needs to do anything with MPlib programmatically The only new line is the line calling my try path mp void my try path MP mp mp knot first p q first p mp append knot mp NULL 0 0 q mp append knot mp p 10 10 p mp append knot mp q 10 5 mp close path cycle mp p first if mp solve path mp first mp dump solved path mp first mp_free_path mp first This function uses a new type mp knot as well as a bunch of new library functions in MPlib that exist since version 1 800 16 mp append knot creates a new knot appends it to the path that is being built and returns it as the new tail of the path mp close path cycle mimics cycle in the Metapost language mp solve path finds the control points of the path solve path does not alter the state of the used MPlib instance in away it only modifies its argu ment path mp dump solved path user defined function see below for its definition mp free path releases the used memory metapost path resolution isolated gt taco hoekwater mp_dump_solved_path uses even more new
37. 2010 Michael Sperber R Kent Dybvig Matthew Flatt and Anton van Straaten with Richard Kelsey 27 29 30 William Clinger Jonathan Rees Robert Bruce Find ler and Jacob Matthews Revised Report on the Algorithmic Language Scheme September 2007 hhtp www r6rs org Michael Sperber R Kent Dybvig Matthew Flatt and Anton van Straaten with Richard Kelsey William Clinger and Jonathan Rees Revised Re port on the Algorithmic Language Scheme Stan dard Libraries September 2007 hhtp www r6rs org Gary V Vaughn Ben Ellison Tom Tromey and lan Lance Taylor cNu Autoconf Automake and Libtool Sams October 2000 Herbert Vo Bibliografien mit ATX Lehmans Me dia Berlin 2011 Larry Wall Tom Christiansen and Jon Orwant Pro gramming Perl 3rd edition O Reilly amp Associates Inc July 2000 1 3 demonstration of the mlbibcontext program gt jean michel hufflen Demonstration of the mlbibcontext Program Jean Michel Hufflen This short statement aims to sketch the broad outlines of the presentation performed at the 6th ConTeXt meeting Introduction When the bibTegX bibliography processor 24 builds a Reference section for a source text typeset by the LATEX word processor 23 it only uses information stored in auxiliary aux files 23 8 12 13 In particular such an aux file gives the bibliography style to be used as a bst file Such a style is monolithic in the se
38. 5 87875 6 6394 and 1 26079 4 29094 cycle 14 metapost path resolution isolated gt taco hoekwater A more complex path of course creates more output so p 0 0 2 20 curl1 curl1 10 5 controls 2 2 and 9 4 5 3 10 tension 3 and atleast 4 1 145 2 0 0 1 5 4 end produces Path at line 7 before choices 0 0 curl 1 curl 13 2 20 curl 1 curl 1 10 5 controls 2 2 and 9 4 5 3 10 tension 3 and atleast4 5 4096 0 1 14 4096 0 0 4096 5 4 Path at line 7 after choices 0 0 controls 0 66667 6 66667 and 1 33333 13 33333 2 20 controls 4 66667 15 and 7 33333 10 10 5 controls 2 2 and 9 4 5 3 10 controls 2 34547 10 59998 and 0 48712 14 1 14 controls 13 40117 14 and 5 35 58354 so 9 A But what if But what if you want to use that functionality outside of MetaPost for instance in a C program You will have to compile MPLib into your program then create a Metapost language input string execute it and parse the log result All of that is not very appealing It would be much better if you could compile MPLib into your program create a path programmatically and then run the Metapost path solver directly automatically updating the original path And that is what the current version of MPLib will allow you to do 15 contextgroup gt context meeting 2012 How it works Once again it is easiest to show
39. 700z BRERD Poland ARIZONI 2012 16 Jean Michel Hufflen A Comparative Study of 3 CONTEXTGARDEN http wiki contextgarden net a an ae abe 3 Bibliography_mkiv Bibliographies in MkIV July p 1 2012 2011 8 17 Jean Michel Hufflen MlbibTeX and the biblat 4 Michel Goossens Frank Mittelbach Sebastian 17 3 i S p che kn K em aa d Rahtz Denis B Roegel and Herbert Vo The par PAJ A o pr Mu QR M PAS EA ME 7 our un i Jerzy B Ludwichowski eds Twenty Years After Graphics Companion 2nd edition Addison Wes 33 3 Proc Bacho TeX 2012 Conference p 91 99 Ba ey Publishing Company Reading Massachusetts January 2009 chotek Poland April 2012 18 Richard Kelsey William D Cli d Jonathan A 5 Michel Goossens Sebastian Rahtz and Frank Mit 18 bete onan ns win Fee S telbach The ATgX Graphics Companion Illustrating David H Bartley Gary Brooks R Kent Dybvig 1 7 ei 1X and ini pes Daniel P Friedman Robert Halstead Chris Hanson i in ims ompany Reading Massachusetts Christopher T Haynes Eugene Edmund Kohlbecker 1 are Jr Donald Oxley Kent M Pitman Guillermo J 6 Hans Hagen ConTgXt the Manual November Rozas Guy Lewis Steele Jr Gerald Jay Sussman 2001 http www pragma ade com general and Mitchell Wand Revised Report on the Al manuals cont enp pdf gorithmic Language Scheme Hosc Vol 11 no 1 7 Hans Hagen The Luafication of TeX and p 7 105 August 1998 n Pro
40. CO contextgroup Proceedings 6 ConTgXt meeting Breskens The Netherlands contextgroup gt context meeting 2012 Imprint President Taco Hoekwater cg president contextgarden net Secretary Willi Egger cg secretary contextgarden net Treasurer Mojca Miklavec cg treasurer contextgarden net Boardmembers John Haltiwanger Jano Kula Thomas A Schmitz Peter Munster Journal editors John Haltiwanger Taco Hoekwater Postal address Maasstraat 2 5836 BB Sambeek The Netherlands Bank connection La Banque Postale FR86 2004 1010 1308 3104 6 03 464 PSSTFRPPREN Centre de Rennes 35900 Rennes Cedex 9 France Bank account owner Context Group La Roche Blanche 35190 Qu briac France Website http group contextgarden net Design Adrian Egger Copyright 2013 Context Group At the fourth ConText meeting in the Czech Republic the idea came up to create an or ganisation that would foster ConText development and act as a showcase to attract new users and support the old ones much like TUG and the local user groups helped shaping and promoting TeX in the 1980s That group now exists formally with the name Context Group as a non profit organisation in French law association loi 1901 A number of people have volunteered to be on the board which held its first meeting during the 5th ConTgXt Meeting We hope to set up an organisation that will inspire people to contribute even more to the ConTeXt community
41. P ON THE SCREEN WILL make EVERYTHING auto matic from no ron normal Figure 3 Solution c solution In Figure 4 we add some randomness but to what extent this works well depends on how many words we need to retypeset before we get the badness of the line within the constraints Salient features of Arabic script Before applying the above to Arabic script let s discuss some salient aspects of the problem As a cursive script Arabic is extremely versatile and the scribal calligraphy tradition reflects that Digital Arabic typography is only beginning to catch up with the possibilities afforded by the scribal tradition Indeed early lead punch typography and typesetting of Arabic script was more advanced than most digital typography even up tothis day In any case let us begin to organize some of that versatility into a taxonomy for typography purposes What s available We have to work within the following parameters 59 contextgroup gt context meeting 2012 Coming back to the use of typefaces in electronic publishing pu vr the new typographers receive thei edge and information about the rules of typography from books from computer magazines or the instruction manuals which they et with the purchase of a PC or Med There is no so much basic instruction as of now as there was in the old da s showing the diffe rences between good and bad typographic de sign Many people are just fascinated 0 100 b
42. When a featureset out of the more category has been applied the words turn green when less is applied the word becomes yellow The preroll option in the method list makes sure that we do a more extensive test beforehand SomeTestFont startfontsolution solution a input zapf par stopfontsolution In Figure 1 we see what happens In each already split line words get wider or narrower until we re satisfied A criterium of 1 is pretty strict Keep in mind that we use some arbitrary features here We try removing kerns to get narrower although there is nothing that guarantees that kerns are positive On the other hand using ligatures might help In order to get wider we use smallcaps Okay the result will look somewhat strange but so does much typesetting nowadays Coming back to the use of rpefaces typographers receive their knowl edge and information about the rules of typography from books from computer magazines or the ins ruction manuals which they et with the purchase of a basic instruction as of now as there was in the old days showing the differences between good and bad typographic de sign Many people are just fascinated by their PC s tricks and think that a the screen will mak everything auto matic from now on in electronic publishing _man of the PC or softw re There is no so much widely praised program called up on Coming back TO THE USE OF TYPEFACES IN ELECTRONIC PUBLISHING
43. X s advantages descending orders are provided by MlbibTgX s kernel Concerning the biblatex package we think that an option could be added Nusepackage backend mlbiblatex biblatex other options allowing accurate information to be passed 0 TeX Agence d valuation de la Recherche et de l Enseignement Sup rieur that is agency evaluating research and university courses 5 an item without month information being ranked after an item with such 5 The default order relation used by both bibTeX and biber would be specified by ynt Let us recall that by default these two programs do not use any information about month during the sort step 7 n this case the bibliography is unsorted that is the order of items is the order of first citations of these items throughout the document 8 Presently the possible values for the backend option of biblatex are bibtex bibtex8 bibtexu biber 89 19 20 21 22 23 24 2 u contextgroup gt context meeting 2012 Likewise ConTgXt MkIV users should be able to choose between bibTgX or an enriched bib TEX such that bibTeX8 or bibTeXu or MlbibTex In this last case we have to study how accurate in formation could be passed to the mlbibcontext program Some present lack of MlbibTgX only two en codings are available for input bib files as well as output bbl ones More precisely bib files are supposed to be encod
44. age 23 Ch 9 but might require more work for the texts to be processed by the commands of the biblatex package 6 Conclusion We are personally an adept of functional pro gramming in general and Scheme in particular But has been able to be adapted to applications other than those initially planned what is a good quality for a program In par ticular the mlbiblatex program succeded in taking as much advantage as possible of bibla tex s features with just slight modifications of our kernel We think that we have been able to reach such adaptability and flexibility because of the use of Scheme even if these qualities could For example the name of the Polish city d should be written down L o d z or NL 6 0 2 within a bib file its internal form handled by MlbibTeX is L od Cz since 6 belongs to Latin 1 whereas and 2 do not bibTeX just read aux files and never reads a tex file 23 8 12 1 3 whereas the mlbibtex program may look into a document s preamble American Standard Code for Information Interchange Let us recall that ConTgXt MkIV texts are supposed to be encoded w r t urr 8 Since MIbibTeX cannot deal with this encoding the output files of the mlbibcontext program are presently encoded w r t pure ASCII See the Web page http scheme reports org In fact MlbibTeX has been implemented using the conventions of nsns what stands for Revised R
45. ample of a TeX and Lua mix Maybe some more basic functionality will be added in the future but it all depends on usage 52 oriental tex optimizing paragraphs gt hans hagen 5 10115 samawi hamid Oriental TeX optimizing paragraphs Hans Hagen 5 Idris Samawi Hamid Introduction One ofthe objectives of the Oriental TeX project has always been to play with paragraph optimization The original assumption was that we needed an advanced non standard paragraph builder to Arabic done right but in the end we found out that a more straightforward approach is to use a sophisticated OpenType font in combination with a paragraph postprocessor that uses the advanced font capabilities This solution is somewhat easier to imagine than a complex paragraph builder but still involves quite some juggling At the June 2012 meeting of the ntg there was a talk about typesetting Devanagari and as fonts are always a nice topic if only because there is something to show it made sense to tell a bit more about optimizing Arabic at the same time In fact that presentation was already a few years too late because a couple of years back when the oriental TeX project was presented at tug and Dante meetings the optimizer was already part of the ConTgXt core code The main reason for not advocating is was the simple fact that no font other than the not yet finished Husayni font provided the relevant feature set The lack of advanced fonts does not prevent us from
46. an 227 other crease between the outer spine folds It is a little more work but allows the spine to flex ifthe portfolio contains less paper than the spine width allows for This guarantees a tight fit when the elastic band is used To make the slots used to insert a postcard into the front cover it is best to prepare a template The template should be 210 x 160 mm and can be made from a piece of discarded cardboard Draw a rectangle of 150 x 100 mm which is Offset by 40 mm from the bottom and the right edge Mark at each angle two points e g 15 39 contextgroup gt context meeting 2012 mm offset along the rectangle s frame Cut the drawn triangles out of the template or mark the 8 points by punching little holes with a sharp awl By cutting the triangle a fraction of a millimeter larger than drawn you can then insert a 150 x 100 mm postcard with ease For best results make your pencil marks as lightly as possible or alternatively use the tip of the bone folder When the portfolio is finished you could cut the short edges of the fold in flaps with a bevelled edge 5 The steps for making the porfolio e Placethe sheet in front of you so the widest side is parallel to the edge of the working table e Mark and crease a horizontal line at 215 mm from the bottom of the sheet A B e Mark and crease a vertical line 30 mm from the left edge extending to the al ready creased horizontal line A B e Mark and cr
47. an array of content streams instead of a single entry the separate content streams have to be manually concatenated And content streams have to be reset before the first use Here is a bit of example code for reading a stream using the epdf library function parsestream stream local self streams local thetype type stream if thetype userdata then self stream stream getStream elseif thetype table then for i v in ipairs stream do self streams i v getStream end self stream table remove self streams 1 end self stream reset local byte getChar self while byte 0 do byte getChar self end if self stream then self stream close end end In the code above any interesting things you want to happen have to inserted at the line 22 The example makes use of one helper function getChar and that looks like this local function getChar self local i self stream getChar if i 0 and self streams gt then self stream close self stream lt remove self streams 1 self stream reset i getChar self end return i end Our own lexer The new lexer we wrote does create actual to kens Its Lua interface accepts either a poppler stream or an array of such streams It puts pdf operands on an internal stack and then executes user selected operators The library pdfscanner has only one function scan Usage looks like this require pdfscanne
48. and we need your help The Context Group offers its members A yearly multi day ConTeXt meeting somewhere in Europe This journal which also doubles as the proceedings of that meeting An easy to install and update ConTgXt installation e A discount to other TeX related conferences Becoming a member is possible by filling in the form on the Context Group website URL on the left and paying the membership fee via paypal or bank transfer The yearly mem bership fee is currently 40 for regular individuals and 20 for students Articles can be sent to cg journal contextgarden net preferably using the cgj mod ule which can be found in the ConTeXt distribution This journal is typeset using the latest ConTeXt beta at the time of production using the latest version of LuaTeX The used fonts are the commercial Alwyn New family by Chris Dickinson of moretype for the running text the freeware font Inconsolata for code blocks and TeX Gyre Pagella math for mathematics contents Contents 5 Dayplan 7 CrafTgX Mari Voipio 8 MetaPost PNG Output Taco Hoekwater 10 Database publishing with the speedata Publisher Patrick Gundlach 11 Minutes of the 8 ConTeXt Group membership meeting Willi Egger 14 MetaPost path resolution isolated Taco Hoekwater 20 Parsing PDF content streams with Lua IgX Taco Hoekwater 25 MFLua Instrumentation of MF with Lua Luigi Scarso 37 Conference portfolio Wi
49. are new functions to trace a curve and to calculate the intersections between two cubics both based on De Casteljau s bisection algorithm an application of De Castel jau s algorithm so the parametric form and the trick to calculate the intersections are not needed anymore We also keep contours envelopes and pens apart almost until the end of the process when we first merge envelopes and pens and then at last contours The most important enhancement is probably the replacement of the polygonal version of a pen with an elliptical one MetaFont generates a polygonal getting an ideal ellipse with major axis minor axis and the angle of rotation from the pen specifications and then calls make ellipse Putting a sensor around helps us store the axis and theta into a Lua table to be read later from end_program lua The next step is a trick again we call MFLua with the following file batchmode fill fullcircle xscaled majoraxis yscaled minoraxis rotated theta shifted 0 0 shipit bye 35 contextgroup gt context meeting 2012 where majoraxis minoraxis and theta get the ellipse data MFLua then saves the outlines of the filled ellipse into another file from which they can be read by end_pro gram lua This script then saves each elliptical pen in a table with p c1 c2 q as a key to be reused later instead of the polygonal one We can see the result in fig 6 the approximation is quite good This reduces the total number of c
50. article Nusepackage bibstyle authoryear biblatex addbibresource mb bib The suffix is needed begin document Did you read citetitlex holmstrom2011 This is a thriller written by citeauthor holmstrom2011 printbibliography end document Figure 3 Using the biblatex package entry holmstrom2911 book name author 1 uniquename 0 Holmstrom H Darwin D HHHH HY 3 field title Toxic Terrain list publisher 1 Gold Eagle field number 390 field series Don Pendleton s The Executioner field totalpages 192 field year 2011 field month 05 endentry Figure 4 Reference used by the biblatex package The biblatex package s conceptor introduced new entry types a bibliography processor should be able to process On the contrary these new types are unknown in standard bibliography 86 styles Again a switch mechanism allows us to recognise these new types only when the parser is running ina kind of mlbiblatex mode Another point is related to dates in standard bibliography styles they are specified by a YEAR field and optionally by a MONTH field The bibla tex package allows dates to be expressed this way or by means of a DATE field allowing the specification of a range of dates 21 2 3 8 The extension of our parser for biblatex has been revised to include these points Let us mention that the specification of dates are crucial within bibliographies
51. atoptions format rgba antialias fast however outputformatoptions is initially the empty string because that makes it easier to test whether a user driven change has already been made Some notes on the different PNG output for mats e Thergb and gray subformats have a white background The rgba and graya subformats have a transparent back ground e The bitdepth is always 8 bits per pixel component e Inall cases the current picture is ini tially created in 8 bit RGB mode For the gray and graya subformats the RGB colors are reduced just before the actual PNG file is written using a standard rule g 0 2126 r 0 7152 g 4 b metapost png output taco hoekwater e CMYK colors are always converted to RGB during generation of the output image using r 1 c k gt 1 1 c k g 1 m k gt 1 71 m k b 1 y k gt 1 1 y k If you care about color conversions you should be doing awithin lt pic gt loop inside extra endfig The built in con versions are more of a fallback What you should also know Metapost uses cairo http cairographics org to do the bitmap creation and then uses libpng http www libpng org to create the actual file Any prologues setting is always ignored the internal equivalent of the glyph of operator is used to draw characters onto the bitmap di rectly If there are points in the current picture with negative coordinates then the whole picture is shifted upwards to pr
52. c BachoTgX 2008 Conference p 114 123 19 Jonathan Kew in TeX Live and beyond TUG April 2008 boat Vol 29 no 1 p 146 150 EuroBachoTeX 2007 8 Taco Hoekwater The Bibliographic Module for proceedings 2007 ConText In EuroTeX 2001 p 61 73 Kerkrade 20 Oleg E Kiselyov xm and Scheme September the Netherlands September 2001 2005 http okmij org ftp Scheme xml html 9 Jean Michel Hufflen MlbibTgX s Version 1 3 TUG 21 Philipp Lehman The biblatex Package Program boat Vol 24 no 2 p 249 262 July 2003 mable Bibliographies and Citations Version 1 6 29 26 But we think that more effort would have been needed 27 Practial Extraction and Report Language A good introduction to this language is 30 91 contextgroup gt context meeting 2012 22 23 92 July 2011 ftp ftp tex ac uk archive Archive 20Odirectory macros latex exptl biblatex doc biblatex pdf Miki Loukides and Andy Oram Programming with GNU Software O Reilly amp Associates Inc December 1996 Frank Mittelbach and Michel Goossens with Jo hannes Braams David Carlisle Chris A Rowley Christine Detig and Joachim Schrod The Companion 2nd edition Addison Wesley Pub lishing Company Reading Massachusetts August 2004 Oren Patashnik bibTgXing February 1988 Part of the bibTeX distribution Manuel Serrano Bigloo A Practical Scheme Com piler User Manual for Version 3 3b March
53. called if the two strings are equal e the fourth is lt resp gt for an ascending resp a descending order e the fifth is f for a case insensitive com parison uppercase 1st resp lower case 1st if uppercase resp lowercase letters take precedence when two strings are different only by the case Fig 7 s second example shows the default values of these three additional arguments By default these functions implement strict order relations that is irreflexive asymmetric and transitive as lt for numbers The sixth example shows that our lt english function defaults to a case sen sitive relation in which uppercase letters take precedence over lowercase ones the seventh example shows how to proceed if you would like lowercase letters to take precedence Finally the last example shows how the third argument can be used to chain order relations the idea is to sort persons regarding last names first names birth dates and possibly other informa tion As you can see this feature sketched in 12 8 4 makes easier a sort by means of several successive sort keys More details about these order relations are given in 17 3 2 Syntactical extensions MlbibTex s syntactical extensions about multi linguism are explained in detail in 9 Presently they are not used by the programs mlbiblatex and mlbibcontext On the contrary our ex tensions for authors and editors names can be directly usable by th
54. case of integer or real the value is always a Lua floating point number In case of name the leading slash is always stripped In case of string please bear in mind that pdf actually supports different types of strings with different encodings in different parts of 1 In Lua this could actually have been handled by upvalues or global variables The third argument was initially a concession made to the planned conversion to C 23 contextgroup gt context meeting 2012 the pdf document so you may need to reencode some ofthe results pdfscanner always outputs the byte stream without reencoding anything pdfscanner does not differentiate between lit eral strings and hexidecimal strings the hexa decimal values are decoded and it treats the stream data for inline images as a string that is the single operand for EI In case of array the table content is a list of pop return values In case of dict the table keys are pdf name strings and the values are pop return values While parsing a pdf document that is known to be valid one usually knows beforehand what the types of the arguments will be For that reason there are few more scanner methods defined e popNumber takes a number object off the operand stack e popString takes a string object off the operand stack e popName takes a name object off the operand stack e popArray takes an array object off the operand stack e popDict takes a dictiona
55. cess at left filldraw stroke z2e right tension atleast 9 and atleast 1 Z3e downj z5e z4e z4e z5e z6e stroke penlabels 0 1 2 3 4 5 6 7 8 endchar As we can see in fig 3 there are both a contour and envelopes of more than a pen there are intersections between the contour the envelopes and the pens and some curves are outside the glyph some of these curves are used to delete unwanted black pixels There are also some unexpected straight lines and small curves The number of curves looks quite large which is not what we desire as we want to obtain the outline depicted in fig 4 Unfortunately things are even different and it s necessary to describe how MetaFont calculates pen envelopes to go on This is explained in the book MetaFont The Program Knuth 1986a at the Polygonal pens part chapter 4469 that we briefly quote with a slightly modified notation Given a convex polygon with vertices wg W1 Wn_1 Wn Wo ain counterclockwise order and a curve B t the envelope is obtained if we offset B t by wy when the curve is travelling in a direction B t lying between the directions wy wy 4 and wy At times t when the curve direction B t increases past wy 4 wy we temporarily stop plotting the offset curve and we insert a straight line from B t wy to B t wg41 notice that this straight line is tangent to the to the offset curve Similarly when the curve direction decreases past
56. cific to ConText may be grouped into a special preamble within bib files the CONTEXTPREAMBLE directive instead ofthe traditional PREAMBLE direc tive 6 To end up let us mention the mlbibtex2xml program 10 part of MlbibTgX This program allows bibliographical items to be given using XML like syntax This kind of text can be processed by ConTeXt MkIV cf 7 Fig 8 However we think that mlbibtex2xml s outputs could be processed by programs written using Lua 12 as allowed by ConTeXt MkIV 7 rather than ConTgXt features related to TeX When bib files are processed by mlbibtex2xml no sort operation is performed References 1 Fran ois Charette and Philip Kime biber A Back end Bibliography Processor for biblatex Ver sion biber 0 9 biblatex 1 6 August 2011 http freefr dl sourceforge net project biblatex biber biblatex biber development documentation biber pdf 2 CONTEXTGARDEN http wiki contextgarden net Bibliography Bibliographies in MkII April 2012 3 CONTEXTGARDEN http wiki contextgarden net Bibliography mkiv Bibliographies in MkIV July 2012 4 Hans Hagen The Luafication of TeX and ConTeXt In Proc BachoTgX 2008 Conference p 114 123 April 2008 5 Taco Hoekwater The Bibliographic Module for ConText In amp uroTgX 2001 p 61 73 Kerkrade the Netherlands September 2001 6 Jean Michel Hufflen MlbibTeX Meets ConText tucboat Vol 27 no 1 p 76 82 Eur
57. d Lotz Frankfurt Germany manfred dante de Jerzy Ludwichowski GUST Torun Poland jerzy ludwichowski umk pl Bernd Militzer Kempen Germany bernd militzer net Christina Moller Fachhochschule Stralsund Stralsund Germany christina moeller fh stralsund de Thomas Ratajczak German Army Langenfeld Germany ratajczak gmail com Heiner Richter Fachhochschule Stralsund Stralsund Germany heiner richter fh stralsund de Edgaras Sakuras VTEX UAB Vilnius Lithuania edgaras sakuras vtex lt Luigi Scarso Padova Italy luigi scarso gmail com Volker Schaa Dante e V Darmstadt Germany v r w schaa gsi de Martin Schr der Duisburg Germany martin oneiros de 98 Robbert Schwippert Docwolves B V Dordrecht The Netherlands ras elvenkind com Martin Sievers Dante e V Trier Germany martin dante de Linas Stonys VTEX UAB Vilnius Lithuania Istonys vtex It Piotr Strzelczyk GUST Gdynia Poland piotr eps gda pl Sigitas Tolusis VTEX UAB Vilnius Lithuania sigitas vtex lt Kees Van der Laan Garnwerd The Netherlands kisal xs4all nl Ulrik Vieth Stuttgart Germany ulrik vieth arcor de Mari Voipio Lucet fi Vantaa Finland mari voipio lucet fi Herbert Vo Freie Universit t Berlin Berlin Germany herbert dante de Munehiro YAMAMOTO Japan munepixyz gmail com Uwe Ziegenhagen DB Private Equity Cologne Germany ziegenhagen gmail com
58. d be offered as a new Lualex extension and that is exactly what we did About the epdf library This library is written by Hartmut Henkel and it provides Lua access to the poppler library included in LuaTeX For instance it is used by ConTgXt for keeping links in external pdf figures The library is fairly extensive but a bit low level because it closely mimics the libpoppler in terface It is fully documented in 6 reference manual but here is a small example that extracts the page cropbox information from a pdf document local function run filename local doc epdf open filename local cat doc getCatalog local numpages doc getNumPages local pagenum 1 print Pages numpages while pagenum numpages do local page cat getPage pagenum local cbox page getCropBox print string format Page d g g g gl pagenum cbox x1 cbox yl cbox x2 cbox y2 pagenum pagenum 1 end end run arg 1 21 contextgroup gt context meeting 2012 Lexing via poppler As said a lexer converts bytes in the input text stream into tokens and such tokens have types and values libpoppler provides a way to get one byte from a stream using the getChar method and it also applies any stream filters beforehand but it does not create actual tokens Poppler limitations There is no way to get the full text of a stream immediately it has to be read byte by byte Also if the page content consists of
59. d mflua c The first one lists the symbol 26 mflua instrumentation of mf with Lua gt luigi scarso include lua51 lua h include lua51 lualib h include lua51 lauxlib h include lt kpathsea c proto h gt include lt web2c config h gt extern lua_Statex Luas extern int mfluabeginprogram while the second one contains the corresponding function source code int mfluabeginprogram 1 lua State xL lual_newstate luaL openlibs L Luas 0 L execute Lua external begin program lua const charx file begin program 1lua int res luaL loadfile L file if res 0 res lua pcall L 0 0 0 priv_lua_reporterrors L res return The above function initializes the Lua interpreter stores its state in the array Luas it would be possible to have more than one interpreter but this feature is cur rently neglected and then executes the external script begin program 1lua call ing lua pcall L 0 0 0 This call protects the interpreter from errors Every time we run mf the MetaFont program it loads and executes the Lua script begin program lua customizable by programmers We surely need to pay attention to some issues The first one is that literate programming style allows to collect every changes we make in a source file into a change file mf ch in our case which is then merged into a Pascal program by tangle This means that inserting a sensor can interfere with the cha
60. ding to the SXML format 20 For example Fig 15 entry is translated to the XML tree given in Fig 2 We can see that the author s name has been split into these components Likewise LATEX com mands e g Nem or emph are recognised and replaced by XML tags When bibTgX users begin to run MlbibTeX the most surprising feature is that the latter per forms a more precise analysis of bib files When a field name is not recognised a warning mes sage is emitted By default the fields subject to additional check are e the standard fields AUTHOR EDITOR MONTH PAGES and YEAR e the field DAY used by numerous styles e the fields GENDER and TOTALPAGES used by the bibliography stules associated with the jurabib package 23 12 5 1 e two special fields used by MlbibTgX LAN GUAGE 9 and LASTSORTKEY 12 The second extension of MlbibTgX as above mentioned the hal program populating an open archive site from the entries of bib Scheme implementation of XML mlbibtex and its new extensions jean michel hufflen files 14 needs additional check about the ADDRESS field of an entry being type INPRO CEEDINGS we have to extract the country of the corresponding conference and optionally the town In addition the name of such a country is to be checked because we have to give its 5 code So we have decided to accept declarations like ADDRESS Breskens The Netherlands or ADDRESS The Nether
61. dvantages When the approach of biblatex and ConTeXt is used a bibliography processor does not have to provide the text of successive references of a bibliography Since it just produces structures whatever the bibliography style is such a style is put into action by customising the command of LATEX or ConTeXt producing the final bibliog raphy the idea is to build two accurate bib liography processors out of MlbibTeX s kernel These two programs mlbiblatex resp ml bibcontext for biblatex resp ConTeXt are written entirely in Scheme in order to get more efficiency Even if we are not interested in multilingual extensions of MlbibTgX during a first step here are the features of interest for such bibliography processors 3 1 Order relations In 11 we showed how the lexicographic order relations handled by MlbibTgX were built These order relations implemented by means of Scheme functions are language dependent A simple use of the english function for English words to compare two strings is given by the first example of Fig 7 t resp 4tf stands for the true resp false value in Scheme In reality these functions are more powerful since they use optional A zero argument function w r t Scheme s terminology mlbibtex and its new extensions jean michel hufflen arguments controlling the behaviour in addition to the two strings to be compared e the third is a thunk that is
62. e Luas 0 register lua functions lua pushcfunction L priv mfweb LUAGLOBALGET char code lua setglobal L LUAGLOBALGET char code execute Lua external mfluaini lua const charx file mfluaini lua int res luaL loadfile L file if res 0 res lua pcall L 0 0 0 3j priv_lua_reporterrors L res return 0 Users can read and set this variable though the set value won t be passed to MetaFont in order to interfere as little as possible with its state That s why we prefer to inspect the translated C code which quality depends on the translation performed at compile time A clean solution should only depend on the WEB source For historical reasons translating code from Pascal into C outputs two files mf c and mf1 c Finding a symbol implies searching in two files which hardens the process There are currently 24 sensors 33 global variables and 15 scripts though it s possible to increase these quantities if we discover that tracing a specific function inside MetaFont is better than reimplementing it in Lua While it s easy to implement the algorithm to draw a curve in Lua it s slightly harder to implement the algorithm to fill a region Whatever the main goal is to keep the number of sensors as low as possible Notice that MFLua currently reads scripts from the current folder and doesn t use the standard TeX folders 28 mflua instrumentation of mf with Lua gt luigi scarso n
63. e dure 17 uses the commands configure 28 and make 22 well known within Gnu software the source files are available at the Web page http disc univ fcomte fr home jmhufflen texts superreport smibibtex 1 3 tar gz e the mlbibcontext program allows order relations used to sort bibliographies to be customised w r t successive keys given by bibTgX s fields 10 11 only ascending or ders can be used presently Except if the biblatex package is used 21 in which case the bibliography style applied by bibTeX is implicitly the biblatex bibliography style Biber Configuration File eXtensible Markup Language Let us mention that mlbibcontext could deal with configurations described by xw files in particular it could process biblio 5 graphical entries given using xmt like syntax it can also process additional definitions written using the Scheme programming language 18 Of course it is preferable for mlbibcontext to be compiled in order to get more efficiency The use of other Scheme compilers or interpreters is possible Recursive acronym Gnu is Not Unix 93 contextgroup gt context meeting 2012 but this point could be improved by a nicer interface the kernel of MIbibTgX also pro vides descending order relations e the mlbibcontext program allows you to put many basic commands of TEX inside values of bibTgX s fields even if the re sult is processed by ConTgXt moreover some commands spe
64. eX can sort w r t month names whereas bibTgX does not To perform such an operation month names must be recognised Likewise when years are to be sorted MlbibTeX applies a numerical sort whereas bibTeX sorts years as strings so the value associated with a YEAR field must be an integer For example the stules apa used by the American Psychology Association International Standardisation Organisation We also accept declarations like ADDRESS Washington District of Columbia United States that is a string of three comma separated components The first is supposed to be the town the last the city Technically it is not very difficult since we consider that Scheme as a functional programming language allows functions to be handled like any other value MlbibTgX s parser uses association lists whose elements look like key f where f is the function to be called to parse the value associated with key To perform such a switch just change the function associated with key 85 contextgroup gt context meeting 2012 Another bibliography processor biber 1 has come out it builds only bbl files suitable for biblatex Let us consider the example of a LATEX document using this biblatex package given in Fig 3 The corresponding bbl file looks like Fig 4 and the bibliography will be formatted w r t the author date style 23 8 12 3 because of the bibstyle option of the biblatex package documentclass
65. ease a vertical line 40 mm from the left edge extending up to the already creased horizontal line A B e Point Cis 2 mm right of the last creased line Draw a line upwards at an angle of 45 starting from C e Draw a vertical line 80 mm from the left edge on the horizontally creased line A B D until it intersects with the di agonal This intersection point is point e Draw a line starting 210 mm from the left edge on the horizontally creased line A B F upwards until it intersects with the diagonal the angle is not im portant C e Cutlines A D D EF BandF GC e Crease E G on the outside of the cover Be very careful when doing this crease or the portfolio will not fold correctly e Fold D precisely and sharpen the fold with the bone folder e Fold G while turning the strip fold down after precise positioning of the strip with the bone folder 40 e Mark the fold in flaps at the bottom and top so that they are approximately 2 mm inside the cover after folding Mark two lines 2 and 12 mm to the right of the fold in direction of the height of the portfolio e Completely unfold the portfolio Mark and crease a line 10 mm to the left of the bottom turn in Mark and crease a line 10 mm to the right of the top fold in Crease also the two lines in direction of the height of the portfolio e Cutthe top fold in to the width of the bottom fold in flap 30 mm e There are now four small
66. ed w rt Latin 1 The characters that are not included in this encod ing e g some Polish letters such that t can be reached only by using TeX commands like 1 About generated bbl files either Ml bibTeX detects that the Latin 1 encoding is used by looking into the document s preamble in which case this encoding is used for the bbl file produced otherwise this bbl file is a pure Ascii file allthe accented letters being specified by means of TeX commands Such behaviour is due to the Scheme programming language MlbibTeX has been written using the fifth revi sion of this language 18 not Unicode compli ant Most of Scheme interpreters can deal with Latin 1 some not all accept other encodings but in a non portable way Besides we want our functions to be able to work on as many Scheme interpreters as possible A new revi sion of Scheme is in progress and will be Uni code compliant so a future version of Mlbib TEX should be able to deal with other encodings such that Latin 2 UTF 8 UTF 16 etc Last but not at least we plan to update the programs mlbiblatex and mlbibcontext in order for them to be able to deal with MIbibTgX s multilingual features From our point of view that should be quite easy for mlbibcontext in the sense that all the languages are available a priori within ConTgXt MkIV you do not have to put all the languages you use throughout a text as options of a module like the babel pack
67. en in the numeral O case the post process can be quite simple sometimes not MFLua doesn t automatically output a glyph outline because it s the programmer who has to implement the best strategy according to his experience 32 mflua instrumentation of mf with Lua gt luigi scarso 4 Two different strategies for post processing the curves 4 1 The Concrete Roman 10 pt The first use of MFLua has been the post processing of Concrete Roman 10 pt to obtain an OpenType version of it This font is described in the file ccr10 mf As we previously said sensors collect the data into Lua tables and end program lua post processes them at the end of the execution we could even choose to execute the no more post process during the execution The script end program lua defines the global array chartable index that contains the data for the glyph with char code index we have the edge structure that allows the program to calculate the pixels of the glyph as well as the three arrays valid curves c valid curves e and valid curves p that gather the data of contours envelopes and the polygonal version of the pens Each array contains the array of the control points p c1 c2 q stored as a string lt x gt lt y gt where x and y are the coordinates of the point With fig 3 as a reference we can see that when we draw a glyph with a pen it usually has overlapping strokes Along with the curves of the pen s these overlaps create curves
68. eport on the algorithmic language Scheme 18 Later a new revision rers was designed and ratified 26 27 including functions dealing with the whole range of Unicode and different encodings 27 55 1 5 2 9 but for some reasons that we do not give here most Scheme implementors did not update their programs So MlbibTgX is still rsrs compliant It seems that Scheme s next version R7Rs see some drafts at the Web page abovementioned will be adopted by most Scheme implementors So we hope that we will be able to get a Unicode compliant version of MlbibTeX very soon More generally some people already announced the end of Lisp dialects or the end of TeX 6 Co and these programs are still in action Especially the notion of field type for example AUTHOR is a list of names TITLE is a literal according to the biblatex package s terminology Analogous notions exist within MIbib TEX 90 mibibtex and its new extensions gt jean michel hufflen have been reached within other programming 10 Jean Michel Hufflen Names in bibTgX and Ml paradigms In addition our programs can bib TeX rucboat Vol 27 no 2 p 243 253 TUG be used with a Scheme interpreter but better E Marrakesh Morocco Novem efficiency is reached if programs are compiled x f Even if we think that we are not in competition 11 Jean OBER Po ek in MlbibTeX rucboat Vol 29 no 1 p 101 108 with a bibliography proc
69. ese two programs In ad dition to bibTgX s conventions keywords may be used to point to the four parts First von Last Junior of a name what may be very useful The arithmetical function used within Fig 7 s last example is analogous to our order relations in the sense that its third argument is called if the two numbers given as first two arguments are equal Otherwise it behaves like 87 contextgroup gt context meeting 2012 lt english f lt english lt english lt english ConTeSt ConTeXt lt english ConTeSt ConTeXt lt english ConText ConTeXt lt english ConText ConTeXt w M ambda f lt uppercase 1st ambda ok f Default values explicited ok Equal strings t m ambda ok gt ambda ok ambda ok lt sf f Descending order f ok Case insensitive equality EN ed edP a lt english ConText ConTeXt lt english ConTeXt ConTeSt lambda ambda ok gt lowercase 1st I Lowercase letters take precedence lt english Mk Mk lambda lt arithmetical 2 4 lambda f Figure 7 Order relations handled TEX first gt Jean last gt Le Clerc de la Herverie the four keywords first gt von gt last junior lt lt are available the order of ap pearance being irrelevant In additio
70. essor like biber it is EuroBachoTeX 2007 proceedings 2007 certain that a program written using Scheme 12 Jean Michel Hufflen Revisiting Lexicographic is more efficient than a program written using Order Relations on Person Names In Proc Ba Perl So we have spent much time when we choTgX 2008 Conference p 82 90 April 2008 began MlbibTgX s development but we do not 13 Jean Michel Hufflen Classe superreport Manuel regret anything and were happy to be able to d utilisation March 2010 http lifc univ fcomte adapt this program to new requirements fr home jmhufflen superreport superreport 1 readme pdf 14 Jean Michel Hufflen Using MibibTeX to Popu 7 Refi late Open Archives In Tomasz Przechlewski Karl references Berry Gaby Gic Grusza Ewa Kolsar and Jerzy B 1 Fran ois Charette and Philip Kime biber A Back Ludwichowski eds Typographers and Program end Bibliography Processor for biblatex Ver mers Mutual Inspirations Proc Bacho TeX 2010 sion biber 0 9 biblatex 1 6 August 2011 http Conference 0 mAB Apr 010 freefr dl sourceforge net project biblatex biber 15 Jean Michel Hufflen From Bibliography Files biblatex biber development documentation to Open Archives the Sequel In Karl Berry biber pdf Jerzy B Ludwichowski and Tomasz Przech p 2 CONTEXTGARDEN http wiki contextgarden lewski eds Proc EuroBachoTgX 2011 Conference net Bibliography Bibliographies in MkII April p61
71. event things from falling outside the generated bitmap contextgroup gt context meeting 2012 Database publishing with LuaTeX and the speedata Publisher Patrick Gundlach Database Publishing is the repetitive semi au tomatic transformation from a data source to some kind of output HTML PDF epub A common task is to have an excel sheet a product information management system or a webshop database and generate reports data sheets product catalogs or other kind of PDF documents out of it Database publishing is often equal to InDesign Publishing with the help of some plugin that automates the task of pulling data from the database into the docu ment The user can and must make the result ing document more beautiful There are several alternatives to this approach especially when you need 10096 unattended workflows Each alternative has advantages and of course drawbacks 1 ConTeXt fills this gap nicely but requires a very knowledgable pro grammer 2 Many times users write some perl or python scripts that reads the database con tents and produces some kind of output per haps LaTeX code that must be run with PdfLaTgX This is a fast approach but tend to get very hackerish after some time 3 There is a stan dardized way of transforming XML to PDF called XSL FO This w3c standard has the big advan tage that many tools exist to help the user in the task of publishing But XSL FO is very limited in its capabilitie
72. f instructions with ConTgXt and MetaPost Besides enhancing my creativity also use ConTgXt to deal with the boring but necessary parts of having my own little craft business e g for creating price lists and business cards This migration is still very much in process but eventually everything will be done with ConText and possibly MetaPost and with as few different style definitions as possible contextgroup gt context meeting 2012 MetaPost PNG Output Taco Hoekwater The latest version of Metapost 1 80x has a third output backend it is now possible to generate PNG bitmaps directly from within Metapost Introduction For one of my presentations at EuroTgX2012 in Breskens wanted to create an animation in or der to demonstrate a Metapost macro that uses timer variables to progress through a scene While working on that presentation it quickly became obvious that the traditional method of creating an animation with Metapost by using ImageMagick s convert to turn EPS images into PNG images was very time consuming So much so that actually managed to write a new back end for Metapost while waiting for ImageMagick to complete the conversion Simple usage Metapost will create a PNG image instead of En capsulated PostScript or Scalable Vector Graph ics by setting outputformat to the string png outputformat png outputtemplate j c 0 beginfig 1 fill fullcircle scaled 100 withcolor red end
73. fig end This input generates a bitmap file with dimen sions 100 x 100 pixels with 8 bit color RGBA It shows a red dot on a transparent background Adjusting the bitmap size In the simple example given above Metapost has used the default conversion ratio where one point equals one pixel This is not always de sired and it is tedious to have to scale the pic ture whenever a different output size is required To allow easy modification of the bitmap size independent of the actual graphic two new in ternal parameters have been added hppp and vppp the names come from Metafont but the actual meaning is specific to Metapost In Metapost hppp stands for horizontal points per pixel and similarly for vppp Adding hppp 2 0 to the example above changes the bitmap into 50 x 100 pixels Specifying values less than 1 0 but above zero makes the bitmap larger Adjusting the output options Metapost creates a 32 bit RGBA bitmap image unless the user alters the value of another new internal parameter outputformatoptions The syntax for outputformatoptions is a space separated list of settings Individual settings are keyword value The only currently allowed ones are format rgba rgb graya gray antialias none fast good best No spaces are allowed on the left nor on the right of the equals sign inside a setting The assignment that would match the com piled in default setup is outputform
74. gen 5 10115 samawi hamid definefontsolution solution d goodies demo solution experimental method random preroll split criterium 1 In Figure 3 we start at the other end of a line As we sort of mimick a scribe we can be one who plays safe at the start of corrects at the end Coming back to the use of typefaces new typographers receive their kno 5 edge and information about the rules of typography from books from computer magazines or the ins truction manuals which they get with the purchase of a PC or softw basic instruction as of now as there was in the old days showing the differences between good and bad typographic de sign Many people are just fascinated by their PC s tricks and think that a the screen will make ever thing auto matic from now on in electronic publishing _man of the re There is not so much widely pr ised program called up on Coming sack TO THE USE OF typefaces IN ELECTRONIC publishing MANY OF THE NEW TYPOGRAPHERS RECEIVE THEIR knowl edge and information about the rules of typograph from books from computer MAGAZINES OR THE INS RUCTION MANUALS WHICH THEY GET WITH THE PURCHASE OF A PC or SOFTWARE THERE Is NOT so much basic instruction as of now as there was in the old days showing the differences between good and bad tyrocrapnic de DESIGN MANY PEOPLE ARE JUST FASCIN TED BY THEIR PC s TRIC lt S AND THINK THAT A WIDELY PRAISED PROGRAM CALLED U
75. ght BoldAndGreen style bold color darkgreen setupspreadsheet test period BoldAndRed comma BoldAndGreen split yes 49 56 78 67 89 24 67 j large numbers contextgroup gt context meeting 2012 5 The Lua end You can also use spreadsheets from within Lua The following example is rather straightforward startluacode context startspreadsheettable test context startrow context startcell context 123456 78 context stopcell context stoprow context startrow context startcell context 1234567 89 context stopcell context stoprow context startrow context startcell context A 1 A 2 context stopcell context stoprow context stopspreadsheettable stopluacode However even more Lua ish is the next variant startluacode local set moduledata spreadsheets set local get moduledata spreadsheets get moduledata spreadsheets start test set test 1 1 123456 78 set test 2 1 1234567 89 set test 3 1 A 1 AL2 moduledata spreadsheets stop context bTABLE context bTR context bTD context get test 1 1 context eTD context eTR context bTR context bTD context get test 2 1 context eTD context eTR context bTR context bTD context get test 3 1 context eTD context eTR context eTABLE stopluacode 50 simple spreadsheets gt hans hagen Of course the second variant does not make much
76. hat allows glyphs curves extraction and post processing We also show and discuss an example of a MetaFont source processed by MFLua to output an OpenType font 1 Introduction MFLua is a version of MetaFont Knuth s program Knuth 1986b designed to draw fonts MFLua has an embedded Lua interpreter as well as the capability of the Pascal WEB code instrumentation to output information about bitmaps and curves used in glyphs drawing The latest capability is known as code tracing MFLua s main goal is to ease the production of vector fonts which source code is a MetaFont code MFLua doesn t extend the MetaFont language in any way i e it s not possible to embed Lua code in a MetaFont source file so that a MetaFont source file is fully compatible with MFLua and vice versa MFLua won t be extended like LuaTeX extends pdflATeX The code instrumentation is a facility to gather and manage information collected in the log file when MetaFont tracing instructions are enabled MFLua automatically saves data into Lua tables using external Lua scripts Therefore a programmer can manage these tables according to his needs i e extracting a glyph vector outline s Rephrasing the previous statements MFLua is a bitmap tracing program that knows curves in advance instead of determining them from the bitmap Please notice that this is only possible when the data have been gathered The paper has the following structure after explaining what code instrumen
77. he tawil character commonly called the kashidah U 0640 We will discuss this later in this article 2 Much of this is handled within the GPOS features of the OpenType font itself e g mark and mkmk 54 oriental tex optimizing paragraphs gt hans hagen 5 10115 samawi hamid are texles Ba mung Dewfesl Unfortunately we see quite often examples of the last method in novels and even scientific texts There is definitely a down side to advanced manipulation Applying features to Latin script It is easiest is to start out with Latin if only because it s more intuitive for most of us to see what happens This is not the place to discuss all the gory details so you have to take some of the configuration options on face value Once this mechanism is stable and used the options can be described For now we stick to presenting the idea Let s assume that you know what font features are The idea is to work with combi nations of such features and figure out what combination suits best In order not to clutter a document style these sets are defined in so called goodie files Here is an excerpt of demo 1fg return name demo version 1 01 comment An example of goodies author Hans Hagen featuresets simple mode node script latn Jio default mode node script latn kern yes Jio ligatures mode node script latn kern yes
78. icipants or just communicated to the server for save keeping Like documents anno tations can be updated as well All annotations are made on the iPad with an implied author and an intended audience An notations apply to a specific part of the source text and come in a few types highlight sticky note freehand drawing The iPad App com municates with a network server to synchronize shared annotations between meeting partici pants The annotation update problem The server client protocol aims to be as efficient as possible especially in the case of communi cation with the iPad app since bandwidth and connection costs can be an issue This means that for any annotation on a refer enced document only the document s internal identification the pdf page number and the 20 beginning and end word indices on the page and are communicated back and forth This is quite efficient but gives rise to the following problem When a document changes e g if an ex tra meeting item is added all annotations following that new item have to be updated because their placement is off The actual update process is quite complicated but the issue this paper deals with is that the server software needs to know what words are on any pdf page as well as their location on that page and therefore its text extraction process has to agree with the same process on the iPad pdf text extraction Text extraction is a two step process
79. idened character is longer than the second does not look as good as the two outer ones where the second is longer than the first These kinds of aesthetic issues can be formalized for future work In the meantime here is a working modified version of the rule for naturally widened glyphs 65 contextgroup gt context meeting 2012 Specs 204 mma eA e Lal elo colt er Qu gs Ar ell vade al Le leds RL s cA GEN Eb e Jes 2s Eu qo ei A all SUED aed prams joe sg Aaf e EEE ae yall ALL de e Le eu esf ed efe ch Ih je Mal hat E ae is ds eT PU uper Ls T ET latat MENT
80. ign middle bTR bTD getspr 100 eTD bTD test setspr 30 eTD eTR bTR bTD getspr 20 eTD bTD getspr 4 3 eTD eTR bTR bTD Ngetspr AL1 AL2 eTD bTD getspr B1 B2 eTD eTR bTR bTD Enx 2 bf Ngetspr AL3 BL3 100 eTD eTR bTR bTDEnx 2 bf getspr fmt 0 3f AL3 BL3 100 eTD eTR bTR bTDLnx 2 bf getspr fmt 0 3f sum A 1 2 10 eTD eTR eTABLE What method you use depends on the complexity of the table Of there is more text than data then this method is probably more comfortable 48 simple spreadsheets gt hans hagen 4 A few settings It s possible to influence the rendering The following example demonstrates this bTABLELalign middle bTR bTD eTR bTR bTD eTR bTR bTD bTD eTR bTR bTD eTR bTR bTD eTR bTR bTD eTR eTABLE getspr 100 eTD bTD test setspr 30 eTD getspr 20 eTD bTD getspr 4 3 eTD getspr A L1 A 2 eTD getspr B1 B2 eTD nx 2 bf getspr A 3 B 3 100 eTD nx 2 bf getspr fmt 0 3f AL3 BL3 100 eTD nx 2 bf getspr fmt 0 3f sum A 1 2 10 eTD Figure figure 7 demonstrates how this gets rendered by default However often_you want numbers to be split in parts separated by periods and commas This can be 8 as follows 1234567 89 19 O94 67 definehighlight BoldAndRed style bold color darkred large numbers definehighli
81. in the next subsection Two approaches Let us start off with a couple of samples Quranictranscription has always been the gold standard of Arabic script In Figure 5 we see a nice example of scribal optimization The scribe here is operating under the constraint that each page ends with the end Figure 5 Scribal Optimization Scribe Uthman aha Quran circa 1997 62 oriental tex optimizing paragraphs gt hans hagen 5 10115 samawi hamid of a Quranic verse designated by the symbol U 6DD aD That is no verse is broken across pages That constraint which is by no means mandatory or universal gives the scribe lots of space for optimization even more than normal In Figure 6 we have a page ofthe famous al Husayni Muaf of 1919 1923 which remains up to this day the only typeset copy of the Qur n to attain general acceptance in the Muslim world Indeed it remains the standard edition of the Qur n and even later scribal copies such asthe one featured in Figure 5 are based on its orthography Unlike the scribal version the typesetters of the al Husayni Muaf did not try to constrain each page to end with the end of a Quranic verse Again that is a nice feature to have as it makes recitation somewhat easier but it is by no means a mandatory one In any case both samples share verses 172 176 in commmon so there is lots to compare and contrast We will also use these verses as our main textual sample for paragraph optimization Us
82. ines arrange the programmatically created boxes and glue for layout of complex tables and to write clean PDF The publisher is open source software AGPL and runs under the three major operating systems Linux Windows Mac OS X The documentation is mostly still in German although we are currently translating the doc umentation into english minutes of the membership meeting gt willi Minutes of the 2 ConTeXt Group membership meeting Willi Egger Present Bernd Militzer Frans Goddijn Hans Hagen Harald K nig Jano Kula Jean Michel Hufflen Luigi Scarso Mari Voipio Martin Schr der Thomas Hala Taco Hoekwater Willi Egger Excused John Haltiwanger Mojca Miklavec Thomas Schmitz Wolfgang Schuster Absent Adelheid Grob Peter M nster Guest Vusuke Kuroki 1 Opening The meeting started at 20 33 2 Agenda 1 Opening 2 Agenda 3 Activities since last meeting amp Board 5 Financials 6 Design of the corporate identity 7 Journal Proceedings 8 Next projects 9 Questions by members 10 Closing 3 Activities since last year The main things achieved during the past pe riod is the setup and make running of the bank account We have now a bank account opened in France The treasurer and the president have access to it and can perform actions through a web interface There is also a PayPal account to ease payment with foreign currencies In order to get the bank affairs right we were obliged to
83. ing Le Clerc de la Herverie that causes Herverie to be viewed as the last name Jean Le Clerc as the first name and de la as a particle In addition many users get used to insert TEX commands inside values of bibTgeX fields TITLE Nem Babylon Babies what would be difficult to interpret for a con verter into a language used to put Web pages into action Moreover such a declaration TITLE Nemph Cosmos Incorporated yields a title s specification which would be cor rectly interpreted by LATEX but ConText 6 would not recognise the emph command In other words it is quite easy to transform the syntax KEY value into lt KEY gt value lt KEY gt if we adopt xML like syntax or KEY value if Lisp like syntax is preferred On the con trary destructuring fields values may be more complicated That is why you can find many converters from bib files into other formats but at the first level Roughly speaking only a few programs run the risk of analysing the contents of fields values lt book id holmstrom2011 from mb bib author name lt personname gt lt first gt Darwin lt first gt lt last gt Holmstrom lt last gt lt personname gt lt name gt lt author gt lt title gt Toxic Terrain lt title gt lt publisher gt Gold Eagle lt publisher gt lt number gt 390 lt number gt lt series gt Don Pendleton s The Executioner lt series gt lt totalpages gt 192 lt
84. ing Figure 5 and Figure 6 as benchmarks we can begin by analyzing the approaches to paragraph optimization in Arabic script typography into two kinds e Alternate glyphs Much of pre digital Arabic typography uses this method Generally a wide variant of a letter is used to take up the space which would normally get absorbed by hyphenation in Latin Here are examples of three of the most common substitutions again reading from right to left TENET T Each of the six strings above occurs in Figure 6 Identifying them is an exercise leftto the reader We call these kinds of alternate glyphs alternate shaped glyphs The three substitutions above are the most common alternate glyph substitu tions found in pre digital Arabic script typography including some contextual variants initial medial final and isolated where appropriate The scribal tradition contains a lot more alternate shaped glyphs A few lead punch fonts implement some of them and we have implemented many of these in our Husayni font The results generally look quite nice and much more professional than most digital Arabic typography which generally dispenses with these alternates But one also finds attempts at extending individual characters without changing the shape very much One finds this already in Figure 6 We call these kinds of alternate glyphs naturally curved widened glyphs or just naturally widened glyphs for short Sometimes this is d
85. inside or outside the glyph that must be deleted Having the pixels of the glyph we can use the parametric form 1to check if a point x y or better a neighborhood with center x y is inside or outside If all the points of the curve are inside or outside we can delete them The drawback is that while time t goes linearly in B t the points x t y t follow a cubic i e not linear law in case the curve is not a straight line Hence they are not equally spaced this means that we can jump over some critical points Using the same time interval steps for each curve means that short curves are evaluated in times where the points can differ less than a pixel a useless evaluation Of course not all the curves are inside the glyph there are curves on the border and curves partially lying on the border and partially inside or outside In the latter case the result of evaluation is an array of time intervals where the curve crosses the border Once we have deleted the curves that are completely inside or outside the glyph the next step is to merge all the curves and split them using the previously seen time interval this is done by a Lua implementation of the De Casteljau s algorithm Now we have a set of curves that are on the border or near it i e partially on the border We can delete those curves having only one intersection a pending curve supposing that each curve of the final outline has exactly 2 intersections at times
86. l Arabic typography that does even extending including the poetry in the ArabTeX sample in figure 8 Compare this with the Microsoft Word method Figure 9 The method used in Microsoft Word with only one extension per word seems to be the current standard for flat extending justification On the other hand the justification used in Microsoft Word is not particularly aesthetically pleasing The answer will lie again in parameterization of some sort to be determined As TeXies we want to be able to have fine control over this kind of behavior in any case In the meantime we mirror the same rule we arrived at for naturally widened glyphs Generally there is only one flat extended character allowed per word However two non consecutive extended characters may be allowed In that case the second extended character should be longer than the first oriental tex optimizing paragraphs gt hans hagen 5 10115 samawi hamid UN ME Si IU ERE DOMOS AURI NUIT ME 3 dea uo BS spat OE zit a sisti u Da ca E idi vv NI aaki IR sch gar oj OG BL OED JF ai at AUS JO alu Calls 7 dad Gis CUS E 5 vY abi 652335 EL
87. l normal criterium 1 Nstartfontsolution FancyHusayni FancyHusayni righttoleft definefontfeatureLrasm script arab ss05 yes js06 no ss55 yes addff rasm 1115131 2 1 getbuffer sample par stopfontsolution A o o o o Ag o s 4 1 AT s EPI ud al 7 In 355 comb Sul Us US a ar x A zur E d A on 7 SI Ede eL QU Ops S 2 A T Bos 7 9 p p Le d Ost G Ys 2 Os 9 A M du abr C B ef Ay 5 Y Axa LBS Y zul Te l ov dg LIST ol di ae dus 2 E Justasthe effects are more visible in the parfillskip Opt case the impact is much larger when the available width is less In figures 11 12 13 14 and 15 we can see the optimizer in action when that happens In our estimation the current experimental solution works best for alternate shaped glyphs although there is some success with naturally widened characters Clearly some widened substitutions work better than others A lot of fine tuning is needed both within the OpenType features as well as the optimization algorithm 76 oriental tex optimizing paragraphs gt han
88. lands If the country is not given e g in ADDRESS New York or ADDRESS Paris Texas an error has to be reported So we imple mented a switch mechanism that allowed us to perform classical check about this ADDRESS field when original MlbibTgX was running and complete check when this program related to open archives was used Symmetricallu dis abling some check procedures would be possi ble within other variants When MlbibTgX s func tions work in interpreted mode such switch can be controlled by means of Scheme functions Later we noticed the modus operandi of the biblatex package 21 bbl files only contain structures and formatting References sections is entirely deferred to LATEX That is why there is no need of a bibliographystyle command If bibTeX is used there is only one suitable bibli ography style written using bibTgX s language This is just a warning message the corresponding information is not lost This modus operandi may be viewed as an advantage for example if you inadvertently type EDITORS instead of EDITOR inside an entry of type INPROCEEDINGS MlbibTgX will warn you whereas bibTex will silently ignore that field This feature may also be viewed as a drawback if you specify a MONTH field the associated value must be a symbol among jan feb dec Otherwise MlbibTgX stops with an error message This convention may appear as too restrictive but MlbibT
89. le 17 contextgroup gt context meeting 2012 And that is almost exactly the same as in the log file 0 0 controls 1 8685 6 35925 and 4 02429 12 14362 10 10 controls 16 85191 7 54208 and 16 9642 2 22969 10 5 controls 5 87875 6 6394 and 1 26079 4 29094 cycle The output is not perfectly the same because MetaPost itself does not use mp_number_as_double and g for printing the scaled values that are by default used to represent numerical values The difference is not really relevant since any programmatic use of the path solver should not have to be 100 compatible with the MetaPost programming language More complex paths Of course there are also new functions to the create more complex paths that make use of curl tension and or direction specifiers Here is how to encode the second MetaPost path from the earlier example first p mp append knot mp NULL 0 0 q mp append knot mp p 2 20 p mp append knot mp q 10 5 if mp set knotpair curls mp q p 1 0 1 0 exit EXIT_FAILURE q mp append knot mp p 3 10 if mp set knotpair controls mp p q 2 0 2 0 9 0 4 5 exit EXIT_FAILURE p mp append knot mp q 1 14 if mp set knotpair tensions mp q p 3 0 4 0 exit EXIT_FAILURE q mp append knot mp p 5 4 if mp set knotpair directions mp p q 2 0 0 0 0 0 1 0 exit EXIT FAILURE mp close path mp q first Elaborate documentation for
90. lines It works best with a sharp awl e Remove the template and cut the lines precisely conference portfolio willi egger e Insert the corners of the card 6 Consideration The article provides two drawings which enable you to make such portfolios in other sizes Con sider e g making a nice wrapping for a present or an invitation It is also fine to experiment with closings g a cord could be fixed to the front cover instead of the elastic band and turned around the portfolio The end is just tucked under the turns of the cord The workshop with the participants was a lot of fun and very recreational as intended by the theme of this year s Euro TEX 41 3 2 3 75 9 readsheet contextgroup context meeting 2012 Simple Spreadsheets Hans Hagen 1 Introduction Occasionally a question pops up on the ConTeXt mailing list where answering it becomes a nice distraction from a boring task at hand The spreadsheet module is the result of such a diversion As with more support code in ConTgXt this is not a replacement for the real thing but just a nice feature for simple cases Of course some useful extensions might appear in the future 2 Spreadsheet tables We can use Lua in each cell because under the hood it is all Lua There is some basic parsing applied so that we can use the usual A Z variables to access cells startspreadsheettableltest startrow
91. lli Egger 42 Simple Spreadsheets Hans Hagen 53 Oriental TeX optimizing paragraphs Hans Hagen amp Idris Samawi Hamid 83 MibibTgX and Its New Extensions Jean Michel Hufflen 93 Demonstration of the mlbibcontext Program Jean Michel Hufflen 95 Abstracts without papers 97 Participant list of the 6th ConTgXt meeting contextgroup gt context meeting 2012 dayplan gt 5th context meeting Dayplan Monday 8 October 2012 09 00 Conference opening 09 15 Kees van der Laan Recreational TeX amp Co with a serious undertone 10 15 Jano Kula Run for Fun 1130 Mari Voipio Textile crafts 14 00 Kees van der Laan Julia fractals in PostSCript 14 45 Taco Hoekwater MetaClock 16 00 Patrick Gundlach Database publishing with LuaTgX and the speedata Publisher 16 45 Patrick Gundlach A journey to the land of Lual TgX 17 30 Dante membership meeting 20 30 CG membership meeting Tuesday 9 October 2012 09 00 Uwe Ziegenhagen Professional Business Reports with LATEX 09 45 Leo Arnold Many versions from one source LATEX for lecturers and teachers 11 00 Taco Hoekwater MetaPost path resolution isolated 11 45 Taco Hoekwater Parsing PDF content streams with LuaTex 14 00 Hans Hagen context the script 14 45 Hans Hagen context after the cleanup 16 00 Luigi Scarso MFLua 16 45 Mari Voipio Metapost workshop 20 30 Willi Egger Conference folder workshop Wednesday 10 October 2012
92. n the abbr lt lt keyword may be used when a first name is not abbreviated according to the stan dard way that is retaining only the first letter If an organisation s name is used as an author or editor you can use the keywords org gt for the name as it must be typeset and sortingkey gt for the key used for sorting org gt Euro Tex 2012 sortingkey gt EuroTeX 2012 It is well known that co authors are connected by means of the and keyword also allows the specification of collaborators by means of the with keyword an example is given in this article s bibliography see the reference 23 MibibTgX s programs MlbibTgX s distribution is located at http disc univ fcomte fr home jmhufflen texts superreport smlbibtex 1 3 tar gz The easiest way to install it is to compile 13 Recursive acronym Gnu is Not Unix 88 the source files by the bigloo 25 Scheme compiler the installation procedure 17 uses the commands configure 28 and make 22 well known within GNUP software more details are given in 17 8 4 2 The executable programs generated are described hereafter The complete distribution s version number is given classically that is by means of sequence of numbers Versions of particular variants are labelled by geographical names Those demonstrated at the EuroTgX 2012 conference are Breskens versions 4 1 mlbibtex This programs aims to replace bibTeX and i
93. ne alternate shaped character per word In Figure 5 one can see that this rule is not always observed by scribes see e g the middle word in line 9 from the top which uses two of the alternate shaped characters we encountered above can you identify that word But we still need some constraints for decent looking typesetting and the above tentative rule is a good place to start the analysis For widened characters in particular we see that even the scribe Figure 5 closely approximates this rule So let s begin improving on our tentative rule somewhat and expand it into a number of possibilities Let s look at the naturally widened glyph case first Generally there is only one naturally widened character allowed per word However two extended non consecutive characters may be allowed The logic of the experimental font Husayni already has contraints that prevent consecutive curved widened characters For example we prefer to get widening like the following de de But as e g a last resort or for stylistic purposes we can also do a 5 5 Or even better we mix it up a bit That is if there is more than one widened character one should be longer than the other e g c e we we ae One will notice that the middle substitution where the first w
94. nge file In this case we also have to insert the sensor into the change file as we do for instance with mfluaPRE make ellipse major axis minor_axis theta tx ty 0 Of course the right solution is directly inserting the sensors in the change file Unfortunately it s usually faster discovering where to insert a sensor in the source file and then managing conflicts in the change file source files have a context the source itself that change file don t The second issue is the need to export some MetaFont variables and constants to the Lua interpreter An easy way to accomplish this task is inspecting the translated C code to realize how those variables and constants are managed e g to make Lua read the charcode variable which contains the index of the current glyph we need to know that it s stored into the internal array at index 18 the index is from the MetaFont WEB source so that we can write a wrapper function like the following one 21 contextgroup gt context meeting 2012 define roundunscaled i i gt gt 15 1 gt gt 1 EXTERN scaled internallmaxinternal 1 static int priv_mfweb_LUAGLOBALGET_char_code lua_State L integer char_code 18 integer p roundunscaled internal char code1 7256 lua pushnumber L p return 1 and then make it available to the Lua interpreter as the LUAGLOBALGET char code variable int mfluainitialize t execute Lua external mfluaini lua lua Stat
95. not all of them are payed The invoices over 2012 are to be sent soon 11 contextgroup gt context meeting 2012 Overall the financial situation is ok though we need to build on making some more capital We will however easily be able to pay the expenses to come The financial report will be available from the CG website Action Description Willi Mojca Fix the amount in the summa tion section 6 Corporate Identity We can proudly announce that we have found Adrian Egger art director in the graphic indus try willing to help us in establishing a corporate identity We have styles made in ConTeXt for invoices formal letters reports like minutes of gatherings and two types of envelopes In due time the style guide will be released There is also a design for our journal This style is not finalized completely but will be finalized for the production of our first journal Action Description Willi Adrian Finalize the style guide 7 Journal Proceedings Due to the circumstances we have not yet our first journal containing the proceedings of CMS The board decided during the board meeting before the members meeting to make our first journal a combination of 5CM and 6CM The gathering seconds this idea Action Description Adrian board Finalize the journal design and cover by 1st of november 2012 Writers Collect all articles by Ist of no redaction vember 2012 The planning is that the journal will go for pr
96. nse that nothing can be customised when bibTgX is called for example the order relation used to sort bibliographical items is hard wired in any bst file The biber program 1 often used in cojunction with the biblatex package 21 is more flexible when it runs it uses a configuration file bcf file using 6 syntax as explained in 16 2 5 in particular such a bcf file allows the sort of bibliographical items to be customised However let us recall that biber has a drawback from a point of view related to ConTeXt it only builds References sections suitable for the biblatex package As explained in 10 the mlbibcontext program aims to build References sections suitable for the bibliography support for ConTeXt 2 3 The main point of the demonstration is to show which information is needed by mlbibcontext in order for this program to be as powerful as possible In other words we aim to help design a nice interface between ConTeXt and mlbibcon text Plan Let us recall that the mlbibcontext pro gram written entirely using the Scheme pro gramming language 18 builds References sections suitable for the commands of Taco Hoekwater s bib module 8 reimplemented within ConTeXt MkIV by Hans Hagen 3 The demonstration will focus on the following points e its installation the easiest way is to com pile the source files by the bigloo 25 Scheme compiler the installation proc
97. nstruction manual and the purpose built software wasn t within budget we ended up with ConTexXt The transit period wasn t easy but in time learned to appreciate this software that does not make assumptions on what I m attempting to do Thus when suddenly found myself with a tex tile craft book to be translated and prepared for printing thought of ConTeXt Life happened and the booklet is still sitting on my desk waiting for its turn but in the meanwhile have learned many other things about TeX based systems and started to exploit their potential in crafts The experience has been mind blowing come up with new implementations almost weekly although don t usually try things out until have areal need for them am not a programmer but realize that a computer is especially useful in reducing the tedious repetitiveness of the plan ning stages Nothing can ever prepare a crafter craftex mari voipio to what happens when you play with real yarn and real paper and glue but the what if that s lighter blue and I guess this really is wrong font here process can be speeded up significantly by computer simulation don t feel complete until l ve shared my knowledge with others don t get that many face to face opportunities to that so decided to go online instead http www lucet fi haven t had the energy to fight with WordPress about the printing styles so instead I m planning to do printer friendly pd
98. o duction by the end of november This will allow that the journal is sent to the members before X mas 12 8 Next projects Website We need to ask Adrian to make a design of our new website where all material concerning the GC group is presented in a coherent way Archive for cartoons We will implement an electronic archive for the cartoon coming from Duane Bibbi We have al ready a couple of them and we want to install a tradition that the most active member of the group will be awarded with a cartoon for his work This year s user of the year will be Sietse Brouwer who invested a great effort in revisiting the wiki Next year s meeting Jano confirms that the meeting will be held again in Czech Republic in combination with TeXperience The place will be Brejlov At the end of the EuroTeX 2012 the date is confirmed for week 39 which is the last full week of september Patricks s machine is phased out within one month end of oktober First steps to safe the still running services have been already started up The do main server is moved to a machine at elvenkind Taco and Taco will be the re sponsible person for it From november onwards the group is going to pay also the involved fees ConigXt suite Taco and Mojca make sure that there is a mirroring system so that the suite is always available Action Description Taco Take care of the shutdown of Patrick s machine domain server
99. oTgX 2006 pro ceedings Debrecen Hungary July 2006 7 MultiLingual bibTeX 94 7 2 3 14 Jean Michel Hufflen Processing Computed Texts maps Vol 41 p 68 78 2010 Jean Michel Hufflen A Comparative Study of Methods for Bibliographies rucboat Vol 32 no 3 p 289 301 Proc Tuc 2011 conference October 2011 Jean Michel Hufflen MibibTeX and the biblatex package In Tomasz Przechlewski Karl Berry and Jerzy B Ludwichowski eds Twenty Years After Proc BachoTgX 2012 Conference p 91 99 Ba chotek Poland April 2012 Jean Michel Hufflen MlbibTeX and Its New Ex tensions In Proc EuroTgX 2012 Breskens The Netherlands October 2012 Jean Michel Hufflen Gestion d ordres lexi cographiques multilingues avec xindy et MibibTgX A paraitre dans les Cahiers GUTenberg 2012 Roberto lerusalimschy Programming in Lua 2nd edition Lua org March 2006 Richard Kelsey William D Clinger Jonathan A Rees Harold Abelson Norman I Adams iv David H Bartley Gary Brooks R Kent Dybvig Daniel P Friedman Robert Halstead Chris Hanson Christo pher T Haynes Eugene Edmund Kohlbecker Jr Donald Oxley Kent M Pitman Guillermo J Rozas Guy Lewis Steele Jr Gerald Jay Sussman and Mitchell Wand Revised Report on the Algo rithmic Language Scheme Hosc Vol 11 no 1 p 7 105 August 1998 Philipp Lehman The biblatex Package Program mable Bibli
100. of t pelose in electronic publishing my new typographers receive th their knowl edge and information about the rules of typograp from books from computer magazines or the P i ction manuals which th t hey et with th e purchase of a PC or c basic i inst 1 uction as of no ast ere was in the c old days showing the differences between good and bad typogr phic de sign Many people are just fascinated by their PC s tricks and think that a widely praised program calle the screen will mak gt everything auto matic from now on oft he re There is not so much alled up on Coming back To THE T OF TYPEFACES IN ELECTRONIC PUBLISHING MANY OF THE new TYPOgRAPHERS RECEIVE THEIR kno edge and information about the rules 7 typography from books f from computer MAgAZINES OR THE INSTRUCTION MANUALS WHICH THEY GET WITH THE PURCHASE OF A PC or SOFTWARE THERE IS NC so MUCH basic instruction as of no as t ere whs in the old days showing the differences berwEEN coop and bad typogre phic de sign MANY PEOPLE ARE JUST FASCINATED by THEIR PC s TRICKS AND THINK THAT A widely praised program CALLED 1 UP ON THE SCREEN WILL MAKE EVERYTHIN Abrb matic from now on normal Figure 2 Solution b We show two more methods definefontsolution solution c goodies demo solution experimental method reverse preroll criterium 1 58 solution oriental tex optimizing paragraphs gt hans ha
101. ographies and Citations Version 1 6 29 July 2011 ftp ftp tex ac uk archive Archive 9620directory macros latex exptl biblatex doc biblatex pdf Miki Loukides and Andy Oram Programming with GNU Software O Reilly 6 Associates Inc December 1996 Frank Mittelbach Michel Goossens Johannes Braams David Carlisle Chris A Rowley Christine Detig and Joachim Schrod The I TeX Companion 2nd edition Addison Wesley Publishing Company Reading Massachusetts August 2004 Oren Patashnik bibT amp Xing February 1988 Part of the bibTeX distribution Manuel Serrano Bigloo A Practical Scheme Com piler User Manual for Version 3 3b March 2010 Gary V Vaughn Ben Ellison Tom Tromey and lan Lance Taylor cNu Autoconf Automake and Libtool Sams October 2000 Abstracts without papers Run for Fun Jano Kula Sports and especially long distance runs are known forthe good doses of endorphin Instead we will show some adrenaline challenges while preparing such a sport event 10 km run through the historic center of Prague Plotters tables layers composition ConTeXt the script Hans Hagen The ConTgXt runner context has inherited a few features from its predecessor texexec Instead of hardcoding functionality for typesetting list ings and manipulating PDF files in the script itself they are now isolated in TeX files In this presentation will show some of these lesser known features of the script ConTgXt after
102. one for the purpose of making enough space for the vowels which in Arabic take the form of diacritic characters For example contextgroup gt context meeting 2012 64 Figure 6 Alternate Fixed Glyphs From the al Husayni Muaf of the Qur n 1923 As you can see there are two letters that have been widened for vowel accommo dation In Figure 6 there are some good but near clumsy attempts at this We say near clumsy because the typographers and typesetters mix natural curved widened variants of letters with flat horizontal extended versions One reason for this is that a full repertoire of naturally curved glyph alternates would be much too unwieldy for even the best lead punch typesetting machines and their operators Even with these limitations one can find brave examples of lead based typesetting that do a good job of sophisticated paragraph optimization via glyph oriental tex optimizing paragraphs gt hans hagen 5 10115 samawi hamid alternates both widened and alternate shaped Figure 7 is a representative example in the context of columns Careful examination of this two column sample will reveal the tension between naturally widened and horizontally extended glyphs in the execution of paragraph optimization On the other hand there is one apparent rule that one finds in this and other examples of lead punch Arabic script typesetting Generally there is only one naturally widened character per word or o
103. open the account in France after having tried to do so in Germany The Netherlands and Slove nia Another activity is the development of a corpo rate identity for the CG group We come backto this in Agenda point 6 4 Board Shortly after the last meeting the board has changed As discussed during the last meeting S bastien Mengin is followed up by Peter M n ster The reason is due to the requirements for opening a bank account in France The best is that this is at the address of the association and therefore Peter was asked whether he could take up this duty Arthur Reutenauer resigned from the board on his own request Our formal treasurer does not respond to the board mailing list We found Mojca Miklavec prepared to take the function of treasurer The collected money at CM5 is handed over to Mojca and after opening the account transferred to the bank The gathering agrees to ask Adelheid to resign form the group s board None of the present members is willing to join the board at this moment Action Description Willi Since the board has changed an announcement to the French authorities is required Willi Ask Adelheid whether she wants to stay resign from the board 5 Financials The treasurer has made up a summation of the financial situation which is handed out at the meeting There is a wrong figure in the to tals section This will be corrected Invoices over 2011 are submitted to the mem bers Still
104. pen under a given set of values of those parameters e Flat extending In the transition from lead punch to digital typography alternate glyph sub stitution largely vanished The problem of spacing remained and a simple yet inelegant solution was adopted flat horizontal extending of characters Now this solution did have some precedent in pre digital Arabic typography as you can see in Figure 6 and Figure 7 This solution had the advantage that it required only a single character a simple horizontal bar called a tawil or more commonly 5 Indeed as was the case with Latin typography Arabic script typography took a sharp turn for the worse with the advent of digital typography On the other hand Latin typography recovered much more quickly in large part thanks to Knuth s development of Tex 67 contextgroup gt context meeting 2012 68 dT Sl Ji La as uS lT c aad sd syai OT PERL NT SECUN EV pM GU ze L ON DG NE ENT UST fe ANT Gh aul Aix oder Y M LSU YE eia os aiT Sx NT Figure 8 Poetry Justification in ArabTgX a kashidah
105. portfolio binder has been held The portfolio was made so it could carry the papers for the conference such as preprints of the proceedings additional papers and the carpenter s pencil given to each participant The construction is made from a single sheet of cardboard with folded flaps along three sides so that it completely envelopes the content The portfolio is held closed by a black elastic band 1 Introduction A portfolio is a practical solution to keep all information gathered during a meeting or con ference neatly in one place Most portfolios are made from strong material for instance manilla cardboard Normally they are built from several pieces ie the flaps are glued onto the back cover In this workshop an intriguing design is used which allows to prepare the com plete portfolio from a single sheet of cardboard without the need for glueing 2 Basic design In order to understand the mechanics of this type of construction it is a good idea to make a blueprint first Although the same principles apply to the version made with cardboard it is important to understand that the drawing is only in two dimensions In other words it does not include compensation for the thickness of the content and the material used for the protfolio When making the actual portfolio we will have to compensate for this The size of your portfolio is dictated by it s in tended content Therefor the height of your blank cardboard sheet
106. ptimiza tion for Arabic script Applying Features to Arabic script We re now ready for the real thing Arabic script The initial setup is not that different from the Latin script case definefontfeature husayni whatever goodies husayni featureset default definefontsolution FancyHusayni goodies husayni solution experimental definefont FancyHusayni file husaynixhusayni whatever at 24pt 71 contextgroup gt context meeting 2012 But here the definitions in the goodies file look way more complex Here we have only one shrink set but multiple expansion sets local yes yes local basics analyze yes mode node language dflt script arab local analysis ccmp yes init yes medi yes fina yes local regular rlig yes calt yes salt yes anum yes 5501 yes 5503 yes 5507 yes 5510 yes 5512 yes ss15 yes 5516 yes 5519 yes 5524 yes 5525 yes 5526 yes 5527 yes 5531 yes 5534 yes 5535 yes 5536 yes 5537 yes SS38 yes 5541 yes 5542 yes 5543 yes js16 yes local positioning kern yes curs yes mark yes mkmk yes local minimal_stretching 3511 yes 503 yes local medium_stretching jsl2 yes js05 yes local maximal stretching 3513 yes 505 yes 509 yes local wide_all 3511 yes 512 yes 513 yes js05 yes 509 yes local
107. que placerat accumsan Cras eu odio diam Nunc lorem ligula interdum eget consequat non laoreet eget magna Maecenas consequat ultrices est vitae rutrum nulla egestas sed Proin rutrum lorem in sem posuere pretium Cras accumsan euismod quam eget pulvinar Maecenas eget posuere sem Nulla sit amet luctus elit Nulla vel ligula velit Nunc consectetur orci a odio venenatis facilisis Integer venenatis commodo nibh sed gravida Ut ornare arcu in mi eleifend convallis Quisque tincidunt tellus et sodales interdum nulla massa suscipit ante non tincidunt ligula diam id nunc In eu justo at lectus pulvinar accumsan Vivamus convallis sodales ligula ut gravida elit consectetur at Ut in augue nec tortor vehicula vehicula eu eu lorem Vivamus tristique neque ut tellus tristique aliquet Proin quis augue a elit convallis venenatis Quisque scelerisque dictum augue condimen tum rutrum Integer nec dignissim nisl Aenean vitae justo lectus eu vulputate ipsum Sed porttitor dapibus arcu sed faucibus Sed vitae arcu eu quam ultrices ornare In in est nec pu rus consequat vehicula Integer ut fermentum dolor Vivamus neque quam cursus at viverra Figure 5 The ConcreteOT font produced by MFLua from ccr10 mf to write a MetaFont program that outputs a nice bitmap of a glyph using a very complex set of curves This is especially true when we use pens and the need to manually correct every error arises Up to now we only made few outlines of numerals There
108. r function scanPage page local stream page getContents local ops createOperatorTable local info createParserState if stream then if stream isStream or stream isArray then pdfscanner scan stream ops info end end end The functions createOperatorTable and createParserState are helper functions that create arguments of the proper types parsing pdf content streams with luatex gt taco hoekwater The scan function As you can see the function takes three argu ments The first argument should be either a pdf stream object or a pdf array of pdf stream objects those options comprise the possible return values of lt Page gt getContents and lt Object gt getStream in the epdf library The second argument should be a Lua table where the keys are pdf operator name strings and the values are Lua functions defined by you that are used to process those operators The functions are called whenever the scanner finds one of these pdf operators in the content stream s Here is a possible definition of the helper func tion createOperatorTable function createOperatorTable local ops handlecm is listed below ops cm handlecm return ops end The third argument is a Lua variable that is passed on to provide context for the processing functions This is needed to keep track of the state of the pdf page since pdf operators and especially those that change the graphics state can be nes
109. r with curved widening compared to the one on the right The variant on the left only works well with curved widening Towards a ConTeXt solution In what follows we will focus on a solution to the problem of paragraph optimization via alternate glyphs including alternately shaped and naturally widened variants It turns out that the xleaders method used by Omega Aleph does not work in LuaTex so flat extending could not be naively implemented that way At the moment flat extending is yet to be implemented in ConTgXt Since flat extending is so ubiquitous in current Arabic script typography and since it does have important applications poetry and small font sizes where one prefers simpler aesthetic variants one could ask why this was not implemented first In part this is because the immediate priority of the Oriental TeX project has been top notch unparalleled aesthetic sophistication of the script As we noted above flat extending does not work so well with sophisticated aesthetic variation So although the flat extending problem is apparently simpler it is understandable that we have focused on the more difficult problem first A clear understanding of the issues and challenges involved with the more general alternate glyph method will help us implement a solution to the the flat extended problem as a special case We will come back to this issue towards the end Let us now consider the current experimental ConTgXt setup for paragraph o
110. rom scratch is mainly related to bibliog raphy database files Many I TgX users have a huge number of bib files according to the format used by bibTeX So a new bibliography processor designed to work in conjunction with should be able to deal with this format At first glance it is not very complicated en tries metadata are given using the syntax KEY value as you can see in Fig 1 In reality this format is more subtle For example values may be surrounded by double quotes TITLE Villa Vortex in which case a double quote character used within such a value must be surrounded by braces TITLE Die Energiej a ger Values may also be surrounded what braces TITLE Grande Jonction in which case a double quote character can be used alone within such a value TITLE Murcos Verm achtnis The syntax for person names see 10 for more details is accurate for simple cases but may be 1 Personally we always recommend users to adopt this convention simpler from our point of view 83 contextgroup gt context meeting 2012 GBOOK holmstrom201 1 AUTHOR Darwin Holmstromj TITLE Toxic Terrain SERIES Don Pendleton s The Executioner NUMBER 390 PUBLISHER Gold Eagle TOTALPAGES 192 YEAR 2011 MONTH may Figure 1 Example using bibTgX s format surprising in such a case AUTHOR Jean Le Clerc de la Herverie if you remove the braces surround
111. ry object off the operand stack e popBool takes a boolean object off the operand stack A simple operator function could therefore look like this The Affine functions are left as an exercise to the reader 24 function handlecm scanner info local ty scanner popNumber local tx scanner popNumber local d scanner popNumber local c scanner popNumber local b scanner popNumber local a scanner popNumber local t AffineTransformMake a b c d tx ty local stack info stack local state stack stack state ctm AffineTransformConcat state ctm t end Finally there is also the scanner done func tion which allows you to abort processing of a stream once you have learned everything you want to learn This comes in handy while parsing ToUnicode because there usually is trailing garbage that you are not interested in Without done processing only ends at the end of the stream wasting CPU cycles Summary The new pdfparser library in LuaTgX allows parsing of external pdf content streams directly from within a LuaTeX document While this paper explained its usage the formal documen tation of the new library is the LuaTgX reference manual Happy LuaTgX ing mflua instrumentation of mf with Lua gt luigi scarso MFLua Instrumentation of MF with Lua Luigi Scarso We present MFLua a MetaFont version which is capable of code in strumentation and has an embedded Lua interpreter t
112. s described in 9 you can use it analogously to original bibTeX This mlbibtex is the historical origin of the present toolbox 4 2 mlbibtex2xml This program allows bib files to be converted into XML files according to the format internally used by MibibTgX Vou can run it as follows mlbibtex2xml screen o output 0 010 0 where fy bib f bib the bib suffix can be omitted are bib files If the screen option is used the result is displayed at the screen otherwise it is written into a file If the o option is used output gives the output file name oth erwise this name defaults to fy mlbiblio xml even if several bib files are processed Obvi ously results look like Fig 2 4 3 ar style and hal These two programs are the first two extensions of MibibTgX The ar style program can be used for activity reports bibliographies when they have to be conformant to the classification of the French agency 13 See Section MibibTegX s extensibility and 14 15 about the hal program 4 4 mlbiblatex The mlbiblatex program builds bbl files suit able for the biblatex package Vou can run it as follows mlbiblatex filename aux key expr 12 6 where filename aux the aux suffix can be omitted is the auxiliary file where the information about bibliographical keys and database files has been stored key expr gives successive sort keys according
113. s hagen 5 10115 samawi hamid eal EJ US US ze V o din AA VEN Ms un A S352 do TE x 2 ie E NU 4235 oe E Ui GD 5 285 4285 T P Gs ul cif el os ui ss cif ee i S5 Wi Lor es ae ide iva 1 pl 0 bol N a ee ee Saiki iub sd peus t et 24 e f pot y A IE 5 SINE OE on egal esi WI Sal OS qp or d B an st e sll odi De amp i e T E e mE ee C E Ur 5 normal narrow Figure 11 A narrower sample a 77 contextgroup gt context meeting 2012 78 o 28 o n M NES lile Gall Ce US oe of d os et 1 Nr 295 cob 2 2 2 2 Ex EL dip i tede oh pls S 2 fal normal Figure 12 A narrower sample with no pa gale GE 2 EI MES ER D P al at XE d ex 2 4 j 19 e els fi a o oriental tex optimizing paragraphs gt hans hagen 5 10115 samawi hamid rar A iu Sar cour ci a O AS TES im es et EE EE TA e Cun y e E Bil 9 m al ap ek ip s EN e a
114. s to produce reasonable docu ments A common demand in high volume output is to optimize page usage As an example image you have six products in a group but a page only fits five The software system should be able to re arrange the products and change a few 10 parameters image size text size text length so that all six products fit on the same page and thus a whole page saved The aforemen tioned systems are either very demanding on the programming side or just not capable of optimizations like these The product of our company is filling in this gap It provides a way to transform XML and thus any data to PDF It has a specialized input language designed for the purpose of laying out elements on a page and it has all functionality of a modern programming language variables loops if then else switches It can put text and graphical elements on a virtual page that is used for any kind of layout optimization These vir tual pages can be removed and re typeset with different parameters and only the best page will make it to the PDF As there is no control language for this kind of application yet the system is inspired by the standards HTML table layout XPath accessing the data and running specialized functions and XSLT accessing doc ument nodes programming constructs The software called speedata Publisher is written in Lua and makes heavy use of the LuaTgX engine We use TeX to break paragraphs into l
115. sense as we can do this way more efficient by not using a spreadsheet at all startluacode local Al A2 123456 78 1234567 89 context bTABLE context bTR context bTD context A1 context eTR context bTR context bTD context A2 context eTR context bTR context bTD context Al A2 context eTD context eTR context eTABLE stopluacode context eTD context eTD As expected and shown in figure 9 only the first variant gets the numbers typeset nicely 123 456 78 123456 78 123456 78 1 234 567 89 1234567 89 9 1 358 024 67 1358024 67 1358024 67 Figure 9 Spreadsheets purely done as ConTgXt Lua Document 6 Helper macros There are two helper macros that you can use to see what is stored in a spreadsheet Ninspectspreadsheet test showspreadsheet test The first command reports the content of test to the console and the second one typesets it in the running text t 123456 78 1234567 89 1358024 67 51 contextgroup gt context meeting 2012 Another helper function is doifelsespreadsheetcell You can use this one to check if a cell is set 1 1 doifelsespreadsheetcell test 1 1 set unset 2 2 doifelsespreadsheetcell test 2 2 set unset 9 9 doifelsespreadsheetcell test 9 9 set unset This gives 1 1 set 2 2 unset 9 9 unset There is not much more to say about this module apart from that it is a nice ex
116. ssible combinations Actually it is not needed either as carefully chosen aesthetic rules put some bounds on what can be done One should more think in terms of alternative strategies or solutions and this is the terminology that we will therefore use Scaling glyphs horizontally is no problem if we keep the scale factor very small say percentages This also means that we should not overestimate the impact For the Arabic script we can stretch more using non scaling methods but again there are some constraints that we will discuss later on In the next example we demonstrate some excessive stretching In practice fonts can provide intercharacter kerning which is demonstrated next 0 984 Some poor man s justification routines mess with additional inter character kerning Although this is within reasonable bounds ok for special purposed like titles it looks bad in text The first line expands glyphs and spaces the second line expands spaces and add additional kerns between characters and the third line expands and add extra kerns BR Sometimes hz optimization also goes under the rubric of Semitic justification See e g Bringhurst in pre 3 d editions of his Elements of Typographic Style This technique does not work well for Arabic script in general because glyphs are connected in two dimensions On the other hand a certain basic yet ubiquitous Semitic justification can be achieved by using t
117. stoprow The sum function preceding cells are taken into account given that they represent a number startspreadsheettableltest Loffset 1ex align flushleft first stopcell Lalign flushleft width 3cm type i 1 align flushright width 3cm i 1 stopcell align flushleft second stopcell align flushleft type 2 stopcell Lalign flushright 2 stopcell align flushleft third stopcell align flushleft type 3j stopcell Lalign flushright 3 stopcell align flushleft fourth stopcell Lalign flushleft Ntype 4 stopcell Lalign flushright 4 stopcell align flushleft Nbf total one stopcell Lalign flushleft Ntype sum C stopcell align flushright sum C stopcell align flushleft Nbf total two stopcell Lalign flushleft type sum C stopcell align flushright sum C stopcell stopspreadsheettable is clever enough not to include itself in the summation Only 47 contextgroup gt context meeting 2012 3 Normal tables In the previous examples we used TeX commands for structuring the sheet but the content of cells is Lua code It is also possible to stick to a regular table and use specific commands to set and get cell data first e Qei 1 1 second 2 2 third 3 fourth 4 4 total one sum C 10 total two sum C 20 Figure 6 A sheet can be filled and accessed from regular tables bTABLELal
118. strips of 10 mm marked by creases Place another crease between the creased lines if you want to give the portfolio rounded spines e All creased lines need to be folded now Use the ruler and the bone folder for this task e Refold the portfolio and fold the flaps towards the inside e Close the portfolio Mark the width of the cover Open the cover and check that the marks are at equal distance from the front edge e Cutthe front cover to size Alternatively you can also fold the oversized flap to ward the inside of the front cover By glueing the edges it forms a pouch Making the closing For the closing an elastic band is fixed to the portfolio with two eyelets e Punch two holes in the back approx imately 70 mm from the left edge of the cardboard sheet this is where the longest fold in flap is e Insert the elastic band from the outside inward Make sure you have about 10 mm of elastic band to spare on the in side e Insert an eyelet into the pliers and in sert the pin with eyelet from the outside through the hole Arrange the elastic band so it aligns with the long side of the portfolio Press firmly in place with pliers e Repeatthe procedure for the other hole Make the cuts for fixing a postcard 150 x 100 mm e Openthe front cover and flip the portfo lio outside up the front cover being on the right side e Placethe template on the lower right edge of the front cover e Markthe 4 short diagonal
119. t Figure 1 A cubic B zier curve and its convex hull The counterpart of mflua begin program is mflua end program which calls the end_program lua script It contains all the functions used to transform the compo nents of a glyph the subject of the next section 3 The components of a glyph MetaFont mainly manages B zier cubic curves see fig 1 This curve is completely described by four controls points p called the starting point c4 c and q known as the ending point The MetaFont command to draw such a curve is draw p controls c and c q This curve lies on the XY plane and its parametric form is quite simple Bi 1 03 3 1 02 3 1 t tcg 9 Vt 0 1 1 The corresponding algebraic expression the closed form is more complex but it s useful to quickly test whether a point belongs to the curve or not Equation 1 has first derivatives B 0 3 c p and B 1 3 q respectively when 0 and t 1 We can easily calculate them when we know p c1 c and q An important property is that a B zier cubic curve is completely contained in the polygon pc c2qp the convex hull and this immediately leads to the conclusion that the intersection of two curves is empty if and only if the intersection of their convex hulls is empty Another important property is the existence of the De Casteljau s algorithm very easy to implement given the four control points of a curve and a time t it ret
120. t description is much more straight or at least typographic Things completely change when we consider the numeral 2 cmchar The numeral 2 beginchar 2 9u fig_height Q italcorr fig_height xslant 5u adjust_fit 0 0 numeric arm_thickness hair_vair hair_vair 25 vair hair arm_thickness Vround if hefty slab 2stem corr else 4 stem cap_stem fi pickup crisp nib pos7 arm_thickness 90 pos8 hair bot y7r 0 lft x7 hround 9u rt x8r hround w 9u y8 good y y71 beak 2 eps arm 7 8 a 3beak_darkness beak_jut arm and beak 30 mflua instrumentation of mf with Lua gt luigi scarso pickup fine nib pos2 slab 90 pos3 4 curve cap curve 0 top y2r hto x2 5 w 5u rt x3r hround w 9u y3 5vair 75h if serifs numeric bulb_diam bulb_diam hround flare 2 3 cap_stem stem pos bulb_diam 180 pos1 cap_hair 180 lft x1r hround 9u y1 5bulb_diam 2 3h x y21 whatever z11 z2r x21 x bulb 2 1 0 bulb and arc else x21 x21 25u pos1 flare angle 9u h lft x1r hround 75u bot yll vround 7h ylr good y yir eps x11 good x x11 filldraw stroke term e 2 1 1eft 9 4 fi terminal and arc pos4 25 hair vair cap stem 0 pos5 hair_vair pos6 hair vair 0 y5 arm thickness y4 3 y5 y3 top y6 min y5 slab top y71 lft x6l crisp lft x7 z4l whatever z61 x3l bot 58h z5l whatever z61 z41 erase fill z4l 2601 1 ZO lft x61 y41 cycle erase ex
121. tartcell align flushleft VAT 19 percent stopcell startcelllalign flushright 0 2f EUR 0 19 sum B stopcell stoprow startrowLtopframe on Nstartcell align flushleft bf Grand total stopcell startcelllalign flushright 0 2f EUR sum B stopcell stoprow stopspreadsheettable There are a few more special start characters This is demonstrated in figure 5 An character is equivalent to no character and for those who are using regular spreadsheets When we start with a the content is not typeset Strings can be surrounded by single or double quotes and are not really processed 1 must admit that never used spreadsheets myself and Taco suggested to support this However in the time that we didn t use TeX but used simple ascii based editing we did have summation features built in and they even were part of the early day ConTgXt formats 46 simple spreadsheets gt hans hagen The first item 3 50 EUR The second item 8 45 EUR The third item 5 90 EUR VAT 1996 3 39 EUR Grand total 21 24 EUR Figure 5 Cells can be hidden by and can contain strings only startrow startcell startcell stopcell startcell stoprow startrow startcell startcell startcell stoprow startrow startcell startcell startcell stoprow startrow startcell startcell startcell stoprow startrow startcell startcell startcell stoprow startrow startcell startcell startcell
122. tation is section 8 2 it shows the components used to trace a glyph section 8 3 and finally two different approaches to manage curves section 8 4 As a final remark we consider MFLua as being in a state between a proof of concept and alpha and it s not yet too user friendly Its code is hosted at https github com luigiScarso mflua 2 Code instrumentation MetaFont is written in Pascal WEB a programming language by Donald Knuth to have a real literate programming tool As the name suggests it s a subset of Pascal and is automatically translated into C by tangle and web2c Instrumentation is the capability to add trace statements a k a sensors in strategic points of the code to register current state information and pass it to the Lua interpreter A typical sensor has the mflua prefix We can see some sensors in the following chunk of code the main body of MetaFont slightly refolded to fit the printing area 25 contextgroup gt context meeting 2012 Gp begin start_here mflua_begin_program in case we quit during initialization history fatal_error_stop t_open_out open the terminal for output if ready_already 314159 then goto start_of_MF lt Check the constant values gt if bad gt then begin wterm ln Ouch my internal constants have been clobbered case bad 1 Ouch clobbered gt goto final_end end set global variables to their starting values initialize
123. ted In its simplest form its creation looks like this function createParserState local stack stack 1 stack 1 ctm AffineTransformIdentity return stack end Internally pdfscanner scan loops over the input stream content bytes creating tokens and collecting operands on an internal stack until it finds a pdf operator If that pdf operator s name exists in the given operator table then the associated Lua function is executed After that function has run or when there is no function to execute the internal operand stack is cleared in preparation for the next operator and process ing continues The processing functions are called with two ar guments the scanner object itself and the info table that was passed are the third argument to pdfscanner scan The scanner argument to the processing func tions is needed because it offers various meth ods to get the actual operands from the internal operand stack Extracting tokens from the scanner The most low level function in scanner is scanner pop which pops the top operand of the internal stack and returns a lua table where the object at index one is a string representing the type of the operand and object two is its value The list of possible operand types and associated lua value types is integer number real number boolean boolean name string operator string string string array table dict table In
124. the cleanup Hans Hagen After the transition from MkII to MkIV a cleanup stage has been started What is involved in this cleanup and what will happen afterwards This is more a discussion than a presentation and users are invited to express their wishes and priorities Metapost workshop Mari Voipio A pragmatic approach to MetaPost or How to get useful results out of MetaPost if are not a programmer are not a mathematician and are a complete beginner besides A couple of styles Hans Hagen When you keep an eye on what modules get added to ConTeXt you will notice that quite some of them are a mixture of TEX METAPOST and Lua will show a few that might have gone unnoticed They can often serve as an example for your own local usage abstracts Lexing Hans Hagen As use SciTE most of the time there is some mutual influence between coding and visualized in this editor Especially the possibility to write more advanced lexers has lead to some changes for the good in the code base Here I will show some of that as it might help those who browse the source visual debugging Hans Hagen Compared to MkII the MkIV code has more trac ing on board At the Lua end we have trackers and recently a start has been made to extend that to the TgX end where it will replace the trace true like macros As part of the cleanup the original visual debugger module has been replaced by an even less intrusive variant It
125. ty 0 and 4 1 To calculate all the intersections we use the following trick if we have n curves we produce a MetaFont file that contains the code that calculates the intersection between p and pjfor1 lt j gt n and gt i n given that p N p p N pj and then we parse the log file with Lua For example if p1 2 57 401 351 877 57 401 351 877 57 901 349 877 57 901 349 877 and p2 56 834 356 5 56 834 354 905 57 031 353 356 57 401 351 877 33 contextgroup gt context meeting 2012 then we have batchmode message BEGIN i 2 j 1 path pL p1 57 401 351 877 controls 57 401 351 877 and 57 901 349 877 57 901 349 877 p2 56 834 356 5 controls 56 834 354 905 and 57 031 353 356 57 401 351 877 numeric t u t u pl intersectiontimes p2 show t u message and the log BEGIN i 2 j 1 lt lt 0 0 99998 If the result is 1 1 the intersection is empty There are two problems with this approach the first one shows when a curve crosses the border and time intervals can generate two curves one completely outside and one completely inside hence deleting an intersection To avoid this issue we must adjust the intervals moving the extremes a bit We have the second problem when there can be curves with three or more intersections i e we can have loops Opening a loop can be a difficult task e g if the curve p intersects
126. ure sets are not always noticeable on short strings That is two different aesthetic sets may type a given short string such as a single word exactly the same way Consider the above three sets simple default and dipped once more Lad Lad For the above string the default and dipped aesthetic sets middle and left give the exact same result while the basic one right remains well quite basic Let s go back to our earlier example Note that the simple version is wider than the default and the dipped version is slightly thinner than the default This relates to another point An aesthetic feature set can serve two functions 1 It can serve as the base aesthetic style 2 It can serve as a resource for glyph substitution for a given string in another base aesthetic style This brings us back to our main topic gt This five character string can be represented in Latin by the five character string al md not including the J It is pronounced al amdu Note that Arabic script is mainly consonantal pure vowels are not part of the alphabet and are instead represented by diacritics 61 contextgroup gt context meeting 2012 e Microtypography paragraph optimization features Here our job isto optimize the paragraph for even spacing and aesthetic viewing It turns out that there are a number of ways to look at this issue and we will begin exploring these
127. urns the point x1 y1 B t on the curve and the two series of control points one for the curve B t B t t 0 t the left side and one for the curve B t B t t t 1 the right side It recursively reduces the curve B t t 0 1 tracing to the tracing of the left side B t B t t 0 1 2 and the right side B t B t t 1 2 1 the recursion ends when the distance between two points x y and x 4 y 4 is less than a pixel The De Casteljau s algorithm is useful because it estimates how long a curve is counting the number of pixels covered by the curve It also finds intersections of two curves B t and C t reducing this problem to the problem of calculating the intersection of four curves left and right side of B t and left and right side of C t fort 1 2 The algorithm keeps working when one curve degenerates into a segment i e if p cy and c q or when it degenerates into a point p cy c q Therefore it can be used to find an intersection between a line and a curve and to test if a point belongs to a curve A set of curves B B B where p and qn Po is a simple cycle borrow notation from Marsh 2005 where points and functions in the B zier curves section are represented by bold upright letters 29 ofthe numeral 0 t contextgroup gt context meeting 2012 if the only intersection is x y qn Simple cycles are the building blocks of
128. urves and gives the glyph a more natural look Figure 6 Real polygonal pen black vs calculated elliptical pen gray Square boxes are the pixels It s the bottom right part of fig 3 5 Conclusion We believe that MFLua is an interesting tool for font designers because too many fonts if not all are currently designed using contours In this case end program lua should be simple less or even no intersections compared to the MetaFont technique see the numeral O of xmssdc1 mf On the other side using the pens shows that extracting an outline is a difficult task It s almost impossible to find an always valid script The outlines from an envelope usually have a large number of curves which is not a good feature and this is a MetaFont property we can always implement routines to simplify them though FontForge already does it The work will continue on xmssdc10 mf to find an end program lua modular and flexible enough for a wide application 6 References Knuth D 1986a MetaFont The Program Addison Wesley Massachusetts 1 edition Knuth D 1986b The MetaFontbook Addison Wesley Massachusetts 1 edition with final correction made in 1995 Marsh D 2005 Applied Geometry for Computer Graphics and CAD Springer London 2 edition 36 Conference portfolio Workshop willi Egger conference portfolio gt willi egger Inaccordance to the conference s theme a workshop for making a
129. ways possibile 34 mflua instrumentation of mf with Lua gt luigi scarso ff fi fl ffi ff Lorem ipsum dolor sit amet consectetur adipiscing elit Nullam nisl urna eleifend vel mollis quis facilisis vel dolor Sed auctor nibh eu magna vulputate vulputate Curabitur ante mauris pretium eu laoreet at venenatis et neque Vestibulum ante quam tristique in posuere eu pulvinar vel neque Nam faucibus neque ut commodo luctus lacus risus accumsan felis a feugiat lorem justo venenatis dui Aenean bibendum tincidunt enim ac cursus Vivamus a arcu a augue auctor consectetur nec sed augue Quisque dignissim felis imperdiet mi lacinia suscipit Maecenas nunc tortor congue nec posuere sit amet ultricies vel diam In aliquam arcu eu lacus congue eget rutrum justo volutpat Quisque ac nisi vitae leo fringilla lobortis Curabitur rhoncus lobortis ante eget euismod magna blandit nec Praesent non sem nulla Sed congue magna sit amet libero sodales eu ultrices orci posuere Suspendisse sed nibh a tortor fermentum ornare Suspendisse vel felis eget tellus gravida rhoncus Ut vel magna lacus placerat semper enim Vestibulum rutrum condimentum neque et adipiscing Duis nulla enim euismod a cursus id ornare vel tellus Vestibulum lobortis metus egestas velit euismod pellentesque Praesent elit ante consequat at posuere a rhoncus id magna Phasellus ut nisl orci ac molestie eros Suspendisse potenti Suspendisse ac porttitor lorem Curabitur eu elit sed ne
130. with this solution e A real nice solution is to replace glyphs by narrower or wider variants This is in fact the ideal hz solution including for Arabic script as well but for it to happen one not only needs needs fonts with alternative shapes but also a machinery that can deal with them An already old variant is the one first used by Gutenberg who used alternative cuts for certain combinations of characters This is comparable with ligatures However to make the look and feel optimal one needs to analyze the text and make decisions on what to replace without loosing consistency The solution described here does a bit of everything As it is mostly meant for a connective script the starting point is how a scribe works when filling up a line nicely Depending on how well one can see it coming the writing can be adapted to widen or narrow following words And it happens that in Arabic script there are quite some ways to squeeze more characters in a small area and or expand some to the extreme to fill up the available space Shapes can be wider or narrower they can be stacked and they can get replaced by ligatures Of course there is some interference with the optional marks on top and below but even there we have some freedom The only condition is that the characters in a word stay connected So given enough alternative glyphs one can imagine that excessive interword spacing can be avoided However it is non trivial to check all po
131. wy wy 4 we stop plotting and insert a straight line from B t wy to B t wg41 the latter line is actually a retrograde step which will not be part of the final envelope under the MetaFont s assumptions The result of this construction is a continuous path that consist of alternating curves and straight line segments 31 ND of the numeral 2 t contextgroup context meeting 2012 Nc Figure 3 The glyph of the numeral 2 in xmssdc10 font We can see envelopes and pens thick curves and a contour thin ees This explains why the number of the curves is large and why there are small curves but says nothing about those circular curves that we can see in fig 4 MetaFont indeed converts an elliptical pen into a polygonal one and then applies the algorithm The conversion is accurate enough to guarantee that the envelope is correctly filled with the right pixels This is a key point to understand MetaFont s main task is to produce the best bitmap of a glyph not the best outline The role of the sensors is to gather as much information as possible about pixels contours the polygonal version of the pens envelopes and their straight lines and then store these information basically the edge structure of the pixels and B zier curves with an eventual offset into appropriate Lua tables As MetaFont halts the Lua interpreter calls end program lua and let the programmer manage these tables sometimes as we have se
132. y their PC s tricks and think that a the screen will mak everything auto matic from now on heir knowl widely praised program called up on Coming back To THE use OF TYPEFACES IN ELECTRONIC PUBLISHING MANY OF THE new typographers receive THEIR KNOWL edge and information about the rules of typography from books from computer MAagAZINES OR THE INSTRUCTION MANUALS WHICH THEY GET WITH THE PURCHASE OF A PC or SOFTWARE THERE is NO so much basic instruction as of now as there whs in the old days showing the differences between coop and bad typo aphic de sign MANY peoPLE ARE JUST FH SCINATED BY THEIR PC s TRICKS AND THINK THAT A WIDELY PRAISED PROGRAM CALLED UP ON THE SCREEN WILL make EVERYTHING AUTO matic from now on normal solution Figure Solution d e No hyphenation ever well almost never It is commonly pointed out that there is no hyphenation is Arabic This is something of a half truth In the manuscript tradition one actually does find something akin to hyphenation In the ancient Kufic script breaking a word across lines is actually quite common But even in the more modern Naskh script the one most normal Arabic text fonts are based on it does occur albeit rarely and presumably when the scribe is out of options for the line he is working on Indeed one could regard it as a failure on the part of the scribe once he reaches the end of the line But there is still an

Download Pdf Manuals

image

Related Search

Proceedings proceedings proceedings definition proceedings pdf proceedings synonym proceedings magazine proceedings of the ieee proceedings of the royal society b proceedings of the national academy sciences proceedings of spie proceedings paper proceedings of the combustion institute proceedings of ams proceedings usni proceedings of machine learning research proceedings of the csee proceedings of the nutrition society proceedings on engineering sciences proceedings b impact factor proceedings biological sciences proceedings of the british academy proceedings of the royal society of edinburgh proceedings of singapore healthcare proceedings of american mathematical society proceedings of business and economic studies proceedings of the acm web conference 2024

Related Contents

1756-PM003H-EN-E, SFC and ST Programming Languages  QA-ST User and Service Manual  Westin 363801W Use and Care Manual  PIS Taski Carefree    Waring SB30 User's Manual  

Copyright © All rights reserved.
Failed to retrieve file