Hello Pablo, On Mon Nov 13, 2023 at 5:25 PM CET, Pablo Rodriguez via ntg-context wrote:
Dear list,
imagine I have a PDF document (named "whatever.pdf") such as the one generated from this source:
\setupinteraction[state=start, focus=standard] \starttext \dorecurse{5} {\chapter[\recurselevel]{Chapter} \section[sec-\recurselevel]{Section}} \stoptext
This source only samples PDF documents not generated with ConTeXt. This means that no .tuc file may be available and named destinations may contain only digits.
Then I need to access some named destinations from a document such as:
\setupinteraction[state=start, focus=standard] \starttext \dorecurse{5} {\goto{Chapter \recurselevel}[whatever.pdf::\recurselevel], \goto{section \recurselevel}[whatever.pdf::sec-\recurselevel]\par} \stoptext
Sorry, but after reading again lpdf-ano.mkxl I’m not sure whether I can get named destinations (such as "/D (4)" or "/D (sec-3)") and how I could get them.
With the previous code, the only destination reads in the PDF source:
5 0 obj << /D [ 0 /Fit ] /F (whatever.pdf) /S /GoToR
endobj
It seems that the default mode for outer (external file) references is the "auto" mode. This one seems to load the whatever.pdf file, check the named destinations and decide based on that. I am not exactly sure why your example fails, because it seems desirable that the auto mode detects the named destination and refers to it instead, or at least refers to the page number the destination is actually at. In any case, you can try the "name" mode, which forces the use of destination names (i.e. "/D (...)"): % both inner and outer references in name mode \setupinteraction[page=name] % inner default (auto mode) and outer name mode \setupinteraction[page={auto,name}] Unfortunately, the second one doesn't work due to a typo in strc-ref.lmt: --- a/tex/context/base/mkxl/strc-ref.lmt +++ b/tex/context/base/mkxl/strc-ref.lmt end if toboolean(outer) or outer == v_page or outer == v_yes then outermethod = v_page - elseif inner == v_name then + elseif outer == v_name then outermethod = v_name else outermethod = v_auto Other thing you can try Pablo, is to not actually have the destination file (whatever.pdf) present when running context. This works, because if ConTeXt can't find the file, the auto mode fails and you get named destinations unless in page mode (`page=page`). Whether something better can be done (and in a backwards compatible way) at the ConTeXt side I am not sure, I didn't go that deep. Michal PS: Sorry if this message finds its way onto the list twice, I got blocked by automoderation by initially also including the full strc-ref.lmt file, which is too big.