<<

TUGBOAT

Volume 40, 1 / 2019

General Delivery 3 From the president / Boris Veytsman 4 Editorial comments / Barbara Beeton memorial for SPQR; Project support from UK-TUG and TUG; Installing historic TEX Live on Unix; Converting images to LATEX: mathpix.com; , fonts, fonts! ( Now, Study, Public Sans, Brill , Berlin ) 5 Noob to Ninja: The challenge of taking beginners’ needs into account when teaching LATEX / Sarah Lang and Astrid Schm¨olzer Tutorials 10 The DuckBoat — News from TEX.SE: Processing text files to get LATEX tables / Carla Maggi 14 No hands — the dictation of LATEX / Mike Roberts 17 Nemeth math and LATEX source as braille / Susan Jolly Software & Tools 22 Both TEX and DVI viewers inside the web browser / Jim Fowler 25 2.7.0: Towards lightweight markup in TEX / ´ıt Novotn´ 28 New front ends for TEX Live / Siep Kroonenberg 30 TinyTeX: A lightweight, cross-platform, and easy-to-maintain LATEX distribution based on TEX Live / Yihui Xie 33 Extending primitive coverage across engines / Joseph Wright 34 ConTEXt LMTX / Hans Hagen 38 Bringing world scripts to LuaTEX: The HarfBuzz experiment / Khaled Hosny A TEX 44 LATEX news, issue 29, December 2018 / LATEX Project Team 47 Glossaries with bib2gls / Nicola Talbot 61 TEX.StackExchange cherry picking, part 2: Templating / Enrico Gregorio 69 Real number calculations in LATEX: Packages / Joseph Wright Macros 71 Real number calculations in TEX: Implementations and performance / Joseph Wright Electronic Documents 76 TEX4ht: LATEX to Web publishing / Michal Hoftich 82 TUGboat online, reimplemented / Karl Berry Book Reviews 85 Book review: Never use by Douglas Thomas / Boris Veytsman Abstracts 88 Die TEXnische Kom¨odie: Contents of issue 1/2019 88 Zpravodaj : Contents of issue 2018/1–4 Hints & Tricks 89 The treasure chest / Karl Berry Cartoon 91 Comic: headlines / John Atkinson Advertisements 91 TEX consulting and production services TUG Business 2 TUGboat editorial information 2 TUG institutional members 93 TUG financial statements for 2018 / Karl Berry 94 TUG 2019 election News 96 Calendar TEX Users Group Board of Directors † TUGboat (ISSN 0896-3207) is published by the , Grand Wizard of TEX-arcana ∗ TEX Users Group. Web: tug.org/TUGboat. Boris Veytsman, President Arthur Reutenauer∗, Vice President ∗ Individual memberships Karl Berry , Treasurer ∗ 2019 dues for individual members are as follows: Susan DeMeritt , Secretary Trial rate for new members: $20. Barbara Beeton Regular members: $105. Johannes Braams Special rate: $75. Kaja Christiansen The special rate is available to students, seniors, and Taco Hoekwater citizens of countries with modest economies, as - Klaus ¨oppner tailed on our web site. Members may also choose to Frank Mittelbach receive TUGboat and other benefits electronically, Ross Moore at a discount. All membership options described at Cheryl Ponchin tug.org/join.html. Norbert Preining Membership in the TEX Users Group is for the Will Robertson calendar year, and includes all issues of TUGboat for Herbert Voß the year in which membership begins or is renewed, Raymond Goucher, Founding Executive Director † as well as software distributions and other benefits. Hermann Zapf (1918–2015), Wizard of Fonts Individual membership carries with it such rights ∗member of executive committee † and responsibilities as voting in TUG elections. All honorary the details are on the TUG web site. See tug.org/board.html for a roster of all past and present board members, and other official positions. Journal subscriptions TUGboat subscriptions (non-voting) are available to Addresses Electronic Mail organizations and others wishing to receive TUG- TEX Users Group General correspondence, boat in a name other than that of an individual. P.. Box 2311 membership, subscriptions: The subscription rate for 2019 is $110. Portland, OR 97208-2311 [email protected] .S.A. Submissions to TUGboat, Institutional memberships letters to the Editor: Telephone Institutional membership is primarily a means of [email protected] +1 503 223-9994 showing continuing interest in and support for Technical support for Fax and TUG. It also provides a discounted membership T X users: +1 815 301-3568 E rate, site-wide electronic access, and other benefits. [email protected] For further information, see tug.org/instmem.html Web Contact the or contact the TUG office. tug.org Board of Directors: tug.org/TUGboat [email protected] Trademarks Many trademarked names appear in the pages of TUGboat. If there is any question about whether Copyright 2019 TEX Users Group. a name is or is not a trademark, prudence dictates Copyright to individual articles within this publication that it should treated as if it is. remains with their authors, so the articles may not be reproduced, distributed or translated without the authors’ permission. For the editorial and other material not ascribed to a particular author, permission is granted to make and distribute verbatim copies without royalty, in any medium, provided the copyright notice and this permission notice are preserved. Permission is also granted to make, copy and distribute of such editorial material into another , except that the TEX Users Group must approve [printing date: May 2019] translations of this permission notice itself. Lacking such approval, the original English permission notice must Printed in U..A. be included. Kedit is the only text editor have ever used. [... ] Kedit did not paginate, italicize, approve of , or screw around with headers, wysiwygs, thesauruses, dictionaries, footnotes, or Sanskrit fonts. [... ] Kedit was “very much a thing of its time,” and its time is not today. I guess I’ living evidence of that. John McPhee Draft No. 4: On the Writing Process (2017)

COMMUNICATIONS OF THE TEX USERS GROUP EDITOR BARBARA BEETON

VOLUME 40, NUMBER 1, 2019 PORTLAND,OREGON, U.S.A. 2 TUGboat, Volume 40 (2019), No. 1

TUGboat editorial information TUGboat advertising This regular issue (Vol. 40, No. 1) is the first issue of For advertising rates and information, including consul- the 2019 volume year. The second issue this year will tant listings, contact the TUG office, or see: be the TUG’19 conference proceedings; the submission tug.org/TUGboat/advertising.html deadline is August 18. The deadline for the third issue tug.org/consultants.html is September 30. Submitting items for publication TUGboat is distributed as a benefit of member- Proposals and requests for TUGboat articles are grate- ship to all current TUG members. It is also available fully received. Please submit contributions by electronic to non-members in printed form through the TUG store mail to [email protected]. (tug.org/store), and online at the TUGboat web site The TUGboat style files, for use with plain TEX (tug.org/TUGboat). Online publication to non-members and LATEX, are available from CTAN and the TUGboat is delayed for one issue, to give members the benefit of web site, and are included in common TEX distributions. early access. We also accept submissions using ConTEXt. Deadlines, Submissions to TUGboat are reviewed by volun- templates, tips for authors, and more, is available at teers and checked by the Editor before publication. How- tug.org/TUGboat. ever, the authors are assumed to be the experts. Ques- Effective with the 2005 volume year, submission of tions regarding content or accuracy should therefore be a new manuscript implies permission to publish the ar- directed to the authors, with an information copy to the ticle, if accepted, on the TUGboat web site, as well as Editor. in print. Thus, the physical address you provide in the TUGboat editorial board manuscript will also be available online. If you have any Barbara Beeton, Editor-in-Chief reservations about posting online, please notify the edi- Karl Berry, Production Manager tors at the time of submission and we will be happy to Robin Laakso, Office Manager make suitable arrangements. Boris Veytsman, Associate Editor, Book Reviews Other TUG publications Production team TUG is interested in considering additional manuscripts William Adams, Barbara Beeton, Karl Berry, for publication, such as manuals, instructional materials, Kaja Christiansen, Robin Fairbairns, Clarissa Littler, documentation, or works on any other topic that might Steve Peter, Michael Sofka, Christina Thiele be useful to the TEX community in general. If you have such items or know of any that you would like considered for publication, please contact the Publications Committee at [email protected].

CSTUG, Praha, Czech Republic StackExchange, New York City, New York TUG Harris and Intelligence Systems, Melbourne, Floida Stockholm University, Institutional Department of Mathematics, Institute for Defense Analyses, Stockholm, Sweden Members Center for Research, Princeton, New Jersey TEXFolio, Trivandrum, Chennai India TUG institutional members Maluhy & Co., S˜ao Paulo, Brazil TNQ, , receive a discount on multiple University College Cork, Marquette University, memberships, site-wide electronic Computer Centre, Milwaukee, Wisconsin access, and other benefits: Cork, Ireland tug.org/instmem.html Masaryk University, Universit´eLaval, Thanks to all for their support! Faculty of Informatics, Ste-Foy, Qu´ebec, Canada Brno, Czech Republic University of Ontario, American Mathematical Society, MOSEK ApS, Institute of Technology, Providence, Rhode Island Copenhagen, Denmark Oshawa, Ontario, Canada Association for Computing Nagwa Limited, Windsor, UK University of Oslo, Machinery, New York, New York New York University, Institute of Informatics, Aware Software, Newark, Delaware Academic Computing Facility, Blindern, Oslo, Norway Center for Computing Sciences, New York, New York VTEX UAB, Vilnius, Lithuania Bowie, Maryland Overleaf, London, UK TUGboat, Volume 40 (2019), No. 1 3

