scrlttr2 とジオメトリ: firsthead が右にシフトしました

scrlttr2 とジオメトリ: firsthead が右にシフトしました

私は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

さて、あなたのコードには 2 つの問題があり、長さの定義が欠落しています。

  1. 代わりに、コマンド\firstheadを使用してください\setkomavar{firsthead}{(これについては警告が表示されたはずです)。このコマンドは非推奨です。
  2. テキストを行の右端に正確に配置するために、@{}表の先頭に次のコードを追加する必要があります。\begin{tabular}{ll@{}}
  3. で を\@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}

結果:

結果のスクリーンショット

関係のない部分を削除し、変数に最新の構文を使用するためにいくつかの変更を加えたことに注意してください。最新の KOMA スクリプト バージョン (現在は 3.26) では、代わりにfirstheadを使用できます。\setplength\@setplength

関連情報