我的问题很简单,但在网上和这里搜索后仍未能找到满意的答案。
我正在尝试手动建立一个参考书目,并想修改参考书目的“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}
和itemindent
的labelwidth
设置使得标签相对于标题对齐(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
是最宽的标签,您可以在项目列表完成时设置。这比用拇指计算宽度要好。