Skip to content

Inline-Gleichung Nummer

Wenn Sie auf ein Detail stoßen, das Sie zweifeln lässt, können Sie uns einen Kommentar hinterlassen, und wir werden versuchen, Ihnen so schnell wie möglich zu helfen.

Lösung:

Geben Sie hier Bildbeschreibung ein

documentclass{article}

usepackage{amsmath}
newcommand{inlineeqnum}{refstepcounter{equation}~~mbox{(theequation)}}

begin{document}

Some text $E = mc^2 inlineeqnumlabel{eqn:einstein}$ some more text.

Some text eqref{eqn:einstein} some more text.

end{document}

Bedenken Sie die mögliche Verwirrung, wenn Sie die Gleichungsnummer als mögliches Element der Gleichung betrachten.

Für den Fall, dass meine marginpar Idee für dich in Ordnung ist, würde dies es erlauben:

documentclass{scrartcl}

usepackage{lipsum}
usepackage{marginnote} % better placement than marginpar

%CODEBLOCK
newcounter{inlinelabel}[section]
lettheinlinelabelbaktheinlinelabel
renewcommand{theinlinelabel}{(thesection.theinlinelabelbak)}
newcommand{inlinelabel}[1]{%
    marginnote{%
        refstepcounter{inlinelabel}label{#1}%
        theinlinelabel%
    }%
}
%CODEBLOCK

begin{document}
section{first section}
$mc^2$inlinelabel{ineq:mc2}
lipsum[1]
also see equation ref{ineq:mc2}.
end{document}

Um Verwirrung zu vermeiden, sollten Sie vielleicht nicht einen benutzerdefinierten Zähler, sondern den Gleichungszähler verwenden. Dazu ändern Sie den obigen Inhalt von %CODEBLOCK zu:

newcommand{inlinelabel}[1]{%
    marginnote{%
        refstepcounter{equation}label{#1}%
        theequation%
    }%
}

EDIT:
Für die Ausrichtung der anderen Equationlabels, versuche (es funktioniert für align der amsmath-Paketes, aber ich habe keine anderen getestet):

makeatletter
def[email protected]#1{[email protected]@@{marginnote{#1}}}
makeatother

Zur anderen Frage: Man könnte auch die Beschriftung neben die Gleichung setzen, wie in Werners Antwort. Ansonsten habe ich im Moment keine Idee.

EDIT2:
Mir ist gerade aufgefallen, dass marginnote zwei auf derselben Zeile aufgerufene Noten übereinander setzt. Deshalb habe ich den Befehl geändert inlinelabel:

newcommand{inlinelabel}[2][0]{%
    refstepcounter{equation}label{#2}%
    marginnote{%
        ifnum#1>0%
            addtocounter{equation}{-#1}%
            newcountinlinecount%
            inlinecount=0%
            loopifnuminlinecount<#1%
            setbox0hbox{theequation}%
            hskipwd0,% This % was missing resulting in more space than 1ex
            hskip1ex%
            stepcounter{equation}%
            advanceinlinecount by 1%
            repeat%
        fi%
        theequation%
    }%
}

Jetzt kann man den Befehl inlinelabel mit einem optionalen Argument aufrufen, das die Anzahl der vorherigen Gleichungen in dieser Zeile angibt. Das Ergebnis sieht wie folgt aus:

Ergebnisse

Und dies ist der Inhalt von begin{document}...end{document} in der obigen Abbildung:

$mc^2$inlinelabel{ineq:mc2}$E=mgh$inlinelabel[1]{ineq:emgh}$A=pi
r^2$inlinelabel[2]{ineq:apir}
lipsum[1]
also see equation ref{ineq:mc2}.
begin{align}
    E = hf
    label{eqn:ehf}
end{align}

EDIT3: Ich habe die Funktion noch einmal geändert (jetzt werden die Kommas in den Marginnotes nur noch einmal und nicht mehr mehrfach ausgegeben). Die neue vollständige MWE zeigt einige Einschränkungen dieses Codes.

documentclass{scrartcl}

usepackage{lipsum}
usepackage{marginnote} % better placement than marginpar
usepackage{amsmath}

makeatletter
newcommand{@commaskip}{%
    setbox0hbox{,}%
    hskipwd0relax%
}
newcommand{@labelskip}{%
    setbox0hbox{theequation}%
    hskipwd0%
    stepcounter{equation}%
}
newcommand{@additionalspace}{hskip1ex}

newcommand{inlinelabel}[2][0]{%
    refstepcounter{equation}label{#2}%
    marginnote{%
        ifnum#1>0%
            addtocounter{equation}{-#1}%
            newcount@inlinecount%
            @inlinecount=0%
            @labelskip%
            loopifnum@inlinecount[email protected]#1{[email protected]@@{marginnote{#1}}}
makeatother

begin{document}
section{first section}
$E=mc^2$inlinelabel{ineq:mc2}
nice
$E=mgh$inlinelabel[1]{ineq:emgh}
equations
$A=pi r^2$inlinelabel[2]{ineq:apir}
being
$U=2pi r$inlinelabel[3]{i}
nice
$E=hf$inlinelabel[4]{ii}. $H=ot$inlinelabel[5]{iii}.
lipsum[1]
also see equation ref{ineq:mc2}.
begin{align}
    E = hf
    label{eqn:ehf}
end{align}
Note that verb|eqref| doesn't work with this setup: eqref{eqn:ehf}. This is
because of the changes made to verb|[email protected]|
end{document}

Bewertungen und Kommentare



Nutzen Sie unsere Suchmaschine

Suche
Generic filters

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.