Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

Background

I'm typesetting a list of conditions for a certain mathematical object. There are three conditions. Later on I wish to provide an equivalent condition for the third. Therefore, it would be nice to have this kind of numbering:

c) condition 1

b) condition 2

c) condition 3

while later on there would be

c') condition 3 (alternative)

My idea was to use a \label{c} for the original condition and write

\item[\ref{c}]\label{c-prime} ...

and it hoping it would be able to refer to c') this way. But \ref{c-prime} results in the number of the definition, not in the enumerate counter.

Solution

I've got a solution, based on a hard-coded starting point for the counter and fixed layout. Using enumitem I can write

\begin{enumerate}[label=\alph*'),ref=(\alph*'),start=3]

and everything works smoothly

Question

There are some drawbacks:

  • I have to hand pick the starting point for the counter, rendering it impossible to automatically change the ordering;
  • the formatting for labels and references is hard-coded, if I change the global format I still have to adapt it locally.

What can I do to make this more flexible?

I am aware this is a rather academic question as it already works, but I'm curious

share|improve this question
1  
A "costumized" counter is one with a costume on? –  Will Robertson Dec 2 '10 at 6:33
2  
No, it's one who has according to Oxford dictionary been "modified to suit a particular individual or task." –  Pieter Dec 2 '10 at 6:49
add comment

1 Answer

up vote 11 down vote accepted

The enumitem package gives you lots more—you can create enumerate-like list environments and set their format globally. Then you can use a counter to save the value of the current item to feed to start later on.

\documentclass{article}
\usepackage{lipsum}% just for blind text
\usepackage{enumitem}
\newlist{conditions}{enumerate}{1}
\newlist{altconditions}{enumerate}{1}
\setlist[conditions]{label=\alph*),ref=(\alph*)}
\setlist[altconditions]{label=\alph*$'$),ref=(\alph*$'$)}
\newcounter{favoritecondition}
\begin{document}

\lipsum[1]

\begin{conditions}
\item condition 1
\item condition 2
\item condition 3\label{c}\setcounter{favoritecondition}{\value{conditionsi}}
\item condition 4
\end{conditions}

\lipsum[2]

An alternative to condition \ref{c} is

\begin{altconditions}[start=\value{favoritecondition}]
\item\label{c-prime} condition 3 alternative 
\end{altconditions}

We leave as an exercise to the reader that \ref{c} and \ref{c-prime} are equivalent.
\end{document}
share|improve this answer
    
Good answer; the key is the line \setcounter{favoritecondition}{\arabic{conditionsi} although I think \value would strictly be better than \arabic here (even though both work). –  Will Robertson Dec 2 '10 at 6:35
    
@Will Robertson: I agree with your opinion but I couldn't get \value to work for me. But I just made the change in my copy and it worked fine, so I must have been doing something else wrong. I'll edit. –  Matthew Leingang Dec 2 '10 at 10:40
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.