使用 tabto 在(嵌套的)itemize 环境中进行制表

使用 tabto 在(嵌套的)itemize 环境中进行制表

我正在使用包编写一个两列文档multicol。在两级列表中,我想将一些文本制表符放在列的中心。由于我经常使用此选项卡,我之前定义了以下命令

\newcommand{\ta}{\tabto{0.5\columnwidth}}

现在,我希望\columnwidth保持整个列的宽度(就像\textwidth应该保持主体的宽度一样)。相反,如果我嵌套了,选项卡式文本将最终位于不同的位置。

结果带有未对齐的制表符文本

这是一个 MWE

\documentclass[a4paper,table,10pt]{article}
\usepackage{tabto}
\usepackage{multicol}
\usepackage{vmargin}
\setpapersize[landscape]{A4}

\setmarginsrb{2cm}{2cm}{2cm}{2cm}{5pt}{2pt}{5pt}{23pt}
\newcommand{\ta}{\tabto{0.5\columnwidth}}
\begin{document}

\begin{multicols*}{2}

\ta The real center

\begin{itemize}
    \item First level: \ta text
    \begin{itemize}
        \item second level:\ta unaligned
    \end{itemize}
    \item Equation:\ta $a^2=b^2+c^2$
\end{itemize}


\end{multicols*}

\end{document}

在使用 的单列文档中可以观察到相同的行为\textwidth

我是否遗漏了什么?

答案1

感谢@Ulrike Fischer 指出我的疏忽。

要将某些文本移动到中间列,只需减去\leftmargin当前项目的参数。

multicol这里有一个不使用环境的简短版本

\documentclass{article}
\usepackage{tabto}

\begin{document}

\tabto{0.5\textwidth} The real center

\begin{itemize}
    \item First level: \tabto{\dimexpr 0.5\textwidth - \the\leftmargini} text
    \begin{itemize}
        \item second level:\tabto{\dimexpr 0.5\textwidth - \the\leftmargini - \the\leftmarginii} 
              aligned
    \end{itemize}
    \item Equation:\tabto{\dimexpr 0.5\textwidth - \the\leftmargini} 
          $a^2=b^2+c^2$
\end{itemize}

\end{document}

在此处输入图片描述

相关内容