我使用版本包来处理条件内容。但是它不适用于标题不同的参考资料(即,标题取决于版本)。以下是 MWE
\documentclass[a4paper,11pt]{article}
\usepackage{versions}
\usepackage{lipsum}
\excludeversion{short}
%\includeversion{short}
%\excludeversion{long}
\includeversion{long}
\begin{document}
\begin{short}
\lipsum[1-1]
\end{short}
\begin{long}
\lipsum[1-2]
\end{long}
This is a reference to Fig.~\ref{fig:varyingcaption}, which has a varying caption.
\begin{figure}[htb]
\centering
\framebox(100,50){}
\begin{short}
\caption{SHORT caption}
\end{short}
\begin{long}
\caption{LONG caption}
\end{long}
\label{fig:varyingcaption}
\end{figure}
This is a reference to Fig.~\ref{fig:fixcaption}, which has a fix caption.
\begin{figure}[htb]
\centering
\framebox(100,50){}
\caption{Fix caption}
\label{fig:fixcaption}
\end{figure}
\end{document}
如您所见,第一个图的引用是??,而第二个图的引用是 2。
我也尝试过使用注释包而不是版本包,并将上面的包含/排除命令更改为如下
\excludecomment{short}
%\includecomment{short}
%\excludecomment{long}
\includecomment{long}
并且有类似的问题,但现在??已被空格取代(即没有给出对第一个图的引用)。
答案1
首先:该包version
似乎定义了环境,例如等的名称\includeversion{foo}
,即将\begin{foo}...\end{foo}
被定义。
这基本上没有问题,但是环境的启动命令foo
是\foo
,因此调用该环境long
确实很糟糕,因为\long
是 TeX 原语,所以不应该重新定义它!
现在,标签问题:
\caption
如果您在环境中隐藏了,\@currentlabel
则 的重新定义\refstepcounter
不会使其在环境之外定义。为了通知\label
,\@currentlabel
您必须在版本环境中使用它。
\documentclass[a4paper,11pt]{article}
\usepackage{versions}
\usepackage{lipsum}
%\excludeversion{shortversion}
\includeversion{shortversion}
\excludeversion{longversion}
%\includeversion{longversion}
\begin{document}
\begin{shortversion}
\lipsum[1-1]
\end{shortversion}
\begin{longversion}
\lipsum[1-2]
\end{longversion}
This is a reference to Fig.~\ref{fig:varyingcaption}, which has a varying caption.
\begin{figure}[htb]
\centering
\framebox(100,50){}
\begin{shortversion}
\caption{SHORT caption}
\label{fig:varyingcaption}
\end{shortversion}
\begin{longversion}
\caption{LONG caption}
\label{fig:varyingcaption}
\end{longversion}
\end{figure}
This is a reference to Fig.~\ref{fig:fixcaption}, which has a fix caption.
\begin{figure}[htb]
\centering
\framebox(100,50){}
\caption{Fix caption}
\label{fig:fixcaption}
\end{figure}
\end{document}