Skip to content

CJK 서식 가이드

VMark에는 중국어, 일본어, 한국어 텍스트를 위한 포괄적인 서식 규칙이 포함되어 있습니다. 이 도구들은 CJK와 라틴 문자를 혼용할 때 일관된 타이포그래피를 유지하는 데 도움이 됩니다.

빠른 시작

서식 → CJK 문서 서식 을 사용하거나 Alt + Mod + Shift + F를 눌러 전체 문서를 서식화합니다.

선택 영역만 서식화하려면 Mod + Shift + F를 사용합니다.


서식 규칙

1. CJK-라틴 간격

CJK와 라틴 문자/숫자 사이에 자동으로 공백을 추가합니다.

이전이후
学习Python编程学习 Python 编程
共100个共 100 个
使用macOS系统使用 macOS 系统

2. 전각 구두점

CJK 맥락에서 반각 구두점을 전각으로 변환합니다.

이전이후
你好,世界你好,世界
什么?什么?
注意:重要注意:重要

3. 전각 문자 변환

전각 문자와 숫자를 반각으로 변환합니다.

이전이후
12341234
ABCABC

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" tall5'10" tall

코너 괄호 옵션이 활성화된 경우:

이전이후
"中文内容"「中文内容」
「包含'嵌套'」「包含『嵌套』」

7. 줄임표 표준화

줄임표 서식을 표준화합니다.

이전이후
等等. . .等等...
然后. . .继续然后... 继续

8. 반복 구두점

연속된 구두점을 제한합니다 (설정 가능한 한도).

이전이후 (한도=1)
太棒了!!!太棒了!
真的吗???真的吗?

9. 기타 정리

  • 여러 공백 압축: 多个 空格多个 空格
  • 후행 공백 제거
  • 슬래시 간격: A / BA/B
  • 통화 간격: $ 100$100

보호되는 내용

다음 내용은 서식화의 영향을 받지 않습니다:

  • 코드 블록 (```)
  • 인라인 코드 (`)
  • 링크 URL
  • 이미지 경로
  • HTML 태그
  • YAML 프론트매터
  • 백슬래시로 이스케이프된 구두점 (예: \,,로 유지됨)

기술 구문

VMark의 라틴 스팬 스캐너 는 자동으로 기술 구문을 감지하고 구두점 변환으로부터 보호합니다:

타입예시보호
URLhttps://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 도구를 통해 다음 세 가지 kind 값 중 하나를 사용하여 프로그래밍 방식으로 CJK 서식을 적용할 수 있습니다:

  • "cjk-format" — 전체 CJK 정규화 (설정에 따른 간격 + 구두점 + 스마트 따옴표)
  • "cjk-spacing" — CJK ↔ 라틴/숫자 경계 주변의 공백만 조정
  • "cjk-punctuation" — 규칙에 따라 전각과 반각 사이에서 구두점 변환

각 변환은 활성 문서에 대해 직렬화-서식-파싱 왕복을 실행하여 인라인 마크 (굵게, 링크, 수식 등)를 보존하고 구성된 서식 규칙을 준수합니다.

전체 요청 형태는 MCP 도구 참조를 확인하세요 — document.transformtabId, kind, 그리고 낙관적 동시성을 위한 expected_revision을 받습니다.

설정

CJK 서식 옵션은 설정 → 언어에서 구성할 수 있습니다:

  • 특정 규칙 활성화/비활성화
  • 구두점 반복 한도 설정
  • 따옴표 스타일 선택 (표준 또는 코너 괄호)

컨텍스트 따옴표

컨텍스트 따옴표 가 활성화된 경우 (기본값):

  • CJK 내용을 둘러싼 따옴표 → 곡선 따옴표 ""
  • 순수 라틴 내용을 둘러싼 따옴표 → 직선 따옴표 ""

이는 CJK 내용을 올바르게 서식화하면서 영어 텍스트의 자연스러운 모양을 보존합니다.

CJK 코너 괄호 (기본값 비활성화)

CJK 코너 따옴표 가 활성화되면 CJK 내용 주변의 곡선 따옴표가 코너 괄호 (기본 「」, 중첩 『』)로 변환됩니다 — 세로 CJK 조판의 전통적인 인용 형식입니다. 이 설정과 관계없이 라틴 내용은 표준 곡선 따옴표를 유지합니다.

참고문헌 섹션 건너뛰기

CJK 서식기는 "References" / "참고문헌" / "参考文献" / "参考资料" / "Bibliography" 제목을 감지하고 해당 섹션의 재서식화를 건너뜁니다 — 인용 형식의 텍스트는 CJK 규칙이 정규화하면 잃을 수 있는 특정 구두점에 의존하는 경우가 많습니다.

무결성 검증

CJK 서식 패스가 끝날 때마다, 서식기는 변환 전후의 보이는 텍스트 콘텐츠 (공백/구두점 변환 무시)를 비교하는 무결성 검사를 실행합니다. 검사가 실패하면 작업이 롤백되고 진단이 표시됩니다 — CJK 서식이 콘텐츠를 조용히 잃어버리지 않음을 보장합니다.


CJK 자간

VMark에는 CJK 텍스트 전용 자간 기능이 포함되어 있어 문자 사이에 미묘한 간격을 추가하여 가독성을 향상시킵니다.

설정

설정 → 에디터 → 타이포그래피 → CJK 자간 에서 구성합니다:

옵션설명
없음0자간 없음 (기본값)
미묘0.02em거의 눈에 띄지 않는 간격
가벼운0.03em가벼운 간격
보통0.05em대부분의 사용 사례에 권장
넓은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'sit's
don'tdon'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

설정 → 언어 → CJK 서식 → 따옴표 토글 모드에서 단순 모드와 전체 순환 모드를 전환합니다.

설정

설정 → 언어 → CJK 서식에서 스마트 따옴표 변환을 활성화합니다. 드롭다운 메뉴에서 선호하는 따옴표 스타일을 선택할 수도 있습니다.


CJK 코너 괄호 변환

CJK 코너 따옴표 가 활성화되면 CJK 내용을 둘러싼 곡선 따옴표가 자동으로 코너 괄호로 변환됩니다.

지원되는 문자

코너 괄호 변환은 인용된 내용에 중국 문자 (CJK 통합 한자 U+4E00–U+9FFF)가 포함될 때 트리거됩니다:

내용 타입예시변환?
중국어"中文"「中文」
한자가 포함된 일본어"日本語"「日本語」
히라가나만"ひらがな""ひらがな"로 유지
가타카나만"カタカナ""カタカナ"로 유지
한국어"한글""한글"로 유지
영어"hello""hello"로 유지

팁: 히라가나만 있는 일본어 텍스트의 경우 코너 괄호 「」를 수동으로 사용하거나 최소 하나의 한자를 포함하세요.


테스트 단락

이 서식화되지 않은 텍스트를 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)
  • 이중 하이픈을 em 대시로 변환 (-- → ——)
  • 줄임표 정규화 (. . . → ...)
  • 스마트 따옴표 적용, 어포스트로피 보존 (don't)
  • 기술 구문 보호 (https://example.com/docs, v2.0.0, $99.99, 12:30)