LaTeX的tasks宏包
tasks 宏包
LaTeX的列表(list)通常是将项(item,条目)一个一个垂直的平行显示,所谓“列”表的由来。
水平分列列表,即将多个项分散到各列而不是一列,在出考卷的选择题时常碰到,LaTeX中的包有:enumcols(enumlists)、tasks(exsheets)
enumcols宏包是李清创建的,TeXlive 2018后,与CTeX的模板冲突。本篇主要讨论tasks宏包的使用。tasks宏包的主要用法如下:
\begin{tasks}[<选项>](<列数>)
\task item1
\task item2
\end{tasks}
例:选择题的文档
\documentclass{ctexart}
% 导言区添加
\usepackage{tasks}
\settasks{ %设置
counter-format=tsk[A], %编号
label-format={\bfseries}, %加粗
%item-indent={-0.1em},
%label-offset={-0.05em}
}
% 测试用
\newcommand{\sample}{This is some sample text we will use to create a somewhat longer text spanning a
few lines. This is some sample text we will use to create a somewhat longer text
spanning a few lines}
\begin{document}
选择题有4个选项,分4列显示选项A,B,C,D。
\begin{enumerate}
\begin{tasks}(4)
\task $x^2 + y^2 = R^2$
\task $\mathrm{E}=\mathrm{MC}^2$
\task $e^{-i\pi} = 1$
\task \sample
\end{tasks}
\end{enumerate}
\end{document}
例:跨越多个列的项
\begin{tasks}(4)
\task \sample
\task* \texttt{*}占用后面的所有列\sample
\task* 占用后面的所有列\sample
\task*(2) \texttt{*}本身可以带选项,指定占用的列数\sample
\task*[(x)] 指定该条目的编号为(x)
\startnewitemline
\task! 另起新条目并占用以后的所有列\sample
\task \sample
\end{tasks}
基于tasks定义新列表环境
\NewTasks{itemtasks}[\item] %以\item为分隔符
% 文档中
\begin{itemtasks}(3)
\item \sample
\item \sample
\item \sample
\end{itemtasks}
使用如下定义的环境mytasks不能嵌套在enumerate环境,提示
“begin{mytasks} on input line 22 ended by \end{itemtasks}”
或
“\begin{itemtasks} on input line 22 ended by \end{document}”
\NewTasks{itemtasks}[\item] % 以\item为分隔符
\newenvironment{mytasks}[1][2]{
\begin{itemtasks}(#1)
}{
\end{itemtasks}
}
% 文档中
\begin{enumerate}
\item 第一个问题选项如下
\begin{mytasks}[2]
\item $x^2 + y^2 = R^2$
\item $\mathrm{E}=\mathrm{MC}^2$
\item $e^{-i\pi} = 1$
\item \sample
\end{mytasks}
\end{enumerate}
mytasks是按照\NewEnviron(xparse包)定义的,标准的环境定义方法使用\itemtasks...\enditemtasks
\newenvironment{mytasks}[1][2]{
\itemtasks(#1)
}{
\enditemtasks
}
% 文档中
\begin{enumerate}
\item 第一个问题选项如下
\begin{mytasks}[4]
\item $x^2 + y^2 = R^2$
\item $\mathrm{E}=\mathrm{MC}^2$
\item $e^{-i\pi} = 1$
\item \sample
\end{mytasks}
\end{enumerate}
使用environ'包的\NewEnviron`命令定义
\NewTasks{itemtasks}[\item] % 以\item为分隔符
\usepackage{environ}
\NewEnviron{mytasksenv}[1][2]{
\def\tempbegin{\begin{itemtasks}(#1)}
\expandafter\tempbegin\BODY
\end{itemtasks}
}{}
% 文档中
\begin{mytasksenv}[4]
\item $x^2 + y^2 = R^2$
\item $\mathrm{E}=\mathrm{MC}^2$
\item $e^{-i\pi} = 1$
\item $x^2 + y^2 = R^2$
\end{mytasksenv}
使用xparse'包的\NewDocumentEnvironment`定义
\usepackage{xparse}
\NewDocumentEnvironment{mytasksx}{}
{\newTask(2)}
{\endnewTask}
完整的示例
%!TEX program = xelatex
\documentclass[UTF8]{ctexart}
\usepackage{url}
\usepackage{tasks}
\settasks{
counter-format=tsk[A],
label-format={\bfseries},
%item-indent={-0.1em},
%label-offset={-0.05em}
}
\NewTasks{itemtasks}[\item]
%\newenvironment{mytasks}[1][2]{
% \begin{itemtasks}(#1)
%}{
% \end{itemtasks}
%}
\newenvironment{mytasks}[1][2]{
\itemtasks(#1)
}{
\enditemtasks
}
%https://tex.stackexchange.com/questions/237230/tasks-in-custom-environment
\usepackage{environ}
\NewEnviron{mytasksenv}[1][2]{
\def\tempbegin{\begin{itemtasks}(#1)}
\expandafter\tempbegin\BODY
\end{itemtasks}
}{}
\usepackage{xparse}
%https://tex.stackexchange.com/questions/391459/nesting-tasks-within-an-xparse-environment
\NewDocumentEnvironment{mytasksx}{}
{\itemtasks(2)}
{\enditemtasks}
\newcommand{\sample}{This is some sample text we will use to create a somewhat longer text spanning a few lines. This is some sample text we will use to create a somewhat longer text spanning a few lines}
\begin{document}
\begin{mytasksenv}[4]
\item six, 继续上面的编号.
\item seven
\item seven
\item seven
\end{mytasksenv}
\begin{enumerate}
\item 第一个问题选项如下
\begin{mytasks}[2]
\item $x^2 + y^2 = R^2$
\item $\mathrm{E}=\mathrm{MC}^2$
\item $e^{-i\pi} = 1$
\item \sample
\end{mytasks}
\end{enumerate}
\begin{tasks}(4)
\task* 一般使用格式为\texttt{\\begin\{tasks\}[选项](列数)}
\task 可使用\texttt{*}
\task three
\end{tasks}
\begin{tasks}[resume=true]
\task six, 继续上面的编号.
\task seven
\end{tasks}
This is some sample text we will use to create a somewhat longer text spanning a
few lines.
\begin{enumerate}
\item 在LyX中,定义新环境itemtasks,用item分隔符!不会与外面的item冲突!但是LyX插入的选项放在中括号汇总,而tasks要求放在小括号中。
\item \url{http://troubleshooters.com/linux/lyx/ownlists.htm}不知道说啥
\item 第二个问题有如下的选项
\begin{tasks}(4)
\task $x^2 + y^2 = R^2$
\task $\mathrm{E}=\mathrm{MC}^2$
\task $e^{-i\pi} = 1$
\task \sample
\end{tasks}
\item 第三
\begin{tasks}(2)
\task $x^2 + y^2 = R^2$
\task $\mathrm{E}=\mathrm{MC}^2$
\task $e^{-i\pi} = 1$
\task $e^{-i\pi} = 1$
\end{tasks}
\end{enumerate}
\begin{tasks}(4)
\task \sample
\task* \texttt{*}占用后面的所有列\sample
\task* 占用后面的所有列\sample
\task*(2) \texttt{*}本身可以带选项,指定占用的列数\sample
\task*[(x)] 指定该条目的编号为(x)
\startnewitemline
\task! 另起新条目并占用以后的所有列\sample
\task \sample
\end{tasks}
\end{document}
LaTeX的tasks宏包的更多相关文章
- LaTeX使用titlesec宏包改变章节编号形式的方法
1.titleformat宏包命令详解 LaTeX中可以用titlesec宏包中的titleformat命令来改变标题形式: 导入宏包: \usepackage{titlesec} 改变标题的代码如下 ...
- LaTeX的一些宏包及细节知识
文章来源:LaTeX的一些宏包及细节知识http://blog.chinaunix.net/uid-20289887-id-1710422.html ps:我的机器上软件并不能直接运行通,下面“代码” ...
- Windows 下 LaTeX 手动安装宏包(package)以及生成帮助文档的整套流程
本文简单介绍如何手动安装一个 LaTeX 宏包. 一般来说,下载的 TeX 发行版已经自带了很多宏包,可以满足绝大部分需求,但是偶尔我 们也可能碰到需要使用的宏包碰巧没有安装的情况,这时我们就需要自己 ...
- LaTeX手动安装宏包(package)以及生成帮助文档的整套流程
注意:版权所有,转载请注明出处. 我使用的是ctex套装,本来已经自带了许多package,但是有时候还是需要使用一些没有预装的宏包,这时就需要自己安装package了.下载package可以从CTA ...
- LaTeX中titlesec宏包的使用
在 xelatex 中使用 \usepackage 指令使用 titlesec 宏包时,可以指定一些格式选项,如下: \usepackage[center]{titlesec} 其中 center 可 ...
- LaTeX源代码显示宏包listings应用备忘之新语言定义
我目前了解的LaTeX中有关源代码显示的宏包有两个,这里介绍其中的listings宏包.listings宏包中已经定义了部分计算机语言的显示样式,但还是有些语言没有定义,我们一起看一下如何定义新的 ...
- [原创][LaTex]LaTex学习笔记之框架及宏包
0. 简介 LaTex在书写文档时的最基本单元就是首部的写作,变相的也可以说是头文件.本文章就来总结一下文档的基本格式和常用宏包. 1. 基本单元 基本单元需要对LaTex语法有一定的了解,这个很简单 ...
- 在LaTeX中利用preview宏包和tikz宏包生成单图pdf
有时候我们利用tikz宏包画出的图片后,只想生成一个单图pdf,而且pdf的页面大小与图片相同,以便于以后再次用latex插入. 可以与preview宏包进行搭配,页面大小由图像大小决定,可以通过改变 ...
- LaTeX自定义宏包、类文件的默认搜索路径设置方法
对于自定义的LaTeX宏包与类,在调用时可以通过在命令\documentclass{}与\usepackage{}命令中指定完整路径或者相对路径,这样确实可以调用,但是编译时总是有烦人的警告信息, ...
随机推荐
- linux中的i2c控制器驱动应该做些什么?
答:完成读写功能即可,不要涉及任何针对从设备的特殊操作,这样就可以避免与从设备的代码产生冗余,linux中的i2c控制器驱动就做的特别棒,做好最简单的读写,然后其它的从设备驱动就是直接调用这些最简单的 ...
- DownloadManager系统自带下载实现apk后台下载功能
DownloadManager是android2.3以后,系统下载的方法,是处理长期运行的HTTP下载的系统服务.客户端可以请求的URI被下载到一个特定的目标文件.客户端将会在后台与http交互进行下 ...
- NAT地址转换常用命令详解
缺省值:没有启用NAT. 命令模式:全局配置模式. 说明:静态NAT主要用于那些对需要对外部用户开放的服务,如Web服务器等,它可以把本地地址映射为指定的全局地址. 第一种格式实现的是一对一的NAT映 ...
- Redis 持久化配置(兼论瞎翻译的问题)
redis.conf 文件中配置 save 默认配置项: save save save 查了好几个地方都是这么说的: 第一句的意思:15分钟内修改了一个键就保存??? 往 Redis 里加了一个值,重 ...
- ESP32开发之Windows开发环境
电脑出了问题linux系统下的环境不知道怎么就挂了,在一次搭建,总是出错,没办法,只能在win10下一试. 1 下载交叉编译工具,最新版 找到并下载最新的工具链: https://dl.espress ...
- asp.NET 下真正实现大文件上传
一般10M以下的文件上传通过设置Web.Config,再用VS自带的FileUpload控件就可以了,但是如果要上传100M甚至1G的文件就不能这样上传了.我这里分享一下我自己开发的一套大文件上传控件 ...
- k8s设置集群角色
查看所有的node节点 [root@test1 ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION test1 Ready <none> ...
- Qt输出中文乱码的问题
/* 我遇到的情况: 文件编码为UTF-8.程序输输出中文位乱码. 解决方案: 1. 工具->选项->环境->语言: Chinese 2. 选项->文本编辑器->行为-& ...
- LCTF (easyeasy-200)
首先安装,看看app是什么样的. 有点奇怪,没有点击确定的按钮.然后拖到JEB反编译. 要求输入的字符串的长度要在35-39之间(包括边界值),然后会调用Format().form函数.如下图. 可以 ...
- maridb 主从复制
maridb(>10.0)主从复制 1.环境说明 测试环境 系统版本:Ubuntu 16.04.5 LTS内核版本:4.4.0-141-generic x86_64MariaDB版本:mysql ...