Officedown: बुकमार्क \@ref मल्टीबाइट स्ट्रिंग्स के लिए काम करने में विफल रहता है

को निर्मित 27 अग॰ 2020  ·  7टिप्पणियाँ  ·  स्रोत: davidgohel/officedown

मान लीजिए मेरे पास नीचे की तरह एक .Rmd फ़ाइल है:

---
title: "Untitled"
output:
  officedown::rdocx_document:
    default
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)



md5-4caffc4710057148fdad652000287a10



# Chapter1 {#ch1}

# Chapter2 {#ch2}

Refer to \@ref(ch1).

जब \@ref (ch1) मल्टीबाइट स्ट्रिंग्स (जैसे, चीनी वर्ण) से घिरा होता है, तो यह संभवतः त्रुटियों का सामना करेगा।

  • शुद्ध मल्टीबाइट + रेफरी

    • उदाहरण: 上下\@ref(ch1)
    • परिणाम: सही
  • मिश्रित मल्टीबाइट/सिंगलबाइट + रेफरी

    • उदाहरण: 上a下\@ref(ch1)
    • परिणाम: गलत (上a下@ref (ch1))
  • रेफरी + मल्टीबाइट

    • उदाहरण: \@ref(ch1)。
    • परिणाम: संकलन विफल


    nchar(u, itype) में त्रुटि: अमान्य मल्टीबाइट स्ट्रिंग, तत्व 1

    कॉल:... regmatches<- -> regmatches -> नक्शा -> mapply ->



क्या आप कृपया इस मुद्दे पर गौर कर सकते हैं? धन्यवाद।


सेशनइन्फो ()

आर संस्करण 4.0.2 (2020-06-22)
प्लेटफार्म: x86_64-w64-mingw32/x64 (64-बिट)
के अंतर्गत चल रहा है: Windows 10 x64 (बिल्ड 20180)

मैट्रिक्स उत्पाद: डिफ़ॉल्ट

स्थान:
[1] LC_COLLATE=चीनी (सरलीकृत)_चीन.936
[2] LC_CTYPE=चीनी (सरलीकृत)_चीन.936
[3] LC_MONETARY=चीनी (सरलीकृत)_चीन.936
[4] एलसी_NUMERIC=सी
[5] एलसी_टाइम = चीनी (सरलीकृत)_चीन.936

संलग्न आधार पैकेज:
[1] आँकड़े ग्राफ़िक्स जीआरडिवाइस यूटिल्स डेटासेट मेथड
[7] आधार

अन्य संलग्न पैकेज:
[1] अधिकारी_0.3.12 ऑफिसडाउन_0.2.0 फ्लेक्सटेबल_0.5.10
[4] ggplot2_3.3.2
[7] dplyr_1.0.2 जालीदार_1.16

नामस्थान के माध्यम से लोड किया गया (और संलग्न नहीं):
[1] आरसीपीपी_1.0.5 जाली_0.20-41 सुंदर इकाइयां_1.1.1
[4] sysfonts_0.8.1 ps_1.3.4 utf8_1.1.4
[7] rprojroot_1.3-2 जोर दें कि_0.2.1 डाइजेस्ट_0.6.25
[10] R6_2.4.1 बैकपोर्ट_1.1.9 मूल्यांकन_0.14
[13] स्तंभ_1.4.6 gdtools_0.2.2 rlang_0.4.7
[16] कर्ल_4.3 uuid_0.1-4 डेटा.तालिका_1.13.0
[19] callr_3.4.3 मैट्रिक्स_1.2-18 रमार्कडाउन_2.3
[22] desc_1.2.0 लेबलिंग_0.3 devtools_2.3.1
[25] stringr_1.4.0 munsell_0.5.0 tinytex_0.25
[28] कंपाइलर_4.0.2 xfun_0.16 pkgconfig_2.0.3
[31] सिस्टमफोंट्स_0.2.3 बेस64एनसी_0.1-3 पीकेजीबिल्ड_1.1.0
[34] rvg_0.2.5 htmlटूल्स_0.5.0 tidyselect_1.1.0
[37] टिब्बल_3.0.3 बुकडाउन_0.20 फैनसी_0.4.1
[40] क्रेयॉन_1.3.4 शोटेक्स्टdb_3.0 withr_2.2.0
[43] ग्रिड_4.0.2 jsonlite_1.7.0 gtable_0.3.0
[46] जीवनचक्र_0.2.0 मैग्रिटर_1.5 स्केल_1.1.1
[49] zip_2.1.0 cli_2.0.2 stringi_1.4.6
[52] farver_2.0.3 fs_1.5.0 रिमोट_2.2.0
[55] परीक्षण कि_2.3.2 xml2_1.3.2 दीर्घवृत्त_0.3.1
[58] जेनरिक_0.0.2 वी.सी.टी.आर._0.3.2 टूल्स_4.0.2
[61] शोटेक्स्ट_0.9 गोंद_1.4.1 purrr_0.3.4
[64] प्रक्रियाx_3.4.3 pkgload_1.1.0 yaml_2.2.1
[67] colorspace_1.4-1 sessioninfo_1.1.1 memoise_1.1.0
[70] इस का उपयोग करें_1.6.1

सभी 7 टिप्पणियाँ

```````


शीर्षक: "शीर्षक रहित"
आउटपुट:
ऑफिसडाउन :: rdocx_document:

चूक

{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE)

अध्याय1 {#ch1}

अध्याय 2 {#ch2}

@ref (ch1) का संदर्भ लें।

जब @ref (ch1) मल्टीबाइट स्ट्रिंग्स (जैसे, चीनी वर्ण) से घिरा होता है, तो यह संभवतः त्रुटियों का सामना करेगा।

  • शुद्ध मल्टीबाइट + रेफरी:上下@ref (ch1)
  • उदाहरण:上a下@ref (ch1)
  • रेफरी + मल्टीबाइट: @ref (ch1)。
    ```````

आपकी समस्या इस तथ्य से संबंधित है कि आप UTF-8 एन्कोडेड फ़ाइल के साथ काम नहीं कर रहे हैं।

जब एन्कोडिंग UTF-8 नहीं है, तो R, R Markdown और Windows ठीक से काम नहीं करते हैं।

Capture d’écran 2020-08-27 à 10 53 27

शीर्षकहीन.docx

हाँ, @davidgohel , आप सही कह रहे हैं। यद्यपि .Rmd फ़ाइल UTF-8 में है, OS GBK एन्कोडिंग पर चल रहा है। जब मैं bookdown::word_document2 में बदलता हूं, तो निट इंजन फ़ाइल को संकलित करने का प्रबंधन करता है। लेकिन मुझे अभी भी मिलता है ?? जहां बुकमार्क प्रदर्शित होना चाहिए।

आपको नए आउटपुट स्वरूप फ़ंक्शन आज़माने की आवश्यकता नहीं है।

नीचे दिखाया गया परिणाम फ्रेंच लोकेल वाले विंडोज के साथ बनाया गया है। लेकिन मैंने सुनिश्चित किया कि फ़ाइल को यूटीएफ -8 के रूप में एन्कोड किया गया था (मैं readr::guess_encoding() का उपयोग कर रहा हूं, अगर यूटीएफ -8 एन्कोडेड नहीं है, तो मैं इसे fpeek::peek_iconv() के साथ यूटीएफ 8 में बदल सकता हूं)।

क्या आप इसका परिणाम दिखा सकते हैं

readr::guess_encoding("your/rmd/file")

परिणाम हैं

नहीं | एन्कोडिंग | आत्मविश्वास
---|---------------|----------:
1 | यूटीएफ-8 | 1
2 | विंडोज़-1252 | 0.28

हाय @madlogos ,

मैं भी एक चीनी उपयोगकर्ता हूं। मल्टीबाइट की समस्या ने भी मुझे लंबे समय से परेशान किया है। यहाँ इसके लिए मेरी चाल है:

  1. हमेशा की तरह @ref लिखें;
  2. Rmd फ़ाइल सहेजें और readr::read_lines इसे;
  3. "\\\\@ref\\([^\\)]+\\)" पैटर्न वाले स्ट्रिंग्स का मिलान करें;
  4. इसे विभाजित करें और सुनिश्चित करें कि "\\\\@ref\\([^\\)]+\\)" एक ही लाइन पर;
  5. कैरेक्टर वेक्टर को एक नई Rmd फाइल में सेव करें और इसे अपने पसंद के फॉर्मेट के साथ रेंडर करें। किया हुआ!

उदाहरण के लिए, 请参考表\@ref(tab: coco)中的数据 को इस प्रकार विभाजित किया जाना चाहिए
[पंक्ति 1] 请参考表
[पंक्ति 2] \@ref(tab: coco)
[पंक्ति 3] 中的数据

खैर, मुझे यकीन नहीं है कि यह एक प्रभावी समाधान है लेकिन यह मेरे लिए काम करता है। मैं

@ bishun945 टर्न-अराउंड के लिए धन्यवाद। अच्छी चीज़।

@madlogos मैंने एक और समाधान की कोशिश की है: बस अपने सिस्टम और एमएस वर्ड भाषा को अंग्रेजी में स्विच करें।

क्या यह पृष्ठ उपयोगी था?
0 / 5 - 0 रेटिंग्स