How to define acronyms being part of another acronym? (using acro.sty)

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?

• Use \acl*{ram} instead of \ac*{ram} in the defintion of bram. – cgnieder Aug 27 '13 at 10:26
• Thanks for the suggestion. But Then the entry in the index lacks the reference (RAM). – user26372 Aug 27 '13 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 Aug 27 '13 at 11:54
• Oh, that's very unfortunate then :-) – user26372 Aug 27 '13 at 12:09

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:

• Does this possibly break the only-used=false package option? – user26372 Aug 28 '13 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 Aug 28 '13 at 11:51