我想知道是否有人可以告诉我哪里出了问题?
我有一份 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
\footnote
hyperref
\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