
Я использую newflm
класс для подготовки письма. Класс, как ни странно, не предоставляет Subject
поля. Кража идеи изэта тема, мне как-то удалось вставить тему, хотя это был совсем не хороший хак. Но как теперь выровнять тему по центру? Есть ли решение без редактирования самого файла класса? Ниже приведен MWE.
\documentclass[10pt,stdletter,addrfromleft]{newlfm}
\usepackage{charter,epstopdf}
\widowpenalty=1000
\clubpenalty=1000
\newlfmP{headermarginskip=20pt}
\newlfmP{sigsize=10pt}
\newlfmP{dateskipafter=20pt}
\newlfmP{addrfromphone}
\newlfmP{addrfromemail}
\PhrPhone{PHONE}
\PhrEmail{EMAIL}
\PhrRegard{SUBJECT}
\namefrom{FROM\_PERSON}
\addrfrom{FROM\_ADDRESS}
\regarding{CENTER\_ALIGN\_SUBJECT\_HERE}
\addrto{TO\_ADDRESS}
\greetto{GREETINGS,}
\closeline{CLOSING}
\begin{document}
\begin{newlfm}
LETTER\_BODY\_HERE
\end{newlfm}
\end{document}
Получается вот такое письмо.
решение1
Если вы предпочитаете не переопределять макросы, установленные в классе, вы можете просто сделать
\regarding{{\centering CENTER\_ALIGN\_SUBJECT\_HERE \\}}
В противном случае вы можете исправить \regarding
макрос:
\makeatletter
\def\regarding#1{\setboolean{@pt@regard}{true}\protect\def\@regard@line{{\centering #1\\}}}%
\makeatother
в вашей преамбуле.
Дополнительная группа {}
вокруг объекта ограничивает действие \centering
этой частью текста и \\
явно завершает строку внутри группы, что необходимо, поскольку \centering
изменяет поведение \\
таким образом, что в конце строки создается правильный интервал для ее центрирования.