创建宏来逐字输出命令

创建宏来逐字输出命令

代码

\newcommand{\dosomething}[1]{#1 #1}
\expandafter\verb\expandafter+\dosomething{blub}+

产生逐字输出blub blub

现在我想\myverb为第二行创建一个宏,即我想要

\myverb{blub}

或者

\myverb+blub+

创建逐字输出blub blub

我怎样才能实现这个(在 TeX 或 LaTeX 中)?

后续问题是,如何使用verbatim-environment 而不是 来实现它\verb?这里有一个具体的例子:

\begin{verbatim}
  \begin{evaluatecode}
     a = 1+1
     b = 2^a
     print a,b
  \end{evaluatecode}
\end{verbatim}

但我希望首先扩展环境evaluatecode(在我的情况下,计算被发送到某个软件,返回输出;evaluatecode已经存在),然后逐字显示结果。即,我希望代码

\begin{verbatimevaluate}
     a = 1+1
     b = 2^a
     print a,b
\end{verbatimevaluate}

执行以下操作:首先,的输入verbatimevaluate由-环境处理evaluatecode,其结果位于verbatim-环境中。

答案1

笔记: 你可能赞同这个答案;-)

\documentclass{article}
\makeatletter
\def\myverb 
{%
  \relax\leavevmode\null
  \bgroup 
  \verbatim@font
  \let\do\do@noligs  \verbatim@nolig@list
  \let\do\@makeother \dospecials
  \@vobeyspaces
  \@myverb 
}% 
\def\@myverb #1{\catcode`#1\active
                \lccode`\~`#1%
                \lowercase{\long\def~##1~}{\myverbaction{##1}\egroup}%
                \lowercase{~}}%
\makeatother


% customize as desired:
\newcommand{\myverbaction}[1]{#1 #1}%

\begin{document}\thispagestyle{empty}
\myverb+blub+

\myverb+\if\end&^_~%$   \par\ifcase+

\myverb|some +-$^%_

  multiline

input|
\end{document}

我的动词1


为了更好地渲染多行事物,类似以下内容(否则人们可能会更紧密地遵循自己LaTeXverbatim)。

\def\myverb 
{%
  \relax\leavevmode\null
  \bgroup 
  \verbatim@font
  \let\do\do@noligs  \verbatim@nolig@list
  \let\do\@makeother \dospecials
  \@vobeyspaces
% in case of multi-line input, something like this:
  \obeylines\parskip\baselineskip \parindent\z@
  \@myverb 
}% 

我的多行动词

这使用了\noindent第一幅图像中不存在的 (第一幅图像中的所有内容都缩进,但在转换为 时缩进被修剪了
png

\noindent\myverb|some +-$^%_

  multiline

input|

答案2

注意:请不要投票支持这个答案,因为它实际上是一个很长的评论,不能在评论中出现;它的目的是澄清问题

xparse可以定义逐字吸收其参数的命令:

\documentclass{article}
\usepackage{xparse}

\NewDocumentCommand{\verbsagestr}{v}{%
  \texttt{#1}%
}

\begin{document}

\verbsagestr{Str($1,2_3)}

\end{document}

在此处输入图片描述

您可以通过多种方式来操纵参数,但如果没有任何说明,就很难说出更多。

您问题中的关于的部分verbatim确实不清楚。

相关内容