7

I'm using the acronym package. Normally, if I enter an acronym like this:

 This is a system with \ac{LTI} propertiesSystem. It can be ...

The pdf shows something like this:

This is a system with linear, time invariant (LTI) properties. It can be ...

But I would like to have something like this:

This is a system with LTI (linear, time invariant) properties. It can be ...

How can I set up the acronym package to put the brackets around the description and not around the acronym?

edit:

I tried now using this self defined command:

\newcommand{\A}[1]{\acs{#1} (\aclu{#1})}

It shows the acronym first and the long version in brackets. But if I use the same acronym later, the full description ist shown again and again. I would prefer, that it is shown just the first time...

  • Welcome to TeX - LaTeX! Do you want this only for the one acronym or for all acronyms? – cgnieder Jan 18 '16 at 13:23
  • See the accepted answer to this question: Print acronym + full name in brackets at the first occurence of \ac{XYZ} – Alenanno Jan 18 '16 at 14:21
  • I want to do this for all acronyms. I used the solution from Alenanno's link. It works perfectly for me. What to do now? May I reply on my own post to answer my question and mark it as solved?? – eDeviser Jan 18 '16 at 14:25
  • @eDeviser No, it's a duplicate. :P Nothing really bad, don't worry. Glad it helped! – Alenanno Jan 18 '16 at 14:35
  • This is not an exact duplicate: the other question wants the change only for some acronyms. Here it would be better to change the definitions of \acfa and \acfpa. – cgnieder Jan 18 '16 at 15:00
6

In order to generally swap acronym and description one can redefine \@acf and \acfa for singular forms and \@acfp and \acfpa for plural forms. Their definitions are

\newcommand*{\acfa}[1]{%
   \texorpdfstring{\protect\@acf{#1}}{\AC@acl{#1} (#1)}}
\newcommand*{\@acf}[1]{%
    \ifAC@footnote
       \acsfont{\AC@acs{#1}}%
       \footnote{\AC@placelabel{#1}\AC@acl{#1}{}}%
    \else
       \acffont{%
          \AC@placelabel{#1}\AC@acl{#1}%
          \nolinebreak[3] %
          \acfsfont{(\acsfont{\AC@acs{#1}})}%
        }%
     \fi
     \ifAC@starred\else\AC@logged{#1}\fi}

and

\newcommand*{\acfpa}[1]{%
   \texorpdfstring{\protect\@acfp{#1}}{\AC@aclp{#1} (\AC@acsp{#1})}}
\newcommand*{\@acfp}[1]{%
   \ifAC@footnote
      \acsfont{\AC@acsp{#1}}%
      \footnote{\AC@placelabel{#1}\AC@aclp{#1}{}}%
   \else
      \acffont{%
         \AC@placelabel{#1}\AC@aclp{#1}%
         \nolinebreak[3] %
         \acfsfont{(\acsfont{\AC@acsp{#1}})}%
         }%
   \fi
   \ifAC@starred\else\AC@logged{#1}\fi}

The change is rather trivial – exchange short (\AC@acs{#1}) and long (\AC@acl{#1}) forms and surround the long form with parentheses rather than the short form:

\documentclass{article}
\usepackage{acronym}

\newacro{CSS}{Cascading Style Sheets}
\newacro{CD}{Compact Disc}

\makeatletter
% singular:
\renewcommand*{\acfa}[1]{%
  \texorpdfstring{\protect\@acf{#1}}{#1 (\AC@acl{#1})}%
}
\renewcommand*{\@acf}[1]{%
  \ifAC@footnote
    \acsfont{\AC@acs{#1}}%
    \footnote{\AC@placelabel{#1}\AC@acl{#1}{}}%
  \else
    \acffont{%
      \AC@placelabel{#1}%
      \acfsfont{\acsfont{\AC@acs{#1}}}%
      \nolinebreak[3] %
      (\AC@acl{#1})%
    }%
  \fi
  \ifAC@starred\else\AC@logged{#1}\fi
}

% plural:
\renewcommand*{\acfpa}[1]{%
  \texorpdfstring{\protect\@acfp{#1}}{\AC@acsp{#1} (\AC@aclp{#1})}
}
\renewcommand*{\@acfp}[1]{%
  \ifAC@footnote
    \acsfont{\AC@acsp{#1}}%
    \footnote{\AC@placelabel{#1}\AC@aclp{#1}{}}%
  \else
    \acffont{%
      \AC@placelabel{#1}%
      \acfsfont{\acsfont{\AC@acsp{#1}}}%
      \nolinebreak[3] %
      (\AC@aclp{#1})%
    }%
  \fi
  \ifAC@starred\else\AC@logged{#1}\fi
}
\makeatother

\begin{document}

\ac{CSS}

\acp{CD}

\end{document}
| improve this answer | |
0

Update for acronym package v1.47 (2020/04/17)

\makeatletter
%% singular:
\renewcommand*{\acfa}[2][\AC@linebreakpenalty]{%
   \texorpdfstring{\protect\@acf[#1]{#2}}{#2 (\AC@acl{#2})}}
\renewcommand*{\@acf}[2][\AC@linebreakpenalty]{%
    \ifAC@footnote
       \acsfont{\AC@acs{#2}}%
       \footnote{\AC@placelabel{#2}\AC@acl{#2}{}}%
    \else
       \acffont{%
          \AC@placelabel{#2}%             
          \acfsfont{\acsfont{\AC@acs{#2}}}%
          \nolinebreak[#1] %
          (\AC@acl{#2})%
        }%
     \fi
     \ifAC@starred\else\AC@logged{#2}\fi}
\makeatother

also as own command \acr for using both (normal \ac and the reverse one):

\makeatletter
\newcommand*{\acr}{\AC@starredfalse\protect\@acr}%
\newcommand{\@acr}[2][\AC@linebreakpenalty]{%
  \ifAC@dua
     \ifAC@starred\acl*{#2}\else\acl{#2}\fi%
  \else
     \expandafter\ifx\csname AC@\AC@prefix#2\endcsname\AC@used%
     \ifAC@starred\acs*{#2}\else\acs{#2}\fi%
   \else
     \acs{#2} (\aclu{#2})%
   \fi
  \fi}
\makeatother
| improve this answer | |

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.