我正在编写 R 函数的用户手册。对于该函数的参数,我需要一些引号,并且我希望它们是方括号,就像用户实际使用该函数时会看到的引号一样。
对于大多数论点来说,引言都很有效,但我坚持其中一条:
functionName(argument1 = "calories", argument2)
它的一部分"c
呈现为C, 给我卡路里代替“卡路里”。
我已尝试过:
functionName(argument1 = \"calories", argument2)
.这将渲染卡路里”。functionName(argument1 = ""calories", argument2)
.这将渲染卡路里”。functionName(argument1 = """calories", agument2)
.这将渲染卡路里再次。
我尝试过一些其他组合,但没有成功。
我怎样才能逃脱"c
序列并拥有两个都方括号和 c?
编辑(添加 MWE)
\documentclass[oneside,letterpaper]{article}
\usepackage[spanish]{babel}
\title{title}
\author{author}
\newenvironment{alltypewritter}{\ttfamily}{\par}
\begin{document}
%\maketitle
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{alltypewritter}
functionName(argument1 = "calories",\\
\hphantom{functionName(} argument2)
\end{alltypewritter}
\end{document}
答案1
您可以简单地使用shorthands=off
,如下所示:
\documentclass[oneside,letterpaper]{article}
\usepackage[shorthands=off,spanish]{babel}
\newenvironment{alltypewritter}{\ttfamily}{\par}
\begin{document}
\begin{alltypewritter}
functionName(argument1 = "calories",\\
\end{alltypewritter}
\end{document}
我经常用它讲德语,以免发疯。
答案2
我主张使用逐字环境\begin{verbatim}...\end{verbatim}
或类似的东西列表包来排版代码。
但是如果你对自己的解决方案感到满意,你可以在本地关闭 babel 简写:
\newenvironment{alltypewritter}{\shorthandoff{"}\ttfamily}{\par}
将关闭你的环境中 babel 使用的双引号简写。
答案3
您想在本地禁用简写。
\documentclass{article}
\usepackage[spanish]{babel}
\newenvironment{alltypewritter}{%
\par\addvspace{\topsep}%
\raggedright
\ttfamily
}{\par\addvspace{\topsep}}
% " is a babel shorthand for Spanish, maybe others are needed
\AtBeginEnvironment{alltypewritter}{\shorthandoff{"}}
\begin{document}
\begin{alltypewritter}
functionName(argument1 = "calories",\\
\hphantom{functionName(}argument2)
\end{alltypewritter}
\end{document}
我保留了问题中的环境名称,但“打字机”没有双“t”。
正如评论中所建议的,使用 可能会有更好的输出verbatim
。
\documentclass[oneside,letterpaper]{article}
\usepackage[spanish]{babel}
\begin{document}
\begin{verbatim}
functionName(argument1 = "calories",
argument2)
\end{verbatim}
\end{document}
查看fancyvrb
包中的逐字文本以了解更多功能。
答案4
正如其他人所说,您可以禁用简写。一个简单的简写可以禁用特定的意外"c
简写,值得重复,避免将两个字符真正粘在一起"{}c
。要自动禁用简写以避免此类意外,您可以使用 babel 选项,但如果您使用的是其他语言,最好仅禁用西班牙语简写,选项如下es-noshorthands
:
\documentclass[oneside,letterpaper]{article}
\usepackage[spanish,es-noshorthands]{babel}
\newenvironment{alltypewritter}{\ttfamily}{\par}
\begin{document}
\begin{alltypewritter}
functionName(argument1 = "calories",\\
\hphantom{functionName(} argument2)
\end{alltypewritter}
\end{document}
但是如果你是一个 R 用户,不利用 R 来knitr
显示 R 代码几乎是一种犯罪,这不仅是因为这可以在不停用简写的情况下解决这个问题:
% mwe.Rnw (in Rstudio)
% mwe.Rtex (in Overleaf)
\documentclass{article}
\usepackage[spanish]{babel}
\begin{document}
<<test,eval=F>>=
functionName(argument1 = "calories",
argument2)
@
\end{document}