PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : zu volle Boxen (overfull hbox) bei Pfadangaben



ips
10-09-2008, 16:40
Hallo allerseits,

ich möchte gerne im Fließtext mehrere Pfadangaben machen (muß kein Link sein) - bei allen bisherigen Versuchen mit listings, verbatim oder hyperref mit hypens endete dies jedoch bei mir leider mit übervollen Boxen.

Anbei ein Minibeispiel mit einer entsprechenden URL.


\documentclass[a4paper,12pt,openright,parskip]{scrreprt}

\usepackage{verbatim}

\usepackage{listings}
\lstset{ %
breaklines=true, % sets automatic line breaking
}

\usepackage{listings}

%%% Package hyphens zur Problembehandlung bei der Trennung von URLs
%%% trennt faktisch nach jedem alphanumerischen Zeichen
\usepackage[hyphens]{url}
\def\UrlBreaks{\do\a\do\b\do\c\do\d\do\e\do\f\do\g \do\h\do\i\do\j\do\k\do\l%
\do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t\do\u\do\v \do\w\do\x\do\y\do\z\do\0%
\do\1\do\2\do\3\do\4\do\5\do\6\do\7\do\8\do\9\do\-\do\_}%
\urlstyle{same}

\usepackage[breaklinks=true]{hyperref}

\begin{document}

\textbf{lstinline:} \lstinline{D:\IPS\Test\TestLogIPSDB\Projects\IPS\P roject Reports\Web Reports\080812\IPS\Project Test Cases\IPS Test Suite\TC4120.html}

\textbf{nolinkurl:} \nolinkurl{D:\\IPS\\Test\\TestLogIPSDB\\Projects\\ IPS\\Project Reports\\Web Reports\\080812\\IPS\\Project Test Cases\\IPS Test Suite\\TC4120.html}

\textbf{verb:} \verb|D:\IPS\Test\TestLogIPSDB\Projects\IPS\Projec t Reports\Web Reports\080812\IPS\Project Test Cases\IPS Test Suite\TC4120.html|

\end{document}


Bin über jeden Hilfe dankbar.

Grüße
ips

ips
11-09-2008, 13:14
irgendjemand eine idee?! ich trete auf der stelle ...
:confused:

voss
11-09-2008, 13:45
irgendjemand eine idee?! ich trete auf der stelle ...
:confused:

es gibt keine sinnvolle Möglichkeit für einen Umbruch, da es ohnehin nur
einem Wort entspricht. Du musst also manuell eingreifen.

Herbert

ips
11-09-2008, 14:12
es gibt keine sinnvolle Möglichkeit für einen Umbruch, da es ohnehin nur einem Wort entspricht. Du musst also manuell eingreifen. Herbert *määäääh*
wenn es groß ist, hat das Dokument 100+ Seiten und diverse Pfadangaben - händische Nachbearbeitung ist genau das, was ich nicht wollte :eek:

ips
11-09-2008, 15:31
Kann ich vielleicht die Seitenbreite für eines der o.g. Kommandos (listings, verbatim oder url) einschränken?

Die Idee ist: Wenn z.B. die listings nur noch 80% der Seitenbreite einnehmen dürfen, dann sollten 99% meiner Probleme mit dem inkorrekten Zeilenumbruch gelöst sein - denn ein Umbruch erfolgt ja in jedem der o.g. Beispiele, nur eben nicht an der richtigen Stelle!

Anmerkung am Rande: Ich habe ein mit Bibtex erstelltes Literaturverzeichnis, in welchem sich auch Onlinequellen befinden. Die zugehörigen Adressen werden durch Bibtex im bbl-File auch in \url{} umgesetzt - all diese automtisch erstellten URLs werden 100% korrekt umgebrochen (seit dem im Header wie oben \def\UrlBreaks eingefügt wurde) - warum klappt das nicht auch mit den Pfaden?! :confused:

voss
11-09-2008, 15:44
Kann ich vielleicht die Seitenbreite für eines der o.g. Kommandos (listings, verbatim oder url) einschränken?

Die Idee ist: Wenn z.B. die listings nur noch 80% der Seitenbreite einnehmen dürfen, dann sollten 99% meiner Probleme mit dem inkorrekten Zeilenumbruch gelöst sein - denn ein Umbruch erfolgt ja in jedem der o.g. Beispiele, nur eben nicht an der richtigen Stelle!

