参考书目中的悬挂对齐

参考书目中的悬挂对齐

我的问题很简单,但在网上和这里搜索后仍未能找到满意的答案。

我正在尝试手动建立一个参考书目,并想修改参考书目的“hangindent”,这里是一个 MWE:

\documentclass[a4paper,11pt,twopage,openright]{book}
\begin{document}
\begin{thebibliography}{ME00}
\setlength{\itemindent}{.22cm}
\setlength{\labelwidth}{1.5cm} 
\bibitem[Ada75]{Ada75}Robert A. \textsc{Adams}, {Sobolev Spaces}, Academic Press, 1975.
\bibitem[Ber77]{Ber77}Melvin S. \textsc{Berger}, {Nonlinearity and Functional Analysis}, Academic Press, 1977.
\end{thebibliography}
\end{document}

itemindentlabelwidth设置使得标签相对于标题对齐(itemindent)并且“Robert”与“Melvin”等对齐(labelwidth)。

编译此文件时,我得到第二行第二个条目的“-demic Press, 1977”,其左偏移量与“Melvin”有关。如何在不改变标签位置的情况下调整它?(要么将悬挂对齐到“Melvin”,要么添加右偏移量)

我唯一的要求是我不想使用 bibtex 或 natbib。

非常感谢!(如果这完全是无足轻重的事情,请原谅)

答案1

您可以使用该enumitem包并重新定义thebibliography环境:

\documentclass[a4paper,11pt,openright]{book}

\usepackage{enumitem}
\makeatletter
\renewenvironment{thebibliography}[1]
 {%
  \chapter*{\bibname}%
  \@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}%
  \settowidth{\dimen0}{\@biblabel{#1}}%
  \begin{enumerate}[
    leftmargin=!,
    labelwidth=\dimen0,
    align=left,
    before={\@openbib@code
            \sloppy
            \clubpenalty 4000 \@clubpenalty\clubpenalty
            \widowpenalty 4000
            \sfcode `\.\@m}
  ]%
 }
{%
 \def\@noitemerr{\@latex@warning{Empty `thebibliography' environment}}%
 \end{enumerate}%
}
\makeatother


\begin{document}
\begin{thebibliography}{Ada75}
\bibitem[Ada75]{Ada75}Robert A. \textsc{Adams}, {Sobolev Spaces}, Academic Press, 1975.
\bibitem[Ber77]{Ber77}Melvin S. \textsc{Berger}, {Nonlinearity and Functional Analysis}, Academic Press, 1977.
\end{thebibliography}
\end{document}

参数应该thebibliography是最宽的标签,您可以在项目列表完成时设置。这比用拇指计算宽度要好。

相关内容