如何输入 dimexpr?

如何输入 dimexpr?

我想调试以下代码中的一些宽度问题,但\typeout打印的是命令而不是实际值:

\documentclass{article}
\usepackage[margin=3cm]{geometry}
\usepackage{array}
\usepackage{booktabs}
\usepackage[table]{xcolor}
\usepackage{tabularx}

\begin{document}

\newenvironment{messageWithProperties}[1]
    {
      \noindent
      \tabularx{\textwidth}{>{\bfseries}lX}
          \toprule
          \midrule
          header &
              $\left\{\tabular{>{\bfseries}l l >{\sffamily}p{\dimexpr\textwidth-12\tabcolsep-5\fboxsep-7.5cm\relax}}
                  \toprule
                  id & integer & desc \\
                  key & integer & desc \\
                  \bottomrule
              \endtabular\right\}$ \\[4ex]
          \midrule
          #1 &
              $\left\{\tabular{>{\bfseries}l l >{\sffamily}p{\dimexpr\textwidth-12\tabcolsep-5\fboxsep-7.5cm\relax}}
                  \toprule
                  \typeout{Debug \dimexpr\textwidth-3\tabcolsep-5\fboxsep-7.5cm\relax}
    }
    {
                  \bottomrule
              \endtabular\right\}$ \\[4ex]
          \midrule
          \bottomrule
      \endtabularx
    }

\begin{messageWithProperties}{someVeryLongName}
    userId & string & desc \\
    propertyName & veryLongStringType & a very very long description of the field \\
\end{messageWithProperties}

\end{document}

(代码来自“如何限制嵌套表格的宽度?“ 问题)

答案1

a\dimexpr就像一个匿名的 dimen 寄存器,并且应用相同的命令,因此\the将给出其打印形式

\the\dimexpr\textwidth-3\tabcolsep-5\fboxsep-7.5cm\relax

相关内容