Как я могу создать ЛАТЕКСНЫЕ документы PDF с МУРАВЬЕМ (или некоторая другая система сборки, если Вы предпочитаете)?

Для получения полностью определенного названия машины мы должны сначала получить локальное имя хоста и затем поиск каноническое имя.

самый легкий способ сделать это первым получением локального имени хоста с помощью uname() или gethostname() и затем выполняя поиск с gethostbyname() и смотря h_name член структуры, которую это возвращает. При использовании ANSI c Вы должны использование uname() вместо gethostname().

Пример:

char hostname[1024];
hostname[1023] = '\0';
gethostname(hostname, 1023);
printf("Hostname: %s\n", hostname);
struct hostent* h;
h = gethostbyname(hostname);
printf("h_name: %s\n", h->h_name);

, К сожалению, gethostbyname() удерживается от использования в текущей спецификации POSIX, поскольку она не играет хорошо с IPv6. Более современная версия этого кода использовала бы getaddrinfo().

Пример:

struct addrinfo hints, *info, *p;
int gai_result;

char hostname[1024];
hostname[1023] = '\0';
gethostname(hostname, 1023);

memset(&hints, 0, sizeof hints);
hints.ai_family = AF_UNSPEC; /*either IPV4 or IPV6*/
hints.ai_socktype = SOCK_STREAM;
hints.ai_flags = AI_CANONNAME;

if ((gai_result = getaddrinfo(hostname, "http", &hints, &info)) != 0) {
    fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(gai_result));
    exit(1);
}

for(p = info; p != NULL; p = p->ai_next) {
    printf("hostname: %s\n", p->ai_canonname);
}

freeaddrinfo(info);

, Конечно, это будет только работать, если машина будет иметь FQDN для предоставления - в противном случае, результат эти getaddrinfo() заканчивает тем, что совпал с неполным именем хоста.

7
задан Salim Fadhley 8 October 2009 в 17:49
поделиться

4 ответа

Существует внешняя задача Ant для создания LaTeX PDF, хотя сайт на немецком языке.

Чтобы использовать ее, загрузите jar-файл в папку на вашем компьютере. , затем определите taskdef следующим образом:

<taskdef name="latex"    classname="de.dokutransdata.antlatex.LaTeX"  
  classpath="/path/to/ant/lib/ant_latex.jar"/> 

Затем, чтобы использовать его, определите цель следующим образом:

<target name="doLaTeX">  
  <latex  
    latexfile="${ltx2.file}"  
    verbose="on"  
    clean="on"  
    pdftex="off"  
    workingDir="${basedir}"  
  />  
</target> 

Где ltx2.file - файл для обработки.

Это ссылка на страницу с инструкциями с перечислением параметров. Если вам нужны другие варианты, мой немецкий будет достаточно сносным, чтобы объяснить, возможно.

Существует также плагин maven для LaTeX , но я не могу найти никакой документации.

7
ответ дан 7 December 2019 в 01:23
поделиться

Если вы знакомы с python, этот пост в блоге может быть интересным

РЕДАКТИРОВАТЬ : Кроме того, я предполагаю, что вы используете какую-то систему контроля версий, и Я не могу сказать наверняка, но я использую git для управления всеми моими латексными документами, и, возможно, можно будет использовать какой-то хук после фиксации для выполнения сценария для восстановления документа. Это будет зависеть от того, как структурировано ваше хранилище ... просто подумайте вслух, так сказать.

1
ответ дан 7 December 2019 в 01:23
поделиться

Я подробно рассмотрел большое количество систем сборки для латекса в этом вопросе , но в вашем случае он немного отличается. Я думаю, вам нужен каучук или латекс. Файл latex-makefile кажется хорошей идеей, но поддерживает сборку только с помощью postscript, что может не относиться к вашему процессу сборки.

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

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

1
ответ дан 7 December 2019 в 01:23
поделиться

Не пробовал, но я помню , что видел сообщение в блоге о i t.

1
ответ дан 7 December 2019 в 01:23
поделиться
Другие вопросы по тегам:

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