我使用带有 STcopy 的spreadtab。由于某种原因,表格左侧有多余的空格。这是一个最小的工作示例:
\documentclass{standalone}
\usepackage{spreadtab}
\begin{document}
\begin{spreadtab}{{tabular}{lll}}
\STcopy{>,v}{pow(1,1)}
& &
\\
& &
\\
& &
\end{spreadtab}
\end{document}
在“独立”文档中,左侧的额外空间很容易看到。当我添加更多行时,额外空间会变得更大。
这是一个错误吗?
答案1
问题与当我调用 \LoadConstants 时,是什么导致我的行向左移动?解决方案还是一样:添加
\makeatletter
\def\FP@pow#1#2#3{% <---- This was unprotected
% #1 macro, which gets the result
% #2 base
% #3 exponent
%
\FP@beginmessage{POW}%
%
{\def\FP@beginmessage##1{}%
\def\FP@endmessage##1{}%
%
\FPifzero{#2}%
\FP@pow@zero{#3}%
\else%
\FPln\FP@tmpd{#2}%
\FPmul\FP@tmpd\FP@tmpd{#3}%
\FPexp\FP@tmp\FP@tmpd%
\fi%
%
\global\let\FP@tmp\FP@tmp%
}%
%
\FP@endmessage{}%
%
\let#1\FP@tmp%
}
\makeatother
前\begin{document}
。
spreadtab
更改后的四行如下:
\documentclass{standalone}
\usepackage{spreadtab}
\makeatletter
\def\FP@pow#1#2#3{% <---- This was unprotected
% #1 macro, which gets the result
% #2 base
% #3 exponent
%
\FP@beginmessage{POW}%
%
{\def\FP@beginmessage##1{}%
\def\FP@endmessage##1{}%
%
\FPifzero{#2}%
\FP@pow@zero{#3}%
\else%
\FPln\FP@tmpd{#2}%
\FPmul\FP@tmpd\FP@tmpd{#3}%
\FPexp\FP@tmp\FP@tmpd%
\fi%
%
\global\let\FP@tmp\FP@tmp%
}%
%
\FP@endmessage{}%
%
\let#1\FP@tmp%
}
\makeatother
\begin{document}
\begin{spreadtab}{{tabular}{lll}}
\STcopy{>,v}{pow(1,1)}
& &
\\
& &
\\
& &
\\
& &
\end{spreadtab}
\end{document}
基本而言,沃森。
如何找到虚假空间的来源?
我\tracingcommands=1 \tracingmacros=1
之前添加了\begin{spreadtabs}
并运行了 LaTeX。然后在日志文件中查找{blank space}
。瞧瞧!
\FP@pow #1#2#3-> \FP@beginmessage {POW}{\def \FP@beginmessage ##1{}\def \FP@end
message ##1{}\FPifzero {#2}\FP@pow@zero {#3}\else \FPln \FP@tmpd {#2}\FPmul \FP
@tmpd \FP@tmpd {#3}\FPexp \FP@tmp \FP@tmpd \fi \global \let \FP@tmp \FP@tmp }\F
P@endmessage {}\let #1\FP@tmp
#1<-\FP@valc
#2<-\FP@vala
#3<-\FP@valb
{blank space }
\FP@beginmessage #1->\ifFPmessages \message {( FP-#1}\fi
#1<-POW
{begin-group character {}
{\def}
{\def}
在扩展的中间添加了空格\FP@pow
。我在哪里看到的?哦,是的!我提到的老问题。问题解决了。