Anmerkung am Rande: Ich habe ein mit Bibtex erstelltes Literaturverzeichnis, in welchem sich auch Onlinequellen befinden. Die zugehörigen Adressen werden durch Bibtex im bbl-File auch in \url{} umgesetzt - all diese automtisch erstellten URLs werden 100% korrekt umgebrochen (seit dem im Header wie oben \def\UrlBreaks eingefügt wurde) - warum klappt das nicht auch mit den Pfaden?! :confused:

Pfade eher mit \path


\documentclass[a4paper,12pt,openright,parskip]{scrreprt}

\usepackage[hyphens]{url}
\def\UrlBreaks{\do\a\do\b\do\c\do\d\do\e\do\f\do\g \do\h\do\i\do\j\do\k\do\l
\do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t\do\u\do\v \do\w\do\x\do\y\do\z\do\0
\do\1\do\2\do\3\do\4\do\5\do\6\do\7\do\8\do\9\do\-\do\_\do\I}%
\urlstyle{same}

\begin{document}

\rule{\linewidth}{1pt}

\path{D:\IPS\Test\TestLogIPSDB\Projects\IPS\Projec t Reports\Web Reports\080812\IPS\Project Test Cases\IPS Test Suite\TC4120.html}

\end{document}


Herbert

ips
12-09-2008, 11:31
auch das Path-Package bringt leider nicht den gewünschten Effekt - beim Minibeispiel bemängelt der Compiler 2 zu volle Boxen
:(

voss
12-09-2008, 22:18
auch das Path-Package bringt leider nicht den gewünschten Effekt - beim Minibeispiel bemängelt der Compiler 2 zu volle Boxen
:(

willst du das nicht verstehen??
Die Zeile enthält keinerlei dehnbares Material, also ergeben sich
under- oder overfull Boxen.

Herbert

hette
13-09-2008, 10:51
ich hab das problem mit folgender box:

\begin{framed}
\begin{verbatim}
inhalt....
\end{verbatim}
\end{framed}
als inhalt habe ich entweder text oder aufzählungen, also einzelne wörter mit beistrich und leerzeichen getrennt.
kann man da den zeilenumbruch irgendwie automatisch machen?
im moment geht der text einfach über die box und das blatt raus....

mechanicus
13-09-2008, 11:13
Hallo,

die verbatim-umgebung ist extra zur Darstellung von Codes gedacht, sie gibt genau das aus, was du reinschreibst. Also machst du keinen Zeilenumbruch, wird auch die Umgebung keinen machen.

Gruß
Marco

hette
13-09-2008, 15:26
ich verstehe
es wird auch viel code damit ausgegeben,
es soll auch alles so bleiben wie es ist,
nur sollte eben der zeilenumbruchstattfinden
gibts da noch andere möglichkeiten?

voss
13-09-2008, 17:50
ich hab das problem mit folgender box:

\begin{framed}
\begin{verbatim}
inhalt....
\end{verbatim}
\end{framed}
als inhalt habe ich entweder text oder aufzählungen, also einzelne wörter mit beistrich und leerzeichen getrennt.
kann man da den zeilenumbruch irgendwie automatisch machen?
im moment geht der text einfach über die box und das blatt raus....

dafür nimmt man das Paket listings

Herbert

hette
14-09-2008, 14:56
dafür nimmt man das Paket listings

Herbert

hab das jetzt probiert mit

\usepackage[listings]
änder aber nichts
muß ich da sonst noch was angeben?

voss
14-09-2008, 22:47
hab das jetzt probiert mit

\usepackage[listings]
änder aber nichts
muß ich da sonst noch was angeben?

warum siehst du nicht mal in die Doku?

Herbert

hette
15-09-2008, 11:31
hallo,
in welche doku?
sorry aber ich arbeite noch nicht so lange/so viel mit latex
komme dann bei deinen aussagen nicht immer ganz mit...
könntets du mir das bitte etwas genauer beschreiben? danke!

lg

ips
15-09-2008, 13:36
back to topic :)


willst du das nicht verstehen??doch, deswegen meine wiederholten rückfragen


Die Zeile enthält keinerlei dehnbares Material, also ergeben sich under- oder overfull Boxen.Grundlegend ist mir der Hintergrund für overfull hboxes klar, nicht jedoch in diesem Fall - ich möchte das Ganze nochmal an einem verfeinerten Beispiel erläutern:

\documentclass[a4paper,12pt,openright,parskip]{scrreprt}

\usepackage[hyphens]{url}
\def\UrlBreaks{\do\a\do\b\do\c\do\d\do\e\do\f\do\g \do\h\do\i\do\j\do\k\do\l
\do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t\do\u\do\v \do\w\do\x\do\y\do\z\do\0
\do\1\do\2\do\3\do\4\do\5\do\6\do\7\do\8\do\9\do\-\do\_\do\I}%
\urlstyle{same}

\begin{document}

\path{D:\IPS\Test\TestLogIPSDB\Projects\IPS\Projec t Reports\Web Reports\080812\IPS\Project Test Cases\IPS Test Suite\IPS\Test\TestLogIPSDB\Projects\IPS\Project Reports\Web Reports\080812\IPS\Project Test Cases\IPS Test Suite\IPS\Test\TestLogIPSDB\Projects\IPS\Project Reports\Web Reports\080812\IPS\Project Test Cases\IPS Test Suite\TC4120.html}

\end{document}

Das Dokument (pdf) enthält 5 Zeilen Text und 4 overfull hboxes (sprich die ersten 4 Zeilen). Da die Zeilen automatisch umgebrochen werden (an beliebiger Stelle, korrekt ohne Bindestrich) habe ich erwartet, dass ein Umbruch stets innerhalb der Grenze für die Seitenbreite erfolgt, so dass nie eine overfull hbox entsteht.

Beispielhaft an der 1. Zeile:
Der Zeilumbruch erfolgt automatisch nach folgendem String

D:\IPS\Test\TestLogIPSDB\Projects\IPS\Project Reports\Web Reports\080812\I

Ich hätte erwartet, das der automatische Zeilenumbruch spätestens nach diesem String erfolgt

D:\IPS\Test\TestLogIPSDB\Projects\IPS\Project Reports\Web Reports\08081
Somit wäre keine overfull hbox in dieser Zeile entstanden.

voss
15-09-2008, 13:45
Ich hätte erwartet, das der automatische Zeilenumbruch spätestens nach diesem String erfolgt

D:\IPS\Test\TestLogIPSDB\Projects\IPS\Project Reports\Web Reports\08081
Somit wäre keine overfull hbox in dieser Zeile entstanden.

Die Zeile ist \linewidth breit und du hast für jeden Buchstaben dieselbe
Breite (wegen typewriter font). \linewidth/Buchstabenbreite ist nunmal
keine ganze Zahl. Hättest du dehnbares Material in der Zeile,
beispielsweise einen Worttrenner, wie das Lehrzeichen in "foo bar", dann
könnten die Boxen so auseinander- oder zusammengeschoben werden, dass
es _keine_ over oder underfull line gibt.

Herbert

ips
15-09-2008, 14:53
Die Zeile ist \linewidth breit und du hast für jeden Buchstaben dieselbe Breite (wegen typewriter font). ok


\linewidth/Buchstabenbreite ist nunmal keine ganze Zahl. ok


Hättest du dehnbares Material in der Zeile,
beispielsweise einen Worttrenner, wie das Lehrzeichen in "foo bar", dann
könnten die Boxen so auseinander- oder zusammengeschoben werden, dass
es _keine_ over oder underfull line gibt.Im o.g. Beispiel ist sogar zufällig ein Teilstring mit Leerzeichen ("Project Reports\Web Reports") ;)

Das Problem ist also, dass Latex hier im standardmäßigen Blocksatz kein Dehnungsmaterial findet (wobei mir gerade auffällt, dass path und url meine Leerzeichen verschlucken, nur bei den listings bleiben diese sauber erhalten) und in Folge dessen immer über die voreingestellte Seitenbreite hinaus schreibt.

Gibt es neben der Variante, die entsprechenden Textabschnitte linksbündig zu gestalten, ggf. noch einen besseren Workaround, um mit den listings (konkreter lstinline) im Fließtext mit standardmäßigen Blocksatz nicht über das Zeilenende hinauszuschießen? Mein Dokument soll über 100 Seiten umfassen und wird eine hohe zweistellige Anzahl an Pfadangaben enthalten - jeden Zeilenumbruch in den Pfaden von Hand zu gestalten stellt keine echte (und schon gar keine professionelle) Alternative dar.

hette
16-09-2008, 09:22
hallo,
in welche doku?
sorry aber ich arbeite noch nicht so lange/so viel mit latex
komme dann bei deinen aussagen nicht immer ganz mit...
könntets du mir das bitte etwas genauer beschreiben? danke!

lg

hallo, und wie siehts mit meinem problem aus? danke für eure hilfe!!!

voss
16-09-2008, 09:38
Gibt es neben der Variante, die entsprechenden Textabschnitte linksbündig zu gestalten, ggf. noch einen besseren Workaround, um mit den listings (konkreter lstinline) im Fließtext mit standardmäßigen Blocksatz nicht über das Zeilenende hinauszuschießen? Mein Dokument soll über 100 Seiten umfassen und wird eine hohe zweistellige Anzahl an Pfadangaben enthalten - jeden Zeilenumbruch in den Pfaden von Hand zu gestalten stellt keine echte (und schon gar keine professionelle) Alternative dar.

