From 0a5f59a9aa25b3de7e9659b39ad201aaf7eb5a67 Mon Sep 17 00:00:00 2001
From: Hans Hagen <pragma@wxs.nl>
Date: Fri, 27 Sep 2019 20:24:34 +0200
Subject: 2019-09-27 18:10:00

---
 .../context/2017/context-2017-synctex.tex          | 102 +++++++++++++++++++++
 1 file changed, 102 insertions(+)
 create mode 100644 doc/context/presentations/context/2017/context-2017-synctex.tex

(limited to 'doc/context/presentations/context/2017/context-2017-synctex.tex')

diff --git a/doc/context/presentations/context/2017/context-2017-synctex.tex b/doc/context/presentations/context/2017/context-2017-synctex.tex
new file mode 100644
index 000000000..0ca6dfd0e
--- /dev/null
+++ b/doc/context/presentations/context/2017/context-2017-synctex.tex
@@ -0,0 +1,102 @@
+% \setupsynctex
+%   [state=start]
+
+% \enabletrackers
+%   [system.synctex.visualize]
+
+\usemodule[present-lines]
+
+\definecolor[maincolor][r=.6]
+
+\startdocument[title=\SYNCTEX,subtitle={\CONTEXT\ 2017 Maibach}]
+
+\startchapter[title=What is \SYNCTEX]
+
+\startitemize
+    \startitem it is a mechanism for going back from viewer to editor \stopitem
+    \startitem it uses an extra (zipped) output file \stopitem
+    \startitem it adds an overhead of 5 to 15 percent runtime \stopitem
+    \startitem it is designed with a specific macro package in mind \stopitem
+    \startitem the rather generic approach works okay for simple document layouts \stopitem
+    \startitem but it often fails for projects that use multiple files\stopitem
+    \startitem and that moves information around like \XML\ encoded files \stopitem
+\stopitemize
+
+\startchapter[title=Disclaimer]
+
+\startitemize
+    \startitem till recently it was supported in \CONTEXT\ as-it-was  \stopitem
+    \startitem there were no compliants, so it must have worked ok for most users \stopitem
+    \startitem we never used it ourselves because of mentioned reasons \stopitem
+    \startitem we only wanted to support it when it works ok in projects \stopitem
+    \startitem (think of thousands of \XML\ with deeply nested inclusions in one document) \stopitem
+    \startitem but what we support now is purely based on personal experiences \stopitem
+    \startitem we don't use it ourselves so feedback is welcome \stopitem
+\stopitemize
+
+\stopchapter
+
+\startchapter[title=What we do]
+
+\startitemize
+    \startitem the normal \SYNCTEX\ mechanism is disabled \stopitem
+    \startitem when told so, \CONTEXT\ will kick in its own code \stopitem
+    \startitem this is done by using \LUA\ code to set the right information \stopitem
+    \startitem only source files that make sense are dealt with \stopitem
+    \startitem this protects the styles from unwanted changes \stopitem
+    \startitem within reasonable bounds \XML\ is supported \stopitem
+    \startitem this also includes nested documents \stopitem
+\stopitemize
+
+\stopchapter
+
+\startchapter[title=How it works]
+
+\startitemize
+    \startitem we only mark text and don't bother about the rest \stopitem
+    \startitem we collapse information about whole stretches \stopitem
+    \startitem the extra file is therefore not that large \stopitem
+    \startitem so we can do without compression \stopitem
+    \startitem some care is needed to avoid interference with the editors parser \stopitem
+    \startitem (read: we need to get rid of the rather complex and heuristics) \stopitem
+    \startitem (read: it would be nice to have a simple robust parser option) \stopitem
+    \startitem there are flaws but I will look into them when motivated \stopitem
+\stopitemize
+
+\stopchapter
+
+\startchapter[title=What the user gets]
+
+\startitemize
+    \startitem a way to turn it on:
+        \starttyping
+            \setupsynctex[state=start]
+        \stoptyping
+    \stopitem
+    \startitem control over methods:
+        \starttyping
+            \setupsynctex[method=max]
+        \stoptyping
+    \stopitem
+    \startitem visual tracing:
+        \starttyping
+            \enabletrackers[system.synctex.visualize]
+        \stoptyping
+    \stopitem
+    \startitem some low level commands:
+        \starttyping
+            \synctexblockfilename{filename}
+            \synctexsetfilename  {filename}
+            \synctexresetfilename
+            \synctexpause
+            \synctexresume
+        \stoptyping
+    \stopitem
+\stopitemize
+
+% \enabletrackers[system.synctex.xml]
+% \enabledirectives[system.synctex.details]
+
+\stopchapter
+
+\stopdocument
-- 
cgit v1.2.3

