2010-05-26 15 views
33

Esto es lo que el código busca en Xcode. xcode http://img94.imageshack.us/img94/972/xcode.pngLatex: Listados con fuentes monospace

Y esto en mi listado creado con texlive.

alt text http://img25.imageshack.us/img25/1245/latexn.png

Y sí he usado basicstyle = \ ttfamily. Después de examinar el manual de anuncios no he encontrado nada de fijo con o espacio sencillo fuentes ..

Ejemplo para reproducir

\documentclass[ 
    article, 
    a4paper, 
    a4wide, 
    %draft, 
    smallheadings 
]{book} 

% Packages below 
\usepackage{graphicx} 
\usepackage{verbatim} % used to display code 
\usepackage{hyperref} 
\usepackage{fullpage} 
\usepackage[ansinew]{inputenc} % german umlauts 
\usepackage[usenames,dvipsnames]{color} 
\usepackage{float} 
\usepackage{subfig} 
\usepackage{tikz} 
\usetikzlibrary{calc,through,backgrounds} 
\usepackage{fancyvrb} 
\usepackage{acronym} 
\usepackage{amsthm} % Uuhhh yet another package 
\VerbatimFootnotes % Required, otherwise verbatim does not work in footnotes! 
\usepackage{listings} 

\definecolor{Brown}{cmyk}{0,0.81,1,0.60} 
\definecolor{OliveGreen}{cmyk}{0.64,0,0.95,0.40} 
\definecolor{CadetBlue}{cmyk}{0.62,0.57,0.23,0} 
\definecolor{lightlightgray}{gray}{0.9} 

\begin{document} 
\lstset{ 
language=C,        % Code langugage 
basicstyle=\ttfamily,     % Code font, Examples: \footnotesize, \ttfamily 
keywordstyle=\color{OliveGreen},  % Keywords font ('*' = uppercase) 
commentstyle=\color{gray},    % Comments font 
numbers=left,       % Line nums position 
numberstyle=\tiny,      % Line-numbers fonts 
stepnumber=1,       % Step between two line-numbers 
numbersep=5pt,       % How far are line-numbers from code 
backgroundcolor=\color{lightlightgray}, % Choose background color 
frame=none,        % A frame around the code 
tabsize=2,        % Default tab size 
captionpos=b,       % Caption-position = bottom 
breaklines=true,      % Automatic line breaking? 
breakatwhitespace=false,    % Automatic breaks only at whitespace? 
showspaces=false,      % Dont make spaces visible 
showtabs=false,       % Dont make tabls visible 
columns=flexible,      % Column format 
morekeywords={__global__, __device__}, % CUDA specific keywords 
} 

\begin{lstlisting} 
    As[threadRow][threadCol] = A[ 
     threadCol + threadRow * Awidth // Adress of the thread in the current block 
     + i * BLOCK_SIZE     // Pick a block further left for i+1 
     + blockRow * BLOCK_SIZE * Awidth // for blockRow +1 go one blockRow down 
    ]; 
\end{lstlisting} 

\end{document} 
+2

¿Puede proporcionar un ejemplo de trabajo mínimo? Es decir, solo su entorno 'listing' y el paquete necesario para reproducir el código incorrecto. – Pieter

+0

Hola, Nils, creo que tu código es genial, incluso lo tengo trabajando con Fortran 90. ¿Te importa que lo use para mi tesis? ;) –

Respuesta

31

El problema es la opción columns=flexible. Quítalo y parece que quieres que se vea. Al menos, si no hay una razón real para que lo use. Si lo hay, no hay forma de que el monoespacio de tu fragmento se vea en Xcode :).

+2

Recuerde usar 'basicstyle = \ ttfamily', de lo contrario' columns = fixed' no funciona. (Mi caso) –

+0

Al usar 'basicstyle = \ ttfamily',' columns = flexible' se puede conservar, siempre que use la opción 'keepspaces = true'. Esto dará un aspecto más "empaquetado". Similar al de textualmente. –

3

¿Qué pasa cuando se le cae \ usepackage {} MicroType? Confunde con interletraje y demás, y podría ser la causa del problema, que supongo se debe a la mala alineación.

+0

¿No es obvio? Quiero que use una fuente monoespaciada, para que se vea como en Xcode (que usa una fuente monoespacial). – Nils

+0

Lo resolví después de un tiempo y cambié mi respuesta. –

+0

Ese no debería ser el problema, el manual del microtipo establece en el Capítulo 9: Sugerencias y advertencias que funciona en conjunto muy bien con 'fancyvrb' y' listings'. Como muestra un 'lstset', supongo que usa listas para este código :). – Pieter