表格延伸至右侧/外边缘

表格延伸至右侧/外边缘

我有一些宽表格(也可能是图形),不适合\textwidth。如果draft文档选项处于活动状态,则右侧会出现黑色边框,表示其宽度超过允许值。

如何计算最大宽度,即从左侧文本开始到右侧边距段落结束的距离?

我怎样才能告诉 LaTeX 尊重表格和图形的最大宽度?

\documentclass[draft]{scrartcl}
\usepackage[showframe]{geometry}
\usepackage{blindtext}

\begin{document}
\blindtext
\marginpar{This is a \texttt{marginpar} with multiple lines}
\blindtext

\begin{table}
\begin{tabular}{p{1.16\textwidth}}    % <-- trial-and-error value
\blindtext
\end{tabular}
\caption{A wide table that shall extend into the right margin,
         but no wider than margin notes or margin paragraphs do.}
\end{table}
\end{document}

答案1

您可以定义一个widetable延伸到外边距的环境。(为了简化,我假设oneside右侧有 marginpar 空间)。这样,包括标题在内的内容就可以延伸到 marginpar 空间中。

然后您可以使用@{}来抑制列填充并:

在此处输入图片描述

\documentclass[draft]{scrartcl}
\usepackage[showframe]{geometry}
\usepackage{blindtext}

\makeatletter
\newenvironment{widetable}
{\table
 \advance\hsize\marginparwidth
 \advance\hsize\marginparsep
 \@parboxrestore}
{\endtable}
\makeatother

\begin{document}
\blindtext
\marginpar{This is a \texttt{marginpar} with multiple lines}
\blindtext

\begin{widetable}
\begin{tabular}{@{}p{\linewidth}@{}}    % <-- trial-and-error value
\blindtext
\end{tabular}
\caption{A wide table that shall extend into the right margin,
         but no wider than margin notes or margin paragraphs do.}
\end{widetable}
\end{document}

答案2

好吧,你永远不应该让任何东西像这样渗入边距。但是,你可以通过添加以下内容来解决问题\hspace*

\documentclass[draft]{scrartcl}
\usepackage[showframe]{geometry}
\usepackage{blindtext}

\begin{document}
\blindtext
\marginpar{This is a \texttt{marginpar} with multiple lines}
\blindtext

\begin{table}
\begin{tabular}{p{1.16\textwidth}}    % <-- trial-and-error value
\blindtext
\end{tabular}\hspace*{-0.5\textwidth}
\caption{A wide table that shall extend into the right margin,
         but no wider than margin notes or margin paragraphs do.}
\end{table}
\end{document}

该值0.5\textwidth应该是安全的,因为您的边距可能不会大于文本宽度的一半。但是,每次您在最终文档中使用此值时,薛定谔都会杀死一只小猫(立即,无需等待,也没有概率)。

相关内容