6

私は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...

番号はリンクです。あらゆる種類のカウント方式 (ドキュメント グローバルまたはページ ローカル) に満足しています。

4

1 に答える 1

4

ページ内でもドキュメント全体でも、図の自動番号付けは 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 つ以上の図を含めることができるようにする必要があることです。これも些細なことですが、おそらく簡単に拡張することはできません。任意の数字から適切な単語へのマッピングの解決策が利用可能であるため (このサイトの他の質問を参照)、ここでこれを実装する必要はありません。

于 2012-08-07T17:02:53.637 に答える