zunächst einmal entschuldige ich mich für mein Englisch, ich wünschte, ich könnte besser Englisch schreiben, und ich hoffe, ich kann es so erklären, dass ihr versteht, was ich tun möchte. Ich bin neu bei LaTex, habe vor ein paar Tagen angefangen, es zu lernen, habe einige nützliche Ressourcen zu LaTex und einige Pakete gefunden und konnte diesen Code schreiben:
\documentclass{article}
\usepackage{pgf}% http://ctan.org/pkg/pgf
\usepackage{xcolor}% http://ctan.org/pkg/xcolor
\usepackage{xlop}% http://ctan.org/pkg/xlop
\usepackage{xparse}% http://ctan.org/pkg/xparse
\makeatletter
\newcommand{\@op@top}[4]{%
\begin{tabular}[t]{@{\ }c@{\hspace*{#1}}r}
& \pgfmathprintnumber{#3} \\
\smash{\raisebox{.5\normalbaselineskip}{#2}} & \pgfmathprintnumber{#4} \\ \hline
}
\NewDocumentCommand{\@op@top@bottom}{m s O{1em} m m}{%
\@op@top{#3}{#1}{#4}{#5}%
\IfBooleanTF{#2}{}{%
& \pgfmathsetmacro{\result}{#4\@@op#5}\pgfmathprintnumber{\result}%
}%
\end{tabular}%
}
\newcommand{\OpAdd}{\def\@@op{+}\@op@top@bottom{$+$}}
\newcommand{\OpSub}{\def\@@op{-}\@op@top@bottom{$-$}}
\newcommand{\OpMul}{\def\@@op{*}\@op@top@bottom{$\times$}}
\newcommand{\OpDiv}{\def\@@op{/}\@op@top@bottom{$\div$}}
\makeatother
\setlength{\parindent}{0pt}% Just for this example
\begin{document}
\OpAdd*[10pt]{1234}{5678} \par \bigskip
\OpSub*[10pt]{246}{135} \par \bigskip
\OpMul*[10pt]{12}{13} \par \bigskip
\newcommand{\placeholder}[1]{--}% Print -- regardless of the input
\newcommand{\gobble}[1]{}% Print <nothing> regardless of the input
% \opdiv[resultstyle=\gobble,remainderstyle=\gobble]{196}{8}
\newcommand\myrule[1]{\multicolumn{1}{| l}{#1}}
\[
\begin{array}{rl}
478 & \myrule{7}\\
\cline{2-2}
\end{array}
\]
\end{document}
Es zeigt diese vier mathematischen Operationen:
Wie Sie sehen, ist die Division nicht linksbündig ausgerichtet wie der Rest der Operationen, und ich frage mich, wie ich das machen kann. Außerdem würde ich gerne wissen, wie ich am besten weitere Operationen hinzufügen kann, sagen wir 3 oder 4 weitere Additionen in derselben Zeile, und dasselbe in den anderen Zeilen tun, aber alle Operationen so anzeigen, als wären sie in einem Array, und schließlich zu jeder Operation einen Aufzählungspunkt hinzufügen, wie a), b), c) usw. Ich bin für jede Hilfe diesbezüglich sehr dankbar. Grüße.
Antwort1
Das tasks
Paket ist ein schönes Paket, um Dinge in einem übungsähnlichen Format anzuordnen. Ihr Ausrichtungsproblem wurde durch die Verwendung von \[ ... \]
Anzeigemathematik anstelle von Inline-Mathematik verursacht. Hier sind alle vier Ihrer Beispiele in einer Reihe und aufgezählt:
\documentclass{article}
\usepackage{pgf}% http://ctan.org/pkg/pgf
\usepackage{xcolor}% http://ctan.org/pkg/xcolor
\usepackage{xlop}% http://ctan.org/pkg/xlop
\usepackage{xparse}% http://ctan.org/pkg/xparse
\usepackage{tasks}
\makeatletter
\newcommand{\@op@top}[4]{%
\begin{tabular}[t]{@{\ }c@{\hspace*{#1}}r}
& \pgfmathprintnumber{#3} \\
\smash{\raisebox{.5\normalbaselineskip}{#2}} & \pgfmathprintnumber{#4} \\ \hline
}
\NewDocumentCommand{\@op@top@bottom}{m s O{1em} m m}{%
\@op@top{#3}{#1}{#4}{#5}%
\IfBooleanTF{#2}{}{%
& \pgfmathsetmacro{\result}{#4\@@op#5}\pgfmathprintnumber{\result}%
}%
\end{tabular}%
}
\newcommand{\OpAdd}{\def\@@op{+}\@op@top@bottom{$+$}}
\newcommand{\OpSub}{\def\@@op{-}\@op@top@bottom{$-$}}
\newcommand{\OpMul}{\def\@@op{*}\@op@top@bottom{$\times$}}
\newcommand{\OpDiv}{\def\@@op{/}\@op@top@bottom{$\div$}}
\newcommand{\placeholder}[1]{--}% Print -- regardless of the input
\newcommand{\gobble}[1]{}% Print <nothing> regardless of the input
\newcommand\myrule[1]{\multicolumn{1}{| l}{#1}}
\makeatother
\setlength{\parindent}{0pt}% Just for this example
\begin{document}
\begin{tasks}(4)
\task \OpAdd*[10pt]{1234}{5678} \par \bigskip
\task \OpSub*[10pt]{246}{135} \par \bigskip
\task \OpMul*[10pt]{12}{13} \par \bigskip
\task $\begin{array}{rl}
478 & \myrule{7}\\
\cline{2-2}
\end{array}$
\end{tasks}
\end{document}