Make duplicate labels work as intended.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
This commit is contained in:
Daira Hopwood 2020-07-04 19:34:16 +01:00
parent a83a64fefc
commit 5504c17ab0
1 changed files with 10 additions and 7 deletions

View File

@ -44,6 +44,7 @@
\usepackage{hyphenat}
\usepackage{tocloft}
\usepackage{pict2e}
\usepackage{zref-savepos}
% Must be loaded before hyperref. <https://tex.stackexchange.com/a/22014/78411>
% noautomatic is used because either latexmk or the Makefile will take care of running
@ -276,6 +277,8 @@
\titleformat{\paragraph}{\notsolarge\bfseries}{\theparagraph}{1em}{\headingandlabel{#1}{\#\sectionlabel}}
\titleformat{\subparagraph}{\slightlylarge\bfseries}{\thesubparagraph}{1em}{\headingandlabel{#1}{\#\sectionlabel}}
\newcommand{\extralabel}[2]{\zsaveposy{before-#1}#2\zsaveposy{after-#1}\vspace{\dimexpr\zposy{after-#1}sp-\zposy{before-#1}sp}\phantomsection\label{#1}\vspace{\dimexpr\zposy{before-#1}sp-\zposy{after-#1}sp}}
\newcommand{\addparttocontents}[1]{\phantomsection\addcontentsline{toc}{section}{\larger{#1}}}
\newcommand{\phantompart}[2]{\def\sectionlabel{#2} \addparttocontents{#1}\label{#2}}
@ -4821,7 +4824,7 @@ according to client implementation.
\sapling{
\introsection
\lsubsection{Balance and Binding Signature (\SaplingText)}{saplingbalance} \label{bindingsig}
\extralabel{bindingsig}{\lsubsection{Balance and Binding Signature (\SaplingText)}{saplingbalance}}
\Sapling adds \spendTransfers and \outputTransfers to the transparent and
\joinSplitTransfers present in \Sprout.
@ -5897,7 +5900,7 @@ and its final status (spent or unspent).
\todo{Explain the kind of things that can go wrong with linkage between
abstract and concrete protocol. E.g. \crossref{internalh}}
\lsubsection{Integers, Bit Sequences, and Endianness}{endian} \label{boxnotation}
\extralabel{boxnotation}{\lsubsection{Integers, Bit Sequences, and Endianness}{endian}}
All integers in \Zcash-specific encodings are unsigned, have a fixed
bit length, and are encoded in little-endian byte order \emph{unless otherwise
@ -7031,7 +7034,7 @@ $\BlakeTwobOf{256}{p, x}$ is defined in \crossref{concreteblake2}.
} %sapling
\lsubsubsection{\EdSpecificText}{concreteed25519} \label{concretejssig}
\extralabel{concretejssig}{\lsubsubsection{\EdSpecificText}{concreteed25519}}
\EdSpecific is a \signatureScheme as specified in \crossref{abstractsig}.
It is used to instantiate $\JoinSplitSig$ as described in \crossref{sproutnonmalleability}.
@ -7128,7 +7131,7 @@ using libsodium~v1.0.15.}
\sapling{
\lsubsubsection{\RedDSAText{} and \RedJubjubText{}}{concretereddsa} \label{concreteredjubjub}
\extralabel{concreteredjubjub}{\lsubsubsection{\RedDSAText{} and \RedJubjubText{}}{concretereddsa}}
$\RedDSA$ is a Schnorr-based \signatureScheme, optionally supporting key re-randomization
as described in \crossref{abstractsigrerand}. It also supports a
@ -7389,7 +7392,7 @@ The leading byte of the \shaHash input is $\hexint{B0}$.
\sapling{
\introsection
\lsubsubsubsection{Windowed Pedersen commitments}{concretewindowedcommit} \label{concretesaplingnotecommit}
\extralabel{concretesaplingnotecommit}{\lsubsubsubsection{Windowed Pedersen commitments}{concretewindowedcommit}}
\crossref{concretepedersenhash} defines a \xPedersenHash construction.
We construct \definingquotedterm{windowed} \defining{\xPedersenCommitments} by reusing that construction,
@ -7437,7 +7440,7 @@ instantiated as follows using $\WindowedPedersenCommitAlg$:
\sapling{
\lsubsubsubsection{Homomorphic Pedersen commitments}{concretehomomorphiccommit} \label{concretevaluecommit}
\extralabel{concretevaluecommit}{\lsubsubsubsection{Homomorphic Pedersen commitments}{concretehomomorphiccommit}}
The windowed Pedersen commitments defined in the preceding section are
highly efficient, but they do not support the homomorphic property we
@ -13367,7 +13370,7 @@ $\NoteCommitRandRepr$, $\ValueCommitRandRepr$, and $\vOldRepr$ as bit sequences
\notsprout{
\lsection{Batching Optimizations}{batching}
\lsubsection{\RedDSAText{} batch validation}{reddsabatchvalidate} \label{reddsabatchverify}
\extralabel{reddsabatchverify}{\lsubsection{\RedDSAText{} batch validation}{reddsabatchvalidate}}
The reference validation algorithm for $\RedDSA$ signatures is defined in \crossref{concretereddsa}.