'LaTeX'에 해당되는 글 6건

  1. 2010.11.19 fixltx2e
  2. 2010.11.06 LaTeX 명함 패키지
  3. 2010.03.20 LaTeX 코드 모음3
  4. 2010.03.20 LaTeX 코드 모음2 (Timing Diagram)
  5. 2010.03.05 LaTeX 코드 모음1 (Heap 구조 그리기)
  6. 2007.06.20 Gentoo+LaTeX
  7. .
LaTeX2010. 11. 19. 01:11
http://tug.ctan.org/pkg/fixltx2e
\RequirePackage{fix-cm}
\documentclass{ ... }
\usepackage{fixltx2e}[<date>]
Posted by asdfzxcv
LaTeX2010. 11. 6. 02:13
LaTeX을 이용하여 명함(bussiness card)을 만들 수 있는 패키지이다.

원본 파일에 첨부된 pdf 캡쳐.
0


Posted by asdfzxcv
LaTeX2010. 3. 20. 15:38
역시 대부분 학부 때 정리한 것을 다시 정리하면서 옮긴 것이다.
새롭게 추가한 내용은 많지 않다.

소스 코드 넣는 법이다.
컬러풀하게 넣으려면 highlight 등을 쓰는 것도 괜찮지만, 그정도는 필요 없고 적당히 넣으려면 다음처럼 하면 된다.
물론 ktug.or.kr에서 도움을 받았다.

