便利に使わせていただいておりましたが,右段と出力してほしい状況で左段と表示されるケースがあり,ChatGPT5.2に相談したところ解決したと思いますので,シェアします.
(修正内容(に限らず本スレッドで議論されている内容全般)を理解しておりませんので,不適切な修正となっているかもしれません)
修正前
\makeatletter
\def\WriteLineNo{%
\ifx\theLineNumber\thePagewiseLineNumber
\testNumberedPage
\fi
\unvbox\@cclv
\expandafter \@LN@xnext \@LN@labellist \@@
\@LN@label \@LN@labellist
\protected@write\@auxout{}{\string\newlabel{\@LN@label}%
{{\the\c@linenumber}{\thepage}\@LN@ExtraLabelItems}}%
}
\def\WriteColumnSideInfo#1{%
\if@firstcolumn \def\left@right{左}%
\else \def\left@right{右}%
\fi%
% \immediate\write\@auxout{\string\newlabel{columnside:#1}{{\left@right}{\left@right}}}%
\protected@write\@auxout{}{\string\newlabel{columnside:#1}{{\left@right}{\left@right}}}%
}
\newcommand{\LINELABEL}[1]{\linelabel{#1}\WriteColumnSideInfo{#1}}
\newcommand{\LABEL} [1]{ \label{#1}\WriteColumnSideInfo{#1}}
\makeatother
修正後
\makeatletter
\def\WriteLineNo{%
\ifx\theLineNumber\thePagewiseLineNumber
\testNumberedPage
\fi
\unvbox\@cclv
\expandafter \@LN@xnext \@LN@labellist \@@
\@LN@label \@LN@labellist
% 左右段の判定は,ここ(出力ルーチン内)でのみ信頼できる
\if@firstcolumn \def\left@right{左}%
\else \def\left@right{右}%
\fi
\immediate\write\@auxout{%
\string\newlabel{columnside:\@LN@label}{{\left@right}{\left@right}}%
}%
\immediate\write\@auxout{%
\string\newlabel{\@LN@label}{{\the\c@linenumber}{\thepage}\@LN@ExtraLabelItems}%
}%
}
\newcommand{\LINELABEL}[1]{\linelabel{#1}}
\newcommand{\LABEL}[1]{\label{#1}}
\makeatother
修正前後のコードを含むtex(修正後をコメントアウト)ファイル,これをコンパイルしたときのaux, pdfを添付しています.