Racket Scribble文档:两个简单文件之间的交叉引用

Racket Scribble文档:两个简单文件之间的交叉引用,racket,cross-reference,scribble,Racket,Cross Reference,Scribble,(Racket documentation tool)说“一起呈现的[…]文档中的交叉引用总是可以解决的”,但是下面的文件a.scrbl没有引用文件b.scrbl a.scrbl: #lang scribble/base @secref["sectag" #:doc "b.scrbl"] #lang scribble/base @section[#:tag "sectag"]{A section} b.scrbl: #lang scribble/base @secref["sectag" #

(Racket documentation tool)说“一起呈现的[…]文档中的交叉引用总是可以解决的”,但是下面的文件
a.scrbl
没有引用文件
b.scrbl

a.scrbl

#lang scribble/base
@secref["sectag" #:doc "b.scrbl"]
#lang scribble/base
@section[#:tag "sectag"]{A section}
b.scrbl

#lang scribble/base
@secref["sectag" #:doc "b.scrbl"]
#lang scribble/base
@section[#:tag "sectag"]{A section}
当使用scribble--html a.scrbl b.scrbl编译它们时,我得到:

Warning: some cross references may be broken due to undefined tags:
 (part ("/path/to/b.scrbl" "sectag"))

如何从
a.scrbl
中引用
b.scrbl
中的节?

如果删除
#:doc
参数,似乎可以正常工作

#lang scribble/base
@secref["sectag"]
如果在两个文档中使用相同的标记,则可能会产生歧义,因此可能需要更改标记名或使用自己的标记前缀


我不知道为什么
#:doc
的相对路径不能像您所期望的那样工作。可能它只用于引用集合安装的文档。

我发现scribble有一个标记系统,在该系统中,整个文档的标记前缀可以用
@title[#:标记前缀…]{…}
指定。我想这就是你所说的“…或者使用你自己的标记前缀”。