TeXmacs 문서
GNU TeXmacs 작업을 위한 에이전트 실용 가이드입니다. 강의 노트와 발표 자료를 변환하고, 스타일 패키지를 작성하고, 긴 수학 원고를 감사하면서 수집된 내용입니다. 계속 업데이트하세요: 새로 배운 내용은 "주의사항"에 추가하고, scripts/ 디렉토리의 스크립트가 계속 작동하도록 유지하세요. 프로젝트별 추가 사항은 이 스킬을 참조하는 별도의 로컬 스킬에 속합니다. "규칙(필수)" 섹션은 모든 곳에 적용됩니다.
출처: https://github.com/mgubi/texmacs-skill. 마지막 업데이트: 2026-11-04.
이 스킬을 최신 상태로 유지하기
이 스킬은 git 클론으로 설치됩니다(보통 ~/.claude/skills/texmacs). TeXmacs 문서 작업을 시작하기 전에:
- 업데이트:
git -C <스킬 디렉토리> pull --ff-only를 실행합니다(GitHub에 대한 SSH가 실패하면https://github.com/mgubi/texmacs-skill.git main에서 풀). 클론에 푸시되지 않은 로컬 변경 사항이나 커밋이 있으면 덮어쓰지 말고 사용자에게 알립니다. - 기여: TeXmacs에 대한 새로운 내용을 배웠을 때 여기에 추가하고(보통 "주의사항"에, 또는 스크립트 수정), 클론에 커밋하고 GitHub에 푸시합니다(푸시할 수 없으면 풀 리퀘스트를 엽니다). 모든 설치에서 이를 받아볼 수 있도록 합니다. 프로젝트별 자료는 프로젝트에 남겨둡니다.
파일 형식
-
.tm파일은 직렬화된 트리입니다.<tag|arg1|arg2>인라인,<\tag>…</tag>(인수 사이에<|tag>) 블록 인수, 문단은 빈 줄로 구분되며 들여쓰기는 레이아웃 전용입니다. 문자열 내부에서\<alpha\>는 기호이고,<less>/<gtr>는</>이며,\|는 리터럴 막대,<#89AB…>는 16진수 원시 데이터(내장 이미지)입니다. -
인코딩: 문자열은 Cork(T1)로 인코딩되며 UTF-8이 아닙니다. 악센트가 있는 라틴 문자는 대부분 Latin-1 바이트와 일치합니다(é = 0xE9, à = 0xE0, ö = 0xF6). 그러나 예를 들어 en 대시 = 0x15, em 대시 = 0x16, § = 0x9F입니다. 다른 유니코드 문자는
<#XXXX>(16진수 코드 포인트)로 작성됩니다. 독립형 토큰으로<#XX>를 직접 작성하지 마십시오. 원시 데이터로 읽힙니다("스타일 패키지 작성" 참조). 결과: UTF-8 도구로 .tm을 편집하지 마십시오(Edit/Write 도구가 거부하거나 손상시킴). Python으로encoding='latin-1', newline=''를 사용하여 읽고 쓰거나, 더 나은 방법은 아래 stree 경로를 통해 TeXmacs가 파일을 쓰도록 하는 것입니다. -
수동으로
.tm파일 작성: 이 스켈레톤을 정확히 복사하세요. 최상위 항목은 빈 줄로 구분됩니다. 빈 줄이 없으면 TeXmacs는<TeXmacs|…>헤더만 유지하고 다른 모든 것을 자동으로 삭제합니다(stree 덤프는(document (TeXmacs "2.1.5"))가 되고 PDF는 비어 있으며 오류가 없습니다):<TeXmacs|2.1.5> <style|<tuple|article|british>> <\body> First paragraph with <math|x<rsup|2>>. Second paragraph. </body> <\initial> <\collection> <associate|font|TeX Gyre Pagella> </collection> </initial><\body>내부의 문단들(그리고 모든<\tag>…</tag>블록)도 빈 줄로 구분됩니다. 단일 개행은 같은 문단을 계속합니다. 모든 블록 태그를 자체 줄에 닫고, 기호는\<alpha\>로 이스케이프하고 텍스트 내의 리터럴<,>,|는<less>,<gtr>,\|로 이스케이프하며, 파일을 Cork/Latin-1로 유지합니다(ASCII가 아닌 문자가 포함되는 즉시printf나 Write 도구가 아닌 Python으로 작성). -
수동 작성보다 생성을 선호합니다. 몇 줄 이상의 경우 Python으로 stree를 빌드하고(
scripts/latex2tm/stree.py) TeXmacs가 직렬화하도록 합니다(dump.scm의tm-undump). 또는 조각을 작성하고tm-dump한 다음 트리를 접합합니다. 수동으로 작성할 때는 사용하기 전에 결과를 확인하세요:tm-dump하여 본문에 예상된 수의 문단이 있는지 확인하거나, 조판하여 PDF 텍스트가 비어 있지 않고 완전한지 확인합니다(mutool draw -F txt). 비어 있거나 짧은 PDF, 또는 하나의 거대한 노드가 있는 덤프는 TeXmacs 버그가 아니라 형식 오류를 의미합니다. -
큰 파일: 발표 자료는 이미지를 원시 데이터로 포함합니다(10MB 이상). 읽기 전에
<#…>실행을 제거합니다:re.sub(r'<#[0-9A-F]{200,}>', '<#HEX>', s).
TeXmacs 헤드리스 실행
바이너리(macOS): /Applications/TeXmacs.app/Contents/MacOS/TeXmacs; Linux에서는 texmacs. 2.1.4 및 2.1.5에서 테스트되었습니다. scripts/latex2tm/run.sh에 경로가 있습니다. 필요시 그곳에서 조정하십시오.
- 변환:
TeXmacs -headless -c in.tex out.tm -q(LaTeX 가져오기),-c in.tm out.pdf -q(현재 버퍼의 PDF). - Scheme:
TeXmacs -headless -x "(begin (load \"/abs/dump.scm\") … (quit-TeXmacs))". 본문을 항상(catch #t (lambda () …) (lambda args (display args)))로 감싸고(quit-TeXmacs)로 끝내야 합니다: 그렇지 않으면 오류가 발생했을 때 프로세스가 영원히 멈춥니다. 백그라운드에서 실행하고 PID를 폴링합니다(scripts/latex2tm/run.sh참조). 해당 PID만 종료하십시오 — 절대pkill TeXmacs를 사용하지 마십시오(사용자가 TeXmacs를 열어놓았을 수 있음). - 헤드리스 실행은 TeXmacs 자체 상태를
~/.TeXmacs/system아래에 씁니다. 이는 정상입니다.
헤드리스에서 작동하는 Scheme API (scripts/latex2tm/dump.scm)
(tree-import (string->url f) "texmacs")/"latex", 그리고(tree-export t (string->url f) "texmacs"): 파일 ↔ 트리(버퍼 없음).(tree->stree t)/(stree->tree s): s-표현식.(call-with-output-file f (lambda (p) (write s p)))로 작성합니다 —with-output-to-file은 TeXmacs의 Guile에서 리디렉션되지 않습니다. Guile은 제어 문자를\xHH이스케이프로 씁니다(scripts/latex2tm/stree.py에서 처리됨).- 조판:
(load-buffer u) (switch-to-buffer u) (export-buffer-main u (string->url pdf) "pdf" (list))— PDF 내보내기가 조판을 수행합니다.(update-document "all")은 헤드리스에서 아무것도 하지 않습니다(지연된 유휴 명령). 직접(generate-all-aux) (update-current-buffer)를 호출하여 목차/참고 문헌을 채우고 다시 내보낸 다음(buffer-pretend-modified u) (buffer-save u)를 호출하여<\references>를 저장합니다. 새로운 파일은 모든 참조가 해결되기 전에 **두 번의 조판 실행(별도 프로세스에서 각각 실제 PDF 내보내기 포함)**이 필요합니다(scripts/latex2tm/typeset.sh). 항상(list :overwrite)를 옵션으로 내보내십시오: 헤드리스에서export-buffer-main은 그렇지 않으면 기존 파일을 교체할 것인지 확인을 요청하고 아무도 응답하지 않으며 내보내기가 자동으로 건너뜁니다(mgubi/texmacs#807).dump.scm의tm-typeset과tm-html이 이 작업을 수행합니다. - 프레젠테이션(
screens)은 현재 화면만 내보냅니다. 시각적 확인을 위해new-page*로 구분된 페이지로 평면화된 슬라이드로 미리보기 사본을 빌드하십시오(scripts/latex2tm/preview_slides.py). 스크린 버전을 전달하십시오. mutool draw -r 60 -o p%d.png file.pdf및magick montage … -tile 4x1 -geometry +4+4로 출력을 확인하고,mutool draw -F txt -o - file.pdf로 텍스트를 확인하십시오(해결되지 않은 참조에 대한?개수).
HTML 내보내기
HTML 사용자 정의는 TeXmac스 내부에서 수행하십시오: 스타일 패키지(또는 플러그인)가 내보내기 변수를 설정하고 매크로의 tmhtml- 렌더링을 제공합니다. 웹사이트는 TEXMACS_HOME_PATH가 사이트의 플러그인 폴더를 가리키고 (style-clear-cache)와 함께 tmweb-convert-dir로 디렉토리를 내보내 구축됩니다. 생성된 HTML을 스크립트로 후처리하지 마십시오.
일반적인 수정 사항을 하나의 플러그인에 모으십시오 (아래에서는 max-html이라고 하며 ~/.TeXmacs/plugins/max-html로 링크됨). 문서별 설정은 문서의 패키지에 유지하십시오. 이러한 플러그인은 다음을 보유합니다:
-
progs/max-html/fixes.scm: 시작 시 로드되며 MathJax 내보내기를 수정합니다. 수식 내부의 레이블은 앵커를 가져오고(#617),\ring은\mathring으로 작성되며(#607),equations-base는aligned로 작성됩니다(#611). 이는(convert html tmhtml)내부에서tmhtml-mathjax-formula*의 바인딩을 대체하고(module-variable+variable-set!;cork->html과 같은 내부 헬퍼는module-ref로),latex-mathjax를tm-define … (former x)로 확장합니다. -
max-html패키지(기사): 프레임이 있는 정리, 목록 레이블 및 내용 사이드 패널div.max-toc를 제공합니다.max-html-slides패키지는 슬라이드 뷰어와tmhtml-mytitle/myframed/myframed-2를 제공합니다. -
resources/는max-html.css/js및max-html-slides.css/js를 보유하며 페이지 옆에 복사됩니다. 문서 패키지는<use-package|max-html>을 사용하고 전체html-extra-css튜플을 다시 할당합니다(플러그인 파일 먼저):merge는 작동하지 않습니다. 내보내기가 변수를 평가되지 않은 상태로 읽기 때문입니다. 글꼴은 CSS 변수입니다(--max-text-font,--max-slide-font). -
HTML 내보내기에 대한 일반적인 수정은 플러그인으로 들어갑니다. 문서별 항목(글꼴, 파비콘, 발표 매크로)은 문서의 패키지로 들어갑니다.
-
내보내기:
scripts/latex2tm/dump.scm의(tm-html in out mathjax?)(환경설정texmacs->html:mathjax|css|images, 그 다음(export-buffer-main u (string->url "x.html") "html" (list))). 조판된 .tm을 내보냅니다(저장된<\references>가 번호를 제공함).doc.tm#label링크는doc.html#label이 됩니다. 이미지는 페이지 옆에<base>-N.png가 됩니다. MathJax 3는 jsdelivr에서 제공됩니다. -
내보내기가 읽는 스타일 변수(스타일 패키지에서 설정):
html-css(기본 인라인 css 대체),html-extra-css(추가 스타일시트 튜플, 기본 css 유지),html-extra-javascript-src(튜플, 지연됨),html-extra-javascript,html-head-javascript(-src),html-head-favicon,html-title,html-doc-title,html-site-version. -
매크로의 HTML 렌더링:
NAME옆에tmhtml-NAME을 정의하십시오. 내보내기는NAME대신 이것을 사용합니다. 이를 위한 마크업 헬퍼:html-div-class|class|body(블록),html-class|class|body(인라인 스팬),html-style,html-div-style,html-attr,html-tag,html-javascript. 이는 스타일 패키지에 정의된 매크로에서만 작동합니다. 문서의hide-preamble에 할당된 매크로는 내보내기 전에 확장되어tmhtml-변형이 무시됩니다. 따라서 프레젠테이션 매크로를 패키지에 넣으십시오. -
문서 옆에 있는
foo.ts패키지는 스타일 튜플이foo를 나열할 때 발견됩니다. 패키지를 편집한 후에는(style-clear-cache)를 호출하십시오(TeXmacs는 스타일 환경을~/.TeXmacs/system/cache에 캐시함). 그렇지 않으면 이전 정의가 사용됩니다. -
목차(및 기타 생성된 목록): 항목은 이미 확장된 상태로 보조 데이터에 기록됩니다(
write는 인수를 평가함). 따라서toc-main-*/toc-1…5주변의 래퍼는 사라지고 해당tmhtml-변형은 절대 표시되지 않습니다. 오직 외부table-of-contents매크로만tmhtml-렌더링을 가질 수 있습니다. 확장 및 내보내기에서 살아남는 마커:<b>(굵은 섹션),<with|font-size|…>→<font style=…>,font-shape→<i>/작은 대문자,color→<font color>;par-left들여쓰기는 사라집니다. 각 항목은<a href="#auto-N">page</a>로 끝납니다. 사이드 패널 레시피(플러그인 패키지max-html):tmhtml-table-of-contents→ 왼쪽에 고정된div.max-toc;.max-toc p a[href^="#auto-"] {position:absolute; inset:0; font-size:0}로 페이지 링크를 숨기고 늘립니다(href로 선택: 제목의eqref도 링크임); 중첩된<with|font-size|0.92|…>로toc-3…5를 재정의하여 문단 수준 항목을 표시하고p:has(> font)를 선택합니다.toc-*매크로를 변경한 후 TOC를 재생성합니다(두 번의 조판 실행). -
패널에서 현재 섹션 강조 표시는 JavaScript가 필요합니다:
max-html.js(플러그인), 패키지의html-extra-javascript-src로 첨부됨; 각 항목의#auto-N링크를 해당 id를 가진 제목에 매핑하고, 뷰포트의 25% 위에 있는 마지막 제목을 표시하며(p.toc-current및 상위 굵은p.toc-current-section) 패널을 스크롤하여 계속 보이게 합니다. -
프레임이 있는 정리(Joris van der Hoeven의 웹 기사, 예: texmacs.org/joris/fftcomp; 모델은 TeXmacs의
styles/article/texmacs/tmarticle.ts임):tmhtml-render-theorem→<html-div-class|theorem|<render-enunciation|…>>및<html-class|enunciation-name|which>로tmhtml-render-enunciation을 정의합니다. 정리, 명제, 보조 정리, 따름정리 및 정의는render-theorem을 사용하는 반면, 주의 및 증명은render-remark를 사용합니다. Joris의 css(texmacs.org/css/theme-dark-colored.css)는.theorem {border: 1px solid; border-left: 1em solid; padding: 0 1em}입니다. 흐릿한 색상과 .5em 막대도 잘 작동합니다(max-html.css). 이것은 HTML 전용입니다. PDF는 변경되지 않습니다. 색상(Joris 테마에서와 같이):h1…h6, strong, b, dt, .enunciation-name은 흐릿한 어두운 빨간색으로, MathJax 출력은mjx-container {color: …}로; TOC 패널 내부의b는 재설정합니다. -
HTML 내보내기는 모든
enumerate-alpha|Alpha|roman을 일반<ol>(십진 레이블)로 바꿉니다. 수정:tmhtml-enumerate-alpha→<html-div-class|enum-alpha|<enumerate|…>>더하기.enum-alpha > ol > li::marker {content: "(" counter(list-item, lower-alpha) ") "}. -
MathJax: 컨버터는 링 악센트
<abovering>을\ring{…}(LaTeX 패키지 악센트)로 작성하는데, MathJax에는 없습니다(mgubi/texmacs#607). 플러그인에 의해 수정됩니다. 페이지 수준 대안은html-extra-javascript의 인라인 MathJax 구성(MathJax<script>앞에서 실행됨)입니다:window.MathJax = {tex: {macros: {ring: [String.fromCharCode(92) + 'mathring{#1}', 1]}}}. -
MathJax:
equation내부의aligned는 HTML 내보내기에 의해equations-base로 사전 확장되어\begin{equationsbase}로 MathJax에 도달합니다(mgubi/texmacs#611). 플러그인에 의해 수정됩니다. 페이지 수준 대안은 해당 구성의environments: {equationsbase: […aligned…]}입니다. -
내보내기의 모든 수식을 확인하려면
scripts/mathjax-check/를 사용하십시오: 임시deps/폴더에npm install [email protected]를 설치하고,python3 extract.py HTMLDIR formulas.json을 실행하고(HTML 파서 사용:\(t < \infty\)의 원시<는 브라우저에서와 같이 텍스트임)node check.js deps/node_modules formulas.json을 실행합니다.noundefined패키지 없이 모든 수식을 렌더링하고(브라우저에서 정의되지 않은 매크로를 빨간색으로 자동 표시함) 오류를 그룹화합니다. 빈 수식(별도로\(\displaystyle \)개수)이나 끊어진 링크는 확인하지 않습니다. 또한 모든 내부href="…x"에 일치하는id="x"가 있는지 확인하십시오. -
슬라이드: css
max-height로 좁혀진width=100%이미지는 문단 왼쪽에 남습니다.div.toggle img.image {display: block; margin: 0 auto}로 중앙에 배치하십시오. -
헤드리스 Firefox:
user.js의 다크 모드content-override기본 설정이 적용되지 않았습니다. 확인하려면about:config를 열고 확인하십시오.
LaTeX에서 변환 (scripts/latex2tm/)
py/tm_package/의 Python 패키지는 LaTeX 매크로를 검사하고 TeXmacs 스타일 파일을 생성하기 위한 것입니다(scripts/tex2tm/README.md에 문서화됨).latex2tm.py를 사용하여 LaTeX 파일을 변환하고 강제로 스타일을 지정하십시오: TeXmacs의-c(느리고 네이티브 LaTeX가 필요하며 중첩된\input을 따르지 않음) 대신 사용하십시오.latex2tm.py in.tex out.tm article max-html은 LaTeX를article패키지(및 플러그인max-html)가 있는 .tm 파일로 변환하고\includegraphics경로를 유지하며\cite를<cite|bib:key>로,\ref/\label을<reference|bib:key>/<label|bib:key>로 바꿉니다. 모든 비표준 LaTeX 명령을 자동으로 감지하여 변환하거나(식별된 것은tex2tm/packages/에 있음) 경고를 출력합니다.parse_latex.py는latexxml(PyPI)latexwalker를 사용하여 LaTeX를 구문 분석합니다:displaymath를 제외한 모든 환경을 처리하고, 선택적 인수, 중첩된 그룹을 올바르게 처리하며(LaTeXML보다 더 잘함)\text를 일반 텍스트로 출력합니다.\ref{fig:1}→<reference|fig:1>.- Beamer 슬라이드의 경우:
latex2tm.py talk.tex talk.tm slides max-html-slides는max-html-slides패키지를 사용하여slides스타일로 변환합니다.\frame은<render-frame|title|body>가 되고, 블록 환경은<render-block|title|body>가 됩니다.\only/\uncover/\visible/\invisible은 각각<render-overlay|…>/<render-uncover|…>/<render-visible|…>/<render-invisible|…>로 변환됩니다.\makebox[\textwidth]{…}는 외부에 있는 경우<with|par-columns|1|…>가 됩니다. 나머지 사용자 정의는 수동으로 TeXmacs 매크로를 작성해야 할 수 있습니다:render-frame의 정의를 수정하여\item에 대한 표준 증분 오버레이를 추가합니다(예:\item<3->는<render-uncover|3-|\item| …>가 됨).scripts/latex2tm/texmacs_talk/에서 몇 가지 예를 참조하십시오. - Beamer에는 표준
\begin{columns}[T] … \end{columns}가 있으며, 이는 사용자 정의 매크로render-columns(패키지에 정의됨)로 변환됩니다:<render-columns|<render-column|0.5|<content>>|<render-column|0.5|<content>>>. - 변환에는 두 번의 패스가 필요합니다. 첫 번째 패스는 LaTeX를 구문 분석하고 원시 TeXmacs 트리를 생성하며, 두 번째 패스는
<render-*>매크로를 오버레이가 있는 실제screens구조로 확장합니다. 대규모 문서(100개 이상의 슬라이드)의 경우 각 슬라이드를 개별적으로 변환하고 연결하거나scripts/latex2tm/split_talk.py를 사용하십시오: 각\begin{frame}을 별도의.tm으로 분할하고, 각각 변환한 다음<merge|file1.tm|file2.tm|…>를 사용하여 단일talk_complete.tm으로 병합합니다.run.sh에는--merge플래그가 있습니다.
내보내기 파이프라인 (scripts/latex2tm/typeset.sh)
typeset.sh source.tm은 source.tm을 두 번 조판하여 모든 참조를 확인한 다음 source.pdf를 생성합니다(두 번째 조판 후 참조를 저장하기 위해 (buffer-pretend-modified) (buffer-save)를 사용함). -p 플래그를 사용하여 preview_slides.py를 호출하고 플랫 프레젠테이션 사본을 만듭니다. 출력 디렉토리는 typeset.sh에 인수로 전달되거나 현재 디렉토리로 기본 설정됩니다. -j 플래그를 사용하여 HTML도 내보내고 -m을 사용하여 MathJax를 활성화합니다.
주의사항
초보자를 위한 메모와 함정입니다. 항상 목록의 첫 번째 항목으로 새로 배운 내용을 추가합니다.
- 부동체 및 참조: 부동체(figure, table)는 typeset.sh로 조판할 때
tmhtml-변형이 없으면 HTML 내보내기에서 무시됩니다. 각figure환경에tmhtml-figure를 정의하십시오.\label이 있는 부동체는(generate-all-aux)를 호출하여 참조를 채웁니다. 결과tm파일에는<\references>블록이 있습니다. HTML 내보내기 전에 이 블록이 존재하는지 확인하십시오. 새로 생성된tm파일은 참조가 확인되기 전에 두 번의 조판 실행이 필요합니다. - TeXmacs 버전: TeXmacs 2.1.4는
export-buffer-main에서:overwrite옵션을 지원하지 않습니다(mgubi/texmacs#807). 2.1.5로 업그레이드하거나 헤드리스 내보내기 전에 파일을 수동으로 삭제하십시오. - 파일 인코딩: 항상
.tm파일을 Latin-1(Cork)로 작성하십시오. UTF-8로 작성하면 TeXmacs가 파일을 열 때 문자를 자동으로 변환하려고 시도하지만<#XX>이스케이프가 손상될 수 있습니다. Pythonopen은encoding='latin-1'을 사용해야 합니다. Vim의 경우:set encoding=latin1을 사용하십시오. - TOC 내보내기:
tmhtml-table-of-contents는dump.scm에 정의되어 있으며export-buffer-main이 호출될 때 사용됩니다. TOC가 올바르게 렌더링되려면 두 번의 조판 실행이 필요합니다.dump.scm의tm-html함수는 첫 번째 패스에서 aux 데이터를 생성합니다. 두 번째 패스는 이를 읽어 TOC를 구성합니다.scripts/latex2tm/typeset.sh에서 이 작업을 처리합니다.(style-clear-cache)를 잊지 마십시오. - TikZ 플러그인: TikZ 플러그인은
.tm파일에 TikZ 코드를 포함시킵니다. 내보낼 때 플러그인이 설치되어 있어야 합니다.TEXMACS_HOME_PATH가 플러그인 디렉토리를 가리키는지 확인하십시오. 그렇지 않으면 TikZ가 렌더링되지 않습니다. 로컬 테스트를 위해~/.TeXmacs/plugins/tikz에 심볼릭 링크를 만드십시오. - 이미지 경로: HTML 내보내기는
<image|path|...>에서 이미지 경로를 기대합니다.path는 HTML 파일을 기준으로 합니다. LaTeX에서 변환할 때latex2tm.py는 이미지 경로를 상대 경로로 변환하려고 시도합니다. 그러나<#HEX>로 내장된 이미지는 내보낼 수 없습니다. 수동으로 추출해야 합니다. - 빈 식별자:
dump.scm의tm-html함수는export-buffer-main을 호출하기 전에(generate-all-aux)를 호출합니다.(generate-all-aux)를 호출한 후export-buffer-main을 호출하지 않으면 참조가 저장되지 않습니다.typeset.sh를 사용하면 이 작업이 자동으로 처리됩니다. \TeX매크로:\TeX매크로는tmhtml-변형 없이 HTML 내보내기에서TeX로 확장됩니다.max-html패키지에tmhtml-TeX를 정의하여<span class="tex">T<sub>E</sub>X</span>를 렌더링하십시오.- 스크립트 경로: 모든 스크립트는
texmacs-skill루트를 기준으로 합니다. 스크립트를 실행할 때 스크립트가 있는 디렉토리에서 상대 경로를 사용해야 합니다.run.sh는 적절한 경로 설정을 처리합니다. - 오버레이가 있는 Beamer:
\only<2->{...}는render-overlay로 변환되지만\only내부의 문법적으로 유효하지 않은 TeX는 변환기에 의해 구문 분석되지 않을 수 있습니다. 변환하기 전에 각 오버레이 사양이 올바른지 확인하십시오. 특히\pause는render-uncover로 변환되지 않습니다.\pause를 수동으로 대체하십시오. - HTML과 MathJax: MathJax로 내보내기를 확인할 때
extract.py가 빈 수식을 놓칠 수 있습니다. 또한 모든 수식이\(\)로 올바르게 래핑되었는지 확인하십시오. MathJax가\displaystyle를 인식하지 못하면check.js가 오류를 보고합니다. - 플러그인 구조:
max-html플러그인은progs/,resources/및 선택적으로styles/디렉토리가 있어야 합니다. 누락된 부분이 있으면 TeXmacs가 시작 시 플러그인을 로드하지 못할 수 있습니다.~/.TeXmacs/plugins/max-html에서 올바른 구조를 확인하십시오. dump.scm의catch:catch를 사용하면 TeXmacs가 헤드리스 모드에서 충돌하는 것을 방지할 수 있습니다. 하지만 모든 오류를 자동으로 잡아내지는 않습니다. 예를 들어, 존재하지 않는 파일을 로드하려고 하면load-buffer가 오류를 발생시키고catch가 이를 잡아내지 못해 프로세스가 중단됩니다. 항상 파일이 존재하는지 먼저 확인하십시오.(quit-TeXmacs)누락:-x인수로 Scheme 코드를 실행할 때 코드 끝에(quit-TeXmacs)를 포함하지 않으면 프로세스가 영원히 실행됩니다.run.sh는 제한 시간을 추가하지만 이상적이지 않습니다.git pull실패:git pull --ff-only가 로컬 변경 사항으로 인해 실패하면 강제로 푸시하지 마십시오. 사용자에게 알리고 수동으로 해결하도록 하십시오.- 글꼴: HTML 내보내기에서 CSS 변수
--max-text-font및--max-slide-font를 사용하여 글꼴을 설정하십시오. 기본값은 TeXmac스의 기본 글꼴(TeX Gyre Pagella)입니다.max-html.css에서 재정의할 수 있습니다. html-extra-css: 이 변수는 튜플이며 플러그인 CSS가 먼저 옵니다. 문서 패키지에서html-extra-css를 재정의하면 플러그인의 CSS가 재정의됩니다. 플러그인 CSS를 유지하려면 패키지의html-extra-css에 플러그인 CSS를 포함시키거나merge를 사용하십시오(작동하지 않을 수 있음을 명심).html-extra-javascript-src: 이 변수는 튜플이며 JavaScript 파일이 지연(defer) 속성과 함께 로드됩니다. 스크립트는DOMContentLoaded이벤트 후에 실행됩니다.max-html.js는 이 이벤트를 기다립니다.- 헤드리스 Firefox: Firefox를 헤드리스 모드(예: SVG로 내보내기)로 사용하는 경우
user.js에서content-override를 설정해도 적용되지 않을 수 있습니다.TMPDIR환경 변수를 설정하여 캐시 문제를 해결하십시오. - 오래된 캐시:
(style-clear-cache)를 호출하지 않고 스타일 패키지를 편집하면 이전 정의가 사용됩니다. 항상 스타일 패키지를 변경한 후 캐시를 지우십시오. 캐시는~/.TeXmacs/system/cache에 있습니다. 디버깅을 위해rm -rf를 사용하십시오.