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>처럼 입력하시면 좋습니다.
한글 논문 참조할 때 문제 사항을 문의 드립니다.
2021.07.19 15:29
안녕하세요?
LaTeX 초보자가 문의 하나드립니다.
한글 논문을 참고 할 경우, 홍길동 and 고길동 이렇게 나오는데, 이런 경우에는 bib 파일을 바꾸어야 하는지요?
또 author={홍길동, 고길동, 마이콜, and 또치} 이런식으로 하니, Reference에, 홍길동, 고길동, 마이콜, and 또치 이렇게 표시됩니다. 홍길동, 고길동, 마이콜, 또치, "논문제목", 저널 이름 식으로 표현하고 싶은데 and를 지우기 위해서는 어떻게 해야할까요?
또 본문에서도 (홍길동 and 고길동) 대신에 (홍길동과 고길동)으로 표시하기 위해서는 따로 스타일 파일을 만들어야 하는지요?
감사합니다.
댓글 8
-
anonymou
2021.07.19 23:08
-
noname
2021.07.20 07:18
아주 초보자시라면 "예졔"를 제공하라는 말이 무슨 뜻인지 당황스러울 수 있습니다.
그래서 샘플 파일의 샘플을 만들어서 올려보겠습니다. 이 파일을 기준으로, 사용하는 패키지, bibliography 설정 등을 채워넣어서 도움을 요청해보십시오. 특히, 인용 방식과 문헌목록 양식에 영향을 주는 명령들을 포함하여야 합니다. (natbib이라든가, apacite라든가, biblatex이라든가... bibliographstyle의 지정사항 등등...)
-
초보
2021.07.20 12:12
답변 감사드립니다. 올려주신 예제 파일을 제가 컴파일하면 아래와 같이 저자 이름 사이에 and가 나와 있습니다. 이 부분을 해결할 수 없을까요?
김의중, 이상익, 정도언, 신민섭, and 윤인영
감사합니다.
-
yihoze
2021.07.20 14:36
noname님의 말씀을 다시 읽어 보세요. "... 사용하는 패키지 bibliography 설정 등 ... natbib라든가 ..." 어떤 방법을 사용하느냐에 따라 해법이 달라질 수밖에 없다는 뜻이겠죠.
-
noname
2021.07.21 01:32
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)"을 제공해주셨더라면 피차 시간을 절약할 수 있지 않았을까요?
-
초보
2021.07.21 10:09
귀중한 일정을 할애해주셔서 정말 감사합니다. 큰 도움이 되었습니다! 지금 샘플 파일을 올리면 너무 늦은 것 같아서, 다음에는 꼭 샘플 파일을 올리고 질문드리겠습니다.
-
Progress
2021.07.21 14:20
좋네요. 추천 눌렀습니다.
저는 3번 예제만 돌려봤습니다.
클래스를 oblivoir로 바꾸고
\let\jTitleFmt\ccnm로 바꾸어 한글 학술지명이 겹화살괄호*(겹꺾쇠표)로 나오게 해봤습니다.* https://www.korean.go.kr/front/page/pageView.do?page_id=P000204
-
noname
2021.07.21 19:09
앗, 그 귀하다는 추천을... (첨 받아봐요)
감사의 뜻으로, 세 번째 예제를 작성할 때 제가 사용한 arara directive를 소개하겠습니다.
%!TEX program = arara % arara: xelatex: { synctex: yes } % arara: biber if missing('bbl') % arara: xindex: { config: ko, language: ko, input: sample-test } if missing('ind') || changed('idx') || found('log','Citation') % arara: xelatex: { synctex: yes } % arara: xelatex: { synctex: yes } if found ('log','Please rerun LaTeX')
두 번째 줄의 의미는 "bbl 파일이 없으면 biber 실행".
세 번째 줄은 요즘 흥하는... xindex 예제입니다. 물론 김도현 교수님의 xindex-ko.lua를 설치해야 하고요. 현재 texlive에 있는 xindex rule은 input 필드를 꼭 써넣게 하고 있어서 약간 불편한데 나중에 고쳐질 거라고 봐요.
마지막 줄의 의미는 "log 파일 안에 'Please rerun LaTeX'이라는 말이 있으면 이 행을 실행"인데, 이 메시지는 biblatex에게서 오는 거고요. 보통 만나는 reference 때문에 한 번 더 돌려야 하는 것은 'Rerun required'라는 걸 찾아야 합니다.
참고가 되길 바라고요... 암튼 요즘 arara 되게 좋아요.
예제를 주세요. : http://www.ktug.org/xe/index.php?document_srl=190359