Xelatex Εκτύπωση Ελληνικών σε snippet Κώδικα στο κείμενό μου

...εφαρμογές για οτιδήποτε άλλο

Συντονιστής: konnn

Xelatex Εκτύπωση Ελληνικών σε snippet Κώδικα στο κείμενό μου

Δημοσίευσηαπό pc_magas » 17 Μαρ 2018, 19:13

Καλησπέρα Κοινότητα,

Κοιτώ λίγο την LaTex σαν εργαλείο συνεργατικής συγγραφής κειμένου (ειδικά σε ακαδημαϊκό περιβάλλον) καιο προσπαθώ να εκτυπώσω κώδικα μαζί με polyglossia και lisrtings σε TexMaker. Το πειραματικό κείμενο είναι το:

Κώδικας: Επιλογή όλων
\documentclass[a4paper,draft]{article}
\usepackage[Greek,Latin]{ucharclasses}
% Language declaration
\usepackage{xltxtra}
\usepackage{polyglossia}
\usepackage{listings}
\usepackage{color}

\setmainlanguage{greek}
\setotherlanguages{english}
\setTransitionsForGreek{\selectlanguage{greek}}{\selectlanguage{english}}

% Fonts
\usepackage{fontspec}
\setmainfont[Kerning=On,Mapping=tex-text]{Linux Libertine O}
\setmainfont{Times New Roman}
\setsansfont{Arial}
\newfontfamily\greekfont[Script=Greek]{Linux Libertine O}
\newfontfamily\greekfontsf[Script=Greek]{Linux Libertine O}


