পেশাদার বইগুলির মতো লেটেক্স উত্স কোড তালিকা


329

কোনও ক্ষীরের উত্স কোডের তালিকাটি কীভাবে পরিচিত বইগুলির মতো একটি আউটপুট উত্পাদন করার মতো দেখতে হবে, উদাহরণস্বরূপ স্প্রিং ফ্রেমওয়ার্কের জন্য? আমি ক্ষীরের তালিকা প্যাকেজটি দিয়ে চেষ্টা করেছি কিন্তু নীচের মতো দেখতে সুন্দর এমন কিছু উত্পাদন করতে সক্ষম হইনি। সুতরাং আমি নীচে নমুনার মতো কিছু তৈরির ফর্ম্যাটিং নির্দেশাবলীতে প্রাথমিকভাবে আগ্রহী (ম্যানিং-এর স্প্রিং ইন অ্যাকশনের নমুনা অধ্যায় থেকে ):

ম্যানিংয়ের স্প্রিং ইন অ্যাকশন থেকে

সম্পাদনা করুন বিশেষত টরমড ফেজেডস্কারের সাহায্যে কাঙ্ক্ষিত চেহারাটি তৈরি করার সম্পূর্ণ স্নিপেট এখানে:

\usepackage{listings}
\usepackage{courier}
\lstset{
    basicstyle=\footnotesize\ttfamily, % Default font
    % numbers=left,              % Location of line numbers
    numberstyle=\tiny,          % Style of line numbers
    % stepnumber=2,              % Margin between line numbers
    numbersep=5pt,              % Margin between line numbers and text
    tabsize=2,                  % Size of tabs
    extendedchars=true,
    breaklines=true,            % Lines will be wrapped
    keywordstyle=\color{red},
    frame=b,
    % keywordstyle=[1]\textbf,
    % keywordstyle=[2]\textbf,
    % keywordstyle=[3]\textbf,
    % keywordstyle=[4]\textbf,   \sqrt{\sqrt{}}
    stringstyle=\color{white}\ttfamily, % Color of strings
    showspaces=false,
    showtabs=false,
    xleftmargin=17pt,
    framexleftmargin=17pt,
    framexrightmargin=5pt,
    framexbottommargin=4pt,
    % backgroundcolor=\color{lightgray},
    showstringspaces=false
}
\lstloadlanguages{ % Check documentation for further languages ...
     % [Visual]Basic,
     % Pascal,
     % C,
     % C++,
     % XML,
     % HTML,
     Java
}
% \DeclareCaptionFont{blue}{\color{blue}} 

