ConTeXt: 列番号への相互参照

ConTeXt: 列番号への相互参照

2 列レイアウトでは、参照先の行番号と列番号を返す参照を作成する必要があります。

列カウンターは存在しないようですので、ヘッダーに表示される列番号はページ番号から計算されます。

行番号は \someline (ターゲット用) と \inlinerange (参照用) コマンドで参照できます。ページ番号は \pagereference (ターゲット用) と \at (参照用) コマンドで参照できます。しかし、列を参照するにはどうすればよいでしょうか。

参照先のターゲットの列番号を計算するには (ヘッダーで行った操作に従って)、ページ番号の他に、ターゲットが左の列にあるか右の列にあるかという情報が必要です。この情報はどのように取得できますか?

(ConTeXt リファレンスの 79 ページには、\currentcolumn コマンドを使用する例がありますが、私の環境では常に 1 が返され、この例はうまく機能しません。)

以下に、行とページを参照する 2 列の設定の例を示します。ここでは、代わりに列番号が必要になります。

\setuppapersize[A4][A4]
\setupbodyfont[9pt]

\setupcolumns[
    n=2,
    distance=1cm,
]

\setuplinenumbering[
    step=5,
    method=page,
    location=right,
    align=flushright,
    width=.25cm
]

\setupheadertexts[]
\setupheadertexts
[\ctxlua{context(2 * tex.count.pageno - 1)}]
[\ctxlua{context(2 * tex.count.pageno)}]
[\ctxlua{context(2 * tex.count.pageno - 1)}]
[\ctxlua{context(2 * tex.count.pageno)}]

\starttext

\startcolumns
\startlinenumbering
\dorecurse{2}{\input lorem}\par
REFERENCE 1: Target 1 is in line \inlinerange[TestI], column ? (how to get this?) on page \at[TestI].\par
\dorecurse{2}{\input lorem}\par
\someline[TestI]\pagereference[TestI]TARGET 1.\par
\dorecurse{2}{\input lorem}\par
\stoplinenumbering
\stopcolumns

\stoptext

その結果は次のようになります。

行とページへの参照を含むPDF

関連情報