Alinear el texto en la parte superior de una minipágina y controlar el espacio vertical entre una regla y el texto encima de ella

Alinear el texto en la parte superior de una minipágina y controlar el espacio vertical entre una regla y el texto encima de ella

Tengo el siguiente MWE en el que tengo dos problemas.

El primer problema es que no puedo alinear el texto de las minipáginas una encima de la otra. He usado el [t]identificador pero no funciona. He leído otras preguntas similares aquí y todas sugieren que debería haber funcionado.

El segundo problema es que quiero encontrar una manera de controlar completamente el espacio vertical entre la regla y el título que se encuentra encima. Quiero colocarlo un poco debajo del texto pero \hrulelo coloco demasiado cerca.

ingrese la descripción de la imagen aquí

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}

Respuesta1

minipageLa opción tno significaborde superior delminipageperolínea de base superior de laminipage. La línea base de a \ruleestá por debajo de la regla de forma predeterminada. Pero puedes mover la regla usando el opcionalaumentarargumento.

El motivo de la distancia entre la regla horizontal y el texto de arriba es el mismo y nuevamente puedes usar la opción opcional.aumentarargumento.

En el siguiente ejemplo utilizo \ht\strutboxcomo (parte de) elaumentarargumento. \ht\strutboxes algo así como la altura de una línea de texto estándar.

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

usando el argumento de aumento opcional de \rule

Por cierto: agregué \parantes del final los grupos de cambio de tamaño de fuente, porque la configuración del párrafo se realiza con la configuración de tamaño de fuente que es válida al final del párrafo.

Una alternativa sería bajar las minipages para alinearlas en sus bordes superiores en lugar de en su línea base superior. Esto se puede hacer usando \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}

En este caso \heightes la altura del contenido de la caja. El resultado es:

usando \raisebox

Una segunda alternativa sería dar a todos los minipages la misma línea base superior:

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

usando \vskip

Respuesta2

Las minipáginassonalineado superiormente con respecto a la primera línea de cada uno. Lo que hace que parezca incorrecto es que el extremo inferior de la línea se encuentra en la línea de base. Entonces tienes que bajar la línea por debajo de la línea base.

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

Con respecto a la segunda pregunta, no estoy seguro de entender el problema. Pero puedes, por ejemplo, controlar la distancia entre el texto y la regla horizontal usando

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

Reemplace -2exla distancia que necesite.

información relacionada