summaryrefslogtreecommitdiff
path: root/language/japanese/zxjatype
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-01-22 03:02:40 +0000
committerNorbert Preining <norbert@preining.info>2020-01-22 03:02:40 +0000
commitbe88ab29c165e6b16091443c3e8f36c4febf8a27 (patch)
tree04ba1ae29e519f3ed027cd13b3444c841a0b8544 /language/japanese/zxjatype
parentb3f7f9ce3596843d5cf8e97c1855d9a15c0e4f47 (diff)
CTAN sync 202001220302
Diffstat (limited to 'language/japanese/zxjatype')
-rw-r--r--language/japanese/zxjatype/LICENSE2
-rw-r--r--language/japanese/zxjatype/README-ja.md108
-rw-r--r--language/japanese/zxjatype/README.md1
-rw-r--r--language/japanese/zxjatype/zxjatype.sty99
4 files changed, 183 insertions, 27 deletions
diff --git a/language/japanese/zxjatype/LICENSE b/language/japanese/zxjatype/LICENSE
index fbe40a0146..0c208cdd77 100644
--- a/language/japanese/zxjatype/LICENSE
+++ b/language/japanese/zxjatype/LICENSE
@@ -1,6 +1,6 @@
The MIT License
-Copyright (c) 2018 Takayuki YATO (aka. "ZR")
+Copyright (c) 2009-2020 Takayuki YATO (aka. "ZR")
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/language/japanese/zxjatype/README-ja.md b/language/japanese/zxjatype/README-ja.md
index 9574b7b40c..e65f816d6d 100644
--- a/language/japanese/zxjatype/README-ja.md
+++ b/language/japanese/zxjatype/README-ja.md
@@ -23,22 +23,122 @@ LaTeX: XeLaTeX と xeCJK パッケージを利用した日本語組版の支援
zxjatype パッケージ ― 本体
---------------------------
-まだ解説が書けておりません…。基本的な機能の説明については以下の Web
-ページで行っていますのでそちらを参照してください。
+基本的な機能の説明については以下の Web ページでも行っているのでそちらも
+参照してほしい。
* [ZXjatype パッケージ]
(http://zrbabbler.sp.land.to/zxjatype.html)
+### パッケージ読込
+
+xeCJK と一緒に読み込む場合:
+
+ \usepackage[<オプション>...,<xeCJKのオプション>...]{zxjatype}
+
+xeCJK と別個に読み込む場合:
+
+ \usepackage[<xeCJKのオプション>...]{xeCJK}
+ \usepackage[<オプション>...]{zxjatype}
+
+有効なオプションは以下の通り:
+
+ * `default`:(既定)パッケージ読込直後に日本語用の設定への切替を行う。 (`\zxjapanesestyle` を実行する。)
+ * `nodefault`: `default` の否定。 xeCJK の初期設定が保持される。
+ * `CJKchecksingle`:(既定)xeCJK の文字ウィドウ抑制機能を有効にする。
+ (`CheckSingle=true` を設定する。)
+ * `noCJKchecksingle`: `CJKchecksingle` の否定。xeCJK の初期設定の通り
+ で文字ウィドウ抑制機能が無効になる。
+ * `adjustcharclass`:(既定)日本語の組版規則に合わせて xeCJK の文字
+ クラス設定を変更する。
+ * `noadjustcharclass`: `adjustcharclass` の否定。 xeCJK の文字クラス
+ 設定を変更しない。
+ * `kanakinsoku`: 小書き仮名を行頭禁則の対象にする。具体的には、これら
+ の文字の文字クラスを「閉じ括弧類」に変更する。
+ ※この扱いには副作用があって、直後に約物がある場合の空きが不正になる
+ (約物が並んでいると解釈されるため)。
+ * `nokanakinsoku`:(既定)小書き仮名を行頭禁則の対象にしない。具体的
+ にはこれらの文字の文字クラスを「通常 CJK 文字」に変更する。
+ ※`kanakinsoku`・`nokanakinsoku` の何れの場合も xeCJK の設定に変更を
+ 加えることに注意。変更したくない場合は `noadjustcharclass` にする。
+ * `useinhibitglue`: pTeX と互換の `\inhibitglue` 命令を定義する。
+ ※ただし現状の実装は不完全で問題があることが判っている。
+ * `nouseinhibitglue`:(既定) `useinhibitglue` の否定。`\inhibitglue`
+ は定義されない。
+ * `prefercjk`: 一部の記号類の文字クラスを「非 CJK 文字」(欧文扱い)
+ から「通常 CJK 文字」(和文扱い)に変更する。
+ ※和文扱いの範囲が LuaTeX-ja の初期状態とほぼ同じになる。
+ * `noprefercjk`:(既定)`prefercjk` の否定。
+
+### 機能
+
+xeCJK の CJK フォントファミリ設定において、`\setjafontscale` で設定された
+和文スケール値が `Scale` の値として設定される。以下の命令が対象となる。
+
+ - `\setCJKmainfont`
+ - `\setCJKsansfont`
+ - `\setCJKmonofont`
+ - `\setCJKfamilyfont`
+
+zxjatype の独自の命令。
+
+ * `\setjafontscale{<実数>}`: 和文スケール値を設定する。
+ ※空の引数も可能で、この場合は和文スケール値設定が抑止される。
+ * `\>`: 明示的に和欧文間空白を出力する。
+ ※数式モード中では LaTeX カーネルの定義が維持される。
+ ※他のパッケージで再定義が行われている場合は定義されない。
+ * `\inhibitglue`: その箇所で和文文字間に自動的に入る空白を抑制する。
+ ※`useinhibitglue` オプション指定時にのみ定義される。
+ * `\<`: `\inhibitglue` と同義。
+ ※他のパッケージで再定義が行われている場合は定義されない。
+ * `\textrawen{<テキスト>}`: 和文処理を無効化し、引数のテキストを欧文
+ フォントで出力する。
+ * `rawentext` 環境: `\textrawen` の環境版。
+ * `\textrawja{<テキスト>}`: 和文処理を無効化し、引数のテキストを和文
+ フォントで出力する。
+ * `rawjatext` 環境: `\textrawja` の環境版。
+ * `\zxjapanesestyle`: 日本語用の設定に切り替える。
+ ※この命令はユーザによる再定義が可能。
+ * `\zxusejapaneseparameter`: 和欧文間空白と和文間空白を日本語組版に
+ 適した値にする。
+ * `\zxuseoriginalparameter`: 和欧文間空白と和文間空白を xeCJK の初期
+ 設定に戻す。
+
+なお、`\zxjapanesestyle` の初期値は以下のとおりである:
+
+ \xeCJKsetup{
+ AllowBreakBetweenPuncts = true,
+ PunctStyle = fullwidth,
+ }%
+ \zxusejapaneseparameters
+
+### 旧版との互換のための命令
+
+ * `\setjamainfont`: xeCJK の `\setCJKmainfont` と同義。
+ * `\setjasansfont`: xeCJK の `\setCJKsansfont` と同義。
+ * `\setjamonofont`: xeCJK の `\setCJKmonofont` と同義。
+ * `\setjafamilyfont`: xeCJK の `\setCJKfamilyfont` と同義。
+ * `\jafamily`: xeCJK の `\CJKfamily` と同義。
+
+### 参考:0.6 版で廃止された機能
+
+ * `\(no)jafamilyinverbatim` 命令
+
更新履歴
--------
+ * Version 0.7 ‹2020/01/22›
+ - xeCJK 2.x 版の使用を非推奨(将来廃止予定)とする。
+ - `(no)prefercjk` オプションを新設。
+ - 和文スケール値を `\zxjatypeJaScale` に格納する。
+ - バグ修正。
+
* Version 0.6c ‹2018/05/03›
- バグ修正。
* Version 0.6b ‹2017/08/03›
- - (試験的) `(no)useinhibitglue` オプション。
- - (試験的) `(no)kanakinsoku` オプション。
+ - `(no)useinhibitglue` オプション。
+ - `(no)kanakinsoku` オプション。
* Version 0.6a ‹2017/08/02›
- バグ修正。
diff --git a/language/japanese/zxjatype/README.md b/language/japanese/zxjatype/README.md
index 2c5dda651d..de9a5cc620 100644
--- a/language/japanese/zxjatype/README.md
+++ b/language/japanese/zxjatype/README.md
@@ -44,6 +44,7 @@ All other options are passed to xeCJK.
Revision History
----------------
+ * Version 0.7 ‹2020/01/22›
* Version 0.6c ‹2018/05/03›
* Version 0.6b ‹2017/08/03›
* Version 0.6a ‹2017/08/02›
diff --git a/language/japanese/zxjatype/zxjatype.sty b/language/japanese/zxjatype/zxjatype.sty
index dba68ee443..d507d99a77 100644
--- a/language/japanese/zxjatype/zxjatype.sty
+++ b/language/japanese/zxjatype/zxjatype.sty
@@ -1,7 +1,7 @@
%%
%% This is file 'zxjatype.sty'.
%%
-%% Copyright (c) 2018 Takayuki YATO (aka. "ZR")
+%% Copyright (c) 2009-2020 Takayuki YATO (aka. "ZR")
%% GitHub: https://github.com/zr-tex8r
%% Twitter: @zr_tex8r
%%
@@ -10,11 +10,12 @@
%% package declaration
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{zxjatype}[2018/05/03 v0.6c ZX Japanese typeset]
+\ProvidesPackage{zxjatype}[2020/01/22 v0.7 ZX Japanese typeset]
\RequirePackage{ifxetex}\RequireXeTeX
%% code guards
\edef\zxjt@restore@codes{%
+ \catcode33=\the\catcode33%
\catcode34=\the\catcode34%
\catcode39=\the\catcode39%
\catcode43=\the\catcode43%
@@ -24,11 +25,13 @@
\catcode58=\the\catcode58%
\catcode60=\the\catcode60%
\catcode62=\the\catcode62%
- \catcode63=\the\catcode63%
\catcode94=\the\catcode94%
\catcode96=\the\catcode96%
+ \catcode124=\the\catcode124%
+ \catcode126=\the\catcode126%
\endlinechar=\the\endlinechar%
\relax}
+\catcode33=12 % <!>
\catcode34=12 % <">
\catcode39=12 % <'>
\catcode43=12 % <+>
@@ -38,9 +41,10 @@
\catcode58=12 % <:>
\catcode60=12 % <<>
\catcode62=12 % <>>
-\catcode63=12 % <?>
\catcode94=7 % <^>
\catcode96=12 % <`>
+\catcode124=12 % <|>
+\catcode126=13 % <~>
\AtEndOfPackage{%
\zxjt@restore@codes
\let\zxjt@restore@codes\@undefined
@@ -49,7 +53,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% BOOTSTRAP CODE
-%
+%
%% definitions
\def\zxjt@pkgname{zxjatype}
@@ -58,7 +62,8 @@
\newif\ifzxjt@adjustcharclass
\newif\ifzxjt@kanakinsoku
\newif\ifzxjt@useinhibitglue
-\providecommand*\bxDebug{\@gobble}
+\newif\ifzxjt@prefercjk
+\providecommand\bxDebug[1]{}
%% process options
\DeclareOption{default}{\zxjt@defaulttrue}
@@ -76,6 +81,8 @@
\DeclareOption{nokanakinsoku}{\zxjt@kanakinsokufalse}
\DeclareOption{useinhibitglue}{\zxjt@useinhibitgluetrue}
\DeclareOption{nouseinhibitglue}{\zxjt@useinhibitgluefalse}
+\DeclareOption{prefercjk}{\zxjt@prefercjktrue}
+\DeclareOption{noprefercjk}{\zxjt@prefercjkfalse}
%
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{xeCJK}}
\ExecuteOptions{default,CJKchecksingle,adjustcharclass}
@@ -90,6 +97,10 @@
\let\zxjt@go@to@main\@empty
}{%
\bxDebug{xeCJK v2.x found.}%
+ \PackageWarningNoLine\zxjt@pkgname
+ {!!!!!!!! IMPORTANT !!!!!!!!\MessageBreak
+ Support for xeCJK v2.x will be *dropped*\MessageBreak
+ in the near future}
\long\def\zxjt@go@to@main#1\zxjt@begin@old@code{}%
}
@@ -130,6 +141,11 @@
\ifzxjt@useinhibitglue
\bool_set_true:N \l__zxjt_useinhibitglue_bool
\fi
+%% \l__zxjt_prefercjk_bool
+\bool_new:N \l__zxjt_prefercjk_bool
+\ifzxjt@prefercjk
+ \bool_set_true:N \l__zxjt_prefercjk_bool
+\fi
%%-------------------------------------- error messages
@@ -150,8 +166,8 @@
}
\__zxjt_msg_new:nn { jafamilyinverbatim-disabled }
{
- \token_to_str:N \(no)jafamilyinverbatim \c_space_tl
- ~is~disabled~in~this~version.
+ \token_to_str:N \( no)jafamilyinverbatim~
+ is~disabled~in~this~version.
}
\__zxjt_msg_new:nn { CJKfam-failed }
{
@@ -181,9 +197,9 @@
% (A mere \scan_stop: suffices?)
\cs_new:Nn \__zxjt_boundary:
{
- \ifhmode
+ \if_mode_horizontal:
\hbox:n {}
- \fi
+ \fi:
}
%% \__zxjt_leavevmode:
@@ -259,7 +275,7 @@
\AtBeginDocument
{
\cs_set_eq:NN \__zxjt_after_decl_CJKfam:n \__zxjt_after_decl_CJKfam_db:n
- \seq_remove_duplicates:N \g__zxjt_CJKfam_seq
+ \seq_gremove_duplicates:N \g__zxjt_CJKfam_seq
\seq_map_function:NN \g__zxjt_CJKfam_seq \__zxjt_after_decl_CJKfam:n
\seq_gclear:N \g__zxjt_CJKfam_seq
}
@@ -332,7 +348,7 @@
\bxDebug { family( #1 )~<=~ \g__zxjt_onefam_info_tl }
\tl_if_empty:NF \g__zxjt_onefam_info_tl
{
- \prop_put:NnV \g__zxjt_CJKfam_prop { #1 } \g__zxjt_onefam_info_tl
+ \prop_gput:NnV \g__zxjt_CJKfam_prop { #1 } \g__zxjt_onefam_info_tl
}
}
@@ -360,6 +376,8 @@
% The encoding used for CJK-families.
\tl_new:N \g__zxjt_encoding_tl
\tl_gset:Nn \g__zxjt_encoding_tl { EU1 }
+\cs_if_exist:NT \g_fontspec_encoding_tl
+ { \tl_set_eq:NN \g__zxjt_encoding_tl \g_fontspec_encoding_tl }
%% \__zxjt_use_CJKfam:
% Switches the NFSS family to the family corresponding to the current CJK-
@@ -501,6 +519,7 @@
"30E7, "30EE, "30F5, "30F6, "30FC, "31F0, "31F1, "31F2, "31F3, "31F4,
"31F5, "31F6, "31F7, "31F8, "31F9, "31FA, "31FB, "31FC, "31FD, "31FE,
"31FF, "309D, "309E, "30FD, "30FE,
+ "1B150, "1B151, "1B152, "1B164, "1B165, "1B166, "1B167,
}
\xeCJKDeclareCharClass { FullRight }
{
@@ -518,6 +537,36 @@
\xeCJKsetup { LongPunct+ = { ^^^^2015 } }
}
+\bool_if:NT \l__zxjt_prefercjk_bool
+ {
+ \clist_map_inline:nn
+ {
+ "2002, "2010, "2011, "2016, "201A, "201E, "2020, "2021,
+ "2022, "2030, "2032, "2033, "2039, "203A, "203B, "203C,
+ "203E, "203F, "2042, "2044, "2047, "2048, "2049, "2051
+ }
+ { \XeTeXcharclass #1 = \c__zxjt_CJK_class_int }
+ \clist_map_inline:nn
+ {
+ { "2070, "243F },
+ { "2460, "27BF },
+ { "2900, "29FF },
+ { "2B00, "2BFF },
+ { "FE50, "FE6F },
+ { "1F100, "1F1DF }
+ }
+ {
+ \clist_set:Nn \l_tmpa_clist {#1}
+ \int_step_inline:nnn
+ { \clist_item:Nn \l_tmpa_clist { 1 } }
+ { \clist_item:Nn \l_tmpa_clist { 2 } }
+ {
+ \int_compare:nNnF { \XeTeXcharclass ##1 } = { \c__zxjt_CJK_class_int }
+ { \XeTeXcharclass ##1 = \c__zxjt_CJK_class_int }
+ }
+ }
+ }
+
%%-------------------------------------- public commands
%%<*> \setjamainfont / \setjasansfont / \setjamonofont
@@ -571,23 +620,29 @@
}
}
-%% \__zxjt_scale_tl
+%% \l__zxjt_scale_tl
% The scale value to be applied to CJK fonts.
-\tl_new:N \__zxjt_scale_tl
+\tl_new:N \l__zxjt_scale_tl
%% \l__zxjt_scale_spec_tl
\tl_new:N \l__zxjt_scale_spec_tl
+%%<+> \zxjatypeJaScale
+% The scale value to be applied to CJK fonts.
+% (Same as \l__zxjt_scale_tl, but developer-level public.)
+
%%<*> \setjafontscale{<real>}
-%% Sets the value of \__zxjt_scale_tl, which defaults to 1.
+%% Sets the value of \l__zxjt_scale_tl, which defaults to 1.
\NewDocumentCommand \setjafontscale { m }
{
% NB: the argument is not expanded
- \tl_set:Nn \__zxjt_scale_tl { #1 }
- \tl_if_blank:VTF \__zxjt_scale_tl
+ \tl_set:Nn \l__zxjt_scale_tl { #1 }
+ \tl_set_eq:NN \zxjatypeJaScale \l__zxjt_scale_tl
+ \tl_set_eq:cN { __zxjt_scale_tl } \l__zxjt_scale_tl
+ \tl_if_blank:VTF \l__zxjt_scale_tl
{ \tl_clear:N \l__zxjt_scale_spec_tl }
- {
+ {
\tl_set:Nn \l__zxjt_scale_spec_tl
- { Scale = \__zxjt_scale_tl , }
+ { Scale = \l__zxjt_scale_tl , }
}
}
@@ -616,11 +671,11 @@
{
\cs_set:Npn \>
{
- \ifmmode
+ \if_mode_math:
\mskip \medmuskip
- \else
+ \else:
\CJKecglue \scan_stop:
- \fi
+ \fi:
}
}
}