我在添加选项卡时遇到问题,并且无法使用tabular
环境(如tabular
或tabbing
),因为我无法将它与枚举环境混合。
有没有办法像在任何文本编辑器中一样添加一个标签?我使用 MathType 来使方程式编写更加容易,并且您可以在其中插入标签,因此当您导出代码时,您会看到 MathType 用于&
此目的,但是当您编译该代码时,LaTeX 会抱怨:
Misplaced alignment tab character &.
所以 LaTeX 以某种方式知道我正在尝试添加一个标签,这让我发疯了。
我想创建自己的“tab”宏或命令:这个想法是告诉 LaTeX 使用 返回到左边距(或右边距)并\hspace
使用另一个移动到“tab” \hspace
,例如:
Hi everybody. \hspace{-len_to_left_margin} \hspace{tab_value} My name is Agustin.
那可能吗?
答案1
如果我理解正确的话,你正在寻找类似这样的东西:
\documentclass{article}
\newcommand{\itab}[1]{\hspace{0em}\rlap{#1}}
\newcommand{\tab}[1]{\hspace{.2\textwidth}\rlap{#1}}
\begin{document}
\begin{enumerate}
\item \itab{Format:} \tab{$math$ formula}
\tab{is} \tab{(the real number)}
\item \itab{Example:} \tab{$\pi$}
\tab{is (first digits)} \tab{3.141593}
\item \itab{Ome more:} \tab{$log_{10}(\pi)$}
\tab{is} \tab{1.14473}
\end{enumerate}
\end{document}
更新
一种更简单的方法是将文本放在 中,\makebox
因此我们只需要一个命令。在示例中,当文本宽度超过线宽的 25% 时,文本变为红色(出于演示目的),并且 的长度\makebox
会自动加倍:
\documentclass{article}
\usepackage{ifthen,xcolor}
\newlength{\tabcont}
\newcommand{\tab}[1]{%
\settowidth{\tabcont}{#1}%
\ifthenelse{\lengthtest{\tabcont < .25\linewidth}}%
{\makebox[.25\linewidth][l]{#1}\ignorespaces}%
{\makebox[.5\linewidth][l]{\color{red} #1}\ignorespaces}%
}%
\begin{document}
\begin{enumerate}
\item \tab{Format:}
\tab{$math$ formula}
\tab{is}
\tab{(the real number)}
\item \tab{Example:}
\tab{$\pi$}
\tab{is (first digits)}
\tab{3.141593}
\item \tab{Example:}
\tab{$\pi$}
\tab{is (more digits)}
\tab{3.141592653589793238}
\item \tab{One more example:}
\tab{$log_{10}(\pi)$}
\tab{is}
\tab{1.14473}
\end{enumerate}
\end{document}
更新
但没有必要重新发明轮子!值得一看的是塔托包裹:
\documentclass{article}
\usepackage{tabto}
\begin{document}
\begin{enumerate}
\NumTabs{6}
\item Format:
\tab{$math$ formula}
\tab{is}
\tab{(the real number)}
\item Example:
\tab{$\pi$}
\tab{is (first digits)}
\tab{3.141593}
\item Example:
\tab{$\pi$}
\tab{is (more digits)}
\tab{3.141592653589793238}
\item One more example:
\tab{$log_{10}(\pi)$}
\tab{is}
\tab{1.14473}
\end{enumerate}
\end{document}
结果和上面一样(没有颜色)。
答案2
这是一个模仿的选项Heiko 的回答在我想将下一行缩进指定的位置:
\documentclass{article}
%\usepackage{showframe}% http://ctan.org/pkg/showframe
\usepackage[savepos]{zref}% http://ctan.org/pkg/zref
\makeatletter
% \zsaveposx is defined since 2011/12/05 v2.23 of zref-savepos
\@ifundefined{zsaveposx}{\let\zsaveposx\zsavepos}{}
\newcounter{hposcnt}
\renewcommand*{\thehposcnt}{hpos\number\value{hposcnt}}
\newcommand*{\tab}[2]{% \tab{<len>}{<stuff>}
\stepcounter{hposcnt}%
\zsaveposx{\thehposcnt}%
\zref@refused{\thehposcnt}%
\kern\dimexpr-\zposx{\thehposcnt}sp+1in+\oddsidemargin\relax%
\rlap{\kern#1\relax#2}%
\kern\dimexpr-1in-\oddsidemargin+\zposx{\thehposcnt}sp\relax%
}
\makeatother
\setlength{\parindent}{0pt}% Just for this example
\begin{document}
\makebox[5em][l]{\texttt{5em}\hrulefill}\par
\makebox[25ex][l]{\texttt{25ex}\hrulefill} \par
\makebox[\linewidth][l]{\texttt{\string\linewidth}\hrulefill} \par
Text1 \tab{5em}{Text2} \tab{25ex}{Text3} \tab{\linewidth}{Text4}
\end{document}
它允许您使用 指定相对于文本块左边距的制表符位置\tab{<len>}{<stuff>}
。定位通过以下方式管理zref
的savepos
模块来标记 PDF 的位置/长度(以s
点为p
单位),然后通过 ing 执行水平跳转\kern
。
在所提供的图像中,水平制表位通过标记来识别,以强调定位。