<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi Jamie.<div class=""><br class=""></div><div class="">I think it is time to recall some history, from 20+ years ago.</div><div class=""><br class=""></div><div class="">Here’s an advert, in TUGboat from March 1999:</div><div class=""><a href="https://tug.org/TUGboat/tb20-1/bluesky.pdf" class="">https://tug.org/TUGboat/tb20-1/bluesky.pdf</a></div><div class=""><br class=""></div><div class="">The product “Lightning Textures” had 2 really great features, to make editing</div><div class="">easier:  Flash Mode, and Synchronicity.</div><div class="">these were built-in to a MacOS Classic application which handled all 3 tasks:</div><div class=""> Editing, Compilation with TeX, and Preview.</div><div class=""><br class=""></div><div class="">Back then, the Preview was using an (extended) DVI format, rather than PDF.</div><div class=""><br class=""></div><div class="">Flash Mode started re-compilation automatically upon keystrokes in the editing window.</div><div class=""><br class=""></div><div class="">Synchronicity gave a 2-way correlation between content in the Preview window</div><div class="">and position within the Editing window.</div><div class=""><br class=""></div><div class="">It was this latter feature that inspired SyncTeX, which comes with the  -synctex  option</div><div class="">to current tex binaries, on all platforms.</div><div class="">But synctex (for PDF output) has never worked as well as Synchronicity did</div><div class="">for Textures’ extended DVI format.</div><div class=""><br class=""></div><div class="">These features were the brain-child of Barry Smith, which was a founder of BlueSky Research,</div><div class="">but who is no longer with us. Here’s a link that may help in a search to discover more:</div><div class=""><a href="https://tex.stackexchange.com/questions/108497/what-happened-to-textures-and-bluesky-research" class="">https://tex.stackexchange.com/questions/108497/what-happened-to-textures-and-bluesky-research</a></div><div class=""><br class=""></div><div class="">There are a multitude of reasons why this work never took hold generally;</div><div class="">e.g.</div><div class="">1.  it was proprietary software</div><div class="">2.  output was based upon DVI, not the final PDF</div><div class="">3.  pdftex  was being produced around the same time</div><div class="">4.  Apple changed the  MacOS  operating system</div><div class="">5.  change of direction within BlueSky Research</div><div class="">6.  passing of Barry Smith</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">To understand why this is likely relevant to the current discussion, let’s</div><div class="">look at how Synchronicity worked, using the extended DVI format.</div><div class=""><br class=""></div><div class="">Each word in the binary DVI output was 64-bit = (2 x 32) where normal</div><div class="">DVI is based upon 32-bit words.  (It was 20+ years ago; maybe I’ve doubled </div><div class="">the bit-lengths, but that doesn’t change the discussion.)</div><div class="">The extra bits of each word contained an address that indicated where</div><div class="">in the source document(s) that letter/character in the Preview originated.</div><div class=""><br class=""></div><div class="">Thus a (Ctrl-)click on a character in the Preview allowed the App to take you directly</div><div class="">to whereabouts in the source it had come from.</div><div class="">And since the App was also in control of the Editor, it could similarly go the other way.</div><div class="">A (Ctrl-)click in the source would take you to the exact spot in the Preview.</div><div class=""><br class=""></div><div class="">There’s a complication for characters coming as the expansion of macros.</div><div class="">Presumably the place invoking the macro-usage provides the desired target address.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">For this discussion …</div><div class=""><br class=""></div><div class=""> ... given a sequence of snapshots (which Textures did not have), </div><div class="">when editing starts one could use the Synchronicity information to identify</div><div class="">exactly which snapshot is the first one affected.</div><div class="">Then Synchronicity in the other direction can identify whereabouts, earlier</div><div class="">within the source, compilation needs to be started to pick up the fresh changes.</div><div class="">The Flash-mode aspect can then kick-in, but now having loaded everything </div><div class="">to restore the state at that earlier point in the input; re-compiling from there.</div><div class=""><br class=""></div><div class="">Could such a strategy be used to give an up-to-date, accurate PDF?</div><div class="">Probably not. </div><div class="">But that’s OK, as this is only meant to be giving a Preview while editing.</div><div class="">A full rerun is surely required anyway. An analog of Flash Mode can initiate </div><div class="">this in the background, during times of non-editing.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">One can ask why this kind of work has not been done already.</div><div class="">My points 1, 2, 4 above are relevant.</div><div class="">The actual coding was never made Open Source; it was OS-dependent</div><div class="">and required a fully-integrated Application.</div><div class="">Furthermore, the preferred output directly into PDF was beginning to take over.</div><div class="">Also, people wanted to use their own choice of Editor and viewing application;</div><div class="">so having a fully-integrated system was certainly not much favoured,</div><div class="">despite the extra benefits this could provide.</div><div class=""><br class=""></div><div class="">Besides, my previous point about Moore’s Law meant that people were not so </div><div class="">concerned about speed any more, as things were getting much quicker anyway.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Maybe it is becoming time (20+ years later) to revisit these aspects?</div><div class=""><br class=""></div><div class="">It wouldn’t be hard in principle to extend pdfTeX to generate DVI output </div><div class="">at each shipout, alongside building the PDF. </div><div class="">TeX already knows the location of input, at least to the line-number.</div><div class="">There’s work to do to make this more precise, to the character say.</div><div class=""><br class=""></div><div class="">Tying it all together, and reacting to user-input on all operating systems,</div><div class="">is likely the trickiest part of this kind of approach.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Hope this helps.</div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre">       </span>Ross</div><div class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On 16 Jan 2022, at 2:59 am, Jamie Vicary <<a href="mailto:jamie.vicary@cl.cam.ac.uk" class="">jamie.vicary@cl.cam.ac.uk</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Hi Peter, this is a great idea.<br class=""><br class="">This would rely on the assumption that latex engine reads the input<br class="">file line-by-line as required, and does not substantially read ahead<br class="">and store the input in memory. I don't know if this is true, but I'm<br class="">sure many people on this list do.<br class=""><br class="">The memory footprint might be quite large. But sequential snapshots<br class="">could be stored as diffs to minimize this overhead.<br class=""><br class="">Cheers,<br class="">Jamie<br class=""><br class="">On Sat, Jan 15, 2022 at 2:45 PM <<a href="mailto:selinger@mathstat.dal.ca" class="">selinger@mathstat.dal.ca</a>> wrote:<br class=""><blockquote type="cite" class=""><br class="">Hi Jamie,<br class=""><br class="">I think that what you are suggesting can almost be done at the<br class="">operating system level, without changing any aspect of LaTeX, except<br class="">to replace a few system calls.<br class=""><br class="">What you need is the ability to<br class=""><br class="">(1) make a snapshot of a running process (with all of its state,<br class="">including things like open files, content and current positions of<br class="">those files), and to resume the snapshot later (i.e., start a new<br class="">process in exactly the same state as the snapshot).<br class=""><br class="">(2) keep track of when the process is reading from a file,<br class=""><br class="">(3) keep track of when the process is writing to a file.<br class=""><br class="">Basically every time the process writes to the relevant output file<br class="">(e.g. its main DVI or PDF output), make a note of everything that it<br class="">has read so far. Changes to any input files that are outside the area<br class="">that has currently been read cannot possibly affect the output to this<br class="">point.  Whenever a relevant input file changes, restart from the most<br class="">recent snapshot that could be affected by that change.<br class=""><br class="">There are of course some features (such as reading the time of day)<br class="">that make TeX or any other program non-deterministic. These would<br class="">either have to be ignored or turned off.<br class=""><br class="">If the snapshots can be made in a lightweight way (e.g., only storing<br class="">a "diff" from a previous snapshot), this would be relatively feasible.<br class="">Generally, input and output is buffered (i.e., written in much larger<br class="">chunks than necessary), so instead of merely replacing system calls<br class="">such are write(), it might be necessary to adjust some library<br class="">functions such as fwrite().<br class=""><br class="">As others have noted, LaTeX also writes a bunch of auxiliary files<br class="">(.aux file, table of contents, etc), which affect the next pass over<br class="">the document, but one could choose to ignore these unless a full<br class="">recompile is requested.<br class=""><br class="">The advantage is that this solution would work for practically any<br class="">program that reads input to produce incremental output; it is not<br class="">LaTeX specific.<br class=""><br class="">-- Peter<br class=""><br class="">Jamie Vicary wrote:<br class=""><blockquote type="cite" class=""><br class="">Hi Jim, Ross and others, thanks for your further comments.<br class=""><br class="">I certainly agree that some parts of the document have substantially<br class="">nonlocal effects, e.g. references, citations, indexing, and similar. I<br class="">should have made clear, any functionality that ordinarily requires<br class="">more than one pass of pdflatex is completely outside the scope of what<br class="">I am suggesting. (This is the behaviour of BaKoMa TeX -- if you want<br class="">your equation references etc to update, you have to fire off a full<br class="">recompile.)<br class=""><br class=""><blockquote type="cite" class="">I would guess the development effort to<br class="">do this would be considerable for someone who thoroughly knows the<br class="">internals of the TeX engine, and perhaps a tremendous effort for<br class="">someone starting from scratch.<br class=""></blockquote><br class="">I don't know anything about TeX, but I can develop code, and this<br class="">feature is sufficiently important to my working style, that I would<br class="">potentially be interested to take it on as a project, particularly if<br class="">others could be involved.<br class=""><br class=""><blockquote type="cite" class="">what I<br class="">described may be (far?) less than BaKoMa TeX does anyway; the author<br class="">of that had undoubtedly given it a *lot* more thought than me.<br class=""></blockquote><br class="">BaKoMa has its own issues, and is of course no longer being developed.<br class="">At some point it will become incompatible with modern latex packages.<br class=""><br class="">I think it would be great to have this fast-recompile feature in the<br class="">open-source world. It doesn't matter if it has limitations at first,<br class="">people will improve it over time.<br class=""><br class=""><blockquote type="cite" class="">If your jobs are not compiling quickly enough for you, then the best option could well be to update your hardware, rather than fiddle with the fundamental design of the software.<br class=""></blockquote><br class="">My hardware is very good thank you! :) I of course understand many<br class="">people might think this way.<br class=""><br class="">For 10 years, I have worked on my latex documents with my code on the<br class="">left side of my screen, and the BaKoMa preview on the right, giving me<br class="">ultra-fast updating at the level of individual keystrokes (as long as<br class="">the document is in a syntactically valid state.) These can be large<br class="">documents, taking minutes for a full recompilation, and I am often<br class="">making minute adjustments to graphical styles, tikz diagrams, etc. I<br class="">am **multiple times** more productive with this system than I would be<br class="">otherwise. I completely avoid the inconveniences of having to split my<br class="">sections and figures into different files, and all those workarounds,<br class="">and I must have saved cumulative weeks of my life waiting for<br class="">documents to compile.<br class=""><br class="">Cheers,<br class="">Jamie<br class=""><br class=""><br class="">On Fri, Jan 14, 2022 at 5:01 PM Jim Diamond <<a href="mailto:jdiamond@acadiau.ca" class="">jdiamond@acadiau.ca</a>> wrote:<br class=""><blockquote type="cite" class=""><br class="">Ross,<br class=""><br class="">It seems your mail program clobbers the quoting in the plain text<br class="">part.<br class=""><br class="">All,<br class=""><br class="">At the cost of incorrect quoting below, I'll carry on with the email as-is.<br class=""><br class=""><br class="">On Fri, Jan 14, 2022 at 14:06 (+1100), Ross Moore wrote:<br class=""><br class=""><blockquote type="cite" class="">Hi Jim, Karl and others.<br class=""></blockquote><br class=""><blockquote type="cite" class="">From: Jim Diamond via pdftex <<a href="mailto:pdftex@tug.org" class="">pdftex@tug.org</a><<a href="mailto:pdftex@tug.org" class="">mailto:pdftex@tug.org</a>>><br class="">Date: 14 January 2022 at 12:26:27 pm AEDT<br class="">To: Karl Berry <<a href="mailto:karl@freefriends.org" class="">karl@freefriends.org</a><<a href="mailto:karl@freefriends.org" class="">mailto:karl@freefriends.org</a>>>, <a href="mailto:pdftex@tug.org" class="">pdftex@tug.org</a><<a href="mailto:pdftex@tug.org" class="">mailto:pdftex@tug.org</a>><br class="">Subject: Re: [pdftex] Caching intermediate compilation results for near-real-time PDF re-renders during editing<br class="">Reply-To: Jim Diamond <<a href="mailto:jdiamond@acadiau.ca" class="">jdiamond@acadiau.ca</a><<a href="mailto:jdiamond@acadiau.ca" class="">mailto:jdiamond@acadiau.ca</a>>><br class=""></blockquote><br class=""><blockquote type="cite" class="">Hi all,<br class=""></blockquote><br class=""><blockquote type="cite" class="">On Thu, Jan 13, 2022 at 16:36 (-0700), Karl Berry wrote:<br class=""></blockquote><br class=""><blockquote type="cite" class="">Hi Jamie - thanks for the interesting message. Thanh could say more, but<br class="">FWIW, here are my reactions (in short, "sounds impossible").<br class=""></blockquote><br class=""><blockquote type="cite" class="">That statement may be true in one very limited sense only.<br class="">In typical real-world documents, anything that occurs anywhere<br class="">can have an effect on any other page of the final PDF.<br class=""></blockquote><br class="">This is true.  But see below.<br class=""><br class=""><blockquote type="cite" class="">I recognize that you are employing hyperbole for effect here.  But<br class="">thinking about the OP's question, I wonder... just how many variables<br class="">are in play after a shipout?<br class=""></blockquote><br class=""><blockquote type="cite" class="">A shipout of a page does *not* mean that what comes afterwards is like<br class="">a whole separate stand-alone document.<br class=""></blockquote><br class=""><blockquote type="cite" class="">To process what comes next still relies on everything that has been setup<br class="">earlier, in terms of how macros will expand, or even what is defined.<br class="">Think about targets of cross-references, citations, hyperlinks, etc.<br class=""></blockquote><br class="">Good point.<br class=""><br class=""><blockquote type="cite" class="">There is no finite set of “variables” whose values can be saved.<br class=""></blockquote><br class="">Surely the collection of registers, macros and other objects<br class="">defining the state of the computation after a shipout is finite.<br class=""><br class=""><blockquote type="cite" class="">You would need a snapshot of a portion of the memory,<br class="">as well as a way to sensibly make use of it.<br class=""></blockquote><br class="">Which gets us back to the OP's question.<br class=""><br class=""><br class=""><blockquote type="cite" class="">Suppose a small change is then made to the latex source, such that the<br class="">compiler determines this change would first affect page k.<br class=""></blockquote><br class=""><blockquote type="cite" class="">I can't imagine how that could be determined without retypesetting the<br class="">entire document.<br class=""></blockquote><br class=""><blockquote type="cite" class="">Agreed.<br class="">Theoretically, it is like the Halting problem for Turing machines.<br class="">While the output is sometimes predictable, in general<br class="">you can only know what a program will do by running it.<br class="">And will it even stop? ... allowing you to examine the complete output<br class="">that it will produce?  In general, NO.<br class=""></blockquote><br class="">I'd argue that solving the halting problem is sufficient but not<br class="">strictly necessary.<br class=""><br class=""><blockquote type="cite" class="">Currently, various editors and document viewers can do lookups and<br class="">reverse lookups so that one can go from a point in the source doc to<br class="">the corresponding line in the compiled document, and vice versa.<br class=""></blockquote><br class=""><blockquote type="cite" class="">There is no way to predict what any given change will affect.<br class=""></blockquote><br class="">Perhaps not,  reports of the features of BaKoMa TeX (which I have<br class="">never used) notwithstanding.<br class=""><br class=""><blockquote type="cite" class="">Is that really true?  ***Except for multi-page paragraphs (bah!),<br class="">tables and similar***, is it possible for a change on page N of a<br class="">document to affect anything before page N-1?<br class=""></blockquote><br class=""><blockquote type="cite" class="">Absolutely.<br class="">That’s what the  .aux  file is typically used for.<br class="">And many packages have their own auxiliary files which write into a file,<br class="">so that extra information is available to possibly affect any page N-k<br class="">(for any value of  k) on the next processing run.<br class=""></blockquote><br class="">It is true that if a change to the source causes the .aux (and<br class="">similar) files to be changed, that any/all of the document might be<br class="">changed the next time it is compiled.<br class=""><br class="">But should we conclude that we can't do anything useful here,<br class="">following the OP's question?  I think we can.  (See below.)<br class=""><br class=""><br class=""><blockquote type="cite" class="">(While I can see change<br class="">to a word in a continued paragraph on page N changing the typesetting<br class="">of that paragraph, and thus possibly how page N-1 should be laid out,<br class="">can page N-2 be affected?)<br class=""></blockquote><br class=""><blockquote type="cite" class="">This kind of thing is simple enough; but still not always.<br class="">If the editing forces something onto the next page,<br class="">the overall effect just can get more and more complicated.<br class=""></blockquote><br class=""><snip><br class=""><br class=""><br class=""><blockquote type="cite" class="">I’ve been a TeX user since the late 1980s.<br class="">In that time the speed of processing has increased considerably – due mostly<br class="">to the speed of the (laptop or desktop) computer doing the processing.<br class=""></blockquote><br class=""><blockquote type="cite" class="">Today we do things that would have been inconceivable back last<br class="">century, precisely because of the greater speed and available<br class="">memory.  This growth is known as Moore’s Law – though not due to me,<br class="">nor any known relative.<br class=""></blockquote><br class=""><snip><br class=""><br class=""><blockquote type="cite" class="">I believe very strongly in the benefits of ultra-fast recompilation<br class=""></blockquote><br class=""><blockquote type="cite" class="">If your jobs are not compiling quickly enough for you, then the best option<br class="">could well be to update your hardware, rather than fiddle with<br class="">the fundamental design of the software.<br class=""></blockquote><br class="">I've been a TeX user since the early 1980's.  Yes, things have sped up<br class="">considerably.  However, to be blunt, I think the suggestion "get<br class="">faster hardware" is a bit on the obnoxious side.  While the OP may<br class="">have more money than God, I have heard that there are lots of people<br class="">on the planet with limited financial means, and some of them may have<br class="">to do their computing with a low-end Raspberry Pi or even something<br class="">less capable.  (And, IMHO, people buying into the "just get<br class="">more/faster hardware" mantra is why we need 8 GB of RAM to look at a<br class="">web page.)<br class=""><br class=""><br class="">Anyway, for what it's worth here is a thought of how compilation could<br class="">be sped up to help someone quickly preview their documents.<br class=""><br class="">There could be two types of "re-compilation":<br class="">(1) A full (re-)compilation, perhaps running pdf(la)tex the usual<br class="">    number of times to ensure all the ToC entries, cross references,<br class="">    and so on are done correctly.<br class="">    These runs (only the last one is really relevant) could save<br class="">    whatever computation state is needed at the end of each page.<br class="">    Further, similar to synctex, it could record a correspondence<br class="">    between source locations and PDF locations.<br class="">(2) A "best-effort", "fast" re-compilation could look at where in the<br class="">    source the first change is since the last "full" (re-)compilation;<br class="">    the editor would have to keep track of this.  Suppose the point of<br class="">    change was found at page N in the most recent full re-compilation.<br class="">    Recognizing that this change *might* have affected previous pages,<br class="">    it could boldly carry on and load the state of the universe at the<br class="">    end of page N-1 and then carry on the compilation from there.<br class=""><br class="">This best-effort compilation would allow the user to quickly see how<br class="">local changes look, at the cost of the user needing to recognize that<br class="">a full re-compilation may change things dramatically.  But in many<br class="">cases, this might be enough to make a user happy.<br class=""><br class="">Jamie: having said all that, I would guess the development effort to<br class="">do this would be considerable for someone who thoroughly knows the<br class="">internals of the TeX engine, and perhaps a tremendous effort for<br class="">someone starting from scratch. I'd further guess that Unless some grad<br class="">student out there finds this to be an interesting project, and his/her<br class="">supervisor thinks it can be turned into a thesis and/or publishable<br class="">material, I'm not sure I see this happening, even though what I<br class="">described may be (far?) less than BaKoMa TeX does anyway; the author<br class="">of that had undoubtedly given it a *lot* more thought than me.<br class=""><br class=""><br class="">Cheers.<br class="">                                Jim<br class=""></blockquote><br class=""></blockquote><br class=""></blockquote></div></div></blockquote></div><br class=""><div class="">
<br class="">Dr Ross Moore<br class="">Department of Mathematics and Statistics <br class="">12 Wally’s Walk, Level 7, Room 734<br class="">Macquarie University, NSW 2109, Australia<br class="">T: +61 2 9850 8955  |  F: +61 2 9850 8114<br class="">M:+61 407 288 255  |  E: <a href="mailto:ross.moore@mq.edu.au" class="">ross.moore@mq.edu.au</a><br class=""><a href="http://www.maths.mq.edu.au" class="">http://www.maths.mq.edu.au</a><span style="font-size: 12px; line-height: normal;"><a href="http://mq.edu.au/" target="_blank" style="font-size: 12px; line-height: normal;" class=""><span><br class="Apple-interchange-newline" style="caret-color: rgb(0, 105, 217); color: rgb(0, 105, 217); font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-family: Arial, sans-serif; orphans: 2; widows: 2;"><span style="caret-color: rgb(0, 105, 217); color: rgb(0, 105, 217); font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-family: Arial, sans-serif; orphans: 2; widows: 2;"><span><span><span><span><span><img apple-inline="yes" id="B761E5BC-36AF-4445-A7A8-ACB318EB2FAC" src="cid:image001.png@01D030BE.D37A46F0" class=""></span><br style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none;" class=""><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class="">CRICOS Provider Number 00002J. Think before you</span><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class=""> </span><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class="">print. </span><br style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none;" class=""><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class="">Please consider the environment before printing this</span><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class=""> </span><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class="">email.</span><br style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none;" class=""><br style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none;" class=""><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class="">This message is intended for the addressee named</span><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class=""> </span><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class="">and may </span><br style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none;" class=""><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class="">contain confidential information. If you are not the</span><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class=""> </span><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class="">intended </span><br style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none;" class=""><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class="">recipient, please delete it and notify the sender. Views</span><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class=""> </span><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class="">expressed </span><br style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none;" class=""><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class="">in this message are those of the individual sender, and</span><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class=""> </span><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class="">are not </span><br style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none;" class=""><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class="">necessarily the views of Macquarie University.</span>
</span></span></span></span></span></span></a></span></div><a href="http://mq.edu.au/" target="_blank" style="font-size: 12px; line-height: normal;" class="">
</a><br class=""></div></body></html>