From e247b78b2fce9bdb26193826aca0a62ae26c8a8b Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sun, 17 Apr 2022 03:03:02 +0000 Subject: CTAN sync 202204170303 --- language/japanese/pxjahyper/README-ja.md | 3 ++ language/japanese/pxjahyper/README.md | 1 + language/japanese/pxjahyper/pxjahyper-ajm.def | 4 +- language/japanese/pxjahyper/pxjahyper-enc.sty | 2 +- language/japanese/pxjahyper/pxjahyper-uni.def | 2 +- language/japanese/pxjahyper/pxjahyper.pdf | Bin 133200 -> 144466 bytes language/japanese/pxjahyper/pxjahyper.sty | 32 +++++++++----- language/japanese/pxjahyper/pxjahyper.tex | 61 +++++++++++++++++++++----- 8 files changed, 79 insertions(+), 26 deletions(-) (limited to 'language/japanese') 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 Binary files a/language/japanese/pxjahyper/pxjahyper.pdf and b/language/japanese/pxjahyper/pxjahyper.pdf 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 . \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{} \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} -- cgit v1.2.3