From the president fast; the underlying software layers are much more stable, and the lower we go into them, the slower Boris Veytsman they change. In the same way the safety features of In the beginning of this century the US Federal aviation are much more stable than aircraft cabin Aviation Administration decided to overhaul ele- interiors. Thus the relatively slow pace of TEX’s ments of the air traffic safety infrastructure, introduc- evolution might be a result of its place in the com- ing mandatory Automatic Dependent Surveillance puter infrastructure: it provides the foundation for Broadcast (ADS-).1 The company I worked for at exchange of information. that time was chosen to implement this system. I This, of course, does not mean that TEX is not remember the words by the program leader Glen going to change: it is changing now and will continue Dyer at that time, to change in the future. To continue the analogy with network protocols, neither HTTP nor IP stayed You know, I always envied the civil engineers. still in recent years. Among the changes were the Just imagine walking with your grand-kids, addition of security layers, transition to IPv6 with a stopping by a beautiful bridge and telling huge number of new addresses, extensions for space- them, “This bridge was designed by me.” Now based communications, etc. This is definitely not we have our chance to design our “bridge”. your parents’ Internet Protocol any more! We are doing something that will endure. Similarly TEX today is definitely not the 7-bit He was right: ADS-B is being used in all flights over TEX of 1980s. The new engines with native the US, and is going to stay. It is planned that this support transformed the way we deal with multiple technology will still be employed in the foreseeable . They provide new primitives allowing new future, so we definitely will be able to talk about it possibilities for TEX programmers. New() macro with our grandchildren. systems like the (continuously developed) ConTEXt I recalled this episode recently while a and LAT X3 give much needed flexibility to document 2 E tweet from Nathan Lane (@straightedge): designers and package writers. Graphics packages Redoing my slides in LaTeX because I fear my like PSTricks and TikZ provide ways to flexibly incor- MA students won’t see me as a true scholar porate non-textual information into TEX documents. unless I demonstrate mastery of a 1980s The “bridge” from the beginning of this essay is typesetting being constantly overhauled and improved. This tweet can be interpreted in different ways. One A living architectural or structure may consider it a complaint about the strange allure like a historic bridge or building provides an inter- of obsolete solutions — shouldn’t we use something esting challenge to the community. Its beauty and newer and shinier than an invention of the nineteen design must be preserved, but it must also provide eighties? Do the grandchildren of the first users of for the changed needs of the users. Thus it must be TEX still need to learn it? updated — but carefully and deliberately. This complaint was transmitted to thousands Similarly we at TUG — and the general TEX of people on Twitter. Twitter itself started in 2006, users community—have the dual duty to preserve so it is relatively new. However, it relies on the the integrity of TEX — and to steer its development to HTTP(S) protocol based on the work started by Sir the ever changing needs of the typesetting community. Tim Berners-Lee at CERN in 1989. Moreover, HTTP This issue of TUGboat can be viewed as a report messages are distributed by the TCP/IP network of our continuing efforts to perform this duty. The protocol, developed in 1974. Thus a more accurate upcoming 2019 edition of the TEX Collection, with version of the tweet might sound like this: TEX Live, MacTEX, MiKTEX, and CTAN, is another Using protocols developed in 1970s and 1980s artifact of these efforts. to complain about the requirement to show the I feel that all of us: developers, programmers, mastery of a 1980s typesetting markup language users, are participating in the maintaining and im- for being considered a true scholar. provement of a beautiful important edifice slated I would like to make an observation based on to endure. TEX, created by Don Knuth, is now a this (and many other) episodes. The pace of change community-based project. Let us make it shine! for a technology strongly depends on how “deep” the Happy TEXing! technology is. A user interface for Twitter changes

1 Boris Veytsman www.faa.gov/nextgen/programs/adsb ⋄ 2 twitter.com/straightedge/status/ borisv (at) lk dot net 1118834149165428736 http://borisv.lk.net

From the president 4 TUGboat, Volume 40 (2019), No. 1

Editorial comments Installing historic TEX Live on Unix Barbara Beeton For Unix only, P´eter Szab´ohas written scripts for convenient installation of historic TEX Live distribu- After long employment at the American Math Soci- tions. The years now covered are 2008 through 2018. ety, I retired on February 5. My term on the TUG The scripts and information are at github.com/pts/ board has been extended for four more years, and historic-texlive. This can be a welcome backup I expect to remain editor of TUGboat, as long as in case you have an older document that won’t run I can continue to do a creditable job. It’s been an with the latest distribution. interesting run. All TEX Live releases (and much more) are avail- able at ftp.tug.org/historic/systems/texlive A memorial for SPQR and ftp.math.utah.edu/pub/tex/historic. (Ad- Sebastian Rahtz had a favorite place — The Protes- ditional mirrors would be most welcome.) P´eter’s tant Cemetery in Rome (Il Cimitero Acattolico di new scripts download from this archive. Roma). A bench with a tribute to Sebastian has now Converting images to LAT X: mathpix.com been installed in the cemetery, providing a place for E visitors to rest and contemplate. The mathpix application purportedly allows one to take a screenshot of math and paste the LATEX equiv- alent into one’s editor, “all with a single keyboard shortcut”. This tool (mathpix.com) appears to hold more promise than other attempts. We have solicited a review, which we hope will appear later this year. Fonts, fonts, fonts!

The director of the cemetery sent this report: More than the usual number of -related announce- ments have appeared since our last issue. Many [...] We put it in the Parte Antica some weeks notices came via CTAN, but those are ignored here; ago and people immediately started sitting on it! instead we briefly mention several gleaned from other I had to ask them to move so I could take the A photo! It is a lovely addition to the Cemetery. sources. It isn’t known whether (L )TEX support is We put it near the Garden Room, and people available for any of them, but it’s likely to happen are allowed to move it around as they like. In sooner or later. winter they put the benches in the sun, in summer We finish up with a more expansive review of a they like to sit under the shade of the trees. The website devoted to “fonts in the wild” — photos of benches are a wonderful way for people to relax lettering found on surfaces in a city environment. (we all do far too little of that these days) and a possibility for people to chat and renew or make Helvetica redesign! On 9 April 2019, Monotype new friendships. I like to that Sebastian introduced the Helvetica Now family, a redesign of would have loved that. the venerable and ubiquitous . The last The Protestant Cemetery is the final resting redesign resulted in Neue Helvetica 35 years ago. The place of many visitors to Rome who died there; it announcement describes the changes as expressly may be best known as the gravesite of the English tuned “for the modern era”. The new rendition poets Keats and Shelley. It is one of the oldest burial includes three optical sizes and “a host of useful grounds in continuous use in Europe, and in 2016, alternates”. Read the full text and watch the video tug.org/l/helvnow its 300th anniversary was celebrated. The website at . for the cemetery, www.cemeteryrome.it, provides a Making Study: New clothing for the twenty- virtual visit, or information to plan for an actual visit. six leaden soldiers. Study is a new typeface, “completed” by Jesse Ragan based on a design by Project support from UK-TUG and TUG Rudolph Ruzicka, a Czech type designer active in The UK-TUG committee has posted a reminder that the 1940s–60s. Ruzicka’s , produced in there is a standing call for applications for project metal by Mergenthaler Linotype and used for books funding. Details can be found at uk.tug.org/about/ in their heyday, were never effectively reworked for funding/, and proposals sent to uktug-committee@ newer technologies, and are not much in use to- uk.tug.org. day. However, although he completed only two de- TUG also offers project funding: see tug.org/ signs, Ruzicka never stopped coming up with new tc/devfund. ideas. A collection of these ideas was published TUGboat, Volume 40 (2019), No. 1 5

in 1968, when Ruzicka was 85, in a work entitled Perhaps my favorite collection is .../2017/03/ Studies in Type Design. One of the designs, Study, 06/berlins-bridge-typography — typography on was clearly well developed, but lacking kerns and Berlin’s bridges. Search for the term “” to normalization of features such as stem and hair- see the photo that would have been included here, line thickness, which are necessary for the typeface had our attempt to obtain permission been successful. to be usable. It is this design that Ragan chose (We were unable to find contact information.) to complete. The story is fascinating. Read it at In 2018, an interview with the creator of the blog, xyztype.com/news/posts/design-notes-study. Jesse Simon, appeared online: “Celebrating Berlin’s Typography, before it vanishes: A tour of the city’s Public Sans — The U.S. government gets in- most striking signs”, by Anika Burgess. It’s well volved. As its name implies, this is a sans worth a look: www.atlasobscura.com/articles/ typeface intended for public use. It is part of “a de- berlin-signs-typography. sign system for the federal government”, to “make it These essays inspire one to be aware of one’s easier to build accessible, mobile-friendly government surroundings — look both up and down — and notice websites for the American public.” Nine weights are what’s there in plain sight. available, and there is an invitation to contribute to Barbara Beeton its development on GitHub. Details, such as they are, ⋄ are at public-sans.digital.gov and links therein. https://tug.org/TUGboat tugboat (at) tug dot org Diacritics to die for: Brill. The Brill typeface, designed and implemented principally by John Hud- Noob to Ninja: son of Tiro Typeworks, is a custom design for the The challenge of taking beginners’ needs Dutch scholarly publisher in Leiden now known as into account when teaching LATEX Brill. This firm has a history of more than 330 Sarah Lang and Astrid Schm¨olzer years of publishing in many languages and scripts, including the International Phonetic (IPA). On the 26th of February this year, the first guest As if the different scripts weren’t enough of a prob- post “Confessions of a LATEX Noob”1 was posted on lem, the proliferation of diacritics — often multiply the LATEX Ninja blog (https://latex-ninja.com). applied to the same base character — exceeded any- Quite unexpectedly, it seems that the article hit a thing that I had ever seen. This came to my at- nerve in the (LA)TEX community since we were show- tention in a question on .sx asking for help in ered with feedback and encouragement in the days reproducing the image on page 22 of these slides: that followed. Many long-standing experts told us, www.tiro.com/John/Hudson-Brill-DECK.pdf. to our great surprise, that they were very interested The implementation of placement uses in hearing the experiences of a less advanced user the GPOS table of OpenType fonts. This can be ac- wanting to learn. Also, we were greeted by a commu- cessed with X EX, with some limitations, as pointed nity of (LA)TEX enthusiasts who felt genuinely sorry out by Khaled Hosny in his response to the referenced for the problems the LATEX Noob had experienced question (tex.stackexchange.com/q/485523). If and the feelings of not belonging which they had you think math is complicated, read through the expressed. This is how it came that we were invited entire slide presentation and marvel. to contribute a similar essay to TUGboat. Since Brill has made their eponymous types available the roles of the LATEX Ninja and the LATEX Noob for non-commercial use by individuals. have turned out to work well to make our point, we decided to keep them.2 Berlin Typography. The website “Berlin Typog- So today, we wanted to talk about how to take raphy” (see berlintypography.wordpress.com) is beginner’s needs into account when teaching LATEX a wide-ranging photo essay showing off signs and or other “outreach” activities such as answering ques- other examples of text that appear on buildings and tions on StackOverflow, etc. other surfaces in Berlin. The series was started in 1 -ninja.com/2019/02/26/ 2017 and is still active in 2019. Each post highlights guest-post-confessions-of-a-latex-noob/ a different topic; the most recent posting examines 2 For the purposes of getting in touch with us, we can “Shoes and their makers: Footwear in Berlin”. Other be reached as our real life selves, Sarah Lang and Astrid selections include street signs, shops offering various Schm¨olzer. We are happy to be able to work as early career scholars at the University of Graz (Austria) in the field of the merchandise and services, plaques, text on stones Humanities. For questions and comments directly regarding and grates in the pavement, and much, much more. LATEX, please contact us via the.latex.ninja (at) gmail.com. 6 TUGboat, Volume 40 (2019), No. 1

