添加选项卡或创建自己的命令

添加选项卡或创建自己的命令

我在添加选项卡时遇到问题,并且无法使用tabular环境(如tabulartabbing),因为我无法将它与枚举环境混合。

有没有办法像在任何文本编辑器中一样添加一个标签?我使用 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>}。定位通过以下方式管理zrefsavepos模块来标记 PDF 的位置/长度(以s点为p单位),然后通过 ing 执行水平跳转\kern

在所提供的图像中,水平制表位通过标记来识别,以强调定位。

相关内容