比如说,我希望第一行没有缩进,但后续行有一定数量的缩进。我不想在每行末尾输入“\”来中断它。我还想缩短 \begin{...} 代码。
所以我想要这样的东西:
\BE
这是
我的自定义
环境代码
\EE
输出为 pdf 如下:
this is
my custom
enviro code
我知道如何创建自定义环境和命令,至少可以通过遵循其他示例在新手级别上进行创建。
基本上,我正在寻找一种方法来重现多行 R 代码,就像它在 RStudio 的控制台中显示的那样,并且只需输入很少的内容。因此,任何有关如何做到这一点的建议都值得赞赏。
我也意识到 R Markdown 可能是最好的选择,但目前我正尝试使用传统的 latex。您也可以尝试说服我。我也无法在 RStudio 中使用“knit to pdf”,但这是另一个问题。
这是一个最小的工作示例:
\documentclass{article}
\usepackage{color}
\newcommand{\bR}{\ttfamily\color{blue}$>$ }
\newcommand{\eR}{\color{black}\rmfamily}
\begin{document}
Here is how I'd like to be able to type the latex code:
\bR
xbar=mean(x)
summary(x)
hist(x)
\eR
But here is what will give me the formatting that I want:
\bR
xbar=mean(x)\\
\hspace*{0.32in} summary(x) \\
\hspace*{0.32in} hist(x) \\
\eR
\end{document}
一种解决方案是为后续行设置单独的命令(可能是最简单的解决方法)。另一种选择是创建自定义列表环境。我可能可以实现这些。我只是希望找出实现我想要的最佳和最有效方法。
===
编辑:使用下面的答案,我可以做出一些我满意的轻微编辑。
\newenvironment{realR}{\obeylines\parindent5mm\noindent\ttfamily\color{blue}}{}
\newcommand{\rcp}{\noindent $>$ }
\begin{realR}
\rcp x = c()
mean(x)
summary(x)
\end{realR}
答案1
\bR
这里有一个快速破解方法,几乎可以满足您的要求。我个人建议不要使用和这样的缩写,\eR
因为它们会使您的文档更难阅读,如果您有合著者,这会变得更加麻烦。也就是说,使用下面的代码,编写
\bR xbar=mean(x)
summary(x)
hist(x)
\eR
将产生:
请注意至关重要的与! 在xbar=mean(x)
同一行上\bR
(这是“...几乎完成了您想要的工作”中的“几乎”。)
完整代码如下:
\documentclass{article}
\newenvironment{realR}{\obeylines\parindent8mm\noindent}{}
\newcommand\bR{\begin{realR}} % shorthands for environment
\newcommand\eR{\end{realR}}
\begin{document}
\bR xbar=mean(x)
summary(x)
hist(x)
\eR
\end{document}
正如您所看到的,这个想法是使用 来更改段落缩进,\parindent8mm
并使用 来关闭第一行的缩进\noindent
(抱歉,我不能使用英寸...)。该\obeylines
命令告诉 TeX 使用自然换行符。
编辑
虽然你说得很清楚,但我并没有真正意识到你正在排版 R 代码。为此,我建议使用不同的方法列表。例如,您可以生产:
使用代码:
\documentclass{article}
\usepackage{listings}
\begin{document}
\begin{lstlisting}[language=R]
xbar=mean(x)
summary(x)
hist(x)
\end{lstlisting}
\end{document}
只需稍微努力一下,本质上相同的代码就会产生:
以下是经过额外努力的代码:
\documentclass{article}
\usepackage[svgnames]{xcolor}
\usepackage{listings}
\lstdefinestyle{rcode}{
language=R,
backgroundcolor=\color{Gainsboro!50!White},
}
\lstnewenvironment{rcode}{\lstset{style=rcode}}{}
\begin{document}
\begin{rcode}
xbar=mean(x)
summary(x)
hist(x)
\end{rcode}
\end{document}