A System for Typesetting Mathematics

Total Page:16

File Type:pdf, Size:1020Kb

A System for Typesetting Mathematics -- -- A System for Typesetting Mathematics Brian W. Kernighan and Lorinda L. Cherry Bell Laboratories Murray Hill, New Jersey 07974 ABSTRACT This paper describes the design and implementation of a system for typesetting mathemat- ics. The language has been designed to be easy to learn and to use by people (for example, secretaries and mathematical typists) who know neither mathematics nor typesetting. Experience indicates that the language can be learned in an hour or so, for it has few rules and fewer excep- tions. For typical expressions, the size and font changes, positioning, line drawing, and the like necessary to print according to mathematical conventions are all done automatically. For exam- ple, the input sum from i=0 to in®nity x sub i = pi over 2 produces ∞ π __ Σxi = i =0 2 The syntax of the language is speci®ed by a small context-free grammar; a compiler- compiler is used to make a compiler that translates this language into typesetting commands. Output may be produced on either a phototypesetter or on a terminal with forward and reverse half-line motions. The system interfaces directly with text formatting programs, so mixtures of text and mathematics may be handled simply. This paper is a revision of a paper originally published in CACM, March, 1975. 1. Introduction limits in the preceding example showed in its simplest ``Mathematics is known in the trade as form. This is carried further by dif®cult, or penalty, copy because it is slower, more b +________________ 1 dif®cult, and more expensive to set in type than any a 0 b 2 a +____________ other kind of copy normally occurring in books and 1 b +________ 3 journals.'' [1] a 2 . a 3+ One dif®culty with mathematical text is the multiplicity of characters, sizes, and fonts. An expression such as and still further by sin 2x √ mx −√ lim (tan x ) = 1 _______ 1 __________ a e b →π⁄ log x 2 2m √ ab √ a e mx +√ b requires an intimate mixture of roman, italic and √ dx 1 − a greek letters, in three sizes, and a special character or ∫ ___________ = ______ tanh 1(____ e mx ) ae mx −be −mx √ √ two. (``Requires'' is perhaps the wrong word, but m ab b √ mathematics has its own typographical conventions −1 − a ______ coth 1(____ e mx ) which are quite different from those of ordinary text.) m √ ab √ b Typesetting such an expression by traditional methods These examples also show line-drawing, built-up is still an essentially manual operation. characters like braces and radicals, and a spectrum of A second dif®culty is the two dimensional positioning problems. (Section 6 shows what a user character of mathematics, which the superscript and has to type to produce these on our system.) -- -- - 2 - 2. Photocomposition bars have to be made the right length and positioned Photocomposition techniques can be used to at the right height. And so on. Indeed a mechanism solve some of the problems of typesetting mathemat- for overriding default actions has to exist, but its ics. A phototypesetter is a device which exposes a application is the exception, not the rule. piece of photographic paper or ®lm, placing charac- We assume that the typist has a reasonable pic- ters wherever they are wanted. The Graphic Systems ture (a two-dimensional representation) of the desired phototypesetter[2] on the UNIX operating system[3] ®nal form, as might be handwritten by the author of a works by shining light through a character stencil. paper. We also assume that the input is typed on a The character is made the right size by lenses, and computer terminal much like an ordinary typewriter. the light beam directed by ®ber optics to the desired This implies an input alphabet of perhaps 100 charac- place on a piece of photographic paper. The exposed ters, none of them special. paper is developed and typically used in some form A secondary, but still important, goal in our of photo-offset reproduction. design was that the system should be easy to imple- On UNIX, the phototypesetter is driven by a ment, since neither of the authors had any desire to formatting program called TROFF [4]. TROFF was make a long-term project of it. Since our design was designed for setting running text. It also provides all not ®rm, it was also necessary that the program be of the facilities that one needs for doing mathematics, easy to change at any time. such as arbitrary horizontal and vertical motions, To make the program easy to build and to line-drawing, size changing, but the syntax for change, and to guarantee regularity (``it should work describing these special operations is dif®cult to learn, everywhere''), the language is de®ned by a context- and dif®cult even for experienced users to type free grammar, described in Section 5. The compiler correctly. for the language was built using a compiler-compiler. For this reason we decided to use TROFF as an A priori, the grammar/compiler-compiler ``assembly language,'' by designing a language for approach seemed the right thing to do. Our subse- describing mathematical expressions, and compiling it quent experience leads us to believe that any other into TROFF. course would have been folly. The original language was designed in a few days. Construction of a work- 3. Language Design ing system suf®cient to try signi®cant examples The fundamental principle upon which we required perhaps a person-month. Since then, we based our language design is that the language should have spent a modest amount of additional time over be easy to use by people (for example, secretaries) several years tuning, adding facilities, and occasion- who know neither mathematics nor typesetting. ally changing the language as users make criticisms This principle implies several things. First, and suggestions. ``normal'' mathematical conventions about operator We also decided quite early that we would let precedence, parentheses, and the like cannot be used, TROFF do our work for us whenever possible. for to give special meaning to such characters means TROFF is quite a powerful program, with a macro that the user has to understand what he or she is typ- facility, text and arithmetic variables, numerical com- ing. Thus the language should not assume, for putation and testing, and conditional branching. Thus instance, that parentheses are always balanced, for we have been able to avoid writing a lot of mundane they are not in the half-open interval (a ,b ]. Nor but tricky software. For example, we store no text should it assume that that √ a +b can be replaced by strings, but simply pass them on to TROFF. Thus we 1 1 (a +b ) ¤2 , or that 1⁄(1−x ) is better written as ____ (or avoid having to write a storage management package. 1−x Furthermore, we have been able to isolate ourselves vice versa). from most details of the particular device and charac- Second, there should be relatively few rules, ter set currently in use. For example, we let TROFF keywords, special symbols and operators, and the compute the widths of all strings of characters; we like. This keeps the language easy to learn and need know nothing about them. remember. Furthermore, there should be few excep- A third design goal is special to our environ- tions to the rules that do exist: if something works in ment. Since our program is only useful for typeset- one situation, it should work everywhere. If a vari- ting mathematics, it is necessary that it interface able can have a subscript, then a subscript can have a cleanly with the underlying typesetting language for subscript, and so on without limit. the bene®t of users who want to set intermingled Third, ``standard'' things should happen mathematics and text (the usual case). The standard automatically. Someone who types ``x=y+z+1'' mode of operation is that when a document is typed, should get ``x =y +z +1''. Subscripts and superscripts mathematical expressions are input as part of the text, should automatically be printed in an appropriately but marked by user settable delimiters. The program smaller size, with no special intervention. Fraction reads this input and treats as comments those things -- -- - 3 - which are not mathematics, simply passing them a+b over c+d+e = 1 through untouched. At the same time it converts the mathematical input into the necessary TROFF com- produces mands. The resulting ioutput is passed directly to a +b _______ =1 TROFF where the comments and the mathematical c +d +e parts both become text and/or TROFF commands. Similarly, subscripts and superscripts are intro- 4. The Language duced by the keywords sub and sup: We will not try to describe the language pre- x 2+y 2=z 2 cisely here; interested readers may refer to the appen- dix for more details. Throughout this section, we will is produced by write expressions exactly as they are handed to the x sup 2 + y sup 2 = z sup 2 typesetting program (hereinafter called ``EQN''), except that we won't show the delimiters that the user The spaces after the 2's are necessary to mark the end types to mark the beginning and end of the expres- of the superscripts; similarly the keyword sup has to sion. The interface between EQN and TROFF is be marked off by spaces or some equivalent delimiter. described at the end of this section. The return to the proper baseline is automatic. Multi- ple levels of subscripts or superscripts are of course As we said, typing x=y+z+1 should produce z allowed: ``x sup y sup z'' is x y .
Recommended publications
  • Miktex Manual Revision 2.0 (Miktex 2.0) December 2000
    MiKTEX Manual Revision 2.0 (MiKTEX 2.0) December 2000 Christian Schenk <[email protected]> Copyright c 2000 Christian Schenk Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the con- ditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another lan- guage, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation. Chapter 1: What is MiKTEX? 1 1 What is MiKTEX? 1.1 MiKTEX Features MiKTEX is a TEX distribution for Windows (95/98/NT/2000). Its main features include: • Native Windows implementation with support for long file names. • On-the-fly generation of missing fonts. • TDS (TEX directory structure) compliant. • Open Source. • Advanced TEX compiler features: -TEX can insert source file information (aka source specials) into the DVI file. This feature improves Editor/Previewer interaction. -TEX is able to read compressed (gzipped) input files. - The input encoding can be changed via TCX tables. • Previewer features: - Supports graphics (PostScript, BMP, WMF, TPIC, . .) - Supports colored text (through color specials) - Supports PostScript fonts - Supports TrueType fonts - Understands HyperTEX(html:) specials - Understands source (src:) specials - Customizable magnifying glasses • MiKTEX is network friendly: - integrates into a heterogeneous TEX environment - supports UNC file names - supports multiple TEXMF directory trees - uses a file name database for efficient file access - Setup Wizard can be run unattended The MiKTEX distribution consists of the following components: • TEX: The traditional TEX compiler.
    [Show full text]
  • 236 Tugboat, Volume 9 (1988), No. 3 Some Typesetting Conventions
    236 TUGboat, Volume 9 (1988), No. 3 Some Typesetting Conventions suitability to contents Graeme McKinstry, Not all these factors are equal in their effect on readability University of Otago, nor are all the factors within your control but it is possible New Zealand. to use some of the above factors to make your documents more readable. One of the major advantages of T@ is that it makes it possible for authors to typeset their own work. However, Typeface and size of type this new found power has not been automatically asso- There are two broad classes of fonts: serif ("serifs" are ciated with a knowledge of typesetting and typographic the finishing strokes at the end of letters) and sans-serif design and so some very unreadable documents have en- (without serifs, e.g., fonts such as Helvetica). Of the sued. This is further exacerbated by authors believing two, serif fonts (such as Computer Modem, and Times- they do know something about typesetting ("Doesn't ev- Roman) are easier to read for large quantities of text, eryone?") and ignoring all attempts to lead them in the "because it has been shown that we read our own lan- right direction, e.g., LV@. guage not letter by letter but by recognizing the shapes Although TEX users are less prone to fall into this of words . " [31. The serifs tend to help in this "shape trap as compared to your average WYSIWYG user there are recognition". For example try to decipher the following still some fundamental typographic lessons to be learned. two lines (they don't form words): These principles are so fundamental that even a com- puting consultant, such as myself, is able to learn, and possibly even more importantly, understand why we have them.
    [Show full text]
  • Tugboat, Volume 33 (2012), No. 1 53 TEX on Windows: Miktex Or TEX Live? Joseph Wright on Windows, There Are Two Actively-Develop
    TUGboat, Volume 33 (2012), No. 1 53 TEX on Windows: MiKTEX or TEX Live? A reminder that MiKTEX and TEX Live are not the only choices. W32TEX (Kakuto, 2012) is popular Joseph Wright in the far east. As well as being a TEX system in On Windows, there are two actively-developed free its own right, it is the source of the Windows binar- TEX systems with similar coverage: MiKTEX (Schenk, ies for TEX Live, and TEX Live acquires more CJK 2011) and TEX Live (TEX Users Group, 2011). The support from it every year. For users focussed on good news is that there is a lot of similarity between ConTEXt, ConTEXt standalone (Pragma ADE, 2012) the two systems, so for most users both systems is probably the best way to go (it uses the W32TEX are equally usable, and (LA)TEX documents are port- binaries on Windows). There are also the commer- able between them. However, there are differences cial options, for example BaKoMa TEX (BaKoMa and depending on what you need these might be Soft., 2011) or PCTEX (Personal TEX, Inc., 2011). important. However, for most users it comes down to a choice between the ‘big two’. • The default settings install everything for TEX Live, but only a minimal set of packages for References MiKT X. MiKT X will then install extra pack- E E BaKoMa Soft. “BaKoMa T X 9.77”. ages ‘on the fly’, while T X Live does not (there E E http://www.bakoma-tex.com/, 2011. is a package to do that in TEX Live, but it is aimed at GNU/Linux users).
    [Show full text]
  • Mandoc: Becoming the Main BSD Manual Toolbox
    mandoc: becoming the main BSD manual toolbox BSDCan 2015, June 13, Ottawa Ingo Schwarze <[email protected]> Cynthia Livingston’sOTTB “Bedifferent” (c) 2013 C. Livingston (with permission) > Ingo Schwarze: mandoc page 2: INTROI BSDCan 2015, June 13, Ottawa Brief history of UNIX documentation • The key point: All documentation in one place and one format. Easy to find, uniform and easy to read and write. Be correct, complete, concise. • 1964: RUNOFF/roffmarkup syntax by Jerome H. Saltzer,MIT. Unobtrusive,diff(1)-friendly,easy to hand-edit, simple tools, high quality output. • 1971: Basic manual structure by Ken Thompson and Dennis Ritchie for the AT&T Version 1 UNIX manuals, Bell Labs. • 1979: man(7) physical markup language for AT&T Version 7 UNIX. • 1989: mdoc(7) semantic markup by Cynthia Livingston for 4.3BSD-Reno. Powerful, self-contained, portable. • 1989: GNU troffbyJames Clarke. • 2001: mdoc(7) rewrite by Werner Lemberg and Ruslan Ermilovfor groff-1.17. • 2008: mandoc(1) started by Kristaps Dzonsons. • 2010: mandoc(1) is the only documentation formatter in the OpenBSD base system. • 2014: mandoc(1) used by default in OpenBSD, FreeBSD, NetBSD, illumos. 16:19:30 What is the mandoc toolbox? → < > Ingo Schwarze: mandoc page 3: INTROIIBSDCan 2015, June 13, Ottawa What is the mandoc toolbox? User perspective:man(1), the manual viewer One comprehensive tool! Normal operation always proceeds in three steps: 1. Find one or more manuals in the file system or using a database by manual name — man(1) — or by search query — apropos(1) =man -k The result of this step can be printed out with man -w.
    [Show full text]
  • Development of Computer Typesetting
    Early steps in computer typesetting in the 1960s Jonathan Seybold, September 2018 1961–1964 Michael Barnett’s “Experiments in Typesetting” In 1961, Michael Barnett, an associate professor at MIT wrote a computer program that could produce punched paper tape output to drive a phototypesetting machine. He used this to produce the “Tail” from Alice in Wonderland, and a phototypeset press release. These were the first documents that were phototypeset from output generated by a computer. In 1962 Barnett received a research grant to continue this experiments. This lead to development of the PC6 system, which was used to produce a variety of reports, pamphlets and other publications in late 1963 and early 1964.1 Hardware: IBM 709/90 computer and a Photon 560 phototypesetter. Software: Written in Fortran, with a few routines written in FAP (Fortran Assembler). Written for a specific Photon 560 set-up. Typefonts were identified by disk position and row number. The TYPRINT program for text output composed text to fit a predefined page width and depth. Lines were broken after the last complete word that would fit on that line. There was no attempt at hyphenation. Pages were arbitrarily broken after the last line that would fit on the page. Special commands could be embedded in the text to tie text elements together. When it encountered these, the program would simply make the page as long as necessary to accommodate all of the text in the “no break” area. Given the scientific academic setting, the most notable feature of TYPRINT was a program written by J.M.
    [Show full text]
  • A User's Guide to the Lout Document Formatting System
    A User’s Guide to the Lout Document Formatting System Jeffrey H. Kingston Version 3.40 June 2013 Copyright 1991, 2013 Jeffrey H. Kingston, School of Information Technologies, The University of Sydney 2006, Australia. ISBN 0 86758 9515. Preface This User’s Guide brings together in one document everything needed for the day-to-day use of Version 3 of the Lout document formatting system. There are three other documents describing Lout: the Expert’s Guide [5], which you need if you want to add new features to Lout; a journal paper on the design and implementation of Lout [3]; and a set of overhead transparencies [4]that cover much the same ground as this Guide. These documents are all distributed with the software. Lout is distributed free of charge under the GNU Public License. The primary source is ftp://ftp.it.usyd.edu.au/jeff/lout containing a gzipped tar file of the current version, and various other things including a PostScript version of this guide. The distribution contains source code, libraries,documentation, license, and installation instructions. A mailing list has been set up for discussion of all topics related to Lout. To subscribe (or unsubscribe), visit http://lists.nongnu.org/mailman/listinfo/lout-users After subscribing, to post an item send email to [email protected]; it will be forwarded to all subscribers via email. There is also a web site at http://savannah.nongnu.org/projects/lout. Lout began in 1984 as a research project into the design of a high-level language for document formatting.
    [Show full text]
  • Typographic Terms Alphabet the Characters of a Given Language, Arranged in a Traditional Order; 26 Characters in English
    Typographic Terms alphabet The characters of a given language, arranged in a traditional order; 26 characters in English. ascender The part of a lowercase letter that rises above the main body of the letter (as in b, d, h). The part that extends above the x-height of a font. bad break Refers to widows or orphans in text copy, or a break that does not make sense of the phrasing of a line of copy, causing awkward reading. baseline The imaginary line upon which text rests. Descenders extend below the baseline. Also known as the "reading line." The line along which the bases of all capital letters (and most lowercase letters) are positioned. bleed An area of text or graphics that extends beyond the edge of the page. Commercial printers usually trim the paper after printing to create bleeds. body type The specific typeface that is used in the main text break The place where type is divided; may be the end of a line or paragraph, or as it reads best in display type. bullet A typeset character (a large dot or symbol) used to itemize lists or direct attention to the beginning of a line. (See dingbat.) cap height The height of the uppercase letters within a font. (See also cap line.) caps and small caps The typesetting option in which the lowercase letters are set as small capital letters; usually 75% the height of the size of the innercase. Typographic Terms character A symbol in writing. A letter, punctuation mark or figure. character count An estimation of the number of characters in a selection of type.
    [Show full text]
  • Luametatex Reference Manual
    LuaMetaTEX Reference Manual February 2021 Version 2.08.16 LuaMetaTEX Reference Manual copyright : LuaTEX development team :CONTEXT development team more info : www.luatex.org : contextgarden.net version : February 20, 2021 Contents Introduction 11 1 The internals 15 2 Differences with LUATEX 19 3 The original engines 25 3.1 The merged engines 25 3.1.1 The rationale 25 3.1.2 Changes from TEX 3.1415926... 25 3.1.3 Changes from 휀-TEX 2.2 26 3.1.4 Changes from PDFTEX 1.40 27 3.1.5 Changes from ALEPH RC4 28 3.1.6 Changes from standard WEB2C 28 3.2 Implementation notes 29 3.2.1 Memory allocation 29 3.2.2 Sparse arrays 29 3.2.3 Simple single-character csnames 29 3.2.4 Binary file reading 29 3.2.5 Tabs and spaces 30 3.2.6 Logging 30 3.2.7 Parsing 30 4 Using LUAMETATEX 33 4.1 Initialization 33 4.1.1 LUAMETATEX as a LUA interpreter 33 4.1.2 Other commandline processing 33 4.2 LUA behaviour 35 4.2.1 The LUA version 35 4.2.2 Locales 35 4.3 LUA modules 35 4.4 Testing 36 5 Basic TEX enhancements 37 5.1 Introduction 37 5.1.1 Primitive behaviour 37 5.1.2 Version information 37 5.2 UNICODE text support 38 5.2.1 Extended ranges 38 5.2.2 \Uchar 39 5.2.3 Extended tables 39 1 5.3 Attributes 41 5.3.1 Nodes 41 5.3.2 Attribute registers 42 5.3.3 Box attributes 42 5.4 LUA related primitives 44 5.4.1 \directlua 44 5.4.2 \luaescapestring 45 5.4.3 \luafunction, \luafunctioncall and \luadef 45 5.4.4 \luabytecode and \luabytecodecall 46 5.5 Catcode tables 47 5.5.1 Catcodes 47 5.5.2 \catcodetable 47 5.5.3 \initcatcodetable 47 5.5.4 \savecatcodetable 48 5.6 Tokens, commands
    [Show full text]
  • GNU Texinfo Reference Card @Contents Print a Complete Table of Contents
    GNU Texinfo Reference Card @contents Print a complete table of contents. Has no effect in Cross references (for Texinfo version 6.8) Info, which uses menus instead. Within the Info system http://www.gnu.org/software/texinfo/ Nodes @xref {node, [entry] , [node-title] , [info-file] , [manual] } Makes @node name Begin a new node. a reference that starts with ‘See’ in a printed manual. Follow Texinfo document skeleton command with punctuation. Only the first argument is @top title Mark the topmost @node in the file, which must be mandatory. Texinfo source files are plain text; standard extensions are defined on the line immediately preceding @top. The title is @pxref {node, [entry] , [node-title] , [info-file] , [manual] } Like ‘.texinfo’, ‘.texi’, and ‘.txi’. A Texinfo file must begin with formatted as a chapter-level heading. The entire top node, @xref, but starts with ‘see’ instead of ‘See’, and must be used lines like this: including the @node and @top lines, are normally enclosed with @ifnottex ... @end ifnottex. inside parentheses. \input texinfo @ref {node, [entry] , [node-title] , [info-file] , [manual] } Like @xref, @settitle name-of-manual @anchor {name} Define name as the current location, for use as a cross-reference target. but produces only the bare reference without ‘See’ or ‘see’; must ... be followed by a punctuation mark. the contents of the Texinfo document, ending with: @novalidate Suppress validation of node references and omit @bye creation of auxiliary files with T X. Use before @setfilename. @xrefautomaticsectiontitle on|off By default, use the section E title instead of the node name in cross references. Texinfo @-commands Chapter structuring Outside of Info Beginning a Texinfo document @lowersections Change subsequent chapters to sections, sections @url {url, [displayed-text] , [replacement] } Make a hyperlink to subsections, and so on.
    [Show full text]
  • Unix Programmer's Manual
    There is no warranty of merchantability nor any warranty of fitness for a particu!ar purpose nor any other warranty, either expressed or imp!ied, a’s to the accuracy of the enclosed m~=:crials or a~ Io ~helr ,~.ui~::~::.j!it’/ for ~ny p~rficu~ar pur~.~o~e. ~".-~--, ....-.re: " n~ I T~ ~hone Laaorator es 8ssumg$ no rO, p::::nS,-,,.:~:y ~or their use by the recipient. Furln=,, [: ’ La:::.c:,:e?o:,os ~:’urnes no ob~ja~tjon ~o furnish 6ny a~o,~,,..n~e at ~ny k:nd v,,hetsoever, or to furnish any additional jnformstjcn or documenta’tjon. UNIX PROGRAMMER’S MANUAL F~ifth ~ K. Thompson D. M. Ritchie June, 1974 Copyright:.©d972, 1973, 1974 Bell Telephone:Laboratories, Incorporated Copyright © 1972, 1973, 1974 Bell Telephone Laboratories, Incorporated This manual was set by a Graphic Systems photo- typesetter driven by the troff formatting program operating under the UNIX system. The text of the manual was prepared using the ed text editor. PREFACE to the Fifth Edition . The number of UNIX installations is now above 50, and many more are expected. None of these has exactly the same complement of hardware or software. Therefore, at any particular installa- tion, it is quite possible that this manual will give inappropriate information. The authors are grateful to L. L. Cherry, L. A. Dimino, R. C. Haight, S. C. Johnson, B. W. Ker- nighan, M. E. Lesk, and E. N. Pinson for their contributions to the system software, and to L. E. McMahon for software and for his contributions to this manual.
    [Show full text]
  • Typing Documents on the UNIX System: Using the –Ms and –Mcs
    Typing Documents on the UNIX System: Using the ±ms and ±mcs Macros with Troff² L. L. Cherry M. E. Lesk AT&T Bell Laboratories Murray Hill, New Jersey 07974 ABSTRACT This document describes a set of easy-to-use macros for preparing documents on the UNIX operating system. The macros provide facilities for paragraphs, sections headings (optionally with automatic numbering), page titles, footnotes, equations, tables, two-column for- mat, and several formats of cover pages for papers. This memo includes, as an appendix, the text of ``A Guide to Preparing Documents with ±ms and ±mcs,'' which contains additional examples of features of ±ms. Introduction. This memorandum describes a package of commands to produce papers using the troff formatting program. As with other formatting programs, text is prepared interspersed with formatting commands. However, this package, which itself is written in troff commands, provides higher-level commands than those pro- vided with the basic troff program. A separate set of macros, ±mcs, produces an official AT&T style internal docu- ment cover sheet. The ±mcs macros automatically invoke the ±ms macros. Although the basic ±ms macros work with nroff, the ±mcs macros do not. Macro names were selected in ±mcs to avoid collisions with the original ±ms macros and thereby maintain backward compatibility. This document reflects the new macros. The commands available in this package are listed in Appendix A; the cover sheet commands and their order are in Appendix B. Text. Type normally, except that instead of indenting for paragraphs, place a line reading ``.PP'' before each paragraph. This will produce indenting and extra space.
    [Show full text]
  • Forensic Analysis of OOXML Documents
    Forensic Analysis of OOXML Documents Espen Didriksen Master’s Thesis Master of Science in Information Security 30 ECTS Department of Computer Science and Media Technology Gjøvik University College, 2014 Avdeling for informatikk og medieteknikk Høgskolen i Gjøvik Postboks 191 2802 Gjøvik Department of Computer Science and Media Technology Gjøvik University College Box 191 N-2802 Gjøvik Norway Forensic Analysis of OOXML Documents Abstract Microsoft Office 2007 and subsequent versions use an XML-based file format called Office Open XML (OOXML) for storing documents, spreadsheets and presentations. OOXML documents are often collected in forensic investigations, and is considered one of the main sources of evidence by the National Authority for Investigation and Prosecution of Economic and Environmental Crime in Norway (Norwegian: Økokrim). OOXML documents are zipped file containers which upon extraction reveals a file structure with files containing forensically interesting information. Metadata specified in the XML of these doc- uments can often be used for e.g. attributing a document to a person or correlating time informa- tion to build a timeline of events. Revision identifiers are unique numbers appended to content in OOXML documents produced in Microsoft Word, and can be used in forensics to e.g. uncover previously unknown social networks, determine the source of a document and detect plagiarism of intellectual property. We have used experimental methods to determine the forensic difference between the word pro- cessors Microsoft Word 2007, 2010, 2013, 365 and Online, in addition to LibreOffice Writer and Google Docs, with respect to original path preservation of inserted images, thumbnail creation and implementation of revision identifiers.
    [Show full text]