我在doxygen中有相当多的锚点,例如
\anchor pic_foo
\image html foo.gif "My Caption"
\anchor pic_bar
\image html bar.gif "My Caption"
每次当我使用\ref
链接其中一个时,我都要弥补
一些不错的描述,因此锚的原始名称不会出现
输出
是否有可能在doxygen中使用编号锚点之类的东西 链接文本将是该锚点的编号?理想的情况下 类似的东西:
\anchor pic_foo
\image html foo.gif "My Caption"
\anchor pic_bar
\image html bar.gif "My Caption"
As Figure \ref pic_foo shows... Figure \ref pic_bar is...
理想情况下应转换为:
As Figure 1 shows... Figure 2 is...
其中数字是链接。我会对各种计数方案(文档全局或页面本地)感到满意。
答案 0 :(得分:4)
我不认为使用doxygen可以在页面内或整个文档中自动显示数字(我很乐意在此更正)。但是,一个简单的解决方案是用拼写的数字替换你的锚文本,即“一”,“两个”,“三个”...等等。或者,如果你有很多数字,你可以使用罗马数字。普通数字似乎不能用作锚链接。
您的示例将成为图标题中的附加文字
\anchor one
\image html foo.gif "Figure one: My Caption"
\anchor two
\image html bar.gif "Figure two: My Caption"
As Figure \ref one shows... Figure \ref two is...
导致
Here Figure one shows... Figure two is...
one
和two
超链接到你的数字。
然后,您可以在配置文件中定义一个别名,例如\fref
,定义为Figure \ref
,它将自动在超链接数字前面加上文字“图”。
这个解决方案可以接受吗?我能想到的唯一其他选择包括后处理doxygen输出,但上述解决方案是迄今为止最简单的。
<强>更新强>
以下Python代码会将锚引用转换为递增计数器:
# Test documentation.
s = r"""
\anchor pic_foo
\image html foo.gif "My Caption"
\anchor pic_bar
\image html bar.gif "My Caption"
As Figure \ref pic_foo shows... Figure \ref pic_bar is...
"""
# Split string into a list of lines.
s = s.split('\n')
# Dictionaries for mapping anchor names to an incrementing counter.
d = {}
numbers = {1: 'one',
2 : 'two',
3 : 'three'}
counter = 1
# Find all anchor links and map to the next counter value.
for line in s:
if r'\anchor' in line:
d[line.split(r'\anchor ')[1]] = numbers[counter]
counter += 1
# Reform original string.
s = '\n'.join(s)
# Replace anchor links with appropriate counter value.
for key, value in d.items():
s = s.replace(key, value)
print s
运行此脚本会产生输出
\anchor one
\image html foo.gif "My Caption"
\anchor two
\image html bar.gif "My Caption"
As Figure \ref one shows... Figure \ref two is...
修改上述脚本以从标准输入读取并写入标准输出是很简单的,因此可以很容易地与INPUT_FILTER
配置文件选项一起使用。
需要注意的一点是,必须扩展字典numbers
以允许包含三个以上的数字。这又是微不足道的,但可能不容易扩展。从任意数字映射到适当的单词的解决方案是可用的(请参阅本网站上的其他问题),所以我没有打算在这里实现它。