考虑以下最小示例alterqcm
包裹:
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[upright]{fourier}
\usepackage{alterqcm}
\parindent0pt
\begin{document}
\begin{alterqcm}[lq=8cm,language=english]
\AQquestion{Question}{%
{Proposition 1},
{Proposition 2},
{Proposition 3}}
\end{alterqcm}
\end{document}
是否有任何选项使得命题 1、命题 2 和命题 3 之间的间距像在环境中compactenum
(使用paralist
包)一样更紧凑?
有没有什么办法可以对这个垂直间距进行全局精细控制?
编辑:
我尝试了 Werner 的答案,但是如果我想缩小空间,它似乎只能产生很小的效果:
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[upright]{fourier}
\usepackage{alterqcm}
\setlength{\parindent}{0pt}
\begin{document}
\begin{alterqcm}[lq=8cm,language=english]
\AQquestion{Question}{%
{Proposition 1},
{Proposition 2},
{Proposition 3}}
\end{alterqcm}
\bigskip
% =========== FACTOR approach ===========
{\renewcommand{\arraystretch}{0.1}
\begin{alterqcm}[lq=8cm,language=english]
\AQquestion{Question}{%
{Proposition 1},
{Proposition 2},
{Proposition 3}}
\end{alterqcm}}
\bigskip
% =========== LENGTH approach ===========
{\setlength{\extrarowheight}{-10mm}%
\begin{alterqcm}[lq=8cm,language=english]
\AQquestion{Question}{%
{Proposition 1},
{Proposition 2},
{Proposition 3}}
\end{alterqcm}}
\end{document}
给出:
答案1
#3
提供给的每个条目都\AQquestion[#1]{#2}{#3}
经过处理并存储在垂直框 ( \vbox
) 中。如果您愿意,可以\smash
删除内容以删除任何垂直填充。这可以手动完成(基于每个项目),也可以通过提供的补丁全局完成etoolbox
。
\documentclass[12pt]{article}
\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\usepackage[utf8]{inputenc}% http://ctan.org/pkg/inputenc
\usepackage[upright]{fourier}% http://ctan.org/pkg/fourier
\usepackage{alterqcm}% http://ctan.org/pkg/alterqcm
\setlength{\parindent}{0pt}
\begin{document}
% Original display
\begin{alterqcm}[lq=8cm,language=english]
\AQquestion{Question}{%
{Proposition 1},
{Proposition 2},
{Proposition 3}}
\end{alterqcm}
\bigskip
% Smashed display
{\begin{alterqcm}[lq=8cm,language=english]
\AQquestion{Question}{%
{\smash{Proposition 1}},
{\smash{Proposition 2}},
{\smash{Proposition 3}}}
\end{alterqcm}}
\bigskip
% Global smashed display
\makeatletter
\patchcmd{\aq@prop}{\vbox{#1}}{\vbox{\smash{#1}}}{}{}% patch \aq@prop
\makeatother
\begin{alterqcm}[lq=8cm,language=english]
\AQquestion{Question}{%
{Proposition 1},
{Proposition 2},
{Proposition 3}}
\end{alterqcm}
\end{document}
但是,如果您的构造高于/低于常规线(如 Altermundus 的答案),则这种全局更改可能会产生不必要的结果。您可以\AQquestion
通过分组将更改定位到特定实例:
\begingroup
\makeatletter
\patchcmd{\aq@prop}{\vbox{#1}}{\vbox{\smash{#1}}}{}{}% patch \aq@prop
\makeatother
\begin{alterqcm}
%...
\end{alterqcm}
\endgroup
或者,您可以使用进行局部更改\smash
,但使用不可见的垂直规则根据自己的喜好拉伸每个组件:
\begin{alterqcm}[lq=8cm,language=english]
\AQquestion{Question}{%
{\smash{Proposition 1}},
{\rule{0pt}{20pt}\smash{Proposition 2}},% Invisible vertical rule with height 20pt
{\smash{Proposition 3}}}
\end{alterqcm}
由于这个问题的悬赏和赏金规则,我发布了一个新答案,而不是修改我现有的答案。
答案2
Werner 的回答很好。Alterqcm 使用表格,在上一个版本中,我添加了 longtable 选项。事实上,一些问题的出现是因为一个问题或一个命题占用了大量空间。好的方法是使用全局方法,如 FACTOR 方法或 LENGTH 方法,然后您可以使用局部方法。
您可以使用 修改问题的位置pq=...
,问题将在案例内部移动。使用 可进行全局修改,\begin{alterqcm}[lq=85mm,pq=2mm]
使用 可进行局部修改\AQquestion[pq=6mm]{...}
。
如果想为一个命题留出更多空间,可以添加类似 的内容\AQms(16,14)
。这是一条没有宽度的规则(幻影 ),将命题放在 内minipage
以获得正确结果通常非常有用。
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[upright]{fourier}
\usepackage{alterqcm}
\parindent0pt
\begin{document}
\begin{alterqcm}[lq=8cm,language=english,pq=-6mm]
\AQquestion{Question}{%
{Proposition 1},
{Proposition 2},
{Proposition 3}}
\AQquestion[pq=0mm]{Question}{%
{Proposition 1},
{\AQms(16,14) Proposition 2},
{Proposition 3}}
\end{alterqcm}
\end{document}
用分数更新。第一个数组是正确的,但如果使用,\arraystretch
则需要添加pq=- ...
以获得正确的位置。
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{fourier}
\usepackage{amsmath,alterqcm}
\begin{document}
\begin{alterqcm}[lq=85mm]
\AQquestion{Pour tout réel $x$, le nombre \[\dfrac{\text{e}^x - 1}{\text{e}^x + 2}\hskip12pt \text{égal à :} \] }
{{$-\dfrac{1}{2}$},
{$\dfrac{\text{e}^{-x} - 1}{\text{e}^{-x} + 2}$},
{$\dfrac{1 - \text{e}^{-x}}{1 + 2\text{e}^{-x}}$}
}
\AQquestion{On pose I $= \displaystyle\int_{\ln 2}^{\ln 3} \dfrac{1}{\text{e}^x - 1}\,\text{d}x$ et J $ = \displaystyle\int_{\ln 2}^{\ln 3} \dfrac{\text{e}^x}{\text{e}^x - 1}\,\text{d}x$ \\ alors le nombre I $-$ J est égal à}
{{$\ln \dfrac{2}{3}$},
{$\ln \dfrac{3}{2}$},
{$\dfrac{3}{2}$}
}
\end{alterqcm}
{\renewcommand{\arraystretch}{2}
\begin{alterqcm}[lq=85mm,pq=-4mm]
\AQquestion{Pour tout réel $x$, le nombre \[\dfrac{\text{e}^x - 1}{\text{e}^x + 2}\hskip12pt \text{égal à :} \] }
{{$-\dfrac{1}{2}$},
{$\dfrac{\text{e}^{-x} - 1}{\text{e}^{-x} + 2}$},
{$\dfrac{1 - \text{e}^{-x}}{1 + 2\text{e}^{-x}}$}
}
\AQquestion{On pose I $= \displaystyle\int_{\ln 2}^{\ln 3} \dfrac{1}{\text{e}^x - 1}\,\text{d}x$ et J $ = \displaystyle\int_{\ln 2}^{\ln 3} \dfrac{\text{e}^x}{\text{e}^x - 1}\,\text{d}x$ \\ alors le nombre I $-$ J est égal à}
{{$\ln \dfrac{2}{3}$},
{$\ln \dfrac{3}{2}$},
{$\dfrac{3}{2}$}
}
\end{alterqcm} }
\end{document}
答案3
由于环境的排版alterqcm
是在 中完成的tabular
,因此您可以执行与通常获得额外行高相同的调整。这是一个最简单的例子:
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[upright]{fourier}
\usepackage{alterqcm}
\setlength{\parindent}{0pt}
\begin{document}
\begin{alterqcm}[lq=8cm,language=english]
\AQquestion{Question}{%
{Proposition 1},
{Proposition 2},
{Proposition 3}}
\end{alterqcm}
\bigskip
% =========== FACTOR approach ===========
{\renewcommand{\arraystretch}{2}
\begin{alterqcm}[lq=8cm,language=english]
\AQquestion{Question}{%
{Proposition 1},
{Proposition 2},
{Proposition 3}}
\end{alterqcm}}
\bigskip
% =========== LENGTH approach ===========
{\setlength{\extrarowheight}{20pt}%
\begin{alterqcm}[lq=8cm,language=english]
\AQquestion{Question}{%
{Proposition 1},
{Proposition 2},
{Proposition 3}}
\end{alterqcm}}
\end{document}
虽然我扩大了垂直间距,但是您可以指定分数\arraystretch
或负长度\extrarowheight
。
这控制整个alterqcm
环境(标题和正文)的全局变化。