Avatar billede weis Nybegynder
27. november 2006 - 09:06 Der er 13 kommentarer og
2 løsninger

Csharp kode i latex

Hvordan kan man include en csharp kode i sine dokumenter, så kodens tekst bliver farvet?
Avatar billede Slettet bruger
27. november 2006 - 10:06 #1
pakken listings har sikkert en mode til C#.

farvningen handler så bare om konfiguration af de forskellige klasser af nøgleord associeret til C#.

Tjek listings manualen.

/daleif
Avatar billede weis Nybegynder
01. december 2006 - 08:43 #2
Har nu set på det og kan stadig ikke få den til at farve min kode rigtig!
Avatar billede Slettet bruger
01. december 2006 - 10:13 #3
så bliver du nødt til at hoste op med et minimalt eksempel. Jeg koder ikke i C# så jeg ved ikke hvad der skal tilføjes til netop dette sprog.

Husk også at der sikkert mangler keywords i den liste den skal anvende til at genkende ting med. Desuden kan dit fontvalg også spille en rolle især hvis du gerne vil have fed skrivemaskinefont.

Så derfor, post venligst et komplet minimalt eksempel.

/daleif
Avatar billede weis Nybegynder
06. december 2006 - 23:25 #4
Her er et lille eks:

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            for (int i = 0; i <= 10; i++)
            {
                if (i == 3)
                {
                    Console.WriteLine(tekst());
                }
                else
                {
                    Console.WriteLine(i);
                }
            }
        }

        private static string tekst()
        {
            string tekst = "dette er en test"; //tekst der bliver sendt hvis i = 3
            return tekst;
        }
    }
}
Avatar billede Slettet bruger
07. december 2006 - 10:37 #5
Dette virker jo fint nok. Men du har ikke forklaret noget om hvad det er som ikke blev farvet. De nøgleord som listings kender fra C# findes i lstlang1.sty. Jeg har også fremhævet et enkelt ekstra ord. Husk at der kan være et problem med at default skrivemaskinefonten ikke findes i fed! Der er forskellige løsninger på dette i min latexbog.

\documentclass[a4paper]{article}
\usepackage{listings}
% default words comes from lstlang1.sty
\lstset{
  language=[Sharp]C,
  columns=flexible,
  morekeywords=[1]{WriteLine},
  keywordstyle=[1]\sffamily
}
\begin{document}
\begin{lstlisting}
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            for (int i = 0; i <= 10; i++)
            {
                if (i == 3)
                {
                    Console.WriteLine(tekst());
                }
                else
                {
                    Console.WriteLine(i);
                }
            }
        }

        private static string tekst()
        {
            string tekst = "dette er en test"; //tekst der bliver sendt hvis i = 3
            return tekst;
        }
    }
}
\end{lstlisting}
\end{document}

/daleif
Avatar billede weis Nybegynder
07. december 2006 - 12:34 #6
Jeg har nu prøvet dit eks. men jeg får stadig ikke nogen farve på noget af det? og der er ikke behov for at få noget at teksten skrevet med fed.
Avatar billede Slettet bruger
07. december 2006 - 12:39 #7
så bliver du nødt til at fortælle noget om hvilken distribution du får.

hvad mener du med farver? Hvis du ønsker at have farver, f.eks. rød så skal du selv ind og konfigurere listings til det.

hvis du ikke ønsker at få noget i fed, så skal du bare konfigurere den til ikke at gøre det. Det hele står beskrevet i listingsmanualen.

/daleif
Avatar billede weis Nybegynder
07. december 2006 - 13:03 #8
Så har jeg fået det til at virke hvor jeg selv definere de ord den skal farve, men når jeg fx vælger farven "green" så er det en meget stærk farve, kan de muligvis defineres noget mere mørkt?
Avatar billede Slettet bruger
07. december 2006 - 13:06 #9
tjek pakken xcolor. Den har en lidt anderledes farvemodel.

læs manualen.

/daleif
Avatar billede weis Nybegynder
08. december 2006 - 09:09 #10
Tak, så fik jeg det til at virke. Lige et spg hvis du har tid, kan man ikke så linenumber til at stå ved linje 1,5,10,15 osv. for lige nu er det 1,6,11,16... når jeg vil have et step på 5
Avatar billede Slettet bruger
08. december 2006 - 10:24 #11
Det tror jeg ikke at den understøtter. Jeg ville i hvert fald heller ikke anvende nummereringen 1,5,10, jeg ville holde mig til 5, 10, ...

/daleif
Avatar billede weis Nybegynder
08. december 2006 - 10:26 #12
ja men det kan jeg heller ikke få den til!
Avatar billede Slettet bruger
08. december 2006 - 10:47 #13
så kan den sikkert ikke.

Ellers tjek google groups

/daleif
Avatar billede Slettet bruger
08. december 2006 - 11:03 #14
hvis du kan klare dig uden keyword highlighting, så kan du bruge fancyvrb i stedet

\usepackage{fancyvrb}

\VerbatimInput[numbers=left,stepnumber=5]{\jobname.tex}

Den vil så kun nummerere linie 5, 10, ...

/daleif
Avatar billede Slettet bruger
08. december 2006 - 12:51 #15
via lidt hjælp fra en anden liste

ved listing skal du bare tilføje firstnumber=1 sammen med stepnumber=5, så virker det med 5,10,15

/daleif
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester