报告中的脚注出现问题,但会转到首页,但其他报告中的脚注却表现正常

报告中的脚注出现问题,但会转到首页,但其他报告中的脚注却表现正常

我想知道是否有人可以告诉我哪里出了问题?

我有一份 LaTeX 报告,其中我在引言的一页上多次引用同一个脚注:

documentclass[oneside,11pt]{report}

\usepackage[hang, flushmargin]{footmisc}
\usepackage[colorlinks=true]{hyperref}
\usepackage{footnotebackref}
%\usepackage{hyperref}
%\usepackage{footmisc}
\usepackage{graphics}
\usepackage{graphicx}

\begin{document}

    \begin{abstract}
        This report\ldots
    \end{abstract}

    \tableofcontents
    \listoffigures
    
    \pagenumbering{arabic} 
    
    \part{Introduction and opening remarks}
    \chapter{Introduction}
    
    \section{MySQL}
    MySQL\footnote{\url{http://mysql.com/}.} is a popular RDBMS supported by Oracle\footnote{\url{http://www.oracle.com/}\label{OracleURL}.}.

    \section{NetBeans}
    NetBeans\footnote{\url{https://netbeans.org/}.} is an integrated development environment (IDE) principally for Java, but which supports several other programming languages. and other languages. NetBeans is sponsored by Oracle\footref{OracleURL}.
    \section{Treemap}
    Treemaps are defined by Wikipedia \footnote{\url{http://en.wikipedia.org/wiki/Treemapping}.}.
    
    \chapter{Bakground}
    \chapter{Review} 
            
    \part{Case study one}
    \chapter{Apparatus}
    \chapter{Method} 
    \chapter{Experiment} 
    \chapter{Results}  
    
    \part{Case study two}
    \chapter{Apparatus}
    \chapter{Method}
    \chapter{Experiment}
    \chapter{Results}        
    
    \appendix
    
    \chapter{References}

\end{document}

这可以正常工作。但如果我尝试将usepackage这份报告中的报表添加到另一份报告中,第二份报告就会因为以下原因而无法编译:

 LaTeX Warning: Command \@footnotetext  has changed.
           Check if current package is valid.

)

! LaTeX Error: Option clash for package hyperref.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              
                                                  
l.31 \usepackage
                {footnotebackref}
? 

Process has been terminated ...

即使我将usepackage语句重置为:

\usepackage{hyperref}
\usepackage{footmisc}

第二份报告的脚注全部将我带到了报告的首页。

为什么?

目前第二份报告无法完整显示,但它非常接近如下内容:

\documentclass[oneside,11pt]{report} % Use twoside for alternate page headings.

% \usepackage{algcompatible}
\usepackage{algorithm}
\usepackage{algorithmic}
% \usepackage{algorithmicx}
% \usepackage{algpseudocode}
\usepackage{alltt}
\usepackage{anysize}
\usepackage{appendix}
\usepackage{array}
\usepackage{bookmark}
\usepackage{booktabs}
\usepackage{changepage}
\usepackage{cite}
\usepackage{color}
\usepackage{enumerate}
\usepackage{etoolbox}
\usepackage{fancyhdr}
\usepackage{fixltx2e}
% \usepackage[hang, flushmargin]{footmisc}
% \usepackage[colorlinks=true]{hyperref}
% \usepackage{footnotebackref}
\usepackage{footmisc}
\usepackage{hyperref}
\usepackage{graphics}
\usepackage{graphicx}
\usepackage{longtable}
% \usepackage{minitoc}
\usepackage{pdflscape}
\usepackage{ragged2e}
\usepackage{setspace}
% \usepackage{soul}

\marginsize{2.54cm}{2.54cm}{2.54cm}{2.54cm}

% Tables.
\newcolumntype{R}[1]{>{\RaggedLeft\arraybackslash}p{#1}}

% ALGORITHMS. -------------------------------------------------------------------------------------

\makeatletter
\newcommand\fs@algorithmunruled{\def\@fs@cfont{}\let\@fs@capt\floatc@plain% Caption style.
    \def\@fs@pre{\kern8pt}
    % \def\@fs@pre{\hrule height.8pt depth0pt \kern2pt}% Line at top of algorithm and 2pt gap.
    \def\@fs@post{}
    % \def\@fs@post{\kern2pt\hrule\relax}% Remove line below `\caption`.
    \def\@fs@mid{\kern8pt}% Line at bottom of algorithm.
    % \def\@fs@mid{}
    \let\@fs@iftopcapt\iffalse}% Place caption under algorithm.
\makeatother
\floatstyle{algorithmunruled}
\restylefloat{algorithm}

\renewcommand{\algorithmicforall}{\textbf{for each}}
\renewcommand{\thealgorithm}{\thechapter.\arabic{algorithm}}
\makeatletter
\@addtoreset{algorithm}{chapter}
\makeatother

% GLOSSARY. ---------------------------------------------------------------------------------------

\usepackage[acronym,footnote,nonumberlist]{glossaries} % Makes a list of abbreviations.
\usepackage{glossary-mcols}
% \makeglossaries % This must be run from the command-line: e.g. 'makeglossaries file'
                  % where `file` is the name of the main LaTeX file.
\renewcommand{\glossarypreamble}{Some text\ldots.}

\include{Glossary}
%\renewcommand{\glsnamefont}[1]{\textbf{#1}}

\makeglossaries
\glossarystyle{mcolindex}

% ADD TEXT TO PART PAGE. --------------------------------------------------------------------------

\makeatletter

\let\LaTeXStandardPart\part%
\newcommand{\unstarredpart@@noopt}[1]{%
    \unstarredpart@@opt[#1]{#1}%
}

\newcommand{\unstarredpart@@opt}[2][]{%
    \cleardoublepage% (For clearing content before.)
    \begingroup%
    \let\newpage\relax%
    \LaTeXStandardPart[#1]{#2}%
    \endgroup%
}

\newcommand{\starredpart}[1]{%
    \LaTeXStandardPart*{#1}%
}

\newcommand{\unstarredpart}{%
    \@ifnextchar[{\unstarredpart@@opt}{\unstarredpart@@noopt}%
}

\renewcommand{\part}{%
  \@ifstar{\starredpart}{\unstarredpart}%
}

\begin{document}

    \pagenumbering{roman}

    % Title page.
    \title{\textcolor{red}{** WORKING DRAFT **}}
    \author{Author}

    \begin{abstract}
        This report\ldots
    \end{abstract}

    \tableofcontents

    % Print glossary.
    \glsaddall
    \printglossary[type=acronym,title={List of Abbreviations}]
    %\printglossaries%[title={List of abbreviations}]

    % Print algorithms.
    \listofalgorithms
    \setcounter{chapter}{0}

    \listoffigures
    \listoftables

    \pagenumbering{arabic}

    \part{Introduction and opening remarks}
    \chapter{Introduction}

    \section{MySQL}
    MySQL\footnote{\url{http://mysql.com/}.} is a popular RDBMS supported by Oracle\footnote{\url{http://www.oracle.com/}\label{OracleURL}.}.

    \section{NetBeans}
    NetBeans\footnote{\url{https://netbeans.org/}.} is an integrated development environment (IDE) principally for Java, but which supports several other programming languages. and other languages. NetBeans is sponsored by Oracle\footref{OracleURL}.
    \section{Treemap}
    Treemaps are defined by Wikipedia \footnote{\url{http://en.wikipedia.org/wiki/Treemapping}.}.

    \chapter{Bakground}
    \chapter{Review}

    \part{Case study one}
    \chapter{Apparatus}
    \chapter{Method}
    \chapter{Experiment}
    \chapter{Results}

    \part{Case study two}
    \chapter{Apparatus}
    \chapter{Method}
    \chapter{Experiment}
    \chapter{Results}

    \appendix

    \chapter{References}

\end{document}

答案1

对于选项冲突警告,如果不存在 hyperref 包选项的默认设置,包将使用默认的 hyperref 包选项bookmark集加载包。您更大的脚注问题是由于 setspace 更改了after的定义而导致的。如果您将其放在setspace 之后但在 之前:hyperref\footnotehyperref\usepackage[colorlinks=true]{hyperref}bookmarks

\documentclass[11pt]{report}
\usepackage{setspace}
\usepackage[hang, flushmargin]{footmisc}

\usepackage{algorithm}
\usepackage{algorithmic}
\usepackage{alltt}
\usepackage{anysize}
\usepackage{appendix}
\usepackage{array}
\usepackage{booktabs}
\usepackage{changepage}
\usepackage{cite}
\usepackage{color}
\usepackage{enumerate}
\usepackage{etoolbox}
\usepackage{fancyhdr}
\usepackage{fixltx2e}
\usepackage{graphics}
\usepackage{graphicx}
\usepackage{longtable}
\usepackage{pdflscape}
\usepackage{ragged2e}


\usepackage[colorlinks=true]{hyperref}
\usepackage{bookmark}

\marginsize{2.54cm}{2.54cm}{2.54cm}{2.54cm}

% Tables.
\newcolumntype{R}[1]{>{\RaggedLeft\arraybackslash}p{#1}}

% ALGORITHMS. -------------------------------------------------------------------------------------

\makeatletter
\newcommand\fs@algorithmunruled{\def\@fs@cfont{}\let\@fs@capt\floatc@plain% Caption style.
    \def\@fs@pre{\kern8pt}
    % \def\@fs@pre{\hrule height.8pt depth0pt \kern2pt}% Line at top of algorithm and 2pt gap.
    \def\@fs@post{}
    % \def\@fs@post{\kern2pt\hrule\relax}% Remove line below `\caption`.
    \def\@fs@mid{\kern8pt}% Line at bottom of algorithm.
    % \def\@fs@mid{}
    \let\@fs@iftopcapt\iffalse}% Place caption under algorithm.
\makeatother
\floatstyle{algorithmunruled}
\restylefloat{algorithm}

\renewcommand{\algorithmicforall}{\textbf{for each}}
\renewcommand{\thealgorithm}{\thechapter.\arabic{algorithm}}
\makeatletter
\@addtoreset{algorithm}{chapter}
\makeatother

% GLOSSARY. ---------------------------------------------------------------------------------------

\usepackage[acronym,footnote,nonumberlist]{glossaries} % Makes a list of abbreviations.
\usepackage{glossary-mcols}
% \makeglossaries % This must be run from the command-line: e.g. 'makeglossaries file'
                  % where `file` is the name of the main LaTeX file.
\renewcommand{\glossarypreamble}{Some text\ldots.}

\include{Glossary}
%\renewcommand{\glsnamefont}[1]{\textbf{#1}}

\makeglossaries
\glossarystyle{mcolindex}

% ADD TEXT TO PART PAGE. --------------------------------------------------------------------------

\makeatletter

\let\LaTeXStandardPart\part%
\newcommand{\unstarredpart@@noopt}[1]{%
    \unstarredpart@@opt[#1]{#1}%
}

\newcommand{\unstarredpart@@opt}[2][]{%
    \cleardoublepage% (For clearing content before.)
    \begingroup%
    \let\newpage\relax%
    \LaTeXStandardPart[#1]{#2}%
    \endgroup%
}

\newcommand{\starredpart}[1]{%
    \LaTeXStandardPart*{#1}%
}

\newcommand{\unstarredpart}{%
    \@ifnextchar[{\unstarredpart@@opt}{\unstarredpart@@noopt}%
}

\renewcommand{\part}{%
  \@ifstar{\starredpart}{\unstarredpart}%
}
\begin{document}\pagenumbering{roman}
   \begin{abstract}
        This report\ldots
    \end{abstract}

    \tableofcontents
  \pagenumbering{arabic}

    \part{Introduction and opening remarks}
    \chapter{Introduction}

    \section{MySQL}

    MySQL\footnote{\url{http://mysql.com/}.} is a popular RDBMS supported by Oracle\footnote{\url{http://www.oracle.com/}\label{OracleURL}.}.

    \section{NetBeans}
    NetBeans\footnote{\url{https://netbeans.org/}.} is an integrated development environment (IDE) principally for Java, but which supports several other programming languages. and other languages. NetBeans is sponsored by Oracle\footref{OracleURL}.
    \section{Treemap}
    Treemaps are defined by Wikipedia.\footnote{\url{http://en.wikipedia.org/wiki/Treemapping}.}


\end{document}

您的报告对我来说看起来编译得很好。

答案2

提前加载可能有很好的理由hyperref。以下编码对我有用。

\makeatletter
 \let\HYP@footnotetext\@footnotetext
\makeatother
\usepackage{footmisc}
\makeatletter
 \let\FN@footnotetext\@footnotetext
 \let\H@@footnotetext\FN@footnotetext
 \let\@footnotetext\HYP@footnotetext
\makeatother

它的工作原理是重新创建如果首先加载\@footnotetext就会发生的扩展。footmisc

相关内容