![ConTeXt: 列番号への相互参照](https://rvso.com/image/399821/ConTeXt%3A%20%E5%88%97%E7%95%AA%E5%8F%B7%E3%81%B8%E3%81%AE%E7%9B%B8%E4%BA%92%E5%8F%82%E7%85%A7.png)
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
その結果は次のようになります。