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>처럼 입력하시면 좋습니다.
여러개의 파일중 Random하게 선택 선택하여 컴파일하는 방법이 궁금합니다.
2012.10.22 00:09
안녕하세요.
제가 파일을 여러개 작업하였는데요.
예를 들면
1.tex, 2.tex, 3.tex, 4.tex, 5.tex,...10,tex
위와같이 10개의 내용 tex파일을 만들었는데요.
이들 중 Random하게 3개를 선택하여 컴파일하는 방법이 궁금합니다.
물론 같은것은 한번만 선택하구요.
부탁드립니다.
댓글 6
-
ndh
2012.10.22 05:08
-
김종열
2012.10.22 08:58
너무나 자세한 설명 감사합니다.
저는 두번째 과정으로 컴파일하고자 합니다.
즉 메인 컴파이 창에서 10개의 파일중에서 3개를 불러와서 컴파일하는겁니다.
운영체계는 window입니다. 다시한번 부탁드립니다.
환경은
\documentclass[dvipdfmx,finemath,nobookmarks,kosection,chapter,twoside,openright,11pt]{oblivoir}
입니다.
다시한번 부탁드립니다.
-
ndh
2012.10.22 12:55
TeX에게 random number generation을 시키는 방법도 있습니다마는 배치파일 얘기가 나왔으니 이걸로 끝을 보지요.
main.tex의 preamble 부분을 별도의 파일로 만들어서 같은 디렉토리에 두세요. 이걸 mypreamble.tex이라 하겠습니다.
mypreamble.tex
\documentclass{oblivoir}
\setkormainfont{HCR Batang LVT}
\usepackage{amsmath,amssymb,amscd}
다음과 같은 배치파일을 만듭니다.
@echo off
set MaxFiles=10
set LATEXENGINE=xelatex
set /a MaxDiv=32768/%MaxFiles%
:getRandomOne
set RanOne=%RANDOM%
set /a RanOne=%RanOne%/%MaxDiv%+1
:getRandomTwo
set RanTwo=%RANDOM%
set /a RanTwo=%RanTwo%/%MaxDiv%+1
if .%RanTwo%.==.%RanOne%. goto getRandomTwo
:getRandomThr
set RanThr=%RANDOM%
set /a RanThr=%RanThr%/%MaxDiv%+1
if .%RanThr%.==.%RanOne%. goto getRandomThr
if .%RanThr%.==.%RanTwo%. goto getRandomThr
:TemporaryMainTeX
set TMAINTEX=tmpmain-%RANDOM%-%RANDOM%.tex
echo \input mypreamble.tex >%TMAINTEX%
echo \begin{document}>>%TMAINTEX%
echo \input %RanOne%.tex \par>>%TMAINTEX%
echo \input %RanTwo%.tex \par>>%TMAINTEX%
echo \input %RanThr%.tex \par>>%TMAINTEX%
echo \end{document}>>%TMAINTEX%
:CompileMainTeX
if exist %TMAINTEX%.pdf del %TMAINTEX%.pdf
%LATEXENGINE% -interaction=nonstopmode -synctex=1 %TMAINTEX%
if exist %TMAINTEX%.pdf start "" %TMAINTEX%.pdf
이 배치파일을 실행하면 원하시는 대로 해줄 겁니다.
-
김종열
2012.10.23 02:05
답변 너무 감사합니다. 일려주신대로 하여보니 잘 됩니다.
추가로
random number generation을 시키는 방법도 알고자합니다.
다시 한번 부탁드립니다.
-
샘처럼
2012.10.23 10:12
위는 DOS의 배치화일을 이용한 것이고, Random number gerneration 도 DOS의 환경변수에서 받아 온 것일 듯 합니다.
set MaxFiles=10
부분을 중심으로 보시면 될 듯 합니다.
set /a MaxDiv=32768/%MaxFiles%
set RanOne=%RANDOM%
set /a RanOne=%RanOne%/%MaxDiv%+1
환경변수와 관련된 부분은 윈도우에서도 설명이 잘 나와 있네요. 도스창을 열어 놓으시고,
> help set
-
ndh
2012.10.23 13:45
배치파일이나 외부 스크립트에 의하지 않고 TeX만으로 하려 한다면 다음 글을 참고하십시오.
http://doeun.blogspot.kr/2011/06/tex.html
이 글에서 자세히 말하고 있지만, pdfTeX엔진에서는 \pdfuniformdeviate 프리미티브 하나면 간단히 난수를 조작 제어할 수 있습니다.
XeTeX의 경우는 이 프리미티브가 없기 때문에 역시 같은 글에서 말하고 있는 random.tex이나 lcg 패키지를 이용해야 할 것입니다.
1.tex에서 10.tex까지라는 파일들이 각각 독립적으로 컴파일되는 것인 경우인지
아니면 예컨대 main.tex에서 부르는 *내용* 파일인지에 따라 처리 방법이 달라지겠습니다.
첫째 경우라면 randomize를 TeX에게 맡길 것 없이 임의의 세 숫자를 얻어서 컴파일하면 되는 거겠고요
두번째 경우라면 TeX이 난수를 발생시켜서 \input 하는 파일명을 정하도록 해야하겠지요.
첫째 경우는 운영체제에 따라 방법을 달리할 수 있을 것인데 윈도우즈라고 가정하고 다음과 같은
간단한(?) 배치파일을 쓰면 될 것 같습니다.
두번째 경우라면 다시 질문해주세요.