2

For a while now I have been using the acro.sty package by Clemens Niederberger. I really enjoy using this package and its many options. There is just one little thing I could not figure out yet. How do I define acronyms that are part of another acronym?

For instance, there are many different types of RAM, should I always define the full version on its own, or reuse previous definitions? Let's have a look at: DRAM, SRAM, BRAM, and RAM.

\DeclareAcronym{ram}{
  short = RAM ,
  long = Random Access Memory ,
  class = abbrev
}

Of course, I can declare all the other acronyms on their own, such as:

\DeclareAcronym{sram}{
  short = SRAM ,
  long  = Static Random-Acess Memory ,
  class = abbrev
}

Or shall I use something like:

\DeclareAcronym{bram}{
  short = BRAM ,
  long  = Block \ac*{ram},
  class = abbrev
}

When using the latter for the first time, the result is:

Block Random Access Memory (RAM) (BRAM) 

What I would like to have instead is:

Block Random Access Memory (BRAM)

The index is correct, and would look like:

BRAM Block Random Access Memory (RAM)

How do I get first appearance right but keep the index as it is?

4
  • Use \acl*{ram} instead of \ac*{ram} in the defintion of bram.
    – cgnieder
    Commented Aug 27, 2013 at 10:26
  • Thanks for the suggestion. But Then the entry in the index lacks the reference (RAM).
    – user26372
    Commented Aug 27, 2013 at 11:51
  • There is currently no possibility to specify different entries for the list and the long form. I have already thought about implementing this but haven't found the time, yet.
    – cgnieder
    Commented Aug 27, 2013 at 11:54
  • Oh, that's very unfortunate then :-)
    – user26372
    Commented Aug 27, 2013 at 12:09

1 Answer 1

2

This question lead to a new feature for acro :). I've just uploaded version 1.4 to CTAN (but you can already get it on bitbucket). I've added the new acronym property list that allows to specify a different entry as description in the list than the long form. With it you can do the following:

\documentclass{article}
\usepackage{acro}[2013/08/27]

\DeclareAcronym{ram}{
  short = RAM ,
  long  = Random Access Memory ,
  class = abbrev
}
\DeclareAcronym{sram}{
  short = SRAM ,
  long  = Static \acl*{ram} ,
  list  = Static \acf*{ram} ,
  class = abbrev
}
\DeclareAcronym{bram}{
  short = BRAM ,
  long  = Block \acl*{ram} ,
  list  = Block \acf*{ram} ,
  class = abbrev
}

\begin{document}

first:
\ac{ram}, \ac{sram}, \ac{bram}

subsequent:
\ac{ram}, \ac{sram}, \ac{bram}

\printacronyms

\end{document}

This gives:

enter image description here

2
  • Does this possibly break the only-used=false package option?
    – user26372
    Commented Aug 28, 2013 at 8:59
  • @user26372 It shouldn't. If you send me a MWE I'll have a look. My email address is in the manual
    – cgnieder
    Commented Aug 28, 2013 at 11:51

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .