====== Cyrillic ====== Subject: matrix description From: "Maria Safonova" Date: Sat, August 10, 2013 10:59 ... Matrix represents 2-mode network, Separator is semicolon (;), 8304 vertices of the first mode (columns, their labels are v0001 - v8304) – are citing articles in Russian journals on ethnology and sociology. 89636 vertices of the second mode (rows, their labels are numbers from 1 to 89636) - are cited papers. As the titles are long complete bibliographical descriptions, my collegues replaced them by numbers. But in case you might wish to have a look at, I attach paper titles in a separate file. ... The task was to convert the matrix in CSV format into corresponding two-mode network in Pajek's format and the list of titles containing also text in cyrillic into an unicode file. ===== CSV2Pajek ===== # CSV2Pajek # by Vladimir Batagelj, August 10, 2013 setwd("C:/temp/pajek") cat("*** CSV2Pajek",date(),"\n") inp <- file("2_mode_cite_id.csv","r") date() n1 <- 0; repeat{L <- readLines(inp,n=1); if(length(L)==0) break; n1 <- n1+1} close(inp) n1 <- n1-1 # subtract header line cat("n1 = ",n1,"\n") date() inp <- file("2_mode_cite_id.csv","r") net <- file("2_mode_cite_id.net","w") date() L <- readLines(inp,n=1) S <- unlist(strsplit(L,";")) n2 <- length(S)-1 # subtract unit number field cat("n2 = ",n2,"\n") n3 <- n1-1 cat("% *** CSV2Pajek",date(),"\n",file=net) cat("*vertices",n1+n2,n1,"\n",file=net) cat(paste(1:n1,paste('"u',1:n1,'"\n',sep='')),file=net) cat(paste((n1+1):(n1+n2),paste('"v',1:n1,'"\n',sep='')),file=net) cat("*arcs\n",file=net) repeat{ L <- readLines(inp,n=1) if(length(L)==0) break S <- as.integer(unlist(strsplit(L,";"))) u <- S[1] for(i in 2:length(S)){if(S[i]>0) cat(u,n3+i,"\n",file=net)} } close(inp); close(net) cat("finished\n") date() ===== Titles into Unicode ===== > tit <- file("titles.csv","r") > L <- readLines(tit,n=10) > close(tit) > S <- L[8] > S [1] "7;[×lerëlânecé D.] Ðrnnócälícl î nâîáîäíuo oóäîclnnâro n îdcnrícle ... > Encoding(S) [1] "unknown" > N <- charToRaw(S) > N [1] 37 3b 5b d7 e5 ea e0 eb e5 e2 f1 ea e8 e9 20 cf 2e 5d 20 d0 e0 f1 f1 f3 e6 ... > I <- as.integer(N) > I [1] 55 59 91 215 229 234 224 235 229 226 241 234 232 233 32 207 46 93 ... I assumed that the text is encoded in some 8-bit encoding. I downloaded some cyrillic fonts and changing the font to ''CourierCTT'' ([[http://www.fontstock.com/softdl/Courier_C.zip|Courier_C.zip]] from [[http://www.aatseel.org/resources/fonts/windows_cyrillic.htm|Windows cyrillic fonts]]) it dispayed the text using the cyrillic characters: "7;[Чекалевский П.] Рассуждение о свободных художествах с описанием некоторых Comparing [1] " 7 ; [ × l e r ë l â n e c é D . ] 7 ; [ Ч е к а л е в с к и й П . ] [1] 37 3b 5b d7 e5 ea e0 eb e5 e2 f1 ea e8 e9 20 cf 2e 5d [1] 55 59 91 215 229 234 224 235 229 226 241 234 232 233 32 207 46 93 with the table in Czyborra's [[http://czyborra.com/charsets/cyrillic.html|The Cyrillic Charset Soup]] I confirmed that the encoding is ''CP1251'' or ''Windows-1251''. From [[http://docs.python.org/3/howto/unicode.html|Python/How to]] we learn: ... The Unicode character U+FEFF is used as a byte-order mark (BOM). In some areas, it is also convention to use a “BOM” at the start of UTF-8 encoded files; the name is misleading since UTF-8 is not byte-order dependent. The mark simply announces that the file is encoded in UTF-8. Use the ‘utf-8-sig’ codec to automatically skip the mark if present for reading such files... >>> BOM = '\uFEFF' >>> print(ord(BOM)) 65279 Now it is easy to get the unicode version of titles: inp = open("titles.csv", "r", encoding="Windows-1251", errors="surrogateescape") out = open("titles.utf8", "w", encoding="UTF-8") BOM = '\uFEFF'; out.write(BOM) for L in inp: out.write(L) inp.close(); out.close() ===== Fonts ===== [[http://www.alanwood.net/unicode/fonts.html|Unicode fonts for Windows]]/[[http://www.alanwood.net/downloads/index.html|Code2000]],[[http://www.smashingmagazine.com/2006/10/11/17-more-free-quality-fonts/|19]], [[http://dejavu-fonts.org/wiki/Main_Page|DejaVu]], [[http://www.fontsaddict.com/font/bitstream-cyberbit.html|Bitstream cyberbit]], [[http://www.iis.ru/cyrillic/about/addlinks.en.html|Cyrillic]]. ===== Cyrillic and LaTeX ===== Sinoči me je Dacar po telefonu vprašal, kako v LaTeXu vključiti besedilo v cirilici. ==== 17/08/2013 18:08 ==== Vladimir Batagelj wrote: Tu so zapiski s Sredinega seminarja, kjer sem predstavil [[http://vlado.fmf.uni-lj.si/seminar/14apr10/default.htm|Xe(La)TeX]]. Tisti \fbox{ } okrog najav na začetku primera je (najbrž) odveč. V cirilici lahko pišeš z uporabo "Character map" (Accessories / System tools) - precej nerodno. Druga možnost so posebni unicodski urejevalniki - na primer [[http://www.babelstone.co.uk/Software/BabelPad.html|BabelPad]]. Za test sem ti pripravil kratko datoteko, ki jo pripenjam. \documentclass[a4paper]{article} \usepackage{fontspec} \usepackage{xunicode} \usepackage{xltxtra} \setmainfont{Arial Unicode MS} \begin{document} Ljubljana Љубљана \end{document} Obdelati jo moraš s programom XeLaTeX - moral bi biti na podpodročju TeXa /bin . Še dva naslova: http://www.xelatex.org/ in http://www.texts.io/support/0002/ . ==== Wed, August 21, 2013 12:37 ==== Subject: Re: Cirilica v LaTeXu From: "France Dacar" Date: Wed, August 21, 2013 12:37 To: vladimir.batagelj@fmf.uni-lj.si Oi Vlado oi: Vse te rešitve so v stilu "A je to!" -- če hočeš dodaten napis v ruski cirilici na poštnem nabiralniku, moraš najprej podreti hišo, postaviti čisto nov nabiralnik na granitnem kandelabru, nato pa nazaj zgraditi hišo okrog nabiralnika. Želim napisati le dve-tri reference v ruščini (štiri, pet vrstic od dva tisoč), ne nameravam pisati celih člankov ali monografij v ruščini... Menda ja nekje prav v ta namen obstaja nekaj takega: \usepackage{porussky} ... \begin{thebibliography}{9999} \bibitem{GantTM} \begin{porussky} Feliks Rubimovi\ch\ Gantmaher, \textit{Teori\ya\ Matric}, ... \end{porussky} \end{thebibliography} Če prav razumem, je AMS svojčas imel nekaj podobnega prav v ta namen -- napisati par referenc na ruske vire (obstajala je celo izbira: ali v cirilici, ali transliteracija v latinici). Potem pa so si zavihali rokave in spravili v LaTeXu skupaj totalno podporo pisanju v cirilici... Gljah. -- France ==== Wed, August 21, 2013 18:49 ==== Subject: Re: Cirilica v LaTeXu From: "Vladimir Batagelj" Date: Wed, August 21, 2013 18:49 To: "France Dacar" Še malo sem pogooglal. Zgleda, da gre tudi s PdfLatexom. Vzorec je na pripetih datotekah. \documentclass{article} \usepackage[utf8]{inputenc} \usepackage[T2A]{fontenc} \begin{document} This text is in Russian: проверка. \end{document} Navaditi pa se bo potrebno na Unicode. Tistih nekaj cirilskih znakov boš že nekako namigal. AMS-jevska rešitev zgleda, da ni več podprta - nadomestil naj bi jo paket babel, ki za grščino (pri meni) deluje, za ruščino pa ne. Glej datoteki cirilica3. \documentclass[a4paper,12pt]{article} \usepackage[UTF8]{inputenc} \usepackage[T1,T2A]{fontenc} \usepackage[russian,greek,english]{babel} \begin{document} The last language listed will be the active (or default) one. The others can be chosen for large blocks: \selectlanguage{russian} Горбачёв \selectlanguage{greek} Ellhnik`o ke`imeno. \selectlanguage{english} You can also insert short pieces of text in arbitrary languages, even within paragraphs of a different language: The capital of Russia is \foreignlanguage{russian}{Moskva} and the capital of Greece is \foreignlanguage{greek}{Ajhna.} \end{document} Oba PDF-ja sta dobljena s PdfLatexom. lp, Vlado ==== Thu, August 22, 2013 12:21 ==== Subject: Re: Cirilica v LaTeXu From: "France Dacar" Date: Thu, August 22, 2013 12:21 To: vladimir.batagelj@fmf.uni-lj.si Oi Vlado oi: \foreignlanguage{russian}{...} je tisto kar potrebujem: glej test1.tex in test1.pdf (pomembna je opcija OT2 v \usepackage[T1,OT2]{fontenc}). V pmcyr.pdf je tabela, na strani 4. Simpel ko pasulj. Ni treba čarati z Unicode ali UTF-8. (Uporabljam LaTeX okolje MiKTeX.) \documentclass{article} \usepackage[T1,OT2]{fontenc} \usepackage[russian,english]{babel} \begin{document} This text is in Russian: \foreignlanguage{russian}{proverka}. The capital of Russia is \foreignlanguage{russian}{Moskva}. \foreignlanguage{russian}{Druzhba} means friendship. \foreignlanguage{russian}{Feliks Ruvimovich Gantmaher, \textit{Teoriya Matric}}. \end{document} Zakaj je bilo to tako težko stauhati? To je bil že moj tretji ali četrti poskus. Koliko sem že prebrodil po internetu gor in dol... V priročniku za babel (babel.pdf, 450 strani(!)) ni ne mu ne bu o tem, namreč kako deluje \foreignlanguage{russian}. Ali je kje kakšen človeško napisan User Manual/Tutorial za babel? Karkoli že babel.pdf je, uporabniku prijazen uporabniški priročnik vsekakor ni. -- France ==== Thu, August 22, 2013 17:16 ==== Subject: Še ena tabela za cirilico v OT2 From: "France Dacar" Date: Thu, August 22, 2013 17:16 To: "Vladimir Batagelj" Oi Vlado oi: Kdor išče ta najde (če ve, kaj išče). V prilogi je še ena [[http://herbert.the-little-red-haired-girl.org/dvi/pdf/cyrillic.pdf|tabela]] \ukazov in ligatur za cirilico pod OT2. Prilagam še primer test2, kako se da shajati brez babel-a. \documentclass[12pt]{article} \usepackage[OT2,T1]{fontenc} \newcommand{\cyr}{\fontencoding{OT2}\fontfamily{wncyr}\selectfont} \setlength{\parindent}{0pt} \begin{document} This text is in Russian: {\cyr proverka}. The capital of Russia is {\cyr Moskva}. {\cyr Druzhba} means friendship. {\cyr Feliks Ruvimovich Gantmaher, \textit{Teo\-riya~Ma\-tric} \textit{Teo\-riya~Ma\-tric} \textit{Teo\-riya~Ma\-tric}}. Compare {\cyr } (false ligature \texttt{ts}) and {\cyr } (with \texttt{t\{\}s}). \end{document} Če ni babel-a, ni avtomatičnega deljenja besed, a ker vse skupaj potrebujem le za nekaj referenc, lahko sam nakažem deljenje, če in kadar je treba. -- France