Advanced users hardly remember I think, the “fear” or excessive respect regarding how they felt starting out LATEX is not due to the nature of LATEX itself. So it While this would be quite the challenge in and of its must be some part of the community generating this own, we encounter the first problem ,which is that reluctance. the needs of beginners become increasingly obscure From my own everyday life, I gather that it is A to us the more advanced we ourselves become. Here, often those who are not users of LTEX themselves the only option is to enter in an active dialogue with and feel bad about this alleged lack of knowledge on A those who are still at the beginning of their journey their part who tend to talk badly about LTEX. Here, A and listen very carefully and attentively for how they the standard arguments are that LTEX is overly want to be helped and what they need help with. complex, difficult, a hassle, and nobody really needs it anyway. Since these people seem to be rather Making learning failsafe by minimizing widespread, the (LA)TEX community should be more initial hurdles active in showing that the opposite is true. This Existing sources like lshort and the great books on can be done by providing easy introductory tutorials A 3 learning LATEX might already be too voluminous for (like “Learn LTEX in three minutes” ) which stress a beginning user. Not everybody likes to read long that LATEX need not be complicated — since this is an documents. I love to read in general but the length impression many people get from extensive reference- of lshort would definitely be enough to deter me like tutorials. from trying to learn LATEX, if I had to start from Often, people just want to know “How can I get scratch again. started right now?” and not after three hours of intro- When I first started, my then-partner handed ductory reading plus supplemental Internet research. me their own template and helped with the start-up They don’t care that they were not taught all the work of converting their technological style details. They are grateful for a concise introduction. to a Humanities citation style. Then I used LATEX for So the question of “What does one need to know quite a while before ever reading up on it again. This to start using LATEX” is not “What will an average practical introduction without a lot of background user need to know in total” but rather “What is the reading worked very well for me. (absolute) minimum amount of knowledge I need to Tools like Overleaf can be part of this, since they have to get started”. allow the interested newbie to explore LATEX without Tim Ferriss calls this the “minimum effective the hassle of having to install LATEX under Windows. dose”. This is so effective and fail-safe because it This point can’t be stressed enough! New LATEX requires minimal effort while at the same time limit- users should only try a scary thing like installing ing choices — and thus common sources of failure — The 4-Hour Chef LATEX under Windows once they are already hooked. to a minimum. As he explains in , We don’t want to lose them before they get started. he suggests employing two principles to successfully Problem: Existing sources are not geared to- leverage the minimum effective dose (MED), “failure wards the needs of beginning learners. Resources points” and a “margin of safety”. In his case, “failure tend not to be very didactical. Many reference works points” are a collection of reasons why people give exist, but few resources are fit for a beginner. Or up on cooking. Most of them revolve around too don’t lead the beginner very far. Or not accessible un- many things you need to have, know or do, as well less you are willing to do a lot of introductory reading. as overall excess complexity. Assessing the “margin Problem: Many tutorials exist, but most re- of safety” means “How badly can you do something sources are a) lengthy, b) too detailed (partly the and still get incredible results (relative to ‘normal reason why they’re too long) or c) only cover basic standards’)?” concepts. Information on how to learn advanced In the case of learning LATEX this translates to: skills, or even what advanced skills in LATEX might How few elements do I need to know to reap some be, is hard to find even after thorough searches. benefits of transitioning to LATEX? How can I reduce complexity to prevent chaos resulting from lack of ex- Leveraging the principle of the perience? I usually recommend not installing LATEX “minimum effective dose” 3 latex-ninja.com/2018/12/11/ When I first taught some LATEX basics to university jumpstarting-learn-latex-in-3-minutes/ students in an introductory Bachelor’s class on anno- Not to say that the Ninja blogs are didactically perfect, tation (mostly XML) in the Digital Humanities, I was they just serve as examples and starting points for the endeavour of creating a curriculum to learn LATEX, surprised to find out that these new users were not especially for people who don’t have a background in at all afraid of LATEX, as one is often led to believe. technology.

Sarah Lang and Astrid Schm¨olzer TUGboat, Volume 40 (2019), No. 1 7

on your own machine yet, to minimize the initial for help. And if they don’t succeed with their own hurdles. When just starting out, tools like Overleaf experiments, they quit their experiments. It’s only will suffice. You don’t need to have everything in- a matter of time until they quit LATEX completely. stalled on your computer at first. Another problem Often, the “Why would you want to use LATEX any- is that common reference-style tutorials seldom re- way?”, coming from users and non-users alike, bears spect didactical principles like didactical reduction, the tone of accusation and aggression. Often, it is the art of hiding unnecessary detail. Hiding details the answer new users receive when they ask a ques- is generally not something computer people approve tion, instead of the answer to the actual question of. But it is absolutely necessary for good teaching they had asked. to hide (currently) irrelevant detail from the learner Problem: Confusion generated by “insider knowl- until they are ready. edge” which can be quite hard to come by (like un- derstanding what a float does). Noobs aren’t even Challenges and remedies aware there might be problems with that, and thus Problem: Getting help can be tricky; you don’t want don’t know where to find help or look when trying to look like an idiot and, especially as someone from to locate a bug. a non-technical background, you constantly have Problem: After they have overcome their diffi- to defend your choice to use LATEX (to users and culties and proudly their comes the next non-users alike). “Why would a Humanities person letdown, from being ridiculed for non-perfect, but want to use LATEX anyway? You don’t need it and still working, code which took hours to write. Not you’re not up for it” are the most common insults helpful. Good style is like good fashion sense: It’s a Humanities person might have to endure after nice to have but a luxury not everybody can afford. choosing LATEX. Problem: People promise to follow up on a ques- My friend who agreed to play the part of the tion by sending a code example but they never do. LATEX Noob is an archaeologist and can speak from No follow-ups, no real intention to help? These experience. She writes her thesis in LATEX since promises might leave a newbie waiting for an email archaeologists, while still largely narrative-based Hu- which never comes. They feel: “If you just want to manists, need a lot of image evidence, and this can show me how good you are, fine. But I really wanted result in a notorious set of problems typically - your help, otherwise, I would not have asked.” countered when creating 300-page-long, image-rich Problem: Then there is the issue of having to documents in MS Word. So she has as much of a keep your debugging sessions and LATEX problems valid reason for wanting to use LATEX as any math- secret from non-LATEX-using colleagues. “Why waste ematician. After all, LATEX has more to offer than your time?”, they ask reproachfully. “Shouldn’t you math mode. be focusing on finishing your PhD thesis?” And She is not a new user either, but she still feels maybe, one day, the Noob will come to the conclusion like a Noob. And not in a good way but with the that yes, they need to focus on their PhD. Perhaps connotation of being an incompetent idiot and the LATEX just wasn’t for them. fear she might never escape this unpleasant state of An atmosphere needs to be created where new limbo. This is, however, not due to the fact of her and progressing users are actively included in the actually being a hopeless idiot — she is quite adept community rather than seeing them as noobs who with a lot of technical and even some programming are not “real users”. Nobody has to prove them- matters—but much rather due to the way newbies selves in order to be a “valid member” of the (LA)TEX tend to get treated on the Internet.4 community. They just need to be passionate about Problem: Noob doesn’t speak “nerd talk”. Tu- (LA)TEX and if this is the case, a learning process will tors need to understand the people they teach. Medi- ensue anyway. ators are needed between technical and non-technical Problem: Often, advanced users trying to help people (kind of like Digital Humanists). Tech talk newbies don’t even see what the actual problems is not understandable to a newbie—this extends to are. Those could be confusion about which editor the content as well as the way of speaking. to choose, what in the world a “minimal working Problem: The constant demand to justify your example” or “Lorem Ipsum” might mean or how to choice to use LATEX can stop newbies from asking correctly ask a question on StackOverflow. Or things that might be deemed self-evident, something way 4 We summed up and expanded the main arguments of more basic than expected. If the Noobs are lucky, the original blog post in the following text, trying to isolate problems and offer solutions. For the personal account of her they find the explanations on the Internet. experiences, please consult the original blog post.

