最后一行反向引用中的错误

最后一行反向引用中的错误

我是 LyX 用户。

我正在使用反向引用来引用所引用的页面,如下图所示。但是,在最后一个引用中,有一个错误:反向引用文本跳到下一行(在本例中为“引用于第 45 页”)。有人知道如何修复这个错误吗?

在此处输入图片描述

我的文档中的参考书目样式格式是 Basic (BibTex)。我用于反向引用的代码如下(取自此来源,http://lyx.475766.n2.nabble.com/backref-td478438.html):

%************************************************
%** hyperref and backref  
%************************************************

   % redefinition of the used \backrefalt
   \renewcommand*{\backrefalt}[4]{%
     \ifcase #1 %
         % case: not cited
     \or
         % case: cited on exactly one page
         Cited on page~#2.
     \else
         % case: cited on multiple pages
         Cited on pages~#2.
     \fi}

下面两张图片显示了我的 Bibliography 和 Hyperreff Support 的配置。我尝试了两种配置的几种,但都没有奏效。

在此处输入图片描述

在此处输入图片描述

我的问题是 .lyx 文件的一个最小示例: https://drive.google.com/file/d/1JueGZujTldPF1cZjiW7PyyKPOOXjVp63/view?usp=sharing

#LyX 2.3 created this file. For more info see http://www.lyx.org/
\lyxformat 544
\begin_document
\begin_header
\textclass article
\begin_preamble
%*****************************************************
%** hyperref and backref  
%*****************************************************

   % redefinition of the used \backrefalt
   \renewcommand*{\backrefalt}[4]{%
     \ifcase #1 %
         % case: not cited
     \or
         % case: cited on exactly one page
         Cited on page~#2.
     \else
         % case: cited on multiple pages
        Cited on pages~#2.
     \fi}
\end_preamble
\use_hyperref true
\pdf_backref page
\end_header

\begin_body

\begin_layout Standard
Citations: 
\begin_inset CommandInset citation
LatexCommand cite
key "Ref 1,Ref 2,Ref 3"
literal "false"

\end_inset

.
\end_layout

\begin_layout Bibliography
\begin_inset CommandInset bibitem
LatexCommand bibitem
key "Ref 1"
literal "false"

\end_inset

 Reference 1.
\end_layout

\begin_layout Bibliography
\begin_inset CommandInset bibitem
LatexCommand bibitem
key "Ref 2"
literal "false"

\end_inset

 Reference 2.
\end_layout

\begin_layout Bibliography
\begin_inset CommandInset bibitem
LatexCommand bibitem
key "Ref 3"
literal "false"

\end_inset

 Reference 3.

\end_layout

\end_body

\end_document

作为 .tex 文件的最小示例:

\documentclass{article}
\usepackage[utf8]{inputenc}

\usepackage[pdftex, pagebackref=true, hyperindex=true]{hyperref}
   \hypersetup{%
     breaklinks    = true,
     colorlinks    = true
  }

   % redefinition of the used \backrefalt
   \renewcommand*{\backrefalt}[4]{%
     \ifcase #1 %
         % case: not cited
     \or
         % case: cited on exactly one page
         Cited on page~#2.
     \else
         % case: cited on multiple pages
        Cited on pages~#2.
     \fi}

\begin{document}

Citations: \cite{Ref 1,Ref 2,Ref 3}.

\begin{thebibliography}{9}

\bibitem{Ref 1} Reference 1.

\bibitem{Ref 2} Reference 2.

\bibitem{Ref 3} 
Reference 3.
\end{thebibliography}

\end{document}

如果需要任何其他信息,请告诉我。

谢谢 :)

编辑:正如 egreg 在他的回答中指出的那样,在 .tex 文件中,代码之前必须有一个空行

\end{thebibliography}

创建此行可解决问题,即将 .tex 文件的最后几行更改为

\bibitem{Ref 3} Reference 3.

\end{thebibliography}

但是,我不知道如何在 LyX 上实现这一点。有人知道吗?

答案1

必须在行前有一个空行

\end{thebibliography}

没有错误:已知每个参考书目条目后都需要一个空行。如果没有空行,反向引用机制就无法正常工作。

相关内容