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>처럼 입력하시면 좋습니다.
재귀호출함수의 인수를 다른 파일에서 input해오기
2018.04.19 21:37
환경
macOS Sierra (10.12.6)
TeX Live 2017
XeLaTeX
목적
재귀호출을 통해 \startProblems와 \stopProblems 사이에 여러 개의 인수를 집어넣으려 합니다.
(전체는 problems 환경으로 둘러싸이고, 각각의 인수는 exercise 환경으로 둘러싸입니다.)
여러 개의 인수를 직접 동일한 파일에 작성하여 집어넣는 것에는 성공한 상태입니다.
저는 '다른 파일'에서 그 '여러 개의 인수'를 지정하여 \input을 이용하여 집어넣고자 했습니다.
문제점
\startProblems
{정우성}{장동건}{원빈}
\stopProblems
은 잘 작동합니다.
\startProblems
{\input{anotherfile.tex}}
\stopProblems
은 오작동합니다.
\startProblems
\input{anotherfile.tex}
\stopProblems
은 오류로 인해 컴파일되지 않습니다.
MWE를 첨부했습니다. 염치없게도 이번에도 도움 부탁드립니다.
미리 감사드립니다^^
ps. 제가 MWE를 작성하는 과정에서 너무 축약한 것 같아서 다시 수정해서 올렸습니다. (2018년 4월 20일 02시 57분)
댓글 5
-
yihoze
2018.04.20 10:09
-
Kriss
2018.04.20 12:21
정말 간단하네요. 왜 이생각을 못했을지^^;; 감사합니다! -
DohyunKim
2018.04.20 11:51
한 가지 방법은 startProblems 명령을
\newcommand{\startProblems}{% \begin{exercises} \let\input\@@input \expandafter\@startProblemsi }
이렇게 고치고, input 명령을 사용할 때 brace 없이 사용하는 것입니다.
\startProblems \input anotherfile.tex \stopProblems
-
Kriss
2018.04.20 12:23
감사합니다. 이 또한 시도해보겠습니다!
let, expandafter 등의 의미와 활용 등을 공부할만한 document가 있을까요? sty파일을 만들 때 종종 마주치는데 매번 임기응변으로 대하다보니 확실한 개념을 공부하고 싶습니다. -
yihoze
2018.04.20 13:43
제대로(?) 공부하고 싶으면, Knuth 교수님의
http://www.ctex . org/documents/shredder/src/texbook.pdf요약 족보를 보고 싶으면, 김도현 회장님의
http://wiki.ktug.org/wiki/wiki.php/KTSConference/2016?action=download&value=kts_conf_2016_TokensNexpansions.pdf
재귀 호출의 특성상 input을 패러미터로 취하는 것은 불가할 것입니다. 저라면 이런 목적으로라면 다른 방식으로 만들겠습니다만, 아무튼 해법은 간단합니다.
\startProblems
\input{anotherfile}
\stopProblems
이렇게 할 게 아니라 anotherfile.tex을 이렇게 하면 되죠.
\startProblems
{정우성}{장동건}{원빈}
\stopProblems