Noob to Ninja: The challenge of taking beginners’ needs into account when teaching LATEX 8 TUGboat, Volume 40 (2019), No. 1

A glossary of these basics might be of help, like 2. Create tutorials according to the real-life a “TEXnical 101” worksheet. It might also use case of the new user. help raise awareness as to what the “blank slate” Rather than offering tons of (probably irrelevant) consists of that a new user starts out with. Not information in a reference to the newbie who is not all Noobs come from the field of technology where yet at the stage where they can make effective use a basic knowledge of “digital literacy” is the norm. of references, offer tutorials which explain something And it is not their fault that they don’t. The defini- they might want to do. Like “minimal skills to write tion of a Digital Humanist basically is someone with a Humanities’ seminar paper” which can be learned knowledge of the technical and Humanities’ worlds in 10 minutes. The newbie might be ready to create simultaneously who can act as an interpreter. A their first document and do some basic things. But technician might need a mediator in order to com- they most certainly are not yet at the point where municate effectively with completely non-technical they can write up a whole workflow according to folk. their needs. This is fine if they have no special needs. Being tutored is a lot like women in relation- But most users probably actively turn away from ships. Often, you just want to be heard and feel seen. WYSIWYG editors like Word precisely because they Getting a ready-made solution is not what’s wanted. have a special need they hope transitioning to LATEX It’s more about being acknowledged with and vali- will meet. dated in your needs and problems. For LATEX Noobs Existing tutorials often show generic snippets this might translate to feeling that your struggle is of how certain effects can be achieved. But it might okay and valid and being reassured that you can do be too much to ask of a new user to look everything it and that people are there to help. A newbie does up on their own and assemble it together in one doc- not expect you to do the work for them (at least ument. Sadly, many common use cases, like creating most newbies don’t), but rather that you will enable (personalized) transformations from Word to LATEX, them to find their own way. And that you are okay are not represented in tutorials so much. These are with whatever way works for them, even though this the skills I talk about when I ask for more teaching might not be the way you would choose yourself. on Advanced LATEX. It might not seem advanced Let’s help Noobs to help themselves rather than technically, but it is advanced in the way that you lecture them on what’s good for them without ex- need to stitch a whole workflow together, plan your plaining why. They want to know the facts so they project and need to know where to find certain bits can decide for themselves. of information, etc. The first step from beginner to intermediate/advanced user is learning how to independently realize a project like this and create a Ways to rise to the challenge — A manifesto document which matches your needs in a specialized use case. 1. Be nice to new users. Don’t tolerate other people’s bad behaviour towards 3. Don’t ask them to plunge into cold water Noobs. Noob should not be a curse word anymore. and completely move away from their This is also why we kept the name for the persona in previous WYSIWYG editors. the blog. Noob just means newbie and we don’t see Don’t stop helping them only because they wish to anything wrong with that. If anything, the (LA)TEX also still use MS Word. They might only want to use community is enriched by every new user, no mat- LATEX sparingly and selectively. Even if you don’t ter how little knowledge they might have. To the understand this, try to understand them. Help them contrary, we invite all to step forward and ask for achieve what their old tool could do in LATEX if you help. Starting to learn a new skill is a great new feel the need to convince them. Often, seasoned opportunity and we would like to see many more new LATEX users who don’t take part in more common users becoming confident in their LATEX skills. Let’s ways of typesetting anymore (LATEX is, after all, still actively discourage fellow commentators when they a specialist thing), don’t see why a transitioning user are being rude. They might not realize this since In- might want their LATEX document to look like the ternet communities often encourage rough behaviour Word output they were used to. But be tolerant: among “nerds”. But your silence will make the new- This might also be due to pressure of their own com- bie feel like everyone thinks that way. Speaking up is munity. In the Humanities, handing in documents in all that’s needed to at least minimize bad experiences .docx formats is practically unavoidable. Try to be like the ones from the “Confessions of a LATEX Noob” understanding or else the newbie in transition might post. just go back to their old ways.

Sarah Lang and Astrid Schm¨olzer TUGboat, Volume 40 (2019), No. 1 9

4. Help new users in a way they want to be Resources are needed to serve as mediators, facil- helped, not in the way you think they should itating the early stages of learning for those without a do things. technical background. Extra care for Noobs without This is probably the most crucial point people tend a technical background is all the more pressing for to misunderstand about empowerment. Trying to the LATEX community because they will probably al- “forcefully lift people up from a seemingly superior ready get discouraged from using LATEX by basically way of doing things” is not empowerment.5 Helping everyone else around them. It is therefore crucial someone make their own choices by showing them that teachers, helpers and teaching materials do their all the options available is! Do your utmost to try to very best to encourage them. We have (pro-)actively avoid coming across as arrogant and exclusive. For- to make up for all the unsolicited discouragement mulate explanations in a way to encourage questions they are already receiving if we don’t want to lose rather than leaving people humiliated about their these new users.6 lack of knowing better. Offering detailed tutorials for subjects typically When spelled out like this, it sounds a little in- needed by a non-technical newbie, also explaining sulting, but I feel that we often don’t realize we act in seemingly ‘obvious’ bits of information someone with- those ways. Becoming aware of this will probably be out a technical background might not have heard enough to change the behaviour for good. It is only about — and coming up with a set of good reasons too easy to make a newbie feel stupid or to sound why LATEX is a great tool for non-technical people as condescending over the Internet. And nobody’s per- well—would be a step in the right direction. These fect. But it is well worth trying to make an effort. reasons, however, should not be the same ones gener- Help given should be empowering, mentor-like and ally aimed to convince tech-savvy newbies (“formula not patronizing. You are talking to adults, after support”). If we reuse the same arguments, it is likely all (or at least, mostly). They can make their own newbies will feel that they don’t apply to them. choices. Of course, the general reason of “superior type- A 5. Long-term: Build curriculum so new users setting” is a main argument for LTEX. But it is also A one likely to only be convincing to those who are can acquire “the LTEX skill” more conveniently. already convinced of the importance of good type- setting. So this argument, while good at heart, will Decide criteria of what one should know before offer- not convince anyone who is not already convinced. ing LAT X-based services. Show new users how using E After all, learning to handle LAT X is a lot of work LAT X will not only prettify their documents (which, E E for a newbie, so the reasons should be a lot more we agree, is very important, of course) but also how pragmatic. If we can show Humanities people how mastery of LAT X can be an asset in one’s CV and E they can do their everyday tasks better using LAT X, which kinds of services one could offer. If the com- E this would be a great improvement. Also, the more munity was able to offer a more systematic way of visible the LAT X community becomes in the non- “initiation” to the community, this might encourage E technical world, the less non-technical newbies will new users to start LATEX. have to justify themselves for wanting to use LATEX. Conclusion: Not all Noobs are made equal Therefore, promote LATEX!

If you’re doing technology or maths, nobody will Sarah Lang and Astrid Schm¨olzer question your choice to use LATEX. If you don’t, ev- ⋄ the.latex.ninja (at) gmail dot com erybody will. Not all Noobs are made equal. A Noob https://latex-ninja.com from technology already comes with the ability to understand “tech-talk”, “nerd speech”, basic work- ings of StackOverflow and the like. A Noob from the humanities does not. People from these two different fields will have completely different needs.

5 Of course, this is formulated in a polemical way and I don’t assume that you, dear reader, are this way. I merely 6 Editor’s note: The TUGboat editorial wish list, wanted to stress it a little more than necessary to get the tug.org/TUGboat/wish.html, has long had the item: More importance of the point across. Too often, we get caught up tutorials and expository material, particularly for new users in our own opinions and forget that other people might think and users who aren’t intending to become TEX wizards. differently and that it is their good right to do so. Submissions welcome!

Noob to Ninja: The challenge of taking beginners’ needs into account when teaching LATEX 10 TUGboat, Volume 40 (2019), No. 1

