From e7ae872926eddb0de09ecfe1c578e0680033955a Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sun, 26 Feb 2023 03:02:12 +0000 Subject: CTAN sync 202302260302 --- biblio/pbibtex/pbibtex-manual/pbibtex-manual.tex | 96 +++++++++++++++++++++--- 1 file changed, 84 insertions(+), 12 deletions(-) (limited to 'biblio/pbibtex/pbibtex-manual/pbibtex-manual.tex') diff --git a/biblio/pbibtex/pbibtex-manual/pbibtex-manual.tex b/biblio/pbibtex/pbibtex-manual/pbibtex-manual.tex index 1c1cde7aca..ccc0744b14 100644 --- a/biblio/pbibtex/pbibtex-manual/pbibtex-manual.tex +++ b/biblio/pbibtex/pbibtex-manual/pbibtex-manual.tex @@ -64,7 +64,7 @@ } \makeatother -\def\TL{\TeX\ Live} +\def\TL{\TeX~Live} \def\_{\leavevmode\vrule width .45em height -.2ex depth .3ex\relax} @@ -74,15 +74,15 @@ \title{\emph{\pBibTeX~/~\upBibTeX マニュアル}} \author{日本語\TeX 開発コミュニティ\null \thanks{\url{https://texjp.org},\ e-mail: \texttt{issue(at)texjp.org}}} -\date{version 0.99d-j0.34,\today} +\date{version 0.99d-j0.36,\today} \maketitle \pBibTeX と\upBibTeX は,それぞれ\pTeX と\upTeX と組み合わせて使用することを 想定して開発された\BibTeX の日本語対応版である. \begin{itemize} - \item \pBibTeX の開発元:\\ + \item \pBibTeX, \upBibTeX の開発元:\\ \url{https://github.com/texjporg/tex-jp-build/} - \item \upBibTeX の開発元:\\ + \item \upBibTeX の開発元(j0.35以前):\\ \url{http://www.t-lab.opal.ne.jp/tex/uptex.html} \item 本ドキュメントの開発元:\\ \url{https://github.com/texjporg/pbibtex-manual/} @@ -103,6 +103,7 @@ 本文書では,オリジナルの\BibTeX の仕様を把握している読者を想定し, \pBibTeX および\upBibTeX における機能の変更・追加点を説明する. +\clearpage \tableofcontents \clearpage @@ -143,7 +144,7 @@ したがって,この時点で\pBibTeX (内部コード|euc|)では最大2バイト長く, \upBibTeX (内部コード|uptex|)では最大6バイト長い文字列が取り出されうる. - さらに,(u)\pBibTeX~j0.34 (\TeX~Live 2022)以降では% r62095 (2022-02-20) + さらに,(u)\pBibTeX~j0.34 (\TL~2022)以降では% r62095 (2022-02-20) \begin{quotation} \begin{enumerate} \item[(3)] 起点が|#2|以上に指定されたにもかかわらず,上の(1)の調整により @@ -269,7 +270,7 @@ \par\medskip \begin{dangerous} - (u)\pBibTeX~j0.33 (\TeX~Live 2021)以前の|substring$|では, + (u)\pBibTeX~j0.33 (\TL~2021)以前の|substring$|では, オリジナルの\JBibTeX と同様,上記のうち調整(1)と(2)しか 行っていなかった.すなわち「開始位置や終了位置が多バイトの文字の 途中となる場合は,位置を調整して\emph{常に長めに切り出す}」という @@ -282,7 +283,7 @@ |substring$|関数により文字列を1つずつ切り詰めて短くする処理」に 和文文字リテラルが渡ると文字列が一向に短くならず, 無限ループが起きてしまっていた\cite{tjb133}. - そこで,(u)\pBibTeX~j0.34 (\TeX~Live 2022)以降は調整(3)と(4)を加え, + そこで,(u)\pBibTeX~j0.34 (\TL~2022)以降は調整(3)と(4)を加え, \emph{カウント起点が「先頭の多バイト文字の途中」または「末尾の多バイト文字の 途中」の場合に限って取り除くことで短めに切り出す}こととした. なお,カウント終点側の多バイト文字については常に長めに切り出すし, @@ -290,7 +291,27 @@ という点は従来と同じである.上記の例を見るのが早いであろう. \end{dangerous} -\subsection{文字種が増えたことへの対応} +\begin{itemize} + \item |int.to.chr$|, |chr.to.int$|\\ + |int.to.chr$|は整数値1つをpopし, + 対応する文字コードの文字1字をpushする組込関数である. + |chr.to.int$|は文字1字をpopし, + 対応する文字コードの整数値1つをpushする組込関数である. + (u)\pBibTeX~j0.34 (\TL~2022)以前では + |int.to.chr$|はASCIIの範囲の整数(最大127)のみ有効, + |chr.to.int$|は多バイト文字の場合先頭バイトのコード値が返る仕様であった.\\ + (u)\pBibTeX~j0.35 (\TL~2023)以降では + これらの組込関数を文字集合全体が扱えるように拡張した. + すなわち,文字1字分 + \footnote{\upBibTeX ではより正確にはコードポイント1つ分となる. + Unicodeでは合成文字や異体字セレクタ等では複数のコードポイントで + 1文字となるため.}の多バイト文字列を対象とし, + 文字コードの整数としては\pBibTeX ではJISコード% + \footnote{JISコードを16bit表現した整数値$((区+32)\times 256+(点+32))$.}, + \upBibTeX ではUnicodeのスカラー値を用いる. +\end{itemize} + +\subsection{文字種が増えたことへの対応}\label{sec:charset} \begin{itemize} \item |add.period$|\\ @@ -302,7 +323,9 @@ (それぞれU+FF01, U+FF1F, U+3002, U+FF0E)もピリオド類とみなし, これらで終わっても\codechar{.}を付加しない. - \upBibTeX ではさらにU+203C, U+2047, U+2048, U+2049もピリオド類とみなす. + \upBibTeX ではさらにU+203C, U+203D\footnote{% + U+203Dをピリオド類とみなす仕様はバージョンu1.29 (\TL~2023)以降.}, % + U+2047, U+2048, U+2049もピリオド類とみなす. \item |format.name$|\\ 文字列(フォーマット指定),整数値(何番めか),文字列(名前リスト)をpopし, @@ -311,6 +334,24 @@ 半角空白と同じとみなし(全角空白は半角空白に変換して処理), また複数の氏名間の区切りとして|and|と同様に 全角の読点\codechar{、}とコンマ\codechar{,}(それぞれU+FF0C, U+3001)も使える. + + \item |change.case$|\\ + 変換対象の文字列と変換方法の文字をpopし, + 大文字小文字変換を施した文字列をpushする組込関数である. + 変換方法の文字は|l|, |u|, |t|で,それぞれ + 小文字への変換,大文字への変換,タイトルケース(語頭が大文字で他が小文字) + への変換を示す. + もしこれが不都合で文字列の一部を変換したくない場合は, + 対象の部分を波括弧|{|と|}|で囲むことにより変換なしに出来る.\\ + 従来は大文字小文字変換が行われる文字集合はASCIIのアルファベットに限られていたが, + \upBibTeX バージョンu1.29 (\TL~2023)以降では + さらにLatin-1, Latin Extended-A, Greek and Coptic, Cyrillic, + Cyrillic Supplementブロックの文字も変換対象とするように拡張 + \footnote{\pBibTeX ではギリシャ文字・キリル文字を全角文字として扱ってきた + 長年の慣習に従い,ギリシャ文字・キリル文字の大文字小文字変換は + 行わない仕様を維持している. + また\pBibTeX, \upBibTeX ともに全角ラテン文字(U+FF21..FF3A, U+FF41..FF5A, + ABCなど)の大文字小文字変換は行わない.}した. \end{itemize} \subsection{日本語文字とそれ以外の区別} @@ -331,7 +372,7 @@ いるのでそれに即して記述すると,既定値が16 (kanji), 17 (kana), 19 (hangul)の ブロックを真,15 (latin), 18 (CJK symbol)のブロックを偽としている.}. \pBibTeX とは異なり,記号類(句読点,括弧類,●○■□◆◇など)は「日本語文字」と - して扱わない(バージョンu1.27(\TL~2021)以降\cite{tjb109}). + して扱わない(バージョンu1.27 (\TL~2021)以降\cite{tjb109}). \end{itemize} \end{itemize} @@ -375,7 +416,7 @@ する場面において,オリジナルの\BibTeX は任意の半角空白を分割可能箇所とみなす \footnote{\BibTeX~0.99c以前では半角空白以外の箇所も行末に\code{\%}を補って改行された が,2010年の0.99dでURLなどの長い文字列を壊さないように半角空白以外での分割が - 禁止された.}が,(u)\pBibTeX~j0.34 (\TeX~Live 2022)以降は\emph{日本語文字の直後でない + 禁止された.}が,(u)\pBibTeX~j0.34 (\TL~2022)以降は\emph{日本語文字の直後でない 半角空白のみを分割可能箇所とみなす}.これは,元々BIBファイルにあった日本語文字直後の 半角空白が仮にBBLファイルで改行に置換されれば,(u)\pTeX での読込時に「日本語文字直後の 改行は空白を発生しない」という仕様により半角空白が消えてしまうためである\cite{tjb132}. @@ -385,7 +426,7 @@ \end{itemize} -\section{コマンドラインオプション} +\section{コマンドラインオプション}\label{sec:commandline_option} 基本的には\BibTeX と同様であるが,以下が追加されている. \begin{itemize} @@ -403,9 +444,24 @@ \item \pBibTeX :なし(常に\code{euc}に固定) \item \upBibTeX :\code{euc}, \code{uptex} \end{itemize} + \item |-guess-input-enc|, |-no-guess-input-enc|\\ + 入力ファイルの文字コードを推定する機能を有効/無効にする. + kpathsearchライブラリ変数|guess_input_kanji_encoding|よりもこちらが優先される.(\TL~2023以降) \end{itemize} +\section{kpathsearchライブラリ変数}\label{sec:kpathsearch} + +出力行の長さの最大を指定する変数|max_print_line|(デフォルト値79)が +((u)p)\BibTeX では従来ハードコードされ固定されていたが, +\TL~2023以降kpathsearchライブラリの変数になった. +これに伴い\file{texmf.cnf}の中や環境変数などで設定変更が可能になった. + +入力ファイルの文字コードを推定する機能が実装され +変数|guess_input_kanji_encoding|で制御できるようになった(\TL~2023以降). +\pBibTeX ではデフォルト値1(推定する), +\upBibTeX ではデフォルト値0(推定しない)となっている. + \section{参考:\JBibTeX と\pBibTeX の違い}\label{diff} 松井氏による\JBibTeX~0.31(\BibTeX~0.99cベース)から @@ -420,6 +476,13 @@ \item 2012年,\upBibTeX が\upTeX とともに\TL へ収録される. \item 2022年,出力BBLファイルでの行分割の改良(第\ref{sec:jnewline}節を参照)\\ |substring$|関数の改良(第\ref{sec:substring}節を参照) → \pBibTeX~j0.34 + \item |int.to.chr$|, |chr.to.int$|関数の拡張 + (第\ref{sec:substring}節を参照) → \pBibTeX~j0.35\\ + |change.case$|関数の拡張(第\ref{sec:charset}節を参照) → \upBibTeX~u1.29\\ + |max_print_line|のkpathsearchライブラリ変数化(第\ref{sec:kpathsearch}節を参照)\\ + 入力ファイルの文字コードの推定機能を追加(第\ref{sec:commandline_option}, \ref{sec:kpathsearch}節を参照) + \item 2023年,\pBibTeX と\upBibTeX のソースコード,バイナリを統合\cite{tjb154}. + \pBibTeX は\upBibTeX へのシンボリックリンクとなるが使用法は変わらない → \pBibTeX~j0.36 \end{itemize} \JBibTeX は当初NTT \JTeX と組み合わせて使用することを想定して開発されたため, @@ -456,6 +519,15 @@ \bibitem{tjb133} Hironobu Yamashita,「(u)pbibtex: freeze at en-dash etc. + sieicej.bst」, 2022/02/19,\\ \url{https://github.com/texjporg/tex-jp-build/issues/133} + \bibitem{tjb139} Takuji Tanaka,「bibtexuの日本語(CJK)対応」, + 2022/04/16,\\ + \url{https://github.com/texjporg/tex-jp-build/issues/139} + \bibitem{tjb142} Takuji Tanaka,「[ptexenc] 入力ファイルの文字コードの自動判定」, + 2022/06/05,\\ + \url{https://github.com/texjporg/tex-jp-build/issues/142} + \bibitem{tjb154} Takuji Tanaka,「(u)pbibtex バイナリの整理統合」, + 2022/11/30,\\ + \url{https://github.com/texjporg/tex-jp-build/issues/154} \end{thebibliography} \end{document} -- cgit v1.2.3