如何在描述列表的描述内进行制表?

如何在描述列表的描述内进行制表?

是否有一个简单的解决方案可以将 HTTP 方法后的所有路径放在同一条垂直线上?

\begin{description}
    \item[\texttt{GET \quad/}] Test
    \item[\texttt{GET /users/sign\_in}] Test
    \item[\texttt{POST /users/sign\_in}] Test
    \item[\texttt{DELETE /users/sign\_out}] Test
    \item[\texttt{GET /backend}] Test
    \item[\texttt{GET /backend/users}] Test
    \item[\texttt{POST /backend/users}] Test
    \item[\texttt{GET /backend/users/new}] Test
    ...
\end{description}

问题可视化

不幸的是,我无法将制表符环境与描述列表混合使用。描述列表是不是执行此操作的错误元素?

我还需要页面普通文本区域中的所有内容。

阿斯达达

答案1

我提出了两种可能的解决方案,使用itemize而不是description

(1)将路径移到项目标签之外(但必须使用 更改字体两次\fonttt{}

\begin{itemize}
    \item[\texttt{GET}]  \texttt{/} Test
    \item[\texttt{GET}]  \texttt{/users/sign\_in} Test
    \item[\texttt{POST}] \texttt{/users/sign\_in} Test
\end{itemize}

(2)如果所有内容都采用单色字体,则使用起来更方便\ttfamily,而且您不需要\texttt{}在每个项目上都使用单色字体。

\begin{itemize}\ttfamily
    \item[GET]  / Test
    \item[GET]  /users/sign\_in Test
    \item[POST] /users/sign\_in Test
\end{itemize}

在此处输入图片描述

编辑:使用双反斜杠来换行。

\begin{itemize}
    \item[\texttt{GET}]  \texttt{/}\\ Test
    \item[\texttt{GET}]  \texttt{/users/sign\_in}\\ Test
    \item[\texttt{POST}] \texttt{/users/sign\_in}\\ Test
\end{itemize}

\begin{itemize}\ttfamily
    \item[GET]  /\\ Test
    \item[GET]  /users/sign\_in\\ Test
    \item[POST] /users/sign\_in\\ Test
\end{itemize}

在此处输入图片描述

答案2

我不认为我的解决方案tabto适合你,假设你的“测试”可以换到下一行。也许最简单的解决方案是使用类似的东西tabularx

\documentclass[12pt,preview,varwidth=true,border=1mm]{standalone}
\usepackage{tabularx}
\newcommand\Mfmt[1]{\textbf{\textrm{#1}}}
\newcommand\longTest{This is a test, a longer test that wraps to two lines.}
\begin{document}
{\ttfamily
\begin{tabularx}{10cm}{lX}
  \Mfmt{GET}    & /                  \linebreak Test \\
  \Mfmt{GET}    & /users/sign\_in    \linebreak \longTest \\
  \Mfmt{POST}   & /users/sign\_in    \linebreak Test \\
  \Mfmt{DELETE} & /users/sign\_out   \linebreak Test \\
  \Mfmt{GET}    & /backend           \linebreak Test \\
  \Mfmt{GET}    & /backend/users     \linebreak Test \\
  \Mfmt{POST}   & /backend/users     \linebreak Test \\
  \Mfmt{GET}    & /backend/users/new \linebreak Test
\end{tabularx}}
\end{document}

在此处输入图片描述

tabto这是使用无法与长“测试”一起使用的解决方案:

\documentclass[12pt,preview,varwidth=true,border=1mm]{standalone}
\usepackage{tabto}
\newlength\ttl
\begin{document}
{\ttfamily
\settowidth\ttl{DELETE}
\begin{description}
    \item[GET]    \tabto{\ttl}/                  \tabto{\ttl} Test
    \item[GET]    \tabto{\ttl}/users/sign\_in    \tabto{\ttl} Test
    \item[POST]   \tabto{\ttl}/users/sign\_in    \tabto{\ttl} Test
    \item[DELETE] \tabto{\ttl}/users/sign\_out   \tabto{\ttl} Test
    \item[GET]    \tabto{\ttl}/backend           \tabto{\ttl} Test
    \item[GET]    \tabto{\ttl}/backend/users     \tabto{\ttl} Test
    \item[POST]   \tabto{\ttl}/backend/users     \tabto{\ttl} Test
    \item[GET]    \tabto{\ttl}/backend/users/new \tabto{\ttl} Test
\end{description}}
\end{document}

在此处输入图片描述

相关内容