Renewcommand soll Optionen UND Parameter setzen

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


tomtex
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Fr 22. Sep 2017, 15:57

Renewcommand soll Optionen UND Parameter setzen

Beitrag von tomtex »

Hallo,

ich möchte gerne, dass pdflatex das Kommando
\includegraphics[width=6cm]{my_graphic_name}
wie dieses Kommando behandelt:
\includegraphics[width=6cm]{\detokenize{my_graphic_name}}
Mein Ansatz (einer von vielen) war so:
\renewcommand{\includegraphicsss}[2][]{\includegraphics[#1]{\detokenize{#2}}
pdflatex brach ab:
! File ended while scanning use of \@xargdef.
<inserted text> 
                \par 
<*> page.tex
Ferner möchte, beim Aufruf von includegraphics ohne Optionen,
das neue Kommando auch ohne Optionen aufrufen:

Aus:
\includegraphics{my_graphic_name}
wird:
\includegraphics{\detokenize{my_graphic_name}}
Was habe ich oben falsch gemacht/gedacht.

Gruß
Tom

Gast

Beitrag von Gast »

Wozu? Unterstriche in den Dateinamen von \includegraphics sind auch ohne explizites \detokenize kein Problem.

markusv
Forum-Meister
Forum-Meister
Beiträge: 947
Registriert: Do 3. Sep 2015, 17:20
Wohnort: Leipzig

Re: Renewcommand soll Optionen UND Parameter setzen

Beitrag von markusv »

Moin.

Unabhängig von Gasts Kommentar fehlt bei
\renewcommand{\includegraphicsss}[2][]{\includegraphics[#1]{\detokenize{#2}}
eine schließende geschweifte Klammer }, die zum erwähnten Fehler führt.
Wäre Microsoft Word für das Schreiben von Büchern entwickelt worden,
würde es Microsoft Book heißen.

Unkomplizierte und schnelle LaTeX-Hilfe, bspw. Erstellung von Vorlagen und Bewerbungen:
Help-LaTeX@web.de

tomtex
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Fr 22. Sep 2017, 15:57

Beitrag von tomtex »

Aus dem mrunix Forum:

Ändere
\usepackage{graphicx}
in
\usepackage{graphicx}
\usepackage{grffile}
damit ging es ohne renewcommand

Gast

Beitrag von Gast »

Ich habe das Gefühl, du verheimlichst uns hier wesentliches. Wie oben bereits erwähnt: \includegraphics{my_graphic_name} funktioniert ohne \detokenize und ohne grffile.

In der Regel ist es natürlich zielführender, das tatsächliche Problem auch zu benennen und zu zeigen. :roll:

Ich setze die Frage jetzt trotzdem mal auf beantwortet. Wenn du anderer Meinung bist, kannst du das ja wieder ändern.

tomtex
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Fr 22. Sep 2017, 15:57

Beitrag von tomtex »

Ich habe eine autogernerierten Latex-Output in ein Dokument eingebunden.
Mit einigen Bildernamen kam Latex nicht zurecht.
Ein manuelles beheben mit \detokenize{} hatte funktioniert.

Ersatzweise hat sich durch \usepackage{grffile} mein Problem erledigt.

Daher könnte man diese Anfrage schließen.
Allerdings wäre für mich die Beantwortung meiner eigentlichen Fragestellung
auf abstrakter Ebene Interessant.
Also, wie implementiere ich mit renewcommand, dass aus
\a[x]{y}
dieser Befehl abgebildet wird:
\a[x]{\b{y}}
?

Gruß
Tom

Gast

Beitrag von Gast »

Beachte bitte, dass verlinkte Seiten integrale Bestandteile von Kommentaren sind.

markusv
Forum-Meister
Forum-Meister
Beiträge: 947
Registriert: Do 3. Sep 2015, 17:20
Wohnort: Leipzig

Beitrag von markusv »

Hier mal ein Beispiel mit \textbf{} bzw. \textcolor{}{}.
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{xcolor}
\newcommand\wichtig[2][red]{\textcolor{#1}{#2}}
\let\wichtiger\wichtig
\renewcommand{\wichtiger}[2][red]{\textcolor{#1}{\textbf{#2}}}
\begin{document}
nicht wichtig

\wichtig{wichtig}

\wichtig[green]{wichtig aber grün}

\wichtiger{wichtiger}

\wichtiger[green]{wichtiger aber grün}
\end{document}
Wäre Microsoft Word für das Schreiben von Büchern entwickelt worden,
würde es Microsoft Book heißen.

Unkomplizierte und schnelle LaTeX-Hilfe, bspw. Erstellung von Vorlagen und Bewerbungen:
Help-LaTeX@web.de

Gast

Beitrag von Gast »

Vorsicht mit \let in LaTeX. → letltxmacro

Gast

Beitrag von Gast »

Wobei das \let\wichtiger\wichtig in obigem Beispiel eher sinnlos ist, da \wichtiger anschließend ohnehin umdefiniert wird.

Antworten