我一直在努力寻找解决方案,并尝试了多种方法https://tex.stackexchange.com/a/43351和https://tex.stackexchange.com/a/443,但无法让它工作。我希望发生以下情况:
我在文中某处定义了一个例子,如下
\begin{shortex}\label{Example1} lorem ipsum \end{shortex}
在本文后面,我将介绍该示例的修改版本(示例 1'),如果可能的话,使用
cleveref
发生上述情况之前,这是我的代码:
\documentclass[letterpaper,12pt]{article}
%Math symbol packages
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
%Add several formatting packages
\usepackage{paralist}
\usepackage[colorlinks=true,hidelinks]{hyperref}
\usepackage{cleveref}
\crefdefaultlabelformat{[#2#1#3]}
%Add theorem support
\usepackage{amsthm}
%Define example
\theoremstyle{definition}
\newtheorem{ex}{Example}
\renewcommand{\theex}{\arabic{ex}}
%Access package-internal code that uses @
\makeatletter
% Define examples without linebreaks
\newenvironment{shortex}
{\refstepcounter{ex}\textsc{Example~}\theex:\normalfont}%\begin{shortex}
{}%\end{shortex}
\makeatother
%Define cref for Examples
\crefname{ex}{}{examples}
\creflabelformat{ex}{(#2#1#3)}
\begin{document}
\begin{shortex}\label{ex1} This is example 1 \end{shortex}
\end{document}
我曾尝试摆脱 shortex 并简单地使用{ex}
,但这仍然不起作用。
谢谢大家给予的帮助!
编辑(djupp):我还发现了大卫卡莱尔的https://tex.stackexchange.com/a/69918/27148现在,如果我可以结合建议的用法\ref
(或\cref
)来引用旧示例,效果可能会很好。(即,在陈述 2、3、4、5 等之后,我可能想重述示例 1。)
答案1
我不知道这是否是你要找的;我定义了一个varex
环境来陈述一个示例的变体,通过原始示例的标签和后缀来计算其编号,默认情况下,后缀是素数,但可以将另一个指定为可选参数。
\documentclass[letterpaper,12pt]{article}
%Math symbol packages
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
%Add theorem support
\usepackage{amsthm}
%Expanded references
\usepackage{refcount}
%Add several formatting packages
\usepackage{paralist}
\usepackage[colorlinks=true,hidelinks]{hyperref}
\usepackage{cleveref}
\crefdefaultlabelformat{[#2#1#3]}
%Define example
\theoremstyle{definition}
\newtheorem{ex}{Example}
\newcounter{Hex} % a new counter for hyperref
%Access package-internal code that uses @
\makeatletter
\g@addto@macro\ex{\stepcounter{Hex}} % use Hex for making anchors
% Define examples without linebreaks
\newenvironment{varex}[2][$'$]
{\edef\theex{\getrefnumber{#2}#1}%
\addtocounter{ex}{-1}
\ex}
{\endex}
\makeatother
%Define cref for Examples
\crefname{ex}{example}{examples}
\creflabelformat{ex}{(#2#1#3)}
\begin{document}
\begin{ex}\label{first}
An example.
\end{ex}
\begin{ex}\label{second}
Another one.
\end{ex}
\begin{varex}{first}\label{first'}
This is example 1$'$.
\end{varex}
\begin{varex}[$''$]{first}\label{first''}
This is example 1$''$.
\end{varex}
References:
\cref{first}
\cref{second}
\cref{first'}
\cref{first''}
\end{document}