我确信这很愚蠢,但我一直在绞尽脑汁反对\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}