将内部 Tex 变量打印到日志文件

将内部 Tex 变量打印到日志文件

考虑下面的 MWE。我基于以下内容创建了它:http://www.tex.ac.uk/FAQ-printvar.html。我在这里想要做的是将内部变量()的值打印到totalleftmarginmm 中的日志中(或文档本身)。

以下代码片段无法编译。如果我将其更改为,\message{\the\@totalleftmargin}则输出为 2 次:1000\@m {}totalleftmargin这不是实际值(或者是 1000,但并没有增加)??

我希望这个值会增加(因为我们缩进)。我如何输出内部 tex 变量?

梅威瑟:

\documentclass{article}  
\usepackage{printlen}
\uselengthunit{mm}
\begin{document}
Test \message{Normal totalleftmargin is:} \printlength{\@totalleftmargin}
\begin{itemize}
\item Test2 \message{In this list the totalleftmargin is:} \printlength{\@totalleftmargin}
\end{itemize} 
\end{document}

答案1

\@totalleftmargin@其名称中包含以下内容\makatletter

\documentclass{article}
\usepackage{printlen}
\uselengthunit{mm}
\begin{document}
\makeatletter
Test \message{Normal totalleftmargin is:} \printlength{\@totalleftmargin}
\begin{itemize}
\item Test2 \message{In this list the totalleftmargin is:} \printlength{\@totall
\end{itemize}
\makeatother
\end{document}

结果

\message或的可扩展解决方案\typeout

\documentclass{article}

\makeatletter
\newcommand*{\printlength}[1]{%
  \strip@pt\dimexpr2.54\dimexpr(#1)/72\relax\relax\space mm%
}
\makeatother

\begin{document}
\makeatletter
Test \typeout{Normal totalleftmargin is: \printlength{\@totalleftmargin}}
\begin{itemize}
\item Test2
  \typeout{In this list the totalleftmargin is:
  \printlength{\@totalleftmargin}}
\end{itemize}
\end{document}

控制台和.log文件中的结果:

Normal totalleftmargin is: 0 mm
...
In this list the totalleftmargin is: 0.88196 mm

(由于排版内容不同,所以值也不同。)

相关内容