![Fehler beim Verwenden der Bibliographie in einer anderen Tex-Datei](https://rvso.com/image/330731/Fehler%20beim%20Verwenden%20der%20Bibliographie%20in%20einer%20anderen%20Tex-Datei.png)
Ich habe zwei .tex-Dateien: reftest.tex, die die wichtigsten Details enthält: Referenz, Abbildung, Gleichung; und cross_ref.tex. In cross_ref.tex möchte ich die Zitierung der Referenz in der Datei reftest.tex mit einem Querverweis versehen. Allerdings funktionierte die Zitierung nicht. Können Sie mir helfen, das Problem zu beheben? Das ist mein Code
In reftest.tex:
\documentclass[preprint,12pt, sort&compress]{elsarticle}
\def\bibsection{\section*{References}}
\usepackage[draft]{hyperref}
\usepackage{graphicx}
\usepackage{caption,subfig}
\usepackage{amssymb}
\usepackage{amsmath}
\begin{document}
This is ref \cite{S_Goossens}
\begin{figure}
\centering \includegraphics[width=0.5\linewidth]{example-image-a}
\caption{This is caption}
\label{fig:2}
\end{figure}
\begin{equation}
\label{eq:1}
y=x
\end{equation}
\begin{thebibliography}{00}
%% Text of bibliographic item
\bibitem{S_Goossens}SMichel Goossens, Frank Mittelbach, and Alexander Samarin Addison-Wesley, Reading, Massachusetts, 1993.
\end{thebibliography}
\end{document}
In cross_ref.tex
\documentclass[preprint,12pt, sort&compress]{elsarticle}
\def\bibsection{\section*{References}}
\usepackage[draft]{hyperref}
\usepackage{graphicx}
\usepackage{caption,subfig}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{xr}
\externaldocument{reftest}
\begin{document}
This is ref \cite{S_Goossens} in the reftest file
Figure \ref{fig:1} is figure in the reftest file
The Eq. \eqref{eq:1} is a equation
\end{document}
Meine Ausgabe kann die Zitatnummer in der Datei cross_ref.tex nicht anzeigen
Antwort1
Damit xcite
scheint es zu klappen. Beachten Sie xr-hyper
statt `xr auch die Paket-Ladereihenfolge.
reftest.tex
\documentclass[preprint,12pt, sort&compress]{elsarticle}
\def\bibsection{\section*{References}}
\usepackage{graphicx}
\usepackage{caption,subfig}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage[draft]{hyperref}
\begin{document}
This is ref \cite{S_Goossens}
\begin{figure}
\centering \includegraphics[width=0.5\linewidth]{example-image-a}
\caption{This is caption}
\label{fig:1}
\end{figure}
\begin{equation}
\label{eq:1}
y=x
\end{equation}
\begin{thebibliography}{00}
%% Text of bibliographic item
\bibitem{S_Goossens} Michel Goossens, Frank Mittelbach, and Alexander Samarin
Addison-Wesley, Reading, Massachusetts, 1993.
\end{thebibliography}
\end{document}
crossref.tex
\documentclass[preprint,12pt, sort&compress]{elsarticle}
\def\bibsection{\section*{References}}
\usepackage{graphicx}
\usepackage{caption,subfig}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{xcite}
\usepackage{xr-hyper}
\usepackage[draft]{hyperref}
\externaldocument{reftest}
\externalcitedocument{reftest}
\begin{document}
This is ref \cite{S_Goossens} in the reftest file
Figure \ref{fig:1} is figure in the reftest file
The Eq. \eqref{eq:1} is a equation
\end{document}
Ausgabe voncrossref.tex
Antwort2
Okay, hier ist eine Lösung.
Wenn Sie eine externe bibliografische Datei (literatur.bib) verwenden:
@BOOK{S_Goossens,
title = {Some title},
publisher = {Addison-Wesley},
year = {1993},
author = {Goossens, S. Michel and Mittelbach, Frank and Samarin, Alexander},
address = {Reading, Massachusetts},
owner = {polz},
timestamp = {2016.03.24}
}
Sie müssen lediglich Ihre reftest.tex ändern, um die externe Bibliografie anstelle der thebibliography
Umgebung zu verwenden:
\documentclass[preprint,12pt, sort&compress]{elsarticle}
\def\bibsection{\section*{References}}
\usepackage[draft]{hyperref}
\usepackage{graphicx}
\usepackage{caption,subfig}
\usepackage{amssymb}
\usepackage{amsmath}
\begin{document}
This is ref \cite{S_Goossens}
\begin{figure}
\centering \includegraphics[width=0.5\linewidth]{example-image-a}
\caption{This is caption}
\label{fig:1}
\end{figure}
\begin{equation}
\label{eq:1}
y=x
\end{equation}
\bibliography{literatur}{}
\bibliographystyle{plain}
\end{document}
Wenn Du den \usepackage{bibentry}
Befehl nun in die Präambel Deiner cross_rex.tex einbindest und über die Datei literatur.bib einbindest \nobibliography{literatur}{}
, die den Ausdruck der Bibliographie unterbindet, dann funktioniert es wie gewünscht.
\documentclass[preprint,12pt, sort&compress]{elsarticle}
\def\bibsection{\section*{References}}
\usepackage[draft]{hyperref}
\usepackage{graphicx}
\usepackage{caption,subfig}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{xr}
\externaldocument{reftest}
\usepackage{bibentry}
\begin{document}
This is ref \cite{S_Goossens} in the reftest file
Figure \ref{fig:1} is figure in the reftest file
The Eq. \eqref{eq:1} is a equation
\nobibliography{literatur}{}
\end{document}