KTUGFaq

KTUG FAQ

로그인:
비밀번호:
가입
You love your home and want it to be beautiful.
FrontPage › 작은나무/2008-05
May 27, 2008
덧셈
Submitted by 작은나무 @ 05-27 [09:44 pm]
숫자를 문자로 바꾸어 덧셈을 흉내냅니다. 따라서 TeX의 연산 한계와는 상관업습니다.

아래의 코드를 예를 들어 설명하면, \add{187}{456}

  • 주어진 피연산자를 각각 뒤집는다.
    187 ==> 781
    456 ==> 654   
    
  • 뒤집은 피연사자를 맨앞부터 더해나간다. 올림이 발생하면 다음으로 넘긴다.
    7  8  1
    +  +  +    
    6  5  4  ===> 346
       +  +
       1  1  <-- 올림
    
  • 결과를 다시 뒤집니다.
    346 ==> 643
    
피연산자로 '음수 사용이 안됩니다.

아래의 코드를 test.tex 정도로 저장한 후, 플레인텍 명령으로 tex testtest.dvi를 얻습니다.

%%% 매크로 시작 %% \let\ea\expandafter \newtoks\list \newif\ifcontinue \newcount\x \newcount\y \newcount\p \def\fifo#1{\ifx\ofif#1\ofif\fi\process#1\fifo} \def\ofif#1\fifo{\fi} \def\lifo#1#2{\ifx\ofil#2 #1\ofil\fi\lifo{#2#1}} \def\ofil#1\lifo#2{\fi} \def\push#1{\edef\act{\noexpand\list={#1 \the\list}}\act} \def\carry#1{\ifnum#1>9 \advance#1-10 \p=1 \else \p=0 \fi \ea\push\number#1} \def\nxte#1#2{ \def\pop##1##2\pop{\gdef#1{##2}\gdef#2{##1}} \ea\pop#1\pop} \def\xadd#1#2{\continuetrue \loop \ifx#1\empty\continuefalse\fi \ifx#2\empty\continuefalse\fi \ifcontinue \nxte#1\nxtt \nxte#2\nxtu \x=\nxtt \y=\nxtu \advance\x by\y \advance\x by\p \carry\x \repeat \let\opnd\opndn \ifx#1\empty \let\opnd\opndt \fi \def\process##1{\y=##1 \advance\y by\p \carry\y} \ea\fifo\opnd\ofif \ifnum\p=0 \else\number\p \fi} \def\add#1#2{\list={} \edef\opndn{\ea\lifo#1\ofil} \edef\opndt{\ea\lifo#2\ofil} \xadd\opndn\opndt \def\process##1{##1}\ea\fifo\the\list\ofif} %% %%% 매크로 끝 \def\foo{1129387423947923092384095783471029470395703492} \def\bar{839583095823984723842734629852983472938472938473298} \add{2}{3} \add \foo\bar \add\bar\foo \add\foo{763823876} \add{672687687612123587687828374682372468237982376525818763423846932846}\foo \bye

May 20, 2008
한글 폰트
Submitted by 작은나무 @ 05-20 [10:00 pm]
한글 폰트에 어떤 것들이 있나 확인하던 차에, 쓸데없이 복잡해 보이게 만들어보았습니다.

\magnification\magstep1 \input kotexplain \def\fifo#1{\ifx\ofif#1\ofif\fi\process#1\fifo} \def\ofif#1\fifo{\fi} \def\process#1,#2{ {\hfontname{out#1m}% \leavevmode\llap{\hbox{#2\kern.5cm}}무궁화 꽃이 피었습니다.}\medskip} \leftskip2cm \fifo {{bt},{명조}} {{gt},{고딕}} {{tz},{타자}} {{pg},{필기}} {{sh},{신문}} {{gr},{그래픽}} {{ph},{펜흘림}} {{jbt},{자모바탕}} {{jgt},{자모돋움}} {{jnv},{자모노벨}} {{jsr},{자모소라}} {{bm},{}} {{pn},{}} {{yt},{옛글}} \ofif \bye

pdftex hangul_font.tex
요렇게 하는게 맞나요 ㅋㅋ
결과가 신기하네요 @@

ㅤㄸㅗㅁ방각하 커피ㅤㅅㅛㅍ 아ㅤㅎㅐㅎㅤㅎㅐㅎ 무궁화로 쓰면 :) -- hermian 2008-05-21 07:29:16

^
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2008-05-27 21:46:11
Processing time 3.1341 sec