![简化 LaTeX 中注释有序和无序列表的创建](https://linux22.com/image/464828/%E7%AE%80%E5%8C%96%20LaTeX%20%E4%B8%AD%E6%B3%A8%E9%87%8A%E6%9C%89%E5%BA%8F%E5%92%8C%E6%97%A0%E5%BA%8F%E5%88%97%E8%A1%A8%E7%9A%84%E5%88%9B%E5%BB%BA.png)
我目前正在尝试简化在 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}