如何向文件写入命令

如何向文件写入命令

我正在尝试使用以下方法写入辅助文件

\newwrite\tempfile

[...]

\immediate\openout\tempfile=list.tex
\immediate\write\tempfile{Text to write to file}
\immediate\closeout\tempfile

它对纯文本很有效,但我需要它与

\input{ans\thesection-\arabic{enumi}}

我如何将其写入文件而不进行扩展,从而允许我将整个文件插入到文档的末尾(在我的答案部分)。

答案1

最简单的方法是使用\unexpanded需要 e-TeX(即不太旧的 TeX 版本):

\immediate\write\tempfile{\unexpanded{Text to write to file}}

答案2

要么放在\noexpand不应扩展的命令之前,要么\unexpanded{...}放在较长的文本周围。

答案3

您想要的是etex\unexpanded宏。但是,如果您将它与 一起使用\thesection,您确定这确实是您想要的吗?例如,请看以下内容:

\documentclass{article}
\newwrite\tempfile

\begin{document}
\section{First}
\immediate\openout\tempfile=\jobname.tmp
\immediate\write\tempfile{\unexpanded{Section \thesection}}
\immediate\closeout\tempfile

\section{Second}
Something:    
\input{\jobname.tmp}
\end{document}

它会将内容写入\thesection临时文件,然后稍后再将其输入。运行它时,您会看到它输出“Something: Section 2”

这真的是你想要的行为吗?如果你正在写“答案”,那么你大概希望它返回到相应问题所在的正确部分,在这种情况下,你将\thesection在撰写本文时它会扩大。

可能仍有一些内容是你不想要扩展的,但请考虑一下哪些是你想要扩展的,哪些是不想扩展的......

在这个问题中,有更多关于写入文件的信息:将内容写入 aux 文件的基本机制是什么?

答案4

听起来您可能有兴趣使用该answers包,下面是 MWE。

它为您完成所有繁重的工作,并允许您将任何您喜欢的内容放入解决方案文件中,而无需转义任何字符。它有一个不错的切换功能,允许您预览问题旁边的答案(参见我的 MWE)。

\documentclass{article}
\usepackage{answers}                            % solutions to problems done *beautifully*
%\usepackage[nosolutionfiles]{answers}        % use this line if you want to see the answers 
                                                                                        % in the document

\newcounter{problem}
\newenvironment{problem}{\refstepcounter{problem} {\bfseries\theproblem}.\ }{}
% solution files
\Opensolutionfile{shortsolutions}
\Newassociation{shortsolution}{shortSoln}{shortsolutions}

\begin{document}

\begin{problem}
Here's a question
     \begin{shortsolution}
      Here's the answer- can put anything in here: e.g $\frac{1}{3}$
     \end{shortsolution}
\end{problem}

\begin{problem}
Here's another question
     \begin{shortsolution}
      Here's another answer- can put figures, tables- anything you like!
     \end{shortsolution}
\end{problem}
\newpage

% close the solutions files
\Closesolutionfile{shortsolutions}

% input the SHORT solutions file
\IfFileExists{shortsolutions.tex}{\input{shortsolutions.tex}}{}

\end{document}

相关内容