[PATCH 2/2] qqz: cross-link questions and answers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is useful even if you _are_ actually solving the quick quizzes.
Some ebook readers in particular support hyperlinks but have very
limited support for PDF search and back/forward.

The implementation is easy; it works by adding QQ.chapter.quiz labels
at the question and QQA.chapter.quiz at the answer.  The only
interesting point is using \edef and \getrefnumber to extract the
chapter number for answers, in a way that can be passed to
\hyperref.  An alternative would be to just use consecutive numbering
for the QQ and QQA labels, but I find this a little more elegant.

Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
---
 qqz.sty | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/qqz.sty b/qqz.sty
index ca70c56..7270468 100644
--- a/qqz.sty
+++ b/qqz.sty
@@ -18,13 +18,15 @@
 \newcounter{quickquizctr}
 \newcommand{\QuickQuizAnswerChapter}{\textbf{Unknown QuickQAC!!!}}
 
+\newcommand{\QuickQHeading}[3]{\label{#1.#3}\hyperref[#2.#3]{\textbf{Quick Quiz #3:}}}
+
 \newcommand{\QuickQuizChapter}[2]{
 	\chapter{#2}
 	\label{#1}
 	\setcounter{quickquizctr}{0}}
 \newcommand{\QuickQuiz}[1]{
 	\stepcounter{quickquizctr}
-	\textbf{Quick Quiz \thechapter.\thequickquizctr:}}
+	\QuickQHeading{QQ}{QQA}{\thechapter.\thequickquizctr}}
 \newcommand{\QuickQuizAnswer}[1]{\rule{7pt}{7pt}}
 \newcommand{\QuickQuizEnd}{}
 
@@ -43,12 +45,12 @@
 %% Internal interfaces generated by scripts.
 
 \newcommand{\QuickQAC}[2]{
-	\renewcommand{\QuickQuizAnswerChapter}{\ref{#1}}
+	\edef\QuickQuizAnswerChapter{\getrefnumber{#1}}
 	\setcounter{quickquizctr}{0}
 	\section{#2}}
 
 \newcommand{\QuickQ}[1]{
 	\stepcounter{quickquizctr} ~ \\ ~ \\
-	\textbf{Quick Quiz \QuickQuizAnswerChapter.\thequickquizctr:} #1 ~ \\ }
+	\QuickQHeading{QQA}{QQ}{\QuickQuizAnswerChapter.\thequickquizctr} #1 ~ \\ }
 
 \newcommand{\QuickA}[1]{\rule{7pt}{7pt} \\ ~ \\ \textbf{Answer:} \\ }
-- 
2.5.0

--
To unsubscribe from this list: send the line "unsubscribe perfbook" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux