如何解决引用电子邮件文本中的行
我正在尝试将Latex用于某个目的,该目的可能不是专门针对该目的而设计的,并且具有一定的难度。我试图包括一系列电子邮件中的文本,然后我想写一个摘要,引用电子邮件中的行号,以引起人们对会话某些部分的注意。
对于行编号,我发现lineno包运行良好,并允许我使用\ linelabel {label1}宏设置引用目标,然后可以使用\ ref {label1}进行引用。
但是,由于文本格式的电子邮件链中有许多需要转义的字符(例如>字符),因此我一直在寻找一个程序包,该程序包使我可以将文本视为预格式化的文本,同时仍可以解析\ linelabel Latex宏
我已经尝试了逐字环境和lstlisting环境,但是两者似乎都忽略了\ linelabel宏。有人知道我想要的包装吗?
谢谢!
编辑:添加了MWE。在背面运行。演示了使用lineno包,我可以成功获取要输出的行号,并且在电子邮件内容中定义标签时可以引用它们,但是有许多字符需要转义。还显示了将电子邮件内容放在lstlisting块中,这会更好地格式化电子邮件,但会丢失linelabel宏解析。寻找快乐的媒介。
\documentclass[12pt,stdletter,orderfromtodate,sigleft]{newlfm}
\usepackage{listings}
\lstset{basicstyle=\footnotesize,stringstyle=\footnotesize,language=,}
\usepackage{lineno}
\begin{document}
\section{Summary}
Refer to line \ref{label1}. And then he did it again on line \ref{label2}.
\newpage
\linenumbers
\section{Emails with no formatting}
Email response number 2
On Wed,Sep 9,2020,9:15 AM Anonymous wrote:
> Hi Umptyscrunch,>
> I'm letting you know that I did that thing.
>
> Thanks,> Marklar
>
Hi Marklar,\linelabel{label1} Yeahhh. I'm going to need you to come in this Saturday.
Thanks,Umptyscrunch
---------- Forwarded message ---------
No rush,it's all good my friend. It's a minimal working example.
\section{Emails with listing formatting}
\begin{lstlisting}
Email response number 2
On Wed,\linelabel{label2} Yeahhh. I'm going to need you to come in this Saturday.
Thanks,it's all good my friend. It's a minimal working example.
\end{lstlisting}
\end{document}
解决方法
我将使用listings
软件包。它可以显示行号,参考特定行,甚至可以显示颜色回复:
\documentclass[12pt,stdletter,orderfromtodate,sigleft]{newlfm}
\usepackage{listings}
\lstset{
basicstyle=\footnotesize\ttfamily,stringstyle=\footnotesize,escapeinside={&}{&},numbers=left,morecomment=[l][\color{blue!80}]{> },morecomment=[l][\color{red!80}]{>> },}
\begin{document}
\section{Summary}
Refer to line \ref{label2}.
\begin{lstlisting}
Email response number 2
On Wed,Sep 9,2020,9:15 AM Anonymous wrote:
> Hi Umptyscrunch,>
> I'm letting you know that I did that thing.
>
>> previous reply
>
> Thanks,> Marklar
>
Hi Marklar,&\label{label2}&Yeahhh. I'm going to need you to come in this Saturday.
Thanks,Umptyscrunch
---------- Forwarded message ---------
No rush,it's all good my friend. It's a minimal working example.
\end{lstlisting}
\end{document}
(用您的电子邮件中不会出现的任何字母或字母序列替换转义字符&
)
这是我比较满意的地方。尽管我不想在每行末尾插入换行符\\。我宁愿像逐字记录包一样,将输入中的换行符视为输出中的换行符。切换为快递字体可解决>字符显示为?的问题。在输出中。
\documentclass[12pt,sigleft]{newlfm}
\renewenvironment{email}{\fontfamily{pcr}\selectfont\begin{footnotesize}}{\end{footnotesize}\par}
\renewcommand{\L}{\linelabel}
\usepackage{lineno}
\begin{document}
\section{Summary}
Refer to line \ref{label1}. And then he did it again on line \ref{label2}.
\newpage
\linenumbers
\section{Emails with no formatting}
\begin{email}
Email response number 2\\
\\
On Wed,9:15 AM Anonymous wrote:\\
\\
> Hi Umptyscrunch,\\
>\\
> I'm letting you know that I did that thing.\\
>\\
> Thanks,\\
> Marklar\\
>
\\
Hi Marklar,\\
\L{label1}Yeahhh. I'm going to need you to come in this Saturday. This line is so long it should wrap. I believe you have my stapler. \\
\\
Thanks,\\
Umptyscrunch
---------- Forwarded message ---------
No rush,it's all good my friend. \linelabel{label2}It's a minimal working example.
\end{email}
\end{document}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。