Sébastien Vauban <wxhgmqzgwmuf-genee64ty+gs+fvcfc7...@public.gmane.org> writes:
> Hi Dan and Sebastian, > > Sebastian Rose wrote: >> Dan Davison <davison-+7o2anknwvpqzy9nttd...@public.gmane.org> writes: >>> Can you point me to an example that shows how to make source code in latex >>> look (almost) as nice as html? >> >> That is supposed to work with the `listings' package. I havent tried that >> yet. >> >> I still use my old LaTeX headers and write verbatim LaTeX code. I'd >> like to switch though, since it's a lot to type. >> >> Here is an example: >> >> \begin{codeblock} >> \keyword{public >> function}~\func{\_\_construct}~(\increaseindent[15]\doindent >> >> \variable{\$instance}~=~\konstante{MAP\_STANDARD\_JS\_INSTANCE},\doindent >> \variable{\$z}~=~\konstante{MAP\_STANDARD\_ZOOM},\doindent >> \variable{\$centerX}~=~-1,\doindent >> \variable{\$centerY}~=~-1,\doindent >> \variable{\$highlights}~=~\keyword{true},\doindent >> \variable{\$spots}~=~\keyword{false}\doindent >> )\resetindent >> \end{codeblock} >> >> Looks horrible, does it? > > If I understand you right, here's such an example you're after: > > #+TITLE: Using the listings package > #+AUTHOR: Seb Vauban > #+DATE: 2010-08-06 > #+LANGUAGE: en_US > > * Code > > This must be nice to see in LaTeX. > > #+SRCNAME: srcModifyDB1.sql > #+BEGIN_SRC sql :tangle srcModifyDB.sql > -- add column `DossierSentToSecteur' (if column does not exist yet) > IF NOT EXISTS (SELECT * > FROM INFORMATION_SCHEMA.COLUMNS > WHERE TABLE_NAME = 'dossier' > AND COLUMN_NAME = 'DossierSentToSecteur') > BEGIN > ALTER TABLE dossier > ADD DossierSentToSecteur smalldatetime NULL > END > GO > #+END_SRC > > Right? > > * Much better code > > For that, you need to customize =listings=: > > #+begin_LaTeX > % typeset source code listings > \usepackage{listings} % must be loaded after `babel' > \lstloadlanguages{C} > \definecolor{...@lstbackground}{html}{ffffcc} % light yellow > \definecolor{...@lstkeyword}{html}{0000ff} % blue > \definecolor{...@lstidentifier}{html}{000000} % black > \definecolor{...@lstcomment}{html}{ff0000} % red > \definecolor{...@lststring}{html}{008000} % dark green > \lstset{% > basicstyle=\ttfamily\scriptsize, % the font that is used for the code > tabsize=4, % sets default tabsize to 4 spaces > numbers=left, % where to put the line numbers > numberstyle=\tiny, % line number font size > stepnumber=0, % step between two line numbers > breaklines=false, %!! don't break long lines of code > showtabs=false, % show tabs within strings adding particular underscores > showspaces=false, % show spaces adding particular underscores > showstringspaces=false, % underline spaces within strings > keywordstyle=\color{...@lstkeyword}, > identifierstyle=\color{...@lstidentifier}, > stringstyle=\color{...@lststring}, > commentstyle=\color{...@lstcomment}, > backgroundcolor=\color{...@lstbackground}, % sets the background color > captionpos=b, % sets the caption position to `bottom' > extendedchars=false %!?? workaround for when the listed file is in UTF-8 > } > #+end_LaTeX > > #+SRCNAME: srcModifyDB2.sql > #+BEGIN_SRC sql :tangle srcModifyDB.sql > -- add column `DossierSentToSecteur' (if column does not exist yet) > IF NOT EXISTS (SELECT * > FROM INFORMATION_SCHEMA.COLUMNS > WHERE TABLE_NAME = 'dossier' > AND COLUMN_NAME = 'DossierSentToSecteur') > BEGIN > ALTER TABLE dossier > ADD DossierSentToSecteur smalldatetime NULL > END > GO > #+END_SRC > > with the following in my `.emacs' file: > > (setq org-export-latex-default-packages-alist > '(("AUTO" "inputenc" t) > ("T1" "fontenc" t) > ("" "fixltx2e" nil) > ("" "graphicx" t) > ("" "longtable" nil) > ("" "float" nil) > ("" "wrapfig" nil) > ("" "soul" t) > ("" "t1enc" t) > ("" "textcomp" t) > ("" "marvosym" t) > ("" "wasysym" t) > ("" "latexsym" t) > ("" "amssymb" t) > ("" "hyperref" nil) > "\\tolerance=1000")) > > ;; tell org to use listings (instead of verbatim) for source code > (setq org-export-latex-listings t) > > ;; if you want fontified source code, then you must include the > ;; `listings' package > (add-to-list 'org-export-latex-packages-alist '("" "listings")) > > ;; if you want colored source code, then you need to include the > ;; `xcolor' package > (add-to-list 'org-export-latex-packages-alist '("" "xcolor")) > > I've put the PDF (for easy access) onto my Web site: > > http://www.mygooglest.com/sva/ECM-Listings.pdf Wow, that's really nice. Thanks for sharing that. I think we should aim to get to a point where org-mode can produce such nicely formatted source code out-of-the-box. Maybe we could even make latex inherit the colours and fonts that emacs is currently using for source code mark up? I was going to suggest doing this with listings but then came across minted, and I wonder whether that's even more suitable? (See the other post I just made.) Dan > > Best regards, > Seb _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode