PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zeilenumbruch in newcommand ermöglichen



davedone
03-03-2005, 11:42
Hallo :o ,
da ich häufig Verweise auf andere Kapitel und auch deren Seite einfügen muss, habe ich mir den folgen Befehl zusammengebastelt:
\newcommand{\vglkap}[1]{\text{(vgl. Kapitel}\ref{#1}\text{ auf Seite~}\pageref{#1}\text{)}}
Das klappt soweit, leider wird aber dei Ausgabe am Zeilenende nicht umgebrochen. Auch beim weglassen der Tilde (~) funktioniert das nicht.
Weiss jemand Rat? ich verwende übrigens das Comaskript, hoffentlich liegt es nicht daran...

Ich denke, das könnte auch für andere Inerssant sein.
Danke
Davedone

edico
03-03-2005, 12:35
... bei mir brichts (scrartcl - probiert). Hast du sehr schön gemacht.
Am macro sollte es nicht liegen. Du musst irgendwas geladen oder formatiert haben, was stört.
Schalte der Reihe nach deine Einbindungen aus, und grenze dadurch den Fehler ein. Ich weiss nicht, evtl. könntest du mit hyphenation regulieren ...
edico

P.S. Ich habe zu schnell geschossen ... habe das Phänomen jetzt auch ...

Salnic
03-03-2005, 12:39
\newcommand{\vglkap}[1]{\text{(vgl. Kapitel}\ref{#1}\text{ auf Seite~}\pageref{#1}\text{)}}

ich weiss nicht, warum Du \text benutzt, sollte doch auch ohne funktionieren - hab es selber jetzt nicht probiert.


\newcommand{\vglkap}[1]{(vgl. Kapitel \ref{#1} auf Seite \pageref{#1})}

Salnic

edico
03-03-2005, 12:52
sieh salnic ist auch drüber gestolpert
.. du kannst es so machen ...
\newcommand{\vglkap}[1]{%
vgl. Kapitel
\ref{#1}
auf Seite~
\pageref{#1}{)}
}
edico

blubb
03-03-2005, 13:38
Schau dir mal varioref an.
http://texcatalogue.sarovar.org/entries/varioref.html

Seit ich das Paket kenne werde ich immer von Leuten angesprochen ich hätte keine Ahnung von Texten schreiben. Weil so Sachen wie "Abschnitt 3 auf der nächsten Seite" oder "auf der vorherigen Seite" schreibt man nicht, es könnte ja sein das es sich verschiebt. Die sind dann immer recht erstaunt wenn ich sage ich schreibe so Sachen auch nicht, dafür gäbe es Programm die das machen ;)

edico
03-03-2005, 14:58
Ja, Blubb! Klar doch! Wenn man im Wald ist, sieht man ihn manchmal vor lauter Bäumen nicht ...
edico

davedone
03-03-2005, 15:09
Danke für die Hilfe, es klappt :) !

zu Salnic: Wenn ich in der Preambel nicht \text verwende, bekomme ich ein missing begin document :-(

Die Lösung von edico
\newcommand{\vglkap}[1]{%
vgl. Kapitel
\ref{#1}
auf Seite~
\pageref{#1}{)}
}

funktioniert hervorragend. Jetzt weiss ich auch wofür das Kommentarzeichen (%) am Ende einer Zeile steht, puh, wieder was gelernt.

Die Paketempfehlung von blubb werde ich nochj auisprobieren.
Danke,
davedone

Salnic
03-03-2005, 15:20
zu Salnic: Wenn ich in der Preambel nicht \text verwende, bekomme ich ein missing begin document :-(

Die Lösung von edico
\newcommand{\vglkap}[1]{%
vgl. Kapitel
\ref{#1}
auf Seite~
\pageref{#1}{)}
}

funktioniert hervorragend.
das verstehe ich nun wieder nicht :confused: . Meine Lsg und die von edico unterscheiden sich doch nicht. edico schreibt sein Marko nur über mehrere Zeilen und trennt die Zeilen mit %, oder habe ich was übersehen?

Salnic

davedone
03-03-2005, 15:38
Hallo Salnic,
ich nehme alles zurück. Deine Methode klappt natürlich auch :D , habe sie gerade getestet. Puh, wieder ein paar Zeilen gesprt.
Danke
davedone

bischi
03-03-2005, 18:20
funktioniert hervorragend. Jetzt weiss ich auch wofür das Kommentarzeichen (%) am Ende einer Zeile steht, puh, wieder was gelernt.


Hab ich da was verpasst?! Das Ding ist doch schlichtweg überflüssig...

MfG Bischi

davedone
04-03-2005, 11:28
Hallo,
Ich habe in Zusammenfassung dieser Diskussion jetzt folgendes gemacht:

\usepackage[ngerman]{babel, varioref}
\usepackage{varioref}
% Verweis auf Kapitel im fließenden Text
\newcommand{\zeig}[1]{Kapitel~\vref{#1}}
% Verweis auf Kapitel in Klammern gestezt
\newcommand{\vglkap}[1]{(vgl. Kapitel \vref{#1})}

Wie man sieht, habe ich jetzt auch variable Referenzierungen benutzt, um Verweise wie "auf der nächsten Seite" zu erhalten (danke blubb).
Nach auzsgiebigen Testen steht fest: die Tilde (~) nach dem Punkt in vgl wüprde auf jeden Fall ein Umbrechen an der Stelle verhindern (grimpfgnirr :mad: und zusätzlich auch noch komisch).

Die Diskussion über varioref und auch die eigene Definition von Verkürzung dieser Art von Referenzen ist ja auch im Latexbegleiter ab Seite 42 nachzulesen (ups, da hätte ich ja auch mal reinschauen können :o ).
davedone

blubb
04-03-2005, 11:49
~ = Fester Wortabstand, ohne Zeilenumbruch
\ (Backslah mit folgendem Leerzeichen) = Normaler Wortzwischenraum.
\, \; ... da gab es vor kurzem ein Hinweis.

\xspace (Makro aus xspcae.sty):
Leerzeichen falls kein Satzzeichen folgt (interessant für makros).
Blubb