ShareLaTex 설치 및 사용법


협업형 online real time 에디터이다.
http://www.sharelatex.com/ 에서 무료로 사용이 가능하다.
하지만 여러사람을 invite하거나 속도가 마음에 안든다면, 각 연구실에 개인이 구축할 수도 있다.
Open-Source이기 때문이다.

Github 주소: https://github.com/sharelatex/sharelatex

Docker 기반으로 image가 잘 만들어져 있어서 설치법은 간단하다.

필자는 uBuntu 16.04 LTS 버전에서 수행 했다.

shareLatex 설치 및 실행

sudo apt-get -y install python-pip
sudo pip install docker-compose

git clone https://github.com/sharelatex/sharelatex.git
cd sharelatex
sudo  docker-compose up

실행결과

jaynux@jaynux-desktop:~/ShareLaTex/sharelatex$ sudo docker-compose up
Starting redis ... 
Starting mongo ... 
Starting redis
Starting mongo ... done
Starting sharelatex ... 
Starting sharelatex ... done
Attaching to redis, mongo, sharelatex
redis         | 1:C 21 Nov 05:11:06.228 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
redis         | 1:C 21 Nov 05:11:06.228 # Redis version=4.0.2, bits=64, commit=00000000, modified=0, pid=1, just started
redis         | 1:C 21 Nov 05:11:06.228 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
redis         | 1:M 21 Nov 05:11:06.229 * Running mode=standalone, port=6379.
...
...
cture: "x64", version: "4.4.0-101-generic" }, platform: "Node.js v6.11.3, LE, mongodb-core: 2.1.9" }
sharelatex    | Nov 21 05:17:01 994814b4c50a /USR/SBIN/CRON[331]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)

docker-compose.yml파일을 보면 내부에 port번호가 적혀 있다.
기본적으론 80번이다.

따라서 웹 주소창에 IP주소:Port번호로 입력한다.

아래와 같이 나오면 성공이다.

계정 생성

Admin 계정

원하는 계정 이메일로 생성 후 만들어진 링크로 접속해서 비밀번호를 설정 하면 된다.

docker exec sharelatex /bin/bash -c "cd /var/www/sharelatex; grunt user:create-admin --email joe@example.com"

일반 사용자 계정 생성

web에서 admin 계정으로 접속한 다음 상단의 admin을 누르면
일반 계정을 생성 할 수 있는 창이 나온다.

Latex 업데이트

효율적인 배포를 위해서 sharelatex에는 최소한의 tex package만 설치되어 있다. 약 20개 정도이다.
당연히 5~10GB 정도의 추가적인 package들의 설치가 필요하다.

최신 package들을 사용할려면 업데이트 해야한다.

docker exec sharelatex tlmgr update -self
docker exec sharelatex tlmgr install scheme-full

실행 결과

tlmgr: package repository http://ctan.mirrors.hoobly.com/systems/texlive/tlnet (verified)
tlmgr: saving backups to /usr/local/texlive/2017/tlpkg/backups
[1/1, ??:??/??:??] update: texlive.infra [343k] (45234 -> 45305) ... done
running mktexlsr ...
done running mktexlsr.
tlmgr: package log updated: /usr/local/texlive/2017/texmf-var/web2c/tlmgr.log
jaynux@jaynux-desktop:~$ 
jaynux@jaynux-desktop:~$ sudo docker exec sharelatex tlmgr install scheme-full
tlmgr: package repository http://ctan.mirrors.hoobly.com/systems/texlive/tlnet (verified)
[1/3428, ??:??/??:??] install: 12many [376k]
[2/3428, 00:09/16:24:09] install: 2up [66k]
...
..
[3429/3429, 04:04:00/04:04:00] install: scheme-full [1k]
running mktexlsr ...
done running mktexlsr.
running mtxrun --generate ...
done running mtxrun --generate.
running updmap-sys ...
done running updmap-sys.
...
...
tlmgr: package log updated: /usr/local/texlive/2017/texmf-var/web2c/tlmgr.log

업데이트 전 용량

REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
mongo                   latest              d22888af0ce0        2 weeks ago         361MB
redis                   latest              8f2e175b3bd1        2 weeks ago         107MB
sharelatex/sharelatex   latest              bffb5a850d01        2 months ago        2.4GB

jaynux@jaynux-desktop:~/ShareLaTex/sharelatex$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            3.9G     0  3.9G   0% /dev
tmpfs           795M  9.7M  786M   2% /run
/dev/sdb6       102G   10G   87G  11% /
tmpfs           3.9G  176K  3.9G   1% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda1       932G  125G  808G  14% /sda1
tmpfs           795M   56K  795M   1% /run/user/1000

업데이트 후 용량

REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
mongo                   latest              d22888af0ce0        2 weeks ago         361MB
redis                   latest              8f2e175b3bd1        2 weeks ago         107MB
sharelatex/sharelatex   latest              bffb5a850d01        2 months ago        2.4GB

Filesystem      Size  Used Avail Use% Mounted on
udev            3.9G     0  3.9G   0% /dev
tmpfs           795M  9.7M  786M   2% /run
/dev/sdb6       102G   16G   82G  16% /
tmpfs           3.9G  176K  3.9G   1% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda1       932G  125G  808G  14% /sda1
tmpfs           795M   56K  795M   1% /run/user/1000

