[OS X TeX] disappearing cross-reference

Murray Eisenberg murrayeisenberg at gmail.com
Mon Jun 28 17:08:59 EDT 2021


A _very_ peculiar thing happens from time to time when running pdflatexmk -- or just running latex 3 times! -- in TeXShop 4.64 (under macOS 11.4) with TeXLive 2021 on a book-length document whose body consists of many subsidiary files: the cross-reference to one particular theorem with a \label disappears (it was there after the 3nd latex run!!) and so the \cref to that label gives a “??” in the output.

The really peculiar thing is that if I just run typeset twice with the latex engine, everything is OK. It’s only when I then run pdflatexmk (with or without first Trashing all aux files), or after doing 3 consecutive latex runs, that the cross-reference cannot be resolved.  

To make sure I did not accidentally put some non-printing character in the label when referencing it, I carefully retyped the original \label{…} command and did a copy-and-past of the argument there to the argument of the subsequent \cref.

This has happened with _different_ theorems’ labels at different times while working on this document!

In each case, the errant label will have the form “kind:long-label-hyphens-separating” where ‘kind’ might be ’thm”, e.g. The particular label creating the problem at the moment is in:

	\begin{theorem}%
	\label{thm:sup-metric-bded-cont-complete}
	
	Let $(X, d)$ be a metric space….

	\end{theorem}

and the missing reference after the latex engine runs the third time occurs later in the same inputted source file in:

	In other words, in the notation of \cref{thm:sup-metric-bded-cont-complete},

Here’s the relevant portion of the .aux file after the 2nd latex run:

\newlabel{thm:sup-metric-bded-cont-complete}{{\M at TitleReference {1.85}{Completeness of sequence and functions spaces}}{200}{}{theorem.1.5.85}{}}
\newlabel{thm:sup-metric-bded-cont-complete at cref}{{[theorem][85][1]1.85}{[1][200][]200}}
\@writefile{lla}{\defcounter {refsection}{0}\relax }\@writefile{lla}{\contentsline {chapter}{\numberline {\crtrefnumber{thm:sup-metric-bded-cont-complete}}thm:sup-metric-bded-cont-complete}{200}{theorem.1.5.85}\protected at file@percent }


The preamble is very complicated but includes this, in case it matters to diagnosing the problem:

\usepackage[T2A,T1]{fontenc}
%\usepackage{amsmath}	% avoid \dddot clash
\usepackage{mathtools}	% avoid unicode-math clash
\usepackage{amsthm}	% avoid openbox clash
\usepackage[russian,french,ngerman,polish,english]{babel}

\RequirePackage[refpage,norefeq,intoc,english,cfg]{nomencl}
\usepackage[pdfa]{hyperref}
\hypersetup{
  unicode,
  pdfapart=2, pdfaconformance=u,
  bookmarksnumbered,bookmarksopen=true,bookmarksopenlevel=3,
  breaklinks=true,
  colorlinks, citecolor=red, filecolor=defaultcolor, linkcolor=blue, urlcolor=blue,
  linktocpage=true,linktoc=all,
}
\usepackage[user,hyperref]{zref}%{zref-base,zref-user}
 \zref at newprop*{pagedest}[Doc-Start]{page.\@the at H@page}
 \zref at addprop{main}{pagedest}
 \newcommand\hyperpageref[1]{\hyperlink{\zref at extract{#1}{pagedest}}{\pageref*{#1}}}
%
\RequirePackage[nameinlink,noabbrev,capitalize]{cleveref}
%
\RequirePackage{crossreftools}
% Fix to crossreftools
% https://tex.stackexchange.com/a/512175/13492
\renewcommand{\@@crtextr at ct@ref}[2]{%
  \expandafter\@@@crtextr at ct@ref\expandafter{\detokenize{#2}}{#1}%
}
\newcommand{\@@@crtextr at ct@ref}[2]{%
  \expandafter\ifx\csname r@#1\endcsname\relax
  \crt at refundefined%
  \else
  \expandafter\expandafter\csname crt at ref@splitter@#2\endcsname\csname r@#1\endcsname%
  \fi
}

I would be happy to provide an archive of the entire book project’s files to anybody who might help in resolving this peculiar cross-reference error.

---
Murray Eisenberg		murrayeisenberg at gmail.com
Mobile (413)-427-5334
503 King Farm Blvd #101		
Rockville, MD 20850-6667	





-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://email.esm.psu.edu/pipermail/macosx-tex/attachments/20210628/36c87a41/attachment.htm>


More information about the MacOSX-TeX mailing list