Seite 1 von 1

\lstinputlisting mit inputencoding=utf8 und eigenem Style

Verfasst: Mi 1. Okt 2014, 11:22
von Oekel
Ich versuche als erstes mal ein Minibeispiel zu geben:
\usepackage[utf8]{inputenc}
\usepackage{listingsutf8}
\usepackage[ngerman]{babel}

\lstdefinestyle{myxmlstyle}{
	extendedchars=true,
	belowcaptionskip=5pt,
	xleftmargin=1.8em,	xrightmargin=0.5em,
	numbers=left, numberstyle=\small\ttfamily\bf,
	frame=single, breaklines=true, breakatwhitespace=true, breakindent=0pt,
	emph={}, emphstyle=\color{red},
	basicstyle=\small\ttfamily,
	columns=fullflexible,
	showstringspaces=false,
	commentstyle=\color{gray}\upshape,
	morestring=[b]",
	morestring=[s]{>}{<},
	morecomment=[s]{<?}{?>},
	morecomment=[s][\color{orange}]{<!--}{-->},
	keywordstyle=\color{cyan},
	stringstyle=\color{black},
	identifierstyle=\color{darkblue},
	morekeywords={version,type, upload, generator, id, action, visible, lat, lon, ref, k, v}
}

\lstnewenvironment{myxml}[2]
  {\lstset{language={XML},inputencoding=utf8/latin1,style=myxmlstyle,caption={#1},label={#2}}}{}

\begin{document}
\section{}
%\lstset{extendedchars=\true, inputencoding=utf8/latin1}
%\lstinputlisting[style=myxmlstyle, caption={\acl{OSM}}-\ac{Bsp.},label=lst:OSM02, firstline=875, lastline=902]{listings/josm_Bremen-Falltum.osm}

%\begin{myxml}{Some xml source }{xml}
%testgrüße
%\end{myxml}
\end{document}
Also alle Dateien (auch die *.tex) habe ich als UTF8 unter Windows abgespeichert.
Nun weiß ich aber nicht, wo genau das "inputencoding=utf8/latin1" alles hin muss. In meinen style, oder in die Parameter von "lstinputlisting" oder muss ich jedes mal doch ein "lstset" vor das "lstinputlisting" machen und es dort eintragen?

1. Mir fehlt einfach die Ordnung in diesem System. Könnte das einer für mich testen und dann sagen, wo es wie genau hingehört und warum:?:

2. Muss es eigentlich "inputencoding=utf8/latin1" sein, oder reicht nicht auch "inputencoding=utf8".:?:

Grüße Oekel

Verfasst: Mi 1. Okt 2014, 11:54
von esdd
Dein Code ist für andere nicht lauffähig.

Verfasst: Mi 1. Okt 2014, 11:58
von Johannes_B
1. Kein Minimalbeispiel, läuft nämlich nicht durch ;-)
2. Ja, du musst laut Anleitung eine 1Bit-Kodierung angeben. Listingsutf8 macht dann Magic (anders kann man es echt nicht sagen)
3. Probier es aus. Du kannst das global setzen, oder als Parameter beim Laden übergeben.
\begin{filecontents*}{\jobname.code}
	<?xml version="1.0" encoding="iso-8859-1"?>
	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
	Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
	<html xmlns="http://www.w3.org/1999/xhtml">
	<html dir="ltr">
	<title=äÖß>
\end{filecontents*}
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{listingsutf8}
\usepackage[ngerman]{babel}
\usepackage{xcolor}

\lstdefinestyle{myxmlstyle}{
	inputencoding=utf8/latin1,%%%%%%%%<- set here
   extendedchars=true,
   belowcaptionskip=5pt,
   xleftmargin=1.8em,   xrightmargin=0.5em,
   numbers=left, numberstyle=\small\ttfamily\bf,
   frame=single, breaklines=true, breakatwhitespace=true, breakindent=0pt,
   emph={}, emphstyle=\color{red},
   basicstyle=\small\ttfamily,
   columns=fullflexible,
   showstringspaces=false,
   commentstyle=\color{gray}\upshape,
   morestring=[b]",
   morestring=[s]{>}{<},
   morecomment=[s]{<?}{?>},
   morecomment=[s][\color{orange}]{<!--}{-->},
   keywordstyle=\color{cyan},
   stringstyle=\color{black},
   identifierstyle=\color{blue},
   morekeywords={version,type, upload, generator, id, action, visible, lat, lon, ref, k, v}
}

\lstnewenvironment{myxml}[2]
  {\lstset{language={XML},inputencoding=utf8/latin1,style=myxmlstyle,caption={#1},label={#2}}}{}

\begin{document}
\section{}
\lstinputlisting[style=myxmlstyle, caption={Some nice
caption}]{\jobname.code}


Ich bin kein Minimalbeispiel, obwohl ich kompiliere.
\end{document}
 

Verfasst: Mi 1. Okt 2014, 13:28
von Oekel
Hi, ja das war dumm die \acros und \colours drin zu lassen.

Ich habe leider immer noch Probleme bei der Anwendung der
\lstnewenvironment{myxml}[2] 
  {\lstset{language={XML},inputencoding=utf8/latin1,style=myxmlstyle,caption={#1},label={#2}}}{}
Jetzt mal aus dem letzten Post.
Könnte mir da noch Jemand ein Bsp. geben, das funktioniert?
\begin{myxml}{Some xml source }{xml}
Viele Grüße Oekel
\end{myxml}

Verfasst: Mi 1. Okt 2014, 13:33
von Johannes_B
Nein. Das Paket kann nur externe Dateien einlesen und konvertieren.

Wie kann ich Umlaute mit dem Paket listings darstellen?