PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Makro



klinsel
11-11-2005, 18:55
Ich habe ein Minimakro erzeugt, mit dem mir gewisse Textzeilen eingerückt werden:

\newcommand{\tab}{\hspace{0.4in}}


Nun hätte ich noch gerne, dass diese Zeile auch noch grau hinterlegt wird.
Will aber nicht immer \begin{shaded}text\end{shaded} um jede Zeile herumbasteln.

Wie könnte ich das machen?


Danke!

rais
11-11-2005, 19:14
Moin moin,
erstmal Herzlich Willkommen! hier im Forum:)

Also ich würde das etwa so machen:


\newcommand{\tabshaded}[1]{\hspace{0.4in}\begin{shaded}#1\end{shaded}}
:
\tabshaded{Text}

wenn's mit der shaded - Umgebung denn so hinhaut;)
MfG,

klinsel
11-11-2005, 19:27
Danke erstmal.

Das funktioniert schon fast perfekt, doch leider ignoriert es nun die Einrückung.

rais
11-11-2005, 19:38
Ahh,
dann vielleicht andersrum:


\newcommand{\tabshaded}[1]{\begin{shaded}\hspace{0.4in}#1\end{shaded}}
:

MfG,

klinsel
11-11-2005, 19:48
Das ist bei mehrzeiligen Texten wieder ein Problem :-)

Aber durch deinen tollen Hinweis, wie man eigentlich einen an ein Makro übergebenen Text verarbeitet, bin ich auf diese Lösung gekommen, mit der ich gut weiter arbeiten kann:

\newcommand{\tab}[1]{\vspace{0.1in}\hspace{0.4in}\colorbox{shadecolor} {\parbox{0.92\textwidth}{#1}}\vspace{0.1in}}


Vielen Danke nochmals!

klinsel
11-11-2005, 20:08
Könnte man eigentlich für einen shaded-Bereich eine Einrückung definieren, so in etwa:

\setlength{shadedindent}{0.4in}

rais
11-11-2005, 20:43
Moin,
sicher doch, bei z.B.


\documentclass[a4paper,12pt]{scrartcl}
\usepackage{color,framed}
\newcommand{\xc}{Hier ist ein wenig Text, damit die Seite nicht total leer bleibt\dots}
\definecolor{shadecolor}{rgb}{0.8,0.8,0.9}
\newlength{\indentshaded}
\newlength{\shadedwidth}
\setlength{\indentshaded}{1.4in}
\setlength{\shadedwidth}{\textwidth}
\addtolength{\shadedwidth}{-\indentshaded}
\addtolength{\shadedwidth}{-1ex}
\newcommand{\shadeindented}[1]{\par\noindent\hspace{\indentshaded}\colorbox{shad ecolor}{\parbox{\shadedwidth}{#1}}\vspace*{0.5ex}}
\begin{document}
\section{Test}
\xc\xc\shadeindented{noch'n Test, diesmal wird die Einrueckung nicht hinterlegt}
\xc\xc

\shadeindented{\xc\xc}
\xc\xc
\end{document}

definiert \indentshaded als Einrückung und paßt sich in der Breite für die colorbox gleich entsprechend an - Du brauchst also nur \indentshaded entsprechend (um)zu definieren.
Was hier jetzt fehlt, sind die vertikalen Abstände (bzw. der Untere ist kürzer als bei Dir), aber die kannst Du ja entsprechend ergänzen;)
MfG,

rais
11-11-2005, 20:55
...und mit einer kleinen Änderung:


\documentclass[a4paper,12pt]{scrartcl}
\usepackage{color,framed}
\newcommand{\xc}{Hier ist ein wenig Text, damit die Seite nicht total leer bleibt\dots}
\definecolor{shadecolor}{rgb}{0.8,0.8,0.9}
\newlength{\indentshaded}
\newlength{\shadedwidth}
\setlength{\indentshaded}{1.4in}
\newcommand{\shadeindented}[1]{%
\setlength{\shadedwidth}{\textwidth}
\addtolength{\shadedwidth}{-\indentshaded}
\addtolength{\shadedwidth}{-1ex}
\par\noindent\hspace{\indentshaded}\colorbox{shade color}%
{\parbox{\shadedwidth}{#1}}\vspace*{0.5ex}
}
\begin{document}
\section{Test}
\xc\xc\shadeindented{noch'n Test, diesmal wird die Einrueckung nicht hinterlegt}
\xc\xc

\shadeindented{\xc\xc}
\xc\xc
\end{document}
bekommst Du es hin, daß Du innerhalb des Dokuments auch die \indentshaded - Länge umdefinieren kannst (wie gehabt mit \setlength) und die Breite der darauffolgenden Box sich entsprechend anpasst.
MfG,

klinsel
11-11-2005, 21:21
Wow, vielen Dank!

klinsel
12-11-2005, 02:07
Ärm, jetzt habe ich doch noch einen kleinen Schönheitsfehler.

Ich verwende auch Passagen wie:
\begin{shaded}
\begin{quote}
\begin{verbatim}
komplizierter Text
\end{verbatim}
\end{quote}
\end{shaded}

Diese Abschnitte zeigen die Hintergrundfarbe über die gesamte \textwidth, wohingegen das Makro
\newcommand{\tab}[1]{\begin{shaded}\begin{quote}\texttt{#1}\end{quote} \end{shaded}}
,das mir jetzt doch sehr gut gefallen hat, links und rechts leicht eingerückt erscheint, was mir persönlich sehr gut gefällt.

wie kann ich die verbatim Abschnitte an diese Einrückungen anpassen, denn irgendwie schauen 2 verschiedene Modi nicht schön aus. Und die doch teilweise sehr komplizierten Texte in den verbatim-Abschnitten mag ich nicht wirklich alle umschreiben...


Vielen Dank im Voraus!

rais
12-11-2005, 17:31
Moin,
pack Dir das Ganze doch in eine Minipage, dann kannst Du der doch vorher die Sollbreite mitteilen und ggf. entsprechend einrücken, also z.B.


\par\centering\begin{minipage}{0.935\textwidth}
\begin{shaded}
\begin{quote}
\begin{verbatim}
komplizierter Text
\end{verbatim}
\end{quote}
\end{shaded}
\end{minipage}

MfG,