Je cherche des 2 derniers jours et, même si j'ai trouvé des questions similaires sur le débordement de la pile et d'autres discussions sur Google, je n'ai rien trouvé correspondant à ma demande.
J'ai une application préexistante que je soutiens, qui est construit autour des fichiers de modèle R. Sweave RNW servent à générer des fichiers .tex, utilisés pour générer des fichiers .pdf. p>
dans le RNW, il y a du code existant tel que ceci: p> Le problème est, myReport $ Coursinfo shortname a des valeurs qui doivent être échappées pour le latex, car elles comprennent des caractères tels que & (qui force le latex à lancer un erreur sur les colonnes de table).
J'ai tenté d'inclure la bibliothèque SEQINR et de l'utiliser STROSC sur l'ensemble de l'objet de données, mais le fichier .TEX généré indique-t-il un nom indifféral et un nom shortName. P> Je ne suis pas entièrement familier avec R pourfois, mais En jouant avec le modèle, j'ai constaté que les appels vers "Imprimer ()" ci-dessus ne sont même pas nécessaires, comme il suffit de spécifier les variables directement dans \ Sexpr résultats dans les valeurs imprimées, mais mes valeurs échappées ne sont pas évaluées lorsqu'elles sont enregistrées dans le .tex. p> J'ai également tenté de placer des STROSC directement au sein de \ Sexpr (au lieu d'imprimer), sans différence. P> Donc, il semble donc que le processus de R / Sweave Stripping the Slashes, ce qui signifie que je devrais probablement doubler des valeurs, mais je ne suis pas assez familier avec R pour savoir comment faire cela. P> Quel est le moyen approprié d'imprimer des données dynamiques dans un .tex fichier? p> Mise à jour forte>:
Basé sur la réponse de @ Aaron, voici la fonction que j'ai créée: p> mon modèle mis à jour (comme référencé dans mon message original ci-dessus) ressemble maintenant à ceci: p> < PRE> XXX PRE> Donc, une chaîne avec un et désormais correctement dans le fichier de latex généré comme suit: P> Certaines chaînes \ & une autre chaîne p>
blockQuote> p>
4 Réponses :
Je ne suis pas sûr. Est-ce que je l'utiliserais comme \ verb \ sexpr {STROSC (myReport $ plisinfo $ shortName)}?
Vous devez spécifier des délimiteurs de début / de fin qui ne sont pas dans votre expression. Les informations communes sont | code> ou
+ code>. Vous n'auriez pas non plus besoin du
stress code> alors. Comme ceci:
Vous pouvez soit utiliser \ verbe code> ou vous pouvez insérer une barre oblique inverse quadrupple, nécessaire pour en obtenir un dans le fichier Tex final, car il passe à deux opérations d'impression qui convertissent une double "\" à un seul "\".
\documentclass{article}
\begin{document}
<<echo=FALSE, results=hide>>=
sanitize <- function(str) {
result <- str
result <- gsub("&", "\\\\&", result, fixed = TRUE)
result <- gsub("_", "\\\\_", result, fixed = TRUE)
result
}
@
<<>>=
(foo <- "test & _")
sanitize(foo)
@
My string is ``\verb+\Sexpr{foo}+''. When sanitized, it's ``\Sexpr{sanitize(foo)}''.
\end{document}
Solution similaire sur la liste de diffusion R-Help: Stat.Ethz. CH / PipeMermail / R-Aide / 2010-Novembre / 260082.html
Pour clarifier sur votre commentaire concernant \ Verb (votre commentaire dans la réponse de Andrea), obtenir "Quelques texte avec et inclus" imprimé dans TeX comme "Quelque texte avec \ & inclus", je ferais cela? \ Verb + \ Sexpr {myReport $ CoursInfo $ shortName} + code>
Oui et non. Votre commande est correcte, mais ce n'est pas la sortie que vous obtiendriez. La commande verbe dans le latex signifie Verbatim et imprimera des objets comme & et _ sans la nécessité des gastrissements au dos. Cependant, il l'imprimera dans une police monospace, au moins par défaut.
Le lien fonctionne mais a besoin de HTTPS; essayez celui-ci: stat.thz.ch/pipetermail/r- Aide / 2010 à novembre / 260082.html
Selon XKCD , il s'agit du "Backslash actuel, de réel cette fois" et d'ajouter plus pourrait entraîner Le «barre oblique inverse» il transcende le temps et l'espace »ou d'autres résultats plus inquiétants. :)
ou vous pouvez également utiliser Sweave pour faire la table; Lorsque vous utilisez vous rempliriez tex code> de sortie au lieu de
Sexpr code> Seule une double barre oblique inverse est nécessaire, comme mon
sanitize1 code> est ici ou
Stresc Code> fait plus complètement.
d code> avec vos valeurs (
myReport $ rapport_name code> au lieu de
"my_repor_name" code>, par exemple) au lieu de ceux que j'ai composés. p>
Le package La latextranslate se traduit particulièrement
Articles dans les chaînes de caractères au latex
format, par exemple, fait un ^ 2 = A \ $ ^ 2 \ $ pour
Superscript dans des étiquettes variables.
Noms de latex des lettres grecques (par exemple,
"alpha") aura des backslashes ajoutés
Si grec == vrai. Le mode mathématique est inséré
comme requis. Latextranslate suppose que
Le texte d'entrée a toujours des correspondances, par ex. [)
[] (] (), et cela entourant \ $ \ $
est ok. p>
blockQuote> hmisc code> a une fonction
latextranslate code> conçu pour préparer des chaînes pour le latex. De son aideFILE: P>
Merci, je ne savais pas à ce sujet! Cependant, il semble que ajouter seulement deux backslashes, donc fonctionnerait dans tex code> sortie mais pas
Sexpr code>'s.