ich versuche die ganze Zeit schon eine \section so
umzudefinieren, so dass sie als weiße Schrift auf
einer schwarzen Box (\textwidth) gesetzt wird.
Wie stelle ich das am besten an?
Gruß
Henning
Ich bin beim Suchen auf die TeX-Primitive \let ge-
stoßen, welche mir das \section Makro zwischenspei-
chert (was den Fehlversuch erklärt einfach das Makro
mit \renrecommand umzudefinieren).
Mit \let komme ich zumindest einen Schritt in die
gewünschte Richtung. Folgendes Minimalbeispiel zeigt,
wo ich gerade stehe.
\documentclass[%
a4paper,
11pt]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{graphicx,xcolor}
\renewcommand*{\section}[1]{%
\colorbox{black}{%
\color{white}\let\section #1}}
\begin{document}
\section{Ueberschrift}
\end{document}
Zwei Dinge Sien noch offen:
1) Bei Verwendung von 'Ü' bekomme ich einen encoding
Fehler -- Fehlerausgabe siehe [1]
2) Die \colorbox zieht sich nicht über die \textwidth
Um ein paar Hinweise wäre ich dankbar (auch wenn es da
heißt, "das ist vollkommener Blödsinn, was du da machst")
[1] ./sec.tex:15:Package inputenc Error: Keyboard character used is
undefined(inputenc) in inputencoding `utf8'. \section{Überschrift}
Gruß
Henning
> \documentclass[%
> a4paper,
> 11pt]{scrartcl}
>
> \usepackage[ngerman]{babel}
> \usepackage[utf8]{inputenc}
> \usepackage[T1]{fontenc}
>
> \usepackage{graphicx,xcolor}
>
> \renewcommand*{\section}[1]{%
> \colorbox{black}{%
> \color{white}\let\section #1}}
>
>
> \begin{document}
> \section{Ueberschrift}
>
> \end{document}
>
Uppala .. Bei weiterem Text fällt mir auf, dass erstens
der Text in der gleichen Zeile steht, und zweitens die
\section doch nicht ganz gespeichert wurde ..
(ist wohl noch zu früh, um sich mit sowas zu beschäftigen)
> Uppala .. Bei weiterem Text fällt mir auf, dass erstens der Text in
> der gleichen Zeile steht, und zweitens die \section doch nicht ganz
> gespeichert wurde ..
\colorbox erlaubt keinen Zeilenumbruch.
Ein (wahrscheinlich dreckiger) Hack unter Verwendung des Pakets
'framed', der außerdem nur mit den KOMA-Klassen funktioniert, weil man
da schön über \addtokomafont die Schriftfarbe von \section (inklusive
der Nummerierung) ändern kann.
Ob das in allen Sonderfällen ohne Schmutzeffekte funktioniert, kann ich
nicht garantieren:
% ------------------------------------------------------------
\documentclass{scrartcl}
\usepackage{framed}
\usepackage{xcolor}
\definecolor{shadecolor}{named}{black}
\addtokomafont{section}{\color{white}}
\let\mysection\section
\renewcommand*{\section}[1]{%
\begin{shaded}
\mysection{#1}
\end{shaded}
}
\begin{document}
\section{A very long text inside a section heading to demonstrate the line
breaking capability of the shaded environment}
\end{document}
% ------------------------------------------------------------
--
Uwe
> \documentclass{scrartcl}
> \usepackage{framed}
> \usepackage{xcolor}
> \definecolor{shadecolor}{named}{black}
>
> \addtokomafont{section}{\color{white}}
>
> \let\mysection\section
> \renewcommand*{\section}[1]{%
> \begin{shaded}
> \mysection{#1}
> \end{shaded}
> }
>
> \begin{document}
> \section{A very long text inside a section heading to demonstrate the line
> breaking capability of the shaded environment}
> \end{document}
Das sieht eindeutig besser aus als meine Versuche! Danke!
Der schwarze Frame ist allerdings fast dreimal so hoch,
als ich ihn mir gewünscht hätte. Da kann man doch garan-
tiert noch dran drehen oder?
Gruß
Henning
> Der schwarze Frame ist allerdings fast dreimal so hoch, als ich ihn
> mir gewünscht hätte. Da kann man doch garantiert noch dran drehen
> oder?
Die Doku zu 'framed' steht in der Datei framed.sty in Form von
Kommentaren drin. Es gibt die Länge \FrameSep, die aber nur geringfügig
am Vor- und Nachabstand beteiligt ist. Man müsste wahrscheinlich
\FrameCommand umdefinieren.
Ich würde die Abstände auch nicht zu klein wählen, sieht sonst nicht gut
aus.
Zum Entwerfen eigener Überschriftenstile gibt es übrigens noch mehr
Pakete:
<http://www.ctan.org/tex-archive/help/Catalogue/bytopic.html#title>
--
Uwe
> Zum Entwerfen eigener Überschriftenstile gibt es übrigens noch mehr
> Pakete:
>
> <http://www.ctan.org/tex-archive/help/Catalogue/bytopic.html#title>
>
(ersteres noch zum alten Thema)
Oh, großartig! Dass ich da nicht geschaut habe ist mir
ein Rätsel, . . .
Folgendes Minimalbeispiel macht genau das, was ich wollte:
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{%
sectsty,
xcolor,
}
\makeatletter
\newcommand{\sectbox}[1]{%
\noindent\protect\colorbox{black}{%
\@tempdima=\hsize
\advance\@tempdima by-2\fboxsep
\advance\@tempdima by-2\fboxrule
\protect\parbox{\@tempdima}{%
\smallskip
\raggedright % extra commands here
\color{white}#1 \smallskip
}}}
\makeatother
\sectionfont{\sectbox}
\begin{document}
\section{\"Uberschrift}
Hallo Welt
\end{document}
Mich würde noch die typographische Meinung anderer
interessieren. (Für mich ist es nur eine Übung mit
LaTeX, einfach mal eine vorgegebene Vorlage in ein
latex-file umzusetzen.)
(nun zum Umdefinieren von Makros)
Wenn ich nun solche Umdefinierungen (wie im Minimalbei-
spiel oben zu sehen) vornehmen muss, um bestimmte
Vorgaben zu erreichen, so fehlt es mir noch an Wissen
und Erfahrung, wie/wo/was ich da umdefinieren muss.
LaTeX Makros machen TeX viel anwendungsfreundlicher
als es TeX ist (mit wachsender Erfahrung und Kenntnis-
stand mag sich diese Meinung vielleicht noch ändern).
Obwohl ich hier in der Liste bereits immer Hilfe be-
kommen habe und auch dankbar dafür bin, so möchte ich
mit der Zeit irgendwann auch selbst solche Änderungen
vornehmen können.
Muss ich dafür TeX von der Basis auf lernen? Was muss
ich an Kenntnissen mitbringen, um sowas (vernünftig)
anzustellen? Ich lerne oft an Codeschnipseln, aber ich
finde, dass die Anpassungen von LaTeX Makros sehr schwer
lesbar sind (aber das kann wohl an fehlender Grundkennt-
nisse liegen).
Ich wäre dankbar für ein paar weitere Hinweise von euch.
Buchtipps, Links, Hinweise, Erfahrungen (habt ihr mit
TeX oder LaTeX angefangen?, etc.)
Viele Grüße
Henning
> Muss ich dafür TeX von der Basis auf lernen?
Ich denke ja. Es hängt aber immer davon ab, wie weit du gehen willst.
Eigene Makros auf TeX-Level braucht man sehr selten, weil heute viele
Pakete mit guten Schnittstellen auf Benutzerebene verfügbar sind. Wenn
das nicht mehr reicht für deine Aufgaben, bist du aber sehr schnell auf
TeX-Level angekommen.
> Ich wäre dankbar für ein paar weitere Hinweise von euch. Buchtipps,
> Links, Hinweise, Erfahrungen (habt ihr mit TeX oder LaTeX angefangen?,
> etc.)
Das TeX-Book von Don Knuth. Sehr schön ist auch »TeX by Topic«, dessen
PDF frei zum download steht: <http://www.eijkhout.net/tbt/>.
--
Uwe
> \renewcommand*{\section}[1]{%
> \colorbox{black}{%
> \color{white}\let\section #1}}
Das geht so nicht. Du musst *bevor* du \section umdefinierst, die alte
Definition mit \let in einem anderen Befehl retten:
\let\Orisection\section
\renewcommand\section[1]{....\Orisection ...}
Du solltest aber nicht vergessen, dass \section eigentlich drei
Argumente: ein eventuell folgender Stern, ein optionales und das
"richtige". Es ist daher nicht ganz so einfach, den Befehl zu patchen.
http://www.tex.ac.uk/cgi-bin/texfaq2html?label=patch
--
Ulrike Fischer
> Das TeX-Book von Don Knuth. Sehr schön ist auch »TeX by Topic«, dessen
> PDF frei zum download steht: <http://www.eijkhout.net/tbt/>.
Aktuelle Projektseite: <https://savannah.nongnu.org/projects/texbytopic>
--
Uwe
Super, da steht ja schonmal ne Menge drin. Auf
den ersten Blick als Referenz für TeX Kommandos
unbezahlbar, wie mir scheint :-)
Okay, danke für den Hinweis. Ich werde es im Hinterkopf
behalten. Mit dem Paket sectsty habe ich beide Teile
(also mit und ohne '*') umdefiniert bekommen. Minimal-
beispiel ist in einem der obigen Postings ("Umdefinieren
von Makros") enthalten.
Gruß
Henning