
Ich möchte die Lösungen zu den Fragen am Ende des Buches ausdrucken (dumpen). Wenn ich einfach verwende, \printsolutions
erhalte ich jede Lösung in einer neuen Zeile (als neuen Absatz).
Ich muss sie in derselben Zeile haben (nur Zahlen, keine Namen), ungefähr so:
1)So einsam.2)Sol zwei.3)... usw.
Gibt es eine Möglichkeit/einen Workaround, dies zu erreichen?
Wenn ja, gibt es eine Möglichkeit, den Abschnitts-/Unterabschnittsnamen automatisch in die Liste aufzunehmen (in derselben Zeile)? Zum Beispiel: ¨
Abschnitt 1. Unterabschnitt eins. 1)So einsam.2)Sol zwei.Unterabschnitt zwei. 1)So einsam.2)Sol zwei.Abschnitt 2. Unterabschnitt 1. 1)So einsam ...
Bearbeiten:
Nach cgnieder Edit versuche ich, eine Möglichkeit zu finden, manuelle Beschriftungen und „\nameref“ zu vermeiden. Mir ist etwas eingefallen, aber es funktioniert nicht so, wie es sollte – „printsolutions“ gibt den Abschnitten denselben Namen. Bitte lesen Sie auch den Inline-Text und die Kommentare. Hilfe!
\documentclass{scrartcl}
\usepackage{exsheets}
\setlength{\parindent}{0pt}
\DeclareQuestionProperty{section-title}
\SetupExSheets{counter-within=section ,
headings=inline-nr ,
counter-format=qu)}
\newcommand{\lsection}[1]{
\def\secName{#1}
\section{#1}
}
\SetupExSheets{section-hook = \noindent\bfseries
Section \GetQuestionProperty{section-title}{\CurrentQuestionID}
\space}
\begin{document}
\lsection{One}
\begin{question}
\SetQuestionProperties{section-title= \secName }
foo
\end{question}
\begin{solution}
foo
\end{solution}
\begin{question}
\SetQuestionProperties{section-title= \secName }
bar
\end{question}
\begin{solution}
bar
\end{solution}
Solutions for section "\secName" are: \printsolutions[section]\\ % OK
ALL the solutions until here are: \printsolutions % OK
\lsection{Two}
\begin{question}
\SetQuestionProperties{section-title= \secName }
baz
\end{question}
\begin{solution}
baz
\end{solution}
\begin{question}
\SetQuestionProperties{section-title= \secName }
foobar
\end{question}
\begin{solution}
foobar
\end{solution}
Solutions for section "\secName" are: \printsolutions[section]\\ % OK
ALL the solutions at this point are wrong, the 1st section name is "Two" instead of "One": \printsolutions % WRONG!!
\lsection{Answers} %changing '\lsection' to '\section' makes all the section names as "Two"
This is the output of 'printsolutions' wrongly showing the same section name throuhout (the last name used):
\printsolutions
\end{document}
Antwort1
Die gewünschte Liste ist mit der inline-nr
Überschrifteninstanz und der Einstellung \exsheets_par:
gleich möglich \scan_stop:
. Der zweite Punkt verhindert exsheets
a) das Einfügen eines \par
nach seinen Umgebungen und b) das Einfügen eines vertikalen Leerzeichens nach dem \par
. Dies ist eine nicht dokumentierte Funktion, aber zusätzlich für diesen Zweck integriert. Ich werde eine offizielle Benutzeroberfläche dafür hinzufügen.
Leider gibt es derzeit keine Möglichkeit, die vollständige Liste automatisch mit an den entsprechenden Stellen eingefügten Abschnittsüberschriften zu erhalten. Sie können jedoch exsheets
den \exlabel
Mechanismus von vielleicht zusammen mit nameref
für eine halbautomatische Lösung verwenden:
\documentclass{scrartcl}
\usepackage[load-headings]{exsheets}
\SetupExSheets{counter-within=section}
\usepackage{nameref}
% place \label and \exlabel simultaneously:
\newcommand*\mylabel[1]{\label{#1}\exlabel{#1}}
\begin{document}
\section{One}\mylabel{sec:foo}
\begin{question}
foo
\end{question}
\begin{solution}
foo
\end{solution}
\begin{question}
bar
\end{question}
\begin{solution}
bar
\end{solution}
\section{Two}\mylabel{sec:bar}
\begin{question}
baz
\end{question}
\begin{solution}
baz
\end{solution}
\begin{question}
foobar
\end{question}
\begin{solution}
foobar
\end{solution}
\section{Solutions}
\ExplSyntaxOn
\cs_set_eq:NN \exsheets_par: \scan_stop:
\ExplSyntaxOff
\SetupExSheets{headings=inline-nr,counter-format=qu)}
\textbf{Section \nameref{sec:foo}} \printsolutions[section={\S{sec:foo}}]
\textbf{Section \nameref{sec:bar}} \printsolutions[section={\S{sec:bar}}]
\end{document}
Bearbeiten
Mit der Version 0.13 (2014/05/11) exsheets
steht die Option zur Verfügung section-hook
. In Kombination mit nameref
und Frageeigenschaften kann sie auf folgende Weise verwendet werden, um das gleiche Layout mit nureinsAnruf von \printsolutions
:
\documentclass{scrartcl}
\usepackage[load-headings]{exsheets}[2014/05/11]
\SetupExSheets{counter-within=section}
\DeclareQuestionProperty{section-title}
\usepackage{nameref}
\begin{document}
\section{One}\label{sec:foo}
\begin{question}
\SetQuestionProperties{section-title=\nameref{sec:foo}}
foo
\end{question}
\begin{solution}
foo
\end{solution}
\begin{question}
\SetQuestionProperties{section-title=\nameref{sec:foo}}
bar
\end{question}
\begin{solution}
bar
\end{solution}
\section{Two}\label{sec:bar}
\begin{question}
\SetQuestionProperties{section-title=\nameref{sec:bar}}
baz
\end{question}
\begin{solution}
baz
\end{solution}
\begin{question}
\SetQuestionProperties{section-title=\nameref{sec:bar}}
foobar
\end{question}
\begin{solution}
foobar
\end{solution}
\section{Solutions}
\SetupExSheets{
headings = inline-nr , % numbered and inline
counter-format = qu) , % numbers 1) 2) ...
section-hook = % code to be added before solutions of a new section
% are printed
% \par begin a new paragraph for a new section
\noindent\bfseries
Section \GetQuestionProperty{section-title}{\CurrentQuestionID}%
\space
}
\printsolutions
\end{document}