我正在写一份书目:
\begin{thebibliography}{9}
\bibitem{Lorem}\textsc{Lorem ipsum dolor sit}
\texttt{Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras vitae purus mi. Fusce quam urna, elementum at ullamcorper in, tempus sed quam.}
\end{thebibliography}
结果 :
我想要获得的是:
我想缩进的第二行和第三行\texttt
。我必须重新定义\texttt
还是有其他解决方案?
感谢您的帮助。
编辑:
通过使用 egreg 的解决方案,我得到了一个奇怪的结果:
答案1
可以修改 LaTeX 内部结构来实现这一点。我们修改:
\@biblabel
打印标签时,新标签包含长度为\bibindent
\bibitem
打印整个标题,删除第一行的多余空格您应该添加到
\kern\bibindent
的参数中,\begin{thebibliography}
以确保缩进该行
\def\bibindent
定义缩进量,我将其设置为1em
。
代码:
\documentclass{article}
\begin{document}
\def\bibindent{1em}
\begin{thebibliography}{99\kern\bibindent}
\makeatletter
\let\old@biblabel\@biblabel
\def\@biblabel#1{\old@biblabel{#1}\kern\bibindent}
\let\old@bibitem\bibitem
\def\bibitem#1{\old@bibitem{#1}\leavevmode\kern-\bibindent}
\makeatother
\bibitem{Lorem}\textsc{Lorem ipsum dolor sit}
\texttt{Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras vitae purus mi. Fusce quam urna, elementum at ullamcorper in, tempus sed quam.}
\end{thebibliography}
\end{document}
答案2
您可以使用该enumitem
包来重新定义环境:
\documentclass[a4paper]{article}
\usepackage{enumitem}
\makeatletter
\renewenvironment{thebibliography}[1]
{\section*{\refname}%
\@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}%
\begin{enumerate}[label={[\arabic{enumi}]},itemindent=*,leftmargin=4em]
\@openbib@code
\sloppy
\clubpenalty4000
\@clubpenalty \clubpenalty
\widowpenalty4000
\sfcode`\.\@m}
{\def\@noitemerr
{\@latex@warning{Empty `thebibliography' environment}}%
\end{enumerate}}
\makeatother
\begin{document}
\begin{thebibliography}{99}
\bibitem{Lorem}\textsc{Lorem ipsum dolor sit} \texttt{Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras
vitae purus mi. Fusce quam urna, elementum at ullamcorper in, tempus sed quam.}
\bibitem{Lorem2}\textsc{Lorem ipsum dolor sit} \texttt{Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras
vitae purus mi. Fusce quam urna, elementum at ullamcorper in, tempus sed quam.}
\end{thebibliography}
\end{document}
调整 的值以leftmargin
适合您。请注意,thebibliography
即使 不执行任何操作, 参数 仍然是必需的。这样,如果您改变主意,就无需修改输入。
警告
此代码适用于标准类article
。对于report
或 ,book
请将其更改\section
为\chapter
,而对于 KoMa-script 类或memoir
某些其他 hack 则可能需要。