
さまざまな長さに設定された下線部分 (\rule{}{}) を行と段落に含めることができる簡単なテキスト ドキュメントを作成したいと思います。下線部分のみを含むドキュメントをコンパイルして印刷すると、手書きまたはタイプライターで記入できる紙のドキュメントが作成されます。
また、タイプライターで入力したように見えるが、実際には LaTeX ソースにタイプライター フォントでテキストを入力して作成された文書も作成したいと考えています。
最小限の動作例では、目的の効果が得られますが、正しい長さを得るために必要な下線付きテキスト \ultt{} に続く下線 \ul{} の長さを決定するために、非現実的な手作業を行う必要があります。
明らかに、セグメントに入力された下線付きのタイプライター フォント テキストの長さを計算し、それを下線セグメントのプリセット長さから減算して下線延長部分の長さを取得する方法が必要です。
最小限の動作するサンプルコードでアイデアが明確になるはずです。
明らかに、既存のパッケージを使用して結果を達成するためのより直接的な方法があれば良いのですが、私は何度か何時間も検索しましたが、何も見つかりませんでした。
\documentclass[10pt, letterpaper]{article}
\usepackage[top=1.00in, bottom=1.00in, left=1.00in, right=1.00in]{geometry}
\usepackage[parfill]{parskip}
\usepackage{ulem} % Set depth of underline
\def\ul#1{\rule[-1.8pt]{#1}{0.4pt}}
\def\ultt#1{\rule[-1.8pt]{0em}{0.4pt}\uline{\texttt{#1}}\rule[-1.8pt]{0em}{0.4pt}}
\begin{document}
\renewcommand{\ULdepth}{1.8pt}
\vspace{3ex}
\noindent\makebox[\linewidth]{\rule{\textwidth}{0.4pt}} % Guide line
\makebox[\textwidth][l]{\rule{3.125in}{0.4pt}\rule{0.25in}{1pt}\rule{3.125in}{0.4pt}} % Guide line
\vspace{1ex}
\makebox[\textwidth][l]{Seller \ul{2.75in}, of \ul{3.13in}}
\vspace{1ex}
\makebox[\textwidth][l]{Seller \ultt{Mr. Gargantua}\ul{1.73in}, of \ultt{France}\ul{2.69in}}
\noindent\makebox[\linewidth]{\rule{\textwidth}{0.4pt}} % Guide line
\end{document}
答え1
これを実現するにはさまざまな方法があります。
タイプライター テキストで コマンドを使用する\rlap
と、\ul
その後に続くコマンドが開始位置から開始され、 が\ul
最初に挿入した長さと同じ長さになります。(タイプライター テキストの下の下線は不要になったため削除します。)
\newcommand{\mytt}[1]{\rlap{\texttt{#1}}}
\makebox[\textwidth][l]{Seller \ul{2.75in}, of \ul{3.13in}}
\vspace{1ex}
\makebox[\textwidth][l]{Seller \mytt{Mr.\ Gargantua}\ul{2.75in}, of \mytt{France}\ul{3.13in}}
( を使用していないので、パッケージや を再定義する\underline
必要はありません。)ulem
\ULdepth
ちなみに、mbox
es が必要なのは parskip の parfill オプションです。これを削除します。これなしでは、次のようにするだけです。
Seller \ul{2.75in}, of \ul{3.13in}
\vspace{1ex}
Seller \mytt{Mr.\ Gargantua}\ul{2.75in}, of \mytt{France}\ul{3.13in}
ただし、個人的には、もっと怠惰なやり方をします。xhfill
パッケージをロードし、行を埋めるために空白を自動的に適切な長さにするコマンドを定義するだけです。
\usepackage{xhfill}
\newcommand{\mytt}[1]{\rlap{\texttt{#1}}}
\newcommand{\myulfill}{\xrfill[-1.8pt]{0.4pt}}
...
Seller \myulfill, of \myulfill
\vspace{1ex}
Seller \mytt{Mr.\ Gargantua}\myulfill, of \mytt{France}\myulfill
そうすれば手動で計算する必要がなくなります何でも。
ただし、これにより空白のサイズが均等になります。これを望まない場合は、試行錯誤せずに空白が行を埋めるのにちょうどよい幅になるように、行の最後の空白にのみこれを使用するとよいかもしれません。
提案されたように、挿入の幅を取得して減算することも可能です。
\newlength{\ullength}
\setlength{\ullength}{2.75in}
\newlength{\fieldwidth}
\settowidth{\fieldwidth}{\texttt{Mr.\ Gargantua}}
\addtolength{\ullength}{-\fieldwidth}
\makebox[\textwidth][l]{Seller \ultt{Mr.\ Gargantua}\ul{\ullength} ...}
しかし、その方法を取ることはお勧めしません。