Richten Sie Text oben auf einer Miniseite aus und steuern Sie den vertikalen Abstand zwischen einer Linie und dem darüber liegenden Text.

Richten Sie Text oben auf einer Miniseite aus und steuern Sie den vertikalen Abstand zwischen einer Linie und dem darüber liegenden Text.

Ich habe das folgende MWE, bei dem ich zwei Probleme habe.

Das erste Problem ist, dass ich den Text der Miniseiten nicht übereinander ausrichten kann. Ich habe den [t]Bezeichner verwendet, aber er funktioniert nicht. Ich habe die anderen ähnlichen Fragen hier gelesen und alle legen nahe, dass es hätte funktionieren sollen.

Das zweite Problem ist, dass ich einen Weg finden möchte, den vertikalen Abstand zwischen dem Lineal und dem darüber liegenden Titel vollständig zu kontrollieren. Ich möchte es etwas unterhalb des Textes platzieren, aber \hrulezu nah dran.

Bildbeschreibung hier eingeben

MWE

\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}

Antwort1

minipageDie Option tbedeutet nichtOberkante desminipageAberobere Grundlinie desminipage. Die Grundlinie von a \ruleliegt standardmäßig unterhalb der Regel. Sie können die Regel jedoch mit dem optionalenerhebenStreit.

Der Grund für den Abstand zwischen der horizontalen Linie und dem Text darüber ist der gleiche und Sie können auch hier die optionaleerhebenStreit.

Im folgenden Beispiel verwende ich \ht\strutboxals (Teil von) demerhebenArgument. \ht\strutboxist so etwas wie die Höhe einer Standardtextzeile.

\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}

mit dem optionalen raise-Argument von \rule

BTW: Ich habe \parvor dem Ende der Schriftgröße Änderungsgruppen eingefügt, da die Absatzeinstellung mit der Schriftgrößeneinstellung erfolgt, die am Ende des Absatzes gültig ist.

Eine Alternative wäre, die minipages abzusenken, um sie an ihren oberen Kanten statt an ihrer oberen Grundlinie auszurichten. Dies kann folgendermaßen erfolgen \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}

In diesem Fall \heightist die Höhe des Inhalts der Box. Das Ergebnis ist:

mit \raisebox

Eine zweite Alternative wäre, allen minipages die gleiche obere Grundlinie zu geben:

\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}

mit \vskip

Antwort2

Die MiniseitenSindoben ausgerichtet in Bezug auf die erste Zeile von jedem. Was es falsch erscheinen lässt, ist, dass das untere Ende der Zeile auf der Grundlinie sitzt. Sie müssen also die Zeile unter die Grundlinie absenken.

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

Was die zweite Frage betrifft, bin ich mir nicht sicher, ob ich das Problem verstehe. Aber Sie können beispielsweise den Abstand zwischen Text und horizontaler Linie steuern, indem Sie

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

Ersetzen Sie -2exden Abstand, den Sie benötigen.

verwandte Informationen