From: Jim <zlists+context@jdvb.ca>
To: mailing list for ConTeXt users <ntg-context@ntg.nl>
Subject: [NTG-context] Re: context not producing synctex output that my synctex program can use
Date: Wed, 15 Nov 2023 10:32:00 -0400 [thread overview]
Message-ID: <ZVTWYCZ3BWtW5dZd@x360.localdomain> (raw)
In-Reply-To: <db6587cf-73dd-425a-954c-0228cbde2a91@xs4all.nl> <5d94a1ce-c683-411f-af33-375ac77464b2@fiee.net>
Henning and Hans,
thanks for the replies. I have two follow-up questions below, as well as
some other comments which other synctex users might find useful.
On Sun, Nov 12, 2023 at 10:26 (+0100), Henning Hraban Ramm wrote:
> Am 12.11.23 um 00:59 schrieb Jim:
>> Hi,
>> I've read the wiki, looked at workflows-synctex.tex, searched the web, and
>> scratched my head, all to no avail. So here I am, cap in hand...
>> When I run context, I get a .synctex file which has some information in it,
>> but I can't find any invocation of synctex to return anything useful. Nor
>> does the okular example in the wiki (https://wiki.contextgarden.net/SyncTeX)
>> work for me. Ocular starts, but always on the first page, regardless of
>> what line number I give it.
>> On the other hand, pdftex creates a .synctex file which my copy of synctex
>> find useful.
>> I am using the synctex from the current version of texlive:
>> This is SyncTeX command line utility, version 1.5
>> Can anyone either
>> (a) enlighten me on what I am doing wrong; or
>> (b) definitively confirm that context is not currently playing nicely with
>> synctex (the wiki notwithstanding) and I should give up this quest for
>> now.
> ConTeXt doesn’t work with the synctex binary, but with
> mtxrun --script synctex
Thanks for that pointer.
Q1: Should that be in the wiki (https://wiki.contextgarden.net/SyncTeX)
somewhere?
When I try that out, for example with
mtxrun --script synctex --edit --name=a.tex --line=222 a.tex
I am rewarded with
sandbox | variable 'linenumber' has no checker
(I tried various variations on that line I won't bore you with, but I keep
getting that error message.)
I also tried
mtxrun --script synctex --goto --page=4 --x=100 --y=100 a.synctex
and that silently returns without apparently doing anything. (While I
don't have a 'scite' editor, I created a program called 'scite' that pops a
message up on the screen if it is called.)
Similar to --edit,
mtxrun --script synctex --goto --page=19 --x=400 --y=180 --tolerance=99 --editor=scite a.synctex
complains
sandbox | variable 'tolerance' has no checker
Although I don't know lua, the code is easy enough to read, but a short
dive in to mtx-synctex.lua did not enlighten me.
Q2: any enlightening comments on why I am getting these complaints.
In any case, --find and --report (appear to) give meaningful results, so I
can work with those.
> Unfortunately, it’s not a drop-in replacement, so it doesn’t work with most
> editors. (I was thinking about a translating wrapper script, but didn’t do
> anything yet.)
So much code to write, so little time ... :-)
My immediate concern is forward search (i.e., editor tells viewer which
page to display) and that one should be easy for me to create a wrapper.
(I use emacs + auctex, which calls the synctex program, so writing my own
synctex wrapper looks easy. Hopefully I won't regret using the word "easy"
later.)
> AFAIK TeXshop (MacOS) is the only TeX editor that supports ConTeXt’s
> workflow.
I've been thinking of patching some of evince's more annoying features,
if I do, maybe I should look into making it work with context.
> ConTeXt’s synctex format is much simpler than the “standard” LaTeX one and
> should be at least as good, but alas it needs support from the editors.
Indeed!
On Sun, Nov 12, 2023 at 12:00 (+0100), Hans Hagen wrote:
> On 11/12/2023 10:26 AM, Henning Hraban Ramm wrote:
>> Am 12.11.23 um 00:59 schrieb Jim:
>>> Hi,
>>> <second copy of my text elided>
>> ConTeXt doesn’t work with the synctex binary, but with
>> mtxrun --script synctex
> afaik there is no binary ... there is a library that has to be compiled into
> a pdf viewer that intercept some 'goto the text file' command and then
> launches an editor (afik the library has some heuristics build in wrt boxes
> and nesting and so); at the tex end there is also a library that kicks in
> addiional code for nodes and the backend (which is why enabling synctex will
> have an impact on runtime)
> wrt the synctex file, that one is generated by context (so we don't use the
> synctex code in luatex and as luametatex has no backend there it's even
> completely absent ... context generates the file itself which is also a bit
> more efficient)
>> Unfortunately, it’s not a drop-in replacement, so it doesn’t work with
>> most editors. (I was thinking about a translating wrapper script, but
>> didn’t do anything yet.)
>> AFAIK TeXshop (MacOS) is the only TeX editor that supports ConTeXt’s
>> workflow.
> indeed texshop uses the approach that avoids the library and just calls
> mtxrun to figure out the file/line that relates to the position; this is
> more reliable because there is no need to recompile a viewer when synctex
> updates
I just looked at the code of evince, and there is a fair bit of code there
to parse synctex files. The virtue of just calling mtxrun is clear to me.
> you can run
> mtxrun --script synctex
> on the synctex file and check what areas are there
>> ConTeXt’s synctex format is much simpler than the “standard” LaTeX one
>> and should be at least as good, but alas it needs support from the
>> editors.
> simpler in the sense that we only output what is needed for the
> synchronization to work reliable; fwiw, my collegue already for many years
> uses context with synctex enabled with sumatra pdf in pretty complex setups:
> a mix of tex and xml files with deeply nested inputs and it works ok (so we
> also get to the right spot in an (included) xml file)
> for synctex to work one has to call context with --synctex or put a
> directive on the topline of the file. Otherwise you won't get the right
> jobname. Of course it then still depends on the pdf viewer + lib used if
> things work out as expected.
> there isn't much we can do about the viewer part unless tit is not locked
> into the binary but as flexible like the texshop viewer is
Thanks for your comments as well. It seems evince has a compile-time
option to either build its own internal synctex or to use an external one.
With the latter and a wrapper script (or maybe even an option to evince to
use some alternate program to get synctex info) it might not be too hard
(*cough*) to get evince to play nicely with context.
Cheers.
Jim
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl
webpage : https://www.pragma-ade.nl / https://context.aanhet.net (mirror)
archive : https://github.com/contextgarden/context
wiki : https://wiki.contextgarden.net
___________________________________________________________________________________
prev parent reply other threads:[~2023-11-15 15:01 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-11 23:59 [NTG-context] " Jim
2023-11-12 9:26 ` [NTG-context] " Henning Hraban Ramm
2023-11-12 11:00 ` Hans Hagen
2023-11-15 14:32 ` Jim [this message]
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=ZVTWYCZ3BWtW5dZd@x360.localdomain \
--to=zlists+context@jdvb.ca \
--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).