summaryrefslogtreecommitdiff
path: root/language/japanese/pxjahyper/pxjahyper.tex
blob: e4633e8da378f0e42c20690d057344c8e9a86ecc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
% 文字コードは UTF-8
% platex で組版する
\documentclass[a4paper]{jsarticle}
\usepackage{shortvrb}
\MakeShortVerb{\|}
\newcommand{\PkgVersion}{0.4}
\newcommand{\PkgDate}{2019/10/25}
\newcommand{\Pkg}[1]{\textsf{#1}}
\newcommand{\Meta}[1]{$\langle$\mbox{}#1\mbox{}$\rangle$}
\newcommand{\Note}{\par\noindent ※}
\newcommand{\Means}{~:\quad}
\providecommand{\pTeX}{p\TeX}
\providecommand{\upTeX}{u\pTeX}
\providecommand{\pLaTeX}{p\LaTeX}
\providecommand{\upLaTeX}{u\pLaTeX}
%-----------------------------------------------------------
\begin{document}
\title{\Pkg{pxjahyper} パッケージ}
\author{八登崇之\ (Takayuki YATO; aka.~``ZR'')}
\date{v\PkgVersion\quad[\PkgDate]}
\maketitle

%===========================================================
\section{概要}

(u){\pLaTeX} + hyperref + dvipdfmxの組み合わせで
日本語を含む「しおり」をもつPDF文書を作成する
場合に必要となる機能を提供する。
\begin{itemize}
\item dvipdfmx用の「tounicode special」について、
  内部漢字コードに応じて適切なものを出力する。
\item PDF文字列の中でLICR(|\"a| や |\textsection| 等の
  文字出力の命令)が正しく機能するようにする。
  ただし、エンジンが {\pTeX} の場合は、out2uni を利用
  する場合を除き、JIS~X~0208にない文字は出力できない
  (hyperrefの警告が出る)。
\item {\TeX} の版面拡大機能が使われている
  (|\mag| が1000でない;典型的には\Pkg{jsclasses}の
  文書クラスで基底フォントサイズが10\,pt以外である)
  場合に、\Pkg{hyperref}が出力するpapersize specialの
  紙面サイズの値が不正になるが、この場合に |\mag| 値を
  考慮して求めた正しいサイズによるpapersize specialを
  改めて出力する。
\end{itemize}

%===========================================================
\section{パッケージの読込}

|\usepackage| で読み込む。
\begin{quote}\small\begin{verbatim}
\usepackage[オプション,...]{pxjahyper}
\end{verbatim}\end{quote}

使用可能なオプションは以下の通り。
\begin{itemize}
\item |tounicode|(既定)\Means
  dvipdfmx用の「tounicode special」を出力する。
\item |notounicode|\Means
  |tounicode| の否定。
\item |out2uni|\Means
  out2uniフィルタ(角藤氏製作)を使うことを前提にした
  出力を行う。
  (|tounicode| が無効になる。)
  {\upLaTeX} では使用不可。
\item |noout2uni|(既定)\Means
  |out2uni| の否定。
\item |otfcid|(既定)\Means
  \Pkg{japanese-otf}パッケージの |\CID| をPDF文字列中で
  使えるようにする。
  具体的には、当該のAJ1のグリフに“対応”するUnicode文字が
  あればそれを出力し、なければ(警告を出した上で)削除する。
\item |nootfcid| \Means
  |otfcid| の否定。
\item |bigcode|(既定)\Means
  {\upTeX}でのToUnicode CMapとして既定のUTF8-UCSの代わりに\ 
  UTF8-UTF16を用いる。
  (当該のファイルが存在する必要がある。)
\item |nobigcode|\Means
  |bigcode| の否定。
  \Note 0.3a版より既定を |bigcode| に変更した。
\item |dvipdfmx|\Means
  dvipdfmxを前提とした動作を行う。
\item |nodriver|/|none|\Means
  dvipdfmxを前提とした動作を抑止する。
  現状では、この場合には本パッケージは実質的に何の動作も行わない。
\item |auto|(既定)\Means
  \Pkg{hyperref}のドライバがdvipdfmx用ならば |dvipdfmx|、
  それ以外は |none| の動作。
\end{itemize}

%===========================================================
\section{機能}

「概要」で述べた機能は(オプション設定に応じて)
自動的に実施される。

\paragraph{Unicode符号値による入力}
PDF文字列入力中で、|\Ux| が以下の意味になる。
PDF文字列以外では |\Ux| は以前の定義(または未定義)に戻る。

\begin{itemize}
\item |\Ux{|Unicode符号値|}|\Means
  その符号値の文字を出力する。
\end{itemize}

符号値は16進数で指定する。

なお、\Pkg{japanese-otf}パッケージの |\UTF| 命令は、PDF文字列中では
out2uni用の出力を行うように設計されているが、
本パッケージを {\upLaTeX} で用いた場合は、
|\UTF| も(PDF文字列中では)|\Ux| と同じ動作
(つまりtounicode用の出力)になるように変更される。

\paragraph{PDF文字列用の文字命令の定義}
以下の命令が提供される。(プリアンブルでのみ使用可能。)

\begin{itemize}
\item |\pxDeclarePdfTextCommand{\制御綴}{|\Meta{JIS符号値}|}{|\Meta
{Unicode符号値}|}|\Means
  PDF文字列中の |\制御綴| の動作として、
  指定した符号値の文字を出力することを指定する。
\item |\pxDeclarePdfTextComposite{\制御綴}{|\Meta{引数}|}{|\Meta
{JIS符号値}|}{|\Meta{Unicode符号値}|}|\Means
  PDF文字列中の |\制御綴|(アクセント命令)+ \Meta{引数}の
  動作として、指定した符号値の文字を出力することを指定する。
\end{itemize}

これらの命令において、符号値は16進数で指定する。
「JIS符号値」は {\upLaTeX} では使われないので省略して
(空にして)もよい
(或いはそもそも JIS~X~0208 にない文字の場合は省略する)。
逆に「Unicode符号値」は {\pLaTeX} の動作でかつ「JIS符号値」が
指定されている場合は省略してよい。

例えば、以下のように定義しておくと、
PDF文字列中で |\textschwa|(schwa記号)や |\d{t}|(\d{t})が
使えるようになる。
\begin{quote}\small\begin{verbatim}
\pxDeclarePdfTextCommand{\textschwa}{}{0259}
\pxDeclarePdfTextComposite{\d}{t}{}{1E6D}
\end{verbatim}\end{quote}

\end{document}