# Change to English, the subject of letteracdp

In letteracdp package, you write the letter subject, and when you compile the document, TeXLive will put Oggetto: before it. I would like to change it into Subject:

• Please post a MWE so that other users can help you and do not have to guess which packages/classes you are using. – user31729 Apr 5 '14 at 9:34
• \renewcommand\subjectname{Subject:} in your preamble. You find it in the example at page 11 in the documentation. – egreg Apr 5 '14 at 9:38
• @egreg thank you, you can fill an answer so I can give you the green mark – Germano Massullo Apr 5 '14 at 9:42

The letteracdp class is tailored for Italian. However, it defines some “fixed words” with the usual pattern:

\newcommand*\subjectname     {Oggetto:}
\newcommand*\registeredname  {Raccomandata}
\newcommand*\registeredRRname{\registeredname~A.R.}
\newcommand*\andccname       {e~p.~c.}
\newcommand*\ccname          {P.~c.:}
\newcommand*\enclname        {Allegati:}
\newcommand*\PSname          {P.S.:}
\newcommand*\lettername      {Lettera}

Thus it's just a matter of redefining the appropriate command, in this case

\renewcommand\subjectname{Subject:}

or

if you're using babel.

There is actually a better solution, that I plan to include in the next release of the C.D.P. Bundle (btw, I have been promising such a "next release" since 2010, version 0.34 going back to 2006; but much of the bundle was written fifteen years ago, and by now it needs to be thoroughly redesigned...).

First, add the following package to your local TeX tree, under the name cdpbabel.sty:

%%-------------  Identification  -------------%%

\NeedsTeXFormat{LaTeX2e}[1998/09/02] % LaTeX2e is required!
\ProvidesPackage{cdpbabel}
[2014/07/20 v0.03 (**development**)]
\@ifdefinable\@cdpbabel{\def\@cdpbabel{cdpbabel}}

%%--------------  Initial Code  --------------%%

\def\do#1{\@ifdefinable #1{\let #1\@empty}}
\do\@cdpbabel@perform@redefinitions
\do\@cdpbabel@letter@names
\do\@cdpbabel@artlet@names

%%---------  Declaration of Options  ---------%%

\DeclareOption*{%
\IfFileExists{cdpnames\CurrentOption.ldf}{%
\input{cdpnames\CurrentOption.ldf}%
\edef\do##1{%
\noexpand\@cdpbabel@perform@redefinitions
{%
{##1}%
}%
}%
\expandafter\do \expandafter{\@cdpbabel@letter@names}%
}{}%
\expandafter\do \expandafter{\@cdpbabel@artlet@names}%
}{}%
\PackageInfo{\@cdpbabel}{%
Redefined the names of "C.D.P. Bundle" captions\MessageBreak
for the language \CurrentOption'%
}%
}{%
\PackageError{\@cdpbabel}{%
}{%
Files of the form cdpnames<language>.ldf' are meant
to define the names\MessageBreak
in the language <language> of some captions used by
the "C.D.P. Bundle".\MessageBreak
You requested\MessageBreak
\space\space<language> = \CurrentOption',\MessageBreak
but the corresponding file is missing; therefore,
probably some of these\MessageBreak
captions will not be printed as intended.\MessageBreak
This error affects only the \@cdpbabel\space package,
but not the babel package.\MessageBreak
You may continue:
type \space <return> \space to proceed.%
}%
}%
\PassOptionsToPackage{\CurrentOption}{babel}%
}

%%-----------  Options Processing  -----------%%

\ProcessOptions*

\let \do = \@undefined
\let \@cdpbabel@letter@names = \@undefined
\let \@cdpbabel@artlet@names = \@undefined

\RequirePackage{babel}

%%----------------  Main Code  ---------------%%

\@cdpbabel@perform@redefinitions
\let \@cdpbabel@perform@redefinitions = \@undefined

%%---------------  End of Code  --------------%%

\endinput

Second, add the following language definition file as well (for English), named cdpnamesenglish.ldf:

\ProvidesFile{cdpnamesenglish.ldf}[2014/07/20]

\def\@cdpbabel@letter@names{%
\def\subjectname      {Subject:}%
\def\registeredname   {Registered}%
\def\registeredRRname {\registeredname~R.R.}%
\def\andccname        {cc}%
\def\ccname           {cc:}%
\def\enclname         {Encl:}%
\def\PSname           {P.S.:}%
}
\def\@cdpbabel@artlet@names{%
\def\contentsname     {Contents}%
%   \def\listfigurename   {List of figures}%
%   \def\listtablename    {List of tables}%
%   \def\refname          {References}%
%   \def\indexname        {Index}%
%   \def\figurename       {Figure}%
%   \def\tablename        {Table}%
}

\endinput

Other languages are dealt with in the same way; for example, for Italian you add the following cdpnamesitalian.ldf file:

\ProvidesFile{cdpnamesitalian.ldf}[2014/07/20]

\def\@cdpbabel@letter@names{%
\def\subjectname      {Oggetto:}%
\def\registeredname   {Raccomandata}%
\def\registeredRRname {\registeredname~A.R.}%
\def\andccname        {e~p.~c.}%
\def\ccname           {P.~c.:}%
\def\enclname         {Allegati:}%
\def\PSname           {P.S.:}%
}
\def\@cdpbabel@artlet@names{%
\def\contentsname     {Sommario}%
\def\listfigurename   {Indice delle figure}%
\def\listtablename    {Indice delle tabelle}%
\def\refname          {Testi citati}%
%   \def\indexname        {Indice analitico}%
%   \def\figurename       {Figura}%
%   \def\tablename        {Tabella}%
}

\endinput

(Of course, anybody who wants to undertake the -- very easy -- task of writing a similar file for another language is most welcome.)

\documentclass
[boldsubject,italicsignature,shortindent]
{letteracdp}
\usepackage[T1]{fontenc}
\usepackage[english]{cdpbabel}
% Note that we do **not** load "babel" directly.

Gustavo \textsc{Mezzetti}\\
L.S.U. <<A.~di~Savoia Duca d'Aosta>>\\
Via del Santo, 57\\
}
\signature{Gustavo}

\begin{document}

\begin{letter}[Whom it may concern]{
To whom it may concern
}[
The optional subject of the letter.
]

\opening{Dear Someone,}

this is the text of the letter.  We start another page to show that
\verb|\headtoname| produces \headtoname''.

\newpage

See?

A list of enclosures is added at the end, too, just to demonstrate that
\verb|\enclname| produces \enclname''.

\closing{Best regards.}

\begin{enclosures}
\item  The first document.
\item  The second document.
\item  And so on.
\end{enclosures}

\end{letter}

\end{document}

That's all! Here's the result:

• This solution has now been integrated in the latest version of the C.D.P. Bundle. – GuM May 3 '15 at 1:47