中日韓文排版指南
VMark 包含一套全面的中文、日文和韓文排版規則。這些工具有助於在混用中日韓文與拉丁字元時保持一致的版面。
快速開始
使用 格式 → 中日韓文格式化文件,或按 Alt + Mod + Shift + F 格式化整份文件。
若只需格式化選取範圍,請使用 Mod + Shift + F。
格式化規則
1. 中日韓文與拉丁文間距
自動在中日韓文與拉丁字元/數字之間加入空格。
| 格式化前 | 格式化後 |
|---|---|
| 学习 Python 编程 | 学习 Python 编程 |
| 共 100 个 | 共 100 个 |
| 使用 macOS 系统 | 使用 macOS 系统 |
2. 全形標點
在中日韓文語境中將半形標點轉換為全形。
| 格式化前 | 格式化後 |
|---|---|
| 你好,世界 | 你好,世界 |
| 什么? | 什么? |
| 注意:重要 | 注意:重要 |
3. 全形字元轉換
將全形字母和數字轉換為半形。
| 格式化前 | 格式化後 |
|---|---|
| 1234 | 1234 |
| ABC | ABC |
4. 括號轉換
在包圍中日韓文內容時,將半形括號轉換為全形。
| 格式化前 | 格式化後 |
|---|---|
| (注意) | (注意) |
| [重点] | 【重点】 |
| (English) | (English) |
5. 破折號轉換
將雙連字符轉換為正確的中日韓文破折號。
| 格式化前 | 格式化後 |
|---|---|
| 原因--结果 | 原因 —— 结果 |
| 说明--这是 | 说明 —— 这是 |
6. 智慧引號轉換
VMark 使用 堆疊式引號配對演算法,能正確處理:
- 縮寫: 如
don't、it's、l'amour等縮寫會被保留 - 所有格:
Xiaolai's保持不變 - 英呎英寸: 如
5'10"(英呎/英寸)的測量值會被保留 - 年代: 如
'90s等縮寫會被識別 - 中日韓文語境偵測: 包圍中日韓文內容的引號使用彎引號/角括號
| 格式化前 | 格式化後 |
|---|---|
| 他说"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 的 拉丁文 Span 掃描器 會自動偵測並保護技術結構,防止標點轉換:
| 類型 | 範例 | 保護 |
|---|---|---|
| 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 度 |
反斜線跳脫
在任何標點前加入 \ 可防止轉換:
| 輸入 | 輸出 |
|---|---|
价格\,很贵 | 价格,很贵(逗號保持半形) |
测试\.内容 | 测试.内容(句號保持半形) |
設定
中日韓文格式化選項可在設定 → 語言中設定:
- 啟用/停用特定規則
- 設定標點重複次數上限
- 選擇引號樣式(標準或角括號)
情境式引號
啟用 情境式引號 時(預設):
- 包圍中日韓文內容的引號 → 彎引號
"" - 包圍純拉丁文內容的引號 → 直引號
""
這樣既能保留英文文字的自然外觀,又能正確格式化中日韓文內容。
中日韓文字距
VMark 包含專用的中日韓文字距功能,透過在字元之間加入細微間距來提升可讀性。
設定
在 設定 → 編輯器 → 字體排印 → 中日韓文字距 中設定:
| 選項 | 值 | 說明 |
|---|---|---|
| 關閉 | 0 | 無字距(預設) |
| 細微 | 0.02em | 幾乎不可察覺的間距 |
| 輕微 | 0.03em | 輕微間距 |
| 一般 | 0.05em | 大多數使用情境的建議值 |
| 寬鬆 | 0.08em | 較明顯的間距 |
運作原理
- 對中日韓文字元段落套用 letter-spacing CSS
- 排除程式碼區塊和行內程式碼
- 在所見即所得和匯出的 HTML 中均有效
- 對拉丁文字或數字無影響
範例
無字距:
这是一段中文文字,没有任何字间距。
0.05em 字距:
这 是 一 段 中 文 文 字 , 有 轻 微 的 字 间 距 。
差異雖然細微,但在較長的段落中能提升可讀性。
智慧引號樣式
VMark 可在中日韓文格式化時自動將直引號轉換為排版正確的智慧引號,支援多種引號樣式。
引號樣式
| 樣式 | 雙引號 | 單引號 |
|---|---|---|
| 彎引號 | "text" | 'text' |
| 角括號 | 「text」 | 『text』 |
| 書名號引號 | «text» | ‹text› |
堆疊式配對演算法
VMark 使用精密的堆疊式演算法進行引號配對:
- 分詞:識別文字中所有的引號字元
- 分類:根據上下文判斷每個引號是左引號還是右引號
- 縮寫偵測:識別縮寫(don't、it's)並保留
- 英呎英寸偵測:識別測量值(5'10")並保留
- 中日韓文語境偵測:檢查引號內容是否包含中日韓文字元
- 孤立引號清理:優雅處理不成對的引號
範例
| 格式化前 | 格式化後(彎引號) |
|---|---|
| "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' |
完整循環模式:依序循環四種樣式。
| 步驟 | 雙引號 | 單引號 |
|---|---|---|
| 1 | "text" | 'text' |
| 2 | "text" | 'text' |
| 3 | 「text」 | 『text』 |
| 4 | «text» | ‹text› |
| 5 | "text"(回到起始) | 'text' |
巢狀引號:當引號巢狀時,此指令切換 最內層 包圍游標的引號對。
智慧偵測:撇號(don't)、英呎英寸(5'10")和年代縮寫('90s)永遠不會被視為引號對。
TIP
在設定 → 語言 → 中日韓文排版 → 引號切換模式中,可在簡單模式和完整循環模式之間切換。
設定
在設定 → 語言 → 中日韓文排版中啟用智慧引號轉換。你也可以從下拉選單中選擇偏好的引號樣式。
中日韓文角括號轉換
啟用 中日韓文角括號 時,包圍中日韓文內容的彎引號會自動轉換為角括號。
支援的字元
角括號轉換在引號內容包含 中文字元(中日韓統一表意文字 U+4E00–U+9FFF)時觸發:
| 內容類型 | 範例 | 是否轉換? |
|---|---|---|
| 中文 | "中文" | ✓ 「中文」 |
| 含漢字的日文 | "日本語" | ✓ 「日本語」 |
| 純平假名 | "ひらがな" | ✗ 保持為 "ひらがな" |
| 純片假名 | "カタカナ" | ✗ 保持為 "カタカナ" |
| 韓文 | "한글" | ✗ 保持為 "한글" |
| 英文 | "hello" | ✗ 保持為 "hello" |
提示: 若日文文字只含假名,請手動使用角括號 「」,或在內容中包含至少一個漢字。
測試段落
將此未格式化的文字複製到 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。虽然价格不便宜,但非常值得。
套用的變更:
- 加入中日韓文與拉丁文間距(学习 TypeScript)
- 轉換為全形標點(,。!)
- 標準化全形數字(3→3,1000→1000,200→200)
- 雙連字符轉換為破折號(-- → ——)
- 省略號標準化(... → ... )
- 套用智慧引號,保留撇號(don't)
- 技術結構受保護(https://example.com/docs,v2.0.0,$99.99,12:30)