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{hyphenat}
\usepackage{tocloft} \usepackage{tocloft}
\usepackage{pict2e} \usepackage{pict2e}
\usepackage{zref-savepos}
% Must be loaded before hyperref. <https://tex.stackexchange.com/a/22014/78411> % 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 % 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{\paragraph}{\notsolarge\bfseries}{\theparagraph}{1em}{\headingandlabel{#1}{\#\sectionlabel}}
\titleformat{\subparagraph}{\slightlylarge\bfseries}{\thesubparagraph}{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{\addparttocontents}[1]{\phantomsection\addcontentsline{toc}{section}{\larger{#1}}}
\newcommand{\phantompart}[2]{\def\sectionlabel{#2} \addparttocontents{#1}\label{#2}} \newcommand{\phantompart}[2]{\def\sectionlabel{#2} \addparttocontents{#1}\label{#2}}
@ -4821,7 +4824,7 @@ according to client implementation.
\sapling{ \sapling{
\introsection \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 \Sapling adds \spendTransfers and \outputTransfers to the transparent and
\joinSplitTransfers present in \Sprout. \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 \todo{Explain the kind of things that can go wrong with linkage between
abstract and concrete protocol. E.g. \crossref{internalh}} 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 All integers in \Zcash-specific encodings are unsigned, have a fixed
bit length, and are encoded in little-endian byte order \emph{unless otherwise 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 } %sapling
\lsubsubsection{\EdSpecificText}{concreteed25519} \label{concretejssig} \extralabel{concretejssig}{\lsubsubsection{\EdSpecificText}{concreteed25519}}
\EdSpecific is a \signatureScheme as specified in \crossref{abstractsig}. \EdSpecific is a \signatureScheme as specified in \crossref{abstractsig}.
It is used to instantiate $\JoinSplitSig$ as described in \crossref{sproutnonmalleability}. It is used to instantiate $\JoinSplitSig$ as described in \crossref{sproutnonmalleability}.
@ -7128,7 +7131,7 @@ using libsodium~v1.0.15.}
\sapling{ \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 $\RedDSA$ is a Schnorr-based \signatureScheme, optionally supporting key re-randomization
as described in \crossref{abstractsigrerand}. It also supports a as described in \crossref{abstractsigrerand}. It also supports a
@ -7389,7 +7392,7 @@ The leading byte of the \shaHash input is $\hexint{B0}$.
\sapling{ \sapling{
\introsection \introsection
\lsubsubsubsection{Windowed Pedersen commitments}{concretewindowedcommit} \label{concretesaplingnotecommit} \extralabel{concretesaplingnotecommit}{\lsubsubsubsection{Windowed Pedersen commitments}{concretewindowedcommit}}
\crossref{concretepedersenhash} defines a \xPedersenHash construction. \crossref{concretepedersenhash} defines a \xPedersenHash construction.
We construct \definingquotedterm{windowed} \defining{\xPedersenCommitments} by reusing that construction, We construct \definingquotedterm{windowed} \defining{\xPedersenCommitments} by reusing that construction,
@ -7437,7 +7440,7 @@ instantiated as follows using $\WindowedPedersenCommitAlg$:
\sapling{ \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 The windowed Pedersen commitments defined in the preceding section are
highly efficient, but they do not support the homomorphic property we highly efficient, but they do not support the homomorphic property we
@ -13367,7 +13370,7 @@ $\NoteCommitRandRepr$, $\ValueCommitRandRepr$, and $\vOldRepr$ as bit sequences
\notsprout{ \notsprout{
\lsection{Batching Optimizations}{batching} \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}. The reference validation algorithm for $\RedDSA$ signatures is defined in \crossref{concretereddsa}.