在宏中格式化 matlab 代码

在宏中格式化 matlab 代码

我知道有很多与此主题相关的帖子,特别是这个,但我无法相信在 latex 中做以下非常基本的事情根本不可能:我编写的问题集包括需要包含 matlabe 代码的答案的问题。我有一个名为 answer 的宏:

\ifthenelse{\theanswerkey=1}{}{%
     \def\answer#1{\iffalse#1\fi}}

我将计数器 answerkey 设置为 1 来打印答案键。

然后我想写一些类似的东西

\answer{
if 1 > 0 
    do this
else
    do that
end
}

并在 latex 输出中保留缩进。这似乎完全不可能: \texttt不尊重缩进,verbatim在宏中不起作用,也不行lstlisting。我认为\obeylines也不起作用。

我是否需要切换回 MS Word,或者是否有某种方法可以强制 Latex 执行这件似乎超出其能力范围的非常简单的事情?

如果有人能帮助我恢复对乳胶破碎的热爱,我将不胜感激。

答案1

这个问题还远远没有明确。我假设你想要一个条件,告诉 LaTeX 打印答案或忽略它。

简单。重要的是不是lstlisting在另一个命令的参数中包含环境,但在条件中这是可以的。

\documentclass{article}
\usepackage{listings}

\newif\ifanswers

%\answerstrue % uncomment if you want to print answers

\lstset{
  basicstyle=\ttfamily,
  columns=fullflexible,
}

\begin{document}

Write a program.
\ifanswers
\begin{lstlisting}
a+b=c
d-e=f
\end{lstlisting}
\fi

%%% I set \answerstrue just to show it works

\answerstrue

Write a program.
\ifanswers
\begin{lstlisting}
a+b=c
d-e=f
\end{lstlisting}
\fi

\end{document}

在此处输入图片描述

相关内容