CJK フォーマットガイド
VMark には中国語、日本語、韓国語テキストの包括的なフォーマットルールセットが含まれています。これらのツールは、CJK とラテン文字を混在させる際に一貫したタイポグラフィを維持するのに役立ちます。
クイックスタート
フォーマット → CJK ドキュメントをフォーマット を使用するか、Alt + Mod + Shift + Fを押してドキュメント全体をフォーマットします。
選択した部分のみをフォーマットするには、Mod + Shift + Fを使用します。
フォーマットルール
1. CJK-ラテン間のスペース
CJK 文字とラテン文字/数字の間に自動的にスペースを追加します。
| 変換前 | 変換後 |
|---|---|
| 学習 Python 編程 | 学習 Python 編程 |
| 共 100 个 | 共 100 个 |
| 使用 macOS 系统 | 使用 macOS 系统 |
2. 全角句読点
CJK コンテキストで半角句読点を全角に変換します。
| 変換前 | 変換後 |
|---|---|
| 你好,世界 | 你好,世界 |
| 什么? | 什么? |
| 注意:重要 | 注意:重要 |
3. 全角文字の変換
全角の文字と数字を半角に変換します。
| 変換前 | 変換後 |
|---|---|
| 1234 | 1234 |
| ABC | ABC |
4. 括弧の変換
CJK コンテンツを囲む半角括弧を全角に変換します。
| 変換前 | 変換後 |
|---|---|
| (注意) | (注意) |
| [重点] | 【重点】 |
| (English) | (English) |
5. ダッシュの変換
二重ハイフンを適切な CJK ダッシュに変換します。
| 変換前 | 変換後 |
|---|---|
| 原因--结果 | 原因 —— 结果 |
| 说明--这是 | 说明 —— 这是 |
6. スマート引用符の変換
VMark はネイティブな処理が可能な スタックベースの引用符ペアリングアルゴリズム を使用します:
- アポストロフィ:
don't、it's、l'amourなどの短縮形は保持されます - 所有格:
Xiaolai'sはそのまま保持されます - プライム:
5'10"(フィート/インチ)などの測定値は保持されます - 年代:
'90sなどの略語は認識されます - CJK コンテキスト検出: CJK コンテンツを囲む引用符はカーリー/角括弧引用符になります
| 変換前 | 変換後 |
|---|---|
| 他说"hello" | 他说 "hello" |
| "don't worry" | "don't worry" |
| 5'10" tall | 5'10" tall |
角括弧オプションを有効にした場合:
| 変換前 | 変換後 |
|---|---|
| "中文内容" | 「中文内容」 |
| 「包含'嵌套'」 | 「包含『嵌套』」 |
7. 省略記号の正規化
省略記号の書式設定を標準化します。
| 変換前 | 変換後 |
|---|---|
| 等等... | 等等... |
| 然后... 继续 | 然后... 继续 |
8. 繰り返し句読点
連続する句読点の数を制限します(設定可能な制限)。
| 変換前 | 変換後(制限=1) |
|---|---|
| 太棒了!!! | 太棒了! |
| 真的吗??? | 真的吗? |
9. その他のクリーンアップ
- 複数のスペースを圧縮:
多个 空格→多个 空格 - 末尾の空白を削除
- スラッシュのスペース:
A / B→A/B - 通貨のスペース:
$ 100→$100
保護されるコンテンツ
以下のコンテンツはフォーマットの影響を 受けません:
- コードブロック(```)
- インラインコード(`)
- リンクURL
- 画像パス
- HTMLタグ
- YAMLフロントマター
- バックスラッシュでエスケープされた句読点(例:
\,は,のまま)
技術的な構文
VMarkの ラテンスパンスキャナー は、句読点変換から技術的な構文を自動的に検出して保護します:
| タイプ | 例 | 保護 |
|---|---|---|
| URL | https://example.com | すべての句読点を保持 |
| メール | user@example.com | @と.を保持 |
| バージョン | v1.2.3、1.2.3.4 | ピリオドを保持 |
| 小数 | 3.14、0.5 | ピリオドを保持 |
| 時刻 | 12:30、1:30:00 | コロンを保持 |
| 千区切り | 1,000、1,000,000 | カンマを保持 |
| ドメイン | example.com | ピリオドを保持 |
例:
| 変換前 | 変換後 |
|---|---|
| 版本v1.2.3发布 | 版本 v1.2.3 发布 |
| 访问https://example.com获取 | 访问 https://example.com 获取 |
| 温度是3.14度 | 温度是 3.14 度 |
バックスラッシュエスケープ
任意の句読点の前に\を付けて変換を防ぎます:
| 入力 | 出力 |
|---|---|
价格\,很贵 | 价格,很贵 (カンマが半角のまま) |
测试\.内容 | 测试.内容 (ピリオドが半角のまま) |
設定
CJKフォーマットオプションは設定 → 言語で設定できます:
- 特定のルールの有効化/無効化
- 句読点の繰り返し制限の設定
- 引用符スタイルの選択(標準または角括弧)
コンテキスト引用符
コンテキスト引用符 が有効(デフォルト)の場合:
- CJKコンテンツを囲む引用符 → カーリー引用符
"" - 純粋なラテンコンテンツを囲む引用符 → ストレート引用符
""
これにより英語テキストの自然な外観を保ちながら、CJKコンテンツを適切にフォーマットします。
CJK文字間隔
VMarkにはCJKテキスト専用の文字間隔機能が含まれており、文字間に微妙な間隔を追加することで可読性を向上させます。
設定
設定 → エディタ → タイポグラフィ → CJK文字間隔 で設定します:
| オプション | 値 | 説明 |
|---|---|---|
| Off | 0 | 文字間隔なし(デフォルト) |
| Subtle | 0.02em | ほとんど気にならない間隔 |
| Light | 0.03em | 軽い間隔 |
| Normal | 0.05em | ほとんどの用途に推奨 |
| Wide | 0.08em | より顕著な間隔 |
仕組み
- CJK文字列にletter-spacing CSSを適用
- コードブロックとインラインコードは除外
- WYSIWYGモードとエクスポートされたHTMLの両方で動作
- ラテン文字や数字には効果なし
例
文字間隔なし:
这是一段中文文字,没有任何字间距。
0.05emの文字間隔あり:
这 是 一 段 中 文 文 字 , 有 轻 微 的 字 间 距 。
違いは微妙ですが、特に長い文章では可読性が向上します。
スマート引用符スタイル
VMarkはCJKフォーマット中にストレート引用符を正しいスマート引用符に自動変換できます。この機能は複数の引用符スタイルをサポートします。
引用符スタイル
| スタイル | ダブル引用符 | シングル引用符 |
|---|---|---|
| カーリー | "text" | 'text' |
| 角括弧 | 「text」 | 『text』 |
| ギュメ | «text» | ‹text› |
スタックベースのペアリングアルゴリズム
VMarkは引用符のペアリングに洗練されたスタックベースのアルゴリズムを使用します:
- トークン化: テキスト内のすべての引用符文字を識別
- 分類: コンテキストに基づいて各引用符が開き引用符か閉じ引用符かを判断
- アポストロフィ検出: 短縮形(don't、it's)を認識して保持
- プライム検出: 測定値(5'10")を認識して保持
- CJKコンテキスト検出: 引用されたコンテンツにCJK文字が含まれているか確認
- 孤立した引用符の処理: 対応する引用符がない場合を適切に処理
例
| 変換前 | 変換後(カーリー) |
|---|---|
| "hello" | "hello" |
| 'world' | 'world' |
| it's | it's |
| don't | don't |
| 5'10" | 5'10" |
| '90s | '90s |
短縮形のアポストロフィ(「it's」や「don't」など)は正しく保持されます。
カーソル位置での引用符スタイルの切り替え
ドキュメント全体を再フォーマットせずに既存の引用符のスタイルをすばやく切り替えられます。任意の引用符ペア内にカーソルを置いてShift + Mod + 'を押して切り替えます。
シンプルモード(デフォルト): ストレート引用符と優先スタイルを切り替えます。
| 変換前 | 変換後 | 再変換後 |
|---|---|---|
| "hello" | "hello" | "hello" |
| 'world' | 'world' | 'world' |
フルサイクルモード: 4つのスタイルをすべて循環します。
| ステップ | ダブル | シングル |
|---|---|---|
| 1 | "text" | 'text' |
| 2 | "text" | 'text' |
| 3 | 「text」 | 『text』 |
| 4 | «text» | ‹text› |
| 5 | "text"(最初に戻る) | 'text' |
ネストした引用符: 引用符がネストしている場合、コマンドはカーソルを囲む 最も内側の ペアを切り替えます。
スマート検出: アポストロフィ(don't)、プライム(5'10")、年代略語('90s)は引用符ペアとして処理されません。
TIP
シンプルモードとフルサイクルモードの切り替えは、設定 → 言語 → CJKフォーマット → 引用符切り替えモードで行います。
設定
設定 → 言語 → CJKフォーマットでスマート引用符変換を有効にします。ドロップダウンメニューから好みの引用符スタイルも選択できます。
CJK角括弧変換
CJK角括弧引用符 が有効の場合、CJKコンテンツを囲むカーリー引用符は自動的に角括弧に変換されます。
サポートされる文字
角括弧変換は、引用されたコンテンツに 漢字(CJK統合漢字 U+4E00–U+9FFF)が含まれている場合にトリガーされます:
| コンテンツタイプ | 例 | 変換? |
|---|---|---|
| 中国語 | "中文" | ✓ 「中文」 |
| 漢字を含む日本語 | "日本語" | ✓ 「日本語」 |
| ひらがなのみ | "ひらがな" | ✗ "ひらがな"のまま |
| カタカナのみ | "カタカナ" | ✗ "カタカナ"のまま |
| 韓国語 | "한글" | ✗ "한글"のまま |
| 英語 | "hello" | ✗ "hello"のまま |
ヒント: かなのみの日本語テキストには、手動で角括弧「」を使用するか、少なくとも1つの漢字を含めてください。
テスト段落
このフォーマットされていないテキストをVMarkにコピーしてAlt + Mod + Shift + Fを押してフォーマットしてみてください:
## 設定
CJK フォーマットオプションは設定 → 言語で設定できます:
- 特定のルールの有効化/無効化
- 句読点の繰り返し制限の設定
- 引用符スタイルの選択(標準または角括弧)
### コンテキスト引用符
**コンテキスト引用符** が有効(デフォルト)の場合:
- CJK コンテンツを囲む引用符 → カーリー引用符 `""`
- 純粋なラテンコンテンツを囲む引用符 → ストレート引用符 `""`
これにより英語テキストの自然な外観を保ちながら、CJK コンテンツを適切にフォーマットします。
---
## CJK 文字間隔
VMark には CJK テキスト専用の文字間隔機能が含まれており、文字間に微妙な間隔を追加することで可読性を向上させます。
### 設定
**設定 → エディタ → タイポグラフィ → CJK 文字間隔** で設定します:
| オプション | 値 | 説明 |
|---------|-----|-----|
| Off | 0 | 文字間隔なし(デフォルト) |
| Subtle | 0.02em | ほとんど気にならない間隔 |
| Light | 0.03em | 軽い間隔 |
| Normal | 0.05em | ほとんどの用途に推奨 |
| Wide | 0.08em | より顕著な間隔 |
### 仕組み
- CJK 文字列に letter-spacing CSS を適用
- コードブロックとインラインコードは除外
- WYSIWYG モードとエクスポートされた HTML の両方で動作
- ラテン文字や数字には効果なし
### 例
文字間隔なし:
> 这是一段中文文字,没有任何字间距。
0.05em の文字間隔あり:
> 这 是 一 段 中 文 文 字 , 有 轻 微 的 字 间 距 。
違いは微妙ですが、特に長い文章では可読性が向上します。
---
## スマート引用符スタイル
VMark は CJK フォーマット中にストレート引用符を正しいスマート引用符に自動変換できます。この機能は複数の引用符スタイルをサポートします。
### 引用符スタイル
| スタイル | ダブル引用符 | シングル引用符 |
|--------|------------|-------------|
| カーリー | "text" | 'text' |
| 角括弧 | 「text」 | 『text』 |
| ギュメ | «text» | ‹text› |
### スタックベースのペアリングアルゴリズム
VMark は引用符のペアリングに洗練されたスタックベースのアルゴリズムを使用します:
1. **トークン化**: テキスト内のすべての引用符文字を識別
2. **分類**: コンテキストに基づいて各引用符が開き引用符か閉じ引用符かを判断
3. **アポストロフィ検出**: 短縮形(don't、it's)を認識して保持
4. **プライム検出**: 測定値(5'10")を認識して保持
5. **CJK コンテキスト検出**: 引用されたコンテンツに CJK 文字が含まれているか確認
6. **孤立した引用符の処理**: 対応する引用符がない場合を適切に処理
### 例
| 変換前 | 変換後(カーリー) |
|--------|-----------------|
| "hello" | "hello" |
| 'world' | 'world' |
| it's | it's |
| don't | don't |
| 5'10" | 5'10" |
| '90s | '90s |
短縮形のアポストロフィ(「it's」や「don't」など)は正しく保持されます。
### カーソル位置での引用符スタイルの切り替え
ドキュメント全体を再フォーマットせずに既存の引用符のスタイルをすばやく切り替えられます。任意の引用符ペア内にカーソルを置いて`Shift + Mod + '`を押して切り替えます。
**シンプルモード**(デフォルト): ストレート引用符と優先スタイルを切り替えます。
| 変換前 | 変換後 | 再変換後 |
|--------|-------|--------|
| "hello" | "hello" | "hello" |
| 'world' | 'world' | 'world' |
**フルサイクルモード**: 4 つのスタイルをすべて循環します。
| ステップ | ダブル | シングル |
|--------|--------|--------|
| 1 | "text" | 'text' |
| 2 | "text" | 'text' |
| 3 | 「text」 | 『text』 |
| 4 | «text» | ‹text› |
| 5 | "text"(最初に戻る) | 'text' |
**ネストした引用符**: 引用符がネストしている場合、コマンドはカーソルを囲む **最も内側の** ペアを切り替えます。
**スマート検出**: アポストロフィ(`don't`)、プライム(`5'10"`)、年代略語(`'90s`)は引用符ペアとして処理されません。
::: tip
シンプルモードとフルサイクルモードの切り替えは、設定 → 言語 → CJK フォーマット → 引用符切り替えモードで行います。
:::
### 設定
設定 → 言語 → CJK フォーマットでスマート引用符変換を有効にします。ドロップダウンメニューから好みの引用符スタイルも選択できます。
---
## CJK 角括弧変換
**CJK 角括弧引用符** が有効の場合、CJK コンテンツを囲むカーリー引用符は自動的に角括弧に変換されます。
### サポートされる文字
角括弧変換は、引用されたコンテンツに **漢字**(CJK 統合漢字 U+4E00–U+9FFF)が含まれている場合にトリガーされます:
| コンテンツタイプ | 例 | 変換? |
|--------------|-----|-------|
| 中国語 | `"中文"` | ✓ `「中文」` |
| 漢字を含む日本語 | `"日本語"` | ✓ `「日本語」` |
| ひらがなのみ | `"ひらがな"` | ✗ `"ひらがな"`のまま |
| カタカナのみ | `"カタカナ"` | ✗ `"カタカナ"`のまま |
| 韓国語 | `"한글"` | ✗ `"한글"`のまま |
| 英語 | `"hello"` | ✗ `"hello"`のまま |
**ヒント:** かなのみの日本語テキストには、手動で角括弧`「」`を使用するか、少なくとも 1 つの漢字を含めてください。
---
## テスト段落
このフォーマットされていないテキストを VMark にコピーして`Alt + Mod + Shift + F`を押してフォーマットしてみてください:
```text
最近我在学习TypeScript和React,感觉收获很大.作为一个developer,掌握这些modern前端技术是必须的.
目前已经完成了3个projects,代码量超过1000行.其中最复杂的是一个dashboard应用,包含了数据可视化,用户认证,还有API集成等功能.
学习过程中遇到的最大挑战是--状态管理.Redux的概念. . .说实话有点难理解.后来换成了Zustand,简单多了!
老师说"don't give up"然后继续讲"写代码要注重可读性",我觉得很有道理.
访问https://example.com/docs获取v2.0.0版本文档,价格$99.99,时间12:30开始.
项目使用的技术栈如下:
- **Frontend**--React + TypeScript
- **Backend**--Node.js + Express
- **Database**--PostgreSQL
总共花费大约$200美元购买了学习资源,包括书籍和online courses.虽然价格不便宜,但非常值得.期待される結果
フォーマット後、テキストは次のようになります:
最近我在学习 TypeScript 和 React,感觉收获很大。作为一个 developer,掌握这些 modern 前端技术是必须的。
目前已经完成了 3 个 projects,代码量超过 1000 行。其中最复杂的是一个 dashboard 应用,包含了数据可视化,用户认证,还有 API 集成等功能。
学习过程中遇到的最大挑战是 —— 状态管理。Redux 的概念... 说实话有点难理解。后来换成了 Zustand,简单多了!
老师说 "don't give up" 然后继续讲 "写代码要注重可读性",我觉得很有道理。
访问 https://example.com/docs 获取 v2.0.0 版本文档,价格 $99.99,时间 12:30 开始。
项目使用的技术栈如下:
- Frontend —— React + TypeScript
- Backend —— Node.js + Express
- Database —— PostgreSQL
总共花费大约 $200 美元购买了学习资源,包括书籍和 online courses。虽然价格不便宜,但非常值得。
適用された変更:
- CJK-ラテン間のスペースを追加(学習 TypeScript)
- 全角句読点に変換(,。!)
- 全角数字を正規化(3→3、1000→1000、200→200)
- 二重ハイフンをダッシュに変換(-- → ——)
- 省略記号を正規化(... → ... )
- スマート引用符を適用、アポストロフィを保持(don't)
- 技術的な構文を保護(https://example.com/docs、v2.0.0、$99.99、12:30)