위와 같이 docker image 용량은 변화가 없지만 HDD 용량은 5GB가량이 늘었다.
결국 latex package 파일들이 docker에 저장된 상태가 아니다.

이 상태에서 .yml파일을 수정하고 docker-compose up을 실행하면 image가 recreating되고 latex file들이 모두 날라간다.
아래와 같은 메시지가 실행되면서..

Recreating sharelatex ... 
Recreating sharelatex ... done

Latex 업데이트후 docker commit

Docker container의 변화가 permanent하지 않기 때문에 restart하면 결과를 잃어 버린다.
왜냐하면 데이터 디렉토리가 containier의 외부에 위치하기 때문이다.
permanent하게 이 변경 사항을 저장하려면 commit을 해야 한다.

current id 파악

sudo docker ps

패키지 업데이트 내용을 반영한 새로운 docker image를 생성한다.

sudo docker commit -m "installing all latex packages" container-ID ImageName

명령어는 아래와 같다.

jaynux@jaynux-desktop:~/ShareLaTex/sharelatex$ sudo docker ps
CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                NAMES
03a947ea942a        sharelatex/sharelatex   "/sbin/my_init"          7 hours ago         Up 7 hours          0.0.0.0:80->80/tcp   sharelatex
9fe256a837e3        mongo                   "docker-entrypoint.s…"   7 hours ago         Up 7 hours          27017/tcp            mongo
3e0b3a7561b3        redis                   "docker-entrypoint.s…"   7 hours ago         Up 7 hours          6379/tcp             redis

jaynux@jaynux-desktop:~/ShareLaTex/sharelatex$ sudo docker commit -m "installing all latex packages" 03a947ea942a sharelatex/sharelatex:v3
sha256:54065502e1795908ba688f2209edc3c9b38e6706e156fe07865370d3ce335523

jaynux@jaynux-desktop:~/ShareLaTex/sharelatex$ sudo docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
sharelatex/sharelatex   v3                  54065502e179        3 minutes ago       7.5GB
mongo                   latest              d22888af0ce0        2 weeks ago         361MB
redis                   latest              8f2e175b3bd1        2 weeks ago         107MB
sharelatex/sharelatex   latest              bffb5a850d01        2 months ago        2.4GB

위와 같이 정상적으로 commit되서 v3가 생성된 것을 볼 수 있다.

추후에 실행을 위해서 docker-compose.yml에서 image 위치를 변경한다.

version: '2'
services:
    sharelatex:
        restart: always
        image: sharelatex/sharelatex:v3

참고자료: full functionalities 설치 방법

SMTP 설정

메일 설정을 해야 계정 초대 메일이나 디렉토리 공유 메일이 정상적으로 발송된다.

        SHARELATEX_EMAIL_FROM_ADDRESS: "team@sharelatex.com"
        SHARELATEX_EMAIL_SMTP_HOST: smtp.gmail.com
        SHARELATEX_EMAIL_SMTP_PORT: 465
        SHARELATEX_EMAIL_SMTP_SECURE: 'true'
        SHARELATEX_EMAIL_SMTP_USER: 본인 ID
        SHARELATEX_EMAIL_SMTP_PASS: 본인 비밀번호
        SHARELATEX_EMAIL_SMTP_TLS_REJECT_UNAUTH: 'true'
        SHARELATEX_EMAIL_SMTP_IGNORE_TLS: 'false'
        SHARELATEX_CUSTOM_EMAIL_FOOTER: "<div>This system is run by me</div>"

참고자료

도메인 생성을 위한 SSL 설치

공식 사이트에선 nginx를 이용해서 설치를 해야한다고 한다.

sudo apt-get install nginx
nginx -v

nginx는 Apache처럼 웹서버 환경을 만들어주는 소프트웨어이다.
웹 서버란 전체 서버 아키텍처의 앞단에서 HTTP요청에 따라서 그 요청을 넘기고 그에 해당하는 file혹은 리소스를 넘겨주는 역할을 하는 부분입니다.

// 시작
$ sudo service nginx start
$ sudo systemctl start nginx
$ sudo /etc/init.d/nginx start

// 재시작
$ sudo service nginx restart
$ sudo systemctl restart nginx
$ sudo /etc/init.d/nginx restart

// 중지
$ sudo service nginx stop
$ sudo systemctl stop nginx
$ sudo /etc/init.d/nginx stop

// 상태
$ sudo service nginx status
$ sudo systemctl status nginx

// 설정 reload
$ sudo service nginx reload
$ sudo systemctl reload nginx
$ sudo nginx -s reload

// configuration file syntax check
$ sudo nginx -t

해야할 것들

  1. sharelatex port 변경
  2. nginx로 특정 port로 변경된 sharelatex으로 연결되게 하기
  3. SSL 설치해서 nginx로 연동 시키기

참고자료
nginx에 HTTPS/SSL 적용하기

uBuntu에 nginx 설치하기

Proxy에 대하여

우분투, 민트 nginX에 reverse proxy 사용하기


'논문 작성 > LaTex' 카테고리의 다른 글

Latex 줄 번호 삽입  (0) 2016.12.23
TextStudio 문법 검사 기능 사용  (0) 2016.06.29
TexLive 2016 설치법  (0) 2016.06.15
Latex 에 하이퍼링크 추가방법  (0) 2016.05.30
citation 번호 합치기  (0) 2016.04.22