\url{http://faq.ktug.or.kr/faq/SourceCodeListing}\\
\url{http://faq.ktug.or.kr/faq/PDFHyperLink} % url 넣는 법
fancyvrb 사용..

\begin{Verbatim}[frame=lines,label=helloworld.c,numbers=left]

#include <stdio.h>

int main(void)

{

printf("Hello, world!");

return 0;

}

\end{Verbatim}

moreverb, listings 등도 있음.


그림과 표 넣기
이것도 방법이 많다.
\begin{figure}[ht]
    \begin{minipage}{.30\textwidth}
        \includegraphics[width=\textwidth]{pic/12.png}
    \end{minipage}
    \hfill
    \begin{minipage}{.65\textwidth}
        \begin{center}
        \begin{tabular}{ccc|cccccccc}
            \multicolumn{3}{c|}{Input}&\multicolumn{8}{|c}{Output}\\
            $\mathrm{I_2}$&$\mathrm{I_1}$&$\mathrm{I_0}$&%
            $\mathrm{F_0}$&$\mathrm{F_1}$&$\mathrm{F_2}$&%
            $\mathrm{F_3}$&$\mathrm{F_4}$&$\mathrm{F_5}$&%
            $\mathrm{F_6}$&$\mathrm{F_7}$\\\hline
            0&0&0&1&0&0&0&0&0&0&0\\
            0&0&1&0&1&0&0&0&0&0&0\\
            0&1&0&0&0&1&0&0&0&0&0\\
            0&1&1&0&0&0&1&0&0&0&0\\
            1&0&0&0&0&0&0&1&0&0&0\\
            1&0&1&0&0&0&0&0&1&0&0\\
            1&1&0&0&0&0&0&0&0&1&0\\
            1&1&1&0&0&0&0&0&0&0&1\\
        \end{tabular}
    \end{center}
    \end{minipage}
\caption{이게뭘까?}\label{fig126}
\end{figure}
그림 두 개 넣기도 이런 식으로 하면 되고, 그림의 폭이 크면 \begin{adjustwidth}{-2.5cm}{-2.5cm} \end{adjustwidth}를 쓰면 된다. 또는 landscape 패키지를 써써 옆으로 넣기도 한다.

graphviz
\url{http://www.graphviz.org/}

테두리 박스
\url{http://faq.ktug.or.kr/faq/LaTeXBoxes}

SI 단위

SIunits라는 패키지가 있다. 그냥 수식 안에서 \textrm을 쓰는 방법도 있다.


수학 기호
http://www.ktug.or.kr/jsboard/read.php?table=operate&no=14440
라플라스 기호, 푸리에 트랜스폼 기호는 $\mathcal{L}$, $\mathcal{F}$를 사용한다. \usepackage{calrsfs}또는 \usepackage{mathrsfs}를 이용하면 폰트를 바꿀 수 있다. 하지만 폰트를 바꾸지 않고도 많이 쓴다.
\mathcal{F}[x(t)] = X(j\omega) = \int_{-\infty}^{\infty} x(t)e^{-j\omega t}dt

\mathcal{L}[f(t)] = \int_{0^-}^{\infty} f(t)e^{-st}dt


e 같은 것은 roman으로 식자하기도 하고, italic으로 식자하기도 한다. 미분 기호도 그렇다. 다음 글을 참고하자.

http://www.ktug.or.kr/jsboard/read.php?table=operate&no=4830

http://www.electriceditors.net/edline/vol3/3-4.txt

아무튼 미분 기호를 roman으로 쓰려면

\newcommand{\diff}{\mathrm{d}}

처럼 하면 된다.

Rank 등은 확실히 roman으로 하는 것이 맞다. log등은 \log라고 하면 되지만, \rank는 없으므로 다음과 같이 만들어주면 된다.

\DeclareMathOperator{\rank}{Rank}

몇 가지 테스트:

\Re, \mathfrak{R}, \mathrm{R}\\

\Im, \mathfrak{I}, \mathrm{I}\\

\mathbb{N}, \mathbb{Z}, \mathbb{Q},

\mathbb{R}, \mathbb{C}\\

\ell\\

\frac{dy}{dx} \qquad

\frac{\mathrm{d}y}{\mathrm{d}x}

\qquad \frac{\diff y}{\diff x}\\

Rank(A) \qquad \rank(A)\\

a_{min}, a_{\textrm{min}}

a_{\mbox{min}}, a_{\min}


아무튼 링크된 글과 그 답글들을 요약해보겠다.
단, 요약 과정에서 원문의 뜻이 달라졌을 수도 있다.

먼저 yhchoe님의 글:
대부분 dx의 d는 이탤릭으로 쓰는 경우가 많고, 델타 x의 \Delta는 세워쓴다고 한다.

복소수의 실수, 허수 부분을 나타내는 operator의 경우
유럽에서는 $\Re$(=$\mathfrak{R}$), $\Im$(=$\mathfrak{I}$를 쓰지만
미국에서는 그냥 Re, Im을 세워서 쓴다.

라플라스, 푸리에는 \mathscr을 쓴다고 한다.
(아까 적은 예제의 \mathcal과 \mathscr의 차이는 잘 모르겠다.
아무튼 이 분은 \mathscr을 언급하셨다.)

공집합 기호는 \emptyset으로 알고 있지만, amssymb 스타일에서 \varnothing을 쓰는 것이 맞다.
(이 부분은 왜 그런지 잘 모르겠다. 대부분 \emptyset을 많이 쓰는 것으로 알고 있다.)

자연수, 정수, 등등의 집합은 \mathbb{N}, \mathbb{Z}, \mathbb{Q}, \mathbb{R},\mathbb{C}로 쓰는 것이 좋다.

소문자 l은 보통 수식 속에서 $\ell$로 쓴다.

=====================================================================================
공집합 기호는 조금 애매하다.
그리스 문자 phi처럼 보이기도 하지만 확실한 것은 공집합 기호와 그리스 문자 phi는 다른 기호이다.
모양도 확실히 다르고 뜻도 다르니까.

그리스 문자 phi는 모양이 여러 가지가 있는데, 유니코드에는 4 개 이상이 있고, LaTeX에는 \Phi, \phi, \varphi가 있다.
http://en.wikipedia.org/wiki/Phi_%28letter%29

0이 빗금친 모양으로 생긴 여러가지 기호들:
http://en.wikipedia.org/wiki/%C3%98_%28disambiguation%29

모양이 비슷해도 의미가 다르면 다른 기호로 처리해서 유니코드에서도 따로 들어간다.


\phi가 아닌 것은 확실하나 \emptyset인지 \varnothing인지는 모르겠다.

=====================================================================================


아까 위에서 \DeclareMathOperator{\rank}{Rank}를 언급했다.

이것은 ams


하지만 다음 글에서 나오는 것처럼 하는 방법도 있다.

http://faq.ktug.or.kr/wiki/pds/UsefulDocuments/tex_ywk_xe.pdf


$\mathop{\mathrm{span}}\nolimits} \{v_1,v_2,\ldots,v_n\}$
$\operatorname{span} \{v_1,v_2,\ldots,v_n\}$
윽, 여기서 \nolimits는 뭐지?

\limits를 쓰면 아래 첨자를 쓸 때, 마치 lim아래 들어가듯이 아래로 들어가고, \nolimits는 옆으로 미는 것이고, \diplaylimits라는 것도 있고, intlimits, nosumlimits라는 옵션도 있다. 직접 써보기 전에는 뭐가 다른지 알기 힘들듯.


그 외에도 몇가지 내용이 있으니 링크된 그을 읽어보자.







Posted by asdfzxcv
LaTeX2010. 3. 20. 14:50
무려 학부 2학년 2학기에 작성한 코드. ㄷㄷㄷ
Pascal T. Wolkotte와 Jochem Rutgers가 만든 timing 패키지를 사용했다.
같은 이름의 패키지가 있었던 걸로 기억한다.
http://www.texample.net/tikz/examples/timing-diagram/

코드들:


사실 복잡해지면 시뮬레이션 창에서 캡쳐해서 그림으로 붙여 넣는 것이 훨씬 쉽다. 설정을 잘 바꿔주면 색상 등은 변경이 가능할 것이다. 그 외에 timing diagram을 마우스로 쓱쓱 그릴 수 있는 프로그램도 있던 것 같다. 뭐였는지 기억은 안 난다.

카르노 맵은 kvmacros를 이용하는 방법이 있다. 다음처럼 간단한 명령으로 가능하다.
\karnaughmap{4}{$f:$}{{$a$}{$b$}{$c$}{$d$}}{0110011001100110}{}
http://www.ctan.org/tex-archive/macros/latex/contrib/karnaugh/

아니면 Dia로 그려서 mp로 저장하고 pdf로 바꾸는 방법도 사용해 본 것 같다.

State diagram 역시 Dia로 그릴 수 있고, dot2tex을 써도 된다. 직접 tikz 노가다해도 된다.
당시에는 dot2tex을 쓴 듯하다.


Posted by asdfzxcv
LaTeX2010. 3. 5. 20:17
Heap은 특별한 형태의 tree 구조이다.

많은 예제를 찾아볼 수 있는 texample.net에서는 tikz를 이용하여 tree 구조를 그리는 법도 소개하고 있다.
http://www.texample.net/tikz/examples/merge-sort-recursion-tree/

거의 비슷한 예제로 다음과 같은 것도 있다.
http://forcecore.tistory.com/1019

Heap을 그릴 때마다 이렇게 일일이 입력하는 것은 귀찮으므로 프로그램을 만들었다. 이 프로그램을 LaTeX이나 TeX 명령으로 구현하는 것은 본인의 능력을 벗어나고, perl 등의 스크립트 언어에도 별로 익숙하지 않기 때문에 그냥 C로 만들었다. 컴파일하는 것이 귀찮긴 하지만 할 수 없다.

#include <stdio.h>G
#include <string.h>
#define MAX_NODE 100
#define MAX_NAME 5

char buffer[MAX_NODE][MAX_NAME];

void print_child(char buffer[][MAX_NAME], int number, int pos)
{
    if (pos >= number)
        return;
    printf("node ");
    printf("(%d) {%s}\n", pos+1, buffer[pos]);
    if (pos*2 + 1 < number) {
        printf("child {");
        print_child(buffer, number, pos*2 + 1);
        printf("}\n");
        if (pos*2 + 2 < number) {
            printf("child {");
            print_child(buffer, number, pos*2 + 2);
            printf("}\n");
        } else {
            printf("child [missing]");
        }
    }
}

int main(int argc, char* argv[])
{
    int i;
    for (i=0; i<MAX_NODE; ++i) {
        char *c = fgets(buffer[i], MAX_NAME, stdin);
        if (!c)
            break;
        int len = strlen(buffer[i]);
        if (buffer[i][len-1] == '\n')
            buffer[i][len-1] = '\0';
    }
   
    if (i < 1)
        return 1;

    printf("\\begin{tikzpicture}[\n"
            "level distance=12mm,\n"
            "level/.style={sibling distance=32mm/#1},\n"
            "level 3/.style={sibling distance=32mm/4},\n"
            "every node/.style={circle,draw,"
            "font=\\fontsize{9}{9}\\selectfont,minimum size=21pt}]\n"
            "\\");
    print_child(buffer, i, 0);
    printf(";\n\\end{tikzpicture}");

    return 0;
}

입력은 heap을 array로 구현했을 때의 순서대로 한 줄에 하나씩 넣어주면 되고, 조금씩 수정해서 쓰면 된다.

다음은 노가다의 산물. 위에서 만든 c 코드는 기본적인 것만 되고, 노드를 지우거나 오른쪽에 더 쓰는 건 노가다로 한 것이다.

Posted by asdfzxcv
Linux/Gentoo2007. 6. 20. 10:58
오래된 글이라 낡고 불필요한 내용이 있을 수 있다.

% TeXlive가 portage에 등록되었다. 이제 emerge로 설치하면 된다.
% ko.TeX
hangul-ucs와 hlatex을 통합한 ko.TeX의 등장으로 일이 편해졌다.

References:
http://gentoo-wiki.com/TeX_Live_2007
http://gentoo-wiki.com/TIP_Best_practice_to_ignore_an_update
http://www.ktug.or.kr/jsboard/read.php?table=contrib&no=4537

%%%%%%%%%이하는 이제 필요 없어짐%%%%%%%%%%
% Install TeXlive2007
# mount -t iso9660 -o loop texlive2007-live-20070212.iso /media/texlive
# cd /media/texlive/
# sh install-tl.sh
# fmtutil-sys --all
# texconfig

# vi /etc/portage/profile/package.provided
app-text/tetex-3.0_p1-r3
# vi /etc/portage/package.mask
>app-text/tetex-3.0_p1-r3

# vi /etc/env.d/98texlive
PATH="/usr/local/texlive/2007/bin/x86_64-linux"
ROOTPATH="/usr/local/texlive/2007/bin/x86_64-linux"
MANPATH="/usr/local/texlive/2007/texmf/doc/man"
INFOPATH="/usr/local/texlive/2007/texmf/doc/info"
TEXBASE="/usr/local/texlive/"
#env-update

% Install hangul-ucs
http://faq.ktug.or.kr/faq/Hangul-ucs
위 웹페이지 및 위 웹페이지에서 받을 수 있는 dhucsdoc.pdf에 나온 설명을 참고하되 다음을 주의한다.

% hlatex
1. emerge hlatex
2.
http://faq.ktug.or.kr/faq/%B8%AE%B4%AA%BD%BA%BF%A1%BC%AD%BC%B3%C4%A1%C7%CF%B1%E2/HLaTeX
http://cvs.ktug.or.kr/viewcvs/hlatex-texmf/
http://faq.ktug.or.kr/faq/TeX%B1%DB%B2%C3

% 은폰트를 설치했는데도 ttf2pk 등에서 에러가 나는 경우가 있다.
폰트 경로 관련 설명
# kpsewhich UnBatang.ttf
이렇게 해서 올바를 결과가 나오는지 확인한다. 아무것도 안 나오면 뭔가 잘못된 것이다.
texmf.cfg의 OSFONTDIR을 수정한다.
OSFONTDIR = /usr/share/fonts
물론 경로는 알아서 맞는 것으로 설정해야 한다.
# mktexlsr
이제 제대로 되었는지 확인해 본다.
# kpsewhich UnBatang.ttf
임시 폴더로 이동해서 잘못 생성된 pk파일 등을 삭제하고 다시 컴파일 해본다.

%%%이 아래는 필자도 모름%%%
# vi /usr/local/texlive/2007/texmf/web2c/texmf.cnf
TEXMFSITE=$SELFAUTOPARENT/../texmf-site

TEXMF = {$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,
!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFMAIN,
!!$TEXMFLOCAL,!!$TEXMFSITE,!!$TEXMFDIST}

SYSTEXMF = $TEXMFLOCAL;$TEXMFSITE;
$TEXMFMAIN;$TEXMFDIST

TEXMFDBS = {!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,
!!$TEXMFSITE,!!$TEXMFMAIN,!!$TEXMFLOCAL,!!$TEXMFDIST}

(user, not root)
$ cp /media/texlive/source/source.tar.bz2 ~/temp
$ cd ~/temp/texk
$ .configure
$ cd kpathsea
$ make

References:
http://faq.ktug.or.kr/faq/Hangul-ucs
http://www.ktug.or.kr/jsboard/read.php?table=setup&no=11518
Posted by asdfzxcv