Tenho o seguinte MWE no qual tenho dois problemas.
O primeiro problema é que não consigo alinhar o texto das minipáginas umas sobre as outras. Eu usei o [t]
identificador, mas não funciona. Eu li outras perguntas semelhantes aqui e todas sugerem que deveria ter funcionado.
A segunda questão é que quero encontrar uma maneira de controlar completamente o espaço vertical entre a régua e o título acima dela. Quero colocá-lo um pouco abaixo do texto, mas \hrule
coloco-o muito perto.
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}
Responder1
minipage
A opção de t
não significaborda superior dominipage
maslinha de base superior dominipage
. A linha de base de a \rule
está abaixo da regra por padrão. Mas você pode mover a regra usando o opcionalelevaçãoargumento.
O motivo da distância entre a régua horizontal e o texto acima é o mesmo e novamente você pode usar o opcionalelevaçãoargumento.
No exemplo a seguir eu uso \ht\strutbox
como (parte de) oelevaçãoargumento. \ht\strutbox
é algo como a altura de uma linha de texto padrão.
\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}
BTW: adicionei \par
antes do final dos grupos de alteração do tamanho da fonte, porque a configuração do parágrafo é feita com as configurações de tamanho da fonte válidas no final do parágrafo.
Uma alternativa seria diminuir os minipage
s para alinhá-los nas bordas superiores, em vez de na linha de base superior. Isso pode ser feito 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}
Neste caso \height
é a altura do conteúdo da caixa. O resultado é:
Uma segunda alternativa seria dar a todos minipage
a mesma linha de 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}
Responder2
As minipáginassãoalinhados no topo em relação à primeira linha de cada um. O que faz com que pareça errado é que a extremidade inferior da linha fica na linha de base. Então você tem que abaixar a linha abaixo da linha de base.
\begin{minipage}[t]{0.05\textwidth}
\raisebox{\dimexpr-\height+1.5ex}{\rule{1pt}{2cm}}
\end{minipage}%
Em relação à segunda pergunta, não tenho certeza se entendi o problema. Mas você pode, por exemplo, controlar a distância entre o texto e a regra horizontal usando
{\large Text here}\\[-2ex]
\rule{\textwidth}{1pt}
Substitua -2ex
a distância necessária.