2

While writing a letter using newlfm, I tried using the \greettoskipbefore command from page 8 of the manual and I received an "undefined control sequence" error. Looking at the source, it looks like this specific command has not been defined, while every other skip command such as \greettoskipafter has been:

\def\greettoskipafter#1{\setlength{\@greet@to@sk@a}{#1}}% 
\define@key{ov}{greettoskipafter}{\setlength{\@greet@to@sk@a}{#1}}% 

As a LaTeX beginner who does not understand primitive TeX at all, I am at a loss here. Manually adding \greettoskipbefore and recompiling newlfm seems like one option, but that means my document would only compile on my system until the author of this package fixes this issue. Considering that the package has not been updated in 5 years, that might not happen anytime soon; which brings us to my question: is it possible to define \greettoskipbefore in my LaTeX document instead as a temporary hack?

Edit: Here is a MWE

\documentclass[11pt,busletternofrom]{newlfm}

\newlfmP{noLines}
\PhrRegard{RE}
\dateset{\today} 
\namefrom{John Smith}
\newcommand{\companyname}{Netgear}
\newcommand{\shortcompanyname}{Netgear}
\nameto{Darryl Simpson}
\addrto{
\companyname \\
13911 Wireless Way, Suite 200 \\
Richmond, BC V6V 3B9 \\
}
\regarding{Hardware Design Engineer}
\greetto{Dear Mr. Simpson,}
\closeline{Sincerely,}

\begin{document}

\begin{newlfm}

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

\end{newlfm}

\end{document}

MWE

  • It's sad though that even some of the test examples don't compile. this points towards a package that may be unmaintained. It would be best to try and contact the author and see if you get a response. However, keeping updates in your file would be the appropriate thing to do. Alternatively, create your own newlfm-fix.sty (in your local folder that contains all the necessary fixes). – Werner May 9 '14 at 5:31
  • it would not be enough to add to your file the suitable adaptations of the above two lines (with after->before and sk@a->sk@b) because on line 3759 of the dtx file (line 1414 of the cls file) one sees the only use of length \@greet@to@sk@a. It is as part of the \openlfm command and the line {\par\@greet@to\par\nobreak}{}{}{\@greet@to@sk@a} should be converted into {\par\@greet@to\par\nobreak}{}{\@greet@to@sk@b}{\@greet@to@sk@a}. – user4686 May 9 '14 at 6:17
3

I have never really seen the need for using a letter-specific document class, since it's very easy to write a letter within the standard article document class (see Writing an official letter and TeX Cover Letter Doesn't Display “Sincerely, My Name”, for example). That's not the point here though...

The skip \@greet@to@sk@a is meant to place a skip after the "greet to" clause and yes, there is an accompanying \@greet@to@sk@b, presumably to provide a skip before the "greet to" clause. However, there is no formal means provided to set this length. The location of this "missing" skip is at the same location (vertically) as the skip after the "to address" clause (provided by the length \@addr@to@sk@a), which has an available setting macro:

\def\addrtoskipafter#1{\setlength{\@addr@to@sk@a}{#1}}%

As such, it may suffice to set this skip rather than the missing one. Here's a minimal example (taken from TeX Cover Letter Doesn't Display “Sincerely, My Name”) highlighting this effect:

enter image description here

\documentclass[10pt,stdletter]{newlfm}
\usepackage{charter}

\widowpenalty=1000
\clubpenalty=1000

\newsavebox{\Luiuc}
\sbox{\Luiuc}{%
    \parbox[b]{1.75in}{%
        \vspace{0.5in}%
        \includegraphics[height=2\baselineskip]{example-image}%
    }%
}%
\makeletterhead{Uiuc}{\Lheader{\usebox{\Luiuc}}}

\newlfmP{headermarginskip=20pt}
\newlfmP{sigsize=50pt}
\newlfmP{dateskipafter=20pt}
\newlfmP{addrfromphone}
\newlfmP{addrfromemail}
\PhrPhone{Phone}
\PhrEmail{Email}

\lthUiuc

\namefrom{Matthew J.\ Miller}
\addrfrom{%
    439 Coordinated Science Laboratory\\
    1308 West Main Street\\
    Urbana, IL 61801
}
\phonefrom{217-244-6024}
\emailfrom{mjmille2@uiuc.edu}

\addrto{%
Faculty Search Committee\\
Department of Computer Science\\
Clemson University\\
Clemson, SC 29634-0974}

\addrfromskipbefore{-4\baselineskip}% Skip before "From Address" clause
\addrtoskipafter{4\baselineskip}% Skip after "To Address" clause

\greetto{To Whom It May Concern,}
\closeline{Sincerely,}
\begin{document}
\begin{newlfm}

I am writing to apply for the position of assistant
professor in Clemson University's Computer Science Department.  I plan to receive my
Ph.D.\ degree from the University of Illinois at
Urbana-Champaign in Summer of 2006.  My adviser is
Prof.\ Nitin H.\ Vaidya, and my general areas of interest
include wireless and sensor network performance and security.
 Having many friends and family in the area, I would be
most enthused to return to the South permanently by accepting
a position at your institution.

In my graduate work, I focus on the design of
energy-efficient protocols and secure key distribution.
More specifically, I have explored various techniques at
multiple layers of the network stack to effectively reduce
the energy consumption of wireless communication.  In security,
my work was the first to propose leveraging channel diversity
for sensor network key distribution.  My research appears in 
the \textit{IEEE Transactions on Mobile Computing} journal as
well as \textit{Infocom 2006} and \textit{ICDCS 2005},
prestigious conferences in the areas of networking and distributed
systems, respectively.

Enclosed is my curriculum vitae (including a list of
publications), contact information for my references, a research
statement, and a teaching statement.  All of my publications and
presentations are available at:

http://www.crhc.uiuc.edu/$\sim$mjmille2/publications/

Please let me know if there are any other materials
or information that will assist you in processing my application.

Thank you for your consideration.  I look forward to
hearing from you.

\end{newlfm}
\end{document}

As a rather bold alternative, you can create your own newlfm-fix.sty (in your local/texmf folder that contains all the necessary fixes). The updates should be loaded whenever you need to use them (\usepackage{newlfm-fix}), but they would have to be carried with you to other distributions. Once an update to newlfm is issued (...contact the package author, by the way), you can stop including your newlfm-fix.sty.


You can also add space by using \\[<len>], since certain components within newlfm are set with a tabular. For example, using

\regarding{Hardware Design Engineer\\[4\baselineskip]}

inserts 4\normalbaselineskip after "regards":

enter image description here

  • Unfortunately that does not work for my letter (actually a cover letter), because I have a "RE: Job Title" line in between the address and the greeting. – lyxicon May 10 '14 at 6:09
  • @lyxicon: Hmmm. How about you enlighten us with a minimal working example (MWE) that shows your current setup? – Werner May 10 '14 at 6:10
  • I apologize. I edited the question with a MWE. To clarify, I am interested in changing the space between the "RE: Hardware Design Engineer" and the "Dear Mr. Simpson," line. – lyxicon May 10 '14 at 20:14
  • 1
    @lyxicon: You could use something like \regarding{Hardware Design Engineer\\[<len>] where you specify <len>. – Werner May 10 '14 at 20:28

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.