TikZ Editor v0.4.0 출시
TikZ Editor v0.4.0 출시
TikZ Editor v0.4.0은 LaTeX에서 TikZ 다이어그램을 생성하고 편집할 수 있는 WYSIWYG 인터페이스를 제공합니다. 이 도구는 사용자가 요소를 드래그하고, 객체의 크기를 조정하며, 스타일을 시각적으로 수정할 수 있게 함으로써 기존의 컴파일 및 확인 과정을 생략할 수 있게 하며, 이 과정에서 기반이 되는 TikZ 코드는 실시간으로 업데이트됩니다.
실시간 시각적 편집 및 코드 동기화
TikZ Editor는 사용자가 소스 코드와의 직접적인 연결을 유지하면서 그림을 시각적으로 수정할 수 있도록 합니다. LaTeX 소스에서 좌표를 수동으로 조정하는 대신, 사용자는 경로(path)나 노드(node)를 새로운 위치로 드래그할 수 있으며, 앱은 즉시 코드의 좌표를 업데이트합니다.
주요 기능은 다음과 같습니다:
- 직접 조작: 사용자는 캔버스에서 객체를 직접 이동, 크기 조정, 회전, 복제 및 반전시킬 수 있습니다.
- 소스 보존: 이 에디터는 전체 파일을 정형화된 형식으로 다시 쓰는 대신 작은 패치(patch)를 사용하여 TikZ 코드를 업데이트하므로, 사용자의 원래 들여쓰기, 줄 바꿈 및 서식을 보존합니다.
- 통합 소스 에디터: 소스 패널에는 구문 강조(syntax highlighting), scope에 대한 코드 폴딩(code folding), 그리고 타이핑 없이 빠른 조정을 위한 인라인 색상 견본(color swatches) 및 숫자 스크러빙(number scrubbing) 기능이 포함되어 있습니다.
다이어그램 작성을 위한 종합적인 도구 세트
이 에디터는 기본 도형부터 고급 구조에 이르기까지 복잡하고 관용적인 TikZ 그림을 구축하기 위한 다양한 도구 세트를 제공합니다:
그리기 도구
- 기본 요소: 노드, 직사각형, 원, 타원, 직선 또는 화살표를 추가하기 위한 도구입니다.
- 고급 경로: Bezier curves, 다중 세그먼트 경로 및 smoothing이 적용된 자유형 그리기(freehand drawing)를 지원합니다.
- 고급 레이아웃: 노드의 매트릭스(matrix), 그리드, 그리고 도형 라이브러리(예: 다이아몬드, 별, 구름)에서 제공하는 복잡한 도형을 생성하기 위한 도구입니다.
레이아웃 및 정밀도
- 스냅 및 정렬: 앱에는 그리드, 가이드, 객체 포인트 및 간격에 맞게 스냅(snapping)되는 기능이 포함되어 있으며, 정밀한 조정을 위해 자(ruler)와 돋보기 도구가 함께 제공됩니다.
- 그룹화 및 배분: 다중 선택을 통해 사용자는 TikZ scope를 사용하여 객체를 그룹화할 수 있으며, 정렬(align) 및 배분(distribute) 기능을 사용하여 일관된 간격을 확보할 수 있습니다.
다중 그림 및 문서 지원
TikZ Editor는 전체 .tex 논문 파일을 열 수 있어, 사용자가 썸네일 미리보기를 사용하여 여러 tikzpicture 환경 사이를 탐색할 수 있게 합니다. 이 앱은 많은 사용자 정의 매크로를 이해하도록 설계되어 있어, 더 넓은 범위의 학술 논문과 호환됩니다.
가져오기 및 내보내기 기능
다른 도구로부터의 전환을 용이하게 하기 위해, TikZ Editor는 다양한 가져오기 및 내보내기 형식을 지원합니다:
- 가져오기: 사용자는 SVG, Ipe (
.ipe), 그리고 PowerPoint (.pptx)에서 그림을 가져올 수 있습니다. 데스크톱 버전은 PowerPoint와 Keynote에서 객체를 직접 붙여넣는 기능도 지원합니다. - 내보내기: 그림을 SVG, PNG, PDF 또는 독립형 LaTeX 코드로 내보낼 수 있습니다.
기술적 구현
TypeScript와 Tauri(데스크톱 버전의 경우 Rust 백엔드 포함)로 구축된 TikZ Editor는 시맨틱 레이어(semantic layer)를 사용하여 좌표, 스타일, 루프를 편집 가능한 장면 요소로 해결합니다.
파싱 및 렌더링
- TeX 파싱: 앱은 자주 사용되는 TikZ 명령어를 파싱하여 내부 표현을 구축합니다. 표준 TeX 컴파일러를 사용하지 않기 때문에, 즉각적인 진단 및 오류 강조 기능을 제공할 수 있습니다.
- 텍스트 및 수학: 렌더링은 MathJax를 통해 처리됩니다. LaTeX와의 시각적 일치성을 보장하기 위해, 앱은 다중 행 텍스트를 위한 TeX hyphenation 알고리즘과 Knuth-Plass line-breaking 알고리즘을 구현합니다.
- 색상 변환: 사용자 정의 색상 선택기(color picker)는 RGB 값을 가장 가까운 표현 가능한
xcolor문자열(예: hex 코드를violet!88!white!45!green으로 변환)로 변환합니다.
AI 통합
데스크톱 버전은 Codex App Server를 통해 OpenAI Codex와 통합되어, 사용자가 TikZ 전용 도구를 사용하여 앱 내에서 직접 그림을 편집하도록 AI 어시스턴트에게 요청할 수 있습니다.
가용성
TikZ Editor는 MIT 라이선스 하에 무료 및 오픈 소스로 제공됩니다. 웹 애플리케이션으로 제공되며, 가벼운 데스크톱 애플리케이션으로도 제공됩니다.