summaryrefslogtreecommitdiff
path: root/biblio/pbibtex/pbibtex-manual/pbibtex-manual.tex
diff options
context:
space:
mode:
Diffstat (limited to 'biblio/pbibtex/pbibtex-manual/pbibtex-manual.tex')
-rw-r--r--biblio/pbibtex/pbibtex-manual/pbibtex-manual.tex96
1 files changed, 84 insertions, 12 deletions
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}