Latex 줄 번호 삽입


논문 peerreview를 위해서 줄 번호를 생성한 상태로 제출하면 편리하다.

사용 package는 lineno이다.

\usepackage[<options>]{lineno}

\usepackage[mathlines,switch]{lineno} % peer review, line number

번호 간격 설정

\modulolinenumbers[3] % line number

번호 시작

\linenumbers % line number

번호 중단

\nolinenumbers


'논문 작성 > LaTex' 카테고리의 다른 글

ShareLaTex 설치 및 사용법  (6) 2017.11.23
TextStudio 문법 검사 기능 사용  (0) 2016.06.29
TexLive 2016 설치법  (0) 2016.06.15
Latex 에 하이퍼링크 추가방법  (0) 2016.05.30
citation 번호 합치기  (0) 2016.04.22

TextStudio 문법 검사 기능 사용


  1. JDK 설치

  2. https://www.languagetool.org/ 접속

    1. Language tool stand-alone for yout DeskTop 다운
    2. 압축 풀고 C 드라이브 최상위에 이동
  3. languagetool.jar 실행 > Text Checking > Options > Run as server on port 체크 후 8081 포트 기억

  4. TextStudio 설정

언어체커 연결 설정

모든 부분을 체크하는것을 설정

마지막으로 문법 오류가 남색 물결로 체크되는데 눈에 잘 보이지 않는다.
스페링 체커랑 겹치더라도 그냥 빨강으로 설정해 준다.

최종적으로 아래와 같이 나와야 성공이다.

참고자료

동영상 가이드: https://www.youtube.com/watch?v=VYIY7bbSv4Q


'논문 작성 > LaTex' 카테고리의 다른 글

ShareLaTex 설치 및 사용법  (6) 2017.11.23
Latex 줄 번호 삽입  (0) 2016.12.23
TexLive 2016 설치법  (0) 2016.06.15
Latex 에 하이퍼링크 추가방법  (0) 2016.05.30
citation 번호 합치기  (0) 2016.04.22

TexLive 2016 설치법


Tex 컴파일과 package 묶음은 종류가 여럿 있다.
MikTex 보다는 한글을 써는 한국 사람에게는 기본 package로 모두 제공하는 TexLive가 더 좋다.
따라서 TexLive를 사용한다.

이전에는 Korea tex 모임에서 제공항 kotexlive2013-latest을 사용 했었다.
하지만 최신 TexLive 2016에는 한글이 기본 탑제되어 더이상 과거 버전을 쓸 이유가 없어졌다.
Ko.tex에서도 더이상 새로운 버전을 공개하지 않는다고 밝혔다.

설치법

공식 사이트: Installing Tex Live over the Internet

공식 설치 가이드: TeX Live -Quick Install

ISO 파일로 다운 받는 방법 Acquiring Tex Live as ISO image

종합 가이드: The Tex Live Guide 2016

  1. install-tl-windows.exe 다운로드
  2. exe파일을 실행하고 각 설정에 맞춰서 진행 한다.

기본 용지 크기를 US-letter로 설정한다.
대부분의 CS 논문들은 이 규격을 따른다.

설치 경로는 각 버전별로
C:\usr\texlive이곳에 설치 된다.
필자는 2013과 2016두 개가 설치 되어 있다.

전체 용량은 4G가 넘고 파일 수가 많기 때문에
퇴근할 때 실행 하는 것을 추천한다.
보조기억장치 사용으로 컴퓨터가 많이 느려진다.

최종적으로 2~3시간 정도가 흐르면 아래와 같이 설치가 완료 된다.

이전 버전 제거 (kotexlive2013-latest)

  1. 제어판가서 uninstall을 한다.
  2. 각종 Font자료들이 3~4GB 정도 남아 있으므로, C:\usr\texlive\2013의 folder를 수동으로 완전히 제거 한다.
  3. 모두 지운다음 편집기인 TexStudio로 Check Tex Installation을 실행 시켜보면, 아래와 같이 2016으로 잘 연결된 것을 알 수 있다.
where pdflatex: C:\usr\texlive\2016\bin\win32\pdflatex.exe

PDFLATEX: pdflatex -version
pdfTeX 3.14159265-2.6-1.40.17 (TeX Live 2016/W32TeX)
kpathsea version 6.2.2
Copyright 2016 Han The Thanh (pdfTeX) et al.
There is NO warranty.  Redistribution of this software is
covered by the terms of both the pdfTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the pdfTeX source.
Primary author of pdfTeX: Han The Thanh (pdfTeX) et al.
Compiled with libpng 1.6.21; using libpng 1.6.21
Compiled with zlib 1.2.8; using zlib 1.2.8
Compiled with xpdf version 3.04


'논문 작성 > LaTex' 카테고리의 다른 글

Latex 줄 번호 삽입  (0) 2016.12.23
TextStudio 문법 검사 기능 사용  (0) 2016.06.29
Latex 에 하이퍼링크 추가방법  (0) 2016.05.30
citation 번호 합치기  (0) 2016.04.22
LaTex 사용 Tip 정리  (2) 2015.02.10

필수 package


