- switch (2 * LABEL_COUNTER_CHAPTER -
- textclass.maxcounter() + i) {
- case LABEL_COUNTER_CHAPTER:
- s << par->getCounter(i);
- break;
- case LABEL_COUNTER_SECTION:
- s << par->getCounter(i - 1) << '.'
- << par->getCounter(i);
- break;
- case LABEL_COUNTER_SUBSECTION:
- s << par->getCounter(i - 2) << '.'
- << par->getCounter(i - 1) << '.'
- << par->getCounter(i);
- break;
- case LABEL_COUNTER_SUBSUBSECTION:
- s << par->getCounter(i - 3) << '.'
- << par->getCounter(i - 2) << '.'
- << par->getCounter(i - 1) << '.'
- << par->getCounter(i);
-
- break;
- case LABEL_COUNTER_PARAGRAPH:
- s << par->getCounter(i - 4) << '.'
- << par->getCounter(i - 3) << '.'
- << par->getCounter(i - 2) << '.'
- << par->getCounter(i - 1) << '.'
- << par->getCounter(i);
- break;
- case LABEL_COUNTER_SUBPARAGRAPH:
- s << par->getCounter(i - 5) << '.'
- << par->getCounter(i - 4) << '.'
- << par->getCounter(i - 3) << '.'
- << par->getCounter(i - 2) << '.'
- << par->getCounter(i - 1) << '.'
- << par->getCounter(i);
-
- break;
- default:
- // Can this ever be reached? And in the
- // case it is, how can this be correct?
- // (Lgb)
- s << par->getCounter(i) << '.';
- break;
- }
- } else { // appendix
- switch (2 * LABEL_COUNTER_CHAPTER - textclass.maxcounter() + i) {
- case LABEL_COUNTER_CHAPTER:
- if (par->isRightToLeftPar(buf->params))
- s << hebrewCounter(par->getCounter(i));
- else
- s << alphaCounter(par->getCounter(i));
- break;
- case LABEL_COUNTER_SECTION:
- if (par->isRightToLeftPar(buf->params))
- s << hebrewCounter(par->getCounter(i - 1));
- else
- s << alphaCounter(par->getCounter(i - 1));
-
- s << '.'
- << par->getCounter(i);
-
- break;
- case LABEL_COUNTER_SUBSECTION:
- if (par->isRightToLeftPar(buf->params))
- s << hebrewCounter(par->getCounter(i - 2));
- else
- s << alphaCounter(par->getCounter(i - 2));
-
- s << '.'
- << par->getCounter(i-1) << '.'
- << par->getCounter(i);
-
- break;
- case LABEL_COUNTER_SUBSUBSECTION:
- if (par->isRightToLeftPar(buf->params))
- s << hebrewCounter(par->getCounter(i-3));
- else
- s << alphaCounter(par->getCounter(i-3));
-
- s << '.'
- << par->getCounter(i-2) << '.'
- << par->getCounter(i-1) << '.'
- << par->getCounter(i);
-
- break;
- case LABEL_COUNTER_PARAGRAPH:
- if (par->isRightToLeftPar(buf->params))
- s << hebrewCounter(par->getCounter(i-4));
- else
- s << alphaCounter(par->getCounter(i-4));
-
- s << '.'
- << par->getCounter(i-3) << '.'
- << par->getCounter(i-2) << '.'
- << par->getCounter(i-1) << '.'
- << par->getCounter(i);
-
- break;
- case LABEL_COUNTER_SUBPARAGRAPH:
- if (par->isRightToLeftPar(buf->params))
- s << hebrewCounter(par->getCounter(i-5));
- else
- s << alphaCounter(par->getCounter(i-5));
-
- s << '.'
- << par->getCounter(i-4) << '.'
- << par->getCounter(i-3) << '.'
- << par->getCounter(i-2) << '.'
- << par->getCounter(i-1) << '.'
- << par->getCounter(i);
-
- break;
- default:
- // Can this ever be reached? And in the
- // case it is, how can this be correct?
- // (Lgb)
- s << par->getCounter(i) << '.';
-
- break;
- }