如何制作一个包含 LaTeX 输出的框?

如何制作一个包含 LaTeX 输出的框?

我正在写一本关于 LaTeX 的简短入门书,我想实现美观的代码示例框。使用此答案: 带有代码框架的源代码列表?我通过在序言中设置来制作带有列表包的框:

\usepackage{listings}
\usepackage{xcolor}
\usepackage{caption}
\DeclareCaptionFont{white}{\color{white}}
\DeclareCaptionFormat{listing}{%
  \parbox{\textwidth}{\colorbox{gray}{\parbox{\textwidth}{#1#2#3}}\vskip-4pt}}
\captionsetup[lstlisting]{format=listing,labelfont=white,textfont=white}
\lstset{frame=lrb,xleftmargin=\fboxsep,xrightmargin=-\fboxsep,language=[LaTeX]{TeX},columns=flexible}
\renewcommand{\lstlistingname}{Example}

例如在文中:

\begin{lstlisting}[label=firstlook,caption=A First Look]
\documentclass{article}
\begin{document}
Hello World!
\end{document}
\end{lstlisting}

其结果是: 盒子好看

看起来不错。我想为输出做一些类似的事情,并想知道如何做到这一点(我的意思是手动编写输出,而不是自动获取我输入的内容并对其进行评估)。看起来一样的框会很酷,让这个框在中间分开并显示“输出面板”或其他东西会更酷。有人知道我该怎么做吗?

答案1

我认为好的包是 showexpl。这个包可以与一起使用listings

我实际上在 tkzexample 包上工作。最后一个版本是在 ctan 上,但我尝试完成文档。您可以展示源代码和结果,但无法突出显示语法。

 \documentclass[]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}  
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{tikz,tkzexample}

\usetikzlibrary{shapes,arrows}     
\colorlet{graphicbackground}{red!10!white}%
\colorlet{codebackground}{blue!10!white}% 
\colorlet{codeonlybackground}{gray!20}   
\begin{document}
\parindent=0pt   

\begin{tkzexample}[small,width=8cm,overhang,frame tex=red,frame code=blue]
    \begin{minipage}{6cm}
      \section{Minipage et  èçéà\&§}
    Ceci est un test pour "minipage"
    \end{minipage}
\end{tkzexample}

\hspace{24pt}
\begin{tkzexample}[small,width=3cm,frame tex=red,frame code=blue]
\begin{tikzpicture}
     \draw (0,0)  node[circle,
                       shade,
                       ball color=Peach,minimum size=2cm]{};
\end{tikzpicture}
\end{tkzexample}

\hspace{24pt}  
\begin{tkzltxexample}[line frame width=2pt]
\begin{tkzexample}[width=4cm,frame tex=red,frame code=blue]
  \tikz[baseline] 
  \node [circle,line width=1ex,draw=blue,fill=blue]
  {\textcolor{white}{\Large{TikZ}}};
\end{tkzexample}
\end{tkzltxexample}

\hspace{24pt}  
\begin{tkzexample}[width=4cm,frame tex=red,frame code=blue]
  \tikz[baseline] 
  \node [circle,line width=1ex,draw=blue,fill=blue] 
  {\textcolor{white}{\Large{TikZ}}};
\end{tkzexample}      

\hspace{24pt}  
\begin{tkzexample}[width=3cm,frame tex=red,frame code=blue]   
   $x \mathbin{\tikz[baseline]  \draw[|->,>=triangle 45]%
  (0pt,.5ex) -- (8ex,.5ex);} f(x)$
\end{tkzexample}   

\end{document}

在此处输入图片描述

答案2

我知道这是一个老问题,但如果有人来到这里,值得一提tcolorbox 最初的目标是:

使用强调和彩色的框来组合显示源代码和编译文本。

接下来是一些小例子:

\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{listings}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}

\begin{document}

\begin{tcblisting}{title=A simple example}
Hello World, this is \LaTeX
\end{tcblisting}

\begin{tcblisting}{title=Side by side, listing outside text}
Hello World, this is \LaTeX
\end{tcblisting}

\begin{tcblisting}{title=Side by side, text side listing}
Hello World, this is \LaTeX
\end{tcblisting}
\end{document}

在此处输入图片描述

一些更复杂的例子:

代码示例,如 TikZ/PGF 手册中所述

如何自动排列未知数目的图像?

tcolorbox 使用 beamers begin{frame} 列出错误

相关内容