ミニページの上部にテキストを配置し、ルールとその上のテキスト間の垂直スペースを制御する

ミニページの上部にテキストを配置し、ルールとその上のテキスト間の垂直スペースを制御する

次の MWE がありますが、2 つの問題があります。

最初の問題は、ミニページのテキストを互いの上部に揃えることができないことです。[t]識別子を使用しましたが、機能しません。ここで他の同様の質問を読みましたが、すべて機能するはずだと示唆しています。

2 番目の問題は、ルーラーとその上のタイトルの間の垂直方向のスペースを完全に制御する方法を見つけたいということです。テキストの少し下に配置したいのですが、\hrule近すぎます。

ここに画像の説明を入力してください

ムウェ

\documentclass{article}

\usepackage{fontspec}

\usepackage[english]{babel}

\begin{document}

\begin{center}

{\LARGE \textbf{Text Here}}

\end{center}

\vspace{1cm}

{\large Text here}

\rule{\textwidth}{1pt}

\vspace{0.5cm}

\begin{minipage}[t]{0.1\textwidth}
\begin{flushright}
Hello
\end{flushright}
\end{minipage}%
%
\hspace{1pt}
%
\begin{minipage}[t]{0.05\textwidth}
\rule{1pt}{2cm}
\end{minipage}%
%
\begin{minipage}[t]{0.80\textwidth}
Hello
\end{minipage}

\end{document}

答え1

minipageのオプションtは意味しません上端のminipageしかし上部のベースラインminipageのベースラインは\ruleデフォルトではルールの下にあります。ただし、オプションの上げる口論。

水平線とテキストの間の距離の理由も同じで、オプションの上げる口論。

次の例で\ht\strutboxは、上げる引数は、\ht\strutbox標準のテキスト行の高さのようなものです。

\documentclass{article}

\usepackage{fontspec}

\usepackage[english]{babel}

\begin{document}

\begin{center}

{\LARGE \textbf{Text Here}\par}

\end{center}

\vspace{1cm}

{\large Text here\par}

\rule[\ht\strutbox]{\textwidth}{1pt}

\vspace{0.5cm}

\begin{minipage}[t]{0.1\textwidth}
\begin{flushright}
Hello
\end{flushright}
\end{minipage}%
%
\hspace{1pt}
%
\begin{minipage}[t]{0.05\textwidth}
\rule[\dimexpr \ht\strutbox-2cm]{1pt}{2cm}
\end{minipage}%
%
\begin{minipage}[t]{0.80\textwidth}
Hello
\end{minipage}

\end{document}

\ruleのオプションのraise引数を使用する

\parところで、段落の設定は段落の最後に有効なフォント サイズ設定で行われるため、フォント サイズを変更するグループの最後に追加しました。

minipage代わりに、 を下げて、上部のベースラインではなく上端に揃えることもできます。これは、次の方法で実行できます\raisebox

\documentclass{article}

\usepackage{fontspec}

\usepackage[english]{babel}

\begin{document}

\begin{center}

{\LARGE \textbf{Text Here}\par}

\end{center}

\vspace{1cm}

{\large Text here\par}

\rule[\ht\strutbox]{\textwidth}{1pt}

\vspace{0.5cm}

\raisebox{\dimexpr\ht\strutbox-\height}{\begin{minipage}[t]{0.1\textwidth}
\raggedright
Hello
\end{minipage}}%
%
\hspace{1pt}
%
\raisebox{\dimexpr\ht\strutbox-\height}{\begin{minipage}[t]{0.05\textwidth}
\raggedright
\rule{1pt}{2cm}
\end{minipage}}%
%
\raisebox{\dimexpr\ht\strutbox-\height}{\begin{minipage}[t]{0.80\textwidth}
Hello
\end{minipage}}

\end{document}

この場合は\heightボックスの内容の高さです。結果は次のようになります。

\raiseboxを使用する

minipage2 番目の代替案は、すべてのに同じトップ ベース ラインを与えることです。

\documentclass{article}

\usepackage{fontspec}

\usepackage[english]{babel}

\begin{document}

\begin{center}

{\LARGE \textbf{Text Here}\par}

\end{center}

\vspace{1cm}

{\large Text here\par}

\rule[\ht\strutbox]{\textwidth}{1pt}

\vspace{0.5cm}

\begin{minipage}[t]{0.1\textwidth}
\vskip -\baselineskip
\raggedright
Hello
\end{minipage}%
%
\hspace{1pt}
%
\begin{minipage}[t]{0.05\textwidth}
\vskip -\baselineskip
\raggedright
\rule{1pt}{2cm}
\end{minipage}%
%
\begin{minipage}[t]{0.80\textwidth}
\vskip -\baselineskip
Hello
\end{minipage}%

\end{document}

\vskip を使用する

答え2

ミニページそれぞれの最初の行に対して上揃えになっています。行の下端がベースライン上にあるため、間違っているように見えます。そのため、行をベースラインより下に下げる必要があります。

\begin{minipage}[t]{0.05\textwidth}
\raisebox{\dimexpr-\height+1.5ex}{\rule{1pt}{2cm}}
\end{minipage}%

2番目の質問に関しては、私はその問題を理解しているかどうかわかりません。しかし、例えば、テキストと水平線の間の距離を制御するには、

{\large Text here}\\[-2ex]
\rule{\textwidth}{1pt}

-2ex必要な距離に応じて交換してください。

関連情報