Q&A 마당은 텍 관련 질문/답변을 위해 만들었습니다.
- 로그인 없이 자유롭게 글을 읽고 쓸 수 있는 철학은 처음과 같이 계속됩니다.
- 질문 전에 아래를 읽어 보세요. 좋은 질문이 좋은 답을 받을 수 있는 좋은 방법입니다.
- 질문에 맞는 제목을 붙이세요. 질문의 내용과 관련없는 "고수님", "긴급질문", "도와주세요"와 같은 제목은 답이 잘 올라오지 않습니다. 이 게시판에 올라오는 모든 글은 질문입니다. 굳이 [질문], [Q]를 적으실 필요도 없습니다.
- 내용을 충실히 적어 주시고, 같은 상황을 재현할 수 있는 최소한의 예제가 같이 있어야 합니다.
- 최소 예제는 "Minimal working example"을 읽어 보세요.
- 파일을 첨부하실 때에는 가능한 압축하여 파일 크기를 줄여서 올려주시길 바랍니다.
- 개인적으로 사용하신 글꼴이 들어 있는 경우, preparefont.sty에 관한 답변을 참조하세요.
- 스팸 글을 막기 위하여 짧은 시간 내에 다시 글이 등록되는 IP를 막거나, 광고 글을 막기 위하여 금지어로 .com, .net 등을 설정하고 있습니다. 다소간의 불편함이 있으시더라도 양해 바랍니다.
- 금지어에서 stackexchange, stackoverflow, ctan, overleaf, , github, google.com, gmail.com, .org, .io, sil.org, wiki.com, tistory.com등은 해제하였습니다.
- MathJax를 이용한 수식조판을 사용하실 수 있습니다. 여기를 참조하세요.
- 사용하는 편집기는 CKeditor입니다.
- 편집기에서 [enter]를 누르면 <p> 태그가 들어가고, 문단으로 생각하고 한 줄을 비웁니다.
- 글줄만 바꾸려면 [shift-enter]를 누르면 <BR> 태그가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.
- 수식를 문서내에 삽입하시려면 에디터를 툴바에서 [소스]를 눌러 HTML로 입력할 수 있게 바꾸신 후 <pre> </pre> tag를 사용하셔서 <pre> 여러 줄의 수식 </pre>처럼 입력하시면 좋습니다.
expl3 프로그래밍을 위한 syntax highlighting과 에디터
2017.07.18 18:14
안녕하세요.
요즘 expl3에 관심을 갖게 되어 documentation을 보며 조금씩 공부해 보고 있습니다.
그런데, 혹시 expl3 쓰는 분들께서는 텍 에디터를 어떤 것을 사용하시나요? 저는 평소 TeXstudio나 Sublime Text를 사용하고 있는데, 둘 모두 expl3 문법의 syntax highlighting이 영 별로인 것 같습니다. 예를 들어,
\str_case_x:nnT
와 같은 명령어가 있을 때, TeXstudio에서는 아예 잘못된 커맨드로 인식해 빨갛게 나오고, Sublime Text에서는 다음과 같이 highlighting 되어 나옵니다.
\str_case_x:nnT
하지만 저는 이것보다는
\str_case_x:nnT
와 같이 되어야 알아보기 편하지 않을까 생각합니다. 후자가 최선인지는 모르겠으나 전자는 확실히 부적합한 것 같습니다.
후자와 같이(혹은 비슷하게) expl3 문법이 잘 syntax highlighting 되는 에디터가 혹시 있는지요? 혹은, 전자와 같이 되는 것이 맞다고 생각하시는지, 의견을 여쭈어 봅니다.
댓글 4
-
yihoze
2017.07.19 09:50
-
베이드프즈
2017.07.19 13:18
VSCode에서도 아직 좋은 해결책이 없다는 말씀이시군요. 더 검색해보니 WinEdt에서 되는 방법이 있는 것 같은데 우선은 말씀하신 대로 누가 만들어줄 때까지 기다리는 것도 방법이겠네요 ^^
답변 감사합니다. -
yihoze
2017.07.19 15:46
소경이 문고리 잡듯 가까스로 성공했습니다.
tex.tmLanguage 파일을 손봤습니다.
https://git쩜io/vQhwQ
".expl"을 포함하는 항목들이 추가된 것들입니다. 항목의 순서도 중요하네요.
-
베이드프즈
2017.07.19 16:20
정말 감사합니다.
nnT는 (그렇게 보이지만) 패러미터가 아니고, 명령어의 일부입니다. 따라서 이렇게 보여야 할 것입니다.
\str_case_x:nnT
일단 이 문제에서 살펴볼 것은 논리적 충돌이 있습니다. 텍에서 언더스코어는 아래 첨자를 가리키는 것이므로 명령어에 포함된 것으로 보지 않는 것이 자연스럽습니다. 그렇다 해도 저런 것을 하나의 명령어로 간주하게 만드는 것은 가능할 것입니다.
저는 VSCode를 사용하고 있어서 그 방법을 찾아 보았습니다. plist 또는 tmlanguage 라는 파일이 사용된다고 합니다. 파일을 살펴 보고 내린 결론은 "남이 만들어 줄 때까지 기다려 보자"입니다. ^^;
C:\Users\......\.vscode\extensions\ms-vscode쩜latex-0.1.3\syntaxes 아래에 latex.tmLanguage 파일이 있습니다.
XML 파일입니다. 정규 표현식을 이용해서 expl3 매크로를 한 덩어리로 잡도록 정의하는 것은 가능하겠다 싶은데, 문제는 이것의 형식(DTD)이 어떤 것인지 잘 모르겠다는 것입니다.
<dict>
<key>begin</key>
<string>((\\)(?:include|input))(\{)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control쩜include쩜latex</string>
</dict>