\strip@pt\textwidth 给出“未定义的控制序列”

\strip@pt\textwidth 给出“未定义的控制序列”

我确信这很愚蠢,但我一直在绞尽脑汁反对\strip@pt\textwidth给出“未定义的控制序列”的语句。我正在尝试动态修改 TikZ 宽度中的一些绘图,由于我需要支持 3 个页面宽度,因此涉及大量数学运算。这也让我有机会学习 tikz 和 fp 包,但我需要pt\textwidth语句中删除“”。

我正在使用这个文档定义:\documentclass[journal,letterpaper]{IEEEtran}

如果\strip@pt没有定义,我该如何定义它?

编辑

我的最小例子:

\documentclass[journal,letterpaper]{IEEEtran}
\usepackage{fp}     

\begin{document}
\newcommand\bitfieldwidth{32}  
\newcommand\bitfielddivision{8}
\FPeval{\bitcolumnwidth}{(\strip@pt\textwidth) / \bitfieldwidth}
% the issue is here        ^^^^^^^^^
\begin{tabular}{|c|c|}
\hline
variable & value \\
\hline
textwidth &\the\textwidth \\
\hline
columnwidth &\the\columnwidth \\
\hline
bitcolumnwidth &$\bitcolumnwidth$ \\
\hline
\end{tabular}

\end{document} 

答案1

该宏的名称中\strip@pt包含@,因此它只能在为@字母的上下文中使用,请参阅\makeatletter 和 \makeatother 起什么作用?

\documentclass[journal,letterpaper]{IEEEtran}
\usepackage{fp}

\begin{document}

\newcommand\bitfieldwidth{32}
\newcommand\bitfielddivision{8}
\makeatletter
\FPeval{\bitcolumnwidth}{(\strip@pt\textwidth) / \bitfieldwidth}
\makeatother

\begin{tabular}{|c|c|}
\hline
variable & value \\
\hline
textwidth &\the\textwidth \\
\hline
columnwidth &\the\columnwidth \\
\hline
bitcolumnwidth &$\bitcolumnwidth$ \\
\hline
\end{tabular}

\end{document}

您可以定义一个“用户级别”的宏:

\documentclass[journal,letterpaper]{IEEEtran}
\usepackage{fp}

\makeatletter
\let\strippt\strip@pt
\makeatother

\begin{document}

\newcommand\bitfieldwidth{32}
\newcommand\bitfielddivision{8}
\FPeval{\bitcolumnwidth}{(\strippt\textwidth) / \bitfieldwidth}

\begin{tabular}{|c|c|}
\hline
variable & value \\
\hline
textwidth &\the\textwidth \\
\hline
columnwidth &\the\columnwidth \\
\hline
bitcolumnwidth &$\bitcolumnwidth$ \\
\hline
\end{tabular}

\end{document}

在此处输入图片描述

但是,您不需fp要这样做,只要除以一个整数即可:

\edef\bitcolumnwidth{\the\dimexpr\textwidth/\bitfieldwidth\relax}

将定义\bitcolumnwidth为可以在维度上下文中使用的东西:

\documentclass[journal,letterpaper]{IEEEtran}

\begin{document}

\newcommand\bitfieldwidth{32}
\newcommand\bitfielddivision{8}
\edef\bitcolumnwidth{\the\dimexpr\textwidth/\bitfieldwidth\relax}

\begin{tabular}{|c|c|}
\hline
variable & value \\
\hline
textwidth &\the\textwidth \\
\hline
columnwidth &\the\columnwidth \\
\hline
bitcolumnwidth &\bitcolumnwidth \\
\hline
\end{tabular}

\end{document}

在此处输入图片描述

相关内容