PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LatexCode als Code und kompiliert darstellen



DCH
22-02-2007, 21:40
Hi,
Ich bin dabei mir ein paar wichtige Latex code snipplets zu notieren. Damit ich den vorher - nachhereffekt sehe hätte ich gerne eine Gegenüberstellung des Latex codes mit dem kompilierten Resultat deshalb hätte ich mir gerne ein neues Kommando geschreiben:

\newcommand{\mycode}[1]{\textbf{CODE:} \colorbox{gray}{\verb_#1_}} $\Rightarrow$ {#1}}

\mycode{1, \dots, 10}
sollte ungefähr folgendes liefern:
CODE: 1, \dots, 10 -> 1, ..., 10

leider funktioniert das mit \verb nicht!
Auch \begin{verbatim} #1 \end{verbatim} geht nicht
Hat wer eine Idee?
LG, DCH

pospiech
22-02-2007, 22:38
dafür gibt es ein extra Paket. Namen weiß ich aber nicht mehr.

Matthias

edico
22-02-2007, 23:21
verbatim resp. verb sind etwas komplizierter ;-)
und vermutlich ist \verb ein sehr missbrauchter Befehl ... häufig genug
helfen \alltt, \texttt ... schon aus der Klemme ...

In Deinem Falle empfehle ich: listings package genauer zu studieren
(Herbert Voss hat ein sehr schönes, allen empfehlenswertes MathKompendium nach diesem Strickmuster gesetzt):

%\listfiles \errorcontextlines=100
\documentclass{article}
\usepackage{lstxmpl}
\begin{document}
\begin{Beispiel}[numbersep=2em,relwidth=0.6,columnsep=25pt]
1, \ldots, 10
\end{Beispiel}
\end{document}

edico

DCH
22-02-2007, 23:30
hi,
im listing package bin ich leider nicht fündig geworden
woher bekomme ich das Package lstxmpl her? - konnte es im MiKtex Packagemanager und unter google nicht finden?

edico
23-02-2007, 08:25
listings.sty - sollte auch bei Deiner Distri dabei sein
und 'listing' habe ich nicht geschrieben oder was ist bei Dir angekommen ;-)
lstxmpl ist im package 'embedded'

edico

