简化 LaTeX 中注释有序和无序列表的创建

简化 LaTeX 中注释有序和无序列表的创建

我目前正在尝试简化在 LaTeX 中创建带注释的有序和无序列表的过程。我有一种方法可以实现所需的视觉效果,但语法似乎过于复杂。我想知道是否有更简洁或更直接的方法。

这是我当前的实现:

\documentclass{article}
\usepackage[margin=0.5in]{geometry}
\usepackage{tabularx}
\usepackage{booktabs}

\begin{document}

\section{Example A}

\hspace{\parindent} \noindent\begin{tabularx}{\textwidth}{@{}l@{\hspace{0.5cm}}lX}
    \textbullet & First Statement  & \# First Comment  \\ \addlinespace
    \textbullet & Second Statement & \# Second Comment \\ \addlinespace
    \textbullet & Third Statement  & \# Third Comment  \\ \addlinespace
\end{tabularx} \hspace{-\parindent}

This is some commentary on the list.

\section{Example B}

\hspace{\parindent} \noindent\begin{tabularx}{\textwidth}{@{}l@{\hspace{0.5cm}}lX}
    1. & First Statement  & \# First Comment  \\ \addlinespace
    2. & Second Statement & \# Second Comment \\ \addlinespace
    3. & Third Statement  & \# Third Comment  \\ \addlinespace
\end{tabularx} \hspace{-\parindent}

This is some commentary on the list.

\end{document}

我尝试通过为列表的开始和结束创建新的命令来简化此过程,但在关闭列表时遇到了问题:

\newcommand{\beginCommentList}{
    \hspace{\parindent} \noindent\begin{tabularx}{\textwidth}{@{}l@{\hspace{0.5cm}}lX}}
    
\newcommand{\closeCommentList}{
    \end{tabularx} \hspace{-\parindent}}

理想情况下,我想找到一个允许更简单语法的解决方案,例如:

\documentclass{article}
\usepackage[margin=0.5in]{geometry}
\usepackage{tabularx}
\usepackage{booktabs}

% Define CommentItemize
% Define CommentEnumerate

\begin{document}

\section{Example A}

\begin{CommentItemize}
    First Statement  & First Comment
    Second Statement & Second Comment
    Third Statement  & Third Comment
\end{CommentItemize}

This is some commentary on the list.

\section{Example B}

\begin{CommentEnumerate}
    First Statement  & First Comment
    Second Statement & Second Comment
    Third Statement  & Third Comment
\end{CommentEnumerate}

This is some commentary on the list.

\end{document}

任何关于如何实现此目标的建议或反馈都将不胜感激。提前感谢您的帮助!

答案1

在表格列中强制列出列表可能不是一个好主意。您可以使用常规的 itemize 或 enumerate 环境,但不要\item Statement使用标准的宏\foo{Statement}{Comment}。优点是,在同一个列表中,\item Statement当某些行中根本不需要注释时,您仍然可以使用 just ,或者键入一些类似内容,\foo[30]{Statement}{Comment}如果您希望将某些项目限制为宽度的 30% 以包含非常长的注释而不影响整个列表。

在此处输入图片描述

\documentclass{article}
\usepackage{lipsum,xcolor}
\newcommand\foo[3][5]{\item\parbox[t]{.#1\linewidth}{#2}\hfill\parbox[t]{\dimexpr.95\linewidth-0.#1\linewidth}{\color{olive}\sffamily {\bfseries\#} #3}}

\begin{document}

\begin{enumerate}

\foo {First Statement} {First Comment}  

\foo {Second Statement} {Second Comment}  

\foo {Third Statement} {Third Comment}  

\foo {\lipsum[1][1-2]} {\lipsum[2][1]}  

\foo {\lipsum[6][1-2]} {\lipsum[7][1]}  

\foo[20] {\lipsum[1][1]} {\lipsum[2][1-3]}   

\foo[70] {\lipsum[1][1-6]} {\lipsum[2][1]}  

\end{enumerate}

\end{document}

相关内容