Seite 1 von 1

Eigene Textbox mit Titel

Verfasst: Fr 21. Okt 2011, 18:04
von Madridista
Also ich wollte eine Umgebung definieren, bei der um den kompletten Inhalt eine Rand gezogen wird und oben in der Mitte, dann in einer schwarzen kleinen Box ein Titel steht. Leider scheitere ich schon daran, der Umgebung ein Argument zu übergeben. Ich habe auch schon versucht, dass Bsp. aus dem Wiki zu nutzen, aber ich blicke da nicht wirklich durch, vielleicht kann mir ja jemand helfen?
\documentclass[10pt]{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[german=quotes]{csquotes}

\usepackage{amsmath,amssymb,amsfonts,amsthm}

\usepackage{chemfig}
\usepackage[version=3]{mhchem}

\usepackage{xcolor} 
\usepackage{framed} 

\newcommand*{\tip}[1]{\hspace{-25pt}\colorbox{black}{\textbf{\textcolor{white}{#1}}}$\;$\\} 
\newenvironment{balken}{% minimale Abwandlung von leftbar 
  \def\FrameCommand##1{\textcolor{black}{\vrule width 3pt} \hspace{10pt}##1}% 
  \MakeFramed {\advance\hsize-\width \FrameRestore}}% 
  {\endMakeFramed} 

\newcommand*{\Bez}[1]{\begin{center}%
\colorbox{black}{\textbf{\textcolor{white}{#1}}}%
\end{center}%
}

\newenvironment{bez}[1]{%
	\Bez{#1}\begin{center}\begin{MakeFramed}\Bez{#1}%
	}%
{%
	\end{MakeFramed}\end{center}%
}


\begin{document}
\Bez{Hallo}
\begin{bez}{Hallo2}
Hallo
\end{bez}
\end{document}
Ich wollte den Effekt erzielen, der auch in der "chemfig"-Dokumentation erzeugt wird. Wenn jemand, dass Makro hat, dann würde ich auch das nehmen. Ich habe mich schonmal versucht da durch die tex-Datei zu suchen, komme aber gar nicht damit klar.
In der Hoffnung, dass jemand Rat weiß, Vielen Dank!

PS: Mich würde trotzdem noch interessieren, warum mein Ansatz nicht funktioniert.

Verfasst: Fr 21. Okt 2011, 19:37
von Mechanicus
Hi,

auf CTAN ist die tex-Datei hinterlegt, die dir Zeigt, wie das geht:
http://www.ctan.org/tex-archive/macros/ ... ib/chemfig

Ich habe erst heute eine ähnliche Frage zum Paket mdframed gehabt und wie folgt beantwortet:
\listfiles
\documentclass{article}
%\usepackage{showframe}
\usepackage{amsmath,tikz}
\usepackage[framemethod=default,
skipabove=\topskip,
skipbelow=\topskip,
]{mdframed}

\usepackage{lipsum}
\makeatletter
\newcounter{theo}[section]
\newcommand*\Mytheoremheader[1]{%
  \@afterindentfalse
   {\parindent \z@
         \setlength{\parfillskip}{\z@ plus 1fil}%
         \mdraggedtitle\nobreak%
         \makebox[\linewidth][l]{%
          \hspace*{-1\mdf@innerleftmargin@length}%
          \rlap{\color{white}%
               \hspace*{-1\mdf@middlelinewidth@length}%
               \rule[\mdf@middlelinewidth@length]%
                    {\dimexpr\linewidth+1\mdf@innerleftmargin@length%
                      +\mdf@innerrightmargin@length
                      +2\mdf@middlelinewidth@length\relax}%
                     {\dimexpr\ht\strutbox+.3333em
                        \relax}%
               }%
          \rlap{\color{blue!20}%
                \rule{\dimexpr\linewidth+\mdf@innerleftmargin@length%
                        +\mdf@innerrightmargin@length\relax}%
                     {\mdf@middlelinewidth@length}}%
          \hspace*{-1\mdf@middlelinewidth@length}%
          \tikz[remember picture,baseline]\node[,draw = none, text = black,
                     fill = blue!20,]
                     {\mdf@frametitlefont\strut Theorem~\thetheo#1};\relax%
         }%
    \par\kern.5\baselineskip}%
  \@afterheading}

\newenvironment{theo}[1][]{%
   \let\mdframedtitleenv\Mytheoremheader%
   \stepcounter{theo}%
   \ifstrempty{#1}{\mdfsetup{frametitle={\strut}}}{\mdfsetup{frametitle={:~#1}}}%
   \begin{mdframed}[innertopmargin=0pt,linecolor=blue!20,linewidth=2pt,topline=false,]%
   }{\end{mdframed}}
\makeatother

\begin{document}
\section{First section}
asdsadg
\begin{theo}[asd]
\lipsum
\end{theo}

\begin{theo}
\lipsum
\end{theo}
\end{document}
Marco

Verfasst: Fr 21. Okt 2011, 20:30
von cgnieder
Mein Vorschlag ist auch mit TikZ, obwohl es sicher ohne geht. Ich habe keine längeren Tests gemacht, kann also nicht versprechen, dass es sich immer verhält, wie es soll. Zweimal kompilieren erforderlich.
\documentclass{article}
\usepackage[utf8]{inputenx}
\usepackage{xparse,framed,tikz,lipsum}
\ExplSyntaxOn
\NewDocumentEnvironment{myenv}{m}{
  \noindent\tikz[remember~picture,minimum~size=0]{\node(myenv_hook){};}
  \begin{framed}
}{
  \end{framed}
  \tikz[remember~picture,overlay]{\draw (myenv_hook.base) ++(.5\linewidth,-17pt) node[fill=black,text=white,rounded~corners] {\bfseries#1};}
}
\ExplSyntaxOff
\begin{document}
\begin{myenv}{Titel}
 test
\end{myenv}

\begin{myenv}{Ein längerer Titel}
 \lipsum[1]
\end{myenv}

\end{document}

Verfasst: Sa 22. Okt 2011, 00:08
von Sepp99
Ich habe das in meinem Script [3] mit TIKZ in etwa so gelöst:
\listfiles
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{blindtext}

\usepackage{tikz}
% Abgekupfert von http://www.texample.net/tikz/examples/boxes-with-text-and-math/
% Define box and box title style
\tikzstyle{mybox} = [draw=black, fill=white, very thick,
    rectangle, inner sep=10pt]
\tikzstyle{fancytitle} =[fill=black, text=white]

\begin{document}

\blindtext
\begin{center}
\begin{tikzpicture}
\node [mybox] (box){%
    \begin{minipage}{.9\linewidth}
        \blindtext
    \end{minipage}
};
\node[fancytitle] at (box.north) {\textsf{\textbf{Hier steht der Titel}}};
\end{tikzpicture}%
\end{center}
\blindtext

\end{document}
Ergebnis siehe Anhang.

@madrgista
Wann schließt du denn deine übrigen threads endlich einmal ab?

Sepp.-

Verfasst: Sa 22. Okt 2011, 01:03
von bloodworks
Schon etwas her aber hatten wir schomal (so ähnlich auf jeden Fall)
http://www.golatex.de/box-mit-ueberschr ... t4322.html

Verfasst: Sa 22. Okt 2011, 08:56
von Mechanicus
bloodworks hat geschrieben:Schon etwas her aber hatten wir schomal (so ähnlich auf jeden Fall)
http://www.golatex.de/box-mit-ueberschr ... t4322.html
Das ist leider nicht ganz passend. Die dort angegebene Möglichkeit erlaubt keine Umbrüche.

Marco

Verfasst: Sa 22. Okt 2011, 09:55
von bloodworks
Wie meinst du das mit Umbrüchen? Seitenümbrüche? Das wird wohl nicht gehen ja. Abgesehen davon habe ich ja auch nicht behauptet, dass es perfekt sei... ;)

Verfasst: Sa 22. Okt 2011, 10:09
von Mechanicus
bloodworks hat geschrieben:Wie meinst du das mit Umbrüchen? Seitenümbrüche? Das wird wohl nicht gehen ja. Abgesehen davon habe ich ja auch nicht behauptet, dass es perfekt sein... ;)
Das war auch keinesfalls abwertend gemeint. Ich meinte schon die Seitenumbrüche. Das ist bekanntlich immer die Schwierigkeit.

Gruß
Marco