我是 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}
没有错误:已知每个参考书目条目后都需要一个空行。如果没有空行,反向引用机制就无法正常工作。