2010-06-24 33 views
20

Bu beni delirtiyor.Center Lateks lstlisting

LaTeX'te bir lstlisting merkezi oluşturmak istiyorum. o sağa gider,

\lstset{ % 
    caption=Descriptive Caption Text, 
    label=lst:descr_capti_text, 
    basicstyle=\ttfamily\footnotesize\bfseries, 
    frame=tb, 
    linewidth=0.6\textwidth 
} 
\centering\begin{tabular}{c} 
\begin{lstlisting} 
printf("this should be centered!"); 
\end{lstlisting} 
\end{tabular} 

Bu onun yazısı ortasına lstlisting koyarak fakat değildir: Burada çalışırken

3 saat sonra bazı kod. Tabloyu çıkarırsam, resim yazısı ortalanır, ancak kod sola gider. :(

teşekkür ederiz.

+4

Tıpkı [LaTeX Stack Exchange önerisini] belirtmekte fayda var (http://area51.stackexchange.com/proposals/2148/tex-latex-and-: Aşağıdaki kod herhangi merkezi veya minipage ortamında olmadan çalışır arkadaşlar? referrer = 5z6F4dAmVScN5QfMOt5KEg2) bu bir kez kalktıktan sonra, bunun gibi sorular için en iyi yer olacak. –

cevap

7

Resim yazınız aslında sadece üst ve senin sadece 0.6\textwidth uzun listeleme altı boyunca çalışacak hatları yapıyoruz. Girişin üzerine ortalanır. Bu başlığı sanki görünmesini sağlar merkez dışına (yukarıdaki aşağıda çizgileri kısaltmak ve yoksa görünür) Ayrıca, sizin \centering listeleme ortalamak gelmez

Bu çalışması gerekir.:.

\begin{center} 
    \lstset{% 
    caption=Descriptive Caption Text, 
    basicstyle=\ttfamily\footnotesize\bfseries, 
    frame=tb 
    } 
    \begin{lstlisting} 
    printf("this should be centered!"); 
    \end{lstlisting} 
\end{center} 

açıklamak yok neden delimiti istiyorsun satırlar 0.6\textwidth uzunluğunda olacak. aslında girişinizin genişliğini bu değer olarak ayarlamak istediğinizde, yaklaşımınız ne yapmak istemez. Tüm liste için bir genişlik ayarlamak için bir minipage gibi bir şey kullanın. merkez çevre içinde minipage koyarak:

begin{minipage}{0.6\textwidth} 
    \begin{center} 
    \lstset{% 
     caption=Descriptive Caption Text, 
     basicstyle=\ttfamily\footnotesize\bfseries, 
     frame=tb, 
    } 
    \begin{lstlisting} 
     printf("this should be centered!"); 
    \end{lstlisting} 
    \end{center} 
\end{minipage} 
+0

Akim gibi, merkezdeki minipage ile çalıştım. – luketorjussen

+1

Ne yazık ki bu benim için çalışmıyor. Giriş hareket etmeyecek. – kaoD

+3

'\ begin {center}' işlevinin kullanılması, listeyi ortalamak için herhangi bir etkiye sahip değil. –

4

Aslında, orada beni çalışma yaptı tersi olduğunu. Bunun yerine (bkz texdoc listings, Bölüm 4.10) xrightmargin ve xleftmargin kullanmayı düşünmelisiniz size çizgi kalınlığı kullanmanın

+0

Aynı şey benim için de – Cemre

19

.

\lstset{ 
    caption=Descriptive Caption Text, 
    basicstyle=\footnotesize, frame=tb, 
    xleftmargin=.2\textwidth, xrightmargin=.2\textwidth 
} 
\begin{lstlisting} 
    printf("this should be centered!"); 
\end{lstlisting} 
+0

İnanılmaz, tam olarak aradığım şey bu. Benim durumumda, xrightmargin üzerinde negatif bir değer kullandım, eğer lslisting çerçevesini etrafta dolaştırabilirsem ... İpucu için teşekkürler! – guipy