PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Java-Klassen-/Methodennamen richtig im Text formatieren



kniffte2
17-05-2016, 13:31
Hallo,

ich habe hier einen Text, in dem ich auf bestimmte Klassen- bzw. Methodennamen referenziere. Ich möchte dabei nicht den kompletten Code einbetten, sondern nur die Namen korrekt dargestellt haben.

Der LaTeX-Code sieht nun wie folgt aus:



\documentclass[a4paper,12pt,twoside,titlepage%
%,final%
%,draft%
]{scrreprt}
\usepackage[inner=3cm,outer=2cm,top=1.5cm,bottom=1.5cm,include headfoot]{geometry}

\usepackage[obeyspaces,spaces]{url}
% define commands for nice display of Java class, file and method names
% see: http://tex.stackexchange.com/questions/152972/macros-for-formatting-breaking-classnames-file-paths-etc
\DeclareUrlCommand\class{%
\renewcommand{\UrlBigBreaks}{\do\.}%
\renewcommand{\UrlBreaks}{\do\.}%
}
\DeclareUrlCommand\filedir{%
\renewcommand{\UrlBigBreaks}{\do\\}%
\renewcommand{\UrlBreaks}{\do\\}%
}
\DeclareUrlCommand\method{%
\renewcommand{\UrlBigBreaks}{}%
\renewcommand{\UrlBreaks}{}%
\renewcommand{\UrlBigBreaks}{\do\(}%
\renewcommand{\UrlBreaks}{\do\(}%
\renewcommand{\UrlBigBreaks}{\do\)}%
\renewcommand{\UrlBreaks}{\do\)}%
\renewcommand{\UrlBigBreaks}{\do\,}%
\renewcommand{\UrlBreaks}{\do\,}%
}

\begin{document}
\begin{enumerate}
\item Meine sehr lange Klasse hat den Namen \class{de.blubb-blabb.website.persistence.entities.Mitglied}
\item Im schon sehr interessanten Text habe ich dann einen Aufruf zu der dollen \method{Mitglied.setPhoto(byte[], String, String, Integer)}
\end{enumerate}
\end{document}


Im Grunde bricht er mir den Text nicht korrekt um, wenn der Umbruch mitten im Klassennamen kommen müsste. Auch wenn er einen Umbruchpunkt findet (z.B. , da hier ein Komma (,) ist), ist der Umbruch nicht wirklich passend.

Irgendwelche Ideen? Fehlt noch etwas?

Danke schonmal.

kniffte

rais
17-05-2016, 20:21
\DeclareUrlCommand\method{%
\renewcommand{\UrlBigBreaks}{}%
\renewcommand{\UrlBreaks}{}%
\renewcommand{\UrlBigBreaks}{\do\(}%
\renewcommand{\UrlBreaks}{\do\(}%
\renewcommand{\UrlBigBreaks}{\do\)}%
\renewcommand{\UrlBreaks}{\do\)}%
\renewcommand{\UrlBigBreaks}{\do\,}%
\renewcommand{\UrlBreaks}{\do\,}%
}


ich weiß ja nicht, was Du Dir von dieser mehrfachen Umdefinierung von \UrlBigBreaks und \UrlBreaks innerhalb von \method erhoffst, aber hast Du es schon mal mit der Standarddefinition von beiden versucht? (vgl. `\standard' unten)


\documentclass[a4paper,12pt,twoside,titlepage%
%,final%
%,draft%
]{scrreprt}
\usepackage[inner=3cm,outer=2cm,top=1.5cm,bottom=1.5cm,include headfoot]{geometry}

\usepackage[obeyspaces,spaces]{url}
% define commands for nice display of Java class, file and method names
% see: http://tex.stackexchange.com/questio...file-paths-etc
\DeclareUrlCommand\class{%
\renewcommand{\UrlBigBreaks}{\do\.}%
\renewcommand{\UrlBreaks}{\do\.}%
}
\DeclareUrlCommand\filedir{%
\renewcommand{\UrlBigBreaks}{\do\\}%
\renewcommand{\UrlBreaks}{\do\\}%
}
\DeclareUrlCommand\method{%
\renewcommand{\UrlBigBreaks}{\do\,}%
\renewcommand{\UrlBreaks}{\do\.\,}%
}
\DeclareUrlCommand\standard{%
}

\begin{document}
\begin{enumerate}
\item Meine sehr lange Klasse hat den Namen \class{de.blubb-blabb.website.persistence.entities.Mitglied}
\item Im schon sehr interessanten Text habe ich dann einen Aufruf zu der dollen \method{Mitglied.setPhoto(byte[], String, String, Integer)}
\item Meine sehr lange Klasse hat den Namen \standard{de.blubb-blabb.website.persistence.entities.Mitglied}
\item Im schon sehr interessanten Text habe ich dann einen Aufruf zu der dollen \standard{Mitglied.setPhoto(byte[], String, String, Integer)}
\end{enumerate}
\end{document}

evtl lohnt auch ein Blick ins listings-Paket, wie dort umbrochen wird (und ob überhaupt in der \lstinline-Variante) hab ich jetzt nicht getestet.

VG

kniffte2
02-08-2016, 21:44
Hallo rais,

danke für deine Antwort. Ich werde sie die Tage ausprobieren, im Moment hänge ich hier noch an anderen Sachen.


Schöne Woche noch :)

kniffte