Q&A 마당은 텍 관련 질문/답변을 위해 만들었습니다.

  • 로그인 없이 자유롭게 글을 읽고 쓸 수 있는 철학은 처음과 같이 계속됩니다.
  • 질문 전에 아래를 읽어 보세요. 좋은 질문이 좋은 답을 받을 수 있는 좋은 방법입니다.
    • 질문에 맞는 제목을 붙이세요. 질문의 내용과 관련없는 "고수님", "긴급질문", "도와주세요"와 같은 제목은 답이 잘 올라오지 않습니다. 이 게시판에 올라오는 모든 글은 질문입니다. 굳이 [질문], [Q]를 적으실 필요도 없습니다.
    • 내용을 충실히 적어 주시고, 같은 상황을 재현할 수 있는 최소한의 예제가 같이 있어야 합니다.
    • 최소 예제는 "Minimal working example"을 읽어 보세요.
  • 파일을 첨부하실 때에는 가능한 압축하여 파일 크기를 줄여서 올려주시길 바랍니다.
  • 개인적으로 사용하신 글꼴이 들어 있는 경우, preparefont.sty에 관한 답변을 참조하세요.
  • 스팸 글을 막기 위하여 짧은 시간 내에 다시 글이 등록되는 IP를 막거나, 광고 글을 막기 위하여 금지어로 .com, .net 등을 설정하고 있습니다. 다소간의 불편함이 있으시더라도 양해 바랍니다.
    • 금지어에서 stackexchange, stackoverflow, ctan, overleaf, , github, google.com, gmail.com, .org, .io, sil.org, wiki.com, tistory.com등은 해제하였습니다.
  • MathJax를 이용한 수식조판을 사용하실 수 있습니다. 여기를 참조하세요.
  • 사용하는 편집기는 CKeditor입니다.
    • 편집기에서 [enter]를 누르면 <p> 태그가 들어가고, 문단으로 생각하고 한 줄을 비웁니다.
    • 글줄만 바꾸려면 [shift-enter]를 누르면 <BR> 태그가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.
    • 수식를 문서내에 삽입하시려면 에디터를 툴바에서 [소스]를 눌러 HTML로 입력할 수 있게 바꾸신 후 <pre> </pre> tag를 사용하셔서 <pre> 여러 줄의 수식 </pre>처럼 입력하시면 좋습니다.

noname

1. workaround

bibtex이라는 유틸리티가 하는 일은 현재 tex 문서의 citation 기록(aux 파일에 기록되어 있습니다)을 읽어서 해당하는 문헌 정보를 .bib에서 추출해내고, 이것으로부터 tex 문서에 삽입할 수 있는 thebibliography 환경으로 된 \bibitem 목록을 만들어내는 것입니다. latex은 이렇게 만들어진 목록(.bbl 확장자 파일에 들어 있습니다)을 문서에 포함시켜 컴파일합니다.

그러므로, 어떤 이유에선가 bibtex이 만들어낸 bbl 파일의 내용(즉 thebibliography 환경 안의 내용)이 마음에 들지 않는다면, 이것을 직접 수작업으로 수정하면 됩니다. 이 케이스에서는, 어딘가에 있는 불필요한 and 하나를 쉼표로 바꾸어 저장하고 latex을 실행하면 되겠죠.

단, 다음 번 컴파일 시에 bibtex이 다시 실행되면 수작업 수정한 것은 무효가 되니까, 이 수작업 변경은 문서가 완전히 완성된 뒤의 최종 단계에서 더이상 수정할 것이 없을 때, bibtex을 실행하지 않고 latex만을 실행하여 결과를 얻어내어야 할 것입니다.

첨부파일 test-workaround.zip 에 들어 있는 sample-test.bbl은 이렇게 수정한 것이므로, bibtex을 돌리지 말고 pdflatex으로 세 번 컴파일하여 결과를 보세요. 직접 해보시려면, pdflatex -> bibtex -> bbl 수정 -> pdflatex -> pdflatex 순으로 진행합니다.

현실적으로, 아래 설명할 좀더 근본적인 해결책들이 쉽지 않은 관계로 이런 방법을 많이 씁니다. 실제 논문을 제출할 때는 (저널에 따라서 bibtex을 돌려야 하는 상태로 제출하는 것을 금지하는 경우도 있기 때문에) 작성 과정에서 적어두었던 \bibliographystyle과 \bibliography를 주석처리하고 bbl 파일의 내용을 그대로 복사해넣은 상태로 제공하기도 합니다.

2. bst 수정

문제가 되는 "and"가 어디서 오는가? \bibliographystyle{plain}이라고 한 이 행이 중요합니다. 즉 bibtex이 실행되는 과정에서 plain.bst라는 파일을 참조하는 것입니다. 어딘가에 있는 plain.bst 파일을 작업 디렉토리로 복사해 온 다음, 여러 저자일 적에 마지막 저자 이름 앞에 "and"를 넣으라고 설정한 부분을 찾아서 "쉼표 말고 아무 것도 넣지 말라"고 수정하고, 이 bibtex style을 읽어서 bibtex이 돌도록 하면 and는 나타나지 않을 것입니다.