DCH
23-02-2007, 09:23
sorry ich habe das 's' bei 'listings' vergessen. listings habe ich schon gemacht - habe es auch schon mit \lstinline{#1} statt \verb versucht.

das lstxmpl package ist leider bei mir nicht embedded - wird auch nicht automatisch nachgeladen wie es normal der fall ist wenn ein package fehlt. Ich verwenden MiKTeX 2.5.
LG, DCH

edico
23-02-2007, 10:36
Ja, stimmt, ist nicht in der source.

%% Begin of file 'lstxmpl.sty' .
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesPackage{lstxmpl}
[2006/02/14 v0.1 helper macros for listings environment]
% based on package pst-example-sty [2004/07/20 v0.1f] (percy)

\DeclareOption{draft}{\PassOptionsToPackage{\Curre ntOption}{listings}}
\DeclareOption{final}{\PassOptionsToPackage{\Curre ntOption}{listings}}

\ProcessOptions\relax

\RequirePackage[writefile]{listings}
\RequirePackage{calc,color}

\newsavebox\PSB@box \newdimen\PSB@tempdim

\lst@Key{relwidth}{.5}{\def\PSB@relwidth{#1}}
\lst@Key{colwidth}{\z@}{\def\PSB@colwidth{#1}}
\lst@Key{columnsep}{2em}{\def\PSB@columnsep{#1}}
\lst@Key{center}{false}[t]{\lstKV@SetIf{#1}\PSB@center}
% See: `lstdoc.sty'

%
\lstnewenvironment{Beispiel}[1][center=true]%
{%
\setkeys{lst}{#1}%
\setbox\PSB@box=\hbox\bgroup
\PSB@center\else
\setlength\linewidth{\linewidth-\PSB@columnsep%
-\widthof{\lst@numberstyle{\thelstnumber\hspace{\ls t@numbersep}}}}%
\ifdim\PSB@colwidth>\z@
\setlength\linewidth{\linewidth-\PSB@colwidth}
\else
\setlength\linewidth{\linewidth-\PSB@relwidth\linewidth}
\fi
\fi
\lst@BeginAlsoWriteFile{\jobname.tmp}%
}
{%
\lst@EndWriteFile\egroup
\PSB@center\bigskip\noindent\minipage[c]{\linewidth}
\center%\removelastskip%
\else
\center%\removelastskip%
\setlength\PSB@tempdim{\linewidth-\PSB@columnsep}%
% Warum hier nochmal -\PSB@columnsep?? hv
%
\ifdim\PSB@colwidth>\z@
\minipage[c]{\PSB@colwidth}%
\else%
\minipage[c]{\PSB@relwidth\PSB@tempdim}%
\fi%
\fi
\PSB@sampleInput%
\endminipage%
\PSB@center\\[2ex]\else%
\hfill%
\ifdim\PSB@colwidth>\z@
\minipage[c]{\PSB@tempdim-\PSB@colwidth}%
\else%
\minipage[c]{\PSB@tempdim-\PSB@relwidth\PSB@tempdim}%
\fi%
\fi
\medskip%
\lst@numberstyle{\hspace{\lst@numbersep}}\usebox{\ PSB@box}%
% \hfill\usebox{\PSB@box}%
\PSB@center\else\endminipage\fi%
\endcenter\removelastskip%
}
%

\newcommand\PSB@eat@version[1][]{}

\def\PSB@sampleInput{%
\begingroup
\renewcommand\documentclass[2][]{\PSB@eat@version}%
\renewcommand\usepackage[2][]{\PSB@eat@version}%
\renewenvironment{document}{}{}%
\catcode`\%=14\relax\catcode`\^^M=5\relax%
% Reicht das so? RN
\leavevmode\input{\jobname.tmp}%
\endgroup%
}

% Aus `ltxdoc.cls'
\def\cmd#1{\cs{\expandafter\cmd@to@cs\string#1}}
\def\cmd@to@cs#1#2{\char\number`#2\relax}
\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}}
\providecommand\marg[1]{%
{\ttfamily\char`\{}\meta{#1}{\ttfamily\char`\}}}
\providecommand\oarg[1]{%
{\ttfamily[}\meta{#1}{\ttfamily]}}
\providecommand\parg[1]{%
{\ttfamily(}\meta{#1}{\ttfamily)}}

% Aus `doc.sty'
\DeclareRobustCommand\meta[1]{%
\ensuremath\langle
\ifmmode \expandafter \nfss@text \fi
{%
\meta@font@select
\edef\meta@hyphen@restore
{\hyphenchar\the\font\the\hyphenchar\font}%
\hyphenchar\font\m@ne
\language\l@nohyphenation
#1\/%
\meta@hyphen@restore
}\ensuremath\rangle
}
\def\meta@font@select{\itshape}


\definecolor{hellgelb}{rgb}{1,1,0.85}
\definecolor{colKeys}{rgb}{0,0,1}
\definecolor{colIdentifier}{rgb}{0,0,0}
\definecolor{colComments}{rgb}{1,0,0}
\definecolor{colString}{rgb}{0,0.5,0}

\lstset{%
language=[AlLaTeX]TeX,%
float=hbp,%
basicstyle=\footnotesize\ttfamily,%
identifierstyle=\color{colIdentifier},%
keywordstyle=\color{colKeys},%
stringstyle=\color{colString},%
commentstyle=\itshape\color{colComments},%
% columns=flexible,%
% columns=fullflexible,%
columns=fixed,
tabsize=4,%
frame=tbr,%single,%-by-edico
extendedchars=true,%
showspaces=false,%
showstringspaces=false,%
numbers=left,%
numberstyle=\tiny\ttfamily,%
breaklines=true,%
breakindent=10pt,%
backgroundcolor=\color{hellgelb},%
breakautoindent=true,%
captionpos=t,%
xleftmargin=1em,%
xrightmargin=\fboxsep,%
numbersep=1em,%
relwidth=0.5,%
columnsep=10pt%
}

\emergencystretch=3em
%
% language specific names

\endinput
%%
%% End of file `lstxmpl.sty'.

Pack das file 'einfach' in das 'main directory' zum tex-file, und wenn listings on board ist, sollte es Dir Freude bereiten.

edico

voss
23-02-2007, 15:35
Hi,
Ich bin dabei mir ein paar wichtige Latex code snipplets zu notieren. Damit ich den vorher - nachhereffekt sehe hätte ich gerne eine Gegenüberstellung des Latex codes mit dem kompilierten Resultat deshalb hätte ich mir gerne ein neues Kommando geschreiben:

\newcommand{\mycode}[1]{\textbf{CODE:} \colorbox{gray}{\verb_#1_}} $\Rightarrow$ {#1}}

\mycode{1, \dots, 10}
sollte ungefähr folgendes liefern:
CODE: 1, \dots, 10 -> 1, ..., 10

leider funktioniert das mit \verb nicht!
Auch \begin{verbatim} #1 \end{verbatim} geht nicht


das Paket showexpl kann das sehr elegant.
http://www.dante.de/CTAN//help/Catalogue/entries/showexpl.html

Herbert

voss
23-02-2007, 16:12
Ja, stimmt, ist nicht in der source.

%% Begin of file 'lstxmpl.sty' .
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesPackage{lstxmpl}
[2006/02/14 v0.1 helper macros for listings environment]
% based on package pst-example-sty [2004/07/20 v0.1f] (percy)
...


nur mal so als Hinweis: dies ist komplett _ohne Änderung_ von pst-example.tex
abgekupfert. Es darf somit auch nicht als eigenständiges Paket "verkauft" werden ...

denn von "based" kann hier keine Rede sein, es "ist" wäre angebrachter ...
Persönlich finde ich es ziemlich dreist, so vorzugehen ...

Herbert

Hobbes
23-02-2007, 16:37
das Paket showexpl kann das sehr elegant.
http://www.dante.de/CTAN//help/Catalogue/entries/showexpl.html

Herbert

Danke, nach sowas habe ich auch gesucht. Braucht man die Datei showexpl.cfg auch? Ohne diese Datei kann ich kompilieren. Wenn ich sie aber mitkopiere und texhash ausführe, bekomme ich für folgendes Beispiel die anschließende Fehlermeldung:


\documentclass{article}
\usepackage{showexpl}
\usepackage{listings}
\begin{document}
\begin{LTXexample}[]
\textbf{fett}
\end{LTXexample}
\end{document}

gibt die Fehlermeldung


/usr/share/texmf/tex/latex/showexpl/showexpl.cfg:49:Package Listings Error: Couldn't load requested language. }
/usr/share/texmf/tex/latex/showexpl/showexpl.cfg:49:Package Listings Error: language pstricks undefined. }

Das listings-Paket habe ich von hier: http://www.dante.de/CTAN//help/Catalogue/entries/listings.html

voss
23-02-2007, 16:41
Danke, nach sowas habe ich auch gesucht. Braucht man die Datei showexpl.cfg auch? Ohne diese Datei kann ich kompilieren. Wenn ich sie aber mitkopiere und texhash ausführe, bekomme ich für folgendes Beispiel die anschließende Fehlermeldung:


\documentclass{article}
\usepackage{showexpl}
\usepackage{listings}
\begin{document}
\begin{LTXexample}[]
\textbf{fett}
\end{LTXexample}
\end{document}

gibt die Fehlermeldung


/usr/share/texmf/tex/latex/showexpl/showexpl.cfg:49:Package Listings Error: Couldn't load requested language. }
/usr/share/texmf/tex/latex/showexpl/showexpl.cfg:49:Package Listings Error: language pstricks undefined. }

Das listings-Paket habe ich von hier: http://www.dante.de/CTAN//help/Catalogue/entries/listings.html

die cfg sind immer _persönliche_ Einstellungen, beispielsweise als Sprache PSTricks,
was es (noch) gar nicht im listings-Paket gibt. Die cfg braucht man also im allgemeinen nicht.

Herbert

Hobbes
23-02-2007, 16:43
Alles klar. Danke :)

edico
23-02-2007, 22:06
@herbert

Na ja, Herbert, ich merke, ich habe Dir anscheinend auf den Schlips getreten oder Regeln nicht so beachtet, wie es möglicherweise redlich gewesen wäre ... Ich gestehe, ich nehm mir nicht (immer) die Zeit zu überprüfen (u.a. weil ich sie auch gar nicht habe), woher ein Paket kommt, wie der Code aussieht etc., wenn ich es finde - so wohl geschehen in 2006/02/14 oder bald danach, als ich (vielleicht) vor einer vergleichbaren Fragestellung gestanden haben mag. Zumindest habe ich es 'unbeschadet' hierher kopiert, so wie seinerzeit 'gefunden' (vielleicht war's ja sogar irgenwo auf einer Deiner Seiten).

Dass diese Datei 'identisch' ist mit der 'pst-example.tex', weiss ich nicht, wenn Du es sagst, wird's sicher stimmen. Dann ist ja auch damit mein erster Hinweis erklärt, wo ich auf Dein 'Math mode' aufmerksam gemacht habe, eine Quelle, die ähnlich und vergleichbare Lösungen, die hier nachgefragt wurden, aufzeigt.

'Dreist' mag es in Deinen Augen erscheinen. Ich kann damit leben, zumal ich mir nichts selbst vorzuwerfen habe - bis auf den Tatbestand der Hilfeleistung. Da ich nichts an dem gefundenen file geändert habe, darüberhinaus auch nicht gesagt habe, dass ich der 'Creator' bin (geschweige denn je hätte behaupten wollen, weil ich sowas 'Hochgestochenes' gar nicht fabrizieren könnte), sondern vorher noch der Ansicht war, dass die Datei zum listings-Paket gehöre, wie im vorigen Posting zu lesen ist.

Ich hoffe, dass Dein Weltbild (und Deine Lorbeeren) damit wieder zurecht gerückt sind, mit denen ich mich nicht einmal im Traume zu schmücken gedachte.

edico

DCH
24-02-2007, 21:10
Danke!
Das showexpl package gefällt mir.
Thx nochmal!