upLaTeX+upBiBTeXでjecon.bstの数字→漢数字変換オプションを使用すると! Bad character codeエラーが出てしまう

upLaTeX+upBiBTeXでjecon.bstの数字→漢数字変換オプションを使用すると! Bad character codeエラーが出てしまう

- S N の投稿
返信数: 8
こんにちは。
Windows10 proにてTeX Live2022(32bit版)を使用しています。
natbib+jecon.bibを使用して引用スタイルを定義しているのですが、標題のとおりの問題に直面しています。

jecon.bibのオプションというのは、以下のようなものです。

FUNCTION {bst.kansuji.jp}
{ #1 }

bst.kansuji.jpの関数を0以外にすると、数字が漢数字になるというものです。
関数を0以外にした後、このファイルを以下のようなtest.texファイルと同じディレクトリに入れ、upLaTeXとupBiBTeXでコンパイルしました。

\documentclass[uplatex]{jlreq}
\usepackage{natbib}
\begin{document}
情に棹させば流される。智に働けば角が立つ。どこへ越しても住みにくいと悟った時、詩が生れて、画が出来る。とかくに人の世は住みにくい。意地を通せば窮屈だ。\cite{oyama99:_mark_stru}
\bibliographystyle{jecon}
\bibliography{ref}
\end{document}

$uplatex test
$upbibtex test
$uplatex test
$uplatex test
最後のコマンドを実行時、! Bad character code (19968).というエラーが出てしまいます。
19968とはShift-JISで「一」であるかと思いますが、他の漢数字でもそれぞれの文字に応じたエラーが出ます。

なお、当該のオプションを使用しない場合は問題なく、また、jecon.bstの奨励はLuaLaTeX+upBiBTeXということで試してみましたが、こちらも問題なくコンパイルできます。

対処法等ご教示いただけると幸いです。
調べが足りず簡単なことを見落としているようでしたら、恐縮ですがお導きください。
S N への返信

Re: upLaTeX+upBiBTeXでjecon.bstの数字→漢数字変換オプションを使用すると! Bad character codeエラーが出てしまう

- 和田 勇 の投稿
誰も答えないので ...

先ほど、再現はしたのですが、
どこで発生するかフィールド毎に指標となる数字を付与して調べていたら
通るようになってしまった。 :-(
ですので ref.bib を開示していただけませんか?

なお、現在の検証は以下のように整備して行っています。

◆ jecon.bst の入手と変更

   git clone https://github.com/ShiroTakeda/jecon-bst.git
  
 上記の jecon-bst/jecon.bst をカレントにコピーし変更

   --- jecon-bst/jecon.bst 2023-03-13 10:30:12.665463877 +0900
    +++ jecon.bst 2023-03-13 11:20:32.516274215 +0900
   @@ -264,8 +264,7 @@
   %
    % 0 以外なら漢数字に変換。
    FUNCTION {bst.kansuji.jp}
   -{ #0 }   % 変換しない。(default)
   -% { #1 }    % 漢数字に変換する。
    +{ #1 }    % 漢数字に変換する。

    % bst.kansuji.jp が非ゼロのときに,pages でのページ数とページ数を結ぶ線の定義
    % を指定する.pages = 100-200 と指定しているときに,"-" に置き換わる線の定義.

◆現在検証中の ref.bib

        @article{oyama99:_mark_stru,
            author = {author は変換しない  11 おやま},
            language = {japanese},
            journal = { journal は変換しない 22 論文番号},
            pages = {pages OK 44--44},
            title = {title は変換しない 55 と について},
            volume = {volumes OK 66},
            year = {year OK 77}
        }
和田 勇 への返信

Re: upLaTeX+upBiBTeXでjecon.bstの数字→漢数字変換オプションを使用すると! Bad character codeエラーが出てしまう

- S N の投稿
和田様、早速の検証まことにありがとうございます。
使用していたref.bibは

@InCollection{oyama99:_mark_stru,
author
= {大山, 道広},
title
= {市場構造・経済厚生・国際貿易},
editor
= {岡田, 章 and 神谷, 和也 and 柴田, 弘文 and 伴, 金美},
booktitle
= {現代経済学の潮流 1999},
pages
= {3-34},
publisher
= {東洋経済新報社},
year
= 1999,
langid
= {japanese},
yomi
= {おおやま, みちひろ}
}

です。jecon-example.pdfに載っていたものです。

ut様、検証ありがとうございます。なるほど処理がバッティングしてしまっていますか……。
LuaLaTeXを使いたいところですが、つかっているいくつかのパッケージファイルがLuaLaTeXでは使えないようで、できればupLaTeXでコンパイルしたいところです。
内実を言いますと、人文系の論文を書いていまして、日本語文献と縦書きに対応かつ人文系の流儀に私の実力で改変して使えるものというと、このjecon.bstしか選択肢が見つけられなかったというわけです。
jecon.bstの奨励もLuaLaTeXですし、前者の問題が解決できれば問題はなくなるので、ご相談申し上げながら並行して自分で色々とやってみてはいるところです。
S N への返信

Re: upLaTeX+upBiBTeXでjecon.bstの数字→漢数字変換オプションを使用すると! Bad character codeエラーが出てしまう

- 和田 勇 の投稿
提供ありがとうございました

まず、前回途中からうまくいくようになったというのは
私の操作ミスでした、お詫びいたします。

さて 生成された test.bbl を見ると以下のようになっています。

   \begin{thebibliography}{xxx}
   \harvarditem[大山]{大山}{一九九九}{oyama99:_mark_stru} ←この行の 一九九九に和字を入れるNG
     大山道広 (一九九九)
     「市場構造・経済厚生・国際貿易」,三\tatebo{}三四頁,東洋経済新報社.
   \end{thebibliography}

ut さんの情報もあり \harvarditem を再定義できないかと検討はしていますが(*1)、
同じく ut さんの問いかけにも関係する lualatex で使えないパッケージを
表明していただければ、誰かがヒントを持っているかもしれませんので
覚えている範囲でお答えいただければ幸いです。

(*1) 私には手に余る問題なので期待せずに!!
和田 勇 への返信

Re: upLaTeX+upBiBTeXでjecon.bstの数字→漢数字変換オプションを使用すると! Bad character codeエラーが出てしまう

- S N の投稿
ご親切にありがとうございます。前回の私の返信がきちんとツリーになっておらず見にくくなってしまいました。
今回の件、なかなか難しい問題のようですね……。お手数をおかけしております。

現時点でわかっているlualatexで正しく動かないパッケージは以下です。トピックとズレてしまうのでエラーメッセージなどは省きます。ご相談申し上げるときは別のスレッドを建てようと思います。

・udline.sty http://minamo.my.coocan.jp/tex/udline.html
これは動作はするのですが、縦書きにすると下線(つまり右傍線)が上線(左傍線)になってしまいます。反対に上線を使えば右傍線になるのですが、気持ち悪いです。

・warichu.sty http://xymtex.com/fujitas2/texlatex/index.html
これはエラーが出て動作しません。

lualatexでは縦書きにすると座標計算の方法が変わるそうですね。それに応じてソースコードの書き換えができれば良いのですが、私では難しく、結果使えなくなってしまっています。
S N への返信

Re: upLaTeX+upBiBTeXでjecon.bstの数字→漢数字変換オプションを使用すると! Bad character codeエラーが出てしまう

- 和田 勇 の投稿
◆ 割注は jlreq のでもダメなのかな?
   http://abenori.blogspot.com/2016/07/jlreq-warichu-warichu.html
◆下線ほか
  https://hakuoku.github.io/agakuTeX/tutorial/5_3bouten/ の
  uline–パッケージ で代用できないかしら?
◆その他、jlreq にはいろいろ備わっているようですので texdoc jlreq で一度マニュアルを読まれると良いと思います。

上二つを適当にコピペしたものを貼り付けておきます

\documentclass[tate]{jlreq}
\usepackage{natbib}
\usepackage{uline--}

\begin{document}
情に棹させば流される。
智に働けば角が立つ。
どこへ越しても住みにくいと悟った時、詩が生れて、画が出来る。
とかくに人の世は住みにくい。
意地を通せば窮屈だ。
\cite{oyama99:_mark_stru}

\section{uline–パッケージ}
\begin{itemize}
\item パッケ-ジ ... uline--
\item \verb|\mdash{打消破線}|  ... \mdash{打消破線}
\item \verb|\mdotline{打消点線}| ...  \mdotline{打消点線}
\item \verb|\mline{打消線}|    ...  \mline{打消線}
\item \verb|\mwave{打消波線}|  ...  \mwave{打消波線}
\item \verb|\odash{上破線}|    ...  \odash{上破線}
\item \verb|\odotline{上点線}|  ...  \odotline{上点線}
\item \verb|\oline{上線}|      ...  \oline{上線}
\item \verb|\owave{上波線}|    ...  \owave{上波線}
\item \verb|\udash{下破線}|    ...  \udash{下破線}
\item \verb|\udotline{下点線}|  ...  \udotline{下点線}
\item \verb|\uline{下線}|      ...  \uline{下線}
\item \verb|\uwave{下波線}|    ...  \uwave{下波線}
\item \oline[lines=2]{重要}\oline[lines=3]{もっと重要}
\end{itemize}

何か文章\warichu{割注,ゲットだぜ!}があるかも

\bibliographystyle{jecon}
\bibliography{ref}
\end{document}

これで代用できるのであれば私の TODO から外せるのですが
和田 勇 への返信

Re: upLaTeX+upBiBTeXでjecon.bstの数字→漢数字変換オプションを使用すると! Bad character codeエラーが出てしまう

- S N の投稿
傍線についてはご指摘の通りuline--パッケージで代用できそうです。ご教示ありがとうございます。
割注については、カッコのないものが必要なためjlreqの機能では使いづらいです。

色々と試行錯誤した結果、割注以外はほぼuplatexをlualatexに置き換えることができそうです。

割注については、また後日別スレッドでご相談するかもしれません。
色々とお手数をおかけしました。まことにありがとうございました。
S N への返信

Re: upLaTeX+upBiBTeXでjecon.bstの数字→漢数字変換オプションを使用すると! Bad character codeエラーが出てしまう

- S N の投稿
追記です。
割注の件ですが、プリアンブルに
\jlreqsetup{
warichu_opening = {},
warichu_closing = {},
}
と書くことであっさり解決しました。お騒がせいたしました。これで心置きなくlualatexを使えます。
S N への返信

Re: upLaTeX+upBiBTeXでjecon.bstの数字→漢数字変換オプションを使用すると! Bad character codeエラーが出てしまう

- ut の投稿
よく分かっていませんが、natbib.sty が内部で行っている処理と ptex
や uptex の仕組みがバッティングしているみたいです。

すごい適当ですけれど、natbib.sty のまねをして:

\documentclass[uplatex]{jsarticle}

% see: natbib.sty's \NAT@parse@date
\newcommand{\mynum}[1]{%
  \ifnum\the\catcode`#1=11\relax
      \def\mytempcs{foo}%
  \else
      \def\mytempcs{bar}%
  \fi}

\begin{document}

\mynum{一}

\end{document}

とかとしてみても:

  ! Bad character code (19968).
  <to be read again>
                    =
  l.13 \mynum{一}

と言われます。

LuaLaTeX なら問題ないとのことですが、upLaTeX じゃないといけ
ないのですか。