summaryrefslogtreecommitdiff
path: root/language/japanese
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-07-23 03:01:14 +0000
committerNorbert Preining <norbert@preining.info>2023-07-23 03:01:14 +0000
commit8e64fc98a1773bc22a0f010f106d56a028e48597 (patch)
tree29781e66044aca74e0a9fe7b15b9bedde97e5892 /language/japanese
parent05bb4f9ed131a04f54560a856dfbd7bc15981555 (diff)
CTAN sync 202307230301
Diffstat (limited to 'language/japanese')
-rw-r--r--language/japanese/BX/bxcjkjatype/LICENSE2
-rw-r--r--language/japanese/BX/bxcjkjatype/README-ja.md241
-rw-r--r--language/japanese/BX/bxcjkjatype/README.md234
-rw-r--r--language/japanese/BX/bxcjkjatype/bxcjkjatype-ja.pdfbin0 -> 158295 bytes
-rw-r--r--language/japanese/BX/bxcjkjatype/bxcjkjatype-ja.tex400
-rw-r--r--language/japanese/BX/bxcjkjatype/bxcjkjatype.pdfbin0 -> 391593 bytes
-rw-r--r--language/japanese/BX/bxcjkjatype/bxcjkjatype.sty198
-rw-r--r--language/japanese/BX/bxcjkjatype/bxcjkjatype.tex406
-rw-r--r--language/japanese/BX/bxcjkjatype/bxcjkvert-ja.pdfbin0 -> 103927 bytes
-rw-r--r--language/japanese/BX/bxcjkjatype/bxcjkvert-ja.tex129
-rw-r--r--language/japanese/BX/bxcjkjatype/bxcjkvert.pdfbin0 -> 372010 bytes
-rw-r--r--language/japanese/BX/bxcjkjatype/bxcjkvert.tex138
12 files changed, 1229 insertions, 519 deletions
diff --git a/language/japanese/BX/bxcjkjatype/LICENSE b/language/japanese/BX/bxcjkjatype/LICENSE
index 9e7e5a082c..8c47ee7c40 100644
--- a/language/japanese/BX/bxcjkjatype/LICENSE
+++ b/language/japanese/BX/bxcjkjatype/LICENSE
@@ -1,6 +1,6 @@
The MIT License
-Copyright (c) 2016 Takayuki YATO (aka. "ZR")
+Copyright (c) 2013-2023 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/BX/bxcjkjatype/README-ja.md b/language/japanese/BX/bxcjkjatype/README-ja.md
index f92de5499f..c5dbe9768f 100644
--- a/language/japanese/BX/bxcjkjatype/README-ja.md
+++ b/language/japanese/BX/bxcjkjatype/README-ja.md
@@ -28,236 +28,35 @@ pLaTeX カーネルや pLaTeX 用パッケージのものに類似した命令
bxcjkjatype パッケージ
----------------------
-### パッケージ読込
+本バンドルの本体のパッケージである。
- \usepackage[<option>,...]{bxcjkjatype}
+詳細についてはユーザマニュアルを参照されたい。
-利用可能なオプションを以下で挙げる。
+ * bxcjkjatype.pdf: ユーザマニュアル(英語版)
+ * bxcjkjatype-ja.pdf: ユーザマニュアル(日本語版)
-#### 自動囲み込み
-
-文書本体を `CJK(*)` 環境で自動的かつ安全に囲うためのオプション。文書中に
-多量の CJK テキストが含まれる場合、或いは「動く引数」に CJK テキストが
-含まれる場合はこれを指定するのが適切である。
-
- * `whole`、`wholeCJK*`: 文書全体を `CJK*` 環境で囲む。(厳密に言うと
- `\begin{uCJK*}`~`\end{uCJK*}` で囲む。)
- * `wholeCJK`: 文書全体を `CJK` 環境で囲む。(厳密に言うと
- `\begin{uCJK}`~`\end{uCJK}` で囲む。)
- * `nowhole`(既定): `wholeCJK*` 及び `wholeCJK` の否定。
-
-#### 「自動チルダ」
-
-`autotilde` オプションを指定すると、`\CJKtilde` が自動的に呼び出されて
-`~` が和欧文間空白(四分空き)の意味になる。なお、`\CJKtilde` 有効時は
-`\nbs` で非分割欧文空白(本来の `~` の意味)が挿入できる。また、
-`\standardtilde` は `\CJKtilde` の効力を打ち消す。(これらは CJK
-パッケージの機能である。)
-
- * `autotilde`: 全ての `CJK(*)` 環境の先頭で `\autotilde` が呼び出され
- るようにする。
- * `noautotilde`(既定): `autotilde` の否定。
-
-#### フォントマップ設定
-
-[pxchfon パッケージ] と同等のフォントマップのプリセットが利用できる。
-詳細についてはそちらの解説文書を参照されたい。
-
- * `oneweight`、`nooneweight`: pxchfon と同様。
- * pxchfon で利用可能なプリセットオプション(`ms` 等)が利用できる。
- (旧式のものを除く。)
- * `ttfname=<パターン>`: TTC 代替(後述)を行う場合の TTF フォント名の
- パターンを指定する。
- * `ipaex-type1`: 本パッケージのフォント管理を無効にし、ipaex-type1
- パッケージのファミリ(`ipxm` と `ipxg`)を直接用いる。この設定では
- `\mcdefault` の値は `ipxm` に、`\gtdefault` の値は `ipxg` になる。
-
-[pxchfon パッケージ]: http://www.ctan.org/pkg/pxchfon
-
-#### CJK フォントスケール
-
- * `scale=<実数>`: CJK フォントに対するスケール値を設定する。
-
-※0.3 版より、`ipaex-type1` 指定時も CJK フォントスケールが利用できるよう
-になった。
-
-#### その他のオプション
-
- * `everypage`: フォントマップ情報を出力 DVI 文書の全てのページに出力
- する。`dvipdfmx` ドライバでのみ有効。
- * `noeverypage`(既定): `everypage` の否定。
- * ドライバオプション:
- `pdftex`、`dvipdfmx`、`dvips`、`none` が指定できる。ドライバ設定は
- 既定(ipaex-type1)以外のフォントマップの使用時にのみ意味をもつ。
- さらに、フォントマップ変更は `pdftex` と `dvipdfmx` でのみサポート
- されまたこの 2 つの値は常に自動判定可能(PDF モードでは `pdftex`、
- DVI モードでは `dvipdfmx` が既定)なので、実際にはドライバを指定する
- 必要はない。
- * `substmingoth`: CJK パッケージの日本語用総称ファミリとして慣習的に
- 使われているファミリの `min`/`goth`/`maru` について、LaTeX レベル
- で、本パッケージにおける標準ファミリである `mc`/`gt`/`mg` への代替
- を設定する。これにより、`min` 等のファミリの使用を前提とした日本語湯
- テンプレート等を使う場合においても、論理フォントレベルでの代替設定を
- 行う必要がなくなる。
- * `nosubstmingoth`(既定): `substmingoth` の否定。
- * `boldbyembolden`(既定): CJK パッケージの“擬似太字”(`\CJKbold`)
- の処理方法を“重ね打ち”から“合成太字”に変更する。
- * `noboldbyembolden`: `boldbyembolden` の否定。
-
-#### TTC 代替
-
-pdfTeX エンジンは TTC 形式のフォントをサポートしていない(サポートして
-いる OpenType の形式は単体の TTF グリフのものだけである)。従って、
-`\setminchofont` 命令などで TTC フォントを使おうと望むなら、適当なツール
-を使って TTC フォントファイルを個々の TTF フォントファイルに分解する処理
-を行うことが必須になる。
-
-これはエンジン側の制限仕様のため仕方がないだろう。しかし本パッケージを
-用いる場合には他に問題がある。変換後の TTF フォントはファイル名が元のもの
-と異なるため、プリセット設定(`mobo-moga` 等のオプション)が使えないので
-ある。これを解決するために、0.3 版で `ttfname` オプションが新設された。
-
-例えば、パッケージ読込時に `ttfname=*_1` が指定されたとする。この状態で
-本パッケージの処理において「mogam.ttc の最初(0 番)」が要求された場合、
-代わりに「mogam_1.ttf」というファイルが使われる。同様に、「mogam.ttc の
-1 番、2 番、……」については「mogam_2.ttf」「mogam_3.ttf」……での代替が
-行われる。
-
-`ttfname` で指定するファイル名のパターンには「`*_1`」「`TEMP-*-00.TTF`」
-のように「`*` を 1 つ含み、数字列を含む文字列」が指定できる。この `*` の
-部分は要求の TTC ファイルのベース名(`mogam` 等)で置き換えられ、かつ、
-拡張子がない場合は `.ttf` が補われる。その結果の文字列が TTC の最初(0
-番)のフォントに対する代替ファイル名となる。後続(1 番、2 番、……)の
-代替ファイル名は数字部分をインクリメントしたものになる。
-
-### 機能
-
-#### CJK フォントの選択
-
-本パッケージでは、pLaTeX + [japanese-otf パッケージ] で用いられるものと
-同等の 3 つの「総称」CJK ファミリを用意する: 明朝(`\mcfamily`)、
-ゴシック(`\gtfamily`)、丸ゴシック(`\mgfamily`)。既定では ipaex-type1
-パッケージのフォントが割り当てられている:明朝→IPAex明朝、ゴシック→
-IPAexゴシック。この割り当ては変更可能である。
-
- * `\mcfamily`: CJK ファミリを明朝ファミリに変更する。
- `\CJKfamily{\mcdefault}` と等価である。
- * `\gtfamily`: CJK ファミリをゴシックファミリに変更する。
- `\CJKfamily{\gtdefault}` と等価である。
- * `\mgfamily`: CJK ファミリを丸ゴシックファミリに変更する。
- `\CJKfamily{\mgdefault}` と等価である。
-
-高度な命令:
-
- * `\mcdefault`/`\gtdefault`/`\mgdefault`: 総称ファミリに対応する
- CJK ファミリ名である。標準の割当ではこれらの値は `mc`/`gt`/`mg` で
- ありこの割当が既定で用いられる。
-
- * `\setCJKfamilydefault{<CJKファミリ>}`: 既定の CJK ファミリを設定
- する。この既定値は、ある種の命令(例えば `\CJKfamily{}` や
- `\begin{CJK}{UTF8}{}`)でファミリ名が省略された時に用いられる。
- (再定義後の)`\normalfont` は CJK ファミリをこの命令で設定した既定
- ファミリに変更する。
-
- この既定ファミリの既定値は、文書の本体の先頭で有効である欧文ファミリ
- の「対応ファミリ」となる。(次小節を参照。)
-
-[japanese-otf パッケージ]: http://www.ctan.org/pkg/japanese-otf
-
-#### CJK と欧文のファミリの連動
-
-CJK パッケージ(および pTeX エンジン)では CJK と欧文で別々の「現在
-ファミリ」を管理する。この取扱は利点もあるが、多くの場合はこの 2 つの
-「現在ファミリ」を連動させた方が都合がよい。この為、本パッケージでは現在
-欧文フォントを切り替える幾つかの LaTeX 命令について、CJK ファミリを欧文
-の「対応ファミリ」に切り替えるように再定義する。ここで「対応ファミリ」は
-以下のように定められる:
-
- * `\rmfamily`(セリフ) → `\mcfamily`(明朝)
- * `\sffamily`(サンセリフ) → `\gtfamily`(ゴシック)
- * `\ttfamily`(等幅) → `\gtfamily`(ゴシック)
- * その他のファミリについては、対応ファミリは `\mcfamily` とする。
-
-再定義される命令:
-
- * `\rmfamily`/`\sffamily`/`\ttfamily`: 本来の動作の後、CJKファミリ
- を欧文ファミリの「対応ファミリ」に変更する。
- * `\normalfont`: CJK ファミリを、`\setCJKfamilydefault` 命令により
- 指定された既定 CJK ファミリに変更する。
-
-`CJK`/`CJK*` 環境の省略系:
-
- * `\begin{uCJK*}...\end{uCJK*}`: 次のものと等価:
-
- \begin{CJK*}{UTF8}{対応ファミリ}...\end{CJK*}
-
- ただし `対応ファミリ` は現在の欧文ファミリの対応ファミリを表す。
-
- 次のものと等価ではないことに注意:
-
- \begin{CJK*}{UTF8}{}...\end{CJK*}
-
- こちらは既定の CJK ファミリを使用する。
-
- * `\begin{uCJK}...\end{uCJK}`: 次のものと等価:
-
- \begin{CJK}{UTF8}{対応ファミリ}...\end{CJK}
-
-#### フォントマップ設定
-
-これらの命令の使い方は pxchfon パッケージの時と同じであるので、詳細に
-ついてはそちらの解説文書を参照されたい。
-
- * `\setminchofont[<ID>]{<フォントファイル名>}`
- * `\setgothicfont[<ID>]{<フォントファイル名>}`
- * `\setmarugothicfont[<ID>]{<フォントファイル名>}`
- * `\setmediumminchofont[<ID>]{<フォントファイル名>}`
- * `\setboldminchofont[<ID>]{<フォントファイル名>}`
- * `\setmediumgothicfont[<ID>]{<フォントファイル名>}`
- * `\setboldgothicfont[<ID>]{<フォントファイル名>}`
- * `\setxboldgothicfont[<ID>]{<フォントファイル名>}`
-
-ところが、pdfTeX エンジンについてはフォントマップの仕様に関して重大な
-制限が存在する。TrueType グリフであってかつ TTC 形式でないフォントのみ
-が使用できる。(dvipdfmx 使用時は全ての種類の OpenType フォントが使用
-可能。)
-
-注意: 本パッケージは「明朝・細字」のフォントをサポートしない。従って、
-`\setlightminchofont` は動作しない。
-
-#### その他の命令
-
- * `\UTF{<16進数字>}`: CJK 文字を Unicode 符号値で入力する。例えば、
- `\UTF{5B57}` は `\Unicode{"5B}{"57}` と等価である。
-
- * `\CJKforce{<character>...}`: 以降は引数の中にある各々の文字を CJK
- 文字として扱う(CJK フォントで出力される)。
-
- * `\CJKunforce{<character>...}`: `\CJKforce` の効果を打ち消す。
-
- * `\@<character>`: 非 ASCII 文字の前に `\@` がある場合は、その文字
- (その出現のみ)を CJK 文字として扱う。ASCII 文字の前の `\@` は
- LaTeX 本来の意味を保持する。
-
- * `\CJKecglue`: 和欧文間空白を挿入する。`\CJKtilde` が有効な時は `~`
- はこの命令を呼び出す。この命令をユーザが再定義して和欧文間空白の量を
- 調節することができる(和文間空白の `\CJKglue` と同様)。
-
- 使用例:
+bxcjkvert パッケージ
+--------------------
- \renewcommand{\CJKecglue}{\hspace{0.125em minus 0.125em}}
+CJKvert パッケージの改造版であり、縦組と横組の混在が普通に起こりうる
+日本語組版に適合させたものである。
-### 補足事項
+詳細についてはユーザマニュアルを参照されたい。
- * 本パッケージで標準に用いられるフォントは、例えそれに ipaex-type1 の
- フォントが割り当てられている場合でも、縦書きをサポートしない。しかし
- ipaex-type1 が提供するファミリ(`ipxm` と `ipxg`)は縦書きをサポート
- しており、`ipaex-type1` オプションを指定することでそれらのファミリを
- 直接使うことができる。
+ * bxcjkvert.pdf: ユーザマニュアル(英語版)
+ * bxcjkvert-ja.pdf: ユーザマニュアル(日本語版)
更新履歴
--------
+ * Version 0.5 ‹2023/07/23›
+ - 最新の LaTeX への対応。
+
+ * Version 0.4 ‹2016/11/11›
+ - bxcjkvert パッケージを追加。
+ - `CJKtildeasspace` オプションを追加。
+ - (試験的) `defaultmingoth` オプションを追加。
+
* Version 0.3 ‹2016/10/15›
- CJKvert パッケージによる縦組と共存を可能にした。
- hyperref での PDF 文字列の文字化けを防止し。
@@ -281,4 +80,4 @@ CJK パッケージ(および pTeX エンジン)では CJK と欧文で別
--------------------
Takayuki YATO (aka. "ZR")
-http://zrbabbler.sp.land.to/
+https://github.com/zr-tex8r
diff --git a/language/japanese/BX/bxcjkjatype/README.md b/language/japanese/BX/bxcjkjatype/README.md
index 1a2fe8242d..fdc4ae63d2 100644
--- a/language/japanese/BX/bxcjkjatype/README.md
+++ b/language/japanese/BX/bxcjkjatype/README.md
@@ -34,228 +34,36 @@ This package is distributed under the MIT License.
The bxcjkjatype Package
-----------------------
-### Package Loading
+This is the main package of this bundle.
- \usepackage[<option>,...]{bxcjkjatype}
+Please refer to the user manual for detail.
-The available options are described hereafter.
+ * bxcjkjatype.pdf: the user manual (in English)
+ * bxcjkjatype-ja.pdf: the user manual (in Japanese)
-#### Options for auto-wrapping
+The bxcjkvert Package
+---------------------
-These options enable one to wrap the document body with a `CJK(*)`
-environemnt automatically and safely. They are suitable when a document
-contains much amount of CJK text, or some “moving arguemnts” hold
-CJK text.
+Thia package is a tailored version of the CJKvert package,
+accommodated for Japanese typesetting, where mixture of horizontal
+and vertical writings is common.
- * `whole`, `wholeCJK*`: Wraps the whole document body with a `CJK*`
- environment (precisely speaking, with
- `\begin{uCJK*}` ... `\end{uCJK*}` ).
- * `wholeCJK`: Wraps the whole document body with a `CJK` environment
- (precisely speaking, with
- `\begin{uCJK}` ... `\end{uCJK}` ).
- * `nowhole` (default): Negation of `wholeCJK*` or `wholeCJK`.
+Please refer to the user manual for detail.
-#### Options for “auto-tilde”
-
-The option `autotilde` triggers automatic invocation of `\CJKtilde`,
-which makes a tilde character (`~`) insert “shibuaki” (a thin space
-between alphabetic and ideographic letters) rather than a no-break
-space (standard). No-break spaces can still be inserted by the command
-`\nbs`, and `\standardtilde` cancels the effect of `\CJKtilde`. (The
-commands mentioned here belong to CJK package.)
-
- * `autotilde`: Makes `\CJKtilde` invoked at the beginning of every
- `CJK(*)` environemnt.
- * `noautotilde` (default): Negation of `autotilde`.
-
-#### Options for font-mapping
-
-One can use preset font mappings in the same way as in the [pxchfon
-package]. Please refer to the manual of that package for detailed
-explanation of this feature.
-
- * `oneweight`, `nooneweight`: The same as in pxchfon.
- * One can use font preset options (such as `ms`) which are available
- in pxchfon (except obsolete ones).
- * `ttfname=<pattern>`: Specifies the pattern of the TTF font names
- which are used when TTC substitution is employed. For example,
- when `ttfname=*_1` is given, the font “index 0 of mogam.ttc” will
- map to “mogam_1.ttf”, and similarly, “index 1” to “mogam_2.ttf”
- and so on.
- * `ipaex-type1`: Disables the font management of this package and
- directly uses the families provided by the ipaex-type1 package,
- namely `ipxm` and `ipxg`. In this setting the value of `\mcdefault`
- is `ipxm` and the value of `\gtdefault` and `\mgdefault` is `ipxg`,
- so that the higher level commands (such as `\sffamily` and
- `\gtfamily`) can work correctly.
-
-[pxchfon package]: http://www.ctan.org/pkg/pxchfon
-
-#### Options for CJK font scaling
-
- * `scale=<real>`: Sets the scaling factor for CJK fonts.
-
-(With version 0.3 or later, one can employ the scaling even with the
-`ipaex-type1` option.)
-
-#### Other options
-
- * `everypage`: Outputs the font mapping information on every page of
- the resulted DVI document. Available only with `dvipdfmx` driver.
- * `noeverypage` (default): Negation of `everypage`.
- * driver options:
- `pdftex`, `dvipdfmx`, `dvips` and `none` are available. The driver
- setting is relevant only when using font mappings other than the
- default one (ipaex-type1 fonts), so one need not care of drivers
- in using default fonts. Moreover, non-default font mappings are
- supported only by `pdftex` and `dvipdfmx`, and these two values are
- auto-detected (`pdftex` is default in PDF mode and `dvipdfmx` in
- DVI mode). Thus one will never need to specify the driver.
- * `substmingoth`: Applies the substituion of families `min`, `goth`
- and `maru` (used conventionally for Japanese) with families `mc`,
- `gt` and `mg` (standard in this package).
- * `nosubstmingoth` (default): Negation of `substmingoth`.
- * `boldbyembolden` (default): Changes the implemention of `\CJKbold`
- (pseudo-bold) from “overstriking” to “synthetic emboldening”.
- * `noboldbyembolden`: Negation of `boldbyembolden`.
-
-### Usage
-
-#### Selecting CJK fonts
-
-The present package provides three “generic” CJK families in the same
-way as pLaTeX plus the [japanese-otf package]: Mincho family
-(`\mcfamily`), Gothic family (`\gtfamily`), and Maru-gothic family
-(`\mgfamily`). In default setting, the font set from the ipaex-type1
-package are allocated; Mincho family uses IPAex Mincho font, and Gothic
-and Maru-gothic families use IPAex Gothic font. This allocation can be
-altered by users.
-
- * `\mcfamily`: Changes the CJK family to Mincho family. Equivalent
- to `\CJKfamily{\mcdefault}`.
- * `\gtfamily`: Changes the CJK family to Gothic family. Equivalent
- to `\CJKfamily{\gtdefault}`.
- * `\mgfamily`: Changes the CJK family to Maru-gothic family.
- Equivalent to `\CJKfamily{\mgdefault}`.
-
-More advanced commands:
-
- * `\mcdefault`/`\gtdefault`/`\mgdefault`: The names of CJK families
- corresponding to the three generic families. In the standard
- allocation their values are `mc`/`gt`/`mg` respectively and the
- allocation is used as default.
-
- * `\setCJKfamilydefault{<CJK-family>}`: Declares the default CJK
- family. This default value is used when family names are missing
- in some commands, such as `\CJKfamily{}` and `\begin{CJK}{UTF8}{}`.
- The (redefined) `\normalfont` also switches the CJK family to the
- family specified by this command.
-
- The default value of this default family is the “counterpart” of
- the alphabetic font family which is in effect at the beginning of
- the document body. (See the next subsection.)
-
-[japanese-otf package]: http://www.ctan.org/pkg/japanese-otf
-
-#### Synchronization of CJK and non-CJK families
-
-The CJK package (and pTeX engine) manages separate “current families”
-for CJK and alphabetic (non-CJK) families. While this treatment has its
-merit, synchronization of the two “current families” is convenient in
-many cases. Accordingly, tHe present package redefines some of the
-LaTeX commands that switches current alphabetic font families so that
-the CJK family will be switched to the counterpart of the current
-alphabetic family, where the “counterpart” is defined as follows:
-
- * `\rmfamily` (Serif) → `\mcfamily` (Mincho)
- * `\sffamily` (Sans-serif) → `\gtfamily` (Gothic)
- * `\ttfamily` (Monospace) → `\gtfamily` (Gothic)
- * The counterpart of the other families is `\mcfamily`.
-
-Redefined commands:
-
- * `\rmfamily`/`\sffamily`/`\ttfamily`: Changes the CJK family to
- the counterpart of the alphabetic font family after executing the
- original function.
- * `\normalfont`: Changes the CJK family to the default CJK family
- specified by `\setCJKfamilydefault` command.
-
-There are shorthand forms of `CJK`/`CJK*` environemnts:
-
- * `\begin{uCJK*}...\end{uCJK*}`: Equivalent to:
-
- \begin{CJK*}{UTF8}{counterpart}...\end{CJK*}
-
- where `counterpart` means the counterpart of the current alphabetic
- font family.
-
- Note that this is *not* equivalent to
-
- \begin{CJK*}{UTF8}{}...\end{CJK*}
-
- structure, which uses the default CJK family.
-
- * `\begin{uCJK}...\end{uCJK}`: Equivalent to:
-
- \begin{CJK}{UTF8}{counterpart}...\end{CJK}
-
-#### Font mapping
-
-The usage of these commands are the same as in the pxchfon package.
-Please refer to the manual of that package for detail.
-
- * `\setminchofont[<id>]{<font-file>}`
- * `\setgothicfont[<id>]{<font-file>}`
- * `\setmarugothicfont[<id>]{<font-file>}`
- * `\setmediumminchofont[<id>]{<font-file>}`
- * `\setboldminchofont[<id>]{<font-file>}`
- * `\setmediumgothicfont[<id>]{<font-file>}`
- * `\setboldgothicfont[<id>]{<font-file>}`
- * `\setxboldgothicfont[<id>]{<font-file>}`
-
-However there is a major limitation as to the use of font mapping with
-the pdfTeX engine. One can use only TrueType fonts and moreover
-TTC format is not allowed. (One can use any flavor of OpenType fonts
-when using dvipdfmx.)
-
-Note: The present package does not support the light-weight Mincho font,
-and thus `\setlightminchofont` does nothing useful.
-
-#### Other commands
-
- * `\UTF{<hexadecimal-number>}`: Inputs a CJK character through Unicode
- codepoint value. `\UTF{5B57}` is equivalent to `\Unicode{"5B}{"57}`.
-
- * `\CJKforce{<character>...}`: Afterwards Treats the characters given
- in the argument as CJK characters (printed using CJK fonts).
-
- * `\CJKunforce{<character>...}`: Cancels the effect of the `\CJKforce`
- command.
-
- * `\@<character>`: Treats the next character (only that occurrence)
- as a CJK character, when the character is outside ASCII; othersize
- the normal meaning of `\@` is retained.
-
- * `\CJKecglue`: Insers a “shibuaki” space. This will be invoked by
- `~` when `\CJKtilde` is in effect. This command can be redefined by
- users to adjust the value of shibuaki space, just as `\CJKglue` can
- be redefined to adjust inter-ideographic space.
-
- For example:
-
- \renewcommand{\CJKecglue}{\hspace{0.125em minus 0.125em}}
-
-### Remarks
-
- * The standard font families provided by this package does *not*
- support vertical writing, even when using default ipaex-type1 font
- set. However, the families provided by ipaex-type1 (`ipxm` and
- `ipxg`) do support vertical writing, and one can utilize these
- families directly by specifying `ipaex-type1` option.
+ * bxcjkvert.pdf: the user manual (in English)
+ * bxcjkvert-ja.pdf: the user manual (in Japanese)
Revision History
----------------
+ * Version 0.5 ‹2023/07/23›
+ - Adjustment for the recent LaTeX kernel.
+
+ * Version 0.4 ‹2016/11/11›
+ - Added bxcjkvert package.
+ - Added `CJKtildeasspace` option.
+ - (Experimental) Added `defaultmingoth` option.
+
* Version 0.3 ‹2016/10/15›
- Made the vertical writing work well (with CJKvert).
- Avoided garbling of PDF strings created by hyperref.
@@ -279,4 +87,4 @@ Revision History
--------------------
Takayuki YATO (aka. "ZR")
-http://zrbabbler.sp.land.to/
+https://github.com/zr-tex8r
diff --git a/language/japanese/BX/bxcjkjatype/bxcjkjatype-ja.pdf b/language/japanese/BX/bxcjkjatype/bxcjkjatype-ja.pdf
new file mode 100644
index 0000000000..c626abe273
--- /dev/null
+++ b/language/japanese/BX/bxcjkjatype/bxcjkjatype-ja.pdf
Binary files differ
diff --git a/language/japanese/BX/bxcjkjatype/bxcjkjatype-ja.tex b/language/japanese/BX/bxcjkjatype/bxcjkjatype-ja.tex
new file mode 100644
index 0000000000..663599bfe4
--- /dev/null
+++ b/language/japanese/BX/bxcjkjatype/bxcjkjatype-ja.tex
@@ -0,0 +1,400 @@
+% LuaLaTeX 文書; 文字コードは UTF-8
+\documentclass[a4paper]{ltjsarticle}
+\renewcommand{\headfont}{\gtfamily\romanseries{sbc}\sffamily}
+\usepackage{geometry}
+\usepackage{xcolor}
+\usepackage[unicode,colorlinks,hyperfootnotes=false]{hyperref}
+\hypersetup{linkcolor=blue!75!black,urlcolor=green!45!black}
+\usepackage{shortvrb}
+\MakeShortVerb{\|}
+\usepackage{verbatim}
+\newenvironment{myverbatim}
+ {\begin{quote}\small\verbatim}
+ {\endverbatim\end{quote}}
+\newcommand{\PkgVersion}{0.5}
+\newcommand{\PkgDate}{2023/07/23}
+\newcommand{\Pkg}[1]{\textsf{#1}}
+\newcommand{\Meta}[1]{$\langle$\mbox{}#1\mbox{}$\rangle$}
+\newcommand{\Note}{\par\noindent ※}
+\newcommand{\Means}{:\quad}
+\newcommand{\Strong}{\textsf}
+\newcommand{\wbr}{\linebreak[0]}
+\providecommand{\pTeX}{p\TeX}
+\providecommand{\pLaTeX}{p\LaTeX}
+\providecommand{\pdfTeX}{pdf\/\TeX}
+%-----------------------------------------------------------
+\begin{document}
+\title{\Pkg{bxcjkjatype} パッケージ}
+\author{八登崇之\ (Takayuki YATO; aka.~``ZR'')}
+\date{v\PkgVersion\quad[\PkgDate]}
+\maketitle
+
+\begin{abstract}
+本パッケージは、日本語組版に適した\Pkg{CJK}パッケージの設定を提供する。
+その上で、{\pLaTeX}ユーザにとって\Pkg{CJK}パッケージの使用が容易に
+するために、{\pLaTeX}カーネルや{\pLaTeX}用パッケージのものに
+類似した命令を提供する。
+\end{abstract}
+
+\tableofcontents
+
+%===========================================================
+\section{パッケージ読込}
+\label{sec:loading}
+
+\begin{verbatim}
+\usepackage[オプション,...]{bxcjkjatype}
+\end{verbatim}
+
+利用可能なオプションを以下で挙げる。
+
+%-------------------
+\subsection{CJK環境の自動付加}
+
+文書本体を |CJK(*)| 環境で自動的かつ安全に囲うためのオプション。
+文書全体においてCJKを有効にしたい場合、
+および「動く引数」にCJKテキストが含まれる場合は
+これを使うのが適切である。
+
+\begin{itemize}
+\item |whole|、|wholeCJK*|\Means
+ 文書全体を |CJK*| 環境で囲う。
+ \Note 厳密に言うと |\begin{uCJK*}~\end{uCJK*}| で囲う。
+\item |wholeCJK|\Means
+ 文書全体を |CJK| 環境で囲う。
+ \Note 厳密に言うと |\begin{uCJK}~\end{uCJK}| で囲う。
+\item |nowhole|(既定)\Means
+ |wholeCJK*| 及び |wholeCJK| の否定。
+\end{itemize}
+
+%-------------------
+\subsection{「自動チルダ」}
+
+{\pTeX}エンジンや\Pkg{luatexja}パッケージと異なり、
+\Pkg{CJK}パッケージには和欧文間空白(いわゆる“四分空き”)を
+自動挿入する機能はないので、
+文書作成者が手動で入れる必要がある。
+この負担を軽減するため、\Pkg{CJK}パッケージでは
+「非分割欧文空白を入れる命令であるチルダ“|~|”を
+和欧文間空白を入れる命令に切り替える」
+ための機構を用意している。
+|\CJKtilde| という命令を実行すると“|~|”が和欧文間空白に切り替わる%
+\footnote{|\standardtilde| は |\CJKtilde| の効力を打ち消して
+“|~|”の意味を本来の非分割欧文空白に戻す。
+また、|\CJKtilde| 有効時に非分割欧文空白を入れるために、
+常に非分割欧文空白を表す |\nbs| という命令が用意されている。}。
+
+本パッケージで |autotilde| オプションを指定すると、
+|CJK(*)| 環境に入ったときに |\CJKtilde| が自動的に呼び出される
+ようになる。
+このため |CJK(*)| 環境内では“|~|”が和欧文間空白の意味になる。
+
+\begin{itemize}
+\item |autotilde|\Means
+ 全ての |CJK(*)| 環境の先頭で |\autotilde| が呼び出されるようにする。
+\item |noautotilde|(既定)\Means
+ |autotilde| の否定。
+\end{itemize}
+
+%-------------------
+\subsection{PDF文字列中の和欧文間空白の扱い}
+
+先述の通り、{\LaTeX}の文法ではチルダ“|~|”は非分割欧文空白を表す。
+従って、\Pkg{hyperref}パッケージがPDF文字列を生成する際には、
+{\LaTeX}テキスト中の“|~|”は空白文字に変換される。
+
+ところが |\CJKtilde| が有効である場合はこの挙動には問題がある。
+|\CJKtilde| 適用時は“|~|”の意味が和欧文間空白に変わるが、
+和欧文間空白は組版上の現象でありテキスト情報としての空白ではない
+からである。
+従って、本パッケージを読み込んだ場合には、
+|\CJKtilde| 適用時の“|~|”はPDF文字列への変換の際には
+削除される仕様に変更される。
+
+さらに、この挙動はオプションで制御することができる。
+
+\begin{itemize}
+\item |noCJKtildeasspace|(既定)\Means
+ |\CJKtilde| 適用時の“|~|”はPDF文字列では削除される。
+\item |CJKtildeasspace|\Means
+ |\CJKtilde| 適用時の“|~|”はPDF文字列では空白文字に
+ 変換される。
+ \Note 本来の\Pkg{hyperref}の挙動と同じ。
+\end{itemize}
+
+%-------------------
+\subsection{フォントマップ設定}
+
+\href{http://www.ctan.org/pkg/pxchfon}{\Pkg{pxchfon}パッケージ}%
+と同等のフォントマップのプリセットが利用できる。
+詳細についてはそちらの解説文書を参照されたい。
+
+\begin{itemize}
+\item |oneweight|、|nooneweight|\Means
+ \Pkg{pxchfon}と同様。
+\item \Pkg{pxchfon}で利用可能なプリセットオプション(|ms| 等)が
+ 利用できる。
+ (非推奨のものを除く。)
+\item |ttfname=|\Meta{パターン}\Means
+ TTC代替(\ref{ssec:ttfname}節)を行う場合のTTFフォント名のパターン。
+\item |ipaex-type1|\Means
+ 本パッケージのフォント管理を無効にし、\Pkg{ipaex-type1}パッケージ
+ のファミリ(|ipxm| と |ipxg|)を直接用いる。
+ この設定では |\mcdefault| の値は |ipxm| に、|\gtdefault| の
+ 値は |ipxg| になる。
+\end{itemize}
+
+%-------------------
+\subsection{CJKフォントスケール}
+
+\begin{itemize}
+\item |scale=|\Meta{実数}\Means
+ CJKフォントに対するスケール値を設定する。
+\end{itemize}
+
+\Note 0.3版より、|ipaex-type1| 指定時もCJKフォントスケールが
+利用できるようになった。
+
+%-------------------
+\subsection{その他のオプション}
+
+\begin{itemize}
+\item |everypage|\Means
+ フォントマップ情報を出力DVI文書の全てのページに出力する。
+ |dvipdfmx| ドライバでのみ有効。
+\item |noeverypage|(既定)\Means
+ |everypage| の否定。
+\item ドライバオプション\Means
+ |pdftex|、|dvipdfmx|、|dvips|、|none| が指定できる。
+ ドライバ設定は既定(ipaex-type1)以外のフォントマップの使用時に
+ のみ意味をもつ。
+ さらに、フォントマップ変更は |pdftex| と |dvipdfmx| でのみ
+ サポートされ、またこの2つの値は常に自動判定可能
+ (PDFモードでは |pdftex|、DVIモードでは |dvipdfmx| が既定)
+ なので、実際にはドライバを指定する必要はない。
+\item |substmingoth|\Means
+ CJKパッケージの日本語用総称ファミリとして慣習的に使われている
+ ファミリの |min|/|goth|/|maru| について、{\LaTeX} レベルで、
+ 本パッケージにおける標準ファミリである |mc|/|gt|/|mg| への
+ 代替を設定する。
+ これにより、|min| 等のファミリの使用を前提とした日本語用
+ テンプレート等を使う場合においても、論理フォントレベルでの代替設定を
+ 行う必要がなくなる。
+\item |nosubstmingoth|(既定)\Means
+ |substmingoth| の否定。
+\item |boldbyembolden|(既定)\Means
+ \Pkg{CJK}パッケージの“擬似太字”(|\CJKbold|)の処理方法を
+ “重ね打ち”から“合成太字”に変更する。
+\item |noboldbyembolden|\Means
+ |boldbyembolden| の否定。
+\end{itemize}
+
+%-------------------
+\subsection{TTC代替}
+\label{ssec:ttfname}
+
+{\pdfTeX}エンジンはTTC形式のフォントをサポートしていない
+(サポートしているOpenTypeの形式は単体のTTFグリフのものだけである)。
+従って、|\setminchofont| 命令等でTTCフォントを使おうと望むなら、
+適当なツールを使ってTTCフォントファイルを個々のTTFフォントファイル
+に分解する処理を行うしかない\footnote{%
+もちろん、ライセンスの規定のためそれができない場合もある。}。
+
+これはエンジン側の制限仕様のため仕方がないだろう。
+しかし本パッケージを用いる場合には他に問題がある。
+変換後のTTFフォントはファイル名が元のものと異なるため、
+プリセット設定(|mobo-moga| 等のオプション)が使えないのである。
+これを解決するために、0.3版で |ttfname| オプションが新設された。
+
+例えば、パッケージ読込時に |ttfname=*_1| が指定されたとする。
+この状態で本パッケージの処理において「mogam.ttcの最初(0番)」
+が要求された場合、代わりに「mogam\_1.ttf」というファイルが使われる。
+同様に、「mogam.ttcの1番、2番、……」については
+「mogam\_2.ttf」「mogam\_3.ttf」……での代替が行われる。
+
+|ttfname| で指定するファイル名のパターンには「|*_1|」
+「|TEMP-*-00.TTF|」のように「|*| を1つ含み、数字列を含む文字列」
+が指定できる。
+この |*| の部分はプリセットが要求するTTCファイルの
+ベース名(|mogam| 等)で
+置き換えられ、かつ、拡張子がない場合は |.ttf| が補われる。
+その結果の文字列がTTCの最初(0番)のフォントに対する
+代替ファイル名となる。
+後続(1番、2番、……)の代替ファイル名は数字部分を
+インクリメントしたものになる。
+
+%===========================================================
+\section{機能}
+\label{sec:usage}
+
+%-------------------
+\subsection{CJKフォントの選択}
+
+本パッケージでは、{\pLaTeX} +
+\href{http://www.ctan.org/pkg/japanese-otf}{\Pkg{japanese-otf}パッケージ}%
+で用いられるものと同等の3つの「総称」CJKフォントファミリを用意している:
+明朝(|\mcfamily|)、ゴシック(|\gtfamily|)、
+丸ゴシック(|\mgfamily|)。
+既定では\Pkg{ipaex-type1}パッケージのフォントが割り当てられている:
+明朝→IPAex明朝、ゴシック・丸ゴシック→IPAexゴシック。
+この割当は変更可能である。
+
+\begin{itemize}
+\item |\mcfamily|\Means
+ CJKファミリを明朝ファミリに変更する。
+ \Note |\CJKfamily{mcdefault}| と等価である。
+\item |\gtfamily|\Means
+ CJKファミリをゴシックファミリに変更する。
+ \Note |\CJKfamily{gtdefault}| と等価である。
+\item |\mgfamily|\Means
+ CJKファミリを丸ゴシックファミリに変更する。
+ \Note |\CJKfamily{mgdefault}| と等価である。
+\end{itemize}
+
+高度な命令\Means
+
+\begin{itemize}
+\item |\mcdefault|/|\gtdefault|/|\mgdefault|\Means
+ 総称ファミリに対応するCJKファミリ名である。
+ 標準の割当ではこれらの値は |mc|/|gt|/|mg| でありこの割当が
+ 既定で用いられる。
+\item |\setCJKfamilydefault{|\Meta{CJKファミリ}|}|\Means
+ 既定のCJKファミリを設定する。
+ この既定値は、ある種の命令(例えば |\CJKfamily{}|
+ や |\begin{CJK}{UTF8}{}|)でファミリ名が省略された時に用いられる。
+ (再定義後の)|\normalfont| はCJKファミリをこの命令で設定した
+ 既定ファミリに変更する。
+
+ この既定ファミリの既定値は、文書の本体の先頭で有効になっている
+ 欧文ファミリの「対応ファミリ」
+ (\ref{ssec:sync-families}節)となる。
+\end{itemize}
+
+%-------------------
+\subsection{CJKと欧文のファミリの連動}
+\label{ssec:sync-families}
+
+\Pkg{CJK}パッケージ(および{\pTeX}エンジン)ではCJKと欧文で
+別々の「現在ファミリ」を管理する。
+この取扱は利点もあるが、多くの場合はこの2つの「現在ファミリ」を
+連動させた方が都合がよい。
+このため、本パッケージでは現在欧文フォントを切り替える幾つかの
+{\LaTeX}命令について、CJKファミリを欧文の「対応ファミリ」に
+切り替えるように改修する。
+ここで「対応ファミリ」は以下のように定められる:
+
+\begin{itemize}
+\item |\rmfamily|(セリフ) → |\mcfamily|(明朝)
+\item |\sffamily|(サンセリフ) → |\gtfamily|(ゴシック)
+\item |\ttfamily|(等幅) → |\gtfamily|(ゴシック)
+\item その他のファミリについては、対応ファミリは |\mcfamily| とする。
+\end{itemize}
+
+改修される命令:
+
+\begin{itemize}
+\item |\rmfamily|/|\sffamily|/|\ttfamily|\Means
+ 本来の動作の後、CJKファミリを欧文ファミリの「対応ファミリ」
+ に変更する。
+\item
+ |\normalfont|\Means
+ CJKファミリを、|\setCJKfamilydefault| 命令により指定された
+ 既定CJKファミリに変更する。
+\end{itemize}
+
+|CJK|/|CJK*| 環境の省略系\Means
+
+\begin{itemize}
+\item |\begin{uCJK*}...\end{uCJK*}|\Means
+ 次のものと等価\Means
+\begin{verbatim}
+\begin{CJK*}{UTF8}{対応ファミリ}...\end{CJK*}
+\end{verbatim}
+ ただし“|対応ファミリ|”は現在の欧文ファミリの対応ファミリを表す。
+
+ 次のものと等価では\Strong{ない}ことに注意\Means
+\begin{verbatim}
+\begin{CJK*}{UTF8}{}...\end{CJK*}
+\end{verbatim}
+ こちらは既定のCJKファミリ(|\setCJKfamilydefault| の設定)
+ を使用する。
+
+\item |\begin{uCJK}...\end{uCJK}|\Means
+ 次のものと等価\Means
+\begin{verbatim}
+\begin{CJK}{UTF8}{対応ファミリ}...\end{CJK}
+\end{verbatim}
+\end{itemize}
+
+%-------------------
+\subsection{フォントマップ設定}
+
+これらの命令の使い方は\Pkg{pxchfon}パッケージの時と同じであるので、
+詳細については\Pkg{pxchfon}の解説文書を参照されたい。
+
+\begin{itemize}
+\item |\setminchofont[|\Meta{ID}|]{|\Meta{フォントファイル名}|}|
+\item |\setgothicfont[|\Meta{ID}|]{|\Meta{フォントファイル名}|}|
+\item |\setmarugothicfont[|\Meta{ID}|]{|\Meta{フォントファイル名}|}|
+\item |\setmediumminchofont[|\Meta{ID}|]{|\Meta{フォントファイル名}|}|
+\item |\setboldminchofont[|\Meta{ID}|]{|\Meta{フォントファイル名}|}|
+\item |\setmediumgothicfont[|\Meta{ID}|]{|\Meta{フォントファイル名}|}|
+\item |\setboldgothicfont[|\Meta{ID}|]{|\Meta{フォントファイル名}|}|
+\item |\setxboldgothicfont[|\Meta{ID}|]{|\Meta{フォントファイル名}|}|
+\end{itemize}
+
+ただし、{\pdfTeX}エンジン使用時は、
+エンジン自体の制限仕様のため、
+「TrueTypeグリフであってかつTTC形式で\Strong{ない}フォント」
+のみが使用できる。
+(dvipdfmx使用時は全ての種類のOpenTypeフォントが使用可能。)
+
+\Note
+本パッケージは「明朝・細字」のフォントをサポートしない。
+従って、|\setlightminchofont| は動作しない。
+
+%-------------------
+\subsection{その他の命令}
+
+\begin{itemize}
+\item |\UTF{|\Meta{16進数字}|}|\Means
+ CJK文字をUnicode符号値で入力する。
+ 例えば、|\UTF{5B57}| は |\Unicode{"5B}{"57}| と等価である。
+\item |\CJKforce{|\Meta{文字}…|}|\Means
+ 以降は引数の中にある各々の文字をCJK文字として扱う
+ (CJKフォントで出力される)。
+\item
+ |\CJKunforce{|\Meta{文字}…|}|\Means
+ |\CJKforce| の効果を打ち消す。
+\item |\@|\Meta{文字}\Means
+ 非ASCII文字の前に |\@| がある場合は、その文字(その出現のみ)を
+ CJK文字として扱う。
+ ASCII文字の前の |\@| は{\LaTeX}本来の意味を維持する。
+\item |\CJKecglue|\Means
+ 和欧文間空白を挿入する。
+ |\CJKtilde| が有効時の“|~|”に相当する
+ (“|~|”実際にこの命令を呼び出す)。
+ この命令をユーザが再定義して和欧文間空白の量を調節することが
+ できる(和文間空白の |\CJKglue| と同様)。
+
+ 使用例\Means
+\begin{verbatim}
+\renewcommand{\CJKecglue}{\hspace{0.125em minus 0.125em}}
+\end{verbatim}
+\end{itemize}
+
+%===========================================================
+\section{補足事項}
+\label{sec:remarks}
+
+\begin{itemize}
+\item 本パッケージで標準に用いられるフォントは、例えそれに
+ ipaex-type1のフォントが割り当てられている場合でも、縦書きを
+ サポートしない。
+ しかし\Pkg{ipaex-type1}が提供するファミリ(|ipxm| と |ipxg|)そのものは
+ 縦書きをサポートしており、|ipaex-type1| オプションを指定することで
+ それらのファミリを直接使うことができる。
+\end{itemize}
+
+%===========================================================
+\end{document}
diff --git a/language/japanese/BX/bxcjkjatype/bxcjkjatype.pdf b/language/japanese/BX/bxcjkjatype/bxcjkjatype.pdf
new file mode 100644
index 0000000000..a29061a3a3
--- /dev/null
+++ b/language/japanese/BX/bxcjkjatype/bxcjkjatype.pdf
Binary files differ
diff --git a/language/japanese/BX/bxcjkjatype/bxcjkjatype.sty b/language/japanese/BX/bxcjkjatype/bxcjkjatype.sty
index f530e030e9..c116773672 100644
--- a/language/japanese/BX/bxcjkjatype/bxcjkjatype.sty
+++ b/language/japanese/BX/bxcjkjatype/bxcjkjatype.sty
@@ -1,7 +1,7 @@
%%
%% This is file 'bxcjkjatype.sty'.
%%
-%% Copyright (c) 2016 Takayuki YATO (aka. "ZR")
+%% Copyright (c) 2013-2023 Takayuki YATO (aka. "ZR")
%% GitHub: https://github.com/zr-tex8r
%% Twitter: @zr_tex8r
%%
@@ -10,13 +10,40 @@
%% package declaration
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{bxcjkjatype}[2016/10/15 v0.3]
+\ProvidesPackage{bxcjkjatype}[2023/07/23 v0.5]
\def\bxjy@pkgname{bxcjkjatype}
-
-%% definitions
\def\bxjy@error{\PackageError\bxjy@pkgname}
-\def\bxjy@warn{\PackageWarning\bxjy@pkgname}
-\def\bxjy@info{\PackageInfo\bxjy@pkgname}
+
+%--------------------------------------- environment check
+
+%% \bxjy@ifprimitive\CS{<true>}{<false>}
+\@onlypreamble\bxjy@ifprimitive
+\def\bxjy@ifprimitive#1{%
+ \edef\bxjy@tmpa{\string#1}\edef\bxjy@tmpb{\meaning#1}%
+ \ifx\bxjy@tmpa\bxjy@tmpb\expandafter\@firstoftwo
+ \else\expandafter\@secondoftwo\fi
+}
+
+%% engine check
+\@tempswatrue
+\bxjy@ifprimitive\eTeXversion{}{%else
+ \IfFileExists{bxcjkjatype-lite.sty}{%
+ \PackageWarningNoLine\bxjy@pkgname
+ {The e-TeX extension is missing,\MessageBreak
+ so Lite version is used instead}%
+ \RequirePackageWithOptions{bxcjkjatype-lite}\relax
+ \endinput\relax
+ }{\@tempswafalse}%
+}
+\bxjy@ifprimitive\kanjiskip{\@tempswafalse}{}
+\bxjy@ifprimitive\luatexversion{\@tempswafalse}{}
+\bxjy@ifprimitive\XeTeXversion{\@tempswafalse}{}
+\if@tempswa\else
+ \PackageError\bxjy@pkgname
+ {The engine in use is not supported}%
+ {Only pdfTeX engine is supported.\MessageBreak
+ Package loading is aborted.}
+\expandafter\endinput\fi\relax
%--------------------------------------- helpers
@@ -29,34 +56,11 @@
\def\bxjy@mark{\bxjy@mark@}
\def\bxjy@end{\bxjy@end@}
-%% \bxjy@ifprimitive\CS{<true>}{<false>}
-\@onlypreamble\bxjy@ifprimitive
-\def\bxjy@ifprimitive#1{%
- \edef\bxjy@tmpa{\string#1}%
- \edef\bxjy@tmpb{\meaning#1}%
- \ifx\bxjy@tmpa\bxjy@tmpb \expandafter\@firstoftwo
- \else \expandafter\@secondoftwo \fi
-}
-
%% \bxjy@cond\ifXX...\fi{<true>}{<false>}
\@gobbletwo\if\if \def\bxjy@cond#1\fi{%
#1\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
}
-%--------------------------------------- environment check
-
-%% engine check
-\bxjy@oktrue
-\bxjy@ifprimitive\kanjiskip{\bxjy@okfalse}{}
-\bxjy@ifprimitive\luatexversion{\bxjy@okfalse}{}
-\bxjy@ifprimitive\XeTeXversion{\bxjy@okfalse}{}
-\bxjy@ifprimitive\eTeXversion{}{\bxjy@okfalse}
-\ifbxjy@ok\else
- \bxjy@error{The engine in use is not supported}%
- {Only pdfTeX engine is supported.\MessageBreak
- Package loading is aborted.}
-\expandafter\endinput\fi\relax
-
%--------------------------------------- option handling
%% using keyval
@@ -80,8 +84,10 @@
\DeclareOption{everypage}{\bxjy@everypagetrue}
\DeclareOption{noeverypage}{\bxjy@everypagefalse}
\newif\ifbxjy@ipaex
+\newif\ifbxjy@defaultmin
\let\bxjy@oneweight=f
\DeclareOption{ipaex-type1}{\bxjy@ipaextrue}
+\DeclareOption{defaultmingoth}{\bxjy@defaultmintrue}
\DeclareOption{oneweight}{\let\bxjy@oneweight=t}
\DeclareOption{nooneweight}{\let\bxjy@oneweight=f}
\newif\ifbxjy@autotilde
@@ -99,14 +105,20 @@
\newif\ifbxjy@substmin
\DeclareOption{substmingoth}{\bxjy@substmintrue}
\DeclareOption{nosubstmingoth}{\bxjy@substminfalse}
+\newif\ifbxjy@tildespace
+\DeclareOption{CJKtildeasspace}{\bxjy@tildespacetrue}
+\DeclareOption{noCJKtildeasspace}{\bxjy@tildespacefalse}
% preset spec options
+% NB. All of the (non-obsolete) options of pxchfon are also
+% listed here, but some of them are useless in this package.
\def\bxjy@all@main@preset{%
%(uniweight)
ms,ipa,ipaex,%
%(multiweight)
- ms-hg,ipa-hg,moga-mobo,moga-maruberi,%
- kozuka-pro,kozuka-pr6,kozuka-pr6n,%
- hiragino-pro,hiragino-pron,morisawa-pro,morisawa-pr6n}
+ ms-hg,ipa-hg,ipaex-hg,moga-mobo,moga-maruberi,%
+ kozuka-pro,kozuka-pr6,kozuka-pr6n,hiragino-pro,hiragino-pron,%
+ hiragino-elcapitan-pro,hiragino-elcapitan-pron,%
+ morisawa-pro,morisawa-pr6n,yu-win,yu-win10,yu-osx}
\let\bxjy@main@preset\relax
\def\bxjy@do#1{\DeclareOption{#1}{\def\bxjy@main@preset{#1}}}
\@for\bxjy@x:=\bxjy@all@main@preset\do{%
@@ -119,14 +131,15 @@
\let\bxjy@scale\relax
\define@key{bxjy}{scale}{%
\def\bxjy@scale{#1}}
-% 'verrtical=<val>'
-\let\bxjy@vertical\@empty
-\define@key{bxjy}{vertical}[true]{%
- \def\bxjy@vertical{#1}}
% 'ttfname=<val>'
\let\bxjy@ttfname\@empty
\define@key{bxjy}{ttfname}{%
\def\bxjy@ttfname{#1}}
+% 'vertical' (removed)
+\define@key{bxjy}{vertical}[true]{%
+ \PackageError\bxjy@pkgname
+ {Option 'vertical' is abolished}%
+ {\@ehc}}
%% Dispatch options
\ProcessOptions*
@@ -134,10 +147,13 @@
%% Check the driver specified
\def\bxjy@tmpa#1#2{%
- \bxjy@info{Driver auto-detected: #2}%
+ \PackageInfo\bxjy@pkgname
+ {Driver auto-detected: #2}%
\let\bxjy@driver#1}
\def\bxjy@tmpb#1#2{%
- \bxjy@error{Wrong driver specified, changed to: #2}\@ehc%
+ \PackageError\bxjy@pkgname
+ {Wrong driver specified, changed to: #2}%
+ {\@ehc}%
\let\bxjy@driver#1}
\ifnum\ifdefined\pdfoutput\pdfoutput\else\z@\fi>\z@
\unless\ifdefined\bxjy@driver
@@ -158,11 +174,11 @@
\bxjy@error{Preset options cannot go with 'ipaex-type1'}\@ehc
\let\bxjy@main@preset\relax
\fi\fi
-\ifx \bxjy@driver\bxjy@none \unless\ifx\bxjy@main@preset\relax
+\ifx\bxjy@driver\bxjy@none \unless\ifx\bxjy@main@preset\relax
\bxjy@error{Preset options require a valid driver}\@ehc
\let\bxjy@main@preset\relax
\fi\fi
-\ifx \bxjy@driver\bxjy@none
+\ifx\bxjy@driver\bxjy@none
\bxjy@boldbyemboldenfalse
\fi
@@ -198,7 +214,6 @@
\ifbxjy@everypage\ifx\bxjy@driver\bxjy@dvipdfmx
\RequirePackage{atbegshi}
\fi\fi
-%%
%%<+> \FirstCJKUse
%%<+> \EveryCJKUse
@@ -213,39 +228,6 @@
\newcommand*\EveryCJKUse{%
\gappto\bxjy@every@cjk@use@hook}
-%--------------------------------------- vertical
-
-%% constants
-\chardef\bxjy@vert@none=0
-\chardef\bxjy@vert@false=0
-\chardef\bxjy@vert@=0
-\chardef\bxjy@vert@sub=1
-\chardef\bxjy@vert@main=2
-\chardef\bxjy@vert@true=2
-
-%% \bxjy@vert
-\let\bxjy@vert\bxjy@vert@none
-\ifcsdef{bxjy@vert@\bxjy@vertical}{%
- \letcs\bxjy@vert{bxjy@vert@\bxjy@vertical}
-}{%else
- \bxjy@error{Invalid value of 'vertical': \bxjy@vertical}\@ehc
-}
-\ifcase\bxjy@vert %none
- \AfterEndPreamble{\csuse{CJKhorz}}
-\or %sub
- \RequirePackage{CJKvert}[]%
- \AfterEndPreamble{\CJKhorz}
-\or %main
- \RequirePackage{CJKvert}[]%
- \AfterEndPreamble{\CJKvert}
-\fi
-\AtBeginDocument{%
- \@ifpackageloaded{CJKvert}{%
- \bxjy@patch@CJKsymbol@CJKvert
- \patchcmd{\CJKvert}{\normalfont}{\bxjy@normalafont}{}{}%
- \patchcmd{\CJKhorz}{\normalfont}{\bxjy@normalafont}{}{}%
- }{}}
-
%--------------------------------------- user interface
%%%%<*> \setminchofont/\setgothicfont/etc.
@@ -290,7 +272,6 @@
}
%%<*> \setCJKfamilydefault{<fam>}
-%\newif\ifbxjy@default@set
\newrobustcmd*\setCJKfamilydefault[1]{%
\bxjy@default@settrue
\CJKencfamily{UTF8}{#1}}
@@ -319,8 +300,15 @@
\fi
%%<*> \>
+\bxjy@okfalse
\def\bxjy@tmpa{\mskip\medmuskip}
-\ifx\>\bxjy@tmpa
+\ifx\>\bxjy@tmpa \bxjy@oktrue
+\else\ifx\>\medspace
+ \long\def\bxjy@tmpa{\tmspace+\medmuskip{.2222em}}
+ \begingroup\expandafter\endgroup\expandafter
+ \ifx\csname : \endcsname\bxjy@tmpa \bxjy@oktrue \fi
+\fi\fi
+\ifbxjy@ok
\def\>{\ifmmode\mskip\medmuskip\else \CJKecglue\ignorespaces \fi}
\fi
@@ -401,8 +389,8 @@
}
\def\bxjy@cjk@force#1{%
\expandafter\bxjy@cjkforce@do
- \csname u8:#1\expandafter\endcsname
- \csname bxjy@U/#1\endcsname{#1}%
+ \csname u8:#1\expandafter\endcsname
+ \csname bxjy@U/#1\endcsname{#1}%
}
%%<*> \CJKforced{<kanji>}
@@ -429,12 +417,12 @@
\bxjy@cond\ifcat\noexpand\bxjy@tok\@sptoken\fi{\bxjy@org@at}{%
\bxjy@cond\ifcat\noexpand\bxjy@tok\bgroup\fi{\CJKforced}{%
\bxjy@cond\ifcat\noexpand\bxjy@tok\relax\fi{\bxjy@at@c}{%
- \bxjy@org@at
+ \bxjy@org@at
}}}}%
}
\def\bxjy@at@c#1{%
\bxjy@cond\ifcat\noexpand#1\noexpand~\fi{\CJKforced}{%
- \bxjy@org@at
+ \bxjy@org@at
}#1%
}
@@ -483,7 +471,7 @@
\fi
\fi
\ifx\bxjy@ttfname@ptn\relax
- \@latex@warning@no@line
+ \PackageWarningNoLine\bxjy@pkgname
{Option 'ttfname' has an invalid value:\MessageBreak
"\bxjy@ttfname"}%
\fi
@@ -511,9 +499,10 @@
\ifdefined\pdfmatch
\bxjy@set@ttfname@ptn
\else
- \bxjy@error
+ \PackageError\bxjy@pkgname
{Option 'ttfname' cannot be used because your\MessageBreak
- pdfTeX engine is too old}\@ehc
+ pdfTeX engine is too old}%
+ {\@ehc}%
\fi
\fi
@@ -636,7 +625,7 @@
\letcs\bxjy@normalafont{normalfont }
%% Add patches to \rmfamily, etc.
-\csappto{rmfamily }{%
+\csappto{rmfamily }{% FIXME
\CJKfamily{\mcdefault}}
\csappto{sffamily }{%
\CJKfamily{\gtdefault}}
@@ -721,6 +710,15 @@
\let\extract@font\relax \pickup@font
\endgroup}
+%--------------------------------------- defaultmingoth
+\ifbxjy@defaultmin
+
+%% default changed
+\renewcommand{\mcdefault}{min}
+\renewcommand{\gtdefault}{goth}
+\renewcommand{\mgdefault}{maru}
+
+\fi
%--------------------------------------- ipaex-type1
\ifbxjy@ipaex
@@ -922,8 +920,13 @@
%%<+> \bxcjkjatypeHyperrefPatchDone
%% Informs that the patch is applied.
+\ifbxjy@tildespace
+\let\bxcjkjatypeHyperrefPatchDone=f
+\else
\let\bxcjkjatypeHyperrefPatchDone=t
+\fi
+\unless\ifbxjy@tildespace %----<*!CJKtildeasspace>
%% prepare
\begingroup
\CJK@input{UTF8.bdg}% emerge CJK@UTF8Binding
@@ -945,6 +948,7 @@
\bxjy@org@LetUnexpandableSpace#1%
\fi
}
+\fi %----</!CJKtildeasspace>
%--------------------------------------- preset font mappings
@@ -998,6 +1002,9 @@
\bxjy@declare@preset{ipa-hg}{%
\bxjy@multiweight{ipam.ttf}{ipam.ttf}{:0:hgrme.ttc}%
{:0:hgrgm.ttc}{:0:hgrge.ttc}{:0:hgrsgu.ttc}{ipag.ttf}{hgrsmp.ttf}}
+\bxjy@declare@preset{ipaex-hg}{%
+ \bxjy@multiweight{ipaexm.ttf}{ipaexm.ttf}{:0:hgrme.ttc}%
+ {:0:hgrgm.ttc}{:0:hgrge.ttc}{:0:hgrsgu.ttc}{ipaexg.ttf}{hgrsmp.ttf}}
\bxjy@declare@preset{moga-mobo}{%
\bxjy@enable@switch@realfont
\bxjy@multiweight{\bxjy@MI mogam.ttc}{\bxjy@MI mogam.ttc}%
@@ -1033,6 +1040,16 @@
\bxjy@multiweight{HiraMinProN-W2.otf}{HiraMinProN-W3.otf}%
{HiraMinProN-W6.otf}{HiraKakuProN-W3.otf}{HiraKakuProN-W6.otf}%
{HiraKakuStdN-W8.otf}{HiraKakuProN-W6.otf}{HiraMaruProN-W4.otf}}
+\bxjy@declare@preset{hiragino-elcapitan-pro}{%
+ \usecmapforalphabet
+ \bxjy@multiweight{HiraMinPro-W2.otf}{:1:HiraginoSerif-W3.ttc}%
+ {:1:HiraginoSerif-W6.ttc}{:3:HiraginoSans-W3.ttc}{:3:HiraginoSans-W6.ttc}%
+ {:2:HiraginoSans-W8.ttc}{:3:HiraginoSans-W6.ttc}{:0:HiraginoSansR-W4.ttc}}
+\bxjy@declare@preset{hiragino-elcapitan-pron}{%
+ \usecmapforalphabet
+ \bxjy@multiweight{HiraMinProN-W2.otf}{:0:HiraginoSerif-W3.ttc}%
+ {:0:HiraginoSerif-W6.ttc}{:2:HiraginoSans-W3.ttc}{:2:HiraginoSans-W6.ttc}%
+ {:3:HiraginoSans-W8.ttc}{:2:HiraginoSans-W6.ttc}{:1:HiraginoSansR-W4.ttc}}
\bxjy@declare@preset{morisawa-pro}{%
\usecmapforalphabet
\bxjy@multiweight{A-OTF-RyuminPro-Light.otf}{A-OTF-RyuminPro-Light.otf}%
@@ -1045,6 +1062,19 @@
{A-OTF-FutoMinA101Pr6N-Bold.otf}{A-OTF-GothicBBBPr6N-Medium.otf}%
{A-OTF-FutoGoB101Pr6N-Bold}{A-OTF-MidashiGoPr6N-MB31.otf}%
{A-OTF-GothicBBBPr6N-Medium.otf}{A-OTFJun101Pr6N-Light.otf}}
+\bxjy@declare@preset{yu-win}{%
+ \bxjy@multiweight{yuminl.ttf}{yumin.ttf}%
+ {yumindb.ttf}{yugothic.ttf}{yugothib.ttf}%
+ {yugothib.ttf}{yugothic.ttf}{yugothic.ttf}}
+\bxjy@declare@preset{yu-win10}{%
+ \bxjy@multiweight{yuminl.ttf}{yumin.ttf}%
+ {yumindb.ttf}{:0:YuGothR.ttc}{:0:YuGothB.ttc}%
+ {:0:YuGothB.ttc}{:0:YuGothM.ttc}{:0:YuGothM.ttc}}
+\bxjy@declare@preset{yu-osx}{%
+ \usecmapforalphabet
+ \bxjy@multiweight{YuMin-Medium.otf}{YuMin-Medium.otf}%
+ {YuMin-Demibold.otf}{YuGo-Medium.otf}{YuGo-Bold.otf}%
+ {YuGo-Bold.otf}{YuGo-Medium.otf}{YuGo-Medium.otf}}
%% ... and invokes the specified one!
\ifx\bxjy@main@preset\relax\else
diff --git a/language/japanese/BX/bxcjkjatype/bxcjkjatype.tex b/language/japanese/BX/bxcjkjatype/bxcjkjatype.tex
new file mode 100644
index 0000000000..2b153fd648
--- /dev/null
+++ b/language/japanese/BX/bxcjkjatype/bxcjkjatype.tex
@@ -0,0 +1,406 @@
+% pdfLaTeX document; UTF-8
+\documentclass[a4paper]{article}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern,textcomp}
+\usepackage{geometry}
+\usepackage{xcolor}
+\usepackage[unicode,colorlinks]{hyperref}
+\hypersetup{linkcolor=blue!75!black,urlcolor=green!45!black}
+\usepackage{shortvrb}
+\MakeShortVerb{\|}
+\usepackage{verbatim}
+\newenvironment{myverbatim}
+ {\begin{quote}\small\verbatim}
+ {\endverbatim\end{quote}}
+\newcommand*{\Cs}[1]{\texttt{\textbackslash #1}}
+\newcommand{\PkgVersion}{0.5}
+\newcommand{\PkgDate}{2023/07/23}
+\newcommand{\Pkg}[1]{\textsf{#1}}
+\newcommand{\Meta}[1]{$\langle$\textit{#1}$\rangle$}
+\newcommand{\Note}{\par\noindent \emph{Note:}\quad}
+\newcommand{\Means}{:\hspace{1em plus 1em}}
+\newcommand{\wbr}{\linebreak[0]}
+\providecommand{\pTeX}{p\TeX}
+\providecommand{\pLaTeX}{p\LaTeX}
+\providecommand{\pdfTeX}{pdf\/\TeX}
+%-----------------------------------------------------------
+\begin{document}
+\title{The \Pkg{bxcjkjatype} Package}
+\author{Takayuki YATO (aka.~``ZR'')}
+\date{v\PkgVersion\quad[\PkgDate]}
+\maketitle
+
+\begin{abstract}
+This package provides working configuration of the \Pkg{CJK} package
+suitable for Japanese typesetting of moderate quality.
+Moreover, it facilitates use of the \Pkg{CJK} package for {\pLaTeX}
+users, by providing commands that are similar to those used by the
+{\pLaTeX} kernel and some other packages used with it.
+\end{abstract}
+
+\tableofcontents
+
+%===========================================================
+\section{Package Loading}
+\label{sec:loading}
+
+\begin{verbatim}
+\usepackage[<option>,...]{bxcjkjatype}
+\end{verbatim}
+
+The available options are described hereafter.
+
+%-------------------
+\subsection{Options for auto-wrapping by CJK environments}
+
+These options wrap the document body with a |CJK(*)|
+environment automatically and safely.
+They are suitable
+when CJK needs to be effective in the whole document,
+or some ``moving arguments'' hold CJK text.
+
+\begin{itemize}
+\item |whole|, |wholeCJK*|\Means
+ Wraps the whole document body with a |CJK*| environment.
+ \Note Precisely speaking,
+ it wraps with |\begin{uCJK*}|\ldots\wbr|\end{uCJK*}|.
+\item |wholeCJK|\Means
+ Wraps the whole document body with a |CJK| environment.
+ \Note Precisely speaking,
+ it wraps with |\begin{uCJK}|\ldots\wbr|\end{uCJK}|.
+\item |nowhole| (default)\Means
+ Negation of |wholeCJK*| or |wholeCJK|.
+\end{itemize}
+
+%-------------------
+\subsection{Options for ``auto-tilde''}
+
+The \Pkg{CJK} package does not support auto-insertion of ``shibuaki''
+(a thin space between alphabetic and ideographic letters)
+and thus authors must manually insert ``shibuaki''.
+To help them \Pkg{CJK} package provides a mechanism
+to switch the meaning of the tilde character ``|~|''
+between a non-breaking space (the original meaning)
+and ``shibuaki''.
+The |\autotilde| command changes ``|~|'' to ``shibuaki''%
+\footnote{\Cs{standardtilde} cancels the effect of \Cs{CJKtilde}
+ and changes ``\texttt{\textasciitilde}'' back to non-breaking space.
+ \Cs{nbs} always inserts non-breaking space,
+ which is useful in CJK environemtns.}.
+
+The option |autotilde| triggers automatic invocation of |\CJKtilde|,
+which makes ``|~|'' in CJK environments insert ``shibuaki''
+by default.
+
+\begin{itemize}
+\item |autotilde|\Means
+ Makes |\CJKtilde| invoked at the beginning of every |CJK(*)|
+ environment.
+\item |noautotilde| (default)\Means
+ Negation of |autotilde|.
+\end{itemize}
+
+%-------------------
+\subsection{Options for configuring ``shibuaki'' in PDF strings}
+
+As explained above,
+in {\LaTeX} grammar ``|~|'' represents a non-breaking space.
+Accordingly, when the \Pkg{hyperref} package generates PDF strings,
+``|~|'' in {\LaTeX} text will be converted to a space character.
+
+However, when |\CJKtilde| is effective
+the meaning of ``|~|'' changes to ``shibuaki''.
+The ``shibuaki'' is device on typesetting
+and is not a space as text data,
+and thus the behavior of \Pkg{hyperref} is undesirable.
+When this package is loaded, ``|~|'' with |\CJKtilde| effective
+is tailored to be deleted at conversion to PDF strings.
+
+Moreover this behavior can be configured by options.
+
+\begin{itemize}
+\item |noCJKtildeasspace| (default)\Means
+ When |\CJKtilde| is effective,
+ ``|~|'' will be deleted in PDF strings.
+\item |CJKtildeasspace|\Means
+ When |\CJKtilde| is effective,
+ ``|~|'' will be converted to a space character in PDF strings.
+ \Note This is the original behavior of \Pkg{hyperref}.
+\end{itemize}
+
+%-------------------
+\subsection{Options for font-mapping}
+
+You can use preset font mappings in the same way as in the
+\href{http://www.ctan.org/pkg/pxchfon}{\Pkg{pxchfon} package}.
+Please refer to the manual of that package for detailed explanation
+of this feature.
+
+\begin{itemize}
+\item |oneweight|, |nooneweight|\Means
+ The same as in \Pkg{pxchfon}.
+\item You can use font preset options (such as |ms|) which are available
+ in \Pkg{pxchfon} (except obsolete ones).
+\item |ttfname=|\Meta{pattern}\Means
+ Specifies the pattern of the TTF font names which are used when TTC
+ substitution (Section~\ref{ssec:ttfname}) is employed.
+
+\item |ipaex-type1|\Means
+ Disables the font management of this package and directly uses the
+ families provided by the \Pkg{ipaex-type1} package,
+ namely |ipxm| and |ipxg|.
+ In this setting the value of |\mcdefault| is |ipxm| and the value of
+ |\gtdefault| and |\mgdefault| is |ipxg|, so that the higher level
+ commands (such as |\sffamily| and |\gtfamily|) can work correctly.
+\end{itemize}
+
+%-------------------
+\subsection{Options for CJK font scaling}
+
+\begin{itemize}
+\item |scale=|\Meta{real}\Means
+ Sets the scaling factor for CJK fonts.
+\end{itemize}
+
+\Note When using version 0.3 or later,
+one can employ the scaling even with the
+|ipaex-type1| option.
+
+%-------------------
+\subsection{Other options}
+
+\begin{itemize}
+\item |everypage|\Means
+ Outputs the font mapping information on every page of the resulted
+ DVI document.
+ Available only with |dvipdfmx| driver.
+\item |noeverypage| (default)\Means
+ Negation of |everypage|.
+\item Driver options\Means
+ |pdftex|, |dvipdfmx|, |dvips| and |none| are available.
+ The driver setting is relevant only when using font mappings other
+ than the default one (ipaex-type1 fonts), so you need not care of
+ drivers in using default fonts.
+ Moreover, non-default font mappings are supported only by |pdftex|
+ and |dvipdfmx|, and these two values are auto-detected
+ (|pdftex| is default in PDF mode and |dvipdfmx| in DVI mode).
+ Thus you will never need to specify the driver.
+\item |substmingoth|\Means
+ Applies the substituion of families |min|, |goth| and |maru|
+ (used conventionally for Japanese) with families |mc|, |gt| and |mg|
+ (standard in this package).
+\item |nosubstmingoth| (default)\Means
+ Negation of |substmingoth|.
+\item |boldbyembolden| (default)\Means
+ Changes the implementation of |\CJKbold| (pseudo-bold) from
+ ``overstriking'' to ``synthetic emboldening''.
+\item |noboldbyembolden|\Means
+ Negation of |boldbyembolden|.
+\end{itemize}
+
+%-------------------
+\subsection{TTC substitution}
+\label{ssec:ttfname}
+
+The {\pdfTeX} engine does not support fonts in TTC format.
+Thus when you want to use TTC fonts for this package,
+all you can do is to decompose a TTC font
+into several TTF fonts.
+
+Moreover there is another problem when you use this package.
+The decomposed TTF files have names
+different from the original TTC font,
+which means that
+the preset settings (options such as |moba-moga|) no longer work.
+The |ttfname| option is a workaround for this problem.
+
+The |ttfname| option key must have a file name pattern,
+which is a string containing (exactly) one occurrence of ``|*|''
+and one occurrence of a numeral string,
+such as ``|*_1|'' and ``|TEMP-*-00.TTF|''.
+(If the pattern does not have an extension, ``|.ttf|'' is appended.)
+
+For example, when the option |ttfname=*_1| is given, the font
+``index 0 of mogam.ttc'' will map to ``mogam\_1.ttf'', and similarly,
+``index 1'' to ``mogam\_2.ttf''
+(the numeral part is incremented) and so on.
+
+
+%===========================================================
+\section{Usage}
+\label{sec:usage}
+
+%-------------------
+\subsection{Selecting CJK fonts}
+
+The present package provides three ``generic'' CJK font familie
+in the same way as {\pLaTeX} plus the
+\href{http://www.ctan.org/pkg/japanese-otf}{\Pkg{japanese-otf} package}:
+Mincho family (|\mcfamily|), Gothic family (|\gtfamily|), and
+Maru-gothic family (|\mgfamily|).
+In default setting, the font set from the \Pkg{ipaex-type1} package
+is allocated;
+Mincho family uses IPAex Mincho font, and Gothic and Maru-gothic
+families use IPAex Gothic font.
+This allocation can be altered by users.
+
+\begin{itemize}
+\item |\mcfamily|\Means
+ Changes the CJK family to Mincho family.
+ \Note Equivalent to |\CJKfamily{\mcdefault}|.
+\item |\gtfamily|\Means
+ Changes the CJK family to Gothic family.
+ \Note Equivalent to |\CJKfamily{\gtdefault}|.
+\item |\mgfamily|\Means
+ Changes the CJK family to Maru-gothic family.
+ \Note Equivalent to |\CJKfamily{\mgdefault}|.
+\end{itemize}
+
+More advanced commands:
+
+\begin{itemize}
+\item |\mcdefault|/|\gtdefault|/|\mgdefault|\Means
+ The names of CJK families corresponding to the three generic families.
+ In the standard allocation their values are
+ |mc|/\wbr|gt|/\wbr|mg| respectively
+ and the allocation is used as default.
+\item
+ |\setCJKfamilydefault{|\Meta{CJK-family}|}|\Means
+ Declares the default CJK family.
+ This default value is used when family names are missing in some
+ commands, such as |\CJKfamily{}| and
+ |\begin{CJK}{UTF8}{}|.
+ The (redefined) |\normalfont| also switches the CJK family to the
+ family specified by this command.
+
+ The default value of this default family is
+ the ``counterpart'' (Section~\ref{ssec:sync-families}) of the
+ alphabetic font family which is in effect at the beginning of the
+ document body.
+\end{itemize}
+
+%-------------------
+\subsection{Synchronization of CJK and non-CJK families}
+\label{ssec:sync-families}
+
+The \Pkg{CJK} package (and {\pTeX} engine) manages separate
+``current families'' for CJK and alphabetic (non-CJK) families.
+While this treatment has its merit, synchronization of the two
+``current families'' is convenient in many cases.
+Accordingly, the present package redefines some of the {\LaTeX}
+commands that switches current alphabetic font families so that
+the CJK family will be switched to the counterpart of the current
+alphabetic family, where the ``counterpart'' is defined as follows:
+
+\begin{itemize}
+\item |\rmfamily| (Serif) → |\mcfamily| (Mincho)
+\item |\sffamily| (Sans-serif) → |\gtfamily| (Gothic)
+\item |\ttfamily| (Monospace) → |\gtfamily| (Gothic)
+\item The counterpart of the other families is |\mcfamily|.
+\end{itemize}
+
+Redefined commands:
+
+\begin{itemize}
+\item |\rmfamily|/|\sffamily|/|\ttfamily|\Means
+ Changes the CJK family to the counterpart of the alphabetic font
+ family after executing the original function.
+\item |\normalfont|\Means
+ Changes the CJK family to the default CJK family that is specified
+ by the |\setCJKfamilydefault| command.
+\end{itemize}
+
+There are shorthand forms of |CJK|/\wbr|CJK*| environments:
+
+\begin{itemize}
+\item |\begin{uCJK*}|\ldots|\end{uCJK*}|\Means
+ Equivalent to:
+\begin{verbatim}
+\begin{CJK*}{UTF8}{<counterpart>}...\end{CJK*}
+\end{verbatim}
+ where |<counterpart>| means the counterpart of the current alphabetic
+ font family.
+
+ Note that this is \emph{not} equivalent to
+\begin{verbatim}
+\begin{CJK*}{UTF8}{}...\end{CJK*}
+\end{verbatim}
+ structure, which uses the default CJK family.
+\item |\begin{uCJK}|\ldots|\end{uCJK}|\Means
+ Equivalent to:
+\begin{verbatim}
+\begin{CJK}{UTF8}{counterpart}...\end{CJK}
+\end{verbatim}
+\end{itemize}
+
+%-------------------
+\subsection{Font mapping}
+
+The usage of these commands are the same as in the \Pkg{pxchfon}
+package.
+Please refer to the manual of that package for detail.
+
+\begin{itemize}
+\item |\setminchofont{|\Meta{id}|]{|\Meta{font-file}|}|
+\item |\setgothicfont{|\Meta{id}|]{|\Meta{font-file}|}|
+\item |\setmarugothicfont{|\Meta{id}|]{|\Meta{font-file}|}|
+\item |\setmediumminchofont{|\Meta{id}|]{|\Meta{font-file}|}|
+\item |\setboldminchofont{|\Meta{id}|]{|\Meta{font-file}|}|
+\item |\setmediumgothicfont{|\Meta{id}|]{|\Meta{font-file}|}|
+\item |\setboldgothicfont{|\Meta{id}|]{|\Meta{font-file}|}|
+\item |\setxboldgothicfont{|\Meta{id}|]{|\Meta{font-file}|}|
+\end{itemize}
+
+However there is a major limitation as to the use of font mapping with
+the {\pdfTeX} engine.
+You can use only TrueType fonts and moreover TTC format is not allowed.
+(You can use any flavor of OpenType fonts when using dvipdfmx.)
+
+\Note The present package does not support the light-weight Mincho
+font, and thus the |\setlightminchofont| command does nothing useful.
+
+%-------------------
+\subsection{Other commands}
+
+\begin{itemize}
+\item |\UTF{|\Meta{hexadecimal-number}|}|\Means
+ Inputs a CJK character through Unicode codepoint value.
+ |\UTF{5B57}| is equivalent to |\Unicode{"5B}{"57}|.
+\item |\CJKforce{|\Meta{character}\ldots|}|\Means
+ Afterwards treats the characters given in the argument as CJK
+ characters (printed using CJK fonts).
+\item |\CJKunforce{|\Meta{character}\ldots|}|\Means
+ Cancels the effect of the |\CJKforce| command.
+\item |\@|\Meta{character}\Means
+ Treats the next character (only that occurrence) as a CJK character,
+ when the character is outside the ASCII range; othersize the
+ standard meaning of |\@| is retained.
+\item |\CJKecglue|\Means
+ Inserts a ``shibuaki'' space.
+ This will be invoked by |~| when |\CJKtilde| is in effect.
+ This command can be redefined by users to adjust the value of
+ shibuaki space, just as |\CJKglue| can be redefined to adjust
+ inter-ideographic space.
+
+ For example, you can write:
+\begin{verbatim}
+\renewcommand{\CJKecglue}{\hspace{0.125em minus 0.125em}}
+\end{verbatim}
+\end{itemize}
+
+%===========================================================
+\section{Remarks}
+\label{sec:remarks}
+
+\begin{itemize}
+\item The standard font families provided by this package does
+ \emph{not} support vertical writing, even when using default
+ ipaex-type1 font set.
+ However, the families provided by \Pkg{ipaex-type1}
+ (|ipxm| and |ipxg|) do support vertical writing, and you can
+ utilize these families directly by specifying |ipaex-type1| option.
+\end{itemize}
+
+%===========================================================
+\end{document}
diff --git a/language/japanese/BX/bxcjkjatype/bxcjkvert-ja.pdf b/language/japanese/BX/bxcjkjatype/bxcjkvert-ja.pdf
new file mode 100644
index 0000000000..248ccbee16
--- /dev/null
+++ b/language/japanese/BX/bxcjkjatype/bxcjkvert-ja.pdf
Binary files differ
diff --git a/language/japanese/BX/bxcjkjatype/bxcjkvert-ja.tex b/language/japanese/BX/bxcjkjatype/bxcjkvert-ja.tex
new file mode 100644
index 0000000000..90757e6f16
--- /dev/null
+++ b/language/japanese/BX/bxcjkjatype/bxcjkvert-ja.tex
@@ -0,0 +1,129 @@
+% LuaLaTeX 文書; 文字コードは UTF-8
+\documentclass[a4paper]{ltjsarticle}
+\renewcommand{\headfont}{\gtfamily\romanseries{sbc}\sffamily}
+\usepackage{geometry}
+\usepackage{xcolor}
+\usepackage[unicode,colorlinks,hyperfootnotes=false]{hyperref}
+\hypersetup{linkcolor=blue!75!black,urlcolor=green!45!black}
+\usepackage{bxtexlogo}
+\bxtexlogoimport{*}
+\usepackage{shortvrb}
+\MakeShortVerb{\|}
+\usepackage{verbatim}
+\newenvironment{myverbatim}
+ {\begin{quote}\small\verbatim}
+ {\endverbatim\end{quote}}
+\newcommand{\PkgVersion}{0.5}
+\newcommand{\PkgDate}{2023/07/23}
+\newcommand{\Pkg}[1]{\textsf{#1}}
+\newcommand{\Meta}[1]{$\langle$\mbox{}#1\mbox{}$\rangle$}
+\newcommand{\Note}{\par\noindent ※}
+\newcommand{\Means}{:\quad}
+\newcommand{\jemph}{\textsf}
+\newcommand{\wbr}{\linebreak[0]}
+\newcommand{\Cs}[1]{\texttt{\symbol{`\\}#1}}
+%-----------------------------------------------------------
+\begin{document}
+\title{\Pkg{bxcjkvert} パッケージ}
+\author{八登崇之\ (Takayuki YATO; aka.~``ZR'')}
+\date{v\PkgVersion\quad[\PkgDate]}
+\maketitle
+
+\begin{abstract}
+本パッケージは\Pkg{CJKvert}パッケージの改造版であり、
+縦組と横組の混在が普通に起こりうる日本語組版に
+パッケージの機能を適合させたものである。
+\end{abstract}
+
+\tableofcontents
+
+%===========================================================
+\section{パッケージ読込}
+\label{sec:loading}
+
+\begin{verbatim}
+\usepackage[オプション,...]{bxcjkvert}
+\end{verbatim}
+
+本パッケージは\Pkg{CJKvert}パッケージを内部で読み込む。
+
+利用可能なオプションを以下で挙げる。
+
+%-------------------
+\subsection{フォントリセットに関する設定}
+
+\Pkg{CJKvert}パッケージは、書字方向変更の命令
+(|\CJKhorz| および |\CJKvert|)の呼出の際に、
+|\normalfont| を実行して現在フォントをリセットする。
+この挙動は異なる書字方向を混在させる場合には特に不便である。
+従って、\Pkg{bxcjkvert}は既定ではこの挙動を抑止している。
+ただし |resetfont| オプションによりこの挙動は調整可能である。
+
+\begin{itemize}
+\item |resetfont=true|\Means
+ 書字方向命令が現在フォントをリセット(|\normalfont|)する。
+ \Note 本来の\Pkg{CJKvert}の挙動。
+\item |resetfont=false|(既定)\Means
+ 書字方向命令が現在フォントを変更しない。
+\end{itemize}
+
+%-------------------
+\subsection{ベースライン伸長の補正に関する設定}
+
+\Pkg{CJKvert}は書字方向変更時に |\baselinestretch| の値に対する
+補正を行う。
+具体的には、|\CJKvert| が有効な間は
+ベースライン伸長値が |\CJKbaselinestretch| 倍
+\footnote{\Cs{CJKbaselinestretch}の既定値は$1.3$である。}
+に増大する。
+ところが、日本語組版を考慮する限り、ベースライン伸長値を
+変えるべき理由はどこにもない。
+従って、\Pkg{bxcjkvert}はこの機能を無効化している。
+ただし |usebaselinestretch| オプションによりこの挙動は
+調整可能である。
+
+
+\begin{itemize}
+\item |usebaselinestretch=true|\Means
+ |usebaselinestretch| オプション付きの\Pkg{CJKvert}パッケージと同じ。
+ すなわち、|\CJKvert| 実行時にはベースライン伸長値
+ を |\CJKbaselinestretch| 倍にし、|\CJKhorz| 実行時には
+ ベースライン伸長値を復元する。%
+ \footnote{ただし、この場合、ベースライン伸長値は
+ 「\Pkg{CJKvert}パッケージ読込時に保持されていた値」に戻される
+ ことに注意。}
+\item |usebaselinestretch=false|\Means
+ |usebaselinestretch| オプション無しの\Pkg{CJKvert}パッケージと同じ。
+ すなわち、|\CJKvert| 実行時にはベースライン伸長値
+ を |\CJKbaselinestretch| の値に設定し、|\CJKhorz| 実行時には
+ ベースライン伸長値を$1$に設定する。
+ (ユーザによるベースライン伸長値の設定は無視される。)
+\item |usebaselinestretch=retain|(既定)\Means
+ ベースライン伸長値に対する変更を一切行わない。
+\end{itemize}
+
+\Note \Pkg{CJKvert}が予め |usebaselinestretch| オプション付きで
+読み込まれていた場合は、本パッケージの |usebaselinestretch| の
+既定値は(|retain| ではなく)|true| になる。
+
+%-------------------
+\subsection{書字方向の初期値に関する設定}
+
+\Pkg{CJKvert}では初期(文書開始時)の書字方向は縦組と
+定められている。
+本パッケージでは初期の書字方向をユーザが選択することができる。
+
+\begin{itemize}
+\item |main=true|\Means
+ 書字方向の初期値を縦組とする。
+ \Pkg{CJKvert}ではこれが既定である。
+\item |main=false|\Means
+ 書字方向の初期値を横組とする。
+\item |main=retain|(既定)\Means
+ 書字方向の初期値を何も指定しない。
+ この場合、プレアンブルで |\CJKvert| や |\CJKhorz| を実行することで
+ 書字方向の初期値を決めることができる。
+\end{itemize}
+
+%===========================================================
+\end{document}
diff --git a/language/japanese/BX/bxcjkjatype/bxcjkvert.pdf b/language/japanese/BX/bxcjkjatype/bxcjkvert.pdf
new file mode 100644
index 0000000000..802045cefd
--- /dev/null
+++ b/language/japanese/BX/bxcjkjatype/bxcjkvert.pdf
Binary files differ
diff --git a/language/japanese/BX/bxcjkjatype/bxcjkvert.tex b/language/japanese/BX/bxcjkjatype/bxcjkvert.tex
new file mode 100644
index 0000000000..5bbeb6ff63
--- /dev/null
+++ b/language/japanese/BX/bxcjkjatype/bxcjkvert.tex
@@ -0,0 +1,138 @@
+% pdfLaTeX document; UTF-8
+\documentclass[a4paper]{article}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern,textcomp}
+\usepackage{geometry}
+\usepackage{xcolor}
+\usepackage[unicode,colorlinks]{hyperref}
+\hypersetup{linkcolor=blue!75!black,urlcolor=green!45!black}
+\usepackage{bxtexlogo}
+\bxtexlogoimport{*}
+\usepackage{shortvrb}
+\MakeShortVerb{\|}
+\usepackage{verbatim}
+\newenvironment{myverbatim}
+ {\begin{quote}\small\verbatim}
+ {\endverbatim\end{quote}}
+\newcommand{\PkgVersion}{0.5}
+\newcommand{\PkgDate}{2023/07/23}
+\newcommand{\Pkg}[1]{\textsf{#1}}
+\newcommand{\Meta}[1]{$\langle$\textit{#1}$\rangle$}
+\newcommand{\Note}{\par\noindent \emph{Note:}\quad}
+\newcommand{\Means}{:\hspace{1em plus 1em}}
+\newcommand{\wbr}{\linebreak[0]}
+\newcommand{\Cs}[1]{\texttt{\symbol{`\\}#1}}
+%-----------------------------------------------------------
+\begin{document}
+\title{The \Pkg{bxcjkvert} Package}
+\author{Takayuki YATO (aka.~``ZR'')}
+\date{v\PkgVersion\quad[\PkgDate]}
+\maketitle
+
+\begin{abstract}
+This package is a tailored version of the \Pkg{CJKvert} package,
+accommodated for Japanese typesetting,
+where mixture of horizontal and vertical writings is common.
+\end{abstract}
+
+\tableofcontents
+
+%===========================================================
+\section{Package Loading}
+\label{sec:loading}
+
+\begin{verbatim}
+\usepackage[<option>,...]{bxcjkvert}
+\end{verbatim}
+
+The \Pkg{CJKvert} package will be automatically loaded,
+if not yet loaded.
+
+The available options are described hereafter.
+
+%-------------------
+\subsection{Options for configuring font reset}
+
+When a command for switching direction (|\CJKhorz| or |\CJKvert|)
+is invoked, \Pkg{CJKvert} resets the current font parameter
+by issuing |\normalfont|.
+This feature is inconvenient, particularly
+when authors mix different writing directions.
+Thus \Pkg{bxcjkvert} suppresses the feature by default,
+but it can be configured by the |resetfont| option.
+
+\begin{itemize}
+\item |resetfont=true|\Means
+ Makes direction comamnds reset the current font by issuing
+ the |\normalfont| command.
+ \Note This is the original behavior of \Pkg{CJKvert}.
+\item |resetfont=false| (default)\Means
+ Makes direction comamnds retain the current font.
+\end{itemize}
+
+%-------------------
+\subsection{Options for configuring adjustment of the baseline stretch}
+
+\Pkg{CJKvert} makes some adjustment to the value of |\baselinestretch|
+when the writing direction is changed.
+Namely it makes the baseline stretch enlarged by the factor of
+|\CJKbaselinestretch|%
+\footnote{The value of \Cs{CJKbaselinestretch} is $1.3$ by default.}
+when |\CJKvert| is used.
+
+However as far as Japanese typesetting is concerned,
+there is no need to tweak the baseline stretch value.
+Thus \Pkg{bxcjkvert} suppresses this feature, but again
+it can be configured by the |usebaselinestretch| option.
+
+
+\begin{itemize}
+\item |usebaselinestretch=true|\Means
+ This is the same as the behavior of \Pkg{CJKvert} \emph{with}
+ the |usebaselinestretch| option.
+ When |\CJKvert| is invoked, the baseline stretch will be multiplied
+ by the value of |\CJKbaselinestretch|.
+ When |\CJKhorz| is invoked, the baseline stretch will be reverted.%
+ \footnote{Note that, however, in this case the baseline stretch will
+ be reverted to the value at the time when \Pkg{CJKvert} was loaded.
+ it might be against authors' expectation.}
+\item |usebaselinestretch=false|\Means
+ This is the same as the behavior of \Pkg{CJKvert} \emph{without}
+ the |usebaselinestretch| option.
+ When |\CJKvert| is invoked, the baseline stretch will be set
+ to the value of |\CJKbaselinestretch|.
+ When |\CJKhorz| is invoked, the baseline stretch will be
+ reset to $1$.
+ This option ignores the user's setting to the baseline stretch.
+\item |usebaselinestretch=retain| (default)\Means
+ Makes direction comamnds leave the baseline stretch
+ unchanged.
+\end{itemize}
+
+\Note If \Pkg{CJKvert} is loaded with the |usebaselinestretch|
+option in advance,
+then the value of |usebaselinestretch| of this package
+will default to |true| instead of |retain|.
+
+%-------------------
+\subsection{Options for configuring initial writing direction}
+
+\Pkg{CJKvert} sets the initial writing direction of the document
+to vertical.
+But \Pkg{bxcjkvert} allows authors to choose the initial direction.
+
+\begin{itemize}
+\item |main=true|\Means
+ Sets the initial direction to vertical.
+ \Note This is the original behavior of \Pkg{CJKvert}.
+\item |main=false|\Means
+ Sets the initial direction to horizontal.
+\item |main=retain| (default)\Means
+ Does not specify the initial direction.
+ In this case, authors can use |\CJKvert| or |\CJKhorz|
+ in the preamble to decide the initial direction.
+\end{itemize}
+
+%===========================================================
+\end{document}