原因はhyperrefによってtexからdviに埋め込まれたLaTeX内部のページカウンタが重複していること。これを回避するには明示的にページカウンタを調節することによってページカウンタの重複を回避すればよい。
問題
\documentclass[dvipdfmx,uplatex]{jsarticle}
\usepackage[dvipdfmx]{hyperref}
\title{Title}
\author{Author Name}
\date{\today}
\begin{document}
\pagestyle{empty} %ページ番号を非表示
\maketitle
\tableofcontents
\clearpage
\setcounter{page}{1}
\pagestyle{plain} %ここからページ番号を表示
\section{First Section}
\clearpage
\section{Second Section}
\clearpage
\section{Third Section}
\clearpage
\end{document}
以上をuplatex+dvipdfmxによってPDF化するとuplatexは問題なく終了するがdvipdfmxの実行時に次のメッセージが出力される。
[1][2
dvipdfmx:warning: Object @page.1 already defined.
][3][4]
メッセージの内容から推測できるように、これはhyperrefによってtexからdviに埋め込まれたLaTeX内部のページカウンタが重複していることが原因だ。この例のように重複している箇所のページ番号を非表示にしていると一見して重複していることがわからないが、1ページ目の\pagestyle{empty}
をコメントアウトしてページ番号を表示してみると重複していることがわかるだろう。エラーではなく警告なので出力に問題は無さそうだがうるさいのでこれを回避する。
回避策
最初のページで\setcounter{page}{1001}
を指定する。普通は目次や表紙にページ番号が表示されることはないから数字は大きければ何でもよい。100ページに満たない文書であれば101でもよいだろう。原理がわかれば難しいことは無く、とりあえず1001としておけば普通にページ番号を振っている文書で重複することは無いだろう。
\documentclass[dvipdfmx,uplatex]{jsarticle}
\usepackage[dvipdfmx]{hyperref}
\title{Title}
\author{Author Name}
\date{\today}
\begin{document}
\setcounter{page}{1001}
\pagestyle{empty}
\maketitle
\tableofcontents
\clearpage
\setcounter{page}{1}
\pagestyle{plain}
\section{First Section}
\clearpage
\section{Second Section}
\clearpage
\section{Third Section}
\clearpage
\end{document}
以上をuplatex+dvipdfmxによって同じようにPDF化すると次のように問題なく終了する。
[1][2][3][4]
普通は目次や表紙にページ番号は表示しないが、1ページ目の\pagestyle{empty}
をコメントアウトして全てのページのページ番号を表示してみると重複が無くなっていることが確かめられるだろう。
dvipdfmx:warning: Object @page.1 already defined.
dvipdfmx:warning: Object @page.2 already defined.
dvipdfmx:warning: Object @page.3 already defined.
などと何回も表示される場合もある。この場合は4ページ目で\setcounter{page}{1}
をしている可能性が高い。