goLaTeX - Mein LaTeX-Forum

Mein LaTeX-Forum


Login  | Registrieren
Forum
      Option
[Erweitert]
  • Diese Seite weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Welche Umgebungen können bei newcommand benutzt werden?

 

jago
Forum-Newbie
Forum-Newbie

Beiträge: 7
Anmeldedatum: 06.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.01.2017, 16:31     Titel: Welche Umgebungen können bei newcommand benutzt werden?
  Antworten mit Zitat      
Hallo zusammen,

wer kann mir sagen warum das erste Beispiel kompiliert wie erwartet, aber das zweite gar nicht?

Viele Grüße,
Jago

Code • Öffne in Overleaf
\documentclass{article}
\newcommand{\dummy}[1]{#1}
\begin{document}
\dummy{
\begin{center
}
halloWelt
\end{center}
}
\end{document}


Code • Öffne in Overleaf
\documentclass{article}
\newcommand{\dummy}[1]{#1}
\begin{document}
\dummy{
\begin{verbatim
}
halloWelt
\end{verbatim}
}
\end{document}
Private Nachricht senden Benutzer-Profile anzeigen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.01.2017, 16:46     Titel:
  Antworten mit Zitat      
verbatim und ähnliche Umgebungen und Befehle arbeiten mit catcode-Änderungen. Ein catcode gibt grob gesagt an, wie ein Zeichen der Eingabe zu behandeln ist, beispielsweise ob es einen Befehl einleitet oder ein Buchstabe ist oder eine Ziffer oder ein Leerzeichen oder sogar zu ignorieren usw.

Eine catcode-Änderung hat also direkte Auswirkungen darauf, wie ein Zeichen beim Einlesen verarbeitet wird. Bei \dummy{foo} wird foo bereits von \dummy eingelesen. Damit stehen die catcodes der Zeichen bereits fest, bevor sie in die Umgebung verbatim gestellt werden. Die catcode-Änderungen der Umgebung haben also keine Wirkung mehr darauf.

Das betrifft alle Umgebungen und Befehle, die mit catcode-Änderungen arbeiten.

jago
Forum-Newbie
Forum-Newbie

Beiträge: 7
Anmeldedatum: 06.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.01.2017, 15:55     Titel:
  Antworten mit Zitat      
Ok vielen Dank auf jeden Fall für deine Antwort.

Gibt es vielleicht einen einfachen Weg das Problem zu umgehen?

Viele Grüße,
Jago
Private Nachricht senden Benutzer-Profile anzeigen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.01.2017, 17:55     Titel:
  Antworten mit Zitat      
Mit Hilfe von Paket auf CTANverbatim und ähnlichen Paketen kann man eigene Umgebungen definieren, die auf der verbatim-Umgebung basieren. Näheres ist der jeweiligen Paketanleitung zu entnehmen.

Für einen Befehl müsste man dagegen einen von \verb abgeleiteten Befehl definieren. Das ist aber nicht trivial. Solange der Code des Befehls nur zusätzlichen Code vor \verb ausführen soll, ist es kein Problem. Dann darf der neue Befehl das Argument nur nicht selbst anfassen:
Code • Öffne in Overleaf
\documentclass{article}
\newcommand*{\myverb}{Jetzt kommt ein Befehl: \verb}
\begin{document}
\myverb|\document|
\end{document}
Hier ist also \myverb erst einmal ein Befehl ohne Argument und erst das \verb am Ende von \myverb verarbeitet das Argument (bzw. ein davon aufgerufenes Makro).

Für einen Befehl, der danach noch etwas ausführen soll, geht das nicht so einfach. Da müsste man sich schon intensiv mit der Definition aus dem LaTeX-Kern befassen.

Da ich nicht weiß, was du tatsächlich vor hast, weiß ich leider auch nicht, ob dir das weiter hilft.

jago
Forum-Newbie
Forum-Newbie

Beiträge: 7
Anmeldedatum: 06.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.02.2017, 10:49     Titel:
  Antworten mit Zitat      
Sorry für meine späte Reaktion.

Die Antworten haben mir auf jeden Fall weiter geholfen. Danke dafür.
Dabei belass ich es erstmal Wink

Liebe Grüße,
Jago
Private Nachricht senden Benutzer-Profile anzeigen

Neues Thema eröffnen Neue Antwort erstellen



Options and Permissions
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen
.

goLaTeX ist Teil der goForen
goForen.de goMATLAB.de goLaTeX.de goPCB.de


  Impressum | FAQ | goLaTeX RSS Button RSS-Feed

Copyright © 2008 - 2017 goLaTeX.de