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>가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.
연분수를 만드는 매크로를 소개합니다. :-)
첨부파일: ltcfrac.tex
사용예제
\documentclass{oblivoir}
\usepackage{mathtools}
\input ltcfrac.tex
\begin{document}
\begin{align*}
\frac{415}{93}&=\contfrac{415}{93} \\
&=\contfrac[s]{415}{93} \\
&=\contfrac[b]{415}{93} \\
\end{align*}
\end{document}
참고
http://goo.gl/kbpIzi
TODO
expl3를 사용하여 깔끔하게 고칠 것.
댓글 9
-
nanim
2015.02.13 22:59
-
작나
2015.02.13 23:36
감사합니다.
slash 형태는 //4,2,6,7//가 맞는데,
bracket 형태는 [4,2,6,7]가 아니라 [4;2,6,7]입니다.
즉 첫번째 숫자 다음에 나오는 것이 콤마(,)가 아니라 세미콜론(;) 입니다.
-
nanim
2015.02.13 23:48
고쳤습니다.
-
nanim
2015.02.14 08:31
\fraction 함수의 구현에 대해서 생각을 좀 해봤는데요,
오리지널의 \fifo, \ofif 기법은 매우 재미있기는 하지만 그것을 그대로 expl3로 옮기는 것은 expl3를 쓸 이유가 없는 거라서 생각해본 것은 두 가지였습니다.
하나는 quark의 꼬리재귀 방식을 쓰는 것이고 다른 하나는 expl3의 seq나 clist 데이터 타입을 응용하는 것이었는데요,
어차피 expl3는 higher level 언어니까 그냥 쉬운 걸로 하자고 생각해서 seq_map_function 하는 방식으로 해봤습니다.
핵심은 다음 함수고요, 그냥 나눗셈 알고리즘...
\cs_new:Npn \cftofr_cfrac:n #1
{
\int_gset:Nn \cftofr_quotient { #1 }
\int_gset:Nn \cftofr_dividend
{ \cftofr_quotient * \cftofr_divisor + \cftofr_remainder }
\int_gset:Nn \cftofr_remainder { \cftofr_divisor }
\int_gset:Nn \cftofr_divisor { \cftofr_dividend }
}이것을
\seq_map_function:NN \g_cftofr_seq \cftofr_cfrac:n
이렇게 부르도록 하고 있습니다. 다른 것은 인자를 처리하고 결과를 디스플레이하고 하는 것이고요.
첨부 파일에는 들어 있지 않은데, \cftofr_print_result:nn 함수를 다음과 같이 고치면 소수 근삿값을 함께 보여줍니다. fp라는 자료형 덕분입니다. (expl3 좋아요.)
\cs_new:Npn \cftofr_print_result:nn #1 #2
{
\fp_set:Nn \l_tmpa_fp { \cftofr_dividend / \cftofr_remainder }
\ensuremath {
[ #1; #2 ] =
\displaystyle \frac { \int_use:N \cftofr_dividend } { \int_use:N \cftofr_remainder }
\simeq \fp_use:N \l_tmpa_fp
}
} -
작나
2015.02.14 09:02
expl3을 공부하면서 예제로 삼을 것을 다 해버리시면 어떻게 합니까...
"TODO" 안보이세요?
농담입니다.ㅎ
나님님의 코드가 expl3 공부에 많은 참고가 될 것입니다.
감사합니다.
그런데,
\contfrace의 인자에 음수가 들어간 경우에 이상하게 동작합니다.
\contfrac{45}{16}, \contfrac{-45}{-16},
\contfrac{45}{-16}, \contfrac{-45}{16}
같은 경우들 입니다.
-
nanim
2015.02.14 09:12
위의 두 예제에서 음수에 대해서는 고려하지 않았습니다.
나누기를 배운 지가 하도 오래되어.... :)
아무튼 음수까지 처리하려면 \int_mod:nn을 쓰지 말고 음수 나머지 연산도 해주는 mod 함수를 만들어서 하면 되리라고 봅니다.
-
Progress
2015.02.14 10:14
요 게시물도 아침부터 바쁘네요. ^^
-
nanim
2015.02.14 14:51
음수가 들어가도 잘 되도록 만들어봤습니다. 대체로 expl3가 이런저런 표준 함수를 제공하기 때문에 작나 님같은 구루에게는 오히려 번거롭지 않을까 싶기도 하고요, 그렇지만 저같은 보통사람에게는 쉬워 보인다고 생각이 드네요.
첨부파일 ltcontfrac.zip
근데, AJT pdf의 56쪽 415/93을 [4; 1, 2, 6, 7]로 표시한 것은 오류겠지요?
왜 아무도 이 오류를 지적하지 않았을까나? ^^;
오류임이 명백한 부분의 사진을 첨부합니다.
-
작나
2015.02.14 17:09
58쪽 밑에서 세째줄에 나오는 연분수 말씀하시는 거지요?
네, 잘못됐습니다.
[4;1,2,6,7]이 [4;2,6,7]로 바뀌어야 합니다.
원본 텍소스코드가 없어서 왜 저렇게 나왔는지 이유를 모르겠습니다.
소스에 \contfrac{415}{93}으로 했음에도 잘못나왔다면
매크로로 오류로 매우 심각한 테크니컬 오류이고,
\contfrac 매크로를 사용하지 않고 그냥 풀어쓴거라면 단순한 오타입니다.
그동안 아무도 오류를 발견하지 못한 이유는
읽어본 사람이 몇 없었기 때문이지요. :-)
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
554 | 파이 데이 기념? [6] | nanim | 2015.03.06 | 3626 |
553 | 플레인텍에 이미지 넣기 [6] | 작나 | 2015.03.03 | 3055 |
552 | 루아텍 코어덤프... [2] | 작나 | 2015.03.11 | 3118 |
551 | 재미로 해보는 매크로 작성 [20] | nanim | 2015.03.02 | 3776 |
550 | 재미로 해보는 매크로 작성 [중급?] [2] | nanim | 2015.03.04 | 3071 |
549 | xparse의 argument option | nanim | 2015.03.04 | 3346 |
548 | 그땐 그랬지 [3] | 작나 | 2015.02.28 | 3072 |
547 | texdoc [7] | nanim | 2015.02.26 | 3077 |
546 | 크누스 교수의 수표 받는 법 [1] | 작나 | 2015.02.23 | 3015 |
545 | 연분수 조판 2탄 [9] | 작나 | 2015.02.17 | 3202 |
544 | plain.tex으로 배우는 텍 프로그래밍 [4] | 작나 | 2015.02.23 | 3053 |
543 | 본고딕(Source Han Sans) 소개: 오픈 소스 한중일 통합 서체 [11] | 에드 | 2014.07.16 | 18454 |
542 | 옷, 디자인이 바뀌었군요! | Dennis | 2015.02.22 | 3022 |
541 | 설 명절 잘 보내십시오 [5] | Progress | 2015.02.17 | 3002 |
540 | 연분수 조판 시리즈 마지막 [1] | 작나 | 2015.02.19 | 3178 |
» | 연분수 조판 소개 [9] | 작나 | 2015.02.13 | 3309 |
538 | 텍 프로그래밍 [4] | 작나 | 2015.02.13 | 3056 |
537 | 구글 웹폰트를 간편하게 설치하는 방법 | 작나 | 2015.02.13 | 3037 |
536 | ko.TeX Live 2009 스크린샷 | Progress | 2010.01.15 | 35384 |
535 | Windows에서 XeLaTeX, 파일 이름의 공백과 한글 문제 [1] | ndh | 2012.10.23 | 17122 |
작은나무 님께 바칩니다. :)
사용예제: \input ltcfrac.tex 대신,
연분수를 보통 분수로 고치는 함수는 나중의 즐거움으로...