Wie geht eigentlich sowas:

alt text

Die Potenz habe ich mir mal als einfaches Beispiel überlegt.

Geht das mit xparse (wäre praktisch)?

Öffne in Overleaf
\documentclass[12pt]{scrreprt}
\usepackage{amsmath}
\usepackage{xparse}
\begin{document}
\texttt{\textbackslash potenz[grundzahl=a, hochzahl=b]} $\rightarrow~ a^b$

\texttt{\textbackslash potenz[grundzahl=a]} $\rightarrow~ a^{}$ ~
\text{(ohne \{\} Fehler)}

\texttt{\textbackslash potenz[hochzahl=b]} $\rightarrow~ ^b$
\end{document}

gefragt 19 Mai '19, 23:28

cis's gravatar image

cis
9.5k93459491
Akzeptiert-Rate: 29%


Öffne in Overleaf
\documentclass{article}
\usepackage{pgf}
\pgfkeys{/potenz/.cd,grundzahl/.initial={},hochzahl/.initial={}}
\newcommand{\potenz}[1][]{\begingroup\pgfkeys{/potenz/.cd,#1}%
\ensuremath{{\pgfkeysvalueof{/potenz/grundzahl}}^{\pgfkeysvalueof{/potenz/hochzahl}}}%
\endgroup}
\begin{document}
\potenz[grundzahl=a,hochzahl=b]

\potenz[grundzahl=a]

\potenz[hochzahl=b]
\end{document}

alt text

Permanenter link

beantwortet 20 Mai '19, 00:12

Community's gravatar image

Community
21
Akzeptiert-Rate: 56%

Alternative mit keyval:

Öffne in Overleaf
\documentclass[]{article}

\usepackage{keyval}

\makeatletter
\newcommand*\@grundzahl{}
\newcommand*\@hochzahl{}
\define@key{cis/potenz}{grundzahl}{\def\@grundzahl{#1}}
\define@key{cis/potenz}{hochzahl}{\def\@hochzahl{#1}}
\newcommand\potenz[1][]
  {%
    \begingroup
    \setkeys{cis/potenz}{#1}%
    \ensuremath
      {%
        \ifx\@grundzahl\@empty\else\@grundzahl\fi
        \ifx\@hochzahl\@empty\else^{\@hochzahl}\fi
      }%
    \endgroup
  }
\makeatother

\begin{document}
\potenz[grundzahl=a,hochzahl=b]

\potenz[grundzahl=a]

\potenz[hochzahl=b]
\end{document}
Permanenter link

beantwortet 20 Mai '19, 21:14

Skillmon's gravatar image

Skillmon
1.2k6
Akzeptiert-Rate: 46%

bearbeitet 20 Mai '19, 21:20

Alternative mit LaTeX3:

Öffne in Overleaf
\documentclass[]{article}

\usepackage{xparse}

\ExplSyntaxOn
\keys_define:nn { cis / potenz }
  {
    ,grundzahl .tl_set:N = \l__cis_potenz_grundzahl_tl
    ,hochzahl  .tl_set:N = \l__cis_potenz_hochzahl_tl
  }
\NewDocumentCommand \potenz { O{} }
  {
    \group_begin:
    \keys_set:nn { cis / potenz } { #1 }
    \ensuremath
      {
        \tl_if_empty:NF \l__cis_potenz_grundzahl_tl \l__cis_potenz_grundzahl_tl
        \tl_if_empty:NF \l__cis_potenz_hochzahl_tl
          { \sp { \l__cis_potenz_hochzahl_tl } }
      }
    \group_end:
  }
\ExplSyntaxOff

\begin{document}
\potenz[grundzahl=a,hochzahl=b]

\potenz[grundzahl=a]

\potenz[hochzahl=b]
\end{document}
Permanenter link

beantwortet 20 Mai '19, 21:11

Skillmon's gravatar image

Skillmon
1.2k6
Akzeptiert-Rate: 46%

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×76

gestellte Frage: 19 Mai '19, 23:28

Frage wurde gesehen: 5,195 Mal

zuletzt geändert: 20 Mai '19, 21:20