
Как с помощью LaTeX центрировать текст прямо под заголовком, выровненным по правому краю? Может быть, лучше объяснить с помощью моей попытки на данный момент:
\documentclass{article}
\usepackage[ hmargin = 1in, vmargin = 1in ]{geometry}
\setlength{\parindent}{0pt}
\usepackage{showframe}
\begin{document}
\begin{minipage}{.6\linewidth}\huge Some Heading\end{minipage}
\hfill
\begin{minipage}{.33\linewidth}
\raggedleft {\huge Another Heading} \\
\centering \today
\end{minipage}
\end{document}
Проблема в том, что для этого minipage
требуется аргумент ширины, поэтому единственный способ сделать вторую строку идеально центрированной — это угадать (заранее) точную ширину заголовка после его отображения. Есть ли способ получше?
решение1
\documentclass{article}
\usepackage[ hmargin = 1in, vmargin = 1in ]{geometry}
\setlength{\parindent}{0pt}
\usepackage{showframe}
\begin{document}
\begin{minipage}[t]{.6\linewidth}\huge Some Heading\end{minipage}
\hfill
\begin{tabular}[t]{@{}c@{}}
\huge Another Heading \\
\today
\end{tabular}
\end{document}
решение2
Решение Дэвида tabular
работает отлично, но я часто прибегаю к использованию \makebox
для создания поля нужной ширины и выравнивания текста внутри этого "поля". Ниже я показываю, как c
вводить, r
выпрямлять и l
выпрямлять текст внутри поля, ширина которого равна \widthof{\huge Another Heading}
:
Примечания:
- Макрос
\widthof
изпакетcalc
.
Код:
\documentclass{article}
\usepackage[ hmargin = 1in, vmargin = 1in ]{geometry}
\setlength{\parindent}{0pt}
\usepackage{showframe}
\usepackage{calc}
\begin{document}
\begin{minipage}{.3\linewidth}\huge Some Heading\end{minipage}
\hfill
\begin{minipage}{.4\linewidth}
\raggedleft {\huge Another Heading} \\
\makebox[\widthof{\huge Another Heading}][c]{\today} \\
\makebox[\widthof{\huge Another Heading}][r]{\today} \\
\makebox[\widthof{\huge Another Heading}][l]{\today}
\end{minipage}
\end{document}
решение3
Складывайте это.
\documentclass{article}
\usepackage[ hmargin = 1in, vmargin = 1in ]{geometry}
\setlength{\parindent}{0pt}
\usepackage{showframe}
\usepackage{stackengine}
\begin{document}
{\huge Some Heading}
\hfill
\stackunder[2pt]{\huge Another Heading}{\today}
\end{document}