The DuckBoat — News from TEX.SE: I would like to thank them both. Processing text files to get LATEX tables Herr Professor Paulinho van Duck This time I will show you how to process text files to automatically obtain professional LATEX ta- Abstract bles. As we will see, it is straightforward and conve- In the first part of this installment, Prof. van Duck nient. will talk about the distribution of upvotes by topics But let us talk about the upvoting distribution on TEX.SE. In the following Quack Guide, you will by topics on TEX.SE, first. find out how to easily process text files to create 2 “Cinderella” topics professional LATEX tables. Not all TEX.SE tags have the same level of popularity. 1 Quack chat Since I was curious to know which were the Hi, (LA)TEX friends! “Cinderella” topics, that is, less valued but not less An amazing event happened on October 20th, worthy, I asked my friend Carla to post a question 2018, in Rome, Italy: my first talk! To tell the truth, on Meta4 for me. since I was too shy to speak, my friend Carla helped We got a gorgeous answer by moewe, with a me with my presentation. It was a very exciting very detailed and accurate analysis of the vote distri- experience! bution. His results are somehow surprising, quack! I would like to thank all the guIt friends who First, there is a general feeling that TikZ related were present at the meeting and listened with pa- posts receive, on average, many more upvotes than tience.1 others. Looking at the data, this is not entirely true. Taking into account only the tags with more For those who love little animal icons, an awe- than 5,000 answers, there are some which perform some piece of news is that the gorgeous better than Ti , such as symbols, macros, and math-mode. Extending to tags with more than 2,000 T i k Z l i s answers, the absolute top topic is tex-core. Looking at the “Cinderella” ones, meanwhile, moewe found out that table-of-contents, floats, package is now on CTAN. and tables, among the most frequent tags, perform Some duck fans use it to create the welcome worse than other topics. party video2 for Barbara Beeton: she retired in Febru- This is quite unexplainable because these are ary, so she will have much time to spend on TEX.SE, the first things beginners found “strange”, compared all the TikZlings are waiting for her! with ordinary word processors. Maybe the posts are trivial or focused on such peculiar problems that they do not matter for other users. Last but not least, on December, 17th, The New Extending the sample, also bibliographies York Times dedicated an article to our Jedi Master, and L X can keep the seven dwarfs company. Prof. Donald E. Knuth, “The Yoda of Silicon Val- Y The low reputation average of the latter is not ley”.3 Unmissable reading for any TEX fan, quack! a surprise. Many TEXnicians do not like the WYSI- WYG/M (What You See Is What You Get/Mean) TEX.SE friends are always very attentive in find- philosophy adopted by this tool. ing typos or inaccuracies in my articles. I do not think the idea is wrong a priori. I used The user ‘TeXnician’ pointed out there is a text this tool in the past; I gave up only because my LYX dept instead of text depth in Figure 2 of The Morse files where so full of ERT (Evil Red Text) that it was code of TikZ in TUGboat 39:1. more convenient to write them in LATEX directly. About Formatting posts in TUGboat 39:3, mar- As for bibliographies (especially BibLATEX), mot remarked that, on a Mac, shortcuts are usually maybe the few upvotes are due to the peculiarity of done with the command key, even though Ctrl also the questions, which specifically concern the problem works. of a single OP and are often not useful for others. ib A 1 For more information: https://www.guitex.org/home/ Moreover, we have few B LTEXperts (among which guit-meeting-2018. 4 2 https://vimeo.com/315852862. https://tex.meta.stackexchange.com/questions/ 7977/poll-which-are-the-cinderella-topics. 3 https://www.nytimes.com/2018/12/17/science/ donald-knuth-computers-algorithms-programming.html.

Herr Professor Paulinho van Duck TUGboat, Volume 40 (2019), No. 1 11

moewe is undoubtedly the top one) who can fully Table 1: Result of \csvautobooktabular applied to our understand and appreciate these answers. -separated test file with header line.

Name Surname Height Gender One of the “Cinderella” tags is csvsimple. It Paulinho vanDuck .4 M has only 2.8 votes per answer, on average, and more Paulette delaQuack .35 than 8% of answers with no votes at all. Since I Enrichetta Pescatore 1.80 think this package is useful and I would like to make Henry Gregory M it more popular, I have dedicated the current Quack Guide to it. As you may note, csvsimple does not itself load 3 Quack Guide No. 4 booktabs nor longtable; hence you have to load How to easily process text files to get them separately. A LTEX tables The macros that do not need booktabs, that We all know we can get beautiful tables with LATEX, is \csvautotabular and \csvautolongtable, pro- but typing them can be boring and error-prone. duce tables with vertical lines. However, since TEX- We often have our data processed by another nicians love vertical lines in tables as much as chairs tool which yields a file in some text-based format covered with cactus, I recommend not using them, (.csv, .dat, .tex or similar), and we only need to quack! transform it into a LATEX table. There are some packages for this purpose, for Of course, we can improve our table. example, pgfplotstable and datatool. I will show For example, suppose we want to correctly align you csvsimple, which is the simplest one (that is the numeric data and change their heading, adding the reason for its name, quack!) but sufficient for the unit of measure, and also centering the “Gender” basic usage. column and swapping it with column “Height”. Suppose we have the CSV file test.csv, which All that can be done by putting a \csvreader contains the following data (any resemblance to real within a tabular environment: persons/ducks is purely coincidental):

test.csv \documentclass{article} Name,Surname,Height,Gender \usepackage{csvsimple} Paulinho,van Duck,.4,M \usepackage{booktabs} Paulette,de la Quack,.35,F \usepackage{siunitx} Enrichetta,Pescatore,1.80, \usepackage{makecell} Henry,Gregory,,M \begin{document} Pay attention to the missing data: the comma \begin{tabular}{ lcS[table-format=1.2,round-mode=places]} (or, in general, the separator) is needed, see, for \toprule example Enrichetta’s “Gender” or Henry’s “Height”. Person/Duck & Gender & With this simple code: {\makecell{Height\\ (\si{\metre})}}\\ \midrule \documentclass{article} \csvreader[head to column names, \usepackage{csvsimple} late after line=\\]{test.csv}{}% \usepackage{booktabs} {\Name\ \Surname & \Gender & \Height} \begin{document} \bottomrule \csvautobooktabular{test.csv} \end{tabular} \end{document} \end{document} we can already get a passable result, as shown in or, directly, with the appropriate options in the Table 1. \csvreader command (in the following I will show I used \csvautobooktabular because my table only the \csvreader commands; the rest of the code fits on one page; for multiple-page tables, there is is the same as before): \csvautobooklongtable.

The DuckBoat — News from TEX.SE: Processing text files to get LATEX tables 12 TUGboat, Volume 40 (2019), No. 1

Table 2: A table created with \csvreader applied to names=false and reference the columns with the our comma-separated test file with header line. csvreader macros: \csvcoli (coli means the first column; are used since arabic numer- Height Person/Duck Gender A (m) als cannot appear in LTEX commands), \csvcolii, \csvcoliii, and so on: PaulinhovanDuck M 0.40 PaulettedelaQuack F 0.35 EnrichettaPescatore 1.80 \csvreader[ HenryGregory M tabular={ lcS[table-format=1.2,round-mode=places]}, table head={\toprule Person/Duck & Gender & \csvreader[ {\makecell{Height\\ (\si{\metre})}}\\ tabular={ \midrule}, lcS[table-format=1.2,round-mode=places]}, head to column names=false, table head={\toprule late after last line=\\\bottomrule, Person/Duck & Gender & ]{test.csv}{}% {\makecell{Height\\ (\si{\metre})}}\\ {\csvcoli\ \csvcolii & \csvcoliv & \midrule}, \csvcoliii} head to column names, late after last line=\\\bottomrule, Alternatively, you can take advantage of the ]{test.csv}{}% assignments parameter, giving a customized macro {\Name\ \Surname & \Gender & \Height} nameh to thei column entry, with name = macro , where name is the arabic numberh of thei h columni h i Please note that I have also created a unique (or the entry from the header, if you want to use column with name and surname, simply by using: another macro to identify the column): \Name\ \Surname The output of the two previous examples is the \csvreader[ same, shown in Table 2. tabular={ The general syntax of the command is lcS[table-format=1.2,round-mode=places]}, \csvreader[ options ]{ file name }% table head={\toprule h { assignmentsi h }{i command list } Person/Duck & Gender & where file name ish the name ofi yourh text file andi {\makecell{Height\\ (\si{\metre})}}\\ commandh list isi executed for every line. \midrule}, h The optionsi can provide instructions for the head to column names=false, table formatting,h asi follows. late after last line=\\\bottomrule, ]{test.csv}{Name=\myn, 2=\mys, 3=\myh, With tabular= table format you can specify h i 4=\myg}% the column types you prefer. {\myn\ \mys & \myg & \myh} In table head= code you can insert the code for the table headings.h i late after line= code is the code to be exe- It may be that your text file has no header line cuted after processing ah line ofi the input file;5 if the giving the field names at all. In this case, we can option tabular is present, it is set to \\ automati- use head=false or its abbreviation no head (this cally. Analogously, late after last line= code option cannot be used with \csvautotabular or is executed after processing the last line of theh file.i similar automated commands). When head to column names=true|false is Let us see an example processing a second text set to true (the default), the entries of the header file which has no header line and instead line of the input file are used automatically as macro of as separators: names for the columns. testnohead.csv This option cannot be used if the header entries contains spaces, or special characters, be- van Duck, Paulinho;.4;M de la Quack, Paulette;.35;F cause only letters can be used in LAT X macro names. E Pescatore, Enrichetta;1.80; If this is the case, you can set head to column Gregory, Henry;;M 5 To tell the truth, it is a bit more complicated than this, but for our purpose, we do not need to be fussy.

Herr Professor Paulinho van Duck TUGboat, Volume 40 (2019), No. 1 13

Table 3: A table created with \csvreader applied to our -separated test file with no header line; column \csvset{ names are defined using the table head option. nohead, separator=pipe Height N. Person/Duck Gender } (m) 1 vanDuck,Paulinho M 0.40 . \csvstyle{ style name }{ option list } allows 2 delaQuack,Paulette F 0 35 h i h i 3 Pescatore,Enrichetta 1.80 you to create any customized style you need. 4 Gregory,Henry M For example, you could create mystyle:

\csvstyle{mystyle}{ Please note that, since the separators are semi- tabular={ colons, we can have commas in the entry. Entries clcS[table-format=1.2,round-mode=places] with commas would also be possible if the separators }, were commas, but in that case the entries must be table head={\toprule surrounded by curly braces, for example: N. & Person/Duck & Gender & {van Duck, Paulinho},.4,M {\makecell{Height\\ (\si{\metre})}}\\ \midrule}, Generally, this can be done by the tool that pro- nohead, duced the text file, or by any spreadsheet program. separator=semicolon, The option separator= sign indicates the sep- late after last line=\\\bottomrule} arator character in the file,h the possiblei values are: comma, semicolon, pipe, and tab. and then conveniently use it in your \csvreader The following macro gives the result shown in commands: Table 3.

