이 블로그는 애드센스 수익으로 운영되고 있습니다.
광고차단앱을 해제해주시면 블로그 운영에 큰 도움이 됩니다.
Please disable Adblock?
본문 바로가기
정보, 기술

Lattice(束論, 격자)를 그려보자 | Latex 활용하기!

by 킨쨩 2020. 9. 9.
반응형

 지난 게시글 들에서 Latex에 대해서 소개하고, 한국어, 중국어, 일본어를 표시하는 방법에 대해서 알아보았다.

 

Overleaf에서의 한국어, 일본어, 중국어 입력하기

Overleaf에서의 한국어, 일본어, 중국어 입력하기  지난 게시물에서는 간단하게 LaTeX와 overleaf를 비롯한 에디터와 그 사용법을 간단하게 소개했다. 나의 포스팅을 보고 LaTeX를 사용해보려는 사람들

kin-archive.tistory.com

 

문서도 프로그래밍이 가능하다고?! | LaTeX 소개 및 사용법

문서도 프로그래밍이 가능하다고?! | LaTeX 소개 및 사용법  나는 학부 4학년 때 들어간 연구실에서 LaTeX(레이텍, 일본에서는 “텍꾸”라고 줄여서 부르기도 함)를 통해서 미팅 자료와 발표자료, ��

kin-archive.tistory.com

이번 게시글에서는 내가 석사 연구를 진행하면서 공부하게 된 격자(lattice,束論)이라는 것을 latex를 통해서 나타내기 위해 사용한 방법에 대해서 간단히 공유하도록 하겠다. 처음에 나도 어떻게 그려야할 지 잘 몰랐지만, 다음과 같은 방법을 이용하면 손을 사용하지 않아도 되고, 깔끔하게 잘 나온다. 언젠가 한국에서도 격자를 활용한 연구가 시행된다면 참고해주기 바란다.(제발 나 졸업한 이후에 그런 일이 벌어지길 바란다.)


그냥 간단히 코드를 공유하도록 하겠다. 직접 overleaf에 넣어서 실행 시켜보면 바로 실행될 것이다. 참고로 위부분의 문서 포멧은 얼마든지 바꾸어도 된다. 중요한건 \usepackage부터 문서 시작전까지의 부분이다.

\documentclass[a4paper]{bxjsarticle}  
\usepackage{zxjatype}
\usepackage[ipa]{zxjafont}
\usepackage{fancyhdr}
\usepackage[utf8]{inputenc}

%\documentclass[12pt,uplatex]{jsarticle}
\usepackage[dvipdfmx]{graphicx}
\usepackage{tikz}
\usetikzlibrary{arrows}
\usetikzlibrary{calc}
\usetikzlibrary{shapes.geometric}

\begin{document}

\begin{figure}[t]
 \centering
 \begin{tikzpicture}
  \foreach \num/\name/\place/\x/\y in {
  1/$1$: aa/right/-0/1,
  2/$2$: aa/right/-1/0,
  3/$3$: aa/right/1/0,
  4/$4$: aa/right/0/-1,
  5/$5$: aa/right/0/-2
  }
  {
     \node[draw,circle,minimum size=1mm,inner sep=0pt] (\num) at (\x*5 mm,\y*5 mm) {};
     \draw (\num) node[\place]{\tiny{\name}};
  } 
  \foreach \a/\b in {1/2,1/3,2/4,3/4,4/5,
  }
  {
     \draw (\a) edge (\b);
  }
 \end{tikzpicture}
\end{figure}

\clearpage

\end{document}

간단히 원리를 설명하자면, Hasse diagram의 묘사를 통해서 lattice의 관계를 나타낸 것이다.

실제 코드를 집어넣어서 실행시켜 본 모습. 아주 예쁘게 잘 나왔다.

\begin{tikzpicture}
  \foreach \num/\name/\place/\x/\y in {
  1/$1$: aa/right/-0/1,
  2/$2$: aa/right/-1/0,
  3/$3$: aa/right/1/0,
  4/$4$: aa/right/0/-1,
  5/$5$: aa/right/0/-2
  }
  
  식별번호/ 정보 /왼쪽 아래쪽 위 아래/ x좌표/ y좌표,

이 부분에서는 "식별번호/ 정보 /왼쪽 아래쪽 위 아래/ x좌표/ y좌표," 를 통해서 각 요소의 위치를 결정해준다.

\foreach \a/\b in {1/2,1/3,2/4,3/4,4/5,
  }
  식별번호1/식별번호2,

이부분 에서는 "식별번호1/식별번호2,"를 통해서 각 요소간의 연결을 정해준다. 마지막의 ","가 없으면 컴파일 에러가 발생할 수 있으니 주의하도록 하자.


 lattice의 관계가 수학적으로 성립하기 위해서는 여러 규칙을 만족할 필요가 있다. 이번 포스팅에서는 간단히 hasse diagram을 이용해서 lattice를 묘사하는 방법에 대해서 소개했다. 기회가 닿는다면 간단하게 대수학의 일부인 lattice에 대해서도 정리해볼까 한다.

반응형

댓글