Оптимальный размер вкладки для [закрытой] удобочитаемости кода

Вы можете установить размер изображения двумя способами; во-первых, если вам известен размер носителя PDF (MediaBox), который находится в файле PDF и в единицах PostScript (1/72 дюйма), тогда простой расчет даст вам необходимое разрешение рендеринга:

разрешение цели X = ширина вывода в пикселях / (ширина носителя / 72)

разрешение цели Y = высота вывода в пикселях / (высота носителя / 72)

Затем можно установить разрешение с помощью переключателя -r, как описано в документации здесь

В качестве альтернативы вы можете установить размер выходного носителя в пикселях с помощью переключателя -g, а затем использовать переключатель -dPDFFitPage чтобы Ghostscript масштабировал содержимое PDF так, чтобы оно вписывалось в вывод. Обратите внимание, что этот метод масштабируется изоморфно. То есть один и тот же масштабный коэффициент применяется как к x, так и к y направлениям.

Ключ -g описан в документации здесь , а ключ -dPDFFitPage описан здесь .

24
задан sotangochips 1 May 2009 в 01:59
поделиться

11 ответов

Four spaces and no hard tabs, if you're a Pythonista.

38
ответ дан 28 November 2019 в 22:40
поделиться

I think I recall that there is a section about indentation in Code Complete, quoting some studies about which level of identation makes the code most readable, but I do not have a copy of it with me right now, so I can't check it.

0
ответ дан 28 November 2019 в 22:40
поделиться

I read that 2 spaces is actually optimal, based on a study where programmers were asked to estimate the level of nesting based on indentation, but that when asked, programmers thought 4 would be optimal. Citation needed, but can't find it.

0
ответ дан 28 November 2019 в 22:40
поделиться

This discussion often involves misunderstandings, because (as jwz describes) it usually involves three distinct issues:

  • What happens when I press the Tab key in my text editor?

  • What happens when I request my editor to indent one or more lines?

  • What happens when I view a file containing U+0009 HORIZONTAL TAB characters?

My answers:

  • Pressing the Tab key should indent the current line (or selected lines) one additional level.

    As a secondary alternative, I can also tolerate an editor that, like Emacs, uses this key for a context-sensitive fix-my-indentation command.

  • Indenting one or more lines should follow the reigning convention, if consensus is sufficiently strong; otherwise, I greatly prefer 4-space indentation at each level.

  • U+0009 characters should shift subsequent characters to the next tab stop. Tab stops begin at column 1 and are 8 columns apart, no exceptions.

5
ответ дан 28 November 2019 в 22:40
поделиться

In the past I used 3 spaces. And that's still my preference. But 4 spaces seems to be the standard in the VB world. So I have switched to 4 to be in line with most code examples I see, and with the rest of my team.

1
ответ дан 28 November 2019 в 22:40
поделиться

I like 8 spaces (I know, right?). It makes the start/ end of blocks really obvious.

As to your question, a formal usability study would be required. Let's look at limits though:

0 spaces

function test(){
var x = 1;
for (i=0; i<=5; i++){
doSomething();
}
}

No indentation is obviously bad. You can't tell where anything begins or ends.

19 Spaces

function test(){
                   var x = 1;
                   for (i=0; i<=5; i++){
                                      doSomething();
                   }
}

Loads of indentation is obviously bad too, because you can't visually link code to its parent function or loop (or what have you) as your peripheral vision doesn't extend that far. Your eyes have to flick too far back and forth to facilitate reading.

8 spaces

function test(){
        var x = 1;
        for (i=0; i<=5; i++){
                doSomething();
        }
}

I think I decided on 8 spaces because the word 'function' is 8 characters long. But it just seems so useful for readability. All the code is in my peripheral vision, and there's no way I can miss the start of a new block of code if I'm quickly scanning.

11
ответ дан 28 November 2019 в 22:40
поделиться

Я не знаю ни одного исследования, которое бы отвечало на ваш вопрос. Я не думаю, что есть способ сделать это субъективным, но мое личное предпочтение - 4 пробела.

2
ответ дан 28 November 2019 в 22:40
поделиться

I've always used one tab as two spaces.

0
ответ дан 28 November 2019 в 22:40
поделиться

Since you're using Python, you could, as said before, take python's style guide (PEP 8) advice:

Indentation

Use 4 spaces per indentation level.

But the Linux kernel CodingStyle says diferent:

Tabs are 8 characters, and thus indentations are also 8 characters. There are heretic movements that try to make indentations 4 (or even 2!) characters deep, and that is akin to trying to define the value of PI to be 3. Rationale: The whole idea behind indentation is to clearly define where a block of control starts and ends. Especially when you've been looking at your screen for 20 straight hours, you'll find it a lot easier to see how the indentation works if you have large indentations.

