PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : horizontale Linie in figure-Umgebung



birgit
07-02-2005, 19:15
So, jetzt wende ich mich doch damit ans Forum, bitte verzeiht, wenn es ein banales Problem ist... Ich hab die Lösung nicht gefunden (an edico: es ist jenes Problem mit den Fehlermeldungen, wo aber trotzdem richtiges Ergebnis liefern...). Und zwar brauche ich (für APA Richtlinien) horizontale Linien in einer figure-Umgebung, und zwar sowohl oben als auch unten. Ich löse das nun inkorrekterweise so (\hline für die Linie):


\documentclass[12pt,a4paper]{article}
\usepackage[ansinew]{inputenc}
\usepackage[labelfont=bf,justification=RaggedRight,textfont=it]{caption}
\DeclareCaptionLabelSeparator{period-newline}{. \newline}

\begin{document}

\begin{figure}
\captionsetup{labelsep=period-newline,singlelinecheck=off}
\begin{minipage}{\linewidth}
\caption{Factors of Stress}
\vspace{1.5ex}\hline
\vspace{1.5ex}

Hier steht die Graphik

\vspace{1.5ex}\hline
\vspace{1.5ex}

\footnotesize{
\textit{Note:} n\,=\,35
}
\end{minipage}
\end{figure}

\end{document}

Weiß jemand, wie man das korrekt löst?
LG Birgit

Salnic
08-02-2005, 00:38
Hallo Birgit,

hat ein wenig gedauert, bis ich rausgefunden habe, was an Deinem Quellcode falsch ist, sieht doch alles ok aus. Aber, es sieht nur so aus! Du hast \hline missbraucht! \hline ist dafür da, um in Tabellen eine horizontale Linie zu ziehen. Deswegen die komischen Fehlermeldungen!!!

Benutze lieber \rule{\linewidth}{0.5pt} dies macht Dir eine Linie so lang wie die Minipage breit ist und 0.5 Punkte dick

Sollten nach Suchen und Ersetzen deutlich weniger Fehler sein. Jetzt kannst Du also die "richtigen" Fehler wieder besser finden.

Viel Spass
Salnic

blubb
08-02-2005, 07:51
Hallo,

Wenn die Dicke des Striches nicht eingestellt werden muss ist \hrulefill kürzer.
http://www.weinelt.de/latex/hrulefill.html
Blubb

edico
08-02-2005, 09:40
... es sind Lösungen von Salnic und blubb aufgezeigt. Ich habe dir ein macro gesetzt, das du an sich - so wie ich das verstehe - global einsetzen kannst, um deine Graphiken einheitlich und ohne grossen Aufwand einzubinden (das macro kann auch für andere interessant sein, da recht einfach auf eigene Belange zu adaptieren):
...
\documentclass[12pt,a4paper]{article}

