ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Hans Hagen <j.hagen@xs4all.nl>
To: "mailing list for ConTeXt users" <ntg-context@ntg.nl>,
	"Procházka Lukáš Ing." <LPr@pontex.cz>
Subject: Re: future versions - synctex
Date: Tue, 21 Aug 2018 10:33:09 +0200	[thread overview]
Message-ID: <589d6f22-32bf-9e4b-24c3-73fccb9bb024@xs4all.nl> (raw)
In-Reply-To: <op.zn267rwj3h68c7@lpr>

On 8/21/2018 10:00 AM, Procházka Lukáš Ing. wrote:

> When building a document (or more precisely: documentation which 
> consists of many documents), I'm widely referring to other files via 
> \input, \component etc., I'm widely using \defs, \defines and \buffers 
> defined in separate files (as these defs are used at more places - so 
> let them being defined in one source file) and I'm often generating 
> texts by Lua (e.g. tables - being read and parsed from a text in a 
> \start/\stopluacode block or e.g. Excel named range read via LuaXls or 
> from a .xml - and typeset by a Lua function, which allows simply change 
> all \NC into \VL in a particular place).
> 
> The lengthy process is to EDIT (almost) finished docs/documentation. And 
> at this place, it would be very handy if synctex worked. So I vote for a 
> better click-in-PDF-go-to-source support.

in principle you can push  / pop input states but for such a variety of 
input you have to do that yourself in the styles ... and it will quickly 
become a performance issue then

the core will not get that kind of hard coded synctex flip-flopping

fwiw, the xml sub mechanism does support that kind of functionality as 
option (only because a collegue uses xml with deeply nested inclusions 
spread all over a direcory structure)

> I don't know anything deep about how sync is provided. But my layman 
> point of view would be that whenever a character (or a "box") is to be 
> placed on the page (or into output stream), ConTeXt should know which is 
> the "deepest - currently read" source file, the line, moreover the 
> column - and that position could result into "pick-and-go" position.

only partly ... you don't know where a macro comes from (or what lua 
code generated something) and it makes no sense either to go bakc to 
some macro ... in fact, synctex support in context blocks going to 
styles because those who edit files are not supposed to change styles

things like headers and footers come from styles, not user input

and even much structure stuff comes from elsewhere (like titles of 
sections: they go via lua so there we already need to cheat input 
registration)

> In this approach - "boxes" generated by Lua-in-ConTeXt should "jump" on 
> \startluacode, \ctxlua, \cldcommand statement...

won't happen ... way too much overhead and it would polute the source 
too (i follow the principle that any new mechanism that gets added will 
not slow down compilation in a measurable way)

>> Anyway, i can cheat at the tex/lua end if needed and support e.g. titles
>> but i'm not going to pollute the code with every place where we come
>> from lua (also because in most cases there is no relation with the
>> source anyway then). Also, I will not add code that can have an impact
>> on performance when synctex is turned off.
> 
> Synctex should be turned on/off before source files are compiled into 
> PDF - via command line option "--synctex" or 
> \enabledirectives[system.synctex] before \starttext 
> (\enabledirectives[system.synctex] after \starttext (\startcomponent) 
> should be ignored?) - that could cause hooking picked Lua functions (or 
> taking their "synctex-on" alternatives) - so normally (with synctex off) 
> there wouldn't be any performance impact; worse performance would come 
> only with synctex on - but it's user's choice.
> 
>> But for a subset of
>> constructs that are relatively short in usage it is doable (but doesn't
>> really qualify as fun -- also, i don't use it myself).
> 
> Anyway, a better support for "pick-in-PDF-and-go-to-source" (synctex), 
> namely when user "tunes" the docs to their final stage, would be great.
I think that the current approach to hard code synctex libraries into a 
viewer is a limitation (instead an editor should call an external 
program with the page and coordinates so that an external program can 
then look at the synctex file and decide where to go in the editor. That 
way more sophisticated support is possible than the now hard coded 
heuristics. Keep in mind that these heuristics are tuned for latex and 
from context we generate the real minimal amount of synctex code that 
works without clashing with these heuristics. If that were not that case 
is would be unuseable.

Anyhow, there's only so much i can do about it (i'm not going to patch 
viewers). Currently synctex is mostly working for decent structured 
source (can be multiple files).

Hans

-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
        tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

  reply	other threads:[~2018-08-21  8:33 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-24 18:43 future versions Hans Hagen
2018-07-24 19:07 ` Hans van der Meer
2018-07-24 20:35   ` Pablo Rodriguez
2018-07-24 20:30 ` Pablo Rodriguez
2018-07-24 21:02 ` Idris Samawi Hamid ادريس سماوي حامد
2018-07-24 23:21   ` Hans Hagen
2018-08-21  8:00     ` future versions - synctex Procházka Lukáš Ing.
2018-08-21  8:33       ` Hans Hagen [this message]
2018-08-21 13:04         ` Aditya Mahajan
2018-08-21 13:19           ` Hans Hagen
2018-08-21 14:46             ` Aditya Mahajan
2018-08-21 15:17               ` Hans Hagen
2018-07-25  1:29 ` future versions Rik Kabel
2018-07-25  8:19   ` Henning Hraban Ramm
2018-07-25 13:50     ` Rik Kabel
2018-07-25 16:06       ` Hans Hagen
2018-07-25 16:18       ` Alan Braslau
2018-07-25 17:01         ` Hans Hagen
2018-07-25 11:36   ` Hans Hagen
2018-07-25  7:45 ` Robert Zydenbos
2018-07-25 10:03   ` Richard Mahoney | Indica et Buddhica
2018-07-25 12:50     ` Hans Hagen
2018-07-25 13:12       ` Weber, Matthias
2018-07-25 17:50         ` Hans Hagen
2018-07-25 20:22           ` Henning Hraban Ramm
2018-07-25 11:38   ` Hans Hagen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=589d6f22-32bf-9e4b-24c3-73fccb9bb024@xs4all.nl \
    --to=j.hagen@xs4all.nl \
    --cc=LPr@pontex.cz \
    --cc=ntg-context@ntg.nl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).