表格中存在问题的字幕问题

表格中存在问题的字幕问题

我正在使用优秀的exsheets软件包来编写一本书的问题部分。因为我需要问题的标题,所以我使用subtitle软件包内置的功能。因此,即使它可以完成工作,也存在两个问题:

  1. 字幕没有自动换行。
  2. 带有逗号或重音符号的字幕会产生错误。

考虑以下 MWE:

\documentclass{article}

\usepackage[showframe]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{exsheets}
\SetupExSheets{
  headings = block-subtitle
}

\begin{document}

\begin{question}[subtitle=I'm trying to make a super long subtitle that extends way beyond the page's normal margins.]
First exercise.
\end{question}

\begin{question}[subtitle={Another subtitle, now with commas and áccents}]
Second exercise.
\end{question}
\end{document}

问题 2 似乎是最糟糕的。加载inputenc无法解决utf8问题,但我发现将字幕括在括号中是可行的,就像我在 MWE 中做的那样。然而,可以做到吗没有括号里的内容?

我无法修复问题 1。我尝试过\newline、双反斜杠等。有什么方法可以修复它吗?

答案1

选项和逗号

由于环境的可选参数question可以是逗号分隔的列表

[subtitle=Another subtitle, now with commas and áccents]

由两个“选项”组成:

  • subtitle=Another subtitle
  • now with commas and áccents

正如你自己发现的:如果一个选项包含逗号,则参数必须放在括号内:

[subtitle={Another subtitle, now with commas and áccents}]

至于重音:这是使用正确输入编码的问题。使用 unicodeá可以\usepackage[utf8]{inputenc}很好地与 pdflatex 配合使用。

字幕

字幕排版在水平框中。结果是:没有换行符。一种可能的解决方法是block-subtitle使用subtitle-pre-code选项适当地重新定义实例,以便将字幕放在 内\parbox。由于预代码后面的代码用括号括起来,因此这将起作用:

\DeclareInstance{exsheets-heading}{block-subtitle}{default}{
  join = {
    title[r,B]number[l,B](.333em,0pt) ;
    title[r,B]subtitle[l,B](1em,0pt) ;
    title[l,B]points[l,B](\linewidth+\marginparsep,0pt) ;
    main[l,T]title[l,T](0pt,0pt) ;
  } ,
  subtitle-pre-code = \parbox[t]{.8\linewidth}
}

完整代码:

\documentclass{article}

\usepackage{showframe}
\usepackage[utf8]{inputenc}
\usepackage{exsheets}
\DeclareInstance{exsheets-heading}{block-subtitle}{default}{
  join = {
    title[r,B]number[l,B](.333em,0pt) ;
    title[r,B]subtitle[l,B](1em,0pt) ;
    title[l,B]points[l,B](\linewidth+\marginparsep,0pt) ;
    main[l,T]title[l,T](0pt,0pt) ;
  } ,
  subtitle-pre-code = \parbox[t]{.8\linewidth}
}
\SetupExSheets{
  headings = block-subtitle
}

\begin{document}

\begin{question}[subtitle={I'm trying to make a super long subtitle that
    extends way beyond the page's normal margins.}]
  First exercise. More text
\end{question}

\begin{question}[subtitle={Another subtitle, now with commas and áccents}]
  Second exercise.
\end{question}

\end{document}

在此处输入图片描述

答案2

一个肮脏的伎俩:

\documentclass{article}

\usepackage[showframe]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{exsheets}
\SetupExSheets{
  headings = block-subtitle
}

\begin{document}

\begin{question}[subtitle=\parbox[t][-1ex]{0.8\hsize}{%
                 I'm trying to make a super long subtitle that extends way beyond the page's normal margins.}]
\bigskip
First exercise.
\end{question}

\begin{question}[subtitle={Another subtitle, now with commas and áccents}]
Second exercise.
\end{question}
\end{document}

您需要编译至少两倍的新格式以覆盖控件。宽度可\parbox根据需要选择。 在此处输入图片描述

答案3

针对第二个问题的肮脏伎俩(也编译了两次):

\documentclass{article}

\usepackage[showframe]{geometry}
\usepackage[utf8x]{inputenc}
\usepackage{exsheets}
\SetupExSheets{
  headings = block-subtitle
}


\begin{question}[subtitle=Another subtitle{,} now with commas and \'{a}ccents]
Second exercise.
\end{question}
\end{document}

相关内容