Problem bei langer Variable mit Zeilenumbruch

Schriftbild, Absätze und Auflistungen einstellen
magoo
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Do 7. Mai 2009, 20:16

Problem bei langer Variable mit Zeilenumbruch

Beitrag von magoo »

Hi Leute,

mit folgendem Code bekomme ich wie erwartet 3 Zeilen untereinander:

Code: Alles auswählen

\documentclass[12pt,a4paper,german]{article}

\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}

\makeatletter

\def\@myvar{Zeile1\\Zeile2\\Zeile3}

\begin{document}
\@myvar
\end{document}
Leider tut das nicht mehr so wenn die Variable länger wird. Sieht der String z.B. so aus "Dieser String wird ein bisschen\\länger, denn wieso sollte eine\\Variable nicht auch mal mehr beinhalten" bekomme ich folgende Fehlermeldung:

Code: Alles auswählen

! Undefined control sequence.
\\  ->\let \reserved@e
                       \relax \let \reserved@f \relax \@ifstar {\let \reserv...
l.130

?
Leider bin ich in LaTeX noch nicht fit genug um die Ursache tracen zu können, und die Meldung einfach in Google zu kloppen bringt keine brauchbaren Resultate.

Kann hier jemand helfen?
Kind regards
magoo

phi
Moderator
Moderator
Beiträge: 420
Registriert: Fr 6. Feb 2009, 21:28

Beitrag von phi »

Hallo,

bitte poste ein entsprechendes Minimalbeispiel. Wenn ich deinen zweiten Satz einfüge, funktioniert es bei mir ebenfalls problemlos.

magoo
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Do 7. Mai 2009, 20:16

Beitrag von magoo »

Nachdem ich meine ursprüngliche Datei in Richtung MB runtergekürzt habe bin ich auf die Fehlerquelle gestoßen:

Die hyperref Option "pdftitle={\@title}" will den mehrzeiligen String nicht fressen.

Gibt es für so einen Fall sowas wie ein string-replace in LaTeX?
Kind regards
magoo

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 1997
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

TeX und PDF

Beitrag von Stefan Kottwitz »

Hallo Magoo,
magoo hat geschrieben: Die hyperref Option "pdftitle={\@title}" will den mehrzeiligen String nicht fressen.
Gibt es für so einen Fall sowas wie ein string-replace in LaTeX?
Für so etwas gibt es:

Code: Alles auswählen

\texorpdfstring{TeXstring}{PDFstring}
Du könntest statt \@title jedoch auch einen Titel direkt eintragen.

Stefan

magoo
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Do 7. Mai 2009, 20:16

Beitrag von magoo »

Hi Stefan,

perfekt. Vielen Dank für die Hilfe.
Die Variable benutz ich weil der Titel momentan 4mal im Dokument vorkommt.
Kind regards
magoo

magoo
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Do 7. Mai 2009, 20:16

Beitrag von magoo »

Da ich jetzt Zeit hatte mir Deine Antwort genauer anzuschauen stelle ich fest dass das nicht die Lösung meines Problem ist. Ich dachte das Command würde meinen String in eine passende Form wandeln.

Also ist die Frage immer noch aktuell: Gibt es in LaTeX ein Command zum Ersetzen von Linebreaks in einem String?
Kind regards
magoo

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 1997
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Stringmanipulationen

Beitrag von Stefan Kottwitz »

Hi magoo,

für Stringmanipulationen eignet sich das xstring-Paket, siehe Doku.

Stefan

magoo
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Do 7. Mai 2009, 20:16

Beitrag von magoo »

Danke für den Tipp. \StrSubstitute sah vielversprechend aus, will aber in diesen Fall (in der hyperref-option pdftitle) nicht klappen.

Falls noch jemand einen weiteren Vorschlag hat nur her damit :-)
Kind regards
magoo

phi
Moderator
Moderator
Beiträge: 420
Registriert: Fr 6. Feb 2009, 21:28

Beitrag von phi »

Probier mal \texorpdfstring in Kombination mit \pdfstringDisableCommands (siehe hyperref-Handbuch).

Antworten