Я использую класс scrlttr2
KOMA-Script с пользовательской версткой страницы через geometry
пакет. К сожалению, это приводит к небольшому горизонтальному сдвигу моего заголовка вправо. Вот MWE:
\documentclass
%---------------------------------------------------------------------------
[fontsize=11pt,%% Font size
%---------------------------------------------------------------------------
% Type area
paper=a4,%% Sheet size
enlargefirstpage=on,%% Enlarge the first page
pagenumber=headright,%% Page number on the top right of the header
%---------------------------------------------------------------------------
% Layout
headsepline=on,%% Line below the page number
parskip=half,%% Space between paragraphs
%---------------------------------------------------------------------------
% Letterhead and address
fromalign=right,%% Positioning of the letterhead
fromphone=on,%% Phone number in the sender's area
fromrule=off,%% Line below the sender's area (aftername, afteraddress)
fromfax=off,%% Fax number
fromemail=off,%% Mail address
fromurl=off,%% Homepage
fromlogo=off,%% Company logo
addrfield=off,%% Adress field for window envelopes
backaddress=off,%% ... with sender address
subject=beforeopening,%% Positioning of the subject
locfield=narrow,%% Additional field for the sender
foldmarks=off,%% Folding mark
numericaldate=off,%% Numerical date
refline=narrow,%% Spread of the reference line in the type area
firstfoot=false,%
%---------------------------------------------------------------------------
% Formatting
draft=false%% Draft mode
]{scrlttr2}
%---------------------------------------------------------------------------
\usepackage{geometry}
\geometry{a4paper,left=16mm,right=20mm,bottom=25mm,top=23mm,marginparsep=0mm,marginparwidth=0mm,showframe}
%---------------------------------------------------------------------------
\begin{document}
%---------------------------------------------------------------------------
\makeatletter
\@setplength{sigbeforevskip}{0em} % space before signature, in case you write bigger than 12pt :-]
\@setplength{refvpos}{20mm}%\useplength{toaddrvpos}}
\@setplength{firstfootvpos}{285mm} % vertical footer position from top of page
\@setplength{firstheadwidth}{\textwidth}
\makeatother
%---------------------------------------------------------------------------
\setkomavar{signature}{Full name}
%---------------------------------------------------------------------------
\firsthead{
\begin{minipage}{0.5\textwidth}
\fontfamily{lmss}\selectfont\footnotesize
\renewcommand{\baselinestretch}{0.8}
\textbf{Name}\\
Address
\end{minipage}%
\begin{minipage}{0.5\textwidth}
\fontfamily{lmss}\selectfont\footnotesize
\renewcommand{\baselinestretch}{0.8}
\flushright
\begin{tabular}{ll}
Phone & xxx\\
Email & xxx
\end{tabular}
\end{minipage}
\rule{\textwidth}{2pt}
}
\setkomavar{date}{\today}
%---------------------------------------------------------------------------
\begin{letter}{}
\opening{Dear x:}
\closing{Sincerely,}
\end{letter}
\end{document}
и скриншот результата:
Как сделать так, чтобы черная линейка совпадала с текстом ниже?
решение1
Ну, в вашем коде есть две проблемы и отсутствует определение длины:
\firsthead
Вместо этого используйте команду\setkomavar{firsthead}{
(я уверен, вы получили предупреждение об этом!?), потому что команда устарела.- Вам необходимо добавить
@{}
к началу таблицы:\begin{tabular}{ll@{}}
чтобы текст располагался точно в правом конце строки. - Вам нужно добавить,
\@setplength{firstheadhpos}{16mm}
потому что вы использовалиleft=16mm
в\geometry
.
Итак, полный код:
\documentclass
%---------------------------------------------------------------------------
[fontsize=11pt,%% Font size
%---------------------------------------------------------------------------
% Type area
paper=a4,%% Sheet size
enlargefirstpage=on,%% Enlarge the first page
pagenumber=headright,%% Page number on the top right of the header
%---------------------------------------------------------------------------
% Layout
headsepline=on,%% Line below the page number
parskip=half,%% Space between paragraphs
%---------------------------------------------------------------------------
% Letterhead and address
fromalign=right,%% Positioning of the letterhead
fromphone=on,%% Phone number in the sender's area
fromrule=off,%% Line below the sender's area (aftername, afteraddress)
fromfax=off,%% Fax number
fromemail=off,%% Mail address
fromurl=off,%% Homepage
fromlogo=off,%% Company logo
addrfield=off,%% Adress field for window envelopes
backaddress=off,%% ... with sender address
subject=beforeopening,%% Positioning of the subject
locfield=narrow,%% Additional field for the sender
foldmarks=off,%% Folding mark
numericaldate=off,%% Numerical date
refline=narrow,%% Spread of the reference line in the type area
firstfoot=false,%
%---------------------------------------------------------------------------
% Formatting
draft=false%% Draft mode
]{scrlttr2}
%---------------------------------------------------------------------------
\usepackage{geometry}
\geometry{a4paper,left=16mm,right=20mm,bottom=25mm,top=23mm,marginparsep=0mm,marginparwidth=0mm,showframe}
%---------------------------------------------------------------------------
\begin{document}
%---------------------------------------------------------------------------
\makeatletter
\@setplength{sigbeforevskip}{0em} % space before signature, in case you write bigger than 12pt :-]
\@setplength{refvpos}{20mm}%\useplength{toaddrvpos}}
\@setplength{firstfootvpos}{285mm} % vertical footer position from top of page
\@setplength{firstheadwidth}{\textwidth}
\@setplength{firstheadhpos}{16mm} % <===================================
\makeatother
%---------------------------------------------------------------------------
\setkomavar{signature}{Full name}
%---------------------------------------------------------------------------
\setkomavar{firsthead}{% <==============================================
\begin{minipage}{0.5\textwidth}
\fontfamily{lmss}\selectfont\footnotesize
\renewcommand{\baselinestretch}{0.8}
\textbf{Name}\\
Address
\end{minipage}%
\begin{minipage}{0.5\textwidth}
\fontfamily{lmss}\selectfont\footnotesize
\renewcommand{\baselinestretch}{0.8}
\flushright
\begin{tabular}{ll@{}} % <==============================================
Phone & xxx\\
Email & xxx
\end{tabular}
\end{minipage}
\rule{\textwidth}{2pt}%
}
\setkomavar{date}{\today}
%---------------------------------------------------------------------------
\begin{letter}{}
\opening{Dear x:}
\closing{Sincerely,}
\end{letter}
\end{document}
вы получаете результат:
решение2
По умолчанию псевдодлина firstheadhpos
установлена на \maxdimen
. Это приводит к горизонтальному центрированию заголовка по отношению к бумаге. Но ваша текстовая область не горизонтально центрирована по отношению к странице. Поэтому вам нужно установить псевдодлину firstheadhpos
на то же значение, что и левое поле.
\documentclass[
fontsize=11pt,
parskip=half,
addrfield=off,
firstfoot=false
]{scrlttr2}
\usepackage{geometry}
\newcommand*\myleftmargin{16mm}% <- added
\geometry{
left=\myleftmargin,% <- changed
right=20mm,bottom=25mm,top=23mm,marginparsep=0mm,marginparwidth=0mm,showframe}
\setplength{sigbeforevskip}{0em}
\setplength{refvpos}{20mm}
\setplength{firstfootvpos}{285mm}
\setplength{firstheadwidth}{\textwidth}
\setplength{firstheadhpos}{\myleftmargin}% <- added
%---------------------------------------------------------------------------
\begin{document}
\setkomavar{signature}{Full name}
\setkomavar{firsthead}{% <- remove spurious space and changed syntax
\begin{minipage}{0.5\textwidth}
\fontfamily{lmss}\selectfont\footnotesize
\renewcommand{\baselinestretch}{0.8}
\textbf{Name}\\
Address
\end{minipage}%
\begin{minipage}{0.5\textwidth}
\fontfamily{lmss}\selectfont\footnotesize
\renewcommand{\baselinestretch}{0.8}
\raggedleft
\begin{tabular}{ll@{}}% <- changed to align the last column with the rule
Phone & xxx\\
Email & xxx
\end{tabular}%
\end{minipage}
\par
\rule{\textwidth}{2pt}%
}
\begin{letter}{}
\opening{Dear x:}
\closing{Sincerely,}
\end{letter}
\end{document}
Результат:
Обратите внимание, что я удалил ненужные вещи и внес некоторые изменения, чтобы использовать обновленный синтаксис для firsthead
переменной. С обновленной версией KOMA-Script (текущая версия 3.26) вы можете использовать \setplength
вместо этого \@setplength
.