도움말 센터
LaTeX와 Typst 프로젝트를 작성하고 컴파일하며 공유하기 위한 실용적인 안내입니다.
사이트에 ‘JointTex에서 열기’ 추가하기
튜토리얼, 강의, 문서의 독자가 LaTeX 또는 Typst 예제를 한 번의 클릭으로 자신의 JointTex 프로젝트로 열 수 있게 합니다.
버튼 추가하기
버튼은 예제 코드를 JointTex로 보내는 평범한 HTML 폼입니다. 필드 이름이 Overleaf의 ‘Open in Overleaf’와 같으므로, Overleaf용으로 작성된 페이지는 폼 주소만 바꾸면 됩니다.
방법
- 예제 옆에 method가 post이고 action이 https://jointtex.com/open인 폼을 둡니다.
- 코드를 snip 필드에 넣습니다. 페이지에서 encodeURIComponent로 인코딩했다면 encoded_snip에 넣습니다.
- 제출 버튼을 추가합니다. 사이트에는 스크립트, 키, 계정이 필요하지 않습니다.
<form action="https://jointtex.com/open" method="post" target="_blank">
<textarea name="snip" hidden>
\documentclass{article}
\begin{document}
Hello, JointTex!
\end{document}
</textarea>
<button type="submit">Open in JointTex</button>
</form>여러 파일 보내기
참고문헌이나 별도 장 파일이 있는 예제는 각 파일을 차례대로 각각의 필드로 보냅니다.
방법
- 파일마다 snip[](또는 encoded_snip[])을 반복하고, 같은 순서로 snip_name[]에 이름을 지정합니다. 이름 없는 첫 파일은 main.tex입니다.
- .tex 파일이 둘 이상이면 컴파일할 파일을 main_document로 지정합니다. 그렇지 않으면 JointTex가 유일한 .tex 파일이나 \documentclass가 있는 파일을 사용합니다.
- 파일 이름에는 chapters/intro.tex처럼 폴더를 포함할 수 있습니다.
<form action="https://jointtex.com/open" method="post" target="_blank">
<input type="hidden" name="encoded_snip[]" value="...main.tex, encoded with encodeURIComponent...">
<input type="hidden" name="snip_name[]" value="main.tex">
<input type="hidden" name="encoded_snip[]" value="...refs.bib, encoded...">
<input type="hidden" name="snip_name[]" value="refs.bib">
<input type="hidden" name="main_document" value="main.tex">
<input type="hidden" name="engine" value="xelatex">
<button type="submit">Open in JointTex</button>
</form>엔진 선택하기
폼이나 코드에서 따로 정하지 않으면 JointTex는 pdfLaTeX로 컴파일합니다.
방법
- engine을 pdflatex, xelatex, lualatex, latex 중 하나로 설정합니다. Overleaf의 latex_dvipdf는 latex로 처리합니다.
- engine 필드가 없으면 메인 파일 앞부분의 % !TEX program = xelatex 같은 줄이 결정합니다.
- 둘 다 없으면 중국어, 일본어, 한국어가 들어 있는 메인 파일은 XeLaTeX로, 그 밖의 파일은 pdfLaTeX로 컴파일합니다.
- 표 하나처럼 \documentclass가 없는 단일 파일은 컴파일되도록 최소한의 문서에 넣습니다.
Typst 코드 보내기
같은 폼으로 Typst 예제를 Typst 프로젝트로 열 수 있습니다. Overleaf에는 없는 필드로, 이 부분은 JointTex만의 기능입니다.
방법
- engine을 typst로 설정합니다. 이름 없는 파일은 main.typ, snippet-2.typ 순으로 이름이 붙습니다.
- engine 필드가 없고 .tex 파일도 보내지 않았다면 .typ로 끝나는 파일이 메인 파일이 됩니다. main_document로 지정할 수도 있습니다.
- Typst 코드는 다른 문서 안에 넣지 않습니다. Typst 텍스트는 그대로 컴파일됩니다.
<form action="https://jointtex.com/open" method="post" target="_blank">
<textarea name="snip" hidden>
= Hello, JointTex!
Typst sets this paragraph.
</textarea>
<input type="hidden" name="engine" value="typst">
<button type="submit">Open in JointTex</button>
</form>독자에게 보이는 것
코드가 저절로 프로젝트가 되지는 않습니다. 독자가 먼저 내용을 확인합니다.
방법
- 폼을 보내면 파일, 메인 파일, 엔진, 보낸 사이트의 주소를 보여 주는 JointTex 페이지로 이동합니다.
- 로그인한 독자는 프로젝트 이름을 정하고 ‘프로젝트 만들기’를 선택합니다. 새 독자는 계정을 만들거나 로그인한 뒤 같은 페이지로 돌아옵니다.
- 프로젝트는 독자 본인의 비공개 프로젝트입니다. 다시 만들기를 선택하거나 새로 고침하거나 뒤로 가도 두 번째 사본이 아닌 같은 프로젝트가 열립니다.
- 코드는 JointTex 서버가 아니라 독자의 브라우저에 7일 동안 보관됩니다. 독자가 프로젝트를 만들기 전에는 서버에 아무것도 저장되지 않습니다. 비공개 창이나 사이트 데이터를 저장하지 않는 브라우저에서는 그 탭이 열려 있는 동안만 유지됩니다.
제한
제출은 논문 전체가 아니라 학습용 예제를 위한 것입니다.
방법
- 파일은 최대 20개, 파일당 256KB, 합계 512KB까지이며 UTF-8로 셉니다.
- 텍스트만 받습니다. 첨부 파일과, URL에서 파일을 가져오라고 요청하는 snip_uri, zip_uri는 거부됩니다.
- JointTex가 열 수 없는 내용을 폼이 보내면, 독자는 이유를 알려 주는 페이지로 이동합니다.
