Латексная Буква:По Адресу выровнено по левому краю

StackOverflow https://stackoverflow.com/questions/1809882

  •  05-07-2019
  •  | 
  •  

Вопрос

Это мой первый раз, когда я использую Latex для написания письма.Я использую класс letter.Когда я использую:

\address{100 From Address \\ City, State \\ Pin}

Исходный адрес выравнивается по правому краю.Есть ли какой-нибудь способ, которым я могу выровнять это по левому краю?Формат письма, которое я ищу, следующий:адрес "от" выровнен по левому краю, за ним дата выровнена по левому краю, за ней адрес "Кому" выровнен по левому краю, затем начало и текст и, наконец, подпись выровнена по левому краю.

Мне удалось выровнять подпись по левому краю, используя: \longindentation=0pt, остальные элементы выровнены правильно - это просто адрес from, который выровнен по правому краю.

Это было полезно?

Решение

\makeatletter
\def\opening#1{\ifx\@empty\fromaddress
  \thispagestyle{firstpage}%
    {\raggedleft\@date\par}%
  \else  % home address
    \thispagestyle{empty}%
    {\noindent\let\\\cr\halign{##\hfil\cr\ignorespaces
      \fromaddress \cr\noalign{\kern 2\parskip}%
      \@date\cr}\par}%
  \fi
  \vspace{2\parskip}%
  {\raggedright \toname \\ \toaddress \par}%
  \vspace{2\parskip}%
  #1\par\nobreak}
\makeatother

Другие советы

Ответ заключается в том, чтобы использовать полный стиль печатных букв - все выровнено по левому краю.В LaTeX это block.sty, который вам, вероятно, придется установить.Вы можете найти его здесь http://www.ctan.org/tex-archive/macros/latex/contrib/block .Использование довольно простое:

\usepackage{блок}

Я предполагаю, что "выровнено по левому краю" Вы имеете в виду, что вы хотите, чтобы адресный блок находился на левом поле страницы, поскольку отдельные строки блока выровнены по левому краю, а блок - на правом поле.

Лучший способ настроить стили LaTeX, который я нашел, - это найти в исходном коде LaTeX, в котором определен исходный стиль, скопировать его в файл стиля и использовать скрипку. В этом случае исходным источником является файл letter.cls, и я отследил форматирование адреса путем поиска макроса \ address, который привел к макросу \ fromaddress, а затем к макросу \ открытию. В оригинале это:


\newcommand*{\opening}[1]{\ifx\@empty\fromaddress
  \thispagestyle{firstpage}%
    {\raggedleft\@date\par}%
  \else  % home address
    \thispagestyle{empty}%
    {\raggedleft\begin{tabular}{l@{}}\ignorespaces
      \fromaddress \\*[2\parskip]%
      \@date \end{tabular}\par}%
  \fi
  \vspace{2\parskip}%
  {\raggedright \toname \\ \toaddress \par}%
  \vspace{2\parskip}%
  #1\par\nobreak}

Удаление макроса \ raggedleft перемещает адресный блок вправо, но оставляет некоторое дополнительное расстояние, поэтому я также удалил табличную среду.


\renewcommand*{\opening}[1]{\ifx\@empty\fromaddress
  \thispagestyle{firstpage}%
    {\@date\par}%
  \else  % home address
    \thispagestyle{empty}%
    \ignorespaces%
      \fromaddress \\*[2\parskip]%
      \@date \par%
  \fi
  \vspace{2\parskip}%
  {\raggedright \toname \\ \toaddress \par}%
  \vspace{2\parskip}%
  #1\par\nobreak}

Этот вызов \ renewcommand необходимо поместить в файл стиля .sty, поскольку он использует макросы, содержащие символ @. (Я только что видел ответ Алексея Малистова; другой альтернативой являются макросы \ makeatletter и \ makeatother.) Используйте


\usepackage{myletter}

ввести в новом стиле.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top