Hallo, ich habe ein Projekt, in dem Listings auf den Seiten eingebunden werden. Nun möchte ich gerne alle listings auf einen Schlag ausblenden. ist das Möglich? Open in writeLaTeX
\documentclass{scrartcl} \usepackage{listings} \begin{document} \begin{lstlisting} #... \end{listing} Hallo Welt! \end{document} Es soll in der PDF nur Hallo Welt! stehen, ohne dass ich das listing aus dem Dokument lösche. gefragt 20 Sep '14, 15:31 bor44
Ergebnis 5 von 7
show 2 more comments
|
Das Paket Open in writeLaTeX
\documentclass{scrartcl} \usepackage{listings} \makeatletter \lst@AddToHook{PreSet}{\def\lst@firstline{10000000\relax}% \def\lst@lastline{0\relax}\let\lst@linerange\@empty} \makeatother \begin{document} \begin{lstlisting} #... \end{lstlisting}% Hier hattest Du einen Fehler in Deinem angeblichen Minimalbeispiel! Hallo Welt! \end{document} Allerdings funktioniert das nicht mehr, wenn man die zugehörigen Optionen bei Open in writeLaTeX
\documentclass{scrartcl} \usepackage{listings} \makeatletter \lst@AddToHook{PreSet}{\def\lst@firstline{10000000\relax}% \def\lst@lastline{0\relax}\let\lst@linerange\@empty} \makeatother \begin{document} \begin{lstlisting}[firstline=1,lastline=10] #... \end{lstlisting}% Hier hattest Du einen Fehler in Deinem angeblichen Minimalbeispiel! Hallo Welt! \end{document} Es gibt aber einen weiteren Haken, der nach den Optionen ausgewertet wird: Open in writeLaTeX
\documentclass{scrartcl} \usepackage{listings} \makeatletter \lst@AddToHook{Init}{\def\lst@firstline{10000000\relax}% \def\lst@lastline{0\relax}\let\lst@linerange\@empty} \makeatother \begin{document} \begin{lstlisting}[firstline=1,lastline=10] #... \end{lstlisting}% Hier hattest Du einen Fehler in Deinem angeblichen Minimalbeispiel! Hallo Welt! \end{document} Zwar wird die Open in writeLaTeX
\documentclass{scrartcl} \usepackage{listings} \makeatletter \lst@AddToHook{Init}{\def\lst@firstline{10000000\relax}% \def\lst@lastline{0\relax}\let\lst@linerange\@empty} \makeatother \begin{document} \begin{lstlisting}[firstline=1,lastline=10,caption=Test,frame=tlrb] #... \end{lstlisting}% Hier hattest Du einen Fehler in Deinem angeblichen Minimalbeispiel! Hallo Welt! \end{document} Will man auch das nicht, müsste man sich etwas komplett anderes ausdenken, beispielsweise: Open in writeLaTeX
\documentclass{scrartcl} \usepackage{listings} \usepackage{filecontents} \renewcommand*\lstlisting[1][]{\filecontents{dummy.tex}} \def\endlstlisting{\endfilecontents} \begin{document} \begin{lstlisting}[firstline=1,lastline=10,caption=Test,frame=tlrb] #... \end{lstlisting}% Hier hattest Du einen Fehler in Deinem angeblichen Minimalbeispiel! Hallo Welt! \end{document} Dabei wird die Man könnte sich natürlich auch eine schönere Lösung basteln, die zwar grundsätzlich wie der letzte Vorschlag funktioniert, bei der aber die dummy-Datei nicht geschrieben wird. Obige Lösung war jedoch schön einfach und relativ leicht zu verstehen. Daher habe ich darauf verzichtet, tiefer einzusteigen. Welche Lösung, am ehesten in Deinem Sinn ist, kann ich mit den gegebenen Informationen leider nicht beurteilen. beantwortet 22 Sep '14, 11:31 gast3 Aha, also je nachdem ob -im letzten Code- die Zeile
(22 Sep '14, 11:57)
cis
Die Umdefinierung von
(22 Sep '14, 14:08)
gast3
|
Ich nehme zwar an, ist wie im Beitrag von @Ijon gemeint, andererseits könnte mit "alle Quellcodes ausblenden" auch gemeint sein, das in der fertigen PDF zu tun. Das lese ich im Startpost nicht raus (!). Ausgabedatei (tut laut Handbuch mit Adobe Reader, Foxit Reader, evince) Open in writeLaTeX
\documentclass{scrreprt} \usepackage{selinput} \SelectInputMappings{adieresis={ä}, germandbls={ß}} \usepackage[ngerman]{babel} \usepackage{listings} \usepackage{xcolor} \usepackage{ocgx} \def\Schalter{% \switchocg{ocg1}{\fcolorbox{blue}{lightgray}{\textcolor{blue!50!cyan}{\Large Quellcodes ausblenden}}} }% \usepackage[automark]{scrlayer-scrpage} \pagestyle{scrheadings} \cfoot[\Schalter]{\Schalter} \chead[\Schalter]{\Schalter} \usepackage{lipsum} %========= \begin{document} %========= \lipsum[66] \begin{ocg}{OCG 1}{ocg1}{1} \begin{lstlisting} 10 PRINT "HELLO, WORLD!" 20 GOTO 10 30 MAKE IT BEST \end{lstlisting} \end{ocg} \lipsum[66] \Schalter \begin{ocg}{OCG 2}{ocg1}{1} \begin{lstlisting} 10 PRINT "HELLO, WORLD TOO!" 20 Do NOTHING \end{lstlisting} \end{ocg} %========= \end{document} %========= beantwortet 22 Sep '14, 13:29 cis Man weiß ja nicht, wofür er das braucht. Z.B. bei einem Beamervortrag könnte so ein ocgx-"Dokumentschalter" nützlich sein.
(22 Sep '14, 16:39)
cis
|
Der Satz mag zu den Ohren raushängen, aber: Bitte gib ein vollständiges und Lauffähiges Minmal-Bsp. an (reichen ja ein, zwei listings...). Und Ausblenden heißt was? In der PDF dann, oder wie? Möglich ist alles, aber wie gesagt, sollte man erstmal wissen, was Sache ist. ;)
Willst du die listings komplett ignorieren (das Dokument wird kürzer) oder möchtest du den Platz reservieren (und beispielsweise mit Texfarbe = Hintergrundfarbe tricksen)?
Ich möchte die listings komplett ignorieren, sodass das Dokument kürzer wird.
@cis: Ich finde diese Seite wirklich bemerkenswert und auch sehr praktisch. Allerdings kann in diesem Fall doch keiner was mit einem Minimalbeispiels anfangen. Dafür ist doch die Frage allgemein gestellt, aber bitte..
@bor44 Doch, man kann was damit anfangen: man könnte seinen Lösungsvorschlag direkt am Beispiel erarbeiten und testen, ohne sich selbst ein Beispiel von Null an bauen zu müssen. Es geht nicht immer darum, ob es allgemein oder sonnenklar ist, sondern um einfache Umsetzung. Mach es halt den TeX-Kollegen, wenn Du magst, viel einfacher mit einem Startbeispiel, wenn Du schnell eine Lösung möchtest. Ist nur ein Tipp. Ich poste fast immer nur getestetes.
Ich habe meine Frage um ein Minimalbeispiel erweitert. Ich hoffe, dass das hilft.
Das Beispiel läuft nicht fehlerfrei. Abgesehen davon würde ich es mit dem comment Paket versuchen.