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>처럼 입력하시면 좋습니다.
babel, csquotes, 그리고 kotex이 만났을 때
2023.01.03 15:55
R2L 문자 몇 자를 식자하려고 babel을 썼는데, csquotes가 작동하지 않습니다.
babel 옵션에 english를 주니 잘 나와서 간단히 해결되었다 생각했는데, 이제는 contentsname 따위가 죄다 한글로 바뀌지 않고 영어로 나옵니다. csquotes가 아주 중요한 건 아니어서 안 써도 그만입니다만, 혹시나 해법이 있겠는지요?
\documentclass{article}
\usepackage[bidi=basic, english]{babel}
\usepackage[hangul]{luatexko}
\usepackage{csquotes}
\MakeOuterQuote{"}
\begin{document}
\tableofcontents
\section{따옴표}
"따옴표"
\end{document}
댓글 4
-
noname
2023.01.03 17:42
-
yihoze
2023.01.03 18:14
\AtBeginDocument 아래에서 konames-utf를 부르는 건 효과가 없고, \def\contentsname{차~례} 이렇게 하면 되긴 합니다만, \contentsname을 바꾸는 건 우선 순위와 상관 없을 것 같아 좀 이해되지 않습니다.
-
noname
2023.01.03 18:58
"\AtBeginDocument 아래에서 konames-utf를 부르는 건 효과가 없"다고 하셨는데, \usepackage[hangul]{luatexko}와 같이 이전에 konames-utf를 로드하려는 시도가 있었기 때문에 \RequirePackage가 이를 무시한 것입니다. 그러므로 \AtBeginDocument에서 \RequirePackage하기 전에 이 옵션을 주면 안 됩니다.
\usepackage{luatexko}
조금 부연하자면, babel의 main language의 localization은 그 효력이 AtBeginDocument 시점에서 발생하기 때문에 다른 어떤 패키지에 의한 설정보다도 우선하게 되어 있습니다. 즉 kotex이 konames-utf.sty를 preamble에서 불러왔다 해도 AtBeginDocument에서 babel localization이 적용되는 것입니다. 이것을 "우선순위"라고 말씀드렸습니다.
보여드린 바와 같이 \AtBeginDocument 인자로 \RequirePackage하면
(여기는 이미 preamble이 아니기 때문에 \usepackage는 안될 겁니다.)env/document/begin 에서 실행되는 모든 코드 이후에 해당 코드를 add_to_hook하므로, 위의 우선순위에 의한 정의보다 더 우선되게(즉 "나중에") 한 것입니다.사실, 얼마 전에는 babel보다 kotex이 (패키지 로딩 순서에 따라) 우선하도록 되어 있었던 적이 있습니다만, 이 순서를 바꾸자고 제가 제안한 기억이 납니다. 일장일단이 있지만 무슨 일이 일어나는지만 명확히 알고 있으면 되는 것이고요, 여러 상황을 고려했을 때 한국어 설정이 지나치게 강력(?)한 것이 불편할 때가 많다고 판단했기 때문입니다.
-
yihoze
2023.01.04 09:18
무슨 말씀인지 이해했습니다. 고맙습니다. 그런데 \AtBeginDocument는 preamble인 것 같습니다. 해 보니 \RequirePackage, \usepackage 둘 다 됩니다. 그리고 혹시나 해서 \begin{document} 뒤에 써 보니, 둘 다 에러 메시지를 일으킵니다.
해법인지는 모르겠습니다만, 이 이슈는 csquotes 때문이라기보다는 babel의 main langauge 선언과 kotex의 [hangul] 옵션의 우선순위 문제라고 보입니다.
babel의 main language는 english나 american으로 하고, 우리가 원하는 [hangul] 옵션의 효과는 수동으로 다음과 같이 할 수 있겠습니다.
상기 설정은 [hangul] 옵션을 주었을 때 발생하는 효과와 동일하게 한 것인데, linespread나 footnote, frenchspacing 설정 등은 상황에 맞게 하심이 좋겠습니다.