ページ内でもドキュメント全体でも、図の自動番号付けは doxygen では可能ではないと思います (ここで訂正していただければ幸いです)。ただし、質問に対する簡単な解決策は、アンカーテキストをスペルアウトされた数字、つまり「1」、「2」、「3」などに置き換えることです。または、数字がたくさんある場合は、ローマ数字を使用できます。単純な数字はアンカー リンクとして機能しないようです。
あなたの例は、図のキャプションにテキストを追加すると、
\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
のハイパーリンク。
次に、構成ファイルでエイリアスを定義できます。たとえば、ハイパーリンクされた番号の前に「Figure」というテキストが自動的に追加\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
構成ファイル オプションと組み合わせて簡単に使用できます。
注意すべきことの 1 つは、辞書numbers
を拡張して、3 つ以上の図を含めることができるようにする必要があることです。これも些細なことですが、おそらく簡単に拡張することはできません。任意の数字から適切な単語へのマッピングの解決策が利用可能であるため (このサイトの他の質問を参照)、ここでこれを実装する必要はありません。