그런데 이렇게 한다고 다 해결되는 게 아닌 것이, 한국어 문헌에는 and가 필요없지만 영미 문헌이라면 있어야 하잖아요? 영어 문헌이면 그냥두고 한국어면 빼라고 지시하는 것이 간단치 않습니다. bibtex이 한국말을 아는지도 알 수 없고 말이죠. 그리고 생각해보면 한국어 문헌일 경우에 달라져야 할 게 and만 있는 게 아니죠, 저널 이름에 꺾쇠를 붙여야 한다든가, 기타 여러 저자를 나타낼 때 et al. 대신 (외)라고 적어야 한다든가 등등 고려할 게 많습니다. 이런 요구사항은 또 출판사에 따라 다 다르지요. 더 골치아픈 것은 plain 스타일이 아니면 어쩌죠? bst가 작성되는 언어는 오직 bibtex style 말고는 그 어디에서도 사용되지 않는 고유한 언어라고 합니다. 그 사용법은 어디에서 익히나요? 등등...

아무튼 한 가지 예를 들어보겠습니다. multibib이라는 패키지를 사용할 것인데요, 일단 영어 문헌을 위한 bib와 한국어 문헌을 위한 bib를 별도로 마련합니다. 그런 다음에 논문의 본문에서 \cite할 적에, 영미 문헌을 인용하는 것이면 \citeen, 한국어 문헌을 인용하는 것이면 \citeko라고 하겠습니다. 마지막으로 bibtex을 영미 문헌을 위하여 한 번, 한국어 문헌을 위하여 한 번, 모두 두 번 실행하고 \bibliographystyle과 \bibliography 명령을 두 종류를 써서 두 개의 문헌 목록을 만들되, 마치 하나인 것처럼 보이게 배열하는 것입니다.

sample-multibib.zip 은 이것을 해본 것입니다. plain.bst에서 plain-ko.bst를 복사해와서 살짝 수정했는데, and를 없애고 저널 이름에 밑줄을 그은 두 가지가 적용되었습니다. 컴파일 순서는, 
pdflatex sample-multibib
bibtex en
bibtex ko
pdflatex sample-multibib
pdflatex sample-multibib
이렇게 진행합니다.

3. biblatex + biber 해결책

이것은 2014년에 이기황 선생께서 제안한 것으로서, 가장 modern한 방법입니다. 
http://wiki.ktug.org/wiki/wiki.php/LaTeXWorkshop/2014 페이지에 있는 
http://wiki.ktug.org/wiki/wiki.php/LaTeXWorkshop/2014?action=download&value=using_biblatex.pdf 문서와 실습자료를 참고할 수 있습니다.

한국어 문헌에는 kobib라는 keyword를 주고, 이 키워드가 있는 항목은 주어진 양식을 적용하라는 명령을 preamble에 적어두는 것입니다. 그리고 여기서는 biber라는 유틸리티를 bibtex 대신 사용합니다. 이왕 모던한 거라고 했으니 xelatex으로 컴파일하기로 하지요. sample-biblatexbiber.zip 은 이기황 선생의 방법을 간략히 적용한 것으로 xelatex -> biber -> xelatex -> xelatex 순으로 컴파일합니다.

4. 결론

글이 장황합니다만, 간단히 말해 한국어 문헌과 영미 문헌이 섞여 있는 문헌 목록을 구현하는 것이 쉬운 일이 아니고, 표준화되어 있는 문헌 목록 양식도 존재하지 않아서 그때그때 필요에 따라 적용해갈 수밖에 없다는 것입니다. 실용적으로는 1의 workaround 방법을 적용하는 것이 단기적으로 노력이 제일 적게 드는 일일 겁니다. 그러나 bib로 자신의 연구 분야 문헌을 관리하시는 분들은 이 가운데 쓸 만한 자신만의 방법을 발전시켜 두는 것도 좋은 방법이겠지요.

이 글은 numerical이라는 단순한 상황만을 예로 들고 있으나, 사실 어려운 것은 author-year 스타일입니다. 이에 대해서는 또 그 상황에 맞는 다른 고려할 점이 있을 것이나 여기서 다 다룰 수는 없겠네요.

이런 류의 질문이 사실 그 동안 여러 차례 반복되어서, 조금 시간을 내어 정리해두는 기분으로 작성하였습니다. 여담입니다만 상당한 시간을 들여서 거의 article 하나를 작성하는 정도의 노력을 들여 답변을 작성해야 했는데요, 질문자께서 조금 성의있게 "샘플 파일(MWE)"을 제공해주셨더라면 피차 시간을 절약할 수 있지 않았을까요?




XE Login