From be88ab29c165e6b16091443c3e8f36c4febf8a27 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Wed, 22 Jan 2020 03:02:40 +0000 Subject: CTAN sync 202001220302 --- language/japanese/zxjatype/LICENSE | 2 +- language/japanese/zxjatype/README-ja.md | 108 ++++++++++++++++++++++++++++++-- language/japanese/zxjatype/README.md | 1 + language/japanese/zxjatype/zxjatype.sty | 99 ++++++++++++++++++++++------- 4 files changed, 183 insertions(+), 27 deletions(-) (limited to 'language/japanese/zxjatype') 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[<オプション>...,...]{zxjatype} + +xeCJK と別個に読み込む場合: + + \usepackage[...]{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{} -%% 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: } } } -- cgit v1.2.3