Category: Academia

  • 소소한 정보: BibTeX으로 참고 문헌 모으기

    LaTeX으로 논문을 쓸때 참고문헌은 보통 BibTeX으로 처리합니다. 여러 논문의 서지 정보를 mybib.bib처럼 확장자가 .bib인 파일로 한 곳에 모아두면 논문마다 따로 참고문헌을 정리할 필요없이 \cite 명령으로 인용만 해주면 참고문헌 부분이 자동으로 생성되어 편리합니다. 이 글은 (쉽게 배울 수 있는) BibTeX을 쓰는 법을 설명하려는 것은 아니고, 몇 가지 주의점만 정리해두려고 합니다.

    bib 파일에 넣을 서지 정보는 구글 스칼라dblp에서 받은 것을 쓰지 말자!

    구글 스칼라나 dblp에서 받는 bib 포맷 정보는 자동으로 생성되어 품질이 좋지 않습니다. 저는 항상 미국수학회 MathSciNet에서 받아서 씁니다. 유료 사이트이긴 하지만 대부분의 대학과 연구소에서는 구독료를 지불하고 있습니다. 구독하는 곳에서 미리 Remote Access라고 적힌 지구본 그림 아이콘을 눌러 “원격 접속 인증”을 웹브라우저에서 받아두면 집에 노트북이나 휴대폰을 가지고 가더라도 90일간은 접속이 되어 편리합니다.

    MathSciNet에서 논문을 검색한 후 Select alternative format에서 BibTeX을 선택하면 아래처럼 내용이 나옵니다.

    @article {MR2232389,
    AUTHOR = {Oum, Sang-il and Seymour, Paul},
    TITLE = {Approximating clique-width and branch-width},
    JOURNAL = {J. Combin. Theory Ser. B},
    FJOURNAL = {Journal of Combinatorial Theory. Series B},
    VOLUME = {96},
    YEAR = {2006},
    NUMBER = {4},
    PAGES = {514--528},
    ISSN = {0095-8956},
    MRCLASS = {05C70 (05B35 05C85 68Q25 68R10 68W25)},
    MRNUMBER = {2232389},
    MRREVIEWER = {Dillon Mayhew},
    DOI = {10.1016/j.jctb.2005.10.006},
    URL = {https://doi.org/10.1016/j.jctb.2005.10.006},
    }

    이렇게 받은 것을 mybib.bib 파일에 붙여넣고, 첫 번째 줄에 있는 키 부분만 원하는 것으로 바꿉니다.

    서지 정보의 키는 일정한 규칙으로 정하자.

    키는 항상 일정한 규칙으로 정하고 한 번 정하면 바꾸지 않는 것이 좋습니다. 예를 들어 박사과정 중에 논문을 4편을 썼는데 모아서 박사논문 하나로 정리한다고 생각해봅시다. 논문마다 키가 달랐다면 나중에 통합할 때 키를 다시 합쳐야 해서 대폭 수정을 해야 합니다.

    BibDesk

    예전에는 일일이 논문 키를 저자의 성 알파벳 첫 글자를 모은 것 + 연도로 손으로 설정하곤 하였는데, 지금은 bib파일을 BibDesk라는 프로그램으로 관리하고 있어서, BibDesk 설정으로 제가 원하는 방식으로 생성하게 해둡니다. BibDesk는 Mac OS에서 mactex으로 TeX을 설치하면 /Applications/TeX 안에 설치가 되어 있습니다.

    논문은 여러 개라도 bib 파일은 하나로 모아두자

    저의 경우 mybib.bib이라는 파일을 항상 하드디스크의 ~/my/bib에 저장해두고, 거의 대부분의 논문을 쓸때 같은 bib파일을 참고하도록 설정해서 씁니다. 이를 위해서 BIBINPUTS라는 환경변수에 bib파일이 저장된 디렉토리를 지정해 놓습니다. 따라서 논문을 어느 디렉토리에서 쓰던지 bib 파일은 하나만 쓰게 됩니다.

    만일 arXiv에만 있던 논문이 출판이 되면 mybib.bib에서 같은 키에서 내용만 고쳐줍니다. 그러면 이 논문이 인용된 논문마다 새로 컴파일만 해주면 참고문헌이 정확하게 나오게 되겠지요. 같은 논문이 다른 키로 두 번 인용되는 사고를 막아줍니다.

    물론 요즘은 여러 저자들과 함께 논문 작업을 overleaf나 git (주로 bitbucket)으로 하다보니 수 천개의 논문 서지 정보가 적힌 파일 전체를 공유하기는 어렵습니다. 저는 mybib.bib에 있는 논문에서 사용될법한 논문만 모아서 git 프로젝트 안에 따로 저장하여 공유하고 씁니다.

    한편 BibDesk 프로그램으로 bib 파일을 관리하면 논문 원문 파일도 함께 관리할 수 있게 해주어서 편리합니다. BibDesk 설정을 잘 보면 논문 원문 파일을 어떤 디렉토리에 어떻게 저장할 지 상세하게 설정할 수 있어서 편리합니다. 또한 BibDesk 프로그램을 실행할 때 처음에 어느 bib 파일을 열 것인지도 미리 설정할 수 있어서 저의 경우 ~/my/bib/mybib.bib을 열도록 미리 설정해 둡니다.

  • 소소한 생각: 개인 홈페이지는 필수

    인터넷이 발전하면서 이제는 학계에 있는 분들에게 개인 홈페이지는 선택이 아니라 필수가 되었습니다. 인터넷 검색으로 관련 연구자를 찾게 되니 검색 엔진에 나오지 않으면 존재하지 않는 사람이 됩니다. 특히 대학원생이나 박사후 연구원인 분들, 학계에 자리잡으려고 노력하시는 분들은 개인 홈페이지가 있으면 유리합니다. 이 글에서는 개인 홈페이지에 관한 몇 가지 생각들을 정리해 보았습니다.

    무슨 내용을 쓸까

    • 이름과 현재 소속, 직위, 얼굴 사진 하나
    • 경력
    • 이메일 주소 (저널 에디터들이 레프리 찾을 때 구글 검색으로 홈페이지 찾아서 이메일 주소 찾습니다)
    • 논문 목록 (출판된 것 + 투고한 것). (논문은 arXiv 링크를 걸어두는 걸로 충분합니다.)
    • 세미나/학회 발표 이력
    • 강의 이력
    • CV

    제 개인적인 생각으로는 안 써도 되는 내용 혹은 안 쓰면 좋은 내용은 아래와 같습니다.

    • 생년월일
    • 성별
    • 국적
    • 가족 사항
    • 여행 사진
    • 휴대전화 번호

    어디에다 만들까?

    개인 홈페이지를 만든다면, 소속 기관 주소를 받을 수 있는 곳에 만드는 것이 제일 좋습니다. 예를 들어 KAIST 수리과학과 구성원이라면 mathsci.kaist.ac.kr/~id와 같은 인터넷 주소를 받을 수 있습니다. IBS 이산수학그룹의 경우 dimag.ibs.re.kr/home/id와 같이 주소를 받을 수 있습니다. 이처럼 소속 기관의 공식 인터넷 주소에 개인 홈페이지가 들어가야 그 개인 홈페이지를 가진 사람을 좀더 신뢰할 수 있습니다.

    많은 사람들이 구글 Sites를 써서 홈페이지를 만들고 있습니다만 저는 별로 추천하지는 않습니다. 먼저 소속 기관의 인터넷 주소를 쓰지 않으니 신뢰감을 덜 주게 됩니다. 아울러 중국에서는 차단되어 있어서 중국의 학자분들이 접속할 수 없다는 단점이 있습니다.

    만일 소속 기관에서 개인 홈페이지를 만들 수 있는 서비스가 제공되지 않는다면 구글 Sites, Github pages, WordPress와 같은 사설 서비스를 써야할 수도 있겠지요. 앞에서 말한 이유로 구글을 피하고 나면 Github pages나 WordPress 모두 괜찮은 선택이라고 생각합니다. 이 경우 한번 홈페이지 주소를 만들면 바꾸지 않을 수 있도록 개인 도메인을 확보하는 것이 더 좋고, 보안 접속인 https를 지원하는 서비스를 이용하는 것이 좋겠습니다.

    개인 홈페이지를 만들고 나면 기관 홈페이지에서 본인 이름이 있는 곳에 개인 홈페이지로 링크를 걸어달라고 요청하는 것이 좋습니다. 구글 검색엔진의 페이지 랭크는 페이지 랭크가 높은 페이지에서 해당 페이지로 링크가 많을수록 높아지기 때문에 학과 홈페이지 같은 곳에서 연결을 해주면 검색 엔진 결과에 좀더 쉽게 노출됩니다.

    어떻게 만들까?

    소속 기관의 홈페이지 서비스를 이용하는 경우 보통은 개인 홈페이지를 만들기 위해서 간단한 HTML 문법을 알아야 합니다. 그리 어려운 것은 아니지만, 요즘은 마크다운 에디터에서 간단한 문법으로 작성한 후 HTML로 저장하는 것이 편할 것입니다. 예를 들어 typora같은 프로그램을 써서 작성한 후 html 형식으로 export 하여 파일명을 index.html로 고쳐서 서버에 올리면 됩니다. Microsoft Word나 아래아한글에서도 html 파일로 저장할 수는 있지만 추천하지 않습니다. IBS 이산수학그룹의 경우 wordpress를 제공하고 있어서 html 문법을 몰라도 쉽게 연구원들이 홈페이지를 만들 수 있습니다.

    저의 경우 예전에는 html을 직접 썼었는데, 그 후 blogger 서비스를 써서 만들기도 하다가, joomla도 써보다가 이제는 wordpress를 써서 개인 홈페이지를 만들고 있습니다. 만일 요즘 홈페이지를 새로 만들어야 하고, 관리자가 아니라서 wordpress 설치가 힘들다면 마크다운 에디터로 간단한 한 페이지짜리 홈페이지를 만들거나, 좀더 복잡한 경우 jekyll을 사용하였을 것 같습니다.

    이직할 때 처리할 일

    소속 기관을 바꾸게 되면 개인 홈페이지도 이사를 가야 합니다. 간혹 구글에서 누군가를 찾아보면 여러 대학에 비슷한 개인 홈페이지가 흩어져 있어서 어느 홈페이지가 최신 내용인지 구별하기 어려운 경우가 있습니다. 이렇게 여러 홈페이지가 나오는 이유는 이사를 갔는데도 예전 주소에 새 주소를 적어두지 않아서 그렇습니다.

    어떤 분들은 새 주소는 여기이니 이 쪽으로 오라고 말로 적어 놓는 경우도 있습니다. 하지만 그렇게 하면 사람만 이해할 수 있고 구글의 색인 로봇은 이해할 수 없습니다.

    이런 문제를 해결하기 위한 표준이 있습니다. HTTP 표준을 보면 301 Moved Permanently라는 것이 있습니다. 어떤 홈페이지를 접속하였을 때 새 주소로 바뀐 것을 알려주는 방식인데, 301 처리를 하면 웹 브라우저가 알아서 새 홈페이지로 옮겨지게 될 뿐 아니라 인터넷 검색 엔진도 예전 주소를 새 주소로 바꿔서 기억해주기 때문에 검색 엔진 랭킹에서도 유리합니다.

    웹서버 종류에 따라서 301 코드를 만들어 내기 위해서 어떻게 처리해야 하는지가 다릅니다. 아파치 웹서버처럼 .htaccess라는 파일에 스스로 설정을 써넣으면 되는 경우도 있지만, nginx 웹서버의 경우처럼 서버 관리자의 도움을 받아야 하는 경우도 있습니다. 저의 경우는 개인 홈페이지를 이사할 때 예전 주소로 접속하더라도 새 홈페이지에서 같은 내용으로 이동되도록 redirect 설정을 정밀하게 하는 편입니다.

    301 설정을 하기 어려우나 html 파일을 고칠 수 있는 경우에는 meta redirect 설정을 할 수도 있습니다. 물론 301보다는 추천하지 않습니다.

  • 소소한 정보: arXiv에 논문을 올릴 때 주의사항

    소소한 정보: arXiv에 논문을 올릴 때 주의사항

    많은 수학자들은 논문을 쓰면 출판되기 전에 그 논문을 preprint(출판전 논문)의 무료 저장소인 arXiv.org에 업로드하여 다른 사람들이 찾아볼 수 있게 합니다. 개인 홈페이지라면 PDF 파일을 올리겠지만, arXiv에는 TeX 원문 파일을 업로드하는 것을 권장합니다. arXiv에 있는 논문의 원문 소스를 다운받으려면 “Other formats”를 클릭한 후 “Download source”를 클릭하면 됩니다. 다른 분은 어떻게 논문에 그림을 그렸나 참고하는데 쓸 수 있지요.

    주석 삭제하기

    보통 논문을 여러 사람이 함께 쓰다보면 TeX의 주석 표시인 % 표시 뒤에 별별 내용이 다 적히는데, 그걸 지우지 않으면 틀린 증명을 임시로 지워둔 것 등이 있어서 누군가 tex 코드를 다운받아서 보게 된다면 상당히 부끄러울 수 있습니다. 따라서 arXiv에 업로드하기 전에는 반드시 주석을 모두 삭제하는 것을 권장합니다.

    심지어 arXiv의 논문에서 tex 파일 내 주석에 어떤 말이 많이 사용되었는지 연구한 논문도 있습니다. 2013년에 나온 연구결과에 의하면 수학 논문의 90.4%가 주석을 지우지 않았다고 합니다.

    주석을 삭제하기 위해서는 arXiv 홈페이지에 있는 perl 명령어를 이용하면 편리합니다. 맥에서는 터미널을 열고 아래 명령을 입력합니다.

    perl -pe 's/(^|[^\\])%.*/\1%/' < main.tex > main-arxiv.tex

    그 후 arXiv에 업로드할 때는 새로 생성된 파일인 main-arxiv.tex을 업로드하면 됩니다.

    참고로, python으로 만들어진 주석 삭제 도구 arxiv_latex_cleaner도 있습니다.

    참고문헌 정리하기

    TeX으로 논문을 쓰다보면 bibtex을 사용하여 참고문헌을 정리하는 것이 편리합니다. 단, arXiv에 bib 파일을 올릴 필요가 없습니다. 보통 연구를 하다보면 bib 파일에는 수많은 논문의 정보를 저장하게 됩니다. 필자의 경우 대학원생때부터 관리하던 bib 파일 안에 현재 3000개 이상의 논문 서지 정보가 들어있는데, 이 큰 파일을 굳이 업로드할 필요가 없습니다. BibDesk라는 프로그램으로 서지 정보를 관리합니다.

    먼저 latex을 돌리고 나면 생성되는 bbl파일을 열어서 그 속 내용물을 전체 복사하여 main-arxiv.tex 파일의 뒷 부분에 붙여넣고, 뒷부분에 있는 아래와 같은 두 줄은 아래처럼 주석처리하면 됩니다.

    %\bibliographystyle{abbrv}
    %\bibliography{mybib}

    같은 내용을 따로 올리지 말 것

    가끔 arXiv를 보다보면 “arXiv admin note: text overlap with arXiv:…”과 같은 경고문이 코멘트에 달린 것을 볼 수 있습니다. 그것은 그 논문이 다른 논문과 내용이 많이 겹친다는 경고이며 표절의 가능성을 암시하는 것이라 조심하는 것이 좋습니다. 이 웹사이트에서는 자동으로 내용 중복을 검사하여 저런 코멘트를 달아줍니다.

    예를 들어 논문 하나를 업로드한 후, 나중에 수정본을 다시 업로드할 때, 마치 새로운 논문처럼 업로드하면 저런 경고가 붙는 것을 피할 수 없습니다. 수정본을 업로드하는 기능이 있습니다. 간혹 논문 하나가 둘로 쪼개진다는 등 사정이 있는 경우에는 코멘트란에 그 내용을 적어두는 것이 좋습니다. 아울러 논문을 여러 개 쓸 때, 반복되는 부분, 특히 정의나 배경지식 설명 부분을 그냥 복사 붙여넣기 하면 자기 표절에 해당하므로 피해야 합니다.

    최신 preprint 구독하기

    arXiv에서 관심있는 분야의 새로운 preprint 정보를 매일 이메일로 받아볼 수 있습니다. 받는 논문이 너무 많다면 arxivist.com이라는 웹사이트를 추천합니다. 이 사이트에서는 사용자의 관심사에 맞추어서 5개 논문을 자동으로 선별하여 매일 이메일로 보내줍니다.