SASnRdisplay 是一个显示 SAS 和 R 代码及结果的包。它似乎与 Tufte 图书类有一些不良交互。下面的代码产生了非常奇怪的文本(带有各种重音符号的字母),而不是表示重要性的 * 周围的单引号。
如果我删除重音符号周围的引号,它就能正常运行,但是我会有很多这样的表格,手动删除它们会很累人而且容易出错。
如果我用文章文档类运行相同的代码,它就能正常运行,即使带有引号。
欢迎提出以下建议:a) 使其按原样正常运行,或 b) 自动删除。
梅威瑟:
\documentclass[nobib]{tufte-book} % Use the tufte-book class which in turn uses the tufte-common class
\usepackage{listings} % For display code listings
\usepackage[english]{SASnRdisplay}
%\usepackage{microtype} % Improves character and word spacing
\begin{document}
\begin{Routput}
Call: lm(formula = y ~ x)
Residuals:
Min 1Q Median 3Q Max
-28.8626 -6.1401 0.0236 5.8645 29.8774
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.3715 1.0498 0.354 0.72416
x 2.7392 1.0378 2.639 0.00966 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 10.37 on 98 degrees of freedom
Multiple R-squared: 0.06637, Adjusted R-squared: 0.05685
F-statistic: 6.967 on 1 and 98 DF, p-value: 0.009661
\end{Routput}
\end{document}
答案1
SASnRdisplay
是基于该listings
包构建的。该包只能处理单字节输入,因此不能处理 UTF8(2 字节)。
如果您只需要支持几个非 ascii 字符,那么可以使用一些技巧literate
,即指定 UTF8 输入和该字符的特定 TeX 输出的选项。
在这种情况下,utf8 引号就是问题所在。
这有效:
\documentclass[nobib]{tufte-book} % Use the tufte-book class which in turn uses the tufte-common class
\usepackage{listings} % For display code listings
\usepackage[english]{SASnRdisplay}
%\usepackage{microtype} % Improves character and word spacing
\lstdefinestyle{r-output-user}{
literate={‘}{{`}}1
{’}{{'}}1
}
\begin{document}
\begin{Routput}
Call: lm(formula = y ~ x)
Residuals:
Min 1Q Median 3Q Max
-28.8626 -6.1401 0.0236 5.8645 29.8774
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.3715 1.0498 0.354 0.72416
x 2.7392 1.0378 2.639 0.00966 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 10.37 on 98 degrees of freedom
Multiple R-squared: 0.06637, Adjusted R-squared: 0.05685
F-statistic: 6.967 on 1 and 98 DF, p-value: 0.009661
\end{Routput}
\end{document}