我定义了以下宏:
% makes tables more readable
\renewcommand{\arraystretch}{1.1}
\setlength{\tabcolsep}{5pt}
这会在表格中添加额外的制表符空间。但是,在我的报告中,我需要使用默认设置,因为它会弄乱页面的结构(我有一个并排的表格和图形)。我想知道我是否可以在某些表格环境中将制表符空间重置为默认值?
答案1
您可以创建一个命令来存储旧的长度,以便以后可以返回。对于长度,您可以这样做:
\newlength{\myparindent}
\setlength{\myparindent}{\parindent}
\setlength{\parindent}{2em}
%restore original
\setlength{\parindent}{\myparindent}
答案2
将修改宏存储在您可以在需要时调用的宏中:
\documentclass{article}
% Store modifiable content
\newlength{\storetabcolsep}
\AtBeginDocument{%
\let\storearraystretch\arraystretch% \arraystretch
\setlength{\storetabcolsep}{\tabcolsep}% \tabcolsep
}
% Makes tables more readable
\newcommand{\increasetablespace}{%
\renewcommand{\arraystretch}{1.5}%
\setlength{\tabcolsep}{12pt}}%
% Restore stretching defaults
\newcommand{\restoretablespace}{%
\let\arraystretch\storearraystretch% \arraystretch
\setlength{\tabcolsep}{\storetabcolsep}}% \tabcolsep
\begin{document}
\increasetablespace
\begin{tabular}{ccc}
\hline
A & B & C \\
\hline
1 & 2 & 3 \\
\hline
\end{tabular}
\bigskip
\restoretablespace
\begin{tabular}{ccc}
\hline
A & B & C \\
\hline
1 & 2 & 3 \\
\hline
\end{tabular}
\end{document}
其理念是将您可能修改的任何内容存储在文档中\AtBeginDocument
。然后,通过宏调用,\increasetablespace
它们会更新以满足您的扩展需求,并使用\restoretablespace
。