最近のplatexと自前で定義したページスタイル

Re: 最近のplatexと自前で定義したページスタイル

- はやて (h20y6m) の投稿
返信数: 1
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

?
---
はやて (h20y6m) への返信

Re: 最近のplatexと自前で定義したページスタイル

- Yamamoto Munehiro "munepi" の投稿
はやてさんがおっしゃっているとおりですね。

これは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----------