\definecolor{dkgreen}{rgb}{0,0.6,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{mauve}{rgb}{0.58,0,0.82}

\lstset{frame=tb,
  language=Java,
  aboveskip=3mm,
  belowskip=3mm,
  showstringspaces=false,
  columns=flexible,
  basicstyle=\footnotesize\ttfamily,
  numbers=none,
  numberstyle=\tiny\color{gray},
  keywordstyle=\color{blue},
  commentstyle=\color{dkgreen},
  stringstyle=\color{mauve},
  breaklines=true,
  breakatwhitespace=true,
  tabsize=3,
  texcl=true,
}

\title{My first document}
\date{2018-03-17}
\author{Dimitrios Desyllas}

\begin{document}
\maketitle
\newpage

\section{Πρώτο κεφάλαιο}
   Καλημέρα Greece. This is an English paragraph
   \subsection{Υποκεφάλαιο 1}
   Στην Ελλάδα έχει ήλιο
   \subsubsection{Υποκεφάλαιο }
   Που καίει πολύ
   \subsubsection{Υπουπόκεφάλαιο 1.1}
   Πάρα πολύ
   \subsection{Υποκεφάλαιο 2}
   Στην Ελλάδα έχει θάλλασα
\section{Δεύτερο κεφάλαιο}
Όλα πάνε ρόδινα

\begin{lstlisting}
import javax.swing.JApplet;
import java.awt.Graphics;

public class Hello extends JApplet {
    public void paintComponent(Graphics g) {
        g.drawString("Hello, world!", 65, 95);
    }   
}
\end{lstlisting}

\end{document}


Και προσπαθώ να κάνω να εμφανιστεί (κατά το build) το κομμάτι κώδικα αλλά λαμβάνω σφάλμα:

Κώδικας: Επιλογή όλων
! Package polyglossia Error: The current roman font does not contain the Greek


Έχετε ιδέα πως θα το "διορθώσω";
My blog|Κυπριακή Κοινότητα Ελευθέρου Λογισμικού Λογισμικού ανοικτού Κώδικα
Γνώσεις Linux:Ποτέ αρκετές|Προγραμματισμός: Php, javascript, nodejs, python, bash |Aγγλικά:Καλά
Οι υπολογιστές μου:
Spoiler: show
Ubuntu 16.04 64 bit σεIntel(R) Pentium(R) CPU G4400 @ 3.30GHz, 16Gib Ram, 500Gib Hard Disk, και κάρτα γραφικών Nvidia Geforce GT610
Lubuntu 14.04 σε Dell Inspiron mini 10(1010) intel Atom Z500 1Gb ram και gma500 (εδώθη σε άλλον)
Kubuntu 16.04 Lenovo G70 Intel i5 Nvidia Grapgics Card, Intel Graphics card (έχει 2) με Nouveau, 16Gb RAM, 126GB SSD Σκληρό Δίσκο
Άβαταρ μέλους
pc_magas
powerTUX
powerTUX
 
Δημοσιεύσεις: 2587
Εγγραφή: 12 Απρ 2009, 18:55
Τοποθεσία: Αχαρναί Αττικής
Launchpad: pc_magas
IRC: pc_magas
Εκτύπωση

Re: Xelatex Εκτύπωση Ελληνικών σε snippet Κώδικα στο κείμενό

Δημοσίευσηαπό Tassos10 » 18 Μαρ 2018, 12:33

Ωραίος, μπράβο σας! Η LaTeX είναι ένα πάρα πολύ δυνατό εργαλείο!
Για να καταλάβω κάτι, εσείς με το πακέτο «polyglossia» επιδιώκεται να γράφετε και ελληνικά και αγγλικά με όσο το δυνατόν λιγότερη ευκολία ;
Πολύ μου άρεσε το εν λόγο πακέτο, δε το ήξερα και χρησιμοποιούσα άλλους τρόπους λίγο ποιο "μπελαλίδικους".

Όσο για το error που παίρνεται, έχει να κάνει μάλλον με την γραμματοσειρά. Είναι λίγο θεματάκι με τις γραμματοσειρές των Windows.
Για δοκιμάστε τον παρακάτω κώδικα και πείτε μας αν σας κάνει :

Κώδικας: Επιλογή όλων
%\documentclass{scrreprt}
\documentclass[a4paper]{article}

\usepackage{polyglossia}
\usepackage{xltxtra}
\usepackage{xunicode}
\usepackage{listings}
\usepackage{libertine}
\usepackage{color}
\usepackage{fontspec}

\setdefaultlanguage{greek}
\setotherlanguages{english}

% Fonts
\setmainfont{Liberation Serif} % \setmainfont{Times New Roman} \setsansfont{Arial}
\newfontfamily\greekfont[Script=Greek]{Linux Libertine O}
\newfontfamily\greekfontsf[Script=Greek]{Linux Libertine O}
\setmainfont[Kerning=On,Mapping=tex-text]{Linux Libertine O}

% Define colors :
\definecolor{dkgreen}{rgb}{0,0.6,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{mauve}{rgb}{0.58,0,0.82}

\lstset{frame=tb,
  language=Java,
  aboveskip=3mm,
  belowskip=3mm,
  showstringspaces=false,
  columns=flexible,
  basicstyle=\footnotesize\ttfamily,
  numbers=none,
  numberstyle=\tiny\color{gray},
  keywordstyle=\color{blue},
  commentstyle=\color{dkgreen},
  stringstyle=\color{mauve},
  breaklines=true,
  breakatwhitespace=true,
  tabsize=3,
  texcl=true,
}



\title{My first document}
\date{2018-03-17}
\author{Dimitrios Desyllas}



\begin{document}
   \maketitle
   \newpage

   \section{Πρώτο κεφάλαιο}
      Καλημέρα Greece. This is an English paragraph
      \subsection{Υποκεφάλαιο 1}
      Στην Ελλάδα έχει ήλιο
      \subsubsection{Υποκεφάλαιο }
      Που καίει πολύ
      \subsubsection{Υπουπόκεφάλαιο 1.1}
      Πάρα πολύ
      \subsection{Υποκεφάλαιο 2}
      Στην Ελλάδα έχει θάλλασα
   \section{Δεύτερο κεφάλαιο}
   Όλα πάνε ρόδινα

   \begin{lstlisting}
   import javax.swing.JApplet;
   import java.awt.Graphics;

   public class Hello extends JApplet {
      public void paintComponent(Graphics g) {
          g.drawString("Hello, world!", 65, 95);
      }   
   }
   \end{lstlisting}


\end{document}


Αν στην παρακάτω γραμμή βάλετε και το "draft", δε θα φαίνεται ο JAVA κώδικας :
Κώδικας: Επιλογή όλων
\documentclass[a4paper]{article}


Χωρίς την παρακάτω γραμμής θα έχετε πρόβλημα στο "begin{lstlisting}" :
Κώδικας: Επιλογή όλων
\usepackage{libertine}


Εγώ προσωπικά στο παρελθόν έχω χρησιμοποιήσει και το πακέτο minted για code highlighting.

Επίσης ένα ακόμη ωραίο και απλό εργαλείο συγγραφή κώδικα είναι το Gummi.
Εύχομαι να βοήθησα λιγάκι. :)
Spoiler: show
1 Γνώσεις Linux: Πρώτα βήματα ┃ Προγραμματισμού: Πρώτα βήματα ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 12.04 precise 3.2.0-50-generic 64bit (el_GR.UTF-8, Unity ubuntu), Ubuntu 3.2.0-49-generic
3 Intel Core2 Quad CPU Q9400 2.66GHz ‖ RAM 3954 MiB ‖ ASRock G31M-S
4 nVidia G92 [GeForce 9800 GT] [10de:0614] {nvidia}
5 eth0: Realtek RTL8101E/RTL8102E PCI Express Fast Ethernet controller [10ec:8136] (rev 02)
Tassos10
dudeTUX
dudeTUX
 
Δημοσιεύσεις: 435
Εγγραφή: 29 Μαρ 2010, 10:43
Εκτύπωση

Re: Xelatex Εκτύπωση Ελληνικών σε snippet Κώδικα στο κείμενό

Δημοσίευσηαπό pc_magas » 18 Μαρ 2018, 17:29

Στην λύση που προτείνατε δεν κατανοώ την λειτουργεία του comment:

Κώδικας: Επιλογή όλων
% \setmainfont{Times New Roman} \setsansfont{Arial}


Όπως και του:
Κώδικας: Επιλογή όλων
%\documentclass{scrreprt}


Για ποιον λόγο ορίσατε αυτά τα comments;

Για να καταλάβω κάτι, εσείς με το πακέτο «polyglossia» επιδιώκεται να γράφετε και ελληνικά και αγγλικά με όσο το δυνατόν λιγότερη ευκολία ;

Αντιθέτως με περισσότερη ευκολία δλδ να στο ίδιο κείμενο να έχω Αγγλικά και Ελληνικά και να "αναγνωρίζονται" αυτόματα.

Ακόμη δοκίμασα στην λύση σας να βάλω λίγα Ελληνικά στον κώδικα java αλλά δεν γίνονταί rendered:

Κώδικας: Επιλογή όλων
%\documentclass{scrreprt}
\documentclass[a4paper]{article}

\usepackage{polyglossia}
\usepackage{xltxtra}
\usepackage{xunicode}
\usepackage{listings}
\usepackage{libertine}
\usepackage{color}
\usepackage{fontspec}

\setdefaultlanguage{greek}
\setotherlanguages{english}

% Fonts
\setmainfont{Liberation Serif} % \setmainfont{Times New Roman} \setsansfont{Arial}
\newfontfamily\greekfont[Script=Greek]{Linux Libertine O}
\newfontfamily\greekfontsf[Script=Greek]{Linux Libertine O}
\setmainfont[Kerning=On,Mapping=tex-text]{Linux Libertine O}

% Define colors :
\definecolor{dkgreen}{rgb}{0,0.6,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{mauve}{rgb}{0.58,0,0.82}

\lstset{frame=tb,
  language=Java,
  aboveskip=3mm,
  belowskip=3mm,
  showstringspaces=false,
  columns=flexible,
  basicstyle=\footnotesize\ttfamily,
  numbers=none,
  numberstyle=\tiny\color{gray},
  keywordstyle=\color{blue},
  commentstyle=\color{dkgreen},
  stringstyle=\color{mauve},
  breaklines=true,
  breakatwhitespace=true,
  tabsize=3,
  texcl=true,
}



\title{My first document}
\date{2018-03-17}
\author{Dimitrios Desyllas}



\begin{document}
   \maketitle
   \newpage

   \section{Πρώτο κεφάλαιο}
      Καλημέρα Greece. This is an English paragraph
      \subsection{Υποκεφάλαιο 1}
      Στην Ελλάδα έχει ήλιο
      \subsubsection{Υποκεφάλαιο }
      Που καίει πολύ
      \subsubsection{Υπουπόκεφάλαιο 1.1}
      Πάρα πολύ
      \subsection{Υποκεφάλαιο 2}
      Στην Ελλάδα έχει θάλλασα
   \section{Δεύτερο κεφάλαιο}
   Όλα πάνε ρόδινα

   \begin{lstlisting}
   import javax.swing.JApplet;
   import java.awt.Graphics;

   public class Hello extends JApplet {
      public void paintComponent(Graphics g) {
          g.drawString("Hello, world!", 65, 95);
          g.drawString("Καλημέρα", 65, 95);
      }   
   }
   \end{lstlisting}


\end{document}


Αλλά με το εργαλείο Texmaker μου το εμφανίζει σαν:



Δε δοκίμασα και το minted:

Κώδικας: Επιλογή όλων
%\documentclass{scrreprt}
\documentclass[a4paper]{article}
\usepackage{minted}
\usepackage[Greek,Latin]{ucharclasses}
% Language declaration
\usepackage{xltxtra}
\usepackage{polyglossia}

\setmainlanguage{greek}
\setotherlanguages{english}
\setTransitionsForGreek{\selectlanguage{greek}}{\selectlanguage{english}}

% Fonts
\usepackage{fontspec}
\setmainfont{Liberation Serif} % \setmainfont{Times New Roman} \setsansfont{Arial}
\newfontfamily\greekfont[Script=Greek]{Linux Libertine O}
\newfontfamily\greekfontsf[Script=Greek]{Linux Libertine O}
\let\greekfonttt\ttfamily
\setmainfont[Kerning=On,Mapping=tex-text]{Linux Libertine O}

\title{My first document}
\date{2018-03-17}
\author{Dimitrios Desyllas}

\begin{document}
\maketitle
\newpage

\section{Πρώτο κεφάλαιο}
   Καλημέρα Greece. This is an English paragraph
   \subsection{Υποκεφάλαιο 1}
   Στην Ελλάδα έχει ήλιο
   \subsubsection{Υποκεφάλαιο }
   Που καίει πολύ
   \subsubsection{Υπουπόκεφάλαιο 1.1}
   Πάρα πολύ
   \subsection{Υποκεφάλαιο 2}
   Στην Ελλάδα έχει θάλλασα
\section{Δεύτερο κεφάλαιο}
Όλα πάνε ρόδινα

\begin{minted}
{java}
import javax.swing.JApplet;
import java.awt.Graphics;

public class Hello extends JApplet {
    public void paintComponent(Graphics g) {
        g.drawString("Hello, world!", 65, 95);
    }   
}
\end{minted}

\begin{minted}
{c}
#include "stdio.h"

int main(){
   puts("Καλημέρα");
}
\end{minted}

\end{document}


Αλλά λαμβάνω τα κάτωθι σφάλματα όπως βλέπετε στην φωτό (εργαλείο TexMaker):


Τέλος θέλω να ρωτίσω εάν υπάρχουν "γλώσσες" παρόμοιες με την Tex προκειμένου μέσω markup σύνταξης να γράφω κείμενο χωρίς να με νοιάζει εάν στο copy-paste θα μπει λάθος γραμματοσειρά (κρίσιμο για ακαδημαϊκές εργασίες) η θα αλλαχτεί η γραμματοσειρά επειδή έχω άλλη γλώσσα στο πληκτρολόγιο;
My blog|Κυπριακή Κοινότητα Ελευθέρου Λογισμικού Λογισμικού ανοικτού Κώδικα
Γνώσεις Linux:Ποτέ αρκετές|Προγραμματισμός: Php, javascript, nodejs, python, bash |Aγγλικά:Καλά
Οι υπολογιστές μου:
Spoiler: show
Ubuntu 16.04 64 bit σεIntel(R) Pentium(R) CPU G4400 @ 3.30GHz, 16Gib Ram, 500Gib Hard Disk, και κάρτα γραφικών Nvidia Geforce GT610
Lubuntu 14.04 σε Dell Inspiron mini 10(1010) intel Atom Z500 1Gb ram και gma500 (εδώθη σε άλλον)
Kubuntu 16.04 Lenovo G70 Intel i5 Nvidia Grapgics Card, Intel Graphics card (έχει 2) με Nouveau, 16Gb RAM, 126GB SSD Σκληρό Δίσκο
Άβαταρ μέλους
pc_magas
powerTUX
powerTUX
 
Δημοσιεύσεις: 2587
Εγγραφή: 12 Απρ 2009, 18:55
Τοποθεσία: Αχαρναί Αττικής
Launchpad: pc_magas
IRC: pc_magas
Εκτύπωση

Re: Xelatex Εκτύπωση Ελληνικών σε snippet Κώδικα στο κείμενό

Δημοσίευσηαπό Tassos10 » 19 Μαρ 2018, 01:44

Βασικά δεν χρειάζονται. Ιδιαίτερα αυτή που θέτει ως γραμματοσειρές τις «Times New Roman» & «Arial» που δεν υπάρχουν καν στο GNU/Linux, δημιουργούν και προβλήματα.
Υποθέτω πως μπορείς να τις εγκαταστήσεις πάντως αν όντως θες αυτές. Το αντίστοιχο πάντα ισχύει και στα Windows, μάλλον η «Liberation Serif» δεν θα υπάρχει ( επίσης θα μπορείς να την κάνεις εγκατάσταση αν θέλεις ).
Spoiler: show
1 Γνώσεις Linux: Πρώτα βήματα ┃ Προγραμματισμού: Πρώτα βήματα ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 12.04 precise 3.2.0-50-generic 64bit (el_GR.UTF-8, Unity ubuntu), Ubuntu 3.2.0-49-generic
3 Intel Core2 Quad CPU Q9400 2.66GHz ‖ RAM 3954 MiB ‖ ASRock G31M-S
4 nVidia G92 [GeForce 9800 GT] [10de:0614] {nvidia}
5 eth0: Realtek RTL8101E/RTL8102E PCI Express Fast Ethernet controller [10ec:8136] (rev 02)
Tassos10
dudeTUX
dudeTUX
 
Δημοσιεύσεις: 435
Εγγραφή: 29 Μαρ 2010, 10:43
Εκτύπωση


Επιστροφή στο Εφαρμογές Άλλες-Διάφορες