我正在尝试弄清楚如何将文本练习的解决方案排版为上下颠倒的段落样式脚注,就像以下图片:
footmisc
我可以使用选项轻松地将解决方案排版为右侧向上的段落样式脚注para
。我还可以使用\rotatebox
将脚注上下颠倒并排版为每行一个(尽管顺序与我想要的相反)。但是,我不知道如何获得整个脚注都旋转的段落样式脚注。
我希望能够使用如下代码生成类似上述内容:
\documentclass[12pt]{article}
\usepackage{graphicx}
\newcommand{\problem}[2]{...}{...}
\begin{document}
\problem{What is 1+1}{two}
\problem{What is 1+2}{three}
\problem{What is 1+3}{four}
\problem{What is 1+4}{five}
\end{document}
答案1
新版本响应了修订后的 OP 要求。编辑使用\protected@edef
作为其中一部分,以方便在脚注中\problem
使用括号。\{...\}
它使用语法\problem[]{question}{answer}
。在此阶段,用户必须通过以下两种方式之一调用脚注:
\showpageanswers
\problem
在任何给定页面上的最后一个之后;或提供任何内容(除 之外)作为 任何给定页面上的
\relax
最后一个可选参数。\problem
我尝试逐页自动执行此操作,但没有成功。
问题计数器将会逐页累加。
我进行了修改\showpageanswers
,因此其调用如果没有任何答案显示将会被忽略。
为了让脚注能够延伸到超过一行的长度(即段落样式),我将其放在 中\parbox
。我还在旋转 之前将字距调整为 -18pt \parbox
,以考虑脚注缩进,并\strut
在倒置脚注定义( )的末尾添加了\revfootnote
,用于后续垂直间距。
但请注意,如果同一页面上出现多个答案集,则将每页上一个脚注调用的所有答案保存起来将防止“出现”错误排序的脚注(因为将它们颠倒过来会改变第一个和最后一个的含义)。
这是 MWE
\documentclass[12pt]{article}
\usepackage{graphicx,lipsum}
\usepackage{enumitem}\newsavebox\fnbox
\def\pageanswers{}
\newcounter{problemNo}
\makeatletter
\newcommand\problem[3][\relax]{%
\stepcounter{problemNo}%
\par\smallskip%
\theproblemNo.~~#2?%
\par\smallskip%
\protected@edef\pageanswers{\pageanswers$^{\theproblemNo}$#3\ \quad}%
\ifx\relax#1\else\showpageanswers\fi%
}
\makeatother
\newcommand\showpageanswers{\if\relax\pageanswers\relax\else%
\revfootnote{\pageanswers}\def\pageanswers{}\fi}
\newcommand\revfootnote[1]{\renewcommand{\thefootnote}{}%
\footnotetext{\savebox\fnbox{\parbox{%
\dimexpr\textwidth\relax}{#1\strut}}\kern-18pt%
\rotatebox{180}{\usebox{\fnbox}}}}
\begin{document}
Solve these problems.
\problem{What is 1+1}{two $\{abc\}$}
\problem{What is 1+2}{three}
\problem{What is 1+3}{four}
\problem{What is 1+4}{five}
\problem{What is 1+5}{six}
\problem{What is 1+6}{seven}
\problem{What is 1+7}{eight}
\problem{What is 1+8}{nine}
\lipsum[1]
\problem{What is 2+1}{three}
\problem{What is 2+2}{four}
\problem{What is 2+3}{five}
\problem[x]{What is 2+4}{six}
\lipsum[2-4]
Solve these problems.
\problem{What is 1+1}{two}
\problem{What is 1+2}{three}
\problem{What is 1+3}{four}
\problem{What is 1+4}{five}
\problem{What is 1+5}{six}
\problem{What is 1+6}{seven}
\problem{What is 1+7}{eight}
\problem[x]{What is 1+8}{nine}
\lipsum[5-8]
\end{document}
答案2
这里\hfill
没有用,但是\raggedleft
会将旋转的框移动到右边距`
\documentclass[12pt]{article}
\usepackage{graphicx}
\usepackage{enumitem}
\begin{document}
What is
\begin{enumerate}
\item 1+1?
\item 1+2?
\item 1+3?
\item 1+4?
\end{enumerate}
\renewcommand{\thefootnote}{}
\footnotetext{\raggedleft\rotatebox{180}{$^1$ two\qquad $^2$ three\qquad $^3$ four\qquad $^4$ five\hfill}}
\end{document}