%--- macro bild -------------------------------------------------------------
\usepackage{graphicx}
\usepackage{ifthen}
\newcommand{\bild}[4][0.7]{% % 4 Paramenter, erster=optional
\begin{figure}[htbp]%
\begin{minipage}{\linewidth}
\centering%
\caption{#2}\label{fig:#3}%
\ifthenelse{\equal{#1}{max}}{% % max=maximale Breite
\includegraphics[width=\linewidth]{#3}%
}{%
\hrulefill\par \vspace{1.5ex}\par
\includegraphics[scale=#1]{#3}%
}%
\vspace{1.5ex}\par \hrulefill\par
\footnotesize{\textit{Note:} #4 }
\end{minipage}
\end{figure}
}%----------------------------------------------------------------------------

\begin{document}

\noindent
So, jetzt wende ich mich doch damit ans Forum, bitte verzeiht, wenn es ein banales Problem ist... Ich hab die Lsung nicht gefunden (an edico: es ist jenes Problem mit den Fehlermeldungen, wo aber trotzdem richtiges Ergebnis liefern \dots). Und zwar brauche ich (fr APA Richtlinien) horizontale Linien in einer figure-Umgebung, und zwar sowohl oben als auch unten. Ich löse das nun inkorrekterweise so (\verb|\hline| fr die Linie):
\vspace{5mm}
\noindent
Vorgeschlagene Lösungen: \par
\verb|\rule{\linewidth}{0.5pt} oder \hrulefill|

% und nun 2 Graphiken einbinden nach diesem Muster:
\vspace{5mm}
\bild[.35]{Dies ist ein vector graphic file}{img/lion}{n\,=\,35}

\bild[.15]{Dies ist ein anderer vector graphic file}{img/lion1}{n\,=\,5}

\end{document}
...
Das macro ist stubenrein, so dass sowohl mit TeX, pdfTeX, vTeX compiliert, also entweder PDF- (auch raster files) oder EPS-Graphik eingesetzt werden kann.
edico

birgit
08-02-2005, 11:52
Vielen Dank euch allen!
Das Macro wäre ja super-praktisch!! Es ist mir aber nicht möglich, das zu adaptieren, weil ich mich damit echt nicht auskenn... Ich hab fast alle meine Graphiken in pictex gemacht, d.h. die stehen direkt in eigenen .tex-files und sind nicht im eps-Format. Außerdem paßt hier das caption-layout und der vspace zwischen caption und Linie für mich nicht. Wie ich diese Definitionen hier einbinde weiß ich nicht.

Nun hab ich mein Problem so gelöst, damit die Abstände wieder stimmen (ist auch nicht so die feine Art aber so funktionierts zumindest):


\documentclass[12pt,a4paper]{article}
\usepackage[ansinew]{inputenc}
\usepackage[labelfont=bf,justification=RaggedRight,textfont=it]{caption}
\DeclareCaptionLabelSeparator{period-newline}{. \newline}

\begin{document}

\begin{figure}
\captionsetup{labelsep=period-newline,singlelinecheck=off}
\begin{minipage}{\linewidth}
\caption{Factors of Stress}
\vspace{-1.5ex}
\rule{\linewidth}{1pt}

Hier steht die Graphik in pictex
\vspace{-1.5ex}

\hrulefill

\scriptsize{
\textit{Note:} n\,=\,35
}
\end{minipage}
\end{figure}

\end{document}

LG Birgit

edico
08-02-2005, 13:41
.. na gut. Dann versuch es bitte so:
\documentclass[12pt,a4paper]{article}

%--- macro bild -------------------------------------------------------------
\usepackage{pictex}
\newcommand{\bild}[3]{% %
\begin{figure}[htbp]%
\caption{#1}\label{fig:#2}%
\begin{minipage}[c]{\linewidth}
\input{ #2}
\scriptsize{\textit{Note:} #3 }
\end{minipage}
\end{figure}
}
%----------------------------------------------------------------------------

\begin{document}

\section*{tool pictex}
\bild{Ueberschrift}{pic1.tex}{n\,=\,35}

\section*{sourcefile pictex1.tex}
\begin{verbatim}
%\documentclass[12pt]{article}
%%\begin{document}
\hrulefill
\vspace{5mm}
\beginpicture
\setcoordinatesystem units <1.0cm,10.0cm>
\setplotarea x from 0 to 7, y from 0 to 0.5
\axis bottom label {$\Lambda$} ticks quantity 8 /
\axis left label {$\chi$} ticks quantity 6 /
\endpicture
\vspace{5mm}
\hrulefill
%\end{document}
\end{verbatim}

\end{document}
...
spacing und rules hab ich in den pictex-sourcefile - wie du siehst - gelegt. Ich habe jetzt keine Zeit mehr. Möglicherweise lässt sich auch in das Macro einbinden. Aber so läuft alles geschmiert - mit pdfTeX und TeX gleichermassen.
edico

edico
09-02-2005, 12:37
... ich habe das Macro überarbeitet, weil ein paar Feinheiten nicht stimmten oder optimiert waren. So wird das drawing jetzt zentriert, es nimmt die Abstände und rules auf. Damit kann das Master sehr schlank gehalten werden, weil jede Graphik in einem Assistent File abgelegt wird. Es kann mit tex und pdftex compiliert werden.

[1] DAS DOKUMENT
%
\documentclass[12pt,a4paper]{scrartcl}
\usepackage{pictex}

%--- macro picx -------------------------------------------------------------

\newcommand{\picx}[3]{% %
\begin{figure}[htbp]%
\caption{#1}\label{fig:#2}
\vspace{-5mm} %
\begin{center}%
\hrulefill\par
\vspace{5mm} %
\begin{minipage}[c]{\textwidth}
\input{ #2}
\end{minipage}\par
\vspace{5mm} %
\hrulefill\par
\footnotesize{\textit{Note:} #3 }
\end{center}
\end{figure}
}

%----------------------------------------------------------------------------

\begin{document}

\section*{pictex eXample}

PiC\TeX{} is a set of macros by Michael Wichura for drawing diagrams
and pictures.
The macro picx is putting PiC\TeX{} drawings in a figure float
centered in a minipage with caption, note and top and bottom rule.
I provide it `as is' and does not guarantee it in any way. edico

\picx{Ueberschrift}{pic1}{n\,=\,35}

\picx{Ueberschrift}{picx}{n\,=\,5}

\end{document}

[2] PiCTeX BEISPIEL = picx.tex
%
\beginpicture
\setcoordinatesystem units <1.0cm,10.0cm>
\setplotarea x from 0 to 7, y from 0 to 0.5
\axis bottom label {$\Lambda$} ticks quantity 8 /
\axis left label {$\chi$} ticks quantity 6 /
\endpicture
%
edico

birgit
09-02-2005, 15:16
Wow, vielen Dank, ich werde mir das zu Gemüte führen, sobald ich dazukomme...!

birgit
11-02-2005, 19:11
Vielen Dank, edico! Jetzt weiß ich, wie man Macros definiert :-))
Wird für die nächste Arbeit so gemacht, sehr elegant, sehr effizient!


Das hier macht nun genau das, was ich speziell brauche:



\documentclass[12pt,a4paper]{scrartcl}
\usepackage{pictex}
\usepackage[labelfont=bf,justification=RaggedRight,textfont=it]{caption}

\DeclareCaptionLabelSeparator{period-newline}{. \newline}

%--- macro picx -------------------------------------------------------------

\newcommand{\picx}[3]{% %
\begin{figure}[htbp]%
\captionsetup{labelsep=period-newline,singlelinecheck=off}
\caption{#1}\label{fig:#2}
\vspace{-2mm} %
\rule{\linewidth}{1pt}\par
\vspace{5mm} %
\begin{center}
\begin{minipage}[c]{\textwidth}
\input{ #2}
\end{minipage}\par
\end{center}
\vspace{2mm} %
\hrulefill\par
\footnotesize{\textit{Note:} #3 }
\end{figure}
}

%----------------------------------------------------------------------------

\begin{document}

\section*{pictex eXample}

PiC\TeX{} is a set of macros by Michael Wichura for drawing diagrams
and pictures.
The macro picx is putting PiC\TeX{} drawings in a figure float
centered in a minipage with caption, note and top and bottom rule.
I provide it `as is' and does not guarantee it in any way. edico

%\picx{Ueberschrift}{pic1}{n\,=\,35}

\picx{Das ist eine Ueberschrift fuer diese Grafik}{picx}{n\,=\,5}

\end{document}

edico
11-02-2005, 19:35
Sehr schön.
edico