Listing oder Computertext in ein Dokument einfügen

Tabellen und Grafiken erstellen und anordnen


Beeci
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: So 21. Dez 2008, 11:20

Listing oder Computertext in ein Dokument einfügen

Beitrag von Beeci »

Hallo,

wie fügt man einem LaTeX-Dokument eventuell (meist) mehrseitige Listings hinzu, das z.B. in Courier New formatiert sein soll, und erlauben muss, das manche Zeilen grau, manche Zeilen aber schwarz sind? Mit der Colorierung möchte ich "obligatorisch" und "optionell" unterscheiden.

Die Möglichkeit
{
\ttfamily Meintext Zeile 1\\
{\bfseries Meintext obligatorischer Eintrag}\\
Meintext Zeile 3 nichtobligatorischer Eintrag\\
...
}
würde mir als Anfänger einfallen.

Gibt es etwas "eleganteres", da solche Textteile sehr oft vorkommen und daher wäre wirtschaftlich per cut-and-paste arbeiten zu können.

Vielen Dank für eure Hilfe.
Beeci

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

Üblicherweise fügt man Listings mit Hilfe des listings-Pakets ein. Syntax-Hervorhebung beherrscht das Paket bereits für diverse Sprachen. Für weitere Sprachen kann man sich das definieren. Man kann auch Escape-Sequenzen definieren, die es einem ermöglichen, LaTeX-Befehle innerhalb der Listings einzuschleußen, um dann beispielsweise Teile abweichend einzufärben.

Daneben gibt es noch das Paket alltt, das zum Grundumfang von LaTeX gehört, das Paket verbatim aus den Standard-Tools, das Paket moreverb, das Paket fancyvrb und vermutlich weitere.

Da Du darauf verzichtet hast, wie im goLaTeX-Knigge explizit gewünscht ein vollständiges Minimalbeispiel anzugeben, gehe ich davon aus, dass Du auch kein Beispiel haben willst, das zeigt, wie man das konkret macht. Die Anleitungen der Pakete bzw. des Pakets, für das Du Dich entscheidest, solltest Du ohnehin lesen.

Beeci
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: So 21. Dez 2008, 11:20

Beitrag von Beeci »

Lieber KOMA,

herzlichen Dank für deine nette Antwort; zwar bin ich noch nicht erfolgreich, aber ich werde die Listings-Pakete demnächst testen. Entschuldigung, wenn ich die GoLatex-Knigge missachtet habe. Möglicherweise ist das meine Unfähigkeit einerseits, andrerseits weiß ich wirklich nicht, wie ich ein mehrseitiges Listing einfügen soll und auch das Bild, was LaTeX daraus macht (jedenfalls auf dem noch ziemlich primitivem Niveau, wie ich damit umgehe, hätte ich noch mehr "Kritik" auf mich gezogen).

Umso mehr freut mich, dass Du als Entwickler auf Anhieb verstanden hast, worum es geht und mir gleich den entscheidenden Hinweis gegeben hast.

(auch ohne irgendwelche Beispiele wie "Print{Hallo Welt};" u.s.w. - es sind halt Listings aus dem Computer heraus, wie man Programmtexte oder sonstige zu lesende Files eben gewöhnt ist, und wenn man diese in einem Artikel erklären möchte. Wie Du siehst bin ich weder LaTeX-Profi noch ein Profi-Autor, aber ich abe im stillen gehofft, LaTeX würde bestimmt auch Informatiker unterstützen; es wäre dann wirklich KEINE Unterstützung, wenn man die Programmtexte in LaTeX-Syntax umschreiben müsste , nein, das wäre eine Qual meiner Meinung nach).

Oft möchte man Texte in verschiedenen Systemen "aufs Papier" bringen und in diesen Fällen möchte man mit "kopieren" fertiger Texte arbeiten können; wenn das nicht geht, dann ist das Hilfsmittel in diesem Punkt kein Hilfsmittel. (Ich hoffe, ich habe nicht schon wieder etwas gegen die Knigge geschrieben.....aber das ist nur mein Gerechtigkeitssinn, was da spricht.)
Beeci

DonCube
Forum-Guru
Forum-Guru
Beiträge: 291
Registriert: So 29. Jun 2008, 21:17
Wohnort: Bocholt

Beitrag von DonCube »

Öhhh ich habe dein Post nur überflogen, aber mit dem listings Paket geht das alles. Kopieren --> Einfügen. Einfach deinen Programmcode kopieren und schon wird er mit highlighting abgedruckt. Sogar mit Zeilennummer wenn du willst.

Kannst du alles einstellen. Ich habe auch noch irgendwo einen beispiel code für C#. Aber finde ich gerade nicht gucke morgen nochmal nach.

Gruß
DonCube
Schau mal hier rein goLaTeX-Wiki, und gaaaanz wichtig Minimalbeispiel

matthi

komplette Quellcode Datei einfügen mit \lstinputlisting{..}

Beitrag von matthi »

weiß jemand wie das geht?
\lstset{language=C++}
\begin{lstlisting} 
\lstinputlisting{c:\mega16LCDADC.c}
 \end{lstlisting} 
funktioniert bei mir nicht, er findet die datei nicht... :?
(die datei heißt "mega16LCDADC.c" und befindet sich auf C:\ auf dem Hauptpfad)

grüße, matthias

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

\lstinputlisting

Beitrag von Stefan Kottwitz »

Hallo Matthias,

vielleicht verwende eine relative Pfadangabe, das ist sowieso empfehlenswert. Der backslash \ (nach c:) leitet in LaTeX ein Kommando ein, das kann hier ein Problem sein.

Viele Grüße,

Stefan

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

Beitrag von phi »

Wenn es unbedingt eine absolute Pfadangabe sein muss, dann verwende einfache (/) statt umgekehrter Schrägstriche (\).

matthi

Beitrag von matthi »

nun gut, ich finde die absoluten pfadangaben sinnvoller, da kann ich wenigstens davon ausgehen, dass die richtige datei verwendet wurde ;-)

ich hab es jedoch trotzdem noch nicht hinbekommen, dass der quelltext im Dokument erscheint.. dort wo ich den quelltext erwarte, steht einfach nur "\lstinputlisting{c:/mega16LCDADC.c}".. sehr verwirrend..

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

einzubindende Listings

Beitrag von Stefan Kottwitz »

Dann verwende \lstinputlisting ohne lstlisting-Umgebung.

Stefan

matthi

Beitrag von matthi »

Danke schön für den Tipp, jetzt funzt es!

Matthias

Antworten