\csvreader[ \csvreader[ mystyle tabular={ ]{testnohead.csv}{1=\myn, 2=\myh, 3=\myg}% clcS[table-format=1.2,round-mode=places] {\thecsvrow & \myn & \myg & \myh} }, table head={\toprule N. & Person/Duck & Gender & There are also possibilities of filtering and sort- {\makecell{Height\\ (\si{\metre})}}\\ ing; further, you can use \csvreader not only for \midrule}, tables but also for any repetitive text, when the only nohead, things that change are the data in the text file. I separator=semicolon, will not discuss these features here, but I recommend late after last line=\\\bottomrule, reading the package documentation [1] for all the ]{testnohead.csv}{1=\myn, 2=\myh, 3=\myg}% information. {\thecsvrow & \myn & \myg & \myh} 4 Conclusions You can see that I have also used the convenient I hope you enjoyed my explanation, and if you have macro \thecsvrow to write the row numbers. any problem in processing a CSV file, remember:

Ask van Duck for a quack solution! The above is plenty for basic usage, but the csvsimple package has many other features. References With \csvset{ option list } you can set some options valid for allh your \csvreaderi commands. [1] Thomas F. Sturm. The csvsimple package. For example, if all your text files lack a header Manual for Version 1.20 (2016/07/01). line and are separated by pipes, you can set this once https://ctan.org/pkg/csvsimple. for all as in the following, avoiding repeating them Herr Professor Paulinho van Duck every time: ⋄ Quack University Campus Sempione Park Pond Milano, Italy paulinho dot vanduck (at) gmail dot com

The DuckBoat — News from TEX.SE: Processing text files to get LATEX tables 14 TUGboat, Volume 40 (2019), No. 1

