summaryrefslogtreecommitdiff
path: root/language/japanese/pxjahyper
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-04-17 03:03:02 +0000
committerNorbert Preining <norbert@preining.info>2022-04-17 03:03:02 +0000
commite247b78b2fce9bdb26193826aca0a62ae26c8a8b (patch)
tree723e4d7093f616ab30d8a9a18f39b13b601002d6 /language/japanese/pxjahyper
parent86cbf2acabad1f9258b372dbf8f494f710ad64fd (diff)
CTAN sync 202204170303
Diffstat (limited to 'language/japanese/pxjahyper')
-rw-r--r--language/japanese/pxjahyper/README-ja.md3
-rw-r--r--language/japanese/pxjahyper/README.md1
-rw-r--r--language/japanese/pxjahyper/pxjahyper-ajm.def4
-rw-r--r--language/japanese/pxjahyper/pxjahyper-enc.sty2
-rw-r--r--language/japanese/pxjahyper/pxjahyper-uni.def2
-rw-r--r--language/japanese/pxjahyper/pxjahyper.pdfbin133200 -> 144466 bytes
-rw-r--r--language/japanese/pxjahyper/pxjahyper.sty32
-rw-r--r--language/japanese/pxjahyper/pxjahyper.tex61
8 files changed, 79 insertions, 26 deletions
diff --git a/language/japanese/pxjahyper/README-ja.md b/language/japanese/pxjahyper/README-ja.md
index 2f3f39c499..f59730afd7 100644
--- a/language/japanese/pxjahyper/README-ja.md
+++ b/language/japanese/pxjahyper/README-ja.md
@@ -73,6 +73,9 @@ pxjahyper-enc パッケージ ー 文字コード設定
更新履歴
--------
+ * Version 1.0a 〈2022/04/15〉
+ - バグ修正。
+
* Version 1.0 〈2022/04/01〉
- オプション `auto` を `autodvidriver` に改名(旧名は非推奨)。
- オプション `nodvidriver` の非推奨の旧名 `none`を廃止した。
diff --git a/language/japanese/pxjahyper/README.md b/language/japanese/pxjahyper/README.md
index 8357146cc8..7ea926e37c 100644
--- a/language/japanese/pxjahyper/README.md
+++ b/language/japanese/pxjahyper/README.md
@@ -52,6 +52,7 @@ the PDF strings in the output DVI file.
Revision History
----------------
+ * Version 1.0a 〈2022/04/15〉
* Version 1.0 〈2022/04/01〉
* Version 0.9d 〈2022/03/15〉
* Version 0.9c 〈2021/06/06〉
diff --git a/language/japanese/pxjahyper/pxjahyper-ajm.def b/language/japanese/pxjahyper/pxjahyper-ajm.def
index 54fee59714..e5173ef493 100644
--- a/language/japanese/pxjahyper/pxjahyper-ajm.def
+++ b/language/japanese/pxjahyper/pxjahyper-ajm.def
@@ -11,7 +11,7 @@
%% package declaration
\NeedsTeXFormat{pLaTeX2e}
-\ProvidesFile{pxjahyper-ajm.def}[2022/04/01 v1.0]
+\ProvidesFile{pxjahyper-ajm.def}[2022/04/15 v1.0a]
%% avoid multiple loading
\csname pxjahyperajmLoaded\endcsname
@@ -119,7 +119,7 @@
%--------------------------------------- helpers
%% prepare
-\pxhy@forcecjktoken
+\pxhy@forcecjktoken{0}
%% shorthands
\catcode`\`=\active \let`\noexpand
diff --git a/language/japanese/pxjahyper/pxjahyper-enc.sty b/language/japanese/pxjahyper/pxjahyper-enc.sty
index 57a74a6f9b..9fc18f26ab 100644
--- a/language/japanese/pxjahyper/pxjahyper-enc.sty
+++ b/language/japanese/pxjahyper/pxjahyper-enc.sty
@@ -10,7 +10,7 @@
%% package declaration
\NeedsTeXFormat{pLaTeX2e}
-\ProvidesPackage{pxjahyper-enc}[2022/04/01 v1.0]
+\ProvidesPackage{pxjahyper-enc}[2022/04/15 v1.0a]
\def\pxhe@pkgname{pxjahyper-enc}
\providecommand{\bxDebug}[1]{}
diff --git a/language/japanese/pxjahyper/pxjahyper-uni.def b/language/japanese/pxjahyper/pxjahyper-uni.def
index 81c62ecf88..69f21405ff 100644
--- a/language/japanese/pxjahyper/pxjahyper-uni.def
+++ b/language/japanese/pxjahyper/pxjahyper-uni.def
@@ -10,7 +10,7 @@
%% package declaration
\NeedsTeXFormat{pLaTeX2e}
-\ProvidesFile{pxjahyper-uni.def}[2022/04/01 v1.0]
+\ProvidesFile{pxjahyper-uni.def}[2022/04/15 v1.0a]
\providecommand{\bxDebug}[1]{}
%--------------------------------------- environment check
diff --git a/language/japanese/pxjahyper/pxjahyper.pdf b/language/japanese/pxjahyper/pxjahyper.pdf
index f8b58af5c8..74e6267fb4 100644
--- a/language/japanese/pxjahyper/pxjahyper.pdf
+++ b/language/japanese/pxjahyper/pxjahyper.pdf
Binary files differ
diff --git a/language/japanese/pxjahyper/pxjahyper.sty b/language/japanese/pxjahyper/pxjahyper.sty
index 0a4a928952..9cf9d4cacf 100644
--- a/language/japanese/pxjahyper/pxjahyper.sty
+++ b/language/japanese/pxjahyper/pxjahyper.sty
@@ -10,7 +10,7 @@
%% package declaration
\NeedsTeXFormat{pLaTeX2e}
-\ProvidesPackage{pxjahyper}[2022/04/01 v1.0]
+\ProvidesPackage{pxjahyper}[2022/04/15 v1.0a]
\def\pxhy@pkgname{pxjahyper}
\providecommand{\bxDebug}[1]{}
@@ -201,8 +201,19 @@
\pxhy@etextrue
\IfFileExists{etoolbox.sty}{\pxhy@etoolboxtrue}{}%
}
-\pxhy@check\kanjiskip{\pxhy@ptextrue}
-\pxhy@check\forcecjktoken{\pxhy@uptextrue}
+\pxhy@check\kanjiskip{%
+ \pxhy@ptextrue
+ \pxhy@check\ucs{%
+ \pxhy@check\ptexversion{\pxhy@uptextrue}
+ \pxhy@check\kchardef{\pxhy@uptextrue}
+ \ifpxhy@uptex\else % upTeX v<0.10
+ \pxhy@error{This upTeX engine is too old}
+ {\pxhy@eh@fatal}
+ \endinput
+ \fi % only upTeX in Unicode is seen as upTeX
+ \ifnum\ucs"3000="3000 \else \pxhy@uptexfalse \fi
+ }
+}
\ifpxhy@ptex\else
\pxhy@error{Unknown engine used}%
{\pxhy@eh@fatal}
@@ -228,10 +239,6 @@
}{}}
%% adjustment
-% upTeX not in unicode is not seen as upTeX.
-\ifnum\jis"2121="3000 \else
- \pxhy@uptexfalse
-\fi
% bigcode cannot be used without upTeX.
\ifpxhy@bigcode \ifpxhy@uptex\else
\pxhy@bigcodefalse
@@ -330,7 +337,7 @@ pxhy@textcmd = \ifpxhy@textcmd true\else false\fi^^J%
% of the char code <num>.
\def\pxhy@get@jchar#1{%
\begingroup
- \pxhy@forcecjktoken
+ \pxhy@forcecjktoken{#1}%
\kansujichar\@ne=#1\relax
\xdef\pxhy@jchar{\kansuji\@ne}%
\endgroup
@@ -342,11 +349,14 @@ pxhy@textcmd = \ifpxhy@textcmd true\else false\fi^^J%
\let#1\pxhy@jchar
}
-%% \pxhy@forcecjktoken
+%% \pxhy@forcecjktoken{<code>}
\ifpxhy@uptex
- \let\pxhy@forcecjktoken\forcecjktoken
+ \ifx\forcecjktoken\@undefined
+ \def\pxhy@forcecjktoken#1{\kcatcode#1=18 }
+ \else \def\pxhy@forcecjktoken#1{\forcecjktoken}
+ \fi
\else
- \let\pxhy@forcecjktoken\relax
+ \def\pxhy@forcecjktoken#1{\relax}
\fi
%% \pxhy@geta : GETA MARK
diff --git a/language/japanese/pxjahyper/pxjahyper.tex b/language/japanese/pxjahyper/pxjahyper.tex
index 18467d4837..1a1e4cf7da 100644
--- a/language/japanese/pxjahyper/pxjahyper.tex
+++ b/language/japanese/pxjahyper/pxjahyper.tex
@@ -16,8 +16,8 @@
\bxtexlogoimport{*}
\usepackage{shortvrb}
\MakeShortVerb{\|}
-\newcommand{\PkgVersion}{1.0}
-\newcommand{\PkgDate}{2022/04/01}
+\newcommand{\PkgVersion}{1.0a}
+\newcommand{\PkgDate}{2022/04/15}
\newcommand{\Pkg}[1]{\textsf{#1}}
\newcommand{\Meta}[1]{$\langle$\mbox{}#1\mbox{}$\rangle$}
\newcommand{\Note}{\par\noindent ※}
@@ -35,8 +35,9 @@
\section{概要}
(u){\pLaTeX} + hyperref + dvipdfmxの組み合わせで
-日本語を含む「しおり」をもつPDF文書を作成する
-場合に必要となる機能を提供する。
+日本語を含む\Strong{PDF文字列}%
+(“しおり”などの文書情報の文字列)
+をもつPDF文書を作成する場合に必要となる機能を提供する。
\begin{itemize}
\item dvipdfmx用の「tounicode special」について、
内部漢字コードに応じて適切なものを出力する。
@@ -208,9 +209,9 @@ PDF文字列中で |\CID| が“可能な限り”使えるようにする。
\begin{itemize}
\item 当該のAJ1のグリフに“対応”する\textbf{単独の}Unicode文字が
あればそれを出力し、なければ
- (警告を出した上で)削除する。
- \footnote{他の同様の場合と合わせてゲタ記号を出力するようにしたい。
- 1.0版において仕様を変更する予定。}
+ (警告を出した上で)ゲタ記号を出力する。
+ \footnote{旧版では削除していたが、他の同様の場合と合わせるため
+ 1.0版よりゲタ記号を出力する仕様を変更した。}
\item ただし |\Ux| 命令(\ref{ssec:ux-command}節参照)が
無効になる場合は、そもそもUnicode文字も出力できないため、
常に(警告を出した上で)ゲタ記号を出力する。
@@ -236,12 +237,17 @@ PDF文字列中で |\CID| が“可能な限り”使えるようにする。
\item Unicode文字で表現可能であればそれを出力し、
なければ代替表現を出力する。
\item Unicode文字を出力する場合の仕様は |\CID| と同じ。
- 代替表現の場合は文字自体が出力されうる。
+ 代替表現の場合は「普通の文字の出力に置き換えられる」
+ 可能性がある。
+ \Note 例えば、|\ajLig{ドル}|(“ドル”の組文字)はUnicode文字の
+ U+3326に“対応”するので |\Ux{3326}| と同等になるが、
+ |\ajLig{ウルシ}|(“ウルシ”の組文字)はUnicodeに“対応”する
+ 文字がないため単に“|ウルシ|”と書いたのと同等になる。
\end{itemize}
\Note |otfmacros| を有効にする場合は |otfcid| も有効にする必要がある。
(従って |otfcid| と同じ前提条件が課される。)
-|nootfcid| を指定した場合は |otfmacros| も無効になる。
+|otfcid| が無効な場合は |otfmacros| も無効になる。
\Note \Pkg{ajmacros}パッケージの多くの命令は“脆弱(fragile)”である。
そのため、節見出し(|\section| 等の引数)で |\ajMaru| 等の命令を
使いたい場合は、命令の前に |\protect| 付ける必要がある。
@@ -291,8 +297,8 @@ PDF文字列と版面出力の両方に使われるテキスト(節見出し
\Pkg{hyperref}では基本的なテキスト装飾命令
(多くは{\LaTeX}カーネルが提供するもの)
について、「PDF文字列として扱う場合は自動的に無力化
-\footnote{例えば、“|\textit{text}|”や“|{\large text}|”は
- 単に“|text|”と書いたものと見なされる。}
+%\footnote{例えば、“|\textit{text}|”や“|{\large text}|”は
+% 単に“|text|”と書いたものと見なされる。}
する」機構を実装している。
これにより、例えば節見出しのテキストに“|\textit{text}|”が
含まれていたとすると、
@@ -325,4 +331,37 @@ PDF文字列と版面出力の両方に使われるテキスト(節見出し
|\jafontsize| |\tatechuyoko| |\jidori| % |\jaspace| |\akigumi|
\end{itemize}
+%===========================================================
+\section{hyperrefの“unicodeモード”での動作}
+\newcommand*{\cXAdj}{\mbox{}\vspace*{-2pt}}% WOW!
+
+\Pkg{hyperref}パッケージの |unicode| オプションが有効である場合
+(これを“unicodeモード”と呼ぶことにする
+\footnote{“unicodeモード”を有効にする方法は |unicode|(|=true|)
+ の指定以外にも存在する。
+ また、\Pkg{hyperref}の7.00g版[2021-02-04]より、
+ {\pLaTeX}以外のエンジン(\Strong{{\upLaTeX}も含む})について
+ “unicodeモード”は既定で有効になっていることに注意。}%
+)で動作している場合は、PDF文字列のUnicodeへの変換は
+(DVIドライバ等でなく)\Pkg{hyperref}自身により行われる。
+\Pkg{hyperref}が“unicodeモード”である場合には、\Pkg{pxjahyper}は
+それを自動的に検知してそれに適応した動作に切り替える。
+\begin{itemize}
+\item \cXAdj|\Ux| 命令は\Pkg{hyperref}の |\unichar| 命令を利用して出力する。
+ このため、{\pLaTeX}でもUnicode文字の出力が可能になる。
+\item PDF文字列中の和文文字やLICR命令の処理は
+ \Pkg{hyperref}の側に任せられる。
+ \Note ただし現状では「tounicode special」の発行は
+ (特に害はないため)無効化されない。
+\end{itemize}
+ただし、現状での“unicodeモード”対応動作には以下の制限がある。
+\begin{itemize}
+\item \cXAdj\Pkg{hyperref}の(|pdftitle| 等の)パッケージオプション中での
+ 和文文字の処理は失敗する。
+ このため、文書情報は |\hypersetup| 命令で指定する必要がある。
+\item \cXAdj{\pLaTeX}における“unicodeモード”対応動作は試験的機能の
+ 扱いであるため、その旨の警告が表示される。
+ この警告は |force-unicode| オプションを指定すれば抑止できる。
+\end{itemize}
+
\end{document}