Reihenfolge der Kommandoauflösung

Fragen und Probleme, die nicht den obigen Kategorien zugeordnet werden können


olpo
Forum-Anfänger
Forum-Anfänger
Beiträge: 15
Registriert: Fr 1. Sep 2017, 19:10

Reihenfolge der Kommandoauflösung

Beitrag von olpo »

Hallo,

wie kann ich festlegen, dass zuerst der innere Befehl aufgelöst wird, und dann der äußere?

Ich habe nämlich ein command \fig{} definiert, bei dem ich gerne \xcapitalisewords verwenden möchte, falls ich \fig{} am Satzanfang verwende.

Das wird aber nicht kompiliert, da wohl zuerst \xcapitalisewords angewendet wird und sich daraus ein groß geschriebener Befehl \Fig{} ergibt.
Es müsste zuerst \fig{} aufgelöst werden und dann \xcapitalisewords{figure reference}.
\documentclass{article} 
\usepackage[british]{babel} 

\newcommand{\fig}[1]{figure\@~\ref{#1}}

\begin{document} 

\fig{reference}

% so geht's leider nicht.
% Es sollte Fig. ?? rauskommen
%
%\xcapatalisewords{\fig{reference}}
 
\end{document}

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

Beitrag von markusv »

Für die korrekte Referenzierung gibt es doch geeignete Pakete, bspw. cleveref.
\documentclass[british]{article} 
\usepackage{babel} 
\usepackage[noabbrev]{cleveref}%Umstellung von "fig." auf "figure" 
\begin{document} 
\begin{figure}
\caption{}\label{reference}
\end{figure}
This \cref{reference} starts in the middle of a sentence. \Cref{reference} is for the start.
\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

olpo
Forum-Anfänger
Forum-Anfänger
Beiträge: 15
Registriert: Fr 1. Sep 2017, 19:10

Beitrag von olpo »

Ok, da habe ich ein doofes Bsp. ausgesucht.
ZB. habe ich auch das newcommand \seechap{}, bei dem das Problem auch auftritt.

Was ist denn mit \expandafter?
Ist das vielleicht was ich suche?

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

olpo hat geschrieben: Was ist denn mit \expandafter?
Ist das vielleicht was ich suche?
Dein Beispiel definiert \xcapitalisewords gar nicht, daher kann man auch nicht wissen, was (und wieso) nicht funktioniert und wie man es reparieren könnte.

olpo
Forum-Anfänger
Forum-Anfänger
Beiträge: 15
Registriert: Fr 1. Sep 2017, 19:10

Beitrag von olpo »

u_fischer hat geschrieben:Dein Beispiel definiert \xcapitalisewords gar nicht, daher kann man auch nicht wissen, was (und wieso) nicht funktioniert und wie man es reparieren könnte.
Doch, in der letzten Zeile vor end{document} steht's.
Ich habe es auskommentiert, damit es baut.

Stamm-

Anwendung ist nicht gleich Definition

Beitrag von Stamm- »

olpo hat geschrieben:Doch, in der letzten Zeile vor end{document} steht's.
Ich habe es auskommentiert, damit es baut.
In der Zeile wird es angewendet und nicht definiert. Woher also kommt dieser Befehl (Paket, eigene Definition mit \newcommand in einer externen Datei, ...)?

Antworten