This document also has some examples of how code should look like, and how identation changes that (it's in C, though)

1
ответ дан 28 November 2019 в 22:40
поделиться

Аргументом для табуляции над пробелами является то, что он позволяет каждому человеку настраивать свой редактор, чтобы видеть любой уровень отступа, который он хочет. Аргумент против вкладок заключается в том, что трудно определить (для автора), когда они смешали вкладки и пробелы. Иногда вам могут понадобиться строки, которые не имеют отступа для табуляции, что приводит к смешанным символам табуляции / пробелов.

Использование двух пробелов имеет следующие преимущества: возможно иметь больше вложенных блоков (это важно, если у вас также есть ограничение на количество строк). ), и что использование двойного отступа (то есть 4 пробелов) является удобочитаемым способом переноса длинных строк. Недостатком является то, что иногда трудно судить, находятся ли две строки в одном и том же отступе.

Использование 8 пробелов имеет противоположные преимущества и недостатки по сравнению с двумя пробелами. Легко оценить уровень отступа, но твоей глубокой вложенностью становится трудно управлять. Многие люди считают, что последний недостаток является преимуществом (потому что он делает глубокое вложение менее желательным).

4 пробела находятся где-то между этими двумя крайностями.

Но я лично считаю, что не имеет значения, какой уровень отступа ты используешь. Самое главное - выбрать какой-то стандарт и придерживаться его. Как уже говорили другие, следуйте PEP8, если вы пишете на Python, следуйте руководству по стилю java от Sun, если вы пишете java, и если вы занимаетесь взломом ядра Linux, следуйте их руководству по стилю. Даже если бы было какое-то небольшое преимущество в использовании одного над другим, это бесполезная трата энергии на выбор. Примите решение и перейдите к интересной части разработки программного обеспечения.

Многие люди считают, что последний недостаток является преимуществом (потому что он делает глубокое вложение менее желательным).

4 пробела находятся где-то между этими двумя крайностями.

Но я лично считаю, что не имеет значения, какой уровень отступа ты используешь. Самое главное - выбрать какой-то стандарт и придерживаться его. Как уже говорили другие, следуйте PEP8, если вы пишете на Python, следуйте руководству по стилю java от Sun, если вы пишете java, и если вы занимаетесь взломом ядра Linux, следуйте их руководству по стилю. Даже если бы было какое-то небольшое преимущество в использовании одного над другим, это бесполезная трата энергии на выбор. Примите решение и перейдите к интересной части разработки программного обеспечения.

Многие люди считают, что последний недостаток является преимуществом (потому что он делает глубокое вложение менее желательным).

4 пробела находятся где-то между этими двумя крайностями.

Но я лично считаю, что не имеет значения, какой уровень отступа ты используешь. Самое главное - выбрать какой-то стандарт и придерживаться его. Как уже говорили другие, следуйте PEP8, если вы пишете на Python, следуйте руководству по стилю java от Sun, если вы пишете java, и если вы занимаетесь взломом ядра Linux, следуйте их руководству по стилю. Даже если бы было какое-то небольшое преимущество в использовании одного над другим, это бесполезная трата энергии на выбор. Примите решение и перейдите к интересной части разработки программного обеспечения.

Но я лично считаю, что не имеет значения, какой уровень отступа вы используете. Самое главное - выбрать какой-то стандарт и придерживаться его. Как уже говорили другие, следуйте PEP8, если вы пишете на Python, следуйте руководству по стилю java от Sun, если вы пишете java, и если вы занимаетесь взломом ядра Linux, следуйте их руководству по стилю. Даже если бы было какое-то небольшое преимущество в использовании одного над другим, это бесполезная трата энергии на выбор. Примите решение и перейдите к интересной части разработки программного обеспечения.

Но я лично считаю, что не имеет значения, какой уровень отступа вы используете. Самое главное - выбрать какой-то стандарт и придерживаться его. Как уже говорили другие, следуйте PEP8, если вы пишете на Python, следуйте руководству по стилю java от Sun, если вы пишете java, и если вы занимаетесь взломом ядра Linux, следуйте их руководству по стилю. Даже если бы было какое-то небольшое преимущество в использовании одного над другим, это бесполезная трата энергии на выбор. Примите решение и перейдите к интересной части разработки программного обеспечения.

Вы делаете взлом ядра Linux, следуя их руководству по стилю. Даже если бы было какое-то небольшое преимущество в использовании одного над другим, это бесполезная трата энергии на выбор. Примите решение и перейдите к интересной части разработки программного обеспечения.

Вы делаете взлом ядра Linux, следуя их руководству по стилю. Даже если бы было какое-то небольшое преимущество в использовании одного над другим, это бесполезная трата энергии на выбор. Примите решение и перейдите к интересной части разработки программного обеспечения.

1
ответ дан 28 November 2019 в 22:40
поделиться
2 space 4 busy coder
3 space for heavy if statement using script kiddies 
4 space for those who make real money pressing space 4 times
8 space for the man in ties and suit who doesn't need to code
4
ответ дан 28 November 2019 в 22:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: