Bewertungssymbol: Konsequente Umsetzung

Bewertungssymbol: Konsequente Umsetzung

Diese Frage wurde bereits mehrmals gestellt, aber ...

Ich suche nach einer konsistenten Implementierung des Bewertungssymbols:

  • Bewertungsbalken als Trennzeichen:<...>|
  • Automatische Größenanpassung an den umschließenden Ausdruck:\left<...>\right

Was ich binnichtgesucht wird:

  • Auswertungsbalken als Relation:<...>\mid
  • Manuelle Größenanpassung an den umschließenden Ausdruck:<...>bigg|
  • Ein ganzes Makro!

Nun besteht das Problem darin, dass die \rvertGröße nicht automatisch angepasst wird, sondern \left.zusätzlicher Abstand eingefügt wird.

Perfekt wäre etwas in der Form, das \left_Latex anweist, den Ausdruck hier einzuschließen und dabei von links überhaupt kein Trennzeichen einzufügen, egal ob sichtbar oder unsichtbar.

Habt ihr eine Idee wie man die Bewertungsleiste umsetzen könnte?
(Nicht nur das Problem umgehen!)

Betrachten Sie als Beispiel:

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align}
y(a)&=\frac12 x^2|_a\\
y(a)&=\frac12 x^2\rvert_a\\
y(a)&=\left.\frac12 x^2\right|_a
\end{align}
\end{document}

Antwort1

Hier ist ein Makro, das automatisch skaliert, Ihnen aber auch erlaubt, eine Größe manuell anzugeben, falls gewünscht. Sie können auch ein Präfix für die Grenzwerte angeben, falls gewünscht, wie im letzten Beispiel für die erste Gruppe:

Bildbeschreibung hier eingeben

Anmerkungen:

  • Das manuell angegebene Größenbeispiel dient lediglich als Beispiel für die Größenauswahlmöglichkeiten. Ich behaupte nicht, dass alle diese Größen für den angegebenen Bruchteil geeignet sind.

Code:

\documentclass{article}

\usepackage{amsmath}
\usepackage{xparse}

% http://tex.stackexchange.com/questions/38868/big-parenthesis-in-an-equation
% http://tex.stackexchange.com/questions/6794/about-big-parenthesis-larger-than-bigg
\makeatletter
    \newcommand{\vast}{\bBigg@{3}}
    \newcommand{\Vast}{\bBigg@{3.5}}
    \newcommand{\vastt}{\bBigg@{4}}
    \newcommand{\Vastt}{\bBigg@{4.5}}
\makeatother


\newcommand{\BracKern}{\kern-\nulldelimiterspace}
\NewDocumentCommand{\Eval}{O{} o m m m}{%
    % #1 = prefix to be added to each limit of evaluation (ex "x=").
    % #2 = optional size specification to be applied (defaults to \left \right pair)
    %          \big \Big \bigg \Bigg \vast \Vast \vastt \Vastt
    %
    % #3 = expression being evaluated
    % #4 = lower limit of evaluation
    % #5 = upper limit of evaluation
    \IfNoValueTF{#2}{%
        \left.\BracKern#3\right\rvert_{#1#4}^{#1#5}%
    }{%
        #3#2\rvert_{#1#4}^{#1#5}%
    }%
}

\usepackage{amsmath}

\begin{document}
\noindent
Automatically sized:
\begin{gather*}
    \Eval{x^2}{0}{5} \quad
    \Eval{\frac{1}{x}}{0}{5} \quad
    \Eval[x=]{\frac{1}{x}}{0}{5} 
\end{gather*}
Manually sized
\begin{gather*}
    \Eval[][\big]{\frac{1}{x}}{0}{5}    \quad
    \Eval[][\Big]{\frac{1}{x}}{0}{5}    \quad
    \Eval[][\bigg]{\frac{1}{x}}{0}{5}   \quad
    \Eval[][\Bigg]{\frac{1}{x}}{0}{5}   \quad
    \Eval[][\vast]{\frac{1}{x}}{0}{5}   \quad
    \Eval[][\Vast]{\frac{1}{x}}{0}{5}   \quad
    \Eval[][\vastt]{\frac{1}{x}}{0}{5}  \quad
    \Eval[][\Vastt]{\frac{1}{x}}{0}{5}
\end{gather*}
\end{document}

Antwort2

Eine Anwendung der Makros inhttps://tex.stackexchange.com/a/136767/4427

\documentclass{article}
\usepackage{amsmath}
\usepackage{xparse}

\ExplSyntaxOn
\DeclareDocumentCommand{\xDeclarePairedDelimiter}{mmmO{}}
 {
  \NewDocumentCommand{#1}{sO{}m}
   {
    \IfBooleanTF{##1}
     {
      \egreg_paired_delimiter_expand:nnnn {#2}{#3}{##3}{#4}
     }
     {
      \egreg_paired_delimiter_fixed:nnnnn {##2}{#2}{#3}{##3}{#4}
     }
   }
 }
\cs_new_protected:Npn \egreg_paired_delimiter_expand:nnnn #1 #2 #3 #4
 {% Fix the spacing issue with \left and \right (D. Arsenau, P. Stephani and H. Oberdiek)
  \mathopen{}
  \mathclose\c_group_begin_token
   \left#1
   \str_if_eq:nnT { . } { #1 } { \kern-\nulldelimiterspace }
   #3
   \group_insert_after:N \c_group_end_token
   \right#2
   \tl_if_empty:nF {#4} { \c_math_subscript_token {#4} }
 }
\cs_new_protected:Npn \egreg_paired_delimiter_fixed:nnnnn #1 #2 #3 #4 #5
 {
  \str_if_eq:nnF {.} { #2 } { \mathopen{#1#2} }
  #4
  \mathclose{#1#3}
  \tl_if_empty:nF {#5} { \c_math_subscript_token {#5} }
 }
\ExplSyntaxOff

%% the final optional argument to \xDeclarePairedDelimiter
%% is a subscript to the right fence
\xDeclarePairedDelimiter{\xeval}{.}{\rvert}[\evaluateat]
\newcommand{\evaluateat}{}
\NewDocumentCommand{\eval}{somm}{%
  \begingroup
  \renewcommand{\evaluateat}{#4}%
  \IfBooleanTF{#1}
    {\xeval*{#3}}
    {\IfNoValueTF{#2}{\xeval{#3}}{\xeval[#2]{#3}}}%
  \endgroup
}


\begin{document}
\begin{align}
y(a)&=\eval{\tfrac{1}{2}x^2}{a}\\
y(a)&=\eval[\Big]{\frac{1}{2}x^2}{a}\\
y(a)&=\eval[\bigg]{\frac{1}{2}x^2}{a}\\
y(a)&=\eval*{\dfrac{1}{2}x^2}{a}
\end{align}
\end{document}

Das optionale Argument to \evaldient zum manuellen Auswählen einer Größe; \eval*ist wie die Verwendung von \leftund \right. Das zweite Argument ist der Auswertungspunkt.

Bildbeschreibung hier eingeben

verwandte Informationen