4

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
  • 1
    \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
4

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*\headtoname      {A:}
\newcommand*\lettername      {Lettera}

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

\renewcommand\subjectname{Subject:}

or

\addto\captionsenglish{\renewcommand\subjectname{Subject:}}

if you're using babel.

1

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\g@addto@macro
        \noexpand\@cdpbabel@perform@redefinitions
        {%
          \noexpand\addto \csname captions\CurrentOption \endcsname
            {##1}%
        }%
    }%
    \@ifclassloaded{letteracdp}{%
      \expandafter\do \expandafter{\@cdpbabel@letter@names}%
    }{}%
    \@ifclassloaded{articoletteracdp}{%
      \expandafter\do \expandafter{\@cdpbabel@artlet@names}%
    }{}%
    \PackageInfo{\@cdpbabel}{%
      Redefined the names of "C.D.P. Bundle" captions\MessageBreak
      for the language `\CurrentOption'%
    }%
  }{%
    \PackageError{\@cdpbabel}{%
      Name def. file `cdpnames\CurrentOption.ldf' not found%
    }{%
      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

%%--------  Package and Class Loading  -------%%

\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\headtoname       {To:}%
}
\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\headtoname       {A:}%
}
\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.)

Now you can use your new cdpbabel package instead of babel:

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

\address{
    Gustavo \textsc{Mezzetti}\\
    L.S.U. <<A.~di~Savoia Duca d'Aosta>>\\
    Via del Santo, 57\\
    I--35123\quad Padova\quad Italy
}
\signature{Gustavo}
\place{Padova}

\pagestyle{headings}



\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:

Printout of the above example

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

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.