考虑下面的 MWE。我基于以下内容创建了它:http://www.tex.ac.uk/FAQ-printvar.html。我在这里想要做的是将内部变量()的值打印到totalleftmargin
mm 中的日志中(或文档本身)。
以下代码片段无法编译。如果我将其更改为,\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
(由于排版内容不同,所以值也不同。)