请考虑以下 MWE stringstyle=\bfseries\color{blue}
:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage{color}
\usepackage{enumitem}
\usepackage{listings}
\definecolor{codegreen}{rgb}{0,0.6,0}
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
\definecolor{codepurple}{rgb}{0.58,0,0.82}
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}
\lstset {%
backgroundcolor=\color{backcolour},
commentstyle=\color{codegreen},
keywordstyle=\color{magenta},
stringstyle=\bfseries\color{blue}, % <-- When using it the style does not apply because of ""
basicstyle=\scriptsize,
breakatwhitespace=false,
breaklines=true,
captionpos=b,
keepspaces=true,
numbers=left,
numbersep=5pt,
showspaces=false,
showstringspaces=false,
showtabs=false,
tabsize=2,
keepspaces=true,
language=C++,
columns=flexible,
}
\begin{document}
\begin{lstlisting}
"Example"
\end{lstlisting}
\end{document}
众所周知,双引号不太合适:
所以我研究了一下,找到了两个很棒的解决方案乌尔丽克·菲舍尔和埃格尔提出同样的问题!
不幸的是,如果我添加这两种解决方案中的任何一种,就会发生两件事:
PDF
事实上,如果在输出中双引号的出现方式与我希望的复制后一样也是可能的。
有没有简单的方法来解决这两个问题?
谢谢你!!
附言: 感谢 cfr我忘了说我使用了LaTeX->PS->PDF
,如果我添加\usepackage[T1]{fontenc}
,里面的所有文本都会消失。尝试添加它并用更多代码行进行测试:
\begin{lstlisting}
"Example"
Code around here
and here
\end{lstlisting}
输出为:
以下是构建输出:
答案1
您只需要T1
字体的输出编码。(请注意,这假设使用传统的 TeX 引擎之一,即 TeX 或 pdfTeX。)
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[spanish]{babel}
\usepackage{xcolor,textcomp}
\usepackage{listings}
\definecolor{codegreen}{rgb}{0,0.6,0}
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
\definecolor{codepurple}{rgb}{0.58,0,0.82}
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}
\lstset {%
backgroundcolor=\color{backcolour},
commentstyle=\color{codegreen},
keywordstyle=\color{magenta},
stringstyle=\bfseries\color{blue}, % <-- When using it the style does not apply because of ""
basicstyle=\scriptsize,
breakatwhitespace=false,
breaklines=true,
captionpos=b,
keepspaces=true,
numbers=left,
numbersep=5pt,
showspaces=false,
showstringspaces=false,
showtabs=false,
tabsize=2,
keepspaces=true,
language=C++,
columns=flexible,
}
\begin{document}
\begin{lstlisting}
"Example" "Example"
\end{lstlisting}
\end{document}
第二个“示例”是从 Okular 中呈现的 PDF 复制回来的。
请注意,这取决于文档中使用的字体是否以 T1 编码提供。对于大多数人来说,
\usepackage[T1]{fontenc}
就够了。例如,对于安装了 TeX Live 完整版本的人来说,这都是正确的。
但是,如果您没有 T1 格式的 Computer Modern,您可能会收到来自 pdfTeX 或用于从 DVI 转换的二进制文件的错误。在这种情况下,请安装缺少的字体(例如,cm-super
一个提供 T1 格式 CM 的包)或切换字体包(例如,加载lmodern
,或者更好的是,显然cfr-lm
)。