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?

  • Use \acl*{ram} instead of \ac*{ram} in the defintion of bram. – clemens 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. – clemens Aug 27 '13 at 11:54
  • Oh, that's very unfortunate then :-) – user26372 Aug 27 '13 at 12:09
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

  • 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 – clemens Aug 28 '13 at 11:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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