我知道存在一些类似的问题,但我都没有找到适合我的答案。
我正在写一篇哲学论文,想以编号的方式引用我在写作时提出的观点,类似于在数学论文中引用定理、主张或方程式的方式。
设置如下:
This is a paragraph I'm writing, and {here is a claim I'd like to reference} \label{clm:claim1}
...
Some other paragraph I'm writing, and I reference \ref{clm:claim1}.
在\ref{clm:claim1}
我希望出现(I),(1),或权利要求1
有人能指点我如何做到这一点吗?我正在使用 Overleaf 和 XeLatex。
谢谢!
答案1
你可以让 LaTeX 通过 分配一个新的计数器,其名称NewCounter
为 用于计数任何事物\newcounter{NewCounter}[<name of superordinate counter whose incrementing will reset NewCounter to the value 0>]
。你可以让 LaTeX 通过和 通过
增加计数器 NewCounter 。 当你使用 时,可以在该-directive 和下一个-directive 之间的某个地方放置一个命令。当你这样做时,那么\stepcounter{NewCounter}
\refstepcounter{NewCounter}
\refstepcounter
\label{MyLabel}
\refstepcounter
\refstepcounter
- 您可以通过引用 LaTeX 在遇到-directive
\pageref{MyLabel}
时即将构建的页面编号\refstepcounter
- 您可以通过获取在 LaTeX 执行 -directive 之后立即
\ref{MyLabel}
通过 可以获得的东西。 (旨在提供一个标准前缀,该前缀将通过 添加到每个引用的前面。通常-macros 定义为空。)\p@NewCounter\theNewCounter
\refstepcounter
\p@NewCounter
\ref
\p@
\theNewCounter
请注意,即使在“refstepping”NewCounter 之后从未打印过 NewCounter 的值,所有这些引用都是可能的。
当。。。的时候超链接-package 已加载,然后
\refstepcounter
还将触发将目标/锚点放置到 .pdf 文件中,该文件的名称是通过宏从 NewCounter 的值派生出来的\theHNewCounter
。\ref
/\pageref
不仅提供文本短语,还将提供转换为超链接的文本短语,可点击该超链接滚动/导航到所引用的文档部分。- 您可以使用
\hyperref[<name of referencing-label>]{<custom phrase>}
来将自定义短语转换为超链接,单击这些超链接即可滚动/导航到文档的该部分。在 -argument 中,<custom phrase>
您可以使用带星号的变体\ref*
/\pageref*
。
例子:
\documentclass[landscape, a4paper]{article}
\makeatletter
%
% Layout of this example
%
\@ifundefined{pdfpagewidth}{}{\pdfpagewidth=\paperwidth}
\@ifundefined{pdfpageheight}{}{\pdfpageheight=\paperheight}
\@ifundefined{pagewidth}{}{\pagewidth=\paperwidth}
\@ifundefined{pageheight}{}{\pageheight=\paperheight}
\oddsidemargin=1cm
\textwidth=\paperwidth
\advance\textwidth-2\oddsidemargin
\advance\oddsidemargin-1in
\advance\oddsidemargin-\hoffset
\evensidemargin=\oddsidemargin
\topmargin=1cm
\textheight=\paperheight
\advance\textheight-2\topmargin
\advance\topmargin-1in
\advance\topmargin-\voffset
\headheight=0pt
\headsep=0pt
\footnotesep=.75cm
\marginparwidth=5mm
\marginparsep=2.5mm
\parindent=0ex
\parskip=.66\baselineskip
\pagestyle{plain}
\makeatother
\usepackage{soul}
\usepackage[expand]{gettitlestring}
\usepackage{nameref}
\usepackage{refcount}
%\usepackage{nohyperref}
\usepackage{hyperref}
\makeatletter
\GetTitleStringDisableCommands{\let\ul\@firstofone}%
\newcounter{claim}
\renewcommand\theclaim{\arabic{claim}}
\ifx\hyper@anchor\ltx@gobble\else\@ifundefined{hyper@anchor}{}{\renewcommand\theHclaim{\arabic{claim}}}\fi
\@ifdefinable\claim{%
\DeclareRobustCommand\claim[1]{%
\@ifundefined{NR@gettitle}{\def\@currentlabelname{#1}}{\NR@gettitle{#1}}%
\refstepcounter{claim}%
\ifx\hyper@anchor\ltx@gobble\else\@ifundefined{hyper@anchor}{}{\noexpand}\fi#1%
}% the \nobreak is to ensure that the box with the anchor will be tied to the following box.
}%
\makeatother
\newcommand\claimref[2]{\hyperref[{#1}]{#2}}
\begin{document}
This is a paragraph I'm writing, and \claim{\ul{here is a claim I'd like to reference.}}\label{clm:claim1}%
\newpage
\verb|Some other paragraph I'm writing, and \claimref{clm:claim1}{here I reference my claim}.| yields:
Some other paragraph I'm writing, and \claimref{clm:claim1}{here I reference my claim}.
\verb|\nameref{clm:claim1}| yields: \nameref{clm:claim1}
\verb|\nameref*{clm:claim1}| yields: \nameref*{clm:claim1}
\verb|\hyperref[clm:claim1]{\expandafter\expandafter\expandafter\MakeUppercase\getrefbykeydefault{clm:claim1}{name}{??}}| yields:
\hyperref[clm:claim1]{\expandafter\expandafter\expandafter\MakeUppercase\getrefbykeydefault{clm:claim1}{name}{??}}
\end{document}
答案2
你写了,
我正在写一篇哲学论文,并且想以编号的方式引用我在写作时提出的主张,类似于在数学论文中引用定理、主张或方程式的方式。
和包可用于创建编号的定理类环境。这些环境不必是通常数学意义上的定理、引理、推论;它们也可以是“声明”。以下代码显示了如何 (a) 设置一个名为 的环境amsthm
以及(b) 如何通过通常的-机制交叉引用此环境的实例。ntheorem
claim
\label
\ref
\documentclass{article}
\usepackage{lipsum}
\usepackage{amsthm} % for \theoremstyle and \newtheorem macros
\usepackage[colorlinks,allcolors=blue]{hyperref} % optional
\usepackage[nameinlink]{cleveref}
\theoremstyle{definition} % for a non-flashy, even somewhat subdued 'look'
\newtheorem{claim}{Claim}
\renewcommand\theclaim{(\Roman{claim})} % set as needed
\crefname{claim}{Claim}{Claims}
\begin{document}
\lipsum[1-2] % filler text
\begin{claim}\label{clm:claimX}
Here is a claim I'd like to reference.
\end{claim}
\lipsum[3-6] % more filler text
Some other paragraph I'm writing, in which I cross-reference \cref{clm:claimX}.
\end{document}