Форматирование объективного C кода C Использование списка в LaTex
Вопрос
Мне интересно, как нужно отформатировать объективный код C, используя listings
Пакет латекса? Я знаю, что язык поддерживает C (объективность), так как мне установить это в \lstset
language
вариант?
Спасибо
Решение
Так:
\documentclass{article}
\usepackage{listings}
\begin{document}
\lstset{language=[Objective]C, breakindent=40pt, breaklines}
\begin{lstlisting}
@interface classname : superclassname {
// instance variables
}
+classMethod1;
+(return_type)classMethod2;
+(return_type)classMethod3:(param1_type)param1_varName;
-(return_type)instanceMethod1:(param1_type)param1_varName :(param2_type)param2_varName;
-(return_type)instanceMethod2WithParameter:(param1_type)param1_varName andOtherParameter:(param2_type)param2_varName;
@end
\end{lstlisting}
\end{document}
Подробное представление: http://mirror.hmc.edu/ctan/macros/latex/contrib/listings/listings.pdf.
Другие советы
Хотя этот ответ не отвечает на вопрос ОП как таковой, Я полагаю, что другие ищут объектив listings
Связанная информация будет наткнуться на этот вопрос.
Ниже a. listings
\lstdefinelanguage
Для объектов-C 2.0, GNU99 и ANSI C99. Пока listings
Включает определения как для C и Objective-C, определения предназначены для старого стандарта C89 и Objective-C 1.0. Версия ниже добавляет C99, добавляет GNU99 на C99, а затем добавляет Objective-C (2.0) в GNU99.
Вы, вероятно, пойдете только к разнице, если вы используете стиль шрифта для ключевых слов, которые отличаются от «нормального» стиля шрифта.
Я являюсь автором кода ниже (за исключением определения ANSI C99, которое было получено из listings
ANSI C и модифицирован для ANSI C99). Вы можете использовать это любым способом, которым вы хотите, включая включение его в другие работы, без атрибуции или компенсации. Настоящим я размещаю его в общественном домене. (Примечание: это в основном для тех, кто работает на работодателях, которые действительно воспитаны в таких вещах, мне действительно все равно.)
lstdefinelanguaguregure [peactive] {c} [gnu99] {c} {morekeweaywords = {@ catch, @ class, @ encode, @ end @ Наконец, @ Реализация,% @ интерфейс, @ Private, @ Protected, @ Протокол, @ Public, @ Selector,% @ синхронизирован, @ бросок, @ попробовать, бул, класс, Imp, no, nil, sel, да, _cmd,% bycopy, byref, id, in, inout, nil, oneway, out, self, Супер,%% Следующие две строки являются объективными ключевыми словами. @ Dynamic, @ package, @ свойство, @ синтез, чтение, чтения, отреагирующие,% назначают, сохранить, копировать, нетомические%},% moredirectives = {импорт}%}% lstdefinelanguage [gnu99] {c} [99] {c} {morekeywords = {ASM, __ ASM __, __, __, typeof, ___ typeof __}%}% lstdefinelanguage [99] {c}% {marekeywords = {_ bool, _complex, _imaginary, auto, brow, case, char,% const, продолжается, по умолчанию . , пустота, летучие,%, в то время как}, чувствительные к%,% MOREComment = [S] {/ *} {* /},% Morecomment = [L] //,% MORESTRING = [B] »,% MORESTRING = [B] ',% moredelim = * [Директива] #,% moredirectives = {define, Elif, еще, Endif, ошибка, если, ifdef, ifndef, линия,% включают, pragma, undef, предупреждение}%} [ключевые слова, комментарии, Строки, директивы]%