gpt4 book ai didi

latex -\sbox 从环境内部

转载 作者:行者123 更新时间:2023-12-04 06:52:14 25 4
gpt4 key购买 nike

我正在尝试在环境中保存一些文本以供以后使用。我能想到的最小的测试用例是这个。 sbox 中保存的文本环境关闭后不可用。我该如何解决这个问题?谢谢。

\documentclass{article}
\begin{document}
\newsavebox{\somebox}
\begin{itemize}
\item hello1
\item hello1 \sbox{\somebox}{Some text}
\end{itemize}
This should show something, but does not: "\usebox{\somebox}"
\end{document}

最佳答案

您在这里遇到的是范围界定问题。在 (La)TeX 中,您可以使用 { ... } 引入作用域, \bgroup ... \egroup , 或 \begingroup ... \endgroup .前两者大致相同,为\bgroup\egroup\let\bgroup{ 定义和 \let\egroup} ;最后一个略有不同。但是范围属性是相同的:在这些范围内创建或修改的任何命令、boxen 等在外部是不可见的。在 LaTeX 中,所有环境 \begin{env} ... \end{env}将它们的内容隐式包装在 \begingroup ... \endgroup 中.这意味着您的 \sbox{\somebox}{Some text}修改仅在 \end{itemize} 之前可见;之后,修改被撤销。要解决此问题,请在前面添加任何命令,例如 \newcommand , \def , \newsavebox , \sbox等,与 \global ,这强制定义发生在全局范围内并且在任何地方都可见。

另外,要在 (La)TeX 中使用引号,请写 ``double quoted'' , ``double quoted" , 或 `single quoted' ; "字符仅用于关闭引号,而不用于打开引号。把这一切放在一起给你修改后的片段

\documentclass{article}
\begin{document}
\newsavebox{\somebox}
\begin{itemize}
\item hello1
\item hello1 \global\sbox{\somebox}{Some text}
\end{itemize}
This should show something, and in fact does: ``\usebox{\somebox}''
\end{document}

关于latex -\sbox 从环境内部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2952070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com