TeX Live 2025 の e-upTeX エンジンの \uppercase プリミティブで和文文字が壊れているような気がします。
> euptex "\uppercase{\immediate\write16{吾輩は猫である}}\bye"
[TeX Live 2024]
---
This is e-upTeX, Version 3.141592653-p4.1.1-u1.30-230214-2.6 (utf8.uptex) (TeX Live 2024) (preloaded format=euptex)
restricted \write18 enabled.
entering extended mode
吾輩は猫である
No pages of output.
Transcript written on texput.log.
---
[TeX Live 2025]
---
This is e-upTeX, Version 3.141592653-p4.1.2-u2.00-250202-2.6 (utf8.uptex) (TeX Live 2025) (preloaded format=euptex)
restricted \write18 enabled.
entering extended mode
Runaway text?
Ϩ\BAD.Ϩ\BAD.ϨϨϨ}
! Forbidden control sequence found while scanning text of \write.
<inserted text>
}
<to be read again>
\bye
<*> ...mediate\write16{吾輩は猫である}}\bye
?
---
はやてさんがおっしゃっているとおりですね。
これはpTeXだけのことでないですね。
latex3/latex2e: Case conversions (\uppercase etc) are completely broken in UTF-8 #103
https://github.com/latex3/latex2e/issues/103
一般に、LaTeXではTeX primitiveの\uppercaseでなく、\MakeUppercaseを使いますね。
----------<8----------<8----------
%#!ptex2pdf -l d3972
\documentclass{jarticle}
\makeatletter
\def\mydraft{}
\def\ps@mypages{%
\let\ps@jpl@in\ps@mypages
\let\@mkboth=\@gobbletwo
\def\@oddhead{\underline{\hbox to \textwidth{\rightmark \hfil\thepage}}}%
\def\sectionmark##1{\markright{%
\ifnum\c@secnumdepth>\z@
\thesection.\space
\fi
\MakeUppercase{##1}%\uppercase{##1}%
}}%
\def\@evenhead{}%
\def\@oddfoot{\mydraft\hfil}%
\def\@evenfoot{}%
}
\makeatother
\begin{document}
\pagestyle{mypages}\setcounter{page}{2}
\section{漢字}
\section{abcdefg}
\end{document}
----------<8----------<8----------
これはpTeXだけのことでないですね。
latex3/latex2e: Case conversions (\uppercase etc) are completely broken in UTF-8 #103
https://github.com/latex3/latex2e/issues/103
一般に、LaTeXではTeX primitiveの\uppercaseでなく、\MakeUppercaseを使いますね。
----------<8----------<8----------
%#!ptex2pdf -l d3972
\documentclass{jarticle}
\makeatletter
\def\mydraft{}
\def\ps@mypages{%
\let\ps@jpl@in\ps@mypages
\let\@mkboth=\@gobbletwo
\def\@oddhead{\underline{\hbox to \textwidth{\rightmark \hfil\thepage}}}%
\def\sectionmark##1{\markright{%
\ifnum\c@secnumdepth>\z@
\thesection.\space
\fi
\MakeUppercase{##1}%\uppercase{##1}%
}}%
\def\@evenhead{}%
\def\@oddfoot{\mydraft\hfil}%
\def\@evenfoot{}%
}
\makeatother
\begin{document}
\pagestyle{mypages}\setcounter{page}{2}
\section{漢字}
\section{abcdefg}
\end{document}
----------<8----------<8----------