Exempelblätter: Wie drucke ich die „Lösungen“ in derselben Zeile?

Exempelblätter: Wie drucke ich die „Lösungen“ in derselben Zeile?

Ich möchte die Lösungen zu den Fragen am Ende des Buches ausdrucken (dumpen). Wenn ich einfach verwende, \printsolutionserhalte 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 exsheetsa) das Einfügen eines \parnach 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 exsheetsden \exlabelMechanismus von vielleicht zusammen mit namereffü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}

Bildbeschreibung hier eingeben


Bearbeiten

Mit der Version 0.13 (2014/05/11) exsheetssteht die Option zur Verfügung section-hook. In Kombination mit namerefund 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}

verwandte Informationen