语境:我想在文档开头插入 BibTeX 条目。因此我希望此代码片段满足两个条件:
- 易于复制粘贴(看到的代码 = 复制粘贴的代码)
- 看起来不错(使用制表符和空格启用代码片段的“结构化”)。
什么?使用标签和格式化代码需要空格?!这简直是亵渎!
你不这么说吗?下面是代码片段的示例,以使事情更加明确:
@article{Turing1950,
⇥Title␣␣␣=␣{Computing machinery and intelligence},
⇥Author␣␣=␣{Turing, Alan~M.},
⇥Journal␣=␣{Mind},
⇥Year␣␣␣␣=␣{1950},
⇥Pages␣␣␣=␣{433--460},
⇥Volume␣␣=␣{59},
}
我在这里将用 完成的句法缩进Tab(这里用 表示⇥
)与仅为了美观而进行的缩进(即为了使所有=
内容对齐)用 完成的缩进 Space (这里用 表示)区分开来␣
。
问题:我使用一个简单的lstlisting
环境。结果看起来很棒,但是当我复制粘贴时,出现了不必要的换行符[参见 MWE 1]。
我也尝试了 Martin Monperrus 提出的解决方案他的网站。复制粘贴效果很好(没有不必要的换行符,但等号没有对齐),但外观却不然。[参见 MWE 2]。
listings
我也测试了'设置的各种可能性column
,但没有一个是完全令人满意的(见下文)。verbatim
环境也不起作用(对于外观和复制粘贴)。
问题:如何在我的文档中显示可复制粘贴且结构良好的 BibTeX 密钥?
微波能量吸收 1
代码:
\documentclass{scrbook} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{textcomp} \usepackage{listings} \lstset{% basicstyle=\ttfamily, tabsize=2, breaklines=true, breakindent=1em, upquote=true, columns=[c]fixed, literate={*}{{\char42}}1 {-}{{\char45}}1 } \begin{document} \begin{lstlisting} @article{Turing1950, Title = {Computing machinery and intelligence}, Author = {Turing, Alan~M.}, Journal = {Mind}, Year = {1950}, Pages = {433--460}, Volume = {59}, } \end{lstlisting} \end{document}
复制粘贴:
@article { Turing1950 , Title = { Computing machinery and intelligence } , Author = { Turing , Alan ~ M .} , Journal = { Mind } , Year = {1950} , Pages = {433 - - 460} , Volume = {59} , }
微波辐射计 2
代码:
\documentclass{article} \usepackage[T1]{fontenc} \usepackage{textcomp} \usepackage{listings} \lstset{ %basicstyle=\ttfamily,% <----- make things even worse upquote=true, columns=fullflexible, literate={*}{{\char42}}1 {-}{{\char45}}1 {\ }{{\copyablespace}}1 } \usepackage[space=true]{accsupp} % requires the latest version of package accsupp \newcommand{\copyablespace}{ \BeginAccSupp{method=hex,unicode,ActualText=00A0} \ % \EndAccSupp{} } \begin{document} \begin{lstlisting} @article{Turing1950, Title = {Computing machinery and intelligence}, Author = {Turing, Alan~M.}, Journal = {Mind}, Year = {1950}, Pages = {433--460}, Volume = {59}, } \end{lstlisting} \end{document}
复制粘贴:
@article{Turing1950, Title = {Computing machinery and intelligence}, Author = {Turing, Alan~M.}, Journal = {Mind}, Year = {1950}, Pages = {433--460}, Volume = {59}, }
columns=fixed
复制粘贴 = ✘ | 显示 = ✔
columns=flexible
复制粘贴 = ✘ | 显示 = ✘ (year
只会在复制粘贴时出错)
columns=spaceflexible
复制粘贴 = ✘ | 显示 = ✘ (year
只会在复制粘贴时出错)
columns=fullflexible
复制粘贴 = ✘ | 显示 = ✘