我们知道等于\qquad
,\quad\quad
那么有没有办法定义一个命令来\myquad{5}
产生五\quad
?
我认为有两种方法:
获取的长度
\quad
,然后\newcommand{\myquad}[1]{\hspace{#1*lengthofquad}}
定义一个函数并递归加载它,但我不知道如何做到这一点。
答案1
\quad
设置的长度为,其1em
倍数为 的长度。因此,我们可以定义为可选的(默认为),以产生 的空间:X
Xem
\myquad[<num>]
<num>
1
<num>em
\documentclass{article}
\newcommand{\myquad}[1][1]{\hspace*{#1em}\ignorespaces}
\begin{document}
x \quad x \par
x \myquad[1] x
x \quad\quad\qquad x \par
x \myquad[4] x
x \qquad\qquad\qquad\qquad\qquad x \par
x \myquad[10] x
\end{document}
\hspace*
无论您位于规则的开头、中间还是结尾,我们都会插入空格。
答案2
这是使用循环的版本:
\documentclass{article}
\usepackage{pgffor}
\newcommand\Quad[1][1]{\foreach \Quaddy in {1,...,#1}{\quad}\ignorespaces}
\begin{document}
x \quad x \par
x \Quad[1] x
x \quad\quad\qquad x \par
x \Quad[4] x
x \qquad\qquad\qquad\qquad\qquad x \par
x \Quad[10] x
\end{document}
输出:
就我个人而言,我更喜欢沃纳回答中更直接的方式。
答案3
您可以查找和的\quad
定义\qquad
,LaTeX 源或者询问 LaTeX 本身:
这是 pdfTeX,版本 3.14159265-2.6-1.40.16(TeX Live 2015/Debian)(预加载格式=latex) 受限 \write18 已启用。 **\显示\四 进入扩展模式 LaTeX2e <2016/02/01> Babel <3.9q> 和 81 种语言的连字模式已加载。 > \quad=宏: ->\hskip 1em\relax 。 \显示\四 ? *\显示\qquad > \qquad=宏: ->\hskip 2em\relax 。 \显示\qquad ? * !紧急停止。 \显示\qquad 无输出页面。 抄录在 texput.log 上。
在许多情况下,这会将你置于一个由曲折的命令组成的迷宫中,这些命令都有微妙的不同,但在这里它非常简单。四边形是 1埃姆(当前字体中大写字母 M 的标称宽度)。
\newcommand{\myquad}[1]{\hskip #1 em\relax}
或者以更 LaTeXish 的方式
\newcommand{\myquad}[1]{\hspace{#1 em}}