
내 bibtex 제목을 수정하고 싶습니다. \bibname을 수정하면 됩니다. 그런데 "Bibliography"라는 제목과 아래 항목 사이의 공간을 줄이려면 애초에 얼마나 많은 공간이 있는지 알고 싶습니다.
보다 일반적으로 bibtex 내부가 어떻게 작동하는지 궁금합니다. 이에 대한 문서를 찾을 수없는 것 같습니다. 그래서 내 질문은 다음과 같습니다
- bibtex가 참고문헌 페이지의 형식을 지정하는 방법에 대한 정보는 어디서 찾을 수 있나요?
- 보다 구체적으로 제목과 아래 항목 사이의 공간을 결정하는 것은 무엇입니까?
답변1
BibTeX의 출력은 환경을 .bbl
포함하는 파일 입니다 thebibliography
. 이 환경을 정의하는 것은 문서 클래스의 의무입니다.
보통은 다음과 같습니다
\section*{\refname}
\begin{list}{<code>}
<bib items>
\end{list}
챕터가 없는 수업의 경우
\chapter*{\bibname}
\begin{list}{<code>}
<bib items>
\end{list}
이는 로드된 패키지에 따라 다를 수 있습니다. 예를 들어 natbib
이에 개입하지만 본질적으로 위의 경우 와 \bibsection
동일한 매크로를 사용합니다.\section*
\chapter*
texdef
명령줄에서 정의를 찾을 수 있습니다 . 예를 들어, 명령줄
texdef -t latex -c article -s thebibliography
출력됩니다
% article.cls, line 570:
\newenvironment{thebibliography}[1]
{\section*{\refname}%
\@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}%
\list{\@biblabel{\@arabic\c@enumiv}}%
{\settowidth\labelwidth{\@biblabel{#1}}%
\leftmargin\labelwidth
\advance\leftmargin\labelsep
\@openbib@code
\usecounter{enumiv}%
\let\p@enumiv\@empty
\renewcommand\theenumiv{\@arabic\c@enumiv}}%
\sloppy
\clubpenalty4000
\@clubpenalty \clubpenalty
\widowpenalty4000%
\sfcode`\.\@m}
{\def\@noitemerr
{\@latex@warning{Empty `thebibliography' environment}}%
\endlist}
수정하려면 \makeatletter
및 가 필요합니다 \makeatother
.
natbib
문서 시작 부분에서 환경을 재정의하기 때문에 케이스(또는 다른 패키지)가 사용되는 경우 실제 정의를 추적하기 어려울 수 있습니다 . 그러나 패키지 코드를 보면
\renewenvironment{thebibliography}[1]{%
\bibsection
\parindent\z@
\bibpreamble
\bibfont
\list{\@biblabel{\the\c@NAT@ctr}}{\@bibsetup{#1}\global\c@NAT@ctr\z@}%
\ifNAT@openbib
\renewcommand\newblock{\par}%
\else
\renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}%
\fi
\sloppy\clubpenalty4000\widowpenalty4000
\sfcode`\.\@m
\let\NAT@bibitem@first@sw\@firstoftwo
\let\citeN\cite \let\shortcite\cite
\let\citeasnoun\cite
}{%
\bibitem@fin
\bibpostamble
\def\@noitemerr{%
\PackageWarning{natbib}{Empty `thebibliography' environment}%
}%
\endlist
\bibcleanup
}%
두 경우 모두 제목과 첫 번째 항목 사이의 공백을 변경하려면 \vspace
앞에 적절한 명령을 삽입하면 됩니다.\list