Fehler beim Verwenden der Bibliographie in einer anderen Tex-Datei

Fehler beim Verwenden der Bibliographie in einer anderen Tex-Datei

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

Bildbeschreibung hier eingeben

Antwort1

Damit xcitescheint es zu klappen. Beachten Sie xr-hyperstatt `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

Bildbeschreibung hier eingeben

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 thebibliographyUmgebung 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}

Bildbeschreibung hier eingeben

verwandte Informationen