2010-08-02 6 views
5

Esta es una pregunta de seguimiento here. Necesito hacer un cuadro de color gris redondo como se muestra.Cómo hacer que la caja de color gris con tiks

http://img707.imageshack.us/img707/9705/screenshot20100718at913.png

Sobre la base de las respuestas, he intentado algo, pero no tan fructífera. Entonces, vienen otras preguntas.

Se me ocurrió el siguiente comando, pero no funciona. La palabra textual dentro de la minipage no se compila.

 
\newcommand{\graybox}[1]{% 
\noindent\begin{tikzpicture}% 
    \draw node[draw=black,fill=black!10,rounded corners,inner sep=2ex,text width=\mytikzwidth] {% 
    #1 
    };% 
\end{tikzpicture}% 
}% 

%% ERROR - verbatim doesn't work. 
\graybox{% 
\begin{minipage}[b]{\mytikzwidth} 
... 
\begin{verbatim} 
java -cp \$CLOJUREJAR:\$CLASSPATH clojure.lang.Script \$1 
\end{verbatim} 
... 
\end{minipage} 
} 

También probé con el medio ambiente, que tampoco funciona. La minipage no se sienta dentro de la minipage.

 
\newenvironment{grayboxx}% 
{\noindent\begin{tikzpicture}% 
    \draw node[draw=black,fill=black!10,rounded corners,inner 
    sep=2ex,text width=\mytikzwidth] {% 
}% 
{};% 
\end{tikzpicture}% 
} 

Preguntas

  • ¿Qué pasa con el código de látex? ¿Cómo puedo usar el entorno literal con minipage en el tikzpicture?
  • ¿Podría enseñarme una mejor manera de implementar el entorno de caja gris como se muestra en la imagen adjunta?

Este es el código completo, y adjunté el resultado compilado con el resultado compilado.

http://a.imageshack.us/img571/7828/screenshot20100802at148.png

 
\documentclass{article} 

\usepackage{tikz} 

\newlength{\mytikzwidth} 
\setlength{\mytikzwidth}{\textwidth} 
\addtolength{\mytikzwidth}{-4ex} % this 10ex is just rule of thumb. 

\newcommand{\graybox}[1]{% 
\noindent\begin{tikzpicture}% 
    \draw node[draw=black,fill=black!10,rounded corners,inner sep=2ex,text width=\mytikzwidth] {% 
    #1 
    };% 
\end{tikzpicture}% 
}% 

\newenvironment{grayboxx}% 
{\noindent\begin{tikzpicture}% 
    \draw node[draw=black,fill=black!10,rounded corners,inner 
    sep=2ex,text width=\mytikzwidth] {% 
}% 
{};% 
\end{tikzpicture}% 
} 

\begin{document} 

%%%% CASE 1 - OK 
\begin{minipage}[b]{\mytikzwidth} 
clj command is as follows. 

\begin{verbatim} 
java -cp \$CLOJUREJAR:\$CLASSPATH clojure.lang.Script \$1 
\end{verbatim} 

hello.clj needs a namespace (ns) to let the modules know about this code. 
\end{minipage} 

%%%% CASE 2 - not working with verbatim 
\graybox{% 
\begin{minipage}[b]{\mytikzwidth} 
clj command is as follows. 

%\begin{verbatim} 
java -cp \$CLOJUREJAR:\$CLASSPATH clojure.lang.Script \$1 
%\end{verbatim} 

hello.clj needs a namespace (ns) to let the modules know about this code. 
\end{minipage} 
} 

%%%% CASE 3 - not inside the tikz 
\begin{grayboxx} 
\begin{minipage}[b]{\mytikzwidth} 
clj command is as follows. 

%\begin{verbatim} 
java -cp \$CLOJUREJAR:\$CLASSPATH clojure.lang.Script \$1 
%\end{verbatim} 

hello.clj needs a namespace (ns) to let the modules know about this code. 
\end{minipage} 
\end{grayboxx} 

\end{document} 

Respuesta

5

me hizo la misma pregunta a LaTeX Community, y me dio la siguiente respuesta de Juanjo.

http://a.imageshack.us/img821/290/screenshot20100802at706.png

 
\documentclass[a4paper]{article} 

\usepackage{tikz} 
\usepackage{lipsum} 

\newlength{\RoundedBoxWidth} 
\newsavebox{\GrayRoundedBox} 
\newenvironment{GrayBox}[1][\dimexpr\textwidth-4.5ex]% 
    {\setlength{\RoundedBoxWidth}{\dimexpr#1} 
    \begin{lrbox}{\GrayRoundedBox} 
     \begin{minipage}{\RoundedBoxWidth}}% 
    { \end{minipage} 
    \end{lrbox} 
    \begin{center} 
    \begin{tikzpicture}% 
     \draw node[draw=black,fill=black!10,rounded corners,% 
      inner sep=2ex,text width=\RoundedBoxWidth]% 
      {\usebox{\GrayRoundedBox}}; 
    \end{tikzpicture} 
    \end{center}} 

\begin{document} 

\lipsum[1] 

\begin{GrayBox} 
    clj command is as follows. 
    \begin{verbatim} 
    java -cp \$CLOJUREJAR:\$CLASSPATH clojure.lang.Script \$1 
    \end{verbatim} 
    hello.clj needs a namespace (ns) to let the modules 
    know about this code. 
\end{GrayBox} 

\lipsum[2] 

\begin{GrayBox}[0.75\textwidth] 
    clj command is as follows. 
    \begin{verbatim} 
    java -cp \$CLOJUREJAR:\$CLASSPATH 
    clojure.lang.Script \$1 
    \end{verbatim} 
    hello.clj needs a namespace (ns) to let the modules 
    know about this code. 
\end{GrayBox} 

\lipsum[3] 

\end{document} 
Cuestiones relacionadas