No hands — the dictation of LATEX and Federal Aviation Authority, as well as many universities). When I first tried it I was very dis- Mike Roberts appointed and quickly found it to be practically Abstract unusable. Despite costing over $300 it is incredibly slow to recognise and execute commands, and will This article gives a brief introduction to a combi- not accept more than two or three commands at a nation of open source extensions to Dragon Profes- time. This can easily be seen by watching any of sional Individual dictation software which allow for the videos on their website. Even with extra time relatively easy dictation of LAT X syntax and mathe- E granted, the chances of being able to do well in ex- matical formulae. ams when you have to wait half a second between While the primary use case is for people with every character are minimal. which prevent them from typing (repeti- tive strain injuries caused by regular computer use 1.3 The problem are surprisingly common), dictation may provide a There is certainly room for improvement then, both realistic alternative for normal users as well. for normal documents and for mathematics. An ideal 1 Introduction dictation system of this kind should have a number of features which are lacking from the commercial 1.1 Me offerings detailed above. Firstly, it should be able As an Economics undergraduate with a spinal in- to interpret commands as fast as the user can say jury which precludes me from using a keyboard, I’ them, without the need to wait for output to appear been using dictation software throughout my degree or to pause between commands. Secondly, it should for all exams, assignments and essays. This article be customisable so that users can modify and add to will focus on the workflow I’ve developed and the their grammar to suit it to their own needs. Finally, tools that I use for dictating LATEX documents and of course, it should as far as possible be free and mathematical formulae relatively painlessly. open source. First, though, I will briefly describe the problem space: what would ideally be made possible by a 2 Implementation dictation system and the limitations of what is cur- As I finish my degree and after a lot of experimenta- rently available. I will then describe the technical tion I have settled on a solution which is as close to details and user experience of my setup. this ideal as I can imagine. It can be used for almost anything, can interpret commands as quickly as they 1.2 Dictation software can be dictated, and is modifiable and extensible. If you are totally unfamiliar with dictation software, the first thing I should say is that broadly speaking it 2.1 Building blocks works well. With a good microphone, in a quiet room, Although it is somewhat expensive, Dragon [4] is speaking clearly, it’s not unreasonable to expect in by far the best speech recognition engine currently excess of 99% accuracy when dictating full sentences. available, and while its built-in tools for creating cus- The leader in the voice recognition industry has tom commands are limited, it is thankfully hackable. for many years been Nuance (though with the cur- This is done using Natlink [2], a free tool originally rent rate of progress in machine learning their tech- created in 1999 by Joel Gould — then working at nological lead may soon evaporate). Their product, Dragon — which allows for custom command sets Dragon, is marketed mainly for corporate, medical written in Python 2.7 to be imported into Dragon. and legal document preparation and works excel- These custom commands are defined using an lently when dictating into . For com- open source Python called Dragonfly [1], pleting the full range of academic work without a which simplifies the process of creating grammars keyboard though, this basic dictation functionality and provides easy access to frequently used function- is necessary but not sufficient, and for those with ality like the typing of text and the execution of disabilities who cannot use a mouse, navigating a keystrokes. graphical interface to access formatting options is an Together, these elements — Dragon, Natlink and active hindrance to getting things done. Dragonfly — allow for any combination of keystrokes For dictating mathematics, another commercial or Python scripts to be mapped to voice commands product is available — MathTalk [3] is the industry which can be interpreted and executed fluidly and standard for mathematical dictation (the client list with only minimal delay. While these tools have so on their website includes the Department of Defense far primarily been used to enable voice programming,

Mike Roberts TUGboat, Volume 40 (2019), No. 1 15

they can easily be repurposed for voice-enabling vir- Mathfly attempts to make things as easy as tually anything. possible in cases like these by often providing multiple voice commands for the same thing. In this case, 2.2 Mathfly “begin itemize”, “begin list” and “begin bulleted list” Mathfly [5] is my own contribution, and comprises will all produce an itemize environment. command sets for dictating raw LATEX as well as 3.2 Mathematics using WYSIWYG editors like LYX. Within Mathfly, commands are organised into By default, all mathematical symbols are prefixed modules, each with a different purpose, which can with “”, so “symbol integral” produces \int, be enabled and disabled at will. For basic operations but there is also a mode specifically for dictating like creating a new file there are also context specific symbols which does not require the prefix. Thus in commands which will only be recognised when a mathematics mode, “sine squared greek theta plus particular program is active. cosine squared greek theta equals one” produces: To provide usability for non-programmers, pre- \sin ^{2} \theta +\cos ^{2} \theta =1 dictable and common structures (like the begin, end that is, A tags in LTEX) are hardcoded in Python while the sin2 θ + cos2 θ = 1 (1) lists of options themselves are defined in configuration files which can all be opened and added 3.3 Templates to with voice commands. For including larger sections of text, or sections which A don’t fit into any of the predefined commands, there 3 LTEX are templates — arbitrary strings which are pasted LATEX represents an obvious and favourable alterna- with a voice command. For example, the command tive to dictating into word processing software for “template graphic” pastes: a number of reasons. Writing everything in plain \begin{figure}[h!] text means that entire documents can be produced \centering by replicating keystrokes, without ever having to \includegraphics[width=0.8\textwidth]{} navigate an awkward GUI. This provides the ability \caption{} to automate fiddly tasks like the creation of tables, \label{} insertion of images and organisation of references — \end{figure} a major win for those without the use of a mouse. Dictating using Mathfly’s LATEX module is in- Not only does this save a lot of time and rep- tended to be as intuitive as possible and to work etition, but as a novice user it is useful to be able largely as one would expect it to. Most commands to outsource the task of remembering what settings consist of a memorable prefix, which helps to avoid you like to use and how common command blocks over-recognition during dictation, followed by the are constructed. name of the desired item. 3.4 Configuration 3.1 Basic commands As I mentioned above, it is easy for users to add to the For example, saying “begin equation” produces: available commands by modifying the configurations files. The command definitions for the LATEX module \begin{equation} look like this: \end{equation} [environments] Similarly, “insert author” and “insert table of con- "equation" = "equation" tents” produces \author{} and \tableofcontents, ... respectively, and “use package geometry” will pro- [command] duce \usepackage{geometry}. "author" = "author" A LTEX commands can often be a little cryptic ... and non-obvious. For example, to create a bulleted and can be easily added to or modified. list, you need: \begin{itemize} 3.5 Scripting This is reasonably memorable once you have used it There are also intriguing possibilities for the inte- a few times, but is not easily guessable, especially gration of Python scripting. I’ve only scratched the for those of us living in countries which resist the surface so far, but to give an example I can high- encroachment of the letter Z. light the title of a book or paper, say “add paper to

No hands — the dictation of LATEX 16 TUGboat, Volume 40 (2019), No. 1

bibliography” and a will run which searches 5 Limitations Google Scholar for the title and appends the resulting The major limitations of dictation are currently not ib B TEX citation to my .bib file. functional — it performs about as well as could rea- 4 WYSIWYG mathematics sonably be expected — but are related to platforms and compatibility. Dragon and Natlink are only avail- For technical homework assignments and especially able on Windows (with a limited and soon to be dis- exams, formatting is of far less importance than continued version of Dragon available for Mac X), getting what you know onto the paper as quickly so the only feasible way of using software like Mathfly and easily as possible, so a what you see is what you on other operating systems is to run Dragon in a get (WYSIWYG) editor makes more sense. Windows Virtual Machine, using remote procedure Mathfly includes grammars for both LyX, an calls to send instructions to the host. A open source LTEX editor, and Scientific Notebook, The long-term prospects for a completely free a proprietary alternative which is often provided for and platform agnostic dictation and voice command free by universities. They both function similarly and framework are reasonably good, however. Dragonfly allow for natural dictation of mathematical formulae is under active development with the aim of inte- with immediately visible output. grating new speech engines like Carnegie Mellon Uni- For example, the command versity’s PocketSphinx and Mozilla’s DeepSpeech, integral although these have a fairly long way to go before one over x-ray they reach Dragon’s level of maturity and accuracy. right delta 6 Getting started x-ray Anybody interested can visit the Mathfly website [5], equals which contains links to the documentation, installa- natural logarithm tion instructions and a few short video demonstra- x-ray tions. If you have any questions or requests then feel plus free to email me, post in the Gitter chat room or on charlie the GitHub issues page. can all be interpreted in one go and will produce the References desired output. [1] C. Butcher. Dragonfly, 2007. 1 dx = ln x + c (2) pythonhosted.org/dragonfly Z x [2] . Hoogenboom. About Natlink, Unimacro and The only deviation from natural speech is the Vocola. qh.antenna.nl/unimacro requirement for a command (a right keypress) to [3] mathtalk.com. MathTalk — speech recognition signal the end of the fraction. math software. mathtalk.com I don’t have any hard data comparing the speed of dictation like this to that of normal writing. I can [4] nuance.com. Dragon — the world’s no. 1 speech say, though, that I am technically allowed 50% extra recognition software (nuance UK). time for all exams but have never needed to make nuance.com/en-gb/dragon.html use of it, suggesting that the two methods are fairly [5] M. Roberts. Mathfly — dragonfly/caster scripts comparable. for dictating mathematics fluidly, 2019. mathfly.org

Mike Roberts ⋄ mike (at) mathfly dot org mathfly.org

Mike Roberts TUGboat, Volume 40 (2019), No. 1 17

Nemeth braille math and LATEX source Unicode does not treat the six-dot cells as separate as braille character , but simply as the subset of the eight- dot patterns which happen to have both dot positions Susan Jolly in their fourth row unfilled. This omission requires Abstract the use of additional information to avoid an extra blank line when embossing a braille file encoded as This article, which is dedicated to the late T X ex- E Unicode Braille that is intended as standard six-dot pert Prof. Eitan Gurari [13], introduces braille math braille and the use of a custom simulated braille font for sighted persons unfamiliar with braille. Braille to avoid misalignment when typesetting Unicode systems represent print in one of two ways: either by Braille intended as six-dot braille. transcription or by transliteration. Most braille sys- tems, including the Nemeth system for mathematics, 2 Transliteration and computer braille employ shorthand, markup, meaningful whitespace, context-sensitive semantics, and other strategies to Conversion of print to braille is usually done with transcribe general printed material to a six-dot braille braille systems using transcription, in order to accom- format that accommodates the special requirements modate the special requirements of tactile reading, in- of tactile reading. Transliteration, by contrast, is cluding those described later in this article. This sec- limited by the small number of braille cells and is tion describes conversion done with transliteration. Transliteration is of limited practical use except typically only used for representing plain text ASCII for conversion of plain text ASCII files to braille. files such as LATEX source and computer code. This article argues that while reading and writ- Since there are 94 ASCII keyboard characters (ex- cluding space) and only 63 six-dot braille cells, one- ing mathematics as LATEX source transliterated to braille is possible for facile braille readers who have for-one transliteration of plain text files isn’t possible eight-dot refreshable braille displays and are able to with six-dot braille. Six-dot transliteration of plain text files thus requires some sort of braille system learn LATEX, it is not an appropriate general solution for making mathematics accessible to braille users. that uses both single- and two-cell (prefix-root) symbols. One-for-one transliteration of plain text is Tactile reading of transliterated LATEX source is no of course possible with the use of eight-dot braille. different from visual reading of LATEX source. On the other hand, tactile reading of math transcribed using General eight-dot braille systems aren’t widely the Nemeth system is the tactile analog to visual used since tactile recognition of all 255 eight-dot reading of rendered math. Simulated braille is used cells isn’t feasible for the majority of tactile readers. to illustrate this for the benefit of sighted readers. Nonetheless, many refreshable braille displays have eight-dot cells and incorporate built-in support for an ad hoc one-for-one eight-dot transliteration of the 1 Braille cells ASCII characters. This transliteration is known as Most sighted persons reading this article are proba- computer braille because of its usefulness for repre- bly at least somewhat familiar with the punctiform senting computer code. appearance of braille and are aware that the dots Computer braille adds 31 cells with a dot in the need to be physically raised for tactile reading as left columns of their fourth rows to the 63 standard opposed to visual reading. The individual braille six-dot cells. Twenty-six of these additional cells characters, which are usually referred to as braille simply represent capital letters by adding the extra cells, are officially designated as Unicode Braille Pat- dot to the six-dot pattern for the corresponding small terns. Technically speaking, the braille cells aren’t letter. Several options for the remaining five are in characters per se but rather symbols assigned mean- use. Because computer braille is a limited extension ings by a braille system. There are currently more to six-dot braille it, in contrast to general eight-dot than 150 different braille systems. The majority braille, is feasible for tactile reading. represent natural languages but there are several Since computer braille specifies a one-for-one systems for mathematics and for other specialized transliteration of all 94 ASCII keyboard characters it material, including music and chess. thus provides a method for braille users to directly There are two forms of braille: six-dot and eight- read and write any ASCII-based plain text including dot. The standard six-dot patterns are comprised of classic LATEX source. The advantage is that computer three rows of two dot positions each and the eight- braille transliteration doesn’t require special software dot ones are comprised of four such rows. There to translate from print to braille or to back-translate are thus 63 different six-dot with at from braille to print. The disadvantage is that LATEX least one dot and 255 eight-dot ones. Unfortunately source and many other plain text source files are

Nemeth braille math and LATEX source as braille 18 TUGboat, Volume 40 (2019), No. 1

primarily intended to be rendered for visual reading, The next several sections of this article provide not to be read directly. background for understanding the pros and cons for braille users of using computer braille to read and 3 Nemeth braille math write mathematics as transliterated LATEX source, The well-known six-dot Nemeth braille system, “The versus using Nemeth braille for that purpose. Nemeth Braille Code for Mathematics and Science Notation”, is an outstanding example of a braille system. It was developed by Dr. 4 Tactile reading (1918–2013), a congenitally blind American math- This section describes some of the aspects of tactile ematician who became a facile braille reader as a reading that are taken into account when develop- young child and was a math professor at Wayne ing braille systems such as Nemeth braille. Note State University for some 30 years. It had been in that braille systems are linear because tactile readers use for a number of years prior to the adoption and can’t easily sense the relative vertical positions of publication of the current official version in 1972. A the braille cells. PDF facsimile of the 1972 book is now available for The rate of tactile reading, rather like the rate download [1]. This book incorporates a thoughtful of typing on a standard keyboard, depends more on guide to numerous issues for converting print math the number of braille cells than on the number of to braille so as to retain all the essential information words. Braille systems that have been designed to while avoiding extraneous print-specific details. minimize the number of braille cells can thus be read Nemeth braille was designed with a thorough more efficiently. understanding of both mathematics and the require- The rate of tactile reading is also affected by ments for efficient tactile reading as outlined in the particular dot patterns. For example the seven six- next section. Nemeth is a complete system for rep- dot braille cells that only have dots in their right resenting text and mathematics and includes for- column are easier to recognize when used as markup matting specifications. Since it was designed long or indicators affecting a subsequent braille cell or before the use of digital media, it was originally in- cells and are typically used for this purpose. The tended for embossed braille transcriptions of math cell with a single dot at the bottom of its right- textbooks and other STEM material as well as for hand column indicates that the following letter is direct entry of math by braille users. The Nemeth capitalized. Nemeth braille uses several others of system for mathematics has stood the test of time these seven indicators to identify transliterations of and is used not only in the United States but in Greek and other non-English . numerous other countries, including India [12]. It is Certain braille cells or sequences can be hard to used with refreshable braille displays and, like LATEX, distinguish from other possibilities. Distinguishing its “math mode” is used for representing individual a lower braille cell, one which has filled dots only math expressions. There is also an equivalent form in its lower two rows, from the corresponding upper for spoken math called MathSpeak. MathSpeak is a cell, which has the same dot pattern in its upper two unique method of speaking math since it is the only rows, is an example. Nemeth uses the lower cells for method of speaking math that supports dictation of the decimal digits but ensures that they are easily math so it can be written correctly in either print or distinguished from the corresponding upper cells by Nemeth braille [5]. requiring a preceding dot locator indicator, a cell Although Nemeth braille is a complete system, with dots in all three rows, before a digit that would the United States, along with other English-speaking otherwise be at the start of a line or preceded by a countries, recently adopted the somewhat controver- space. sial Unified (UEB) system [6]. In the Braille systems can be easier to remember and U.S. it replaces both Nemeth braille and the prior recognize when they use tactile mnemonics related to system for English braille. The UEB math specifica- the specific patterns of the braille cells. For example, tion is awkward for a number of reasons, one being the cell with dots in the upper two positions on its the use of the same braille cells for the decimal digits right is the superscript indicator and the one with and for the letters a–. The negative reaction to UEB dots in the lower two positions on its right is the math in the United States is significant enough that subscript indicator. Another type of tactile mnemon- many U.S. states allow for Nemeth math, tagged with ics in Nemeth braille uses related dot patterns for switch indicators, to be used for transcribing math related mathematical symbols. Examples are pairs content together with UEB used only for non-math of mirror-image braille symbols used for parentheses text [2, lesson 3.8]. and for the less-than and greater-than symbols.

Susan Jolly TUGboat, Volume 40 (2019), No. 1 19

Finally, Nemeth uses braille-specific constructs 5.1 Simulated display of Nemeth braille to reduce the memory load for tactile comprehen- The simulated braille for this expression is displayed A sion of complex expressions. Nemeth, like LTEX below in five segments to make the descriptions easier (or MathML), naturally represents planar layouts, to follow. Note that the standard six-dot simulated including fractions, in a linear manner. However, braille font used here has shadow dots in the unfilled when an expression, such as a fraction with another positions. Shadow dots are intended to make visual fraction in its numerator, requires nested layout in- reading easier although one may need to take care dicators of the same type, Nemeth adds an explicit not to let the shadow dots obscure the dot patterns indication of the nesting by prefacing outer layout of the corresponding tactile braille cells. indicators with additional markup to represent the order or level of nesting. (This is similar to the use- 5.1.1 First segment fulness to visual readers of highlighting matching Now let’s try to see how the Nemeth braille for ex = pairs of nested parentheses using different colors for from the equation above would be experienced by each pair.) tactile readers. It looks like this: In summary, braille systems like Nemeth braille are carefully designed to accommodate the special e^x .k requirements of tactile reading. This is in contrast to computer braille transliterations of plain text files The first and third cells are the standard cells originally designed for other purposes. for the lower case letters e and x so are nothing new for a braille reader. The second cell, described 5 Simulated braille example of Nemeth previously, indicates that the following expression math is a superscript. This superscripted expression is This section uses simulated braille to display the terminated by default by the space always required Nemeth braille of the well-known equa- before comparison symbols. The two-cell symbol for tion, an equals sign purposely resembles a print equals ∞ x n x λ sign, as Dr. Nemeth believed that such similarities e = dλ helped between braille readers and Z−∞ n! nX=0 their sighted peers and teachers. This equation, chosen in part because it - ploys three different planar layouts, illustrates how 5.1.2 Second segment x Nemeth’s elegant use of tactile mnemonics and other The second segment represents : tactile considerations enhances the tactile readability −∞ and information content of the braille math. $;-,=^x" First, here’s a transliteration from Nemeth braille to standard ASCII Braille used for six-dot braille: The first cell in this segment, which somewhat e^x .k $;-,=^x"".,s

Nemeth braille math and LATEX source as braille 20 TUGboat, Volume 40 (2019), No. 1

5.1.3 Third segment as the fraction end indicator. The cell with two The third segment is a symbol decorated with, as dots that resembles a print forward separates ∞ the numerator from the denominator. The third termed in braille, an underscript and overscript, : cell is the letter l; you shouldn’t have too much n=0 P trouble reading the numerator since the other four cells have already been encountered. The letter n in the denominator is followed by the one-cell Nemeth ".,s

5.1.4 Fourth segment 6 Conclusion and future work The fourth segment of the formula above is the frac- Here is some good news: two hardware issues for real- n λ time access to braille have recently been addressed. tion n! , which uses the Nemeth simple fraction lay- out indicators: First, new hardware designs have resulted in signif- icantly cheaper single-line braille displays such as ?.l^n"/n&# the six-dot BrailleMe [11]. Second, and of special importance for braille math, is the newly available The first cell in this segment, which resembles six-dot Canute braille display which is not only low an upside-down print L, is a strong tactile shape in cost but also the first multi-line refreshable braille used as the fraction start indicator. The last cell, display [3]. which is used as a dot locator in other contexts, An urgent need for future work is accurate and is another strong tactile shape that is here used free automated backtranslation from braille math to

Susan Jolly TUGboat, Volume 40 (2019), No. 1 21

print math. Currently available applications, most of References which are not free, are problematic and students typ- [1] AAWB-AEVH-NBA, Advisory Council ically require their often unavailable itinerant braille to the Braille Authority, Louisville, KY. teachers to interpret their braille work for their class- The Nemeth Braille Code for Mathematics room teachers. Addressing this issue is a current and Science Notation. 1972 Revision, 1987. goal of the Euromath project [4]. High school and www.brailleauthority.org/mathscience/ college students sometimes resort to learning to read nemeth1972. and write LAT X math as a result of poor support for E [2] American Printing House for the Blind, braille math. In my opinion their time as students Inc., 1839 Frankfort Avenue, Louisville, KY. would be much better spent on improving their math- Nemeth Tutorial, 2015. nemeth.aphtech.org ematical ability. In any case, LATEX source is not an especially convenient basis for manipulating math. [3] Bristol CIC. Electronic A possible starting point for providing auto- Braille: reimagined, 2018. mated backtranslation is the beta version of my free bristolbraille.co.uk and open source BackNem 3.0 app for accurate back- [4] EuroMath Education Platform. EuroMath translation of Nemeth math to MathML, as demon- project, 2017. www.euromath.eu/wp-content/ strated by several samples [9]. This app, which is uploads/2018/12/EuroMath_Presentation. based on the ANTLR 4 parser generator, is to my pdf knowledge the first use of parsing technology for [5] gh, LLC. 2004 MathSpeak initiative, 2004. backtranslation of braille to print [7]. One valuable www.gh-mathspeak.com feature of ANTLR 4, which is especially important [6] C. Gray. Call to action: Prevent educational in educational contexts, is that its parsers can recog- harm to Braille readers, 2014. nize input errors, provide optional developer-supplied all4braille.org/C1002.htm error messages and, unlike other parsers, continue [7] S. Jolly. Using ANTLR 4 for braille processing despite encountering input errors. translation, 2011. Future work needed to support the claims in this github.com/SusanJ/BasicUEB/wiki article includes development of a software system [8] S. Jolly. Positive impacts of EPUB 3: MathML for real-time conversion of LAT X source to six-dot E and Braille mathematics, 2012. braille mathematics designed for integration with www.dotlessbraille.org/mathmlandbraille. screen readers and other applications. The difficulties htm of direct conversion of LATEX to other formats is well-known. A two-step process that first converts [9] S. Jolly. Samples of BackNem 3.0 output, 2018. github.com/SusanJ/Baknem/wiki/Samples LATEX to MathML with one of the currently available applications and then converts MathML to braille [10] S. Jolly. Translation of MathML to Nemeth math is a more viable approach. This second step is Braille, 2018. github.com/SusanJ/MML2Nem straightforward for Nemeth math due to similarities [11] National Braille Press. Braille Me, n. d. between it and MathML, and a beta version of my www.nbp.org/ic/nbp/BRAILLE-ME.html MML2Nem app is available for consideration of a new [12] Overbrook School for the Blind; International approach [8,10]. The need for real-time translation Council for Education of People with Visual is especially critical for education due to the recent Impairment; The Nippon Foundation. dramatic increase in the use of electronic information Mathematics Made Easy for Children with in this context. , 2005. www.hadley.edu/ Finally, I should point out that I’m not in a Resources_list/Mathematics_Made_Easy_ position to develop the needed software nor to pro- for_Children_with_Visual_Impairment. vide the infrastructure necessary to test, distribute, pdf or maintain software. I am however very glad to [13] D. Walden. Profile of Eitan Gurari volunteer to help other developers of open source (1947–2009). TUGboat 30(2):159–162, 2009. braille software as well as to answer questions about tug.org/TUGboat/tb30-2/tb95gurari.pdf braille mathematics. Susan Jolly ⋄ 120 Dos Brazos Los Alamos, NM 87544, USA easjolly (at) ix dot netcom dot com

Nemeth braille math and LATEX source as braille 22 TUGboat, Volume 40 (2019), No. 1

Both TEX and DVI viewers inside the cedures and functions), and does not exist as such web browser in JavaScript. However, JavaScript does support labeled loops, labeled breaks, labeled continues, and Jim Fowler alongside a trampoline-style device it is possible to Abstract emulate in JavaScript the procedure-local gotos used in TEX. There are a handful of cases in which a non- By using a Pascal compiler which targets WebAssem- local goto is used by TEX to terminate the program bly, T X itself can be run inside web browsers. The E early, but early termination can also be handled in DVI output is converted to HTML. As a result, both JavaScript. LAT X and TikZ are available as interactive input E Thus, it is possible to transpile Pascal to Java- languages for content on the web. Script. However, it turns out that running TEX 1 Introduction inside JavaScript is not particularly efficient! Many people would like to make technical material 2.2 WebAssembly (often written in TEX) available on the World Wide Web. Of course, this can be done via web pages, but WebAssembly [9] provides a speedier solution. Web- for mathematical expressions, HTML and MathML Assembly is a binary format for a stack-based virtual produce inferior results. Consequently, many users machine (like the Java Virtual Machine) which runs rely on client-side tools like MathJax [1] to provide inside modern web browsers and is designed as a beautiful rendering for content in math mode. compilation target for languages beyond JavaScript. There is also a need to go beyond math mode. There is still no support for goto, but the same tricks How might one render a TikZ[14] picture on the with labeled loops that make goto possible in Java- web? In the past, this might have been done with Script again work in WebAssembly. Our compiler web2js [4] digests the dialect of Pascal code that TEX4ht [8] to convert a TikZ picture to SVG. This article describes the basis of a new method, TikZJax TEX is written in and outputs WebAssembly, which [3], which, like MathJax, is client-side, perform- can then be run inside modern web browsers. We ing its conversions in the client’s browser. When chose the “web” in web2js to evoke both WEB and the TikZJax JavaScript is run, any TikZ pictures also the World Wide Web. inside

Web Analytics