From: "Sébastien Vauban" <wxhgmqzgwmuf-geNee64TY+gS+FvcfC7Uqw@public.gmane.org>
To: emacs-orgmode-mXXj517/zsQ@public.gmane.org
Subject: How to get pretty printed source code in PDFLaTeX
Date: Fri, 06 Aug 2010 09:59:30 +0200 [thread overview]
Message-ID: <87k4o4893x.fsf_-_@mundaneum.com> (raw)
In-Reply-To: 8762zoogf5.fsf@gmx.de
Hi Dan and Sebastian,
Sebastian Rose wrote:
> Dan Davison <davison-+7o2aNKnwVPQzY9nttDBhA@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:
--8<---------------cut here---------------start------------->8---
#+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{sva@lstbackground}{HTML}{FFFFCC} % light yellow
\definecolor{sva@lstkeyword}{HTML}{0000FF} % blue
\definecolor{sva@lstidentifier}{HTML}{000000} % black
\definecolor{sva@lstcomment}{HTML}{FF0000} % red
\definecolor{sva@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{sva@lstkeyword},
identifierstyle=\color{sva@lstidentifier},
stringstyle=\color{sva@lststring},
commentstyle=\color{sva@lstcomment},
backgroundcolor=\color{sva@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
--8<---------------cut here---------------end--------------->8---
with the following in my `.emacs' file:
--8<---------------cut here---------------start------------->8---
(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"))
--8<---------------cut here---------------end--------------->8---
I've put the PDF (for easy access) onto my Web site:
http://www.mygooglest.com/sva/ECM-Listings.pdf
Best regards,
Seb
--
Sébastien Vauban
_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode-mXXj517/zsQ@public.gmane.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode
next prev parent reply other threads:[~2010-08-06 7:59 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-04 17:00 Change resolution of LaTeX formulas in HTML output? amscopub-mail
2010-08-04 22:32 ` Bastien
2010-08-05 19:11 ` Dan Davison
2010-08-06 9:12 ` Bastien
2010-08-06 10:46 ` Carsten Dominik
2010-08-06 17:21 ` Bastien
2010-08-05 19:14 ` Dan Davison
2010-08-05 20:34 ` Sebastian Rose
2010-08-05 21:36 ` Dan Davison
2010-08-05 22:14 ` Sebastian Rose
2010-08-06 7:59 ` Sébastien Vauban [this message]
2010-08-06 13:39 ` How to get pretty printed source code in PDFLaTeX Dan Davison
2010-08-09 20:30 ` Sébastien Vauban
2010-08-09 22:29 ` Dan Davison
2010-08-10 16:38 ` Thomas S. Dye
2010-08-10 17:37 ` Dan Davison
2010-08-10 19:08 ` Thomas S. Dye
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87k4o4893x.fsf_-_@mundaneum.com \
--to=wxhgmqzgwmuf-genee64ty+gs+fvcfc7uqw@public.gmane.org \
--cc=emacs-orgmode-mXXj517/zsQ@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).