KTUG마당은 KTUG를 방문하는 모든 이용자가 대화를 나누고 소식을 전하는 곳입니다.
- 로그인 없이 자유롭게 글을 읽고 쓸 수 있는 철학은 처음과 같이 계속됩니다.
- Team Blog의 글을 이곳 게시판의 "정보글"로 모았습니다. Team blog는 기고자가 올린 글에 질문을 받는 부담을 줄이기 위하여 댓글을 허용하지 않았습니다. 그러나 이곳 게시판으로 모으면서 댓글을 달 수 있습니다. 게시물을 작성하실 때 댓글을 원하지 않으시면 댓글을 허용하시지 않으시기를 바랍니다. 또한 불필요한 소모성 댓글을 달지 않도록 주의하여 주시기를 바랍니다.
- TeX과 관련된 질문이나 답변은 QnA 마당을 이용하십시오. TeX과 관련된 질문은 지웁니다
- MathJax를 이용한 수식조판을 사용하실 수 있습니다. 여기를 참조하세요.
- 스팸 글을 막기 위하여 짧은 시간 내에 다시 글이 등록되는 IP를 막거나, 광고 글을 막기 위하여 금지어로 .com, .net 등을 설정하고 있습니다. 다소간의 불편함이 있으시더라도 양해 바랍니다.
- 금지어에서 stackexchange, stackoverflow, ctan, overleaf, , github, google.com, gmail.com, .org, .io, sil.org, wiki.com, tistory.com등은 해제하였습니다.
- 사용하는 편집기는 CKeditor입니다. 편집기에서 [enter]를 누르면 <p> 태그가 들어가고, 문단으로 생각하고 한줄을 비웁니다. 글줄만 바꾸려면 shift-enter 를 누르시면 <BR>가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.
자유글 [연습] 다음 결과물은 어떻게 만들 수 있을까?
2010.03.15 12:14
본문 글꼴은 함초롬 바탕입니다. XeLaTeX으로 다음 결과물을 얻을 수 있는 (초보자도 이해할 수 있는) 쉽고 간단한 방법을 찾습니다.
본문 내용은 고 장영희 교수께서 옮긴 "피터 팬 (비룡소)"에서 가지고 왔습니다.
댓글 8
-
yihoze
2010.03.15 12:28
-
ChoF
2010.03.15 14:10
일반적인 규칙이 있는 배열이 아닙니다. 그냥 (가) 단락이 나온 후 0.4 * \textwidth 폭의 (나) 단락이 옵니다. 이제 새로운 단락에서 0.4 * \textwidth 폭의 (다) 단락이 나온 다음 정상적인 (라) 단락이 나오는 배열입니다. 문제는 (다) 단락의 윗 부분과 아랫 부분이 다른 단락들과 제대로 일치하는지, (라) 단락이 (다) 단락 이후에 제대로 위치하는지 입니다.
얼기설기 엮는 방법이라도 설명해 주시면 초보자들에게 도움이 될 듯 합니다.
-
ChoF
2010.03.15 15:42
아무런 정보가 없어서 황당할 것 같아 기본이 되는 텍 소스를 올립니다. 아래 결과물에서
- (다) 단락의 첫 줄이 (나) 단락의 둘째 줄과 일치하길 원하고
- (라) 단락의 시작이 (다) 단락의 끝 다음에 나오길 원합니다.
일반적으로 통용되는 멋진 코드를 원하는 것이 아니라 초보자들도 이해할 수 있는 쉬운 방법을 찾습니다.
-
karnes
2010.03.15 17:02
이거 어렵네요. 언뜻 생각나는 것만 적자면,
[나] 단락을 가져다 붙이는 것에는 의문이 하나 있습니다. 그 앞단락 "말했다"의 위치가 어디가 될지 미리 알 수 없는데 이 "말했다" 뒤에 붙여야 하는 것인지 아니면 오른쪽 끝을 기준으로 붙여야 하는 것인지가 분명하지 않네요. 만약 두번째 경우라면.... 저라면 textpos의 textblock으로 (위치를 계산해서) 붙이도록 할 것 같습니다.
(라)가 어렵습니다. 문단이 flush되기 전에 \hsize를 바꿀 방법이 없으니까요. 굳이 어찌해보자면.... 그 앞 단락 (다)를 박스에 넣어서 몇 행인가를 알아낸 다음에 \parshape로 하는 수밖에는 생각나지 않는군요.
-
karnes
2010.03.15 20:25
복잡한 테크닉을 쓰지 않아야 한다는 전제가...
미묘하게 다르지만 다음과 같이 하는 건 크게 어렵지 않을 거 같기도 합니다.
-
Progress
2010.03.16 14:20
이거 "다"에서 "라" 문단으로 넘어가는 부분이 좀 힘들겠는데요.
2010년 한국텍학회 리플릿 만들 때 사회자나 발표자의 이름과 소속을 조금 합리적(?)으로 식자하기 위해 \person이라는 사용자 정의 명령을 만들었습니다.
(원래는 작은나무님 위키 페이지의 [TeXbook읽기]에서 \signed 명령을 빌어온 것이고요.
김도현 교수님과 도은이아빠님께서 한글에 조금 더 어울리게 많이 다듬더 주셨습니다.)
% 발표자/ 사회자 등등.
% 윗줄의 내용이 짧게 끝나면 같은 행에서 맨 오른쪽으로 붙고
% 윗줄의 내용이 길게 끝나면 다음 행에서 맨 오른쪽으로 붙는다.
\newcommand\person[2][\empty]{%
\ifx#1\empty
\begingroup
\unskip\nobreak\hfil\penalty-5 %한글 글자사이에 penalty50이 자동 삽입되므로 더 작은 값의 페널티를 주어야 함
\hskip2em\hbox{}\nobreak\hfill\sffamily\small#2% textsf는 이탤릭이 아니므로 이탤릭 교정 불필요
\parfillskip=0pt \finalhyphendemerits=0
\endgroup% 그룹으로 감싸서 parfillskip0pt가 다음 줄에 영향을 미치지 않게 함
\else
\begingroup
\unskip\nobreak\hfil\penalty0
\hskip2em\hbox{}\nobreak\hfill\sffamily\small#2~{\scriptsize(#1)}
\parfillskip=0pt \finalhyphendemerits=0
\endgroup
\fi
}
이걸 한번 이용해서 해봐야겠습니다. -
ChoF
2010.03.18 01:17
마음에 드는 완벽한 해답은 아니지만 현재까지 발견한 해답을 올립니다. 어떤 코멘트도 환영입니다...
- 첫 페이지는 위의 댓글에서 언급한 기본이 되는 소스입니다.
- 둘째 페이지는 초보자 또는 시간이 많지 않은 사용자들을 위한 답입니다. (일명 노가다 기법이라고도 합니다.)
- 셋째 페이지는 포지션 프리미티브를 이용해 (라)의 위치를 맞춘 것입니다. (이 부분을 어렵다고 하셨는데, 답을 보면 실망하실지도...)
- 마지막 페이지는 (다)의 위치까지 포지션 프리미티브로 맞춘 것입니다. 사실 이 부분이 가장 어려웠고, 답이 아직 마음에 들지 않습니다. 왜냐하면 텍을 돌릴 때마다 포지션 위치가 바뀌기 때문입니다. (처음은 포지션이 기록되지 않아서 어쩔 수 없지만, 두번째 부터는 계속 제대로 된 결과가 나와야 하는데, 지금은 짝수번 실행 때만 제대로 된 결과가 나옵니다.)
-
noname
2020.10.11 14:02
우연히 10년 전 글을 발견한 참에, 시간이 이만치나 흘렀으니 지금 해보면 어찌될까 싶어서 시도해봤습니다. 0.4\textwidth 대신 0.45\textwidth로 했습니다.
핵심은 linegoal을 이용하는 것입니다.
(나) 문단은 hsize를 0.45\textwidth로 하는 \vtop으로 놓습니다. (가) 마지막 줄의 남은 길이를 계산하여 \parindent 또는 \hangindent로 첫 줄의 시작 위치를 결정했습니다. (나)가 dp=0pt의 vtop이기 때문에 (다)는 그냥 그대로 식자하면 됩니다. (다)의 마지막 줄 linegoal을 받아두었다가 (라)의 \parindent를 계산합니다. (가)와 (나) 사이, (다)와 (라) 사이는 한 줄 만큼 올려서 식자하였습니다.
기본적으로 이런 아이디어이고 나머지는 전적으로 길이 계산입니다. linegoal 자체가 zref를 이용하기 때문에 두 번 컴파일이 필요합니다.
배열에 전혀 규칙성이 없어 보입니다. 글상자를 얼기설기 엮는 방법 밖에는 없을 것 같은데요.