2016-04-02 20 views
2

Denklemler için bir kutu oluşturmak için aşağıdaki kodu kullanıyorum. Kutuyu oluşturmak için Tikz kullanır.tikzpicture içinde listeleme

\documentclass[a4paper]{article} 
\usepackage{tikz} 
\usepackage{amsmath} 
\usepackage{amsmath,amssymb}%  pour les maths 
\usepackage{enumitem} 
\usepackage{varwidth} 
\usepackage{listings} 
\usetikzlibrary{calc} 

\newcommand{\mybox}[4][\textwidth-\pgfkeysvalueof{/pgf/inner xsep}-2mm]{% 
\begin{figure}[!h] 
\centering 
\begin{tikzpicture} 
\node[line width=.5mm, rounded corners, draw=#2, inner ysep=10pt, text width=#1, outer sep=0] (one) {\vspace*{15pt}\\\begin{varwidth}{\textwidth}#4\end{varwidth}}; 
\node[text=white,anchor=north east,align=center, minimum height=20pt] (two) at (one.north east) {#3 \hspace*{.5mm}}; 
\path[fill=#2] 
    (one.north west|-two.west) -- 
    ($(two.west)+(-1.5cm,0)$) 
    to[out=0,in=180] (two.south west) -- 
    (two.south east) [rounded corners] -- 
    (one.north east) -- 
    (one.north west) [sharp corners] -- cycle; 
\node[text=white,anchor=north east,align=center, minimum height=20pt, text height=2ex] (three) at (one.north east) {#3 \hspace*{.5mm}}; 
\end{tikzpicture} 
\end{figure} 
} 

\begin{document} 
\mybox{green!70!black}{The Caption}{ 
\begin{enumerate} 
\item Show that\\ 
$\displaystyle D_2f(x,y) = \frac{\partial {}}{\partial{y}} \biggl(\int_0^xg_1 (t,0) \ dt + \int_0^y g_2(x,s) \ ds \biggr)$ 
\item prove that\\ 
$\displaystyle \biggl(\forall x\in\mathbb{R} \biggr)\biggl(\forall y \in \mathbb{R} \biggr) x\neq y\, \text{ and } \, x+y \neq 2 \implies x^{2}-2x \neq y^2-2y$ 
\end{enumerate} 

} 
\end{document} 

ama şimdi ben bir hata var mbox içine girişi koyduğunuzda kutunun içine listeleme koymak istiyorum

\begin{lstlisting}[language=R] 
fun1 <- function(data, data.frame, graph=TRUE, limit=20, ...) { 
[omitted statements] 
if (graph) 
par(pch="*", ...) 
[more omissions] 
} 
\end{lstlisting} 

hata Sen kullanamazsınız

! Argument of \[email protected] has an extra }. 

cevap

0

olduğunu argümanlar içindeki listeler doğrudan. Ya kaçmak ve doğru bir şekilde sözde kod hazırlamak veya başka bir yerde saklamak gerekir. Daha fazla bilgi için, bkz. Bölüm the listing manual 6.1.

saklayın bir kutu içinde listeleme

\begin{document} 
\begin{lrbox}{\mylisting} 
\begin{lstlisting}[language=R] 
fun1 <- function(data, data.frame, graph=TRUE, limit=20, ...) { 
[omitted statements] 
if (graph) 
par(pch="*", ...) 
[more omissions] 
} 
\end{lstlisting} 
\end{lrbox} 

\mybox{green!70!black}{The Caption}{ 
    \usebox\mylisting 
} 
\end{document} 

Mağaza harici bir dosyada listeleme

\lstinputlisting{external_file.R} 

Ekleme hattı ^^J

\begin{lstlisting}[language=R]^^J 
fun1 <- function(data, data.frame, graph=TRUE, limit=20, ...) {^^J 
[omitted statements]^^J 
if (graph)^^J 
par(pch="*", ...)^^J 
[more omissions]^^J 
}^^J 
\end{lstlisting} 
beslemeleri

enter image description here

Not: Bu uzun kod satırı için kutunuzu yeniden boyutlandırmanız gerekecektir.