2010-08-02 8 views
5

To jest kolejne pytanie zadawane here. Muszę zrobić okrągłe, szare pudełko, jak pokazano.Jak zrobić szaro-okrągłe pudełko za pomocą tiks

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

Na podstawie odpowiedzi, próbowałem coś, ale nie tak owocne. Nadchodzą kolejne pytania.

Podałem następujące polecenie, ale nie działa. Wiersz wewnątrz minipagu nie kompiluje się.

 
\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} 
} 

Próbowałem również z otoczeniem, które również nie działa. Minipaż nie siedzi w minipage.

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

Pytania

  • Co w tym złego kodu LaTeX? Jak mogę używać dosłownego środowiska z minipage w tikzpicture?
  • Czy możesz nauczyć mnie lepszego sposobu na wdrożenie środowiska grayboxed, jak pokazano na załączonym obrazku?

To jest cały kod, a ja załączyłem skompilowany wynik ze skompilowanym wynikiem.

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} 

Odpowiedz

5

I to samo pytanie do LaTeX Community i mam następującą odpowiedź od 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} 
Powiązane problemy