\usepackage{hyperref}
\hypersetup{
    colorlinks=true,
    linkcolor=blue,
    filecolor=magenta,      
    urlcolor=cyan,
}
 



For further references see \href{http://www.sharelatex.com}{Something 
Linky} or go to the next url: \url{http://www.sharelatex.com} or open 
the next file \href{run:./file.txt}{File.txt}



\href { URL } { word } 형식으로 작성 하면 정상적으로 동작 한다.

'논문 작성 > LaTex' 카테고리의 다른 글

Latex 줄 번호 삽입  (0) 2016.12.23
TextStudio 문법 검사 기능 사용  (0) 2016.06.29
TexLive 2016 설치법  (0) 2016.06.15
citation 번호 합치기  (0) 2016.04.22
LaTex 사용 Tip 정리  (2) 2015.02.10

citation 번호 합치기




기본적으로


\usepackage{cite} 

를 사용하면 smart citation이 동작하면서 연속된 번호가 잘 합쳐진다.



Troubleshooting


아래의 에러가 나올경우


usepackage cite paragraph ended before @citex was complete


나의 경우 elsarticle 폼을 사용해서였다.

왜냐하면 내부적으로 natbib package를 이용하기 때문에

cite는 같이 쓸수 없었다.


이경우 아래의 옵션을 이용한다.



%% `Elsevier LaTeX' style

\bibliographystyle{sort&compress,elsarticle-num}


기타 다른 옵션들은 아래와 같다.


Try \biboptions{}. Some template from Elsevier gives some hints, see

below.

Erwin


%% natbib.sty is loaded by default. However, natbib options can be


%% provided with \biboptions{...} command. Following options are

%% valid:


%%   round  -  round parentheses are used (default)

%%   square -  square brackets are used   [option]

%%   curly  -  curly braces are used      {option}

%%   angle  -  angle brackets are used    <option>

%%   semicolon  -  multiple citations separated by semi-colon

%%   colon  - same as semicolon, an earlier confusion

%%   comma  -  separated by comma

%%   numbers-  selects numerical citations

%%   super  -  numerical citations as superscripts

%%   sort   -  sorts multiple citations according to order in ref.

list

%%   sort&compress   -  like sort, but also compresses numerical

citations

%%   compress - compresses without sorting

%%

%% \biboptions{comma,round}


'논문 작성 > LaTex' 카테고리의 다른 글

Latex 줄 번호 삽입  (0) 2016.12.23
TextStudio 문법 검사 기능 사용  (0) 2016.06.29
TexLive 2016 설치법  (0) 2016.06.15
Latex 에 하이퍼링크 추가방법  (0) 2016.05.30
LaTex 사용 Tip 정리  (2) 2015.02.10

(La)Tex 사용법 정리


논문 작성 필수 도구이다.

the art of programming의 저자이자 튜링상(CS의 노벨상) 수상자인 Donald Knuth 교수가 처음으로 Tex이라는 언어를 만들었다.

알고리즘이라는 학문을 수립한 CS 분야 최고 대가 중 한명이다.


스탠포드에서 가장많은 튜링상 수상자 보유 기관이라는 타이틀을 얻기위해서 Donald Knuth 교수님을 모셔왔다.

지금은 스탠포드 명예교수로 재직중이시다.



Tex의 표준 배포판의 종류


Latex Packages의 종류


MikTex

사람들이 많이 사용하는 버전이다.

한글을 지원하기 위해서는 추가적인 노력이 필요하다.


TexLive

2013 버전이후로는 추가적인 설정없이 한글을 사용 가능하다.


ko TeXLive

이것은 KTUG 표준 한글텍환경 프로젝트팀이 KTS의 지원을 받아서 제작하여 배포한 윈도우즈용 설치파일이다.

2014년부터는 ko.Tex이 TexLive에 정식으로 들어갔으므로 이제는 더이상 나오지 않는다.

가장 최신버전이 2013 이다.

다운로드


TnTex

Window에서 동작하는 간이 텍 환경이다.

휴대용으로 usb에 넣어서 portable하게 사용 할 수 있다.

TnTex은 LiveTex 기반으로 만들어 졌다.

관련사이트


사실 ShareLatex과 같은 web기반 tex이 있는 상황이라, 정말 Network도 구축 안된 환경에서 작업할 것이 아니라면

의미 없는것 같다.




Tex에서 한글 사용법


ko.tex live 2013을 설치한다. 또는 texlive 2014 버전 이상을 설치한다.

\usepackage{kotex}





LaTex Compiler의 종류



Complier를 어떤걸 선택 하느냐에 따라서, 그림 삽입 등을 할때 선택 사항이 달라 진다.


LaTex

dvi file을 생성 해야할 경우 latex을 반드시 써야 한다. (tex4ht를 사용 해야 하므로), 왜냐하면, dvips를 이용해서 pdf로 변활 하지 않으면, 품질 하락이 있다고 주장 한다. 다음 Post를 읽어보면, pdfLaTex을 쓰지 말라고 한다. Click

journal에서 postscirpt figure를 요할 경우 latex을 써야한다.


pdfLaTex

pdf image 사용가능

png image 사용 가능

eps 도 당연히 사용 가능



LaTex 문서 편집 관련



Latex에서의 공백 처리 방식

빈칸, 탭 모든 것은 동일한 스페이스로 취급된다. 따라서 여러개의 공백문자들도 하나로 취급 된다. 개행 문자 역시 하나의 공백일 뿐이다.


즉, 두 줄사이에 빈 한줄을 넣으면, 문단의 바꿈을 의미한다. 여러줄을 넣어도 그냥 문단의 변경일 뿐이다.


강제로 줄을 바꾸는 명령어: \\ or \newline

줄 바꾸면서, 쪽 나눔이 일어 나지 않도록: \\*

새쪽 시작: \newpage


행간 조절 방법

\linespread{factor}: 문서 전체에 영향이감

\setlength{\baselineskip}{1.5\baselineskip}: 한문단에 영향을 줌

setspace package도 유용함


문단 모양

\indent

\noindent


수평간격

Latex은 단어와 문장 사이의 관격을 자동으로 설정 한다. 하지만 간혹 너무 수평 간격이 넓을 때가 존재한다.

\hspace{length}


수직 간격

\vspace{length }

\vspace{-0.1cm}


Font Effects

\textit{words in italics}     // words in italics

\textbf{words in bold}     // words in bold

\textsf{sans serif words}  // sans serif words ( for source code)


\emph{text} // 평소에는 이탤릭체를 나타내지만, 앞뒤 문맥에 따라서 다르게 동작 한다.


\bf // bold font


상호 참조

\label{maker} 


\ref{maker}

\pageref{maker}






LaTex에 그림 넣기



그림을 삽입하는 방법은 여러가지가 있다.


eps포맷은 latex 컴파일러를 써야 한다. 왜냐하면, dvips -> pdf 로 변환 과정을 거치기 때문이다.

jpg, png, pdf포맷은 latexpdf를 통해서만 컴파일 할 수 있다.


\usepackage{graphicx}


이명령어를 맨위에 적어라 그러면, 두 컴파일러에서 모두 \includegraphics를 동작 가능하게 할 수 있다.


어떤 graphics package는 Latex 컴파일러 종류에 다라 동작하게 되므로 그래프 삽입시 문제가 발생 할 수도 있다.


이식성을 높이려면, pdf나 eps를 사용하자. 퀄리티도 올라감.

pdf vs eps의 싸움은 아래 링크를 보면, pdf가 승리 한것 같다.

Which figure type to use: pdf or eps?


pdf가 표준이며, pdflatex 을 사용했을 때 어떠한 변환 없이 컴파일이 가능 하기 때문이다.



\begin{figure}[!h]

\centering

\includegraphics[width=0.9\columnwidth]{Figure1}

\caption{With Caption Below, be sure to have a good resolution image

(see item D within the preparation instructions).}

\label{fig:figure1}

\end{figure}



1\begin{figure}
2\centering
3\epsfig{file=figure2.eps, width=7cm}
4\caption{Ratio of residence-time in frequently visited place for all users.}
5\label{fig:stay_in_place}
6\end{figure}



subfigure의 고찰


단순히 이미지를 나란히 배치하고 싶은거라면 아래의 코드를 이용한다.

\begin{figure}%

\centering

\parbox{1.2in}{%

...figure code...

\caption{First.}%

\label{fig:2figsA}}%

\qquad

\begin{minipage}{1.2in}%

...figure code...

\caption{Second.}%

\label{fig:2figsB}%

\end{minipage}%

\end{figure}%




\usepackage[options]{subfigure}



\subfiglabelskip=-12pt

\begin{figure*}[t]

\centering

\subfigure[][]{\label{figure4:first}\includegraphics[width=.32\textwidth]{./Figures/CPU_Util_CDF}}\hfill

\subfigure[][]{\label{figure4:second}\includegraphics[width=.32\textwidth]{./Figures/Traffic_CDF}}\hfill

\subfigure[][]{\label{figure4:thrid}\includegraphics[width=.32\textwidth]{./Figures/Power_CDF}}

\caption{resource usage}

\label{fig:figure4}

\end{figure*}


// subfiglabelskip는 subfigure의 caption을 조정하기 위해서 사용 함.

// subfigure의 caption은 무시한 경우이다. 넣고 싶으면, []에다가 무언가를 추가 하면 된다.


//인용의 경우

\ref

\subref

두 가지를 사용 한다.

\subref의 경우 main figure number를 보여주지 않는다.


각 with들의 차이점


\hsize: is the main parameter that TeX uses when typesetting: whenever it finishes a paragraph it looks at the current value of \hsize for breaking it into horizontal boxes. 


LaTex은 많은 간접적인 방법으로 width를 관리 한다.

\textwidth: text의 영역의 global을 말한다. 

\columnwidth는 컬럼의 width를 말한다. 즉 두개 이상의 컬럼이 존재 할때, textwidth와의 차이가 발생 한다.


\linewidth: List 환경에서의 라인의 길이를 포함하는 것이다. 

즉, list를 만들때 사용하는 것이 적합하다. 리스트를 만들때는 컴파일 타임에는 그 길이를 알 수 없기 때문에 textwidth 또는 columnwidth는 사용 할 수 없다. 


height = 0.1\textheight: 높이를 설정한다.


\includegraphics[height = 0.1\textheight, width=0.5\columnwidth, keepaspectratio=true]

keepaspectratio=false로 설정하면 자동 비율 설정을 막을 수 있다.



Click



크기 조절 방법

\includegraphics[height = 0.1\textheight, width=0.5\columnwidth, keepaspectratio=true]




LaTex에 표 만들기



\begin{table}[t]

\centering

\begin{tabular}{|c|l|}

\hline Rank (Fraction) & Exception \\

\hline 

\hline 1 (51.2\%) 21 & 1 \\

\hline 2 (14.6\%) 21 & 2 \\  

\hline 3 (12.2\%) 21 & 3 \\  

\hline 4 (9.8\%) 21 & 4 \\  

\hline 5 (2.4\%) 21 & 5 \\  

\hline 5 (2.4\%) 21 & 6 \\

\hline 5 (2.4\%) 21 & 7 \\

\hline 5 (2.4\%) 21 & 8 \\

\hline 5 (2.4\%) 21 & 9 \\    

\hline 

\end{tabular}

\caption{Table captions should be placed below the table.}

\label{tab:table1} 

\end{table}


{|c|l|} -> c는 가운데 정렬, l은 왼쪽 정렬, |의 의미는 vertical의 선 여부를 의미함.

& -> column 을 의미한다.

\\ -> row를 의미한다.

\hline은 아래쪽 선을 의미한다.


\documentclass[a4paper]{article}
\pagestyle{empty}
\begin{document}
\begin{table}[h]
{\renewcommand\arraystretch{1.25}
\begin{tabular}{|l|l|l|} \hline
Use Case Navn:& \multicolumn{2}{l|}{Opret Server} \\ \hline\hline
Scenarie:& \multicolumn{2}{p{4cm}|}{\raggedright At oprette en server med bestemte regler som tillader folk at spille sammen. More Text more text More Text} \\ \hline
\end{tabular}}
\end{table} 

\end{document}






Latex Image표


\begin{table}[t]

\centering

\caption{Chunk Data Structure.}

\includegraphics[width=1\columnwidth]{Figures/TCE/table1}

\label{ch02:table1}

\end{table}






캡션 (Caption) 조작하는 방법


caption package를 이용해서 표와 그림 등등에 있는 label들을 조작할 수 있다.


\usepackage[hoptionsi]{caption} %전체에 적용하는 방법

\captionsetup[hfloat typei]{hoptionsi} % 각각에 적용하는 방법, 즉 \caption전에만 위치 시키면 된다.


Figure -> Fig. 로 변경
\captionsetup{name=Fig.}

굵은 글씨로하고
Figure: -> Figure. 으로 변경
\usepackage[labelfont=bf, labelsep=period]{caption}



수식 표현 방법



The well known Pythagorean theorem \(x^2 + y^2 = z^2\) was 

proved to be invalid for other exponents. 

Meaning the next equation has no integer solutions:

 

\[ x^n + y^n = z^n \]



The mass-energy equivalence is described by the famous equation

 

$$E=mc^2$$

discovered in 1905 by Albert Einstein. 

In natural units ($c$ = 1), the formula expresses the identity


\begin{equation}

E=m

\end{equation}







알고리즘 표현 하기


수학이나 물리쪽에서는 수식을 표현하기 위해서 LaTex을 사용하지만,

Computer Science에서는 Algorithm을 표현하는 것이 중요하다.


LaTex에서 알고리즘을 표현하기 위해서는 다양한 package가 있다. 

필자는 algorithm2e.sty을 사용 한다.


\begin{document} 코멘트 이전에 아래의 코드를 이용해서 pacakge를 include 한다.

\usepackage[options]{algorithm2e} 


사용가능한 유용한 option


Lines numbers

linesnumbered: lines of the algorithms are numbered except for comments and input/output (KwInput and KwInOut). You must use \nllabel{label} to label those lines.


ruled: to have algorithms with a line at the top and the bottom. Note that the caption is not centered under the algorithm anymore but is set at the beginning of the algorithm.


반복문 사이에 라인을 넣는 옵션들

lined: 일자 라인

vlined: L 자 라인을 말함

noline: 아무것도 없다.



How to adjust line numbers of algorithm2e package

참고사이트: click


즉, 줄번호가 사가형 밖으로 나왔을 경우에 조절하는 방법이다.

통상 발생하지 않으나, 논문 작성 폼에 따라 문제가 간혹 발생한다. 이럴때 수작업으로 조절이 가능 하다.



해결 방법:

\IncMargin{1.5em}

\begin{algorithm}

/* 알고리즘 본문 */

\end{algorithm}

\DecMargin{1.5em}




아래와 같이 하면 특정 코드는 들여쓰기를 막을 수 있다.

\Indm  

\KwIn{List $L$ of n activities }

\KwOut{List $G$ of no sequence activities}

\Indp





문자열 크기


Command             10pt    11pt    12pt

\tiny               5       6       6

\scriptsize         7       8       8

\footnotesize       8       9       10

\small              9       10      10.95

\normalsize         10      10.95   12

\large              12      12      14.4

\Large              14.4    14.4    17.28

\LARGE              17.28   17.28   20.74

\huge               20.74   20.74   24.88

\Huge               24.88   24.88   24.88




줄간격


\linespread{value}


1.0 single spacing

1.3 one and a half spacing

1.6 double spacing 





줄 번호 삽입 (리뷰용)


https://texblog.org/2012/02/08/adding-line-numbers-to-documents/ 


\usepackage[pagewise,modulo]{lineno}


시작하려는 위치에서: \linenumbers


유용한 옵션들

  • [left]: Line numbers in left margin (default)
  • [right]: Line numbers in right margin
  • [switch]: Line number in outer margin (left for even, right for odd pages)
  • [switch*]: Line numbers in inner margin
  • [pagewise]: Restart numbering on every page
  • [running]: Continuously number lines (default)
  • [modulo]: Print only multiples of five
  • [displaymath, mathlines]: Line numbers for math environments (both needed)



algorithm2e 사용이 문제될 경우 (예: IEEE Access에서 linenumber 문제 발생)

algorithm2e 처럼 loop 범위에 line을 삽입하기 위해서 아래와 같이 custom definition을 넣어 준다.


% two packages are used

\usepackage{algorithm}

\usepackage{algpseudocode}


%custom command 

\makeatletter

% This is the vertical rule that is inserted

\def\therule{\makebox[\algorithmicindent][l]{\hspace*{.5em}\vrule height .75\baselineskip depth .25\baselineskip}}%


\newtoks\therules% Contains rules

\therules={}% Start with empty token list

\def\appendto#1#2{\expandafter#1\expandafter{\the#1#2}}% Append to token list

\def\gobblefirst#1{% Remove (first) from token list

  #1\expandafter\expandafter\expandafter{\expandafter\@gobble\the#1}}%

\def\LState{\State\unskip\the\therules}% New line-state

\def\pushindent{\appendto\therules\therule}%

\def\popindent{\gobblefirst\therules}%

\def\printindent{\unskip\the\therules}%

\def\printandpush{\printindent\pushindent}%

\def\popandprint{\popindent\printindent}%


%      ***      DECLARED LOOPS      ***

% (from algpseudocode.sty)

\algdef{SE}[WHILE]{While}{EndWhile}[1]

  {\printandpush\algorithmicwhile\ #1\ \algorithmicdo}

  {\popandprint\algorithmicend\ \algorithmicwhile}%

\algdef{SE}[FOR]{For}{EndFor}[1]

  {\printandpush\algorithmicfor\ #1\ \algorithmicdo}

  {\popandprint\algorithmicend\ \algorithmicfor}%

\algdef{S}[FOR]{ForAll}[1]

  {\printindent\algorithmicforall\ #1\ \algorithmicdo}%

\algdef{SE}[LOOP]{Loop}{EndLoop}

  {\printandpush\algorithmicloop}

  {\popandprint\algorithmicend\ \algorithmicloop}%

\algdef{SE}[REPEAT]{Repeat}{Until}

  {\printandpush\algorithmicrepeat}[1]

  {\popandprint\algorithmicuntil\ #1}%

\algdef{SE}[IF]{If}{EndIf}[1]

  {\printandpush\algorithmicif\ #1\ \algorithmicthen}

  {\popandprint\algorithmicend\ \algorithmicif}%

\algdef{C}[IF]{IF}{ElsIf}[1]

  {\popandprint\pushindent\algorithmicelse\ \algorithmicif\ #1\ \algorithmicthen}%

\algdef{Ce}[ELSE]{IF}{Else}{EndIf}

  {\popandprint\pushindent\algorithmicelse}%

\algdef{SE}[PROCEDURE]{Procedure}{EndProcedure}[2]

   {\printandpush\algorithmicprocedure\ \textproc{#1}\ifthenelse{\equal{#2}{}}{}{(#2)}}%

   {\popandprint\algorithmicend\ \algorithmicprocedure}%

\algdef{SE}[FUNCTION]{Function}{EndFunction}[2]

   {\printandpush\algorithmicfunction\ \textproc{#1}\ifthenelse{\equal{#2}{}}{}{(#2)}}%

   {\popandprint\algorithmicend\ \algorithmicfunction}%

\makeatother



% algorithm 


\begin{algorithm}

  \caption{Euclid’s algorithm}\label{euclid}

  \begin{algorithmic}[1]

    \Procedure{Euclid}{$a,b$}\Comment{The g.c.d.\ of a and b}

      \LState $r\gets a\bmod b$

      \While{$r\not=0$}\Comment{We have the answer if r is 0}

        \LState $a\gets b$

        \LState $b\gets r$

        \LState $r\gets a\bmod b$

      \EndWhile\label{euclidendwhile}

      \LState \Return $b$\Comment{The gcd is b}

    \EndProcedure

  \end{algorithmic}

\end{algorithm}





참고문헌 넣기


참고문헌을 만드는 방법은 크게 두가지로 수동, 자동이 있다.


□ 수동의 경우

LaTeX에서thebibliography 환경을 이용하는 것으로  \bibitem[label]{marker}를 매번 타이핑 해주는 방식이다.



□ 자동의경우

Texmaker (LaTex Editor)


myBib.bib 만들기

File -> new File -> save as -> [파일이름].bib


[파일 이름].bib 내용 채우기

Texmaker를 이용한 직접 채우기: Bibliography -> Bibtex -> 적당한 형식 고르기.

Google scholar 에서 직접 다운

EndNote에서 File -> Export -> output Style -> Select another output style -> BibTex 


본문 인용 방법

\bibliographystyle{acm-sigchi}

\bibliography{myBib}

\end{document}


acm-sigchi.bst 는 학회에서 제공하는 output style 이다. .bst 확장자를 가진다.
myBib.bib 는 BibTex 이다.

본문에서 bracket으로 인용되는 것은 아래와 같이 하면 된다.
~\cite{acrobat}

컴파일 방법본문 인용 방법

아래와 같이 하지 않으면 [?] 상태로 나타내게 되며, Reference 항목에 업데이트가 되지 않는다.


1) pdfLatex

일단 문서를 한번 컴파일 한다.

이렇게 해야 aux 파일이 생성 된다.

2) BibTex

BibTex을 한번 컴파일 해준다 현재 문서에서 

그러면 aux 파일을 읽어서 해당 문서에서 사용한 citation들을 찾아서 bibTex과 연관을 지어 준다.

3) PdfLaTex

   Latex 문서내의 모든 citation을 정확히 반영 한다.

4) PdfLaTex

   reference List에 내용을 반영 한다.

5) 결과 확인


이것을 Quick Build를 수정해서 [F1] 키만 누르면 자동으로 할 수 있게 한다.




참고자료

Bibliography in Texmaker 

Bibliography menu of TeXmaker

Step-by-step guide to using EndNote with LaTeX and BibTeX

BibTex in Latex with WinEdt (한글)

LaTeX 문서와 참고문헌 인용




□ 참고 문헌 인용시 package의 역할


그냥 인용을 해도 되지만, package를 이용하면 편리한 기능을 자동으로 수행해 준다.


number-only . . . as shown in [34] . . . \usepackage{cite

author-date . . . as shown in (Maier 2003) . . . \usepackage{natbib

short-title as shown in Maier, Final Theory . . . \usepackage{jurabib


\usepackage[...]{cite


Before

Tex: see \cite{wbl1, book3, meier3}

Result: see [2,1,3] 

-> 순서가 자동 정렬 되지 않는다.


After

see [1-3]

 

Options

space, nospace: default는 space가 있는것

nocompress: [1-4]

nosort: switch off sorting of entries

nobreak: default: strongly discouraged, but not forbidden

superscript: 인용이 윗 첨자로 들어가는 형태 see^1-3


다른 package들은 Computer science에서 일반적이지 않으므로 생략




What is the best Tex editor for LaTex



TexEditor 선호도 투표

웹기반 Tex Editor

http://www.sharelatex.com

http://www.scribtex.com

http://docs.latexlab.org (works with Google Drive)



설치형 Editor

Texmaker

멀티 윈도우를 지원 한다.


TexStudio

문법 체크를 지원 한다.


WinEdt: 과거에는 많이 썻지만 요즘은 사용하지 않는다. (상업용이다.)

하지만, http://www.sumatrapdfreader.org/free-pdf-reader.html

즉, sumatra PDF와 연동하면, Real-time으로 PDF 변화를 알 수 있다.

LaTex은 자유 소프트웨어이다. 그런대 Editor는 상업용을 쓴다는게 말이 안된다. 따라서 많은 오픈 프로젝트들이

활성화 되었다 WinEdt에 대항하기 위해서


TexnicCenter : 안좋음

http://www.lyx.org/ : 초보자용



여기서 어떤 Editor가 가장 많이 사용 되는지 투표하고 있다.

그 결과 TexStudio인것 같다. 무료이고, 기능도 막강하여 가장 많은 사람들이 사용 하는것 같다.

http://www.researchgate.net/post/What_is_the_best_TeX_editor_for_LaTeX1



Texmaker 단축키 모음집

click



TexStudio

단축키

F7: 현재 작업하고 있는 영역을 보여 준다.



너무 많은 TexEditor가 있어서 그것을 비교하는, Wikipedia도 있다.

http://en.wikipedia.org/wiki/Comparison_of_TeX_editors


또한, tex.stackexchange에서 엄청나게 비교를 했다.

http://tex.stackexchange.com/questions/339/latex-editors-ides





LaTex 소소한 Tip



Why should I put a ~ before \ref or \cite?

~는 단순한 공백처리가 아니다. 

Table~\ref{mytable}과 같은 형식으로 할경우 두 단어는 하나로 묶어준다. breaking 되는것을 막아준다.

그리고 가독성을 향상 시키는 효과를 가져온다. 


참고자료

click



두 단에 걸치는 그림, 표, 수식


Figure나 table 같은 floating object들은 별표붙인 환경으로 두 단에 걸칠 수 있다.

특정 자리에 멈추게 하고 샆다면. !h를 사용하라


예제코드

\begin{figure*}

~~

\end{figure*}





TexStudio에 Git 연결하기


아직 지원하지 않음

커멘드를 수정 해야할것 같다.








Troubleshooting 


문제: 컴파일시 Misplaced alignment tab character & 발생


해결방법


BibTex에 &의 사용이 있었다. 일단 이것을 제거한다음

.bbl 파일을 제거 했다. 

그다음 다시 컴파일 하니 성공









'논문 작성 > LaTex' 카테고리의 다른 글

Latex 줄 번호 삽입  (0) 2016.12.23
TextStudio 문법 검사 기능 사용  (0) 2016.06.29
TexLive 2016 설치법  (0) 2016.06.15
Latex 에 하이퍼링크 추가방법  (0) 2016.05.30
citation 번호 합치기  (0) 2016.04.22

+ Recent posts