Hi all,

I have a couple of documents with some element IDs overlapping. For example, 
both 
have "ch-overview" ID for the first chapter. I tried using 
$prefer.internal.olink, but it 
seems to misbehave on such links: it links to internal ID even if @targetdoc 
points 
to another document. For example:

<book id="doc1">
  ...
  <chapter id="ch-overview">
     ...
     <olink targetdoc="doc2" targetptr="ch-overview"/>

links to itself, even though the document ID is clearly different. The reason 
is that 
select.olink.key.in.lang template has CaseB/CaseF variables that ignore 
@targetdoc 
from <olink/> and use $current.docid instead, and cases B/F have higher 
precedence than cases A/E (that use olink/@targetdoc).

So, what is the purpose of $prefer.internal.olink, given that:

1. If a check for $current.docid = $targetdoc.att is added to cases B/F (to 
respect 
the document ID on the pointer), they become equivalent to cases A/E.

2. Even with $prefer.internal.olink = 0, links within the current document are 
converted to internal links by olink.as.linkend template in fo/xref.xsl (in the 
PDF 
output). I haven't experimented with HTML output - but I am not sure what would 
be the notion of "external" vs. "internal" link in, say, chunked HTML document.

Is $prefer.internal.olink some vestige of the past that should've been removed, 
or 
am I missing some value in it?

Regards,
Alexey.

Reply via email to