我正在尝试定义一个悬挂缩进(我做到了),它会在每个新行或每个新段落或其他内容上重复。我真的必须在每个条目之前重复这个操作吗?或者有没有办法为这个特定章节中的每一行/段落设置它?这个想法是,如果一个条目长于一行,后面的行应该有一个悬挂缩进。
(是的,我知道手动编写参考书目是完全愚蠢的,但我的部门对参考书目的样子非常挑剔,而且我已经浪费了 2 天时间尝试让自定义样式发挥作用(显然失败了)所以我想最终手动完成会更快.. -.-)
提前谢谢您 :)
\chapter{Bibliography}
\addcontentsline{toc}{chapter}{Bibliography}
\label{Bibliography}
\hangindent=\parindent
\hangafter=1
Adams, Ansel. \emph{Die neue Ansel Adams Photobibliothek: Das Negativ}. Ed. Robert Baker. 9th ed. München: Christian Verlag GmbH, 1998.\\
Kiefer, Roland. \emph{Nikon Fotoschule}. Schaffhausen: Verlag Photographie, 1981.
答案1
由于您不会在参考书目中包含列表或其他任何内容,因此使用\leftskip
和否定\parindent
似乎更容易。
根据您的喜好调整缩进量。
\documentclass{book}
\makeatletter
\newenvironment{mybibliography}
{\let\@afterindentfalse\@afterindenttrue % we want \parindent anywhere
\chapter{\bibname}%
\setlength{\leftskip}{2em}%
\setlength{\parindent}{-\leftskip}}
{}
\makeatother
\begin{document}
\frontmatter
\tableofcontents
\mainmatter
\chapter{Whatever}
text
\backmatter
\begin{mybibliography}
Adams, Ansel. \emph{Die neue Ansel Adams Photobibliothek: Das Negativ}. Ed. Robert Baker. 9th ed. München: Christian Verlag GmbH, 1998.\\
Kiefer, Roland. \emph{Nikon Fotoschule}. Schaffhausen: Verlag Photographie, 1981.
Adams, Ansel. \emph{Die neue Ansel Adams Photobibliothek: Das Negativ}. Ed. Robert Baker. 9th ed. München: Christian Verlag GmbH, 1998.\\
Kiefer, Roland. \emph{Nikon Fotoschule}. Schaffhausen: Verlag Photographie, 1981.
Adams, Ansel. \emph{Die neue Ansel Adams Photobibliothek: Das Negativ}. Ed. Robert Baker. 9th ed. München: Christian Verlag GmbH, 1998.\\
Kiefer, Roland. \emph{Nikon Fotoschule}. Schaffhausen: Verlag Photographie, 1981.
\end{mybibliography}
\end{document}
如果你希望悬挂缩进与正常缩进相同,只需这样做
\makeatletter
\newenvironment{mybibliography}
{\let\@afterindentfalse\@afterindenttrue % we want \parindent anywhere
\chapter{\bibname}%
\setlength{\leftskip}{\parindent}%
\setlength{\parindent}{-\leftskip}}
{}
\makeatother
一旦执行,将恢复的正常设置\parindent
以及行为。\if@afterindent
\end{mybibliography}
您可能还想添加一个设置\parskip
,比如
\setlength{\parskip}{\medskipamount}
因此将代码改为
\makeatletter
\newenvironment{mybibliography}
{\let\@afterindentfalse\@afterindenttrue % we want \parindent anywhere
\chapter{\bibname}%
\setlength{\leftskip}{\parindent}%
\setlength{\parindent}{-\leftskip}%
\setlength{\parskip}{\medskipamount}}
{}
\makeatother
这些变化将产生
答案2
您可以使用列表来实现这一点。例如
\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage{enumitem}
\begin{document}
\begin{itemize}[label=,leftmargin=\parindent,itemindent=-\parindent]
\item Adams, Ansel. \emph{Die neue Ansel Adams Photobibliothek: Das Negativ}. Ed. Robert Baker. 9th ed. München: Christian Verlag GmbH, 1998.\\
Kiefer, Roland. \emph{Nikon Fotoschule}. Schaffhausen: Verlag Photographie, 1981.
\item Adams, Ansel. \emph{Die neue Ansel Adams Photobibliothek: Das Negativ}. Ed. Robert Baker. 9th ed. München: Christian Verlag GmbH, 1998.\\
Kiefer, Roland. \emph{Nikon Fotoschule}. Schaffhausen: Verlag Photographie, 1981.
\end{itemize}
\end{document}
答案3
非常感谢大家的回答 :) 我找到了一种方法来让 thebibliography 按照我的意愿运行(这样做还有一个好处,就是我可以比使用简单列表更轻松地使用 \cite)。我在序言中添加了以下内容:
\makeatletter
\renewcommand\@biblabel[1]{}
\renewenvironment{thebibliography}[1]
{\section*{\refname}%
\@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}%
\list{\@biblabel{\@arabic\c@enumiv}}%
{\settowidth\labelwidth{\@biblabel{#1}}%
\leftmargin\labelwidth
\advance\leftmargin20pt% change 20 pt according to your needs
\advance\leftmargin\labelsep
\setlength\itemindent{-20pt}% change using the inverse of the length used before
\@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}
\renewcommand\newblock{\hskip .11em\@plus.33em\@minus.07em}
\makeatother
参考书目的重新定义见此处:http://latex-community.org/forum/viewtopic.php?t=9048&f=50