PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : cleveref - Referenzen auf Formeln ohne Klammern?



Ede_123
08-08-2013, 14:33
Hallo zusammen,

wie erreiche ich, dass "cleveref" bei Referenzen auf Formeln die Klammern weglässt (und zwar - und das ist das Hauptproblem -auch bei Mehrfachreferenzen)?

Sprich wenn ich schreibe

Siehe \cref{eq:Gl123}, sowie \cref{eq:Gl234,eq:Gl235}...
möchte ich statt der Standardausgabe

Siehe Gleichung (1.2.3), sowie Gleichungen (2.3.4) und (2.3.5)...
eine Ausgabe ohne Klammern erhalten:

Siehe Gleichung 1.2.3, sowie Gleichungen 2.3.4 und 2.3.5...


Versucht habe ich schon

\crefformat{equation}{Gleichung~#2#1#3}
was in meinen Augen erstens unschön ist (weil ich explizit "Gleichung" schreiben muss und damit alle Babel-Funktionalität verliere) und zweitens nur bei einfachen, jedoch nicht bei Mehrfachreferenzen funktioniert.

Danke und Gruß
Ede

cgnieder
08-08-2013, 14:43
Da die Frage ohne VM (http://texwelt.de/wissen/fragen/569/was-ist-ein-vollstandiges-minimalbeispiel-oder-kurz-vm-und-wie-erstelle-ich-dieses) auskommt ist meine Anwort auch ohne eins. Wie wär's hiermit:

% eine Gleichung:
\crefformat{equation}{Gleichung~#2#1#3}
% mehrere Gleichungen:
\crefrangeformat{equation}{Gleichungen~#3#1#4 und~#5#2#6}

Grüße

Ede_123
08-08-2013, 16:47
Nein leider nicht, da das "\crefrangeformat" dem Namen entsprechend "\crefrange" Referenzen beeinflusst. Allerdings tut das entprechende "\crefmultiformat" prinzipiell was es soll. Zusammengefasst müsste es also heißen

\crefformat{equation}{Gleichung~#2#1#3}
\crefrangeformat{equation}{Gleichungen~#3#1#4 bis~#5#2#6}
\crefmultiformat{equation}{Gleichungen~#2#1#3}{ und~#2#1#3}{, #2#1#3}{ und~#2#1#3}

Mit dieser Lösung kann ich zwar erstmal leben, allerdings löst das immer noch nicht das Problem der fehlenden Lokalisierung. Wenn ich das ganze in ein englisches Dokument kopiere muss ich erst alle Labels händisch anpassen. Auch die Wahlfreiheit zwischen abgekürzten und ausgeschriebenen Labels entfällt. Geht das wirklich nicht einfacher und/oder besser?

P.S. Ich weiß was ein Minimalbeispiel ist und kann auch gern eins erstellen falls nötig. Ich dachte jedoch, dass das in diesem Fall nicht nötig ist, da es ja um ein allgemeines Problem geht, dass mit meinem konkreten Quelltext nichts zu tun hat.

cgnieder
08-08-2013, 17:07
Ein VM erpart auch immer, potentiellen Helfern eines basteln zu müssen und erhöht damit deren Motivation ;) Es soll schon Leute gegeben haben, die nur deshalb nicht geantwortet haben, weil es gefehlt hat...

Ein Vorschlag:


\documentclass{article}
\usepackage[british,ngerman]{babel}
\usepackage{translations}
\DeclareTranslation{English}{equation}{equation}
\DeclareTranslation{German} {equation}{Gleichung}
\DeclareTranslation{English}{equations}{equations}
\DeclareTranslation{German} {equations}{Gleichungen}
\DeclareTranslation{English}{Equation}{Equation}
\DeclareTranslation{German} {Equation}{Gleichung}
\DeclareTranslation{English}{Equations}{Equations}
\DeclareTranslation{German} {Equations}{Gleichungen}
\DeclareTranslation{English}{to (range)}{to}
\DeclareTranslation{German} {to (range)}{bis}

\usepackage{amsmath}
\usepackage[nosort]{cleveref}

\crefformat{equation}{\GetTranslation{equation}~#2 #1#3}
\crefrangeformat{equation}{%
\GetTranslation{equations}~#3#1#4 \GetTranslation{to (range)}~#5#2#6}
\crefmultiformat{equation}
{\GetTranslation{equations}~#2#1#3}{ \GetTranslation{and}~#2#1#3}
{, #2#1#3}
{ \GetTranslation{and}~#2#1#3}
\Crefformat{equation}{\GetTranslation{Equation}~#2 #1#3}
\Crefrangeformat{equation}{%
\GetTranslation{Equations}~#3#1#4 \GetTranslation{to (range)}~#5#2#6}
\Crefmultiformat{equation}
{\GetTranslation{Equations}~#2#1#3}{ \GetTranslation{and}~#2#1#3}
{, #2#1#3}
{ \GetTranslation{and}~#2#1#3}



\begin{document}
\begin{align}
a \label{eq:a}\\
b \label{eq:b}\\
c \label{eq:c}
\end{align}

\cref{eq:b}\par
\cref{eq:a,eq:b}\par
\cref{eq:a,eq:b,eq:c}\par
\crefrange{eq:a}{eq:c}

\Cref{eq:b}\par
\Cref{eq:a,eq:b}\par
\Cref{eq:a,eq:b,eq:c}\par
\Crefrange{eq:a}{eq:c}

\selectlanguage{British}
\cref{eq:b}\par
\cref{eq:a,eq:b}\par
\cref{eq:a,eq:b,eq:c}\par
\crefrange{eq:a}{eq:c}

\Cref{eq:b}\par
\Cref{eq:a,eq:b}\par
\Cref{eq:a,eq:b,eq:c}\par
\Crefrange{eq:a}{eq:c}

\end{document}

http://www.mrunix.de/forums/attachment.php?attachmentid=5808&stc=1&d=1375978031

Grüße

Ede_123
08-08-2013, 17:51
Oh Mann, manchmal übersieht man echt die einfachsten Lösungen...

Es genügt ein einfaches

\creflabelformat{equation}{#2#1#3}
um das Problem vollständig zu lösen.

Ich hatte das total links liegen gelassen, weil "\crefdefaultlabelformat" bei Gleichungsreferenzen nicht funktioniert hat und ich danach unbewusst irgendwie der Meinung war, dass auch "\creflabelformat" bei Gleichungen nicht funktionieren kann.

Naja, wenigstens war ich nicht der einzige der das übersehen hat. :D

cgnieder
08-08-2013, 17:54
Es genügt ein einfaches

\creflabelformat{equation}{#2#1#3}
um das Problem vollständig zu lösen.

Da kann man mal sehen...


Naja, wenigstens war ich nicht der einzige der das übersehen hat. :D

Naja, ich habe cleveref quasi noch nie benutzt, da kann so was leicht passieren ;)

Grüße