% \captionsetup[lstlisting]{singlelinecheck=false, labelfont={blue}, textfont={blue}}
\usepackage{caption}
\DeclareCaptionFont{white}{\color{white}}
\DeclareCaptionFormat{listing}{\colorbox[cmyk]{0.43, 0.35, 0.35,0.01}{\parbox{\textwidth}{\hspace{15pt}#1#2#3}}}
\captionsetup[lstlisting]{format=listing,labelfont=white,textfont=white, singlelinecheck=false, margin=0pt, font={bf,footnotesize}}

এটি আপনার নথিতে এটি ব্যবহার করুন:

\lstinputlisting[label=samplecode, caption=A sample]{sourceCode/HelloWorld.java}

দয়া করে আরও সুনির্দিষ্ট হন। আমার কাছে পোস্ট করা তালিকাটি "পেশাদার বইগুলিতে দেখতে" এবং আপনি যে পোস্ট করেছেন তার মতো "দেখতে সুন্দর দেখাচ্ছে"।
বাসটিয়েন লোনার্ডার্ড

2
আমি ফলাফল সংরক্ষণাগারবদ্ধ করতে চাইলে দয়া করে স্ক্রিনশটের আকারে পোস্ট করা নমুনাটি ব্যবহার করুন।
মর্ক 10075

8
সম্পূর্ণতার জন্য আপনি যে পোস্টটি পোস্ট করেছেন তাতে আপনি \ usepackage {color add যুক্ত করতে চাইতে পারেন। এটি অনুপস্থিত লক্ষ্য করার আগে আমাকে এক মুহুর্তে নিয়ে গিয়েছিল।
রবার্ট ম্যাসাওলি

1
মহান কাজ! যদিও আমাকে \ usepackage {ক্যাপশন} এবং \ usepackage {গ্রাফিক্স যোগ করতে হয়েছিল এবং এটি একক উদ্ধৃতি রূপান্তরিত করে বলে মনে হচ্ছে।
হাকুনিন

হাই মর্কের উত্স ফাইলটি আমার কোথায় রাখতে হবে? আপনার উদাহরণে হ্যালো.জাভা
রফ্লকোপ্রটার এক্সসেপশন

উত্তর:


186

আমার কাছে মনে হচ্ছে আপনি যা চান তা হ'ল ক্যাপশনের চেহারা কাস্টমাইজ করা। এটি captionপ্যাকেজটি ব্যবহার করে খুব সহজেই করা হয় । এই প্যাকেজটি কীভাবে ব্যবহার করবেন সেই নির্দেশাবলীর জন্য ম্যানুয়ালটি (পিডিএফ) দেখুন । ম্যানুয়ালটির ৪ র্থ অধ্যায়ে বর্ণিত আপনার নিজের কাস্টম ক্যাপশন ফর্ম্যাটটি সম্ভবত তৈরি করতে হবে।

সম্পাদনা: মিকটেক্সের সাথে পরীক্ষিত:

\documentclass{report}

\usepackage{color}
\usepackage{xcolor}
\usepackage{listings}

\usepackage{caption}
\DeclareCaptionFont{white}{\color{white}}
\DeclareCaptionFormat{listing}{\colorbox{gray}{\parbox{\textwidth}{#1#2#3}}}
\captionsetup[lstlisting]{format=listing,labelfont=white,textfont=white}

% This concludes the preamble

\begin{document}

\begin{lstlisting}[label=some-code,caption=Some Code]
public void here() {
    goes().the().code()
}
\end{lstlisting}

\end{document}

ফলাফল:

পূর্বরূপ


1
আমি কেবলমাত্র st lstinputlisting বিভাগে (মাই ক্যাপশনের মতো কিছু) জিনিসগুলির জন্য ক্যাপশন ফর্ম্যাটটিকে নতুন করে সংজ্ঞায়িত করতে চাই। কীভাবে এটি করতে আপনার কোনও ইঙ্গিত আছে?
Mork0075

1
ক্যাপশনসেটআপ করুন [তালিকাভুক্তি] {আপনার বিকল্পগুলি}
টর্মোড ফেজেলডস্কার

এটি দুর্দান্ত কাজ করে, আপনাকে ধন্যবাদ। ক্যাপশনটির পিছনে ধূসর ব্যাকগ্রাউন্ডটি কীভাবে অনুধাবন করা যায় (আমার প্রাথমিক পোস্টগুলির নমুনার মতো) আপনি কী ধারণা পেয়েছেন? ডকুমেন্টেশনে কিছু খুঁজে পাওয়া যায় না।
মোরক 10075

আমি মনে করি \ রঙিনবক্স {ধূসর} {\ পারবক্স {\ পাঠ্য প্রস্থ \ {\ পাঠ্য রঙের সাদা} {পাঠ্য এখানে যায় goes} your আপনার প্রাথমিক পোস্টের নমুনার কাছাকাছি কোথাও থাকবে be
টর্মোড ফেজেলডস্কর

2
এটি দেখতে দুর্দান্ত দেখাচ্ছে, তবে আমার ক্যাপশন বাক্সটি ইন্টেন্টেড হবে (পাঠ্য নয়, বাক্সটি নিজেই)। কেন জানি না, যেহেতু তালিকাটি কোনওভাবেই ইন্টেন্ট করা হয় না।
জোহান

49

আমি listingsপ্যাকেজটি নিয়ে খুশি :

উদাহরণস্বরূপ

এখানে আমি এটি কনফিগার করব কীভাবে:

\lstset{
language=C,
basicstyle=\small\sffamily,
numbers=left,
numberstyle=\tiny,
frame=tb,
columns=fullflexible,
showstringspaces=false
}

আমি এটি এর মতো ব্যবহার করি:

\begin{lstlisting}[caption=Caption example.,
  label=a_label,
  float=t]
// Insert the code here
\end{lstlisting}

1
@ লাম্বা: যদি আমি সঠিকভাবে মনে করি তবে এটি লেটেক্সকে এটি পৃষ্ঠার শীর্ষে রাখতে বলে।
বাসটিয়েন লোনার্ডার্ড

7
উরগ, আনুপাতিক ফন্টের তালিকা এত বড় কুৎসিত u (প্লাস, সাংস্কৃতিক কারণে, তারা কিছু (কমপক্ষে অনেক জাপানি, সম্ভবত অন্যান্য এশীয়) লোকদের পক্ষে পড়া শক্ত))
মীরাবিলো

1
@ আমিরাবিলো: হ্যাঁ, আমি মনে করি এটি পরে পরিবর্তন করেছি। এটি এই তালিকাটিতে ঠিক আছে তবে অন্যের উপরে বেশি ইনডেন্টেশন / বাসা বাঁধার জন্য নয়।
বাস্তিয়ান লোনার্ড

32

এবং দয়া করে, আপনি যাই করুন না কেন, স্থির-প্রস্থের ফন্ট ব্যবহার করার জন্য তালিকা প্যাকেজটি কনফিগার করুন (আপনার উদাহরণ হিসাবে; আপনি ডকুমেন্টেশনে বিকল্পটি খুঁজে পাবেন)। ডিফল্ট সেটিং গ্রিডে আনুপাতিক ফন্ট টাইপসেট ব্যবহার করে, যা, আইএমএইচও, অবিশ্বাস্যভাবে কুৎসিত এবং অপঠনযোগ্য, যা ছবি সহ অন্যান্য উত্তরগুলি থেকে দেখা যায়। যখন আমি আনুপাতিক ফন্টে কিছু কোড টাইপসেট পড়তে পারি তখন আমি ব্যক্তিগতভাবে খুব বিরক্ত হই ।

এটির সাথে স্থির-প্রস্থের ফন্টটি সেট করার চেষ্টা করুন:

\lstset{basicstyle=\ttfamily}

3
আমি উপরোক্ত উদাহরণ হিসাবে যেমন ব্যাসারস্টাইল = \ ছোট \ সিফামিলি সহ ব্যক্তিগতভাবে কলামগুলি = পূর্ণতম নমনীয় ব্যবহার করি। চরিত্রগুলি উল্লম্বভাবে সারিবদ্ধ নয়, তবে আমি মনে করি \ টিফ্যামিলির চেয়ে এগুলি আরও ভাল দেখাচ্ছে। আমি কি কুগ্রহের উপরে পোস্ট করা নমুনা খুঁজে পাই?
বাসটিয়েন লোনার্ডার্ড

আপনার বিশেষ উদাহরণটি দুর্দান্ত দেখাচ্ছে। যাইহোক, আমি এটি নেস্টেড যৌগিক বিবৃতি দিয়ে ঘৃণা করব যেখানে কোনও যৌগিক বিবৃতি ({} ব্লক) এর সীমা দেখতে যথাযথ ইনডেন্টেশন (কলাম প্রান্তিককরণ) একটি বড় সহায়তা।
zvrba

আমি একই জিনিসটি ভাবছিলাম, তবে এখনও পর্যন্ত আমার সমস্ত তালিকা ভাল লাগছিল।
বাসটিয়েন লোনার্ডার্ড

ঠিক আছে, আপনি আমাকে বিশ্বাস করেছেন, আমি একবার আপনার সেটআপ চেষ্টা করব :-)
zvrba

1
নেস্টেড যৌগিক বিবৃতিগুলি একটি লাল শাবক। যেহেতু ইনডেন্টেশনগুলি সমস্ত ফাঁকা স্থান নিয়ে গঠিত, তাই অন্যান্য অক্ষরের প্রস্থ নির্বিশেষে ইনডেন্টেশনগুলি সীমাবদ্ধ থাকবে।
jwg

27

আমি ভাবছি কেন কেউ মিন্টড প্যাকেজটির কথা উল্লেখ করেনি । এটিতে ল্যাটেক্স তালিকা প্যাকেজের তুলনায় আরও ভাল সিনট্যাক্স হাইলাইট রয়েছে। এটি পাইগমেন্ট ব্যবহার করে

$ pip install Pygments

লেটেক্সে উদাহরণ:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}

\usepackage{minted}

\begin{document}
\begin{minted}{python}
import numpy as np

def incmatrix(genl1,genl2):
    m = len(genl1)
    n = len(genl2)
    M = None #to become the incidence matrix
    VT = np.zeros((n*m,1), int)  #dummy variable

    #compute the bitwise xor matrix
    M1 = bitxormatrix(genl1)
    M2 = np.triu(bitxormatrix(genl2),1) 

    for i in range(m-1):
        for j in range(i+1, m):
            [r,c] = np.where(M2 == M1[i,j])
            for k in range(len(r)):
                VT[(i)*n + r[k]] = 1;
                VT[(i)*n + c[k]] = 1;
                VT[(j)*n + r[k]] = 1;
                VT[(j)*n + c[k]] = 1;

                if M is None:
                    M = np.copy(VT)
                else:
                    M = np.concatenate((M, VT), 1)

                VT = np.zeros((n*m,1), int)

    return M
\end{minted}
\end{document}

যার ফলাফল:

এখানে চিত্র বর্ণনা লিখুন

আপনাকে -shell-escapeপিডিএফলেটেক্স কমান্ড সহ পতাকা ব্যবহার করতে হবে ।

আরও তথ্যের জন্য: https://www.sharelatex.com/learn/Code_Hightlight_with_minted


2
+1 টি। লিনেক্সে টাইপসেটিং উত্স কোডের জন্য প্যাকেজটি হ'ল কেবল এটি ব্যবহার করা সহজ, বৈশিষ্ট্য সমৃদ্ধ এবং ভাল নথিভুক্ত নয়, তবে উত্স কোডে ইউনিকোড অক্ষরগুলির সাথে এটির কোনও সমস্যা নেই (বিপরীত listings)।
স্কামকোডার

আমার সৌভাগ্য! অনেক ভালো! পরামর্শের জন্য আপনাকে অনেক ধন্যবাদ।
দিমিত্রি জোটিকভ

21

listingsপ্যাকেজে চেষ্টা করুন । রঙিন জাভা তালিকা তৈরি করতে আমি কিছু সময় আগে যা ব্যবহার করেছি তার উদাহরণ এখানে:

\usepackage{listings}

[...]

\lstset{language=Java,captionpos=b,tabsize=3,frame=lines,keywordstyle=\color{blue},commentstyle=\color{darkgreen},stringstyle=\color{red},numbers=left,numberstyle=\tiny,numbersep=5pt,breaklines=true,showstringspaces=false,basicstyle=\footnotesize,emph={label}}

[...]

\begin{lstlisting}
public void here() {
    goes().the().code()
}

[...]

\end{lstlisting}

আপনি এটি কাস্টমাইজ করতে পারেন। তালিকা প্যাকেজটির বিভিন্ন উল্লেখ রয়েছে। শুধু তাদের গুগল।


ধন্যবাদ। আমি তালিকা প্যাকেজটি সম্পর্কে এখনও সচেতন, তবে আমার নমুনার মতো ফর্ম্যাট করতে পারছি না। এটিই আসল প্রশ্ন।
মর্ক 10075

9

কটাক্ষপাত algorithmsপ্যাকেজ, বিশেষত algorithmপরিবেশ।


1
ধন্যবাদ। এই প্যাকেজটি আরও তাত্ত্বিক আলগোথার্ম আলোচনায় খুব শক্তিশালী বলে মনে হচ্ছে, আমি এটি বহু গণিতের বই থেকে জানি। তবে আমি এটিকে এত বেশি গুরুত্ব দিতে চাই না (পূর্বশর্ত, যদি অন্যথায়) তবে আমি উপরের মত একটি ফর্ম্যাটিং করতে চাই।
Mork0075

4
আমি শুধু algorithmপরিবেশের কথা বলছিলাম , না algorithmicalgorithmএটি একটি ভাসমান ধারক, যা দেখতে বেশ সুন্দর দেখাচ্ছে। আপনি ভিতরে যা চান তা রাখতে পারেন, এমনকি listingউল্লিখিত অন্য পাঠাও।
অবাকর

8

আপনি করতে পারেন এমন আরও কয়েকটি জিনিস রয়েছে যেমন নতুন ফন্ট নির্বাচন করা:

\documentclass[10pt,a4paper]{article}
% ... lots of packages e.g. babel, microtype, fontenc, inputenc &c.
\usepackage{color}    % Leave this out if you care about B/W printing, obviously.
\usepackage{upquote}  % Turns curly quotes in verbatim text into straight quotes. 
                      % People who have to copy/paste code from the PDF output 
                      % will love you for this. Or perhaps more accurately: 
                      % They will not hate you/hate you less.
\usepackage{beramono} % Or some other package that provides a fixed width font. q.v.
                      % http://www.tug.dk/FontCatalogue/typewriterfonts.html
\usepackage{listings} 
\lstset {                 % A rudimentary config that shows off some features.
    language=Java,
    basicstyle=\ttfamily, % Without beramono, we'd get cmtt, the teletype font.
    commentstyle=\textit, % cmtt doesn't do italics. It might do slanted text though.
    \keywordstyle=        % Nor does cmtt do bold text.
        \color{blue}\bfseries,
    \tabsize=4            % Or whatever you use in your editor, I suppose.
}
\begin{document} 
\begin{lstlisting}
public final int ourAnswer() { return 42; /* Our final answer */ }
\end{lstlisting} 
\end{document}

2
আমি বিশ্বাস করি যে \ কীওয়ার্ড স্টাইলে এবং \ ট্যাবসাইজে ব্যাকস্ল্যাশটি সরানো উচিত কারণ এটি এভাবে কাজ করবে না। তবুও খুব সহায়ক!
Xifhias

2

আর কোডের জন্য আমি ব্যবহার করি

\usepackage{listings}
\lstset{
language=R,
basicstyle=\scriptsize\ttfamily,
commentstyle=\ttfamily\color{gray},
numbers=left,
numberstyle=\ttfamily\color{gray}\footnotesize,
stepnumber=1,
numbersep=5pt,
backgroundcolor=\color{white},
showspaces=false,
showstringspaces=false,
showtabs=false,
frame=single,
tabsize=2,
captionpos=b,
breaklines=true,
breakatwhitespace=false,
title=\lstname,
escapeinside={},
keywordstyle={},
morekeywords={}
}

এবং এটি দেখতে ঠিক এমন দেখাচ্ছে

এখানে চিত্র বর্ণনা লিখুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.