Den Umbruch gibt es doch sowieso, es gibt nur keine Dehnung/Stauchung in der
Zeile, sodass die over- oder underfull boxen wegfallen. Normalerweise sollte
es ohnehin nur underfull geben, was dann letztlich kein Problem ist.

Herbert

ips
16-09-2008, 11:19
Den Umbruch gibt es doch sowieso, es gibt nur keine Dehnung/Stauchung in der Zeile, sodass die over- oder underfull boxen wegfallen. Normalerweise sollte es ohnehin nur underfull geben, was dann letztlich kein Problem ist. es entstehen halt interessanterweise meist (immer?) nur overfull hboxes und das dauernde über das Zeilenende hinausgeschreiben ist halt wesentlich unschicker als wenn jeweils vor dem Zeilenende umgebrochen würde (wo wir fast wieder bei linksbündig wären, was allerdings bei lstinline nicht Sinn & Zweck der Sache ist und das Gesamtbild stört)


@Hette

hallo,in welche doku?
sorry aber ich arbeite noch nicht so lange/so viel mit latex
komme dann bei deinen aussagen nicht immer ganz mit...
könntets du mir das bitte etwas genauer beschreiben? danke!
Es gibt unendlich viele Dokus zum Thema - Google ist dein Freund ;)
Eine Suche nach "latex listings" ergibt z.B. folgende hilfreiche Treffer:

http://en.wikibooks.org/wiki/LaTeX/Packages/Listings
http://www.ctan.org/tex-archive/macros/latex/contrib/listings/
http://www.ifi.uio.no/it/latex-links/listings-1.3.pdf

voss
16-09-2008, 12:32
es entstehen halt interessanterweise meist (immer?) nur overfull hboxes und das dauernde über das Zeilenende hinausgeschreiben ist halt wesentlich unschicker als wenn jeweils vor dem Zeilenende umgebrochen würde (wo wir fast wieder bei linksbündig wären, was allerdings bei lstinline nicht Sinn & Zweck der Sache ist und das Gesamtbild stört)


du musst natürlich einen Umbruch an allen möglichen Stellen erlauben, also auch
für Großbuchstaben ...

Herbert

ips
16-09-2008, 13:24
du musst natürlich einen Umbruch an allen möglichen Stellen erlauben, also auch für Großbuchstaben ...falls du damit folgenden Teil meinst ...
\def\UrlBreaks{\do\a\do\b\do\c\do\d\do\e\do\f\do\g \do\h\do\i\do\j\do\k\do\l%
\do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t\do\u\do\v \do\w\do\x\do\y\do\z\do\0%
\do\1\do\2\do\3\do\4\do\5\do\6\do\7\do\8\do\9\do\-\do\_\do\A\do\B\do\C\do\D\do\E\do\F\do\G\do\H%
\do\I\do\J\do\K\do\L\do\M\do\N\do\O\do\P\do\Q\do\R \do\S\do\T\do\U\do\V\do\W\do\X\do\Y\do\Z}%
\urlstyle{same} ... denPart habe ich mittlerweile in meinem Header ergänzt (nur nicht das minibeispiel von oben aktualisiert) - an den overfull hboxes ändert dies jedoch nix

Cas
17-09-2008, 10:07
hallo,
in welche doku?


In die Doku vom Listings-Paket, z.B. hier: http://www.ctan.org/get/macros/latex/contrib/listings/listings.pdf

Nur das Einbinden des Pakets hilft dir nicht weiter.

mfG
Cas

voss
17-09-2008, 11:01
... denPart habe ich mittlerweile in meinem Header ergänzt (nur nicht das minibeispiel von oben aktualisiert) - an den overfull hboxes ändert dies jedoch nix

das hier gibt nur eine overfull box wegen der Linie, was "texnisch" bedingt
ist.


\documentclass[a4paper,12pt,parskip]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[hyphens,obeyspaces]{url}

\def\UrlBreaks{\do\a\do\b\do\c\do\d\do\e\do\f\do\g \do\h\do\i\do\j\do\k\do\l%
\do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t\do\u\do\v \do\w\do\x\do\y\do\z\do\0%
\do\1\do\2\do\3\do\4\do\5\do\6\do\7\do\8\do\9\do\-\do\_\do\A\do\B\do\C\do\D\do\E\do\F\do\G\do\H%
\do\I\do\J\do\K\do\L\do\M\do\N\do\O\do\P\do\Q\do\R \do\S\do\T\do\U\do\V\do\W\do\X\do\Y\do\Z\do\\}%

\urlstyle{same}

\begin{document}

\rule{\textwidth}{1pt}

\url{D:\IPS\Test\TestLogIPSDB\Projects\IPS\Project Reports\Web Reports\080812\IPS\Project Test Cases\IPS Test Suite\IPS\Test\TestLogIPSDB\Projects\IPS\Project Reports\Web Reports\080812\IPS\Project Test Cases\IPS Test Suite\IPS\Test\TestLogIPSDB\Projects\IPS\Project Reports\Web Reports\080812\IPS\Project Test Cases\IPS Test Suite\TC4120.html}

\end{document}


Herbert

cookie170
17-09-2008, 11:19
@ hette:


texdoc listings
auf der Kommandozeile sollte Dir die Doku öffnen. Bei neueren texdoc-Versionen kriegst Du mit
texdoc -s listings eine Liste, siehe
texdoc texdoc

Gruß,
Alexander

hette
17-09-2008, 11:23
danke aber ich verwende texnic, da habe ich noch nie eine commadozeile gesehen....
oder finde ich das nur nicht?

ich schätze mal ich muß das package einfach normal wie alle anderen auch am anfang des dokumentes einbinden, oder?

\usepackage[listings]

aber was muß ich dann machen?

cookie170
17-09-2008, 11:53
danke aber ich verwende texnic, da habe ich noch nie eine commadozeile gesehen....
oder finde ich das nur nicht?

ich schätze mal ich muß das package einfach normal wie alle anderen auch am anfang des dokumentes einbinden, oder?

\usepackage[listings]

aber was muß ich dann machen?

1. Kauf Dir ein Buch zu LaTeX, das ist mein Standard-Ratschlag für alle Ein-, Um- und Aufsteiger.

2. Die Kommandozeile findest Du bei Windows unter Start, Ausführen, und dort nach "Öffnen" bitte eintragen "cmd" (ohne Anführungszeichen).

3. Bei LaTeX kommt's auf die Art der Klammer an, Pakete bindet man ein mit \usepackage{paketname}. Eckige Klammern bezeichnen i.d.R. optionale Argumente.

Gruß,
Alexander

hette
17-09-2008, 12:04
danke für den tip

ich verwende latex nur für eine arbeit an der uni di ich gezwungenermaßen in latex schreiben mußte
bevorzuge da eher eine officeanwendung da ich das ganze eher selten brauche...

die arbeit ist auch schon ziemlich fertig, nur eben das "kleine" problem mit dem zeilenumbruch in den boxen bleibt noch :-(
wäre also super wenn mir jemand da einfach bei der lösung helfen könnte!!!

hette
22-09-2008, 10:38
das problem besteht leider weiterhin... gibts da keine lösung bzw. kennt sich da keiner besser aus?