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 度 |
バックスラッシュエスケープ
任意の句読点の前に \ を付けて変換を防ぎます:
| 入力 | 出力 |
|---|---|
价格\,很贵 | 价格,很贵(カンマが半角のまま) |
测试\.内容 | 测试.内容(ピリオドが半角のまま) |
AI アシスト付きフォーマット
MCP サーバー が接続されている場合、AI アシスタントは document.transform ツールに次の 3 つの kind 値のいずれかを指定して、CJK フォーマットをプログラム的に適用できます:
"cjk-format"— 完全な CJK 正規化(あなたの設定に従ったスペース+句読点+スマート引用符)"cjk-spacing"— CJK ↔ ラテン/数字の境界周辺の空白のみを調整"cjk-punctuation"— ルールに従って句読点を全角と半角の間で変換
各変換は、アクティブなドキュメントを serialize-format-parse のラウンドトリップで処理し、インラインマーク(太字、リンク、数式など)を保持しつつ、設定されたフォーマットルールを尊重します。
リクエストの完全な形については MCP ツールリファレンス を参照してください — document.transform は tabId、kind、楽観的な並行制御のための expected_revision を受け付けます。
設定
CJK フォーマットオプションは設定 → 言語で設定できます:
- 特定のルールの有効化/無効化
- 句読点の繰り返し制限の設定
- 引用符スタイルの選択(標準または角括弧)
コンテキスト引用符
コンテキスト引用符 が有効(デフォルト)の場合:
- CJK コンテンツを囲む引用符 → カーリー引用符
"" - 純粋なラテンコンテンツを囲む引用符 → ストレート引用符
""
これにより、英語テキストの自然な外観を保ちながら、CJK コンテンツを適切にフォーマットします。
CJK 角括弧引用符 (デフォルトでオフ)
CJK 角括弧引用符 が有効の場合、CJK コンテンツを囲むカーリー引用符は角括弧(プライマリは 「」、ネストは 『』)に変換されます — これは縦組み CJK 組版のタイポグラフィ的に伝統的な引用形式です。ラテンコンテンツは、この設定に関係なく標準のカーリー引用符のままです。
参考文献セクションのスキップ
CJK フォーマッターは、「References」「参考文献」「参考资料」「Bibliography」といった見出しを検出し、それらのセクションでは再フォーマットをスキップします — 引用形式のテキストは、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 を押してフォーマットしてみてください:
最近我在学习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)