因此,当我在新机器上安装 latex + textstudio 并尝试编译旧论文时,发生了一些奇怪的事情:
当我写类似的内容时In Sec. \ref{sec:Background}
,由于某种原因,整个部分的名称和文本“部分。”都会被编译,而不仅仅是部分编号。
这些是我的代码:
\section{Introduction}
\label{sec:introduction}
\input{content/intro.tex}
\section{Background}
\label{sec:Background}
\input{content/background.tex}
使用方法如下:
In Sec. \ref{sec:Background}
我正在使用以下文档类:
\documentclass[twocolumn, switch]{article}
以及以下通用软件包:
\RequirePackage[2020-02-02]{latexrelease}
%% General packages
\usepackage[utf8]{inputenc} % allow utf-8 input
\usepackage[T1]{fontenc} % use 8-bit T1 fonts
\usepackage{xcolor} % colors for hyperlinks
\usepackage[colorlinks = true,
linkcolor = purple,
urlcolor = blue,
citecolor = cyan,
anchorcolor = black]{hyperref} % Color links to references, figures, etc.
\usepackage{booktabs} % professional-quality tables
\usepackage{nicefrac} % compact symbols for 1/2, etc.
\usepackage{microtype} % microtypography
\usepackage{lineno} % Line numbers
\usepackage{float} % Allows for figures within multicol
%\usepackage{multicol} % Multiple columns (Method B)
\usepackage{amsmath}
\usepackage{bm}
我正在使用 textstudio,并尝试使用 pdflatex 和 xelatex 编译器,但没有成功。为什么会发生这种情况?当我在旧电脑上编译时,没有发生这种情况,只有数字被编译,如“Sec. 2”。
这发生在我所有的用途中\ref
,例如表格、图形等的引用。
編輯1:
我刚刚注意到发生这种情况的原因是:\RequirePackage[2020-02-02]{latexrelease}
,但如果我删除它,就会发生另一个问题:
那么为什么会\RequirePackage[2020-02-02]{latexrelease}
导致此问题以及如何在不删除此 requirepackage 的情况下修复它?
答案1
\RequirePackage[2020-02-02]{latexrelease}
允许您将 LaTeX 回滚到 2020-02-02 的状态。但这并不意味着一切都会像 2020 年那样运行,也不意味着所有软件包都会遵循。
不同之处的一个例子是钩子:\AddToHook{begindocument}
在 texlive 2019 中会出现错误,但在回滚时它会被默默忽略。
对于参考命令来说,这意味着,在这样的钩子中对它们的重新定义nameref
(以及)会失败。hyperref
您可以像下面这样恢复定义,但请注意,这只是此类失败的一个例子。现在使用新钩子的软件包数量越来越多,所有这些软件包在回滚时都可能表现得相当奇怪。因此,最好找出与当前 LaTeX 不兼容的软件包并将其从文档中删除。
\RequirePackage[2020-02-02]{latexrelease}
\documentclass{article}
\usepackage{hyperref}
\makeatletter
\DeclareRobustCommand\ref{%
\@ifstar\@refstar\T@ref
}%
\DeclareRobustCommand\pageref{%
\@ifstar\@pagerefstar\T@pageref
}%
\makeatother
\begin{document}
\section{Background}
\label{sec:Background}
In Sec. \ref{sec:Background}
\end{document}
答案2
尝试 :
\documentclass[twocolumn, switch]{article}
\usepackage[utf8]{inputenc} % allow utf-8 input
\usepackage[T1]{fontenc} % use 8-bit T1 fonts
\usepackage{xcolor} % colors for hyperlinks
\usepackage[colorlinks = true,
linkcolor = purple,
urlcolor = blue,
citecolor = cyan,
anchorcolor = black]{hyperref} % Color links to references, figures, etc.
\usepackage{booktabs} % professional-quality tables
\usepackage{microtype} % microtypography
\begin{document}
\section{Introduction}\label{sec:introduction}
In Section~\ref{sec:introduction}, everything is fine.
\end{document}
看看你是否还有问题。下面这个方法很有效: