
Estou escrevendo um guia simples de LaTeX, destinado a editores de artigos estudantis. O artigo é para estudantes de matemática e física da minha universidade e, por isso, usamos LaTeX.
De qualquer forma, quero incluir muitos exemplos no guia, mas ficou um pouco complicado. Estou usando o seguinte formato agora:
\hspace{20pt}
\begin{framed}
\begin{minipage}{0.8\textwidth}
\begin{verbatim}
Some code
\end{verbatim}
$\quad \Rightarrow$\\
\mbox{}\\
Some code
\end{minipage}
\end{framed}
A linha `` Some code
'' É primeiro mostrada literalmente, e depois colocada fora para que seja compilada completamente, mostrando a saída.
Eu queria simplificar isso em um único comando, algo como
\newcommand{\verandshow}{1}
{
\hspace{20pt}
\begin{framed}
\begin{minipage}{0.8\textwidth}
\begin{verbatim}
#1
\end{verbatim}
$\quad \Rightarrow$\\
\mbox{}\\
#1
\end{minipage}
\end{framed}
}
mas o verbatim
ambiente bagunça tudo. O mesmo vale para criar um novo ambiente e colocar as instruções \begin{verbatim}
e \end{verbatim}
em cada extremidade.
Já ouvi falar de formas alternativas de mostrar código, como listings
e outros, mas não funcionaram muito bem. E mesmo que o fizessem, uma pergunta permanece sem resposta, para a qual não encontrei uma resposta simples, que é: como definir um comando ou ambiente que coloca argumentos em um ambiente literal?
Responder1
Isso mostra apenas uma pequena quantidade dos recursos tcolorbox
e listings
:
\documentclass{article}
\usepackage[most]{tcolorbox}
\begin{document}
\begin{tcblisting}{listing options={numbers=left},colback=green,arc=0mm,auto outer arc}
Some Code with math output:
\[ E = mc^2 \]
\end{tcblisting}
% And now listing only
\begin{tcblisting}{colback=yellow,arc=0mm,auto outer arc,listing only}
Some Code with math output: \[ E = mc^2 \]
\end{tcblisting}
\end{document}