
Я пишу простое руководство по LaTeX, предназначенное для редакторов студенческой работы. Работа предназначена для студентов-математиков и физиков моего университета, поэтому мы используем LaTeX.
В любом случае, я хочу включить в руководство много примеров, но оно стало немного громоздким. Сейчас я использую следующий формат:
\hspace{20pt}
\begin{framed}
\begin{minipage}{0.8\textwidth}
\begin{verbatim}
Some code
\end{verbatim}
$\quad \Rightarrow$\\
\mbox{}\\
Some code
\end{minipage}
\end{framed}
Строка `` Some code
'' сначала отображается дословно, а затем выносится наружу для полной компиляции, показывая вывод.
Я хотел упростить это до одной команды, что-то вроде
\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}
}
но verbatim
среда все портит. То же самое касается создания новой среды и добавления операторов и \begin{verbatim}
в \end{verbatim}
конце.
Я слышал об альтернативных способах отображения кода, например listings
и других, но они не работали так уж хорошо. И даже если бы они работали, вопрос остается без ответа, на который я не нашел простого ответа, а именно: как определить команду или среду, которая помещает аргументы в среду дословно?
решение1
Здесь показана лишь небольшая часть функций tcolorbox
и 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}