我以为这是一件小事,但我似乎无法理解这一点。
我想创建一个图例,它位于页面的右侧。我围绕minipage
我想放在右侧的环境创建了一个环境,并使用\begin{flushright}
。但是,我无法在这个小页面环境中添加标题,以便它显示在周围环境的顶部。
MWE 只是一个例子。我这里不使用表格。那么如何将我的标题对齐到其他环境(在本例中是表格)的正上方?
梅威瑟:
\documentclass[paper=a4,landscape]{scrartcl}
\usepackage{longtable}
\begin{document}
\begin{minipage}[t]{0.95\textwidth}
Some Title.
\begin{flushright}
\begin{longtable}{ll}
Bla & Bla \\
Blubb & Blubb
\end{longtable}
\end{flushright}
\end{minipage}
\end{document}
答案1
事实上,我会使用一个tabular
环境来放置标题和文本;对于文本,使用一p{<length>}
列(并@{}
删除多余的空间);在里面tabular
,标题可以使用以下方式居中\multicolumn
:
\documentclass{scrartcl}
\usepackage{showframe}
\usepackage{lipsum}
\begin{document}
\hfill\begin{tabular}{@{}p{.5\linewidth}@{}}
\multicolumn{1}{@{}c@{}}{Some title} \\
\lipsum[4]
\end{tabular}
\end{document}
如果要多次使用此结构,则可以定义一个环境;在下面的例子中,新定义的myenv
环境有一个强制参数(标题)和一个可选参数(用于排版文本的宽度,默认值为0.5\linewidth
):
\documentclass{scrartcl}
\usepackage{showframe}
\usepackage{lipsum}
\newenvironment{myenv}[2][.5\linewidth]
{\par\hfill\tabular{@{}p{#1}@{}}
\multicolumn{1}{@{}c@{}}{#2} \\ }
{\endtabular\par}
\begin{document}
\begin{myenv}{Some title}
\lipsum*[4]
\end{myenv}
\begin{myenv}[.8\linewidth]{Some title}
\lipsum*[4]
\end{myenv}
\end{document}
如果标题跨越多行,则可以array
在序言中加载该包:
\usepackage{array}
然后说
\newenvironment{myenv}[2][.5\linewidth]
{\par\hfill\tabular{@{}p{#1}@{}}
\multicolumn{1}{@{}>{\centering}p{#1}@{}}{#2} \\ }
{\endtabular\par}
答案2
您可以使用 100% 纯 LaTeX 以及框和minipage
环境:
例子:
\documentclass{scrartcl}
\usepackage{lipsum}
\begin{document}
\noindent% prevent the box to be shifted a bit to the right
\makebox[\textwidth][r]{% create a box, with it's content aligned to the right
\begin{minipage}{.5\textwidth}% create a content half width
\section{Some title}
\lipsum[4]
\end{minipage}
}
\end{document}
答案3
您可以使用varwidth
来自包裹varwidth
创建一个围绕内容自然宽度的框并使用\hfill
:
笔记:
- 我用的是包裹
showframe
包来显示边距(您可以看到表格与右边距对齐)。 - 第一个
\hfill
确保varwidth
环境与右边距对齐。 - 后续
\hfill
操作用于确保标题居中。 - 添加是
@{}
为了消除表格中最后一列右侧的列填充。
代码:
\documentclass{scrartcl}
\usepackage[paperwidth=9.0cm,showframe]{geometry}
\usepackage{varwidth}
\usepackage{longtable}
\begin{document}
\hfill
\begin{varwidth}{\linewidth}
\hfill\null Some Title.\hfill\null
\begin{longtable}{ll@{}}
Bla & Bla \\
Blubb & Blubb
\end{longtable